{ "meta": { "instanceId": "21b41c2deb1c9e3f543253a0aa6a6e2c7bd7ef6bab90ffd478aa947c17d3b352", "templateCredsSetupCompleted": true }, "name": "Import Productboard Notes, Companies and Features into Snowflake", "tags": [ { "id": "6Ek7V8f4xbM9vWLj", "name": "linear", "createdAt": "2024-11-08T12:12:15.330Z", "updatedAt": "2024-11-08T12:12:15.330Z" }, { "id": "XpcIJ8IHNenz3bWz", "name": "productboard", "createdAt": "2024-11-08T12:12:17.249Z", "updatedAt": "2024-11-08T12:12:17.249Z" }, { "id": "17", "name": "snowflake", "createdAt": "2023-09-18T17:05:02.756Z", "updatedAt": "2023-09-18T17:05:02.756Z" } ], "nodes": [ { "id": "adcb71e4-880b-4c19-acbb-0708ae4af95f", "name": "Sticky Note1", "type": "n8n-nodes-base.stickyNote", "position": [ 5620, 1440 ], "parameters": { "color": 5, "width": 442.66083354762577, "height": 155.09952210536395, "content": "## Preview Slack Message\n:productboard: Weekly Update in :snowflake_logo: Completed\n27 new insights added in the last 7 days.\n88 insights remain unprocessed.\nYou can view the updated :metabase: dashboard below:\n\n" }, "typeVersion": 1 }, { "id": "8a590e59-cbcd-43f3-a0de-7c1391661fcf", "name": "Manual mapping feature", "type": "n8n-nodes-base.set", "position": [ 4380, -180 ], "parameters": { "fields": { "values": [ { "name": "feature_id", "stringValue": "={{ $json.id }}" }, { "name": "feature_name", "stringValue": "={{ $json.name }}" }, { "name": "feature_status", "stringValue": "={{ $json.status.name }}" }, { "name": "feature_start_date", "stringValue": "={{ $json.timeframe.startDate }}" }, { "name": "feature_end_date", "stringValue": "={{ $json.timeframe.endDate }}" }, { "name": "feature_owner", "stringValue": "={{ $json.owner.email }}" }, { "name": "feature_created_at", "stringValue": "={{ $json.createdAt }}" } ] }, "include": "none", "options": {} }, "typeVersion": 3.2 }, { "id": "ca339c8f-71c0-432f-88ef-595b9bc24b98", "name": "get productboard companies", "type": "n8n-nodes-base.httpRequest", "position": [ 4060, 220 ], "parameters": { "url": "https://api.productboard.com/companies", "options": { "pagination": { "pagination": { "nextURL": "={{ $response.body[\"links\"][\"next\"] }}", "paginationMode": "responseContainsNextURL", "requestInterval": 2000, "completeExpression": "={{ $response.body[\"links\"][\"next\"] === null }}", "paginationCompleteWhen": "other" } } }, "sendHeaders": true, "authentication": "genericCredentialType", "genericAuthType": "httpHeaderAuth", "headerParameters": { "parameters": [ { "name": "Content-Type", "value": "application/json" }, { "name": "X-Version", "value": "1" } ] } }, "credentials": { "httpHeaderAuth": { "id": "Z0ptr85smbBZBIYx", "name": "Productboard" } }, "typeVersion": 4.1, "alwaysOutputData": true }, { "id": "ba15244b-4311-4045-8087-47f05bea427e", "name": "Manual mapping companies", "type": "n8n-nodes-base.set", "position": [ 4760, 220 ], "parameters": { "fields": { "values": [ { "name": "company_id", "stringValue": "={{ $json.id }}" }, { "name": "company_name", "stringValue": "={{ $json.name }}" }, { "name": "company_domain", "stringValue": "={{ $json.domain }}" } ] }, "include": "none", "options": {} }, "typeVersion": 3.2 }, { "id": "d7c491cf-6545-40e1-9ee5-429e4f6b8cb4", "name": "get productboard notes", "type": "n8n-nodes-base.httpRequest", "position": [ 4500, 640 ], "parameters": { "url": " https://api.productboard.com/notes", "options": { "pagination": { "pagination": { "parameters": { "parameters": [ { "name": "pageCursor", "value": "={{ $response.body.pageCursor }}" } ] }, "requestInterval": 2000, "completeExpression": "={{ $response.body.pageCursor === null }}", "paginationCompleteWhen": "other" } } }, "sendHeaders": true, "authentication": "genericCredentialType", "genericAuthType": "httpHeaderAuth", "headerParameters": { "parameters": [ { "name": "Content-Type", "value": "application/json" }, { "name": "X-Version", "value": "1" } ] } }, "credentials": { "httpHeaderAuth": { "id": "Z0ptr85smbBZBIYx", "name": "Productboard" } }, "typeVersion": 4.1 }, { "id": "beeb2cfc-c017-4691-b92f-ee10b943b08d", "name": "Manual mapping notes", "type": "n8n-nodes-base.set", "position": [ 5200, 640 ], "parameters": { "fields": { "values": [ { "name": "note_id", "stringValue": "={{ $json.id }}" }, { "name": "note_title", "stringValue": "={{ $json.title }}" }, { "name": "note_state", "stringValue": "={{ $json.state }}" }, { "name": "note_company_id", "stringValue": "={{ $json.company.id }}" }, { "name": "note_source", "stringValue": "={{ $json.source.origin }}" }, { "name": "note_content", "stringValue": "={{ $json.content }}" }, { "name": "note_created_at", "stringValue": "={{ $json.createdAt }}" }, { "name": "note_created_by", "stringValue": "={{ $json.createdBy.name }}" }, { "name": "note_owner", "stringValue": "={{ $json.owner.name }}" }, { "name": "note_url", "stringValue": "={{ $json.displayUrl }}" } ] }, "include": "none", "options": {} }, "typeVersion": 3.2 }, { "id": "770df012-b5a0-49f9-9614-8988c2436c34", "name": "Split features", "type": "n8n-nodes-base.splitOut", "position": [ 3920, -180 ], "parameters": { "options": {}, "fieldToSplitOut": "data" }, "typeVersion": 1 }, { "id": "910e27f0-b910-415e-a171-5c6cfce07dc4", "name": "Split companies", "type": "n8n-nodes-base.splitOut", "position": [ 4300, 220 ], "parameters": { "options": {}, "fieldToSplitOut": "data" }, "typeVersion": 1 }, { "id": "f57f3865-8970-4771-aee6-2e656215b13e", "name": "Split notes", "type": "n8n-nodes-base.splitOut", "position": [ 4740, 640 ], "parameters": { "options": {}, "fieldToSplitOut": "data" }, "typeVersion": 1 }, { "id": "d3939c15-9523-49c1-93ba-7942d37a0ec0", "name": "Split features in notes", "type": "n8n-nodes-base.splitOut", "position": [ 5400, 900 ], "parameters": { "include": "selectedOtherFields", "options": {}, "fieldToSplitOut": "features", "fieldsToInclude": "id" }, "typeVersion": 1 }, { "id": "bde6dc0c-6104-4b84-8c09-33dbe0cfe69f", "name": "Combine Feature ID + Note ID", "type": "n8n-nodes-base.set", "position": [ 5640, 900 ], "parameters": { "fields": { "values": [ { "name": "note_id", "stringValue": "={{ $json.id }}" }, { "name": "feature_id", "stringValue": "={{ $json.features.id }}" } ] }, "include": "none", "options": {} }, "typeVersion": 3.2 }, { "id": "b47db956-ec4f-4342-b973-aa3277e397f2", "name": "get productboard features", "type": "n8n-nodes-base.httpRequest", "position": [ 3680, -180 ], "parameters": { "url": "https://api.productboard.com/features", "options": { "pagination": { "pagination": { "nextURL": "={{ $response.body[\"links\"][\"next\"] }}", "paginationMode": "responseContainsNextURL", "requestInterval": 3000, "completeExpression": "={{ $response.body[\"links\"][\"next\"] === null }}", "paginationCompleteWhen": "other" } } }, "sendHeaders": true, "authentication": "genericCredentialType", "genericAuthType": "httpHeaderAuth", "headerParameters": { "parameters": [ { "name": "Content-Type", "value": "application/json" }, { "name": "X-Version", "value": "1" } ] } }, "credentials": { "httpHeaderAuth": { "id": "Z0ptr85smbBZBIYx", "name": "Productboard" } }, "typeVersion": 4.1 }, { "id": "ef3cd766-3887-4d6b-981b-d8e72a06a655", "name": "Update Productboard Notes", "type": "n8n-nodes-base.snowflake", "position": [ 5940, 660 ], "parameters": { "table": "PRODUCTBOARD_NOTES", "columns": "NOTE_ID,NOTE_TITLE,NOTE_STATE,NOTE_COMPANY_ID,NOTE_SOURCE,NOTE_CONTENT,NOTE_CREATED_BY,NOTE_OWNER,NOTE_CREATED_AT,NOTE_URL" }, "credentials": { "snowflake": { "id": "81", "name": "Snowflake" } }, "typeVersion": 1 }, { "id": "8dc03797-1ac9-47a8-8e4c-e85e9539b091", "name": "Empty Table Productboard Notes", "type": "n8n-nodes-base.snowflake", "position": [ 4260, 640 ], "parameters": { "query": "TRUNCATE TABLE PRODUCTBOARD_NOTES;", "operation": "executeQuery" }, "credentials": { "snowflake": { "id": "81", "name": "Snowflake" } }, "executeOnce": true, "typeVersion": 1 }, { "id": "9d5a6d6f-a672-48b0-baf8-67b608690d28", "name": "[CREATE] PRODUCTBOARD_NOTES", "type": "n8n-nodes-base.snowflake", "position": [ 3280, 1140 ], "parameters": { "query": "CREATE OR REPLACE TABLE PRODUCTBOARD_NOTES (\n note_id STRING NOT NULL,\n note_title STRING,\n note_state STRING,\n note_company_id STRING,\n note_source STRING,\n note_content STRING,\n note_created_by STRING,\n note_owner STRING,\n note_url STRING,\n note_created_at TIMESTAMP_NTZ\n);", "operation": "executeQuery" }, "credentials": { "snowflake": { "id": "81", "name": "Snowflake" } }, "typeVersion": 1 }, { "id": "ea27f38b-3199-46aa-959f-9c1502898696", "name": "[CREATE] PRODUCTBOARD_COMPANIES", "type": "n8n-nodes-base.snowflake", "position": [ 3520, 1140 ], "parameters": { "query": "CREATE OR REPLACE TABLE PRODUCTBOARD_COMPANIES (\n company_id STRING NOT NULL,\n company_name STRING,\n company_domain STRING\n);", "operation": "executeQuery" }, "credentials": { "snowflake": { "id": "81", "name": "Snowflake" } }, "typeVersion": 1 }, { "id": "7bb94678-d106-4b77-8a96-4c598b057d09", "name": "Update Productboard Companies", "type": "n8n-nodes-base.snowflake", "position": [ 5280, 220 ], "parameters": { "table": "PRODUCTBOARD_COMPANIES", "columns": "COMPANY_ID,COMPANY_NAME,COMPANY_DOMAIN" }, "credentials": { "snowflake": { "id": "81", "name": "Snowflake" } }, "typeVersion": 1 }, { "id": "86128f9b-8b16-4dc0-bdf5-1bab946716e2", "name": "Manual mapping companies db", "type": "n8n-nodes-base.set", "position": [ 5020, 220 ], "parameters": { "fields": { "values": [ { "name": "COMPANY_ID", "stringValue": "={{ $json.company_id }}" }, { "name": "COMPANY_NAME", "stringValue": "={{ $json.company_name }}" }, { "name": "COMPANY_DOMAIN", "stringValue": "={{ $json.company_domain }}" } ] }, "include": "none", "options": {} }, "typeVersion": 3.2 }, { "id": "dd2a3264-4171-43af-9409-ad2e79091bfb", "name": "Manual mapping notes db", "type": "n8n-nodes-base.set", "position": [ 5720, 660 ], "parameters": { "fields": { "values": [ { "name": "NOTE_ID", "stringValue": "={{ $json.note_id }}" }, { "name": "NOTE_TITLE", "stringValue": "={{ $json.note_title }}" }, { "name": "NOTE_STATE", "stringValue": "={{ $json.note_state }}" }, { "name": "NOTE_COMPANY_ID", "stringValue": "={{ $json.note_company_id }}" }, { "name": "NOTE_CONTENT", "stringValue": "={{ $json.note_content }}" }, { "name": "NOTE_CREATED_BY", "stringValue": "={{ $json.note_created_by }}" }, { "name": "NOTE_CREATED_AT", "stringValue": "={{ $json.note_created_at }}" }, { "name": "NOTE_SOURCE", "stringValue": "={{ $json.note_source }}" }, { "name": "NOTE_OWNER", "stringValue": "={{ $json.note_owner }}" }, { "name": "NOTE_URL", "stringValue": "={{ $json.note_url }}" } ] }, "include": "none", "options": {} }, "typeVersion": 3.2 }, { "id": "d163879a-6020-4ace-b3ea-36c3d7b3675a", "name": "Empty Table Productboard Companies", "type": "n8n-nodes-base.snowflake", "position": [ 3820, 220 ], "parameters": { "query": "TRUNCATE TABLE PRODUCTBOARD_COMPANIES;", "operation": "executeQuery" }, "credentials": { "snowflake": { "id": "81", "name": "Snowflake" } }, "executeOnce": true, "typeVersion": 1 }, { "id": "0dbf1a3c-ae8b-4e7b-afb5-d1363d3d7634", "name": "[CREATE] PRODUCTBOARD_NOTES_FEATURES", "type": "n8n-nodes-base.snowflake", "position": [ 3760, 1140 ], "parameters": { "query": "CREATE OR REPLACE TABLE PRODUCTBOARD_NOTES_FEATURES (\n note_id STRING NOT NULL,\n feature_id STRING\n)", "operation": "executeQuery" }, "credentials": { "snowflake": { "id": "81", "name": "Snowflake" } }, "typeVersion": 1 }, { "id": "fa9e8744-c348-481c-a6f9-083689ee8ea9", "name": "Manual mapping feature note IDs db", "type": "n8n-nodes-base.set", "position": [ 6160, 920 ], "parameters": { "fields": { "values": [ { "name": "NOTE_ID", "stringValue": "={{ $json.note_id }}" }, { "name": "FEATURE_ID", "stringValue": "={{ $json.feature_id }}" } ] }, "include": "none", "options": {} }, "typeVersion": 3.2 }, { "id": "718f041a-dd02-4331-a704-fd1aa809212b", "name": "Update Productboard Note and Feature IDs", "type": "n8n-nodes-base.snowflake", "position": [ 6380, 920 ], "parameters": { "table": "PRODUCTBOARD_NOTES_FEATURES", "columns": "NOTE_ID,FEATURE_ID" }, "credentials": { "snowflake": { "id": "81", "name": "Snowflake" } }, "typeVersion": 1 }, { "id": "51430e95-1eb9-4c47-a0cf-e05708e6d41b", "name": "Empty Table Productboard Note and Feature IDs", "type": "n8n-nodes-base.snowflake", "position": [ 4040, 640 ], "parameters": { "query": "TRUNCATE TABLE PRODUCTBOARD_NOTES_FEATURES;", "operation": "executeQuery" }, "credentials": { "snowflake": { "id": "81", "name": "Snowflake" } }, "executeOnce": true, "typeVersion": 1 }, { "id": "8c03178f-baf1-4ed8-94d8-91e90ef5cd26", "name": "Loop Over Items notes", "type": "n8n-nodes-base.splitInBatches", "position": [ 5460, 640 ], "parameters": { "options": {}, "batchSize": 100 }, "typeVersion": 3 }, { "id": "0c6a787f-48da-479c-b45a-8122b8fada3f", "name": "Loop Over Items features notes", "type": "n8n-nodes-base.splitInBatches", "position": [ 5900, 900 ], "parameters": { "options": {}, "batchSize": 100 }, "typeVersion": 3 }, { "id": "1adb9ff0-be18-4ceb-aae0-62186e75668f", "name": "[CREATE] PRODUCTBOARD_FEATURES", "type": "n8n-nodes-base.snowflake", "position": [ 3040, 1140 ], "parameters": { "query": "CREATE OR REPLACE TABLE PRODUCTBOARD_FEATURES (\n feature_id STRING NOT NULL,\n feature_name STRING,\n feature_status STRING,\n feature_start_date STRING,\n feature_end_date STRING,\n feature_owner STRING,\n feature_created_at STRING\n);", "operation": "executeQuery" }, "credentials": { "snowflake": { "id": "81", "name": "Snowflake" } }, "typeVersion": 1 }, { "id": "0357ba46-4934-4c3f-8f0a-676496a6eee6", "name": "Empty Table Productboard Features", "type": "n8n-nodes-base.snowflake", "position": [ 3440, -180 ], "parameters": { "query": "TRUNCATE TABLE PRODUCTBOARD_FEATURES;", "operation": "executeQuery" }, "credentials": { "snowflake": { "id": "81", "name": "Snowflake" } }, "executeOnce": true, "typeVersion": 1 }, { "id": "df076304-ce27-4801-8e0f-c268b313ef4e", "name": "Loop Over Items features", "type": "n8n-nodes-base.splitInBatches", "position": [ 4640, -180 ], "parameters": { "options": {}, "batchSize": 100 }, "typeVersion": 3 }, { "id": "40732e40-5ff2-4b1f-b300-b6b734e31637", "name": "Manual mapping features db", "type": "n8n-nodes-base.set", "position": [ 4900, -160 ], "parameters": { "fields": { "values": [ { "name": "FEATURE_ID", "stringValue": "={{ $json.feature_id }}" }, { "name": "FEATURE_NAME", "stringValue": "={{ $json.feature_name }}" }, { "name": "FEATURE_STATUS", "stringValue": "={{ $json.feature_status }}" }, { "name": "FEATURE_START_DATE", "stringValue": "={{ $json.feature_start_date }}" }, { "name": "FEATURE_END_DATE", "stringValue": "={{ $json.feature_end_date }}" }, { "name": "FEATURE_OWNER", "stringValue": "={{ $json.feature_owner }}" }, { "name": "FEATURE_CREATED_AT", "stringValue": "={{ $json.feature_created_at }}" } ] }, "include": "none", "options": {} }, "typeVersion": 3.2 }, { "id": "59a838c4-fef0-4902-b6d6-418934ac986f", "name": "Update Productboard Features", "type": "n8n-nodes-base.snowflake", "position": [ 5140, -160 ], "parameters": { "table": "PRODUCTBOARD_FEATURES", "columns": "FEATURE_ID,FEATURE_NAME,FEATURE_STATUS,FEATURE_START_DATE,FEATURE_END_DATE,FEATURE_OWNER,FEATURE_CREATED_AT" }, "credentials": { "snowflake": { "id": "81", "name": "Snowflake" } }, "typeVersion": 1 }, { "id": "110ebd3a-50ac-4e9f-9297-f64759dfdd18", "name": "Schedule Trigger", "type": "n8n-nodes-base.scheduleTrigger", "position": [ 2980, -180 ], "parameters": { "rule": { "interval": [ { "field": "weeks", "triggerAtDay": [ 1 ], "triggerAtHour": 8 } ] } }, "typeVersion": 1.1 }, { "id": "3eb88f88-8fad-4aaf-b6f9-6f7d87e30018", "name": "Slack", "type": "n8n-nodes-base.slack", "onError": "continueRegularOutput", "position": [ 5900, 1220 ], "parameters": { "text": "=", "select": "channel", "blocksUi": "={\n \"blocks\": [\n {\n \"type\": \"section\",\n \"text\": {\n \"type\": \"mrkdwn\",\n \"text\": \":productboard: Weekly Update in :snowflake_logo: Completed\\n\\n*{{ $json.NOTES_7_DAYS }}* new insights added in the last 7 days.\\n\\n*{{ $json.NOTES_UNPROCESSED }}* insights remain unprocessed.\\n\\nYou can view the updated :metabase: dashboard below:\"\n }\n },\n {\n \"type\": \"actions\",\n \"elements\": [\n {\n \"type\": \"button\",\n \"text\": {\n \"type\": \"plain_text\",\n \"text\": \"Open Dashboard\",\n \"emoji\": true\n },\n \"url\": \"https://metabase.com\"\n }\n ]\n }\n ]\n}", "channelId": { "__rl": true, "mode": "name", "value": "#product-notifications" }, "messageType": "block", "otherOptions": {} }, "credentials": { "slackApi": { "id": "SG3oDwwLGpxwoJSO", "name": "Gardien Slack bot" } }, "executeOnce": true, "retryOnFail": false, "typeVersion": 2.1 }, { "id": "3a16d947-a218-4ec2-8081-19b676bb51c3", "name": "Count Notes Last 7 days and Unprocessed", "type": "n8n-nodes-base.snowflake", "position": [ 5660, 1220 ], "parameters": { "query": "SELECT\n COUNT(DISTINCT CASE \n WHEN DATEDIFF(DAY, NOTE_CREATED_AT, CURRENT_DATE()) <= 7 THEN note_id \n END) AS notes_7_days,\n COUNT(DISTINCT CASE \n WHEN NOTE_STATE = 'unprocessed' THEN note_id \n END) AS notes_unprocessed\nFROM PRODUCTBOARD_NOTES;\n", "operation": "executeQuery" }, "credentials": { "snowflake": { "id": "81", "name": "Snowflake" } }, "executeOnce": true, "typeVersion": 1 }, { "id": "2bdfb96c-1c38-444d-9507-ab74f3572129", "name": "Sticky Note2", "type": "n8n-nodes-base.stickyNote", "position": [ 2980, 1060 ], "parameters": { "color": 5, "width": 983.4896175671602, "height": 314.88047081122676, "content": "## Setup snowflake tables" }, "typeVersion": 1 } ], "active": false, "pinData": {}, "settings": { "executionOrder": "v1" }, "versionId": "", "connections": { "Split notes": { "main": [ [ { "node": "Manual mapping notes", "type": "main", "index": 0 }, { "node": "Split features in notes", "type": "main", "index": 0 }, { "node": "Count Notes Last 7 days and Unprocessed", "type": "main", "index": 0 } ] ] }, "Split features": { "main": [ [ { "node": "Manual mapping feature", "type": "main", "index": 0 } ] ] }, "Split companies": { "main": [ [ { "node": "Manual mapping companies", "type": "main", "index": 0 } ] ] }, "Schedule Trigger": { "main": [ [ { "node": "Empty Table Productboard Features", "type": "main", "index": 0 } ] ] }, "Manual mapping notes": { "main": [ [ { "node": "Loop Over Items notes", "type": "main", "index": 0 } ] ] }, "Loop Over Items notes": { "main": [ [], [ { "node": "Manual mapping notes db", "type": "main", "index": 0 } ] ] }, "Manual mapping feature": { "main": [ [ { "node": "Loop Over Items features", "type": "main", "index": 0 } ] ] }, "get productboard notes": { "main": [ [ { "node": "Split notes", "type": "main", "index": 0 } ] ] }, "Manual mapping notes db": { "main": [ [ { "node": "Update Productboard Notes", "type": "main", "index": 0 } ] ] }, "Split features in notes": { "main": [ [ { "node": "Combine Feature ID + Note ID", "type": "main", "index": 0 } ] ] }, "Loop Over Items features": { "main": [ [ { "node": "Empty Table Productboard Companies", "type": "main", "index": 0 } ], [ { "node": "Manual mapping features db", "type": "main", "index": 0 } ] ] }, "Manual mapping companies": { "main": [ [ { "node": "Manual mapping companies db", "type": "main", "index": 0 } ] ] }, "Update Productboard Notes": { "main": [ [ { "node": "Loop Over Items notes", "type": "main", "index": 0 } ] ] }, "get productboard features": { "main": [ [ { "node": "Split features", "type": "main", "index": 0 } ] ] }, "Manual mapping features db": { "main": [ [ { "node": "Update Productboard Features", "type": "main", "index": 0 } ] ] }, "get productboard companies": { "main": [ [ { "node": "Split companies", "type": "main", "index": 0 } ] ] }, "Manual mapping companies db": { "main": [ [ { "node": "Update Productboard Companies", "type": "main", "index": 0 } ] ] }, "Combine Feature ID + Note ID": { "main": [ [ { "node": "Loop Over Items features notes", "type": "main", "index": 0 } ] ] }, "Update Productboard Features": { "main": [ [ { "node": "Loop Over Items features", "type": "main", "index": 0 } ] ] }, "Update Productboard Companies": { "main": [ [ { "node": "Empty Table Productboard Note and Feature IDs", "type": "main", "index": 0 } ] ] }, "Empty Table Productboard Notes": { "main": [ [ { "node": "get productboard notes", "type": "main", "index": 0 } ] ] }, "Loop Over Items features notes": { "main": [ [], [ { "node": "Manual mapping feature note IDs db", "type": "main", "index": 0 } ] ] }, "Empty Table Productboard Features": { "main": [ [ { "node": "get productboard features", "type": "main", "index": 0 } ] ] }, "Empty Table Productboard Companies": { "main": [ [ { "node": "get productboard companies", "type": "main", "index": 0 } ] ] }, "Manual mapping feature note IDs db": { "main": [ [ { "node": "Update Productboard Note and Feature IDs", "type": "main", "index": 0 } ] ] }, "Count Notes Last 7 days and Unprocessed": { "main": [ [ { "node": "Slack", "type": "main", "index": 0 } ] ] }, "Update Productboard Note and Feature IDs": { "main": [ [ { "node": "Loop Over Items features notes", "type": "main", "index": 0 } ] ] }, "Empty Table Productboard Note and Feature IDs": { "main": [ [ { "node": "Empty Table Productboard Notes", "type": "main", "index": 0 } ] ] } } }