{
"nodes": [
{
"id": "2804a082-c17b-482f-828d-901dab7e7a11",
"name": "When clicking \u2018Test workflow\u2019",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-160,
40
],
"parameters": [],
"typeVersion": 1
},
{
"id": "58d51340-5246-4089-ae63-f16ff4be184e",
"name": "Get list of owners",
"type": "n8n-nodes-base.httpRequest",
"position": [
280,
40
],
"parameters": {
"url": "https:\/\/api.hubapi.com\/crm\/v3\/owners",
"options": [],
"authentication": "predefinedCredentialType",
"nodeCredentialType": "hubspotOAuth2Api"
},
"credentials": {
"hubspotOAuth2Api": {
"id": "qubiIFrowxvUdpu6",
"name": "HubSpot account for node"
}
},
"typeVersion": 4.20000000000000017763568394002504646778106689453125
},
{
"id": "335ffd8c-68fa-4d55-85e9-462963a8a291",
"name": "Get list of clients for owner",
"type": "n8n-nodes-base.httpRequest",
"position": [
280,
575
],
"parameters": {
"url": "https:\/\/api.hubapi.com\/crm\/v3\/objects\/contacts\/search",
"method": "POST",
"options": [],
"jsonBody": "={\n \"filterGroups\": [\n {\n \"filters\": [\n {\n \"propertyName\": \"hubspot_owner_id\",\n \"operator\": \"EQ\",\n \"value\": \"{{ $('When Executed by Another Workflow').item.json.ownerId }}\"\n }\n ]\n }\n ],\n \"properties\": [\"firstname\", \"lastname\", \"email\", \"linkedinURL\", \"company\"],\n\"limit\": 200,\n\"after\": {{ $node['Edit'].json[\"sofar\"] }}\n} ",
"sendBody": true,
"specifyBody": "json",
"authentication": "predefinedCredentialType",
"nodeCredentialType": "hubspotOAuth2Api"
},
"credentials": {
"hubspotOAuth2Api": {
"id": "qubiIFrowxvUdpu6",
"name": "HubSpot account for node"
}
},
"typeVersion": 4.20000000000000017763568394002504646778106689453125
},
{
"id": "5d116139-1764-4d3a-8696-d280fb7e9d8f",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-210,
-260
],
"parameters": {
"color": 4,
"width": 420,
"height": 460,
"content": "## Settings\n- Set in \"Set data here\" the email you are registered with in Hubspot as an Owner, and the link of a Google sheet copied [from this one](https:\/\/docs.google.com\/spreadsheets\/d\/1y17jIU6JnNPcmazWf2GsmRpdjBBMnkN41tRJnAO5KrQ\/edit?usp=sharing)\n"
},
"typeVersion": 1
},
{
"id": "a8a15bd4-5a46-4f70-87bd-4db7170b4928",
"name": "If",
"type": "n8n-nodes-base.if",
"position": [
720,
575
],
"parameters": {
"options": [],
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "d5df6d6c-ff5f-46ad-a8d4-38e326d7415e",
"operator": {
"type": "number",
"operation": "gte"
},
"leftValue": "={{ $node['Edit'].json.sofar }}",
"rightValue": "={{ $('Get list of clients for owner').item.json.total }}"
}
]
},
"looseTypeValidation": true
},
"typeVersion": 2.20000000000000017763568394002504646778106689453125
},
{
"id": "eda30bd9-95bb-43d4-8981-479036103dd1",
"name": "Edit",
"type": "n8n-nodes-base.set",
"position": [
60,
575
],
"parameters": {
"options": [],
"assignments": {
"assignments": [
{
"id": "8a403dc5-2b05-430d-b1cc-39f70f5ac82d",
"name": "sofar",
"type": "number",
"value": "=0"
},
{
"id": "dca65b15-f545-42f1-90df-37efb03e267d",
"name": "results",
"type": "array",
"value": "[]"
}
]
}
},
"typeVersion": 3.399999999999999911182158029987476766109466552734375
},
{
"id": "4c6c8217-6610-413e-8b1c-185a96e44882",
"name": "Increment Page",
"type": "n8n-nodes-base.set",
"position": [
500,
500
],
"parameters": {
"values": {
"number": [
{
"name": "sofar",
"value": "={{$node[\"Edit\"].json[\"sofar\"] = $node[\"Edit\"].json[\"sofar\"] + $('Get list of clients for owner').item.json.results.length}}"
}
]
},
"options": []
},
"executeOnce": true,
"typeVersion": 1
},
{
"id": "58f53fe6-36a4-4385-ba93-e15dd589c0a4",
"name": "Split Out1",
"type": "n8n-nodes-base.splitOut",
"position": [
1160,
575
],
"parameters": {
"options": [],
"fieldToSplitOut": "results"
},
"typeVersion": 1
},
{
"id": "c92983ba-bef3-463a-a6de-8f205822f359",
"name": "Merge al the entries",
"type": "n8n-nodes-base.code",
"position": [
940,
575
],
"parameters": {
"jsCode": "let results = [],\n i = 0;\n\ndo {\n try {\n results = results.concat($(\"Get list of clients for owner\").all(0, i));\n } catch (error) {\n console.log(results)\n return results;\n }\n i++;\n} while (true);"
},
"typeVersion": 2
},
{
"id": "68c51fbd-3845-4eb2-9204-d78cc30413bf",
"name": "If linkedin url is empty",
"type": "n8n-nodes-base.if",
"position": [
1820,
40
],
"parameters": {
"options": [],
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "84952199-2e1d-4ea8-bfb8-d4aa975d6df1",
"operator": {
"type": "string",
"operation": "empty",
"singleValue": true
},
"leftValue": "={{ $json.linkedin_url }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.20000000000000017763568394002504646778106689453125
},
{
"id": "18e4e4bd-4039-4770-a3d0-13edafe6103c",
"name": "if new post",
"type": "n8n-nodes-base.if",
"position": [
3580,
40
],
"parameters": {
"options": [],
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "48d6777d-5431-4cb9-9716-5059277bac5e",
"operator": {
"type": "string",
"operation": "notEquals"
},
"leftValue": "={{ $('Get rows from document').item.json['last post'] }}",
"rightValue": "={{ $('Set last_post').item.json.last_post }}"
}
]
}
},
"typeVersion": 2.20000000000000017763568394002504646778106689453125
},
{
"id": "a5623af7-6fba-43b0-be50-c9d3c52aba32",
"name": "Get list of clients",
"type": "n8n-nodes-base.executeWorkflow",
"position": [
940,
40
],
"parameters": {
"mode": "each",
"options": [],
"workflowId": {
"__rl": true,
"mode": "id",
"value": "={{ $workflow.id }}",
"cachedResultName": "={{ $workflow.id }}"
},
"workflowInputs": {
"value": {
"ownerId": "={{ $json.id }}"
},
"schema": [
{
"id": "ownerId",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "ownerId",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"ownerId"
],
"attemptToConvertTypes": false,
"convertFieldsToString": true
}
},
"typeVersion": 1.1999999999999999555910790149937383830547332763671875
},
{
"id": "9f771153-6b83-4ac0-b642-ee2d4b65a41c",
"name": "When Executed by Another Workflow",
"type": "n8n-nodes-base.executeWorkflowTrigger",
"position": [
-160,
575
],
"parameters": {
"workflowInputs": {
"values": [
{
"name": "ownerId"
}
]
}
},
"typeVersion": 1.100000000000000088817841970012523233890533447265625
},
{
"id": "437dc3e5-0340-41ce-aea1-36749bd054ad",
"name": "Get last post",
"type": "n8n-nodes-base.executeWorkflow",
"position": [
3140,
40
],
"parameters": {
"mode": "each",
"options": [],
"workflowId": {
"__rl": true,
"mode": "list",
"value": "rnVcO8Bw0avTm4GB",
"cachedResultName": "get personal posts for agent"
},
"workflowInputs": {
"value": {
"maxItems": 1,
"username": "={{ $json.username }}",
"responseType": "detail"
},
"schema": [
{
"id": "username",
"type": "string",
"display": true,
"required": false,
"displayName": "username",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "responseType",
"type": "string",
"display": true,
"required": false,
"displayName": "responseType",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "maxItems",
"type": "number",
"display": true,
"required": false,
"displayName": "maxItems",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "posted_after",
"display": true,
"required": false,
"displayName": "posted_after",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": true
}
},
"typeVersion": 1.1999999999999999555910790149937383830547332763671875
},
{
"id": "a0dda2f2-cb89-4557-8cfc-5e3a01e34637",
"name": "Gmail",
"type": "n8n-nodes-base.gmail",
"position": [
4680,
140
],
"webhookId": "eea16996-1d02-4861-b83d-6145cee90ac6",
"parameters": {
"sendTo": "={{ $('Set data here').first().json.email }}",
"message": "={{ $json.text }}",
"options": {
"appendAttribution": false
},
"subject": "Changes in your clients",
"emailType": "text"
},
"credentials": {
"gmailOAuth2": {
"id": "DLjspol9TLgpGaXa",
"name": "Gmail account 2"
}
},
"typeVersion": 2.100000000000000088817841970012523233890533447265625
},
{
"id": "99911831-e603-454c-b533-2e387f2008c4",
"name": "Search for user by link",
"type": "n8n-nodes-base.httpRequest",
"notes": "Search by Name and company",
"position": [
2920,
140
],
"parameters": {
"url": "https:\/\/linkedin-api8.p.rapidapi.com\/get-profile-data-by-url",
"options": [],
"sendQuery": true,
"sendHeaders": true,
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"queryParameters": {
"parameters": [
{
"name": "url",
"value": "={{ $json.profileURL }}"
}
]
},
"headerParameters": {
"parameters": [
{
"name": "x-rapidapi-host",
"value": "linkedin-api8.p.rapidapi.com"
}
]
}
},
"credentials": {
"httpHeaderAuth": {
"id": "nhoVFnkO31mejJrI",
"name": "RapidAPI Key"
}
},
"executeOnce": false,
"notesInFlow": true,
"typeVersion": 4.20000000000000017763568394002504646778106689453125,
"alwaysOutputData": false
},
{
"id": "903f6be4-b468-488c-aa41-50f60ee92bcb",
"name": "Do nothing",
"type": "n8n-nodes-base.noOp",
"position": [
2480,
-160
],
"parameters": [],
"typeVersion": 1
},
{
"id": "695202d6-60bd-4788-b029-0c03a9e3c89a",
"name": "Merge profileURL",
"type": "n8n-nodes-base.code",
"position": [
2700,
140
],
"parameters": {
"mode": "runOnceForEachItem",
"jsCode": "\/\/ Add a new field called 'myNewField' to the JSON of the item\n$input.item.json.profileURL = $json.profileURL;\n\nreturn $input.item;"
},
"typeVersion": 2
},
{
"id": "ead5d235-7f73-41e4-86d3-48ad7d4cfa8d",
"name": "Set last_post",
"type": "n8n-nodes-base.set",
"position": [
3360,
40
],
"parameters": {
"options": [],
"assignments": {
"assignments": [
{
"id": "93be271c-22c8-4afe-a928-e9d2593b025d",
"name": "last_post",
"type": "string",
"value": "={{ $json.text[0] }}"
}
]
}
},
"typeVersion": 3.399999999999999911182158029987476766109466552734375
},
{
"id": "a89746c8-5fb7-4c69-930f-d0f451bcef54",
"name": "Set last_position",
"type": "n8n-nodes-base.set",
"position": [
3360,
240
],
"parameters": {
"options": [],
"assignments": {
"assignments": [
{
"id": "93be271c-22c8-4afe-a928-e9d2593b025d",
"name": "last_position",
"type": "string",
"value": "={{ $json.position[0].title }}"
}
]
}
},
"typeVersion": 3.399999999999999911182158029987476766109466552734375
},
{
"id": "467aa5a3-c9f5-407f-8571-e9ba333109e2",
"name": "if new position",
"type": "n8n-nodes-base.if",
"position": [
3580,
240
],
"parameters": {
"options": [],
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "48d6777d-5431-4cb9-9716-5059277bac5e",
"operator": {
"type": "string",
"operation": "notEquals"
},
"leftValue": "={{ $json.last_position }}",
"rightValue": "={{ $('Get rows from document').item.json['current position'] }}"
}
]
}
},
"typeVersion": 2.20000000000000017763568394002504646778106689453125
},
{
"id": "f6456ca1-bb31-4bf3-8175-7f8b5f4a65bb",
"name": "Set data here",
"type": "n8n-nodes-base.set",
"position": [
60,
40
],
"parameters": {
"options": [],
"assignments": {
"assignments": [
{
"id": "a43825a4-f9cd-4b38-975c-b1de771cebea",
"name": "sheetLink",
"type": "string",
"value": "https:\/\/docs.google.com\/spreadsheets\/d\/1y17jIU6JnNPcmazWf2GsmRpdjBBMnkN41tRJnAO5KrQ\/edit?gid=0#gid=0"
},
{
"id": "ea837d0b-e8d6-4594-9861-550d30f05db0",
"name": "email",
"type": "string",
"value": "zeerobug@gmail.com"
}
]
}
},
"typeVersion": 3.399999999999999911182158029987476766109466552734375
},
{
"id": "f904c3fb-9320-4b5e-92af-c7cc697eb9dc",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
220,
-260
],
"parameters": {
"color": 4,
"width": 230,
"height": 460,
"content": "## Hubspot API\nCalls a Hubpot API endpoint to get the list of Owners\nYou have to select \"Predefined credential type\" and choose \"Hubspot Oauth2 API\". Then folow the instructions [here](https:\/\/docs.n8n.io\/integrations\/builtin\/credentials\/hubspot\/?utm_source=n8n_app&utm_medium=credential_settings&utm_campaign=create_new_credentials_modal#required-scopes-for-hubspot-trigger-node)"
},
"typeVersion": 1
},
{
"id": "5a499d0c-bbe5-4041-a082-6111658bf155",
"name": "Change this for testing",
"type": "n8n-nodes-base.filter",
"position": [
1160,
40
],
"parameters": {
"options": [],
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "or",
"conditions": [
{
"id": "45031804-4846-4b03-8c8f-8f1a747986a4",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.properties.email }}",
"rightValue": "=nuno.domingues@toyotacaetano.pt"
}
]
}
},
"typeVersion": 2.20000000000000017763568394002504646778106689453125
},
{
"id": "089690f8-ddf5-46e4-933c-152095ea02ac",
"name": "Create entry with email",
"type": "n8n-nodes-base.googleSheets",
"position": [
1380,
40
],
"parameters": {
"columns": {
"value": {
"email": "={{ $json.properties.email }}"
},
"schema": [
{
"id": "email",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "linkedin_url",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "linkedin_url",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "last post",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "last post",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "current position",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "current position",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "date",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "date",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"email"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": [],
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "url",
"value": "={{ $('Set data here').first().json.sheetLink }}"
},
"documentId": {
"__rl": true,
"mode": "url",
"value": "={{ $('Set data here').first().json.sheetLink }}"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "gdLmm513ROUyH6oU",
"name": "Google Sheets account"
}
},
"typeVersion": 4.5,
"alwaysOutputData": true
},
{
"id": "60617dc9-021b-41be-b7bf-0816bddba05e",
"name": "Get rows from document",
"type": "n8n-nodes-base.googleSheets",
"position": [
1600,
40
],
"parameters": {
"options": [],
"filtersUI": {
"values": [
{
"lookupValue": "={{ $json.email }}",
"lookupColumn": "email"
}
]
},
"sheetName": {
"__rl": true,
"mode": "url",
"value": "={{ $('Set data here').first().json.sheetLink }}"
},
"documentId": {
"__rl": true,
"mode": "url",
"value": "={{ $('Set data here').first().json.sheetLink }}"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "gdLmm513ROUyH6oU",
"name": "Google Sheets account"
}
},
"typeVersion": 4.5,
"alwaysOutputData": true
},
{
"id": "21c2bbd5-75f1-4c80-a4ec-4c2870890fcf",
"name": "Search for user profile by names",
"type": "n8n-nodes-base.httpRequest",
"notes": "Search by Name and company",
"position": [
2040,
-60
],
"parameters": {
"url": "https:\/\/linkedin-api8.p.rapidapi.com\/search-people",
"options": [],
"sendQuery": true,
"sendHeaders": true,
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"queryParameters": {
"parameters": [
{
"name": "firstName",
"value": "={{ $('Get list of clients').item.json.properties.firstname }}"
},
{
"name": "lastName",
"value": "={{ $('Get list of clients').item.json.properties.lastname }}"
},
{
"name": "company",
"value": "={{ $('Get list of clients').item.json.properties.company }}"
}
]
},
"headerParameters": {
"parameters": [
{
"name": "x-rapidapi-host",
"value": "linkedin-api8.p.rapidapi.com"
}
]
}
},
"credentials": {
"httpHeaderAuth": {
"id": "nhoVFnkO31mejJrI",
"name": "RapidAPI Key"
}
},
"executeOnce": false,
"notesInFlow": true,
"typeVersion": 4.20000000000000017763568394002504646778106689453125,
"alwaysOutputData": false
},
{
"id": "1a6f6571-a89a-4e6e-82a5-c239661d6131",
"name": "Profile URL not found?",
"type": "n8n-nodes-base.if",
"position": [
2260,
-60
],
"parameters": {
"options": [],
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "c561dcaf-e164-46e5-8f44-8ebcd2943c78",
"operator": {
"type": "string",
"operation": "empty",
"singleValue": true
},
"leftValue": "={{ $json.data.items[0].profileURL }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.20000000000000017763568394002504646778106689453125
},
{
"id": "2811ca64-1e43-4934-abc2-f1a746b2cf68",
"name": "Set the profile URL",
"type": "n8n-nodes-base.set",
"position": [
2480,
40
],
"parameters": {
"options": [],
"assignments": {
"assignments": [
{
"id": "d6d3ebce-153c-44b0-a2f8-3c8ac41381cb",
"name": "profileURL",
"type": "string",
"value": "={{ $json.data.items[0].profileURL }}"
}
]
}
},
"typeVersion": 3.399999999999999911182158029987476766109466552734375
},
{
"id": "d79a3896-e5b3-4b63-ad04-848f34db8100",
"name": "Set the profile URL1",
"type": "n8n-nodes-base.set",
"position": [
2480,
240
],
"parameters": {
"options": [],
"assignments": {
"assignments": [
{
"id": "d433d14f-b862-4f43-969e-5e911a138f8c",
"name": "profileURL",
"type": "string",
"value": "={{ $('Get rows from document').item.json.linkedin_url }}"
}
]
}
},
"typeVersion": 3.399999999999999911182158029987476766109466552734375
},
{
"id": "73683bde-7431-47e2-b70f-8e0dd2725c84",
"name": "Update last post",
"type": "n8n-nodes-base.googleSheets",
"position": [
3800,
40
],
"parameters": {
"columns": {
"value": {
"date": "= {{new Date().format('dd-MM-yyyy')}}",
"email": "={{ $('Change this for testing').item.json.properties.email }}",
"last post": "={{ $('Set last_post').item.json.last_post }}",
"linkedin_url": "={{ $('Merge profileURL').item.json.profileURL }}",
"current position": "={{ $json.last_position }}"
},
"schema": [
{
"id": "email",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "linkedin_url",
"type": "string",
"display": true,
"required": false,
"displayName": "linkedin_url",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "last post",
"type": "string",
"display": true,
"required": false,
"displayName": "last post",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "current position",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "current position",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "date",
"type": "string",
"display": true,
"required": false,
"displayName": "date",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"email"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": [],
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "url",
"value": "={{ $('Set data here').first().json.sheetLink }}"
},
"documentId": {
"__rl": true,
"mode": "url",
"value": "={{ $('Set data here').first().json.sheetLink }}"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "gdLmm513ROUyH6oU",
"name": "Google Sheets account"
}
},
"typeVersion": 4.5
},
{
"id": "71f66801-3b12-4633-a95b-c4c8788117bd",
"name": "Updates last position",
"type": "n8n-nodes-base.googleSheets",
"position": [
3800,
240
],
"parameters": {
"columns": {
"value": {
"date": "= {{new Date().format('dd-MM-yyyy')}}",
"email": "={{ $('Change this for testing').item.json.properties.email }}",
"linkedin_url": "={{ $('Merge profileURL').item.json.profileURL }}",
"current position": "={{ $json.last_position }}"
},
"schema": [
{
"id": "email",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "linkedin_url",
"type": "string",
"display": true,
"required": false,
"displayName": "linkedin_url",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "last post",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "last post",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "current position",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "current position",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "date",
"type": "string",
"display": true,
"required": false,
"displayName": "date",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"email"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": [],
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "url",
"value": "={{ $('Set data here').first().json.sheetLink }}"
},
"documentId": {
"__rl": true,
"mode": "url",
"value": "={{ $('Set data here').first().json.sheetLink }}"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "gdLmm513ROUyH6oU",
"name": "Google Sheets account"
}
},
"typeVersion": 4.5
},
{
"id": "d67c1106-5d91-4d00-980b-1b3578a1c86f",
"name": "Set post_updated",
"type": "n8n-nodes-base.set",
"position": [
4020,
40
],
"parameters": {
"options": [],
"assignments": {
"assignments": [
{
"id": "71118d71-0ea6-4b01-ac4d-a3ae1129b0e7",
"name": "post_updated",
"type": "boolean",
"value": true
},
{
"id": "f709a120-0db7-4b50-82e6-8f1f02352680",
"name": "email",
"type": "string",
"value": "={{ $('Change this for testing').item.json.properties.email }}"
}
]
}
},
"typeVersion": 3.399999999999999911182158029987476766109466552734375
},
{
"id": "ad574631-3799-4f02-96ff-8683dc944331",
"name": "Set position_updated",
"type": "n8n-nodes-base.set",
"position": [
4020,
240
],
"parameters": {
"options": [],
"assignments": {
"assignments": [
{
"id": "71118d71-0ea6-4b01-ac4d-a3ae1129b0e7",
"name": "position_updated",
"type": "boolean",
"value": true
},
{
"id": "1f0e817d-2ad4-4330-b683-64e31cfa4741",
"name": "email",
"type": "string",
"value": "={{ $('Change this for testing').item.json.properties.email }}"
}
]
}
},
"typeVersion": 3.399999999999999911182158029987476766109466552734375
},
{
"id": "157a5e8f-7b42-4115-91a2-2f204cd6d9f6",
"name": "Generate the email text",
"type": "n8n-nodes-base.code",
"position": [
4460,
140
],
"parameters": {
"jsCode": "\/\/ Loop over input items and add a new field called 'myNewField' to the JSON of each one\nlet client_post = []\nlet client_position = []\nfor (const item of $input.all()) {\n if(item.json.position_updated) {\n client_position.push(item.json.email)\n }\n if(item.json.post_updated) {\n client_post.push(item.json.email)\n }\n}\nlet text = ''\nif (client_post.length > 0) {\n text = text + 'There has been a post update for the following clients:\\n'\n text = text + client_post.join(\"\\n\") + \"\\n\";\n}\nif (client_position.length > 0) {\n text = text + 'There has been a position update for the following clients:\\n'\n text = text + client_position.join(\"\\n\") + \"\\n\";\n}\n\nreturn {text};"
},
"typeVersion": 2
},
{
"id": "0735e123-47ed-4b3c-9aa8-cc7d2f982e4b",
"name": "Merge on email",
"type": "n8n-nodes-base.merge",
"position": [
4240,
140
],
"parameters": {
"mode": "combine",
"options": [],
"joinMode": "keepEverything",
"fieldsToMatchString": "email"
},
"typeVersion": 3.100000000000000088817841970012523233890533447265625
},
{
"id": "88717813-9e07-4984-8e8b-7772f7c7a0e7",
"name": "Split Out owners",
"type": "n8n-nodes-base.splitOut",
"position": [
500,
40
],
"parameters": {
"options": [],
"fieldToSplitOut": "results"
},
"typeVersion": 1
},
{
"id": "5799995c-659e-4732-a35b-893692d95509",
"name": "Get current owner",
"type": "n8n-nodes-base.filter",
"position": [
720,
40
],
"parameters": {
"options": [],
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "7c6aec6e-66a9-4739-8a59-28f2ab1c4a26",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.email }}",
"rightValue": "={{ $('Set data here').first().json.email }}"
}
]
}
},
"typeVersion": 2.20000000000000017763568394002504646778106689453125
},
{
"id": "637b821f-8051-4e91-a58e-85dc7e136467",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
880,
-260
],
"parameters": {
"color": 4,
"width": 230,
"height": 460,
"content": "## Calling a Sub-workflow\nFor lisibility only\n"
},
"typeVersion": 1
},
{
"id": "3bda132e-73a3-4af0-bb43-ff52f31f5a90",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
1120,
-260
],
"parameters": {
"color": 4,
"width": 190,
"height": 460,
"content": "## For testing\nWe recommend to filter a small number of clients here\n"
},
"typeVersion": 1
},
{
"id": "13fb80f1-d685-4998-a534-41a0f944b6e8",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
1320,
-260
],
"parameters": {
"color": 4,
"width": 430,
"height": 460,
"content": "## Preparing the Google sheet\n- Create an entry for each client with his email\n- Get rows for later comparison\n\n"
},
"typeVersion": 1
},
{
"id": "54a51950-a284-435e-8a2b-bdc0ebace3c9",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
3080,
-240
],
"parameters": {
"color": 4,
"width": 1090,
"height": 660,
"content": "## Adding other tests\nHere you can set other tests like:\n- New comments in LinkedIn\n- Hubspot activities\n- Hubspot updates\netc.\n\n"
},
"typeVersion": 1
},
{
"id": "4b197665-b31c-4fa2-8934-5b72468ca2e9",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
1960,
-240
],
"parameters": {
"color": 4,
"width": 1090,
"height": 660,
"content": "## Searching for the LinkedIn URL\n- Set here you rapid API key\n- If we find the URL, searches for more info about the client\n"
},
"typeVersion": 1
},
{
"id": "665fb602-dc0a-432f-a087-ce6097f58937",
"name": "Sticky Note7",
"type": "n8n-nodes-base.stickyNote",
"position": [
4200,
-240
],
"parameters": {
"color": 4,
"width": 670,
"height": 660,
"content": "## Generating the alert email\n\n"
},
"typeVersion": 1
},
{
"id": "d6789f6a-aa62-44fd-9314-fc0157b6dcd8",
"name": "Sticky Note10",
"type": "n8n-nodes-base.stickyNote",
"position": [
-220,
400
],
"parameters": {
"color": 5,
"width": 1570,
"height": 460,
"content": "## Get all clients for this owner\nAs we are limited to 200 clients by the Hubsot API, we have to loop to get all of them\n\n"
},
"typeVersion": 1
},
{
"id": "d9a5cc09-7e4f-488a-a3dc-6a27361d9d0b",
"name": "Sticky Note8",
"type": "n8n-nodes-base.stickyNote",
"position": [
-200,
-480
],
"parameters": {
"width": 640,
"height": 200,
"content": "## Contact me\n- If you need any modification to this workflow\n- if you need some help with this workflow\n- Or if you need any workflow in n8n, Make, or Langchain \/ Langgraph\n\nWrite to me: [thomas@pollup.net](mailto:thomas@pollup.net)"
},
"typeVersion": 1
}
],
"connections": {
"If": {
"main": [
[
{
"node": "Merge al the entries",
"type": "main",
"index": 0
}
],
[
{
"node": "Get list of clients for owner",
"type": "main",
"index": 0
}
]
]
},
"Edit": {
"main": [
[
{
"node": "Get list of clients for owner",
"type": "main",
"index": 0
}
]
]
},
"Split Out1": {
"main": [
[]
]
},
"if new post": {
"main": [
[
{
"node": "Update last post",
"type": "main",
"index": 0
}
],
[]
]
},
"Get last post": {
"main": [
[
{
"node": "Set last_post",
"type": "main",
"index": 0
}
]
]
},
"Set data here": {
"main": [
[
{
"node": "Get list of owners",
"type": "main",
"index": 0
}
]
]
},
"Set last_post": {
"main": [
[
{
"node": "if new post",
"type": "main",
"index": 0
}
]
]
},
"Increment Page": {
"main": [
[
{
"node": "If",
"type": "main",
"index": 0
}
]
]
},
"Merge on email": {
"main": [
[
{
"node": "Generate the email text",
"type": "main",
"index": 0
}
]
]
},
"if new position": {
"main": [
[
{
"node": "Updates last position",
"type": "main",
"index": 0
}
]
]
},
"Merge profileURL": {
"main": [
[
{
"node": "Search for user by link",
"type": "main",
"index": 0
}
]
]
},
"Set post_updated": {
"main": [
[
{
"node": "Merge on email",
"type": "main",
"index": 0
}
]
]
},
"Split Out owners": {
"main": [
[
{
"node": "Get current owner",
"type": "main",
"index": 0
}
]
]
},
"Update last post": {
"main": [
[
{
"node": "Set post_updated",
"type": "main",
"index": 0
}
]
]
},
"Get current owner": {
"main": [
[
{
"node": "Get list of clients",
"type": "main",
"index": 0
}
]
]
},
"Set last_position": {
"main": [
[
{
"node": "if new position",
"type": "main",
"index": 0
}
]
]
},
"Get list of owners": {
"main": [
[
{
"node": "Split Out owners",
"type": "main",
"index": 0
}
]
]
},
"Get list of clients": {
"main": [
[
{
"node": "Change this for testing",
"type": "main",
"index": 0
}
]
]
},
"Set the profile URL": {
"main": [
[
{
"node": "Merge profileURL",
"type": "main",
"index": 0
}
]
]
},
"Merge al the entries": {
"main": [
[
{
"node": "Split Out1",
"type": "main",
"index": 0
}
]
]
},
"Set position_updated": {
"main": [
[
{
"node": "Merge on email",
"type": "main",
"index": 1
}
]
]
},
"Set the profile URL1": {
"main": [
[
{
"node": "Merge profileURL",
"type": "main",
"index": 0
}
]
]
},
"Updates last position": {
"main": [
[
{
"node": "Set position_updated",
"type": "main",
"index": 0
}
]
]
},
"Get rows from document": {
"main": [
[
{
"node": "If linkedin url is empty",
"type": "main",
"index": 0
}
]
]
},
"Profile URL not found?": {
"main": [
[
{
"node": "Do nothing",
"type": "main",
"index": 0
}
],
[
{
"node": "Set the profile URL",
"type": "main",
"index": 0
}
]
]
},
"Change this for testing": {
"main": [
[
{
"node": "Create entry with email",
"type": "main",
"index": 0
}
]
]
},
"Create entry with email": {
"main": [
[
{
"node": "Get rows from document",
"type": "main",
"index": 0
}
]
]
},
"Generate the email text": {
"main": [
[
{
"node": "Gmail",
"type": "main",
"index": 0
}
]
]
},
"Search for user by link": {
"main": [
[
{
"node": "Get last post",
"type": "main",
"index": 0
},
{
"node": "Set last_position",
"type": "main",
"index": 0
}
]
]
},
"If linkedin url is empty": {
"main": [
[
{
"node": "Search for user profile by names",
"type": "main",
"index": 0
}
],
[
{
"node": "Set the profile URL1",
"type": "main",
"index": 0
}
]
]
},
"Get list of clients for owner": {
"main": [
[
{
"node": "Increment Page",
"type": "main",
"index": 0
}
]
]
},
"Search for user profile by names": {
"main": [
[
{
"node": "Profile URL not found?",
"type": "main",
"index": 0
}
]
]
},
"When Executed by Another Workflow": {
"main": [
[
{
"node": "Edit",
"type": "main",
"index": 0
}
]
]
},
"When clicking \u2018Test workflow\u2019": {
"main": [
[
{
"node": "Set data here",
"type": "main",
"index": 0
}
]
]
}
}
}