adding the workflow collection to git

This commit is contained in:
Eliad Shahar 2025-05-14 11:58:29 +03:00
parent 290f43b1de
commit 136eca34eb
2050 changed files with 984481 additions and 0 deletions

View File

@ -0,0 +1,608 @@
{
"id": "02GdRzvsuHmSSgBw",
"meta": {
"instanceId": "31e69f7f4a77bf465b805824e303232f0227212ae922d12133a0f96ffeab4fef",
"templateCredsSetupCompleted": true
},
"name": "#⃣Nostr #damus AI Powered Reporting + Gmail + Telegram",
"tags": [],
"nodes": [
{
"id": "e9c4c7bf-0cce-456e-9b95-726669e4b260",
"name": "When clicking Test workflow",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-500,
-60
],
"parameters": {},
"typeVersion": 1
},
{
"id": "b8f57e15-8a6e-4a29-a6e8-745bebbd1f44",
"name": "Get HTML",
"type": "n8n-nodes-base.markdown",
"position": [
880,
-840
],
"parameters": {
"mode": "markdownToHtml",
"options": {},
"markdown": "={{ $json.text }}"
},
"typeVersion": 1
},
{
"id": "8b212119-9b69-449c-8a3b-4fdc5b085f30",
"name": "Gmail Themes",
"type": "n8n-nodes-base.gmail",
"position": [
1080,
-840
],
"webhookId": "e07f9378-bfa5-48ac-88fd-0ef88a725ede",
"parameters": {
"sendTo": "joe@example.com",
"message": "={{ $json.data }}",
"options": {
"appendAttribution": false
},
"subject": "#damus"
},
"credentials": {
"gmailOAuth2": {
"id": "1xpVDEQ1yx8gV022",
"name": "Gmail account"
}
},
"typeVersion": 2.1
},
{
"id": "b7fc214b-72cb-4caf-8563-7b2f13a1110d",
"name": "Get HTML Report",
"type": "n8n-nodes-base.markdown",
"position": [
880,
80
],
"parameters": {
"mode": "markdownToHtml",
"options": {},
"markdown": "={{ $json.text }}"
},
"typeVersion": 1
},
{
"id": "dd7580bc-f97c-4ad1-8556-2329f88bea75",
"name": "#damus Themes List",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
500,
-400
],
"parameters": {
"text": "=Extract a list of themes from this: {{ $json.text }}\n\nDo not include any preamble or further explanation.",
"promptType": "define"
},
"typeVersion": 1.5
},
{
"id": "60a9d8fe-4ba0-4450-8073-4108b832981e",
"name": "#damus Thread Themes",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
500,
-840
],
"parameters": {
"text": "=Tell me the theme and highlight some common threads associated with these Nostr threads that are all #damus. Specifically mention the main reason #damus is hashtagged. These are the threads: {{ $json.content.toJsonString() }}",
"promptType": "define"
},
"typeVersion": 1.5
},
{
"id": "72ab08a7-f729-46e3-8a4d-56005cabaf17",
"name": "#damus Themes & Threads Report",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
500,
80
],
"parameters": {
"text": "=**Task:** Analyze the attached file containing Nostr threads using the hashtag #damus. Provide a detailed report with examples thread based on the following themes. Got deep and seek out the underlying motivation of the users who posted the threads: \n\n## Themes\n{{ $json.text }}\n\n1. **Overall Theme:** Summarize the central topic(s) discussed across the threads.\n2. **Common Threads:** Identify recurring topics or ideas that unify the posts.\n3. **Key Highlights:** Extract specific examples or quotes that illustrate prominent themes.\n4. **Insights and Observations:** Offer insights on how the #damus community engages with the app and its ecosystem.\n5. **Suggestions for Improvement:** If applicable, suggest ways to enhance user experience or community engagement based on the analysis.\n\n**Requirements:**\n- Expand on each theme with comprehensive details and analysis.\n- Use bullet points or numbered lists for clarity.\n- Include relevant quotes or examples from the text to support your analysis.\n- Ensure your response is detailed, well-structured, and easy to read.\n\n**Context:** The analysis should focus on understanding how users interact with Damus, their appreciation for its features, challenges they face, and how it fits into the broader Nostr ecosystem.\n\n## Nostr thread with hashtag #damus: \n{{ $json.content.toJsonString() }}\n\n",
"promptType": "define"
},
"typeVersion": 1.5
},
{
"id": "55362e03-ca0b-4f5e-a7ff-02828522fc7d",
"name": "gemini-2.0-flash-lite-preview",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
600,
-680
],
"parameters": {
"options": {
"temperature": 0.4
},
"modelName": "=models/gemini-2.0-flash-lite-preview"
},
"credentials": {
"googlePalmApi": {
"id": "L9UNQHflYlyF9Ngd",
"name": "Google Gemini(PaLM) Api account"
}
},
"typeVersion": 1
},
{
"id": "7f457b3f-d39b-4062-ada0-5e81f3768857",
"name": "gemini-2.0-flash-lite-preview1",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
600,
-240
],
"parameters": {
"options": {
"temperature": 0.4
},
"modelName": "models/gemini-2.0-flash-lite-preview"
},
"credentials": {
"googlePalmApi": {
"id": "L9UNQHflYlyF9Ngd",
"name": "Google Gemini(PaLM) Api account"
}
},
"typeVersion": 1
},
{
"id": "bd68e36a-2fa7-4b78-96d8-9c4f97388249",
"name": "gemini-2.0-flash-lite-preview2",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
600,
240
],
"parameters": {
"options": {
"temperature": 0.4
},
"modelName": "models/gemini-2.0-flash-lite-preview"
},
"credentials": {
"googlePalmApi": {
"id": "L9UNQHflYlyF9Ngd",
"name": "Google Gemini(PaLM) Api account"
}
},
"typeVersion": 1
},
{
"id": "24f378ca-8a10-441f-886d-136314fa30de",
"name": "Gmail Report",
"type": "n8n-nodes-base.gmail",
"position": [
1080,
80
],
"webhookId": "e07f9378-bfa5-48ac-88fd-0ef88a725ede",
"parameters": {
"sendTo": "joe@example.com",
"message": "={{ $json.data }}",
"options": {
"appendAttribution": false
},
"subject": "#damus"
},
"credentials": {
"gmailOAuth2": {
"id": "1xpVDEQ1yx8gV022",
"name": "Gmail account"
}
},
"typeVersion": 2.1
},
{
"id": "f4814872-577a-4243-ac1b-e152e147dca0",
"name": "Aggregate #damus Content",
"type": "n8n-nodes-base.aggregate",
"position": [
120,
-140
],
"parameters": {
"options": {},
"fieldsToAggregate": {
"fieldToAggregate": [
{
"fieldToAggregate": "content"
}
]
}
},
"typeVersion": 1
},
{
"id": "d2079c9e-b743-4353-bda9-e269168f5461",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
360,
-940
],
"parameters": {
"color": 6,
"width": 960,
"height": 420,
"content": "## #damus Threads Themes"
},
"typeVersion": 1
},
{
"id": "5f69afb5-6e3c-4f65-84bb-8c1f4544b2c5",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
360,
-480
],
"parameters": {
"color": 5,
"width": 520,
"height": 420,
"content": "## #damus Threads Themes"
},
"typeVersion": 1
},
{
"id": "6de3d9d2-98be-4102-9ed5-cda48b37eee7",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
360,
-20
],
"parameters": {
"color": 4,
"width": 960,
"height": 420,
"content": "## #damus Threads & Threads Report"
},
"typeVersion": 1
},
{
"id": "42f333ce-bdd7-4950-9ef1-ae797a671f5d",
"name": "Merge Themes and Content",
"type": "n8n-nodes-base.merge",
"position": [
1000,
-160
],
"parameters": {
"mode": "combine",
"options": {},
"combineBy": "combineByPosition"
},
"typeVersion": 3
},
{
"id": "7ff77e60-03ed-4937-b923-74a7f588fd2a",
"name": "Schedule Trigger",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-500,
-260
],
"parameters": {
"rule": {
"interval": [
{}
]
}
},
"typeVersion": 1.2
},
{
"id": "d1939a96-1e68-4d90-a456-55852c941e28",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-280,
-580
],
"parameters": {
"color": 6,
"width": 340,
"height": 700,
"content": "## Get Nostr Threads with Hashtag #damus\n\nThe social network you control\nYour very own social network for your friends or business.\nAvailable Now on iOS, iPad and macOS (M1/M2)\n\nhttps://nostr.com/\nhttps://damus.io/\nhttps://damus.io/notedeck/\n\n### n8n Community Node https://github.com/ocknamo/n8n-nodes-nostrobots\n"
},
"typeVersion": 1
},
{
"id": "89905442-bf8d-40d2-a9b1-fb3cf3a2ac44",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
940,
-640
],
"parameters": {
"width": 320,
"height": 280,
"content": "## Telegram \n"
},
"typeVersion": 1
},
{
"id": "aee0f3eb-7b0e-4df1-968d-5abe1c22e26a",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
940,
280
],
"parameters": {
"width": 320,
"height": 280,
"content": "## Telegram \n"
},
"typeVersion": 1
},
{
"id": "f6b00109-74ef-4522-b568-6426b054bea3",
"name": "Telegram Themes",
"type": "n8n-nodes-base.telegram",
"position": [
1040,
-560
],
"webhookId": "8406b3d2-5ac6-452d-847f-c0886c8cd058",
"parameters": {
"text": "={{ $json.text.slice(0, 4000) }}",
"chatId": "={{ $env.TELEGRAM_CHAT_ID }}",
"additionalFields": {
"parse_mode": "HTML",
"appendAttribution": false
}
},
"credentials": {
"telegramApi": {
"id": "pAIFhguJlkO3c7aQ",
"name": "Telegram account"
}
},
"typeVersion": 1.2
},
{
"id": "3e7e9c70-43c6-4074-be9a-2f5ed6c4fb0e",
"name": "Telegram Themes & Threads",
"type": "n8n-nodes-base.telegram",
"position": [
1040,
360
],
"webhookId": "8406b3d2-5ac6-452d-847f-c0886c8cd058",
"parameters": {
"text": "={{ $json.text.slice(0, 4000) }}",
"chatId": "={{ $env.TELEGRAM_CHAT_ID }}",
"additionalFields": {
"parse_mode": "HTML",
"appendAttribution": false
}
},
"credentials": {
"telegramApi": {
"id": "pAIFhguJlkO3c7aQ",
"name": "Telegram account"
}
},
"typeVersion": 1.2
},
{
"id": "5bc52456-7bbc-445a-8ffd-f47403a4b978",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
-580,
-340
],
"parameters": {
"color": 4,
"width": 260,
"height": 460,
"content": "## Try Me!"
},
"typeVersion": 1
},
{
"id": "3b61555e-4e20-41d2-8fb7-490a2488f5f2",
"name": "Nostr Read #damus",
"type": "n8n-nodes-nostrobots.nostrobotsread",
"position": [
-160,
-140
],
"parameters": {
"from": 180,
"hashtag": "#damus",
"strategy": "hashtag"
},
"typeVersion": 1
}
],
"active": true,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "06d6edc0-ed5c-48d1-abe6-22b04368d19b",
"connections": {
"Get HTML": {
"main": [
[
{
"node": "Gmail Themes",
"type": "main",
"index": 0
}
]
]
},
"Get HTML Report": {
"main": [
[
{
"node": "Gmail Report",
"type": "main",
"index": 0
}
]
]
},
"Schedule Trigger": {
"main": [
[
{
"node": "Nostr Read #damus",
"type": "main",
"index": 0
}
]
]
},
"Nostr Read #damus": {
"main": [
[
{
"node": "Aggregate #damus Content",
"type": "main",
"index": 0
}
]
]
},
"#damus Themes List": {
"main": [
[
{
"node": "Merge Themes and Content",
"type": "main",
"index": 0
}
]
]
},
"#damus Thread Themes": {
"main": [
[
{
"node": "Get HTML",
"type": "main",
"index": 0
},
{
"node": "#damus Themes List",
"type": "main",
"index": 0
},
{
"node": "Telegram Themes",
"type": "main",
"index": 0
}
]
]
},
"Aggregate #damus Content": {
"main": [
[
{
"node": "#damus Thread Themes",
"type": "main",
"index": 0
},
{
"node": "Merge Themes and Content",
"type": "main",
"index": 1
}
]
]
},
"Merge Themes and Content": {
"main": [
[
{
"node": "#damus Themes & Threads Report",
"type": "main",
"index": 0
}
]
]
},
"gemini-2.0-flash-lite-preview": {
"ai_languageModel": [
[
{
"node": "#damus Thread Themes",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"#damus Themes & Threads Report": {
"main": [
[
{
"node": "Get HTML Report",
"type": "main",
"index": 0
},
{
"node": "Telegram Themes & Threads",
"type": "main",
"index": 0
}
]
]
},
"gemini-2.0-flash-lite-preview1": {
"ai_languageModel": [
[
{
"node": "#damus Themes List",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"gemini-2.0-flash-lite-preview2": {
"ai_languageModel": [
[
{
"node": "#damus Themes & Threads Report",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"When clicking Test workflow": {
"main": [
[
{
"node": "Nostr Read #damus",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,275 @@
{
"id": "06v55r6E13Wfvo66",
"meta": {
"instanceId": "dfec462482c1b16c8ef1928d51584c7f0ae64b3bfaa72e08675b15754b903bd2",
"templateCredsSetupCompleted": true
},
"name": "Gumroad sale trigger",
"tags": [],
"nodes": [
{
"id": "789f1dec-d2d2-4e09-9530-719d354d259c",
"name": "Assign to group",
"type": "n8n-nodes-base.httpRequest",
"position": [
140,
-280
],
"parameters": {
"url": "=https://connect.mailerlite.com/api/subscribers/{{ $json.id }}/groups/152489030254069581",
"method": "POST",
"options": {},
"authentication": "predefinedCredentialType",
"nodeCredentialType": "mailerLiteApi"
},
"credentials": {
"mailerLiteApi": {
"id": "i9V49FSxbwJhAGfI",
"name": "Mailer Lite account"
}
},
"typeVersion": 4.2
},
{
"id": "53c0df02-5571-485c-91ce-6be2f62fd6d6",
"name": "Gumroad Sale Trigger",
"type": "n8n-nodes-base.gumroadTrigger",
"position": [
-520,
-280
],
"webhookId": "06a01b99-cbf1-4694-8502-94ac51670ba4",
"parameters": {
"resource": "sale"
},
"credentials": {
"gumroadApi": {
"id": "wgjGSvLjsRBJImsQ",
"name": "Gumroad account"
}
},
"typeVersion": 1
},
{
"id": "ee782134-e2d4-4f8b-a9d9-a09a919577ab",
"name": "append row in CRM",
"type": "n8n-nodes-base.googleSheets",
"position": [
480,
-280
],
"parameters": {
"columns": {
"value": {
"date": "={{ $('Gumroad Sale Trigger').item.json.sale_timestamp }}",
"email": "={{ $('Gumroad Sale Trigger').item.json.email }}",
"country": "={{ $('Gumroad Sale Trigger').item.json.ip_country }}",
"product name": "={{ $('Gumroad Sale Trigger').item.json.product_name }}"
},
"schema": [
{
"id": "date",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "date",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "product name",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "product name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "email",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "country",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "country",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1XYMstoZ4j3O5T-UYz21ky7P5bkUtzYXQGYCQTRVWCI4/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1XYMstoZ4j3O5T-UYz21ky7P5bkUtzYXQGYCQTRVWCI4",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1XYMstoZ4j3O5T-UYz21ky7P5bkUtzYXQGYCQTRVWCI4/edit?usp=drivesdk",
"cachedResultName": "Gumroad sales CRM"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "Ou2SgvNZctBeYWT5",
"name": "Google Sheets account"
}
},
"typeVersion": 4.5
},
{
"id": "98ff519b-3065-4c6b-bdeb-2d9095e3f52a",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-680,
-540
],
"parameters": {
"width": 460,
"height": 460,
"content": "## Trigger on a new Gumroad sale\n### Requirements\n- A [Gumroad]() account\n- A product listed. We used ours [here](https://1node.gumroad.com/l/topaitools)\n- Head to Settings > Advanced, and create a new application\n\n### Set up\n- Paste your access token on this Gumroad sale trigger"
},
"typeVersion": 1
},
{
"id": "f5ccfe9f-c56c-4394-bebf-1f7438a0dcdf",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-140,
-660
],
"parameters": {
"color": 4,
"width": 480,
"height": 580,
"content": "## Connection to [MailerLite](https://www.mailerlite.com/a/Kr9Yplim6ZhV) newsletter \n### Requirements\n- A [Mailerlite](https://www.mailerlite.com/a/Kr9Yplim6ZhV) account\n- A subscriber group created\n- Generate a new API from the Integrations menu\n\n### Set up\n- You will first need to create the subscriber with a simple Mailer lite node\n- In the second node call the endpoint to [assign that same subscriber to the group](https://developers.mailerlite.com/docs/groups.html#assign-subscriber-to-a-group) you created manually on Mailerlite. For example, we named the group \"Gumroad\"\n- To get the group id, we ran a node that calls the [\"list groups\" endpoint](https://developers.mailerlite.com/docs/groups.html#list-all-groups) and we appended it to the url.\n"
},
"typeVersion": 1
},
{
"id": "e4cea86a-494f-4c3c-9743-3e8eca461a04",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
420,
-460
],
"parameters": {
"color": 4,
"width": 480,
"height": 380,
"content": "## Load into CRM\n### Requirements\n- Set up your api and credentials for Google Sheets. You can find the n8n docs [here](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.googlesheets/?utm_source=n8n_app&utm_medium=node_settings_modal-credential_link&utm_campaign=n8n-nodes-base.googleSheets)\n- Append the row to your table with your desired data collected previously"
},
"typeVersion": 1
},
{
"id": "e81b7ae0-510e-454e-82ff-6d42bde9e81a",
"name": "add subscriber to MailerLite",
"type": "n8n-nodes-base.mailerLite",
"position": [
-60,
-280
],
"parameters": {
"email": "={{ $json.email }}",
"additionalFields": {
"customFieldsUi": {
"customFieldsValues": [
{
"value": "={{ $json.ip_country }}",
"fieldId": "country"
}
]
}
}
},
"credentials": {
"mailerLiteApi": {
"id": "i9V49FSxbwJhAGfI",
"name": "Mailer Lite account"
}
},
"typeVersion": 2
},
{
"id": "9cc00d13-81d9-4584-9066-4b00b2ff7a47",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-160,
-60
],
"parameters": {
"color": 5,
"width": 520,
"height": 180,
"content": "## Why assign the subscriber to a group? \nIn [MailerLite](https://www.mailerlite.com/a/Kr9Yplim6ZhV) you can set up an automation that when a new subscriber is added into a group, a new email sequence begins, which allows you to send multiple emails to this user at a specific frequency.\n\nThis is a very powerful feature to funnel users to engage with your products or services."
},
"typeVersion": 1
}
],
"active": true,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "3b94b27b-05cc-4996-9f1f-33ba7c3632ae",
"connections": {
"Assign to group": {
"main": [
[
{
"node": "append row in CRM",
"type": "main",
"index": 0
}
]
]
},
"Gumroad Sale Trigger": {
"main": [
[
{
"node": "add subscriber to MailerLite",
"type": "main",
"index": 0
}
]
]
},
"add subscriber to MailerLite": {
"main": [
[
{
"node": "Assign to group",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,658 @@
{
"id": "0GCQ1fO3d5MBdKmi",
"meta": {
"instanceId": "fddb3e91967f1012c95dd02bf5ad21f279fc44715f47a7a96a33433621caa253"
},
"name": "template-demo-chatgpt-image-1-with-drive-and-sheet copy",
"tags": [],
"nodes": [
{
"id": "7d78d4e3-cbb3-4f32-82d9-73c9d7f6c892",
"name": "When clicking 'Test workflow'",
"type": "n8n-nodes-base.manualTrigger",
"disabled": true,
"position": [
-480,
-245
],
"parameters": {},
"typeVersion": 1
},
{
"id": "b32b61bb-c837-4697-9742-a1bb2854b628",
"name": "HTTP Request",
"type": "n8n-nodes-base.httpRequest",
"position": [
-260,
-120
],
"parameters": {
"url": "https://api.openai.com/v1/images/generations",
"method": "POST",
"options": {},
"sendBody": true,
"authentication": "predefinedCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "model",
"value": "gpt-image-1"
},
{
"name": "prompt",
"value": "={{ $json.chatInput }}"
},
{
"name": "output_format",
"value": "jpeg"
},
{
"name": "quality",
"value": "low"
},
{
"name": "output_compression",
"value": "={{parseInt('80')}}"
},
{
"name": "size",
"value": "1024x1024"
},
{
"name": "n",
"value": "={{parseInt('1')}}"
},
{
"name": "moderation",
"value": "low"
}
]
},
"nodeCredentialType": "openAiApi"
},
"credentials": {
"openAiApi": {
"id": "GgwYNKMKKqKJICYO",
"name": "OpenAi account - Image"
}
},
"typeVersion": 4.2
},
{
"id": "0ead70d0-9e3b-4f19-afee-b5d4a7b532e9",
"name": "Google Drive",
"type": "n8n-nodes-base.googleDrive",
"position": [
860,
-20
],
"parameters": {
"name": "=chatgpt_created_by_n8n_{{ $('HTTP Request').item.json.created }}",
"driveId": {
"__rl": true,
"mode": "list",
"value": "My Drive"
},
"options": {},
"folderId": {
"__rl": true,
"mode": "list",
"value": "1sIbMHDtcOafBVdCq0gTEuGvnT63s8Fdy",
"cachedResultUrl": "https://drive.google.com/drive/folders/1sIbMHDtcOafBVdCq0gTEuGvnT63s8Fdy",
"cachedResultName": "n8n-demo-gpt_image_1"
},
"inputDataFieldName": "=data"
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "iQdqjdvLVh5ldUIq",
"name": "Personal-Google Drive account"
}
},
"typeVersion": 3
},
{
"id": "a76c4340-9f34-49d1-a831-1ba4515933ee",
"name": "Split Out",
"type": "n8n-nodes-base.splitOut",
"position": [
-40,
-120
],
"parameters": {
"options": {
"includeBinary": true
},
"fieldToSplitOut": "data"
},
"typeVersion": 1
},
{
"id": "c8090e15-b9b9-4999-89f0-97d45e6176d6",
"name": "Convert to File",
"type": "n8n-nodes-base.convertToFile",
"position": [
640,
-20
],
"parameters": {
"options": {
"fileName": "={{ $now.format(\"yyyyMMddHHmmSSS\") }}"
},
"operation": "toBinary",
"sourceProperty": "b64_json"
},
"typeVersion": 1.1
},
{
"id": "692a71fb-6fe3-4728-a588-f9283f5ab968",
"name": "Loop Over Items",
"type": "n8n-nodes-base.splitInBatches",
"position": [
200,
-20
],
"parameters": {
"options": {
"reset": false
},
"batchSize": "=1"
},
"executeOnce": false,
"typeVersion": 3
},
{
"id": "dfa88c15-4d38-4670-9c5a-4e52a9ce9d33",
"name": "Edit Fields-file_name",
"type": "n8n-nodes-base.set",
"position": [
420,
-20
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "10e6d39e-c44c-4db4-bf88-806b2f36c09f",
"name": "file_name",
"type": "string",
"value": "={{ $now.format(\"yyyyMMddHHmmSSS\") }}"
},
{
"id": "c2610584-aafa-4d90-8977-399e49015c32",
"name": "b64_json",
"type": "string",
"value": "={{ $json.b64_json }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "c34c1a91-2601-4750-8134-d31cf377c349",
"name": "Edit Fields1",
"type": "n8n-nodes-base.set",
"position": [
1080,
-20
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "dcfa49d6-a8ed-43a2-9aaa-86751f34e61d",
"name": "id",
"type": "string",
"value": "={{ $json.id }}"
},
{
"id": "d2f7f22d-9453-4b61-bd46-fb3e8d5ad4d8",
"name": "webViewLink",
"type": "string",
"value": "={{ $json.webViewLink }}"
},
{
"id": "b8cf5a41-e354-416e-b548-8d1a274873e0",
"name": "thumbnailLink",
"type": "string",
"value": "={{ $json.thumbnailLink }}"
},
{
"id": "76c11a24-087c-4a6c-a5b4-8901e9436786",
"name": "file_name",
"type": "string",
"value": "={{ $('Edit Fields-file_name').item.json.file_name }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "6bd8f7dc-1006-4d7f-b3eb-0a3aaa1b9a84",
"name": "Google Sheets",
"type": "n8n-nodes-base.googleSheets",
"position": [
1300,
-20
],
"parameters": {
"columns": {
"value": {
"image": "={{ $json.webViewLink }}",
"prompt": "={{ $('When chat message received').item.json.chatInput }}",
"image_thumb": "==IMAGE(\"{{ $('Edit Fields1').item.json.thumbnailLink }}\")"
},
"schema": [
{
"id": "prompt",
"type": "string",
"display": true,
"required": false,
"displayName": "prompt",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "image",
"type": "string",
"display": true,
"required": false,
"displayName": "image",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "image_thumb",
"type": "string",
"display": true,
"required": false,
"displayName": "image_thumb",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {
"cellFormat": "USER_ENTERED"
},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/11K1tui8itMzcSZqHOmzvFnM0G-ihn1uiLUZ_o478j88/edit#gid=0",
"cachedResultName": "工作表1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "11K1tui8itMzcSZqHOmzvFnM0G-ihn1uiLUZ_o478j88",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/11K1tui8itMzcSZqHOmzvFnM0G-ihn1uiLUZ_o478j88/edit?usp=drivesdk",
"cachedResultName": "n8n-chatgpt-image-1-model"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "tufEzuSTEveV3tuA",
"name": "(Personal)Google Sheets account"
}
},
"typeVersion": 4.5
},
{
"id": "8ee28143-d9e7-4d14-929f-c9b6592c366e",
"name": "When chat message received",
"type": "@n8n/n8n-nodes-langchain.chatTrigger",
"position": [
-480,
-45
],
"webhookId": "f64b2006-672a-4ad6-8c30-428b76f5a332",
"parameters": {
"options": {}
},
"typeVersion": 1.1
},
{
"id": "1e687fde-8465-4490-8738-c9832904f2b5",
"name": "Google Sheets1",
"type": "n8n-nodes-base.googleSheets",
"position": [
700,
-400
],
"parameters": {
"columns": {
"value": {
"prompt": "={{ $('When chat message received').item.json.chatInput }}",
"datetime": "={{ $('HTTP Request').item.json.created.toDateTime('s').format('yyyy-MM-dd HH:mm:ss') }}",
"input token": "={{ $('HTTP Request').item.json.usage.input_tokens }}",
"output token": "={{ $('HTTP Request').item.json.usage.output_tokens }}",
"input estimated price": "={{ ( ($('HTTP Request').item.json.usage.input_tokens || 0) * 10 / 1000000 ).toFixed(6) }}",
"total estimated price": "={{ \n (\n (($('HTTP Request').item.json.usage.input_tokens || 0) * 10 / 1000000) +\n (($('HTTP Request').item.json.usage.output_tokens || 0) * 40 / 1000000)\n ).toFixed(6)\n}}",
"output estimated price": "={{ ( ($('HTTP Request').item.json.usage.output_tokens || 0) * 40 / 1000000 ).toFixed(6) }}"
},
"schema": [
{
"id": "prompt",
"type": "string",
"display": true,
"required": false,
"displayName": "prompt",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "datetime",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "datetime",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "input token",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "input token",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "input estimated price",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "input estimated price",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "output token",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "output token",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "output estimated price",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "output estimated price",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "total estimated price",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "total estimated price",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 929800828,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/11K1tui8itMzcSZqHOmzvFnM0G-ihn1uiLUZ_o478j88/edit#gid=929800828",
"cachedResultName": "usage"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "11K1tui8itMzcSZqHOmzvFnM0G-ihn1uiLUZ_o478j88",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/11K1tui8itMzcSZqHOmzvFnM0G-ihn1uiLUZ_o478j88/edit?usp=drivesdk",
"cachedResultName": "n8n-chatgpt-image-1-model"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "tufEzuSTEveV3tuA",
"name": "(Personal)Google Sheets account"
}
},
"typeVersion": 4.5
},
{
"id": "5e1f6dd3-6c1a-4838-86c7-2a3c0cf05c3d",
"name": "Aggregate",
"type": "n8n-nodes-base.aggregate",
"position": [
480,
-400
],
"parameters": {
"options": {},
"aggregate": "aggregateAllItemData"
},
"typeVersion": 1
},
{
"id": "f14edb71-0778-40dc-9f2d-4cfc72b8a351",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-540,
-600
],
"parameters": {
"color": 7,
"width": 340,
"height": 240,
"content": "## Created by darrell_tw_ \n\nAn engineer now focus on AI and Automation\n\n### contact me with following:\n[X](https://x.com/darrell_tw_)\n[Threads](https://www.threads.net/@darrell_tw_)\n[Instagram](https://www.instagram.com/darrell_tw_/)\n[Website](https://www.darrelltw.com/)"
},
"typeVersion": 1
},
{
"id": "6bbe2346-287b-491d-bf20-a76d39a6e297",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-540,
-340
],
"parameters": {
"width": 660,
"height": 480,
"content": "## Use Chat to input prompts for image generation"
},
"typeVersion": 1
},
{
"id": "8dd6607a-16cf-424d-902a-04c43e68f424",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
160,
-200
],
"parameters": {
"color": 2,
"width": 1260,
"height": 420,
"content": "## Process image array data with Loop\nRegardless of single or multiple images\nThey will be in the data[] array\nJust use Loop to process them\n\nImages will be uploaded to Drive and saved as a row in the Sheet with links and thumbnails"
},
"typeVersion": 1
},
{
"id": "f8d0819a-e38a-4f7a-aa79-594ebca465a0",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
400,
-480
],
"parameters": {
"color": 6,
"width": 480,
"height": 260,
"content": "## After processing, save Cost to Sheet"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "cf533114-4aa9-4b06-8247-3c06f9dcbc79",
"connections": {
"Aggregate": {
"main": [
[
{
"node": "Google Sheets1",
"type": "main",
"index": 0
}
]
]
},
"Split Out": {
"main": [
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
},
"Edit Fields1": {
"main": [
[
{
"node": "Google Sheets",
"type": "main",
"index": 0
}
]
]
},
"Google Drive": {
"main": [
[
{
"node": "Edit Fields1",
"type": "main",
"index": 0
}
]
]
},
"HTTP Request": {
"main": [
[
{
"node": "Split Out",
"type": "main",
"index": 0
}
]
]
},
"Google Sheets": {
"main": [
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
},
"Convert to File": {
"main": [
[
{
"node": "Google Drive",
"type": "main",
"index": 0
}
]
]
},
"Loop Over Items": {
"main": [
[
{
"node": "Aggregate",
"type": "main",
"index": 0
}
],
[
{
"node": "Edit Fields-file_name",
"type": "main",
"index": 0
}
]
]
},
"Edit Fields-file_name": {
"main": [
[
{
"node": "Convert to File",
"type": "main",
"index": 0
}
]
]
},
"When chat message received": {
"main": [
[
{
"node": "HTTP Request",
"type": "main",
"index": 0
}
]
]
},
"When clicking 'Test workflow'": {
"main": [
[
{
"node": "HTTP Request",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,266 @@
{
"id": "0H2mo5k35e0nzMEE",
"meta": {
"instanceId": "2e2d423885cf86d4b5420a96c93cd261c847d0419e9bb242fa12caf4a4c298c3",
"templateCredsSetupCompleted": true
},
"name": "New Ticket Alerts to Teams",
"tags": [],
"nodes": [
{
"id": "80c29a2a-c005-4a19-a71e-3e862a4f9b49",
"name": "Schedule Trigger",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-120,
540
],
"parameters": {
"rule": {
"interval": [
{
"field": "cronExpression",
"expression": "*/1 8-16 * * 1-5"
}
]
}
},
"typeVersion": 1.1
},
{
"id": "24b7e81c-51ea-4a0f-9684-e5aef53021ad",
"name": "Add Filterable Parameter",
"type": "n8n-nodes-base.code",
"position": [
460,
460
],
"parameters": {
"jsCode": "for (const item of $input.all()) {\n // Assuming 'id' is the field with the Connectwise Ticket ID\n // Convert 'id' to a string to ensure it has quotes in the JSON output\n item.json.id = item.json.id.toString();\n\n // If 'filterOnThis' is another field you want to set with the id as a string\n item.json.FilterOnThis = item.json.id;\n\n // ... any other operations you want to perform on each item\n}\n\nreturn $input.all();"
},
"typeVersion": 2
},
{
"id": "1ab5a549-34a2-4bed-9c4c-9c268bf04e0d",
"name": "Query Database",
"type": "n8n-nodes-base.redis",
"position": [
460,
620
],
"parameters": {
"key": "={{ $json.id.toString() }}",
"keyType": "string",
"options": {},
"operation": "get",
"propertyName": "=Tickets"
},
"credentials": {
"redis": {
"id": "nm82iTY9aRTp8ZQm",
"name": "Redis-Dispatch"
}
},
"typeVersion": 1,
"alwaysOutputData": true
},
{
"id": "c6f3bb14-3385-4b5a-95b1-f0ac787d056a",
"name": "Filter Out Tickets that have already been sent",
"type": "n8n-nodes-base.merge",
"position": [
780,
540
],
"parameters": {
"mode": "combine",
"options": {
"fuzzyCompare": true
},
"joinMode": "keepNonMatches",
"mergeByFields": {
"values": [
{
"field1": "FilterOnThis",
"field2": "Tickets"
}
]
},
"outputDataFrom": "input1"
},
"typeVersion": 2.1
},
{
"id": "18bb4e45-cfaf-47b7-88fa-4edb316f05d5",
"name": "Get New Tickets",
"type": "n8n-nodes-base.httpRequest",
"position": [
180,
540
],
"parameters": {
"url": "https://na.myconnectwise.net/v4_6_release/apis/3.0/service/tickets?conditions=(status/name=\"New\" or status/name=\"New (email)\" or status/name=\"New (portal)\") and (board/id=25 or board/id=26 or board/id=1 or board/id=28) and parentTicketId=null&PageSize=999",
"options": {},
"sendHeaders": true,
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"headerParameters": {
"parameters": [
{
"name": "clientId",
"value": "934a9a6d-480a-4502-ab77-46bd80b368d7"
}
]
}
},
"credentials": {
"httpHeaderAuth": {
"id": "MlbbiZdsGxeWRyMH",
"name": "Header Auth account"
}
},
"typeVersion": 4.1
},
{
"id": "5a827e46-b257-4078-ba1f-a27bfba7cb02",
"name": "Combine like Companies",
"type": "n8n-nodes-base.code",
"position": [
1040,
620
],
"parameters": {
"jsCode": "// would need to be adapted to your specific data structure.\nreturn Object.values(items.reduce((accumulator, current) => {\n const siteName = current.json.siteName; // assuming 'siteName' is the common property\n const companyName = current.json.company; // replace with the correct path to the company name\n const ticketType = current.json.recordType; // replace with the correct path to the ticket type\n\n // Use a combined key of siteName and companyName to group tickets\n const groupKey = `${siteName} - ${companyName}`;\n\n if (!accumulator[groupKey]) {\n accumulator[groupKey] = {\n siteName,\n companyName,\n ticketType,\n tickets: []\n };\n }\n\n // Create a string that combines the ticket number and summary with a <br> for HTML line breaks\n const ticketInfo = `${current.json.id}: ${current.json.summary}<br>`;\n accumulator[groupKey].tickets.push(ticketInfo);\n\n // If ticketType is not consistent within the same groupKey, handle accordingly\n if (!accumulator[groupKey].ticketType) {\n accumulator[groupKey].ticketType = ticketType;\n } else if (accumulator[groupKey].ticketType !== ticketType) {\n // Handle the case where different ticket types exist within the same groupKey\n accumulator[groupKey].ticketType += `, ${ticketType}`;\n }\n\n return accumulator;\n}, {})).map(group => {\n // Join the tickets array into a single string, separating each ticket with an empty string (effectively nothing)\n const ticketsString = group.tickets.join('');\n\n // Return the final object structure, with each property as needed\n return {\n siteName: group.siteName,\n companyName: group.companyName,\n ticketType: group.ticketType,\n tickets: ticketsString // This is now a single string with <br> as separators\n };\n});\n"
},
"typeVersion": 2
},
{
"id": "0a69f405-cb56-4cb5-b56c-9015602376eb",
"name": "Teams to Dispatch",
"type": "n8n-nodes-base.microsoftTeams",
"position": [
1320,
540
],
"parameters": {
"chatId": "19:3a9ec7df-5b99-4311-9a78-61ac2192da07_449d57c9-64d0-496f-ad07-147a6b388a32@unq.gbl.spaces",
"message": "=Hey Dispatch Team!, A new {{ $json.ticketType }} has come in.<br><br> <strong>Ticket:</strong> {{ $json.tickets }} <strong>Company: </strong> {{ $json.companyName.name }}",
"options": {},
"resource": "chatMessage",
"messageType": "html"
},
"credentials": {
"microsoftTeamsOAuth2Api": {
"id": "9eUxYgQYNgePrgUD",
"name": "Microsoft Teams account"
}
},
"typeVersion": 1.1
},
{
"id": "59beaef0-77af-4ae2-a68d-43313e933a10",
"name": "Log in Redis",
"type": "n8n-nodes-base.redis",
"position": [
1040,
460
],
"parameters": {
"key": "={{ $json.id }}",
"value": "={{ $json.id }}",
"operation": "set"
},
"credentials": {
"redis": {
"id": "nm82iTY9aRTp8ZQm",
"name": "Redis-Dispatch"
}
},
"typeVersion": 1
}
],
"active": true,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "ab7ae9df-5adf-4be4-8c56-39b433641673",
"connections": {
"Query Database": {
"main": [
[
{
"node": "Filter Out Tickets that have already been sent",
"type": "main",
"index": 1
}
]
]
},
"Get New Tickets": {
"main": [
[
{
"node": "Query Database",
"type": "main",
"index": 0
},
{
"node": "Add Filterable Parameter",
"type": "main",
"index": 0
}
]
]
},
"Schedule Trigger": {
"main": [
[
{
"node": "Get New Tickets",
"type": "main",
"index": 0
}
]
]
},
"Combine like Companies": {
"main": [
[
{
"node": "Teams to Dispatch",
"type": "main",
"index": 0
}
]
]
},
"Add Filterable Parameter": {
"main": [
[
{
"node": "Filter Out Tickets that have already been sent",
"type": "main",
"index": 0
}
]
]
},
"Filter Out Tickets that have already been sent": {
"main": [
[
{
"node": "Combine like Companies",
"type": "main",
"index": 0
},
{
"node": "Log in Redis",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,277 @@
{
"id": "0HVA2TOmkdNpH5DP",
"meta": {
"instanceId": "ba8f1362d8ed4c2ce84171d2f481098de4ee775241bdc1660d1dce80434ec7d4",
"templateCredsSetupCompleted": true
},
"name": "Google calendar to Outlook",
"tags": [],
"nodes": [
{
"id": "e7e75d4a-ee5a-4ee7-b69d-71d8eb51fe55",
"name": "Merge",
"type": "n8n-nodes-base.merge",
"position": [
920,
800
],
"parameters": {
"mode": "combine",
"options": {},
"combineBy": "combineAll"
},
"typeVersion": 3
},
{
"id": "6e159340-910c-4c1e-9e6b-c6ef679309be",
"name": "Incoming Event Trigger",
"type": "n8n-nodes-base.googleCalendarTrigger",
"position": [
500,
360
],
"parameters": {
"options": {},
"pollTimes": {
"item": [
{
"mode": "everyMinute"
}
]
},
"triggerOn": "eventCreated",
"calendarId": {
"__rl": true,
"mode": "list",
"value": "your_email@gmail.com",
"cachedResultName": "Your Name"
}
},
"credentials": {
"googleCalendarOAuth2Api": {
"id": "IgBZqXCtaacRpIKt",
"name": "Your Name Google Calendar account"
}
},
"typeVersion": 1
},
{
"id": "7ffb13c3-7d16-4bd8-aed0-7f6378394a1c",
"name": "Cancel Event Trigger",
"type": "n8n-nodes-base.googleCalendarTrigger",
"position": [
280,
600
],
"parameters": {
"options": {},
"pollTimes": {
"item": [
{
"mode": "everyMinute"
}
]
},
"triggerOn": "eventCancelled",
"calendarId": {
"__rl": true,
"mode": "list",
"value": "your_email@gmail.com",
"cachedResultName": "Your Name"
}
},
"credentials": {
"googleCalendarOAuth2Api": {
"id": "IgBZqXCtaacRpIKt",
"name": "Your Name Google Calendar account"
}
},
"typeVersion": 1
},
{
"id": "f0e81f5b-a813-4e03-9400-a97842b6b9b5",
"name": "Create Outlook Event",
"type": "n8n-nodes-base.microsoftOutlook",
"position": [
740,
360
],
"parameters": {
"subject": "={{ \"From private: \" + $json.summary }}",
"resource": "event",
"operation": "create",
"calendarId": {
"__rl": true,
"mode": "list",
"value": "AAMkAGUxOTQ4ZmU0LWMxYjUtNDRiZi1iYjdlLTNmYTFhOWQ3MWZhNwBGAAAAAABlzj22ZOwJQZOQBjwNTK5fBwBW9yW5dIfsR51ayk6B4bZSAAAAAAEGAABW9yW5dIfsR51ayk6B4bZSAAAAAeGaAAA=",
"cachedResultName": "Calendar"
},
"endDateTime": "={{ $json.end.dateTime != undefined ? $json.end.dateTime : $json.end.date }}",
"startDateTime": "={{ $json.start.dateTime != undefined ? $json.start.dateTime : $json.start.date }}",
"additionalFields": {
"body": "={{ $json.description != undefined ? $json.description + \"\\n\" : \"\" + $json.htmlLink }}"
}
},
"credentials": {
"microsoftOutlookOAuth2Api": {
"id": "IsGdpQBgFdZ9bMsM",
"name": "Microsoft Outlook account (alex NLD)"
}
},
"typeVersion": 2
},
{
"id": "0e7c3511-cb4a-46a7-937e-57bdf6bdc00c",
"name": "Get Event to Cancel",
"type": "n8n-nodes-base.microsoftOutlook",
"position": [
520,
600
],
"parameters": {
"limit": 1,
"filters": {
"custom": "=contains(subject, '{{ $json.summary }}')"
},
"resource": "event",
"calendarId": {
"__rl": true,
"mode": "list",
"value": "AAMkAGUxOTQ4ZmU0LWMxYjUtNDRiZi1iYjdlLTNmYTFhOWQ3MWZhNwBGAAAAAABlzj22ZOwJQZOQBjwNTK5fBwBW9yW5dIfsR51ayk6B4bZSAAAAAAEGAABW9yW5dIfsR51ayk6B4bZSAAAAAeGaAAA=",
"cachedResultName": "Calendar"
},
"fromAllCalendars": false
},
"credentials": {
"microsoftOutlookOAuth2Api": {
"id": "IsGdpQBgFdZ9bMsM",
"name": "Microsoft Outlook account (work email)"
}
},
"typeVersion": 2
},
{
"id": "6540c5f5-963b-4260-8c10-1c7f5bb75315",
"name": "Delete Event",
"type": "n8n-nodes-base.microsoftOutlook",
"position": [
780,
600
],
"parameters": {
"eventId": {
"__rl": true,
"mode": "id",
"value": "={{ $json.id }}"
},
"resource": "event",
"operation": "delete",
"calendarId": {
"__rl": true,
"mode": "list",
"value": "AAMkAGUxOTQ4ZmU0LWMxYjUtNDRiZi1iYjdlLTNmYTFhOWQ3MWZhNwBGAAAAAABlzj22ZOwJQZOQBjwNTK5fBwBW9yW5dIfsR51ayk6B4bZSAAAAAAEGAABW9yW5dIfsR51ayk6B4bZSAAAAAeGaAAA=",
"cachedResultName": "Calendar"
}
},
"credentials": {
"microsoftOutlookOAuth2Api": {
"id": "IsGdpQBgFdZ9bMsM",
"name": "Microsoft Outlook account (alex NLD)"
}
},
"typeVersion": 2
},
{
"id": "03cf261c-4c26-4db1-a335-e249c0f590ec",
"name": "Send E-mail with details",
"type": "n8n-nodes-base.microsoftOutlook",
"position": [
1060,
620
],
"parameters": {
"subject": "={{ $json.subject + \" Cancelled\" }}",
"bodyContent": "<h1>Event cancelled via Google Calendar</h1>",
"toRecipients": "your_email@work.zom",
"additionalFields": {
"bodyContentType": "html"
}
},
"credentials": {
"microsoftOutlookOAuth2Api": {
"id": "IsGdpQBgFdZ9bMsM",
"name": "Microsoft Outlook account (work email)"
}
},
"typeVersion": 2
}
],
"active": true,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "34dc3a4d-0db5-4efc-8814-c94d3468540a",
"connections": {
"Merge": {
"main": [
[
{
"node": "Send E-mail with details",
"type": "main",
"index": 0
}
]
]
},
"Delete Event": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 1
}
]
]
},
"Get Event to Cancel": {
"main": [
[
{
"node": "Delete Event",
"type": "main",
"index": 0
},
{
"node": "Merge",
"type": "main",
"index": 0
}
]
]
},
"Cancel Event Trigger": {
"main": [
[
{
"node": "Get Event to Cancel",
"type": "main",
"index": 0
}
]
]
},
"Incoming Event Trigger": {
"main": [
[
{
"node": "Create Outlook Event",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,745 @@
{
"id": "0JsHmmyeHw5Ffz5m",
"meta": {
"instanceId": "d4d7965840e96e50a3e02959a8487c692901dfa8d5cc294134442c67ce1622d3",
"templateCredsSetupCompleted": true
},
"name": "HN Who is Hiring Scrape",
"tags": [],
"nodes": [
{
"id": "f7cdb3ee-9bb0-4006-829a-d4ce797191d5",
"name": "When clicking Test workflow",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-20,
-220
],
"parameters": {},
"typeVersion": 1
},
{
"id": "0475e25d-9bf4-450d-abd3-a04608a438a4",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
60,
-620
],
"parameters": {
"width": 460,
"height": 340,
"content": "## Go to https://hn.algolia.com\n- filter by \"Ask HN: Who is hiring?\" (important with quotes for full match)\n- sort by date\n- Chrome Network Tab > find API call > click \"Copy as cURL\"\n- n8n HTTP node -> import cURL and paste \n- I've set the API key as Header Auth so you will have to do the above yourself to make this work"
},
"typeVersion": 1
},
{
"id": "a686852b-ff84-430b-92bb-ce02a6808e19",
"name": "Split Out",
"type": "n8n-nodes-base.splitOut",
"position": [
400,
-220
],
"parameters": {
"options": {},
"fieldToSplitOut": "hits"
},
"typeVersion": 1
},
{
"id": "cdaaa738-d561-4fa0-b2c7-8ea9e6778eb1",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
1260,
-620
],
"parameters": {
"width": 500,
"height": 340,
"content": "## Go to HN API \nhttps://github.com/HackerNews/API\n\nWe'll need following endpoints: \n- For example, a story: https://hacker-news.firebaseio.com/v0/item/8863.json?print=pretty\n- comment: https://hacker-news.firebaseio.com/v0/item/2921983.json?print=pretty\n\n"
},
"typeVersion": 1
},
{
"id": "4f353598-9e32-4be4-9e7b-c89cc05305fd",
"name": "OpenAI Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
2680,
-20
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "Fbb2ueT0XP5xMRme",
"name": "OpenAi account 2"
}
},
"typeVersion": 1.2
},
{
"id": "5bd0d7cc-497a-497c-aa4c-589d9ceeca14",
"name": "Structured Output Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
2840,
-20
],
"parameters": {
"schemaType": "manual",
"inputSchema": "{\n \"type\": \"object\",\n \"properties\": {\n \"company\": {\n \"type\": [\n \"string\",\n null\n ],\n \"description\": \"Name of the hiring company\"\n },\n \"title\": {\n \"type\": [\n \"string\",\n null\n ],\n \"description\": \"Job title/role being advertised\"\n },\n \"location\": {\n \"type\": [\n \"string\",\n null\n ],\n \"description\": \"Work location including remote/hybrid status\"\n },\n \"type\": {\n \"type\": [\n \"string\",\n null\n ],\n \"enum\": [\n \"FULL_TIME\",\n \"PART_TIME\",\n \"CONTRACT\",\n \"INTERNSHIP\",\n \"FREELANCE\",\n null\n ],\n \"description\": \"Employment type (Full-time, Contract, etc)\"\n },\n \"work_location\": {\n \"type\": [\n \"string\",\n null\n ],\n \"enum\": [\n \"REMOTE\",\n \"HYBRID\",\n \"ON_SITE\",\n null\n ],\n \"description\": \"Work arrangement type\"\n },\n \"salary\": {\n \"type\": [\n \"string\",\n null\n ],\n \"description\": \"Compensation details if provided\"\n },\n \"description\": {\n \"type\": [\n \"string\",\n null\n ],\n \"description\": \"Main job description text including requirements and team info\"\n },\n \"apply_url\": {\n \"type\": [\n \"string\",\n null\n ],\n \"description\": \"Direct application/job posting URL\"\n },\n \"company_url\": {\n \"type\": [\n \"string\",\n null\n ],\n \"description\": \"Company website or careers page\"\n }\n }\n}\n"
},
"typeVersion": 1.2
},
{
"id": "b84ca004-6f3b-4577-8910-61b8584b161d",
"name": "Search for Who is hiring posts",
"type": "n8n-nodes-base.httpRequest",
"position": [
200,
-220
],
"parameters": {
"url": "https://uj5wyc0l7x-dsn.algolia.net/1/indexes/Item_dev_sort_date/query",
"method": "POST",
"options": {},
"jsonBody": "{\n \"query\": \"\\\"Ask HN: Who is hiring\\\"\",\n \"analyticsTags\": [\n \"web\"\n ],\n \"page\": 0,\n \"hitsPerPage\": 30,\n \"minWordSizefor1Typo\": 4,\n \"minWordSizefor2Typos\": 8,\n \"advancedSyntax\": true,\n \"ignorePlurals\": false,\n \"clickAnalytics\": true,\n \"minProximity\": 7,\n \"numericFilters\": [],\n \"tagFilters\": [\n [\n \"story\"\n ],\n []\n ],\n \"typoTolerance\": \"min\",\n \"queryType\": \"prefixNone\",\n \"restrictSearchableAttributes\": [\n \"title\",\n \"comment_text\",\n \"url\",\n \"story_text\",\n \"author\"\n ],\n \"getRankingInfo\": true\n}",
"sendBody": true,
"sendQuery": true,
"sendHeaders": true,
"specifyBody": "json",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"queryParameters": {
"parameters": [
{
"name": "x-algolia-agent",
"value": "Algolia for JavaScript (4.13.1); Browser (lite)"
},
{
"name": "x-algolia-application-id",
"value": "UJ5WYC0L7X"
}
]
},
"headerParameters": {
"parameters": [
{
"name": "Accept",
"value": "*/*"
},
{
"name": "Accept-Language",
"value": "en-GB,en-US;q=0.9,en;q=0.8"
},
{
"name": "Connection",
"value": "keep-alive"
},
{
"name": "DNT",
"value": "1"
},
{
"name": "Origin",
"value": "https://hn.algolia.com"
},
{
"name": "Referer",
"value": "https://hn.algolia.com/"
},
{
"name": "Sec-Fetch-Dest",
"value": "empty"
},
{
"name": "Sec-Fetch-Mode",
"value": "cors"
},
{
"name": "Sec-Fetch-Site",
"value": "cross-site"
},
{
"name": "User-Agent",
"value": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36"
},
{
"name": "sec-ch-ua",
"value": "\"Chromium\";v=\"133\", \"Not(A:Brand\";v=\"99\""
},
{
"name": "sec-ch-ua-mobile",
"value": "?0"
},
{
"name": "sec-ch-ua-platform",
"value": "\"macOS\""
}
]
}
},
"credentials": {
"httpHeaderAuth": {
"id": "oVEXp2ZbYCXypMVz",
"name": "Algolia Auth"
}
},
"typeVersion": 4.2
},
{
"id": "205e66f6-cd6b-4cfd-a6ec-2226c35ddaac",
"name": "Get relevant data",
"type": "n8n-nodes-base.set",
"position": [
700,
-220
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "73dd2325-faa7-4650-bd78-5fc97cc202de",
"name": "title",
"type": "string",
"value": "={{ $json.title }}"
},
{
"id": "44918eac-4510-440e-9ac0-bf14d2b2f3af",
"name": "createdAt",
"type": "string",
"value": "={{ $json.created_at }}"
},
{
"id": "00eb6f09-2c22-411c-949c-886b2d95b6eb",
"name": "updatedAt",
"type": "string",
"value": "={{ $json.updated_at }}"
},
{
"id": "2b4f9da6-f60e-46e0-ba9d-3242fa955a55",
"name": "storyId",
"type": "string",
"value": "={{ $json.story_id }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "16bc5628-8a29-4eac-8be9-b4e9da802e1e",
"name": "Get latest post",
"type": "n8n-nodes-base.filter",
"position": [
900,
-220
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "d7dd7175-2a50-45aa-bd3e-4c248c9193c4",
"operator": {
"type": "dateTime",
"operation": "after"
},
"leftValue": "={{ $json.createdAt }}",
"rightValue": "={{$now.minus({days: 30})}} "
}
]
}
},
"typeVersion": 2.2
},
{
"id": "92e1ef74-5ae1-4195-840b-115184db464f",
"name": "Split out children (jobs)",
"type": "n8n-nodes-base.splitOut",
"position": [
1460,
-220
],
"parameters": {
"options": {},
"fieldToSplitOut": "kids"
},
"typeVersion": 1
},
{
"id": "d0836aae-b98a-497f-a6f7-0ad563c262a0",
"name": "Trun into structured data",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
2600,
-220
],
"parameters": {
"text": "={{ $json.cleaned_text }}",
"messages": {
"messageValues": [
{
"message": "Extract the JSON data"
}
]
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 1.5
},
{
"id": "fd818a93-627c-435d-91ba-5d759d5a9004",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
2600,
-620
],
"parameters": {
"width": 840,
"height": 340,
"content": "## Data Structure\n\nWe use Openai GPT-4o-mini to transform the raw data in a unified data structure. Feel free to change this.\n\n```json\n{\n \"company\": \"Name of the hiring company\",\n \"title\": \"Job title/role being advertised\",\n \"location\": \"Work location including remote/hybrid status\",\n \"type\": \"Employment type (Full-time, Contract, etc)\",\n \"salary\": \"Compensation details if provided\",\n \"description\": \"Main job description text including requirements and team info\",\n \"apply_url\": \"Direct application/job posting URL\",\n \"company_url\": \"Company website or careers page\"\n}\n```"
},
"typeVersion": 1
},
{
"id": "b70c5578-5b81-467a-8ac2-65374e4e52f3",
"name": "Extract text",
"type": "n8n-nodes-base.set",
"position": [
1860,
-220
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "6affa370-56ce-4ad8-8534-8f753fdf07fc",
"name": "text",
"type": "string",
"value": "={{ $json.text }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "acb68d88-9417-42e9-9bcc-7c2fa95c4afd",
"name": "Clean text",
"type": "n8n-nodes-base.code",
"position": [
2060,
-220
],
"parameters": {
"jsCode": "// In a Function node in n8n\nconst inputData = $input.all();\n\nfunction cleanAllPosts(data) {\n return data.map(item => {\n try {\n // Check if item exists and has the expected structure\n if (!item || typeof item !== 'object') {\n return { cleaned_text: '', error: 'Invalid item structure' };\n }\n\n // Get the text, with multiple fallbacks\n let text = '';\n if (typeof item === 'string') {\n text = item;\n } else if (item.json && item.json.text) {\n text = item.json.text;\n } else if (typeof item.json === 'string') {\n text = item.json;\n } else {\n text = JSON.stringify(item);\n }\n\n // Make sure text is a string\n text = String(text);\n \n // Perform the cleaning operations\n try {\n text = text.replace(/&#x2F;/g, '/');\n text = text.replace(/&#x27;/g, \"'\");\n text = text.replace(/&\\w+;/g, ' ');\n text = text.replace(/<[^>]*>/g, '');\n text = text.replace(/\\|\\s*/g, '| ');\n text = text.replace(/\\s+/g, ' ');\n text = text.replace(/\\s*(https?:\\/\\/[^\\s]+)\\s*/g, '\\n$1\\n');\n text = text.replace(/\\n{3,}/g, '\\n\\n');\n text = text.trim();\n } catch (cleaningError) {\n console.log('Error during text cleaning:', cleaningError);\n // Return original text if cleaning fails\n return { cleaned_text: text, warning: 'Partial cleaning applied' };\n }\n\n return { cleaned_text: text };\n \n } catch (error) {\n console.log('Error processing item:', error);\n return { \n cleaned_text: '', \n error: `Processing error: ${error.message}`,\n original: item\n };\n }\n }).filter(result => result.cleaned_text || result.error); \n}\n\ntry {\n return cleanAllPosts(inputData);\n} catch (error) {\n console.log('Fatal error:', error);\n return [{ \n cleaned_text: '', \n error: `Fatal error: ${error.message}`,\n input: inputData \n }];\n}\n"
},
"typeVersion": 2
},
{
"id": "a0727b55-565d-47c0-9ab5-0f001f4b9941",
"name": "Limit for testing (optional)",
"type": "n8n-nodes-base.limit",
"position": [
2280,
-220
],
"parameters": {
"maxItems": 5
},
"typeVersion": 1
},
{
"id": "650baf5e-c2ac-443d-8a2b-6df89717186f",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
580,
-620
],
"parameters": {
"width": 540,
"height": 340,
"content": "## Clean the result \n\n```json\n{\n\"title\": \"Ask HN: Who is hiring? (February 2025)\",\n\"createdAt\": \"2025-02-03T16:00:43Z\",\n\"updatedAt\": \"2025-02-17T08:35:44Z\",\n\"storyId\": \"42919502\"\n},\n{\n\"title\": \"Ask HN: Who is hiring? (January 2025)\",\n\"createdAt\": \"2025-01-02T16:00:09Z\",\n\"updatedAt\": \"2025-02-13T00:03:24Z\",\n\"storyId\": \"42575537\"\n},\n```"
},
"typeVersion": 1
},
{
"id": "1ca5c39f-f21d-455a-b63a-702e7e3ba02b",
"name": "Write results to airtable",
"type": "n8n-nodes-base.airtable",
"position": [
3040,
-220
],
"parameters": {
"base": {
"__rl": true,
"mode": "list",
"value": "appM2JWvA5AstsGdn",
"cachedResultUrl": "https://airtable.com/appM2JWvA5AstsGdn",
"cachedResultName": "HN Who is hiring?"
},
"table": {
"__rl": true,
"mode": "list",
"value": "tblGvcOjqbliwM7AS",
"cachedResultUrl": "https://airtable.com/appM2JWvA5AstsGdn/tblGvcOjqbliwM7AS",
"cachedResultName": "Table 1"
},
"columns": {
"value": {
"type": "={{ $json.output.type }}",
"title": "={{ $json.output.title }}",
"salary": "={{ $json.output.salary }}",
"company": "={{ $json.output.company }}",
"location": "={{ $json.output.location }}",
"apply_url": "={{ $json.output.apply_url }}",
"company_url": "={{ $json.output.company_url }}",
"description": "={{ $json.output.description }}"
},
"schema": [
{
"id": "title",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "title",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "company",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "company",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "location",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "location",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "type",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "type",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "salary",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "salary",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "description",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "description",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "apply_url",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "apply_url",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "company_url",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "company_url",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "posted_date",
"type": "string",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "posted_date",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "create"
},
"credentials": {
"airtableTokenApi": {
"id": "IudXLNj7CDuc5M5a",
"name": "Airtable Personal Access Token account"
}
},
"typeVersion": 2.1
},
{
"id": "d71fa024-86a0-4f74-b033-1f755574080c",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-520,
-300
],
"parameters": {
"width": 380,
"height": 500,
"content": "## Hacker News - Who is Hiring Scrape\n\nIn this template we setup a scraper for the monthly HN Who is Hiring post. This way we can scrape the data and transform it to a common data strcutre.\n\nFirst we use the [Algolia Search](https://hn.algolia.com/) provided by hackernews to drill down the results.\n\nWe can use the official [Hacker News API](https://github.com/HackerNews/API\n) to get the post data and also all the replies!\n\nThis will obviously work for any kind of post on hacker news! Get creative 😃\n\nAll you need is an Openai Account to structure the text data and an Airtable Account (or similar) to write the results to a list.\n\nCopy my base https://airtable.com/appM2JWvA5AstsGdn/shrAuo78cJt5C2laR"
},
"typeVersion": 1
},
{
"id": "7466fb0c-9f0c-4adf-a6de-b2cf09032719",
"name": "HI API: Get the individual job post",
"type": "n8n-nodes-base.httpRequest",
"position": [
1660,
-220
],
"parameters": {
"url": "=https://hacker-news.firebaseio.com/v0/item/{{ $json.kids }}.json?print=pretty",
"options": {}
},
"typeVersion": 4.2
},
{
"id": "184abccf-5838-49bf-9922-e0300c6b145e",
"name": "HN API: Get Main Post",
"type": "n8n-nodes-base.httpRequest",
"position": [
1260,
-220
],
"parameters": {
"url": "=https://hacker-news.firebaseio.com/v0/item/{{ $json.storyId }}.json?print=pretty",
"options": {}
},
"typeVersion": 4.2
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "387f7084-58fa-4643-9351-73c870d3f028",
"connections": {
"Split Out": {
"main": [
[
{
"node": "Get relevant data",
"type": "main",
"index": 0
}
]
]
},
"Clean text": {
"main": [
[
{
"node": "Limit for testing (optional)",
"type": "main",
"index": 0
}
]
]
},
"Extract text": {
"main": [
[
{
"node": "Clean text",
"type": "main",
"index": 0
}
]
]
},
"Get latest post": {
"main": [
[
{
"node": "HN API: Get Main Post",
"type": "main",
"index": 0
}
]
]
},
"Get relevant data": {
"main": [
[
{
"node": "Get latest post",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "Trun into structured data",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"HN API: Get Main Post": {
"main": [
[
{
"node": "Split out children (jobs)",
"type": "main",
"index": 0
}
]
]
},
"Structured Output Parser": {
"ai_outputParser": [
[
{
"node": "Trun into structured data",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Split out children (jobs)": {
"main": [
[
{
"node": "HI API: Get the individual job post",
"type": "main",
"index": 0
}
]
]
},
"Trun into structured data": {
"main": [
[
{
"node": "Write results to airtable",
"type": "main",
"index": 0
}
]
]
},
"Limit for testing (optional)": {
"main": [
[
{
"node": "Trun into structured data",
"type": "main",
"index": 0
}
]
]
},
"Search for Who is hiring posts": {
"main": [
[
{
"node": "Split Out",
"type": "main",
"index": 0
}
]
]
},
"When clicking Test workflow": {
"main": [
[
{
"node": "Search for Who is hiring posts",
"type": "main",
"index": 0
}
]
]
},
"HI API: Get the individual job post": {
"main": [
[
{
"node": "Extract text",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,480 @@
{
"id": "0QQxgdQABUbbDJ0G",
"meta": {
"instanceId": "c98909b50b05c4069bd93ee5a4753d07322c9680e81da8568e96de2c713adb5c"
},
"name": "Multi-Agent Conversation",
"tags": [],
"nodes": [
{
"id": "218308e2-dc68-43ee-ae84-d931ad7a4ac5",
"name": "When chat message received",
"type": "@n8n/n8n-nodes-langchain.chatTrigger",
"position": [
-1880,
-3280
],
"webhookId": "a74752f3-419a-4510-856f-3efeaceec019",
"parameters": {
"options": {}
},
"typeVersion": 1.1
},
{
"id": "a519fe1e-8739-46e0-9770-deb256ab96cf",
"name": "AI Agent",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
-340,
-3280
],
"parameters": {
"text": "={{ $json.chatInput }}",
"options": {
"systemMessage": "=Current date is {{ $now.format('yyyy-MM-dd') }}. The current time is {{ $now.format('HH:MM:ss') }}.\n\nThe user is {{ $('Define Global Settings').item.json.user.name }}, based in {{ $('Define Global Settings').item.json.user.location }}. {{ $('Define Global Settings').item.json.user.notes }}\n\nYou are part of a conversation with a user and multiple AI Assistants: {{ $('Define Agent Settings').item.json.keys() }}\n\nYou are {{ $('First loop?').item.json.name }}.\n\n{{ $('Loop Over Items').item.json.systemMessage }}\n\n{{ $('Define Global Settings').item.json.global.systemMessage }}"
},
"promptType": "define"
},
"typeVersion": 1.8
},
{
"id": "2e00f0ff-e7af-45d5-99bc-23031b5d7892",
"name": "Loop Over Items",
"type": "n8n-nodes-base.splitInBatches",
"position": [
-1000,
-3280
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "1c979a20-46a5-4591-92da-82c1c96277c6",
"name": "Extract mentions",
"type": "n8n-nodes-base.code",
"position": [
-1220,
-3280
],
"parameters": {
"jsCode": "// Analyzes the user message and extracts @mentions in the order they appear. If there are none, all Assistants will be called in random order.\n// --- Configuration: Adjust these lines ---\nconst chatMessageNodeName = 'When chat message received'; // <-- Replace with your Chat Message node name\nconst agentSetupNodeName = 'Define Agent Settings'; // <-- Replace with your Agent Setup node name\nconst chatTextPath = 'json.chatInput'; // <-- Replace with path to text in Chat node output (e.g., 'json.message')\n// --- End Configuration ---\n\n// Helper function for safe nested property access (alternative to _.get)\nfunction getSafe(obj, path, defaultValue = undefined) {\n const pathParts = path.split('.');\n let current = obj;\n for (const part of pathParts) {\n if (current === null || current === undefined || typeof current !== 'object' || !Object.prototype.hasOwnProperty.call(current, part)) {\n return defaultValue;\n }\n current = current[part];\n }\n return current ?? defaultValue;\n}\n\n// 1. Get Chat Text\nconst chatMessageNode = $(chatMessageNodeName);\nconst chatText = getSafe(chatMessageNode.item, chatTextPath, '');\n\n// 2. Get Agent Data and Names\nconst agentSetupNode = $(agentSetupNodeName);\nconst agentData = getSafe(agentSetupNode.item, 'json', {}); // e.g., { Chad: {...}, Gemma: {...}, Claude: {...} }\nconst agentNames = Object.keys(agentData);\n\n// 3. Find all mentions, their names, and their positions in the text\nconst foundMentions = [];\nif (chatText && agentNames.length > 0) {\n const escapeRegex = (s) => s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n const agentPatternPart = agentNames.map(escapeRegex).join('|');\n\n if (agentPatternPart) {\n const mentionPattern = new RegExp(`\\\\B@(${agentPatternPart})\\\\b`, 'gi');\n const matches = chatText.matchAll(mentionPattern);\n\n for (const match of matches) {\n const matchedNameCaseInsensitive = match[1];\n const matchIndex = match.index;\n const canonicalName = agentNames.find(name => name.toLowerCase() === matchedNameCaseInsensitive.toLowerCase());\n if (canonicalName) {\n foundMentions.push({ name: canonicalName, index: matchIndex });\n }\n }\n }\n}\n\n// 4. Sort the found mentions by their index (order of appearance)\nfoundMentions.sort((a, b) => a.index - b.index);\n\n// 5. Map the sorted mentions to the desired output format (array of agent detail objects)\nlet outputArray = foundMentions.map(mention => {\n const agentDetails = agentData[mention.name];\n if (!agentDetails) {\n console.warn(`Could not find details for agent: ${mention.name}`);\n return null;\n }\n return {\n name: agentDetails.name,\n model: agentDetails.model,\n systemMessage: agentDetails.systemMessage\n };\n}).filter(item => item !== null);\n\n// 6. Check if any mentions were specifically found. If not, populate outputArray with ALL agents in RANDOM order.\nif (outputArray.length === 0 && foundMentions.length === 0) { // Check if NO mentions were found initially\n // --- NO MENTIONS FOUND ---\n // Populate outputArray with ALL agents from agentData\n const allAgentDetailsArray = Object.values(agentData);\n\n // --- Simple Randomization ---\n // Shuffle the array in place using sort with a random comparator\n allAgentDetailsArray.sort(() => 0.5 - Math.random());\n // --- End Randomization ---\n\n // Map all agents (now in random order) to the output structure\n outputArray = allAgentDetailsArray.map(agentObject => ({\n name: agentObject.name,\n model: agentObject.model,\n systemMessage: agentObject.systemMessage\n }));\n} // Intentionally no 'else' here, if outputArray already had items from mentions, we use that.\n\n// 7. Final Output Formatting (Handles both cases: specific mentions OR all agents)\n// Check if, after everything, the outputArray is *still* empty (e.g., if agentData was empty initially)\nif (outputArray.length === 0) {\n // If still empty, return a status or error as a fallback\n return [{ json: { status: \"no_agents_available\", message: \"No mentions found and no agents defined.\" } }];\n} else {\n // Return the array of agent objects formatted for n8n (multiple items)\n return outputArray.map(agentObject => ({ json: agentObject }));\n}"
},
"typeVersion": 2
},
{
"id": "45f635ca-f4fa-4f6c-a32a-9722906255fd",
"name": "Simple Memory",
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"position": [
-192,
-3060
],
"parameters": {
"sessionKey": "={{ $('When chat message received').first().json.sessionId }}",
"sessionIdType": "customKey",
"contextWindowLength": 99
},
"typeVersion": 1.3
},
{
"id": "5c903044-bce2-4aa8-b168-a460a4999c54",
"name": "Set last Assistant message as input",
"type": "n8n-nodes-base.set",
"position": [
-560,
-3180
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "38aa959a-e1e5-4c84-a7bd-ff5e0f61b62d",
"name": "=chatInput",
"type": "string",
"value": "={{ $('Set lastAssistantMessage').first().json.lastAssistantMessage }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "7b389b9f-1751-4bc1-9c6f-bf6a04a1e09f",
"name": "Set user message as input",
"type": "n8n-nodes-base.set",
"position": [
-560,
-3380
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "75b61275-7526-4431-b624-f8e098aa812d",
"name": "chatInput",
"type": "string",
"value": "={{ $('When chat message received').item.json.chatInput }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "a238817f-0d10-4cd4-9760-53f69bb179f7",
"name": "First loop?",
"type": "n8n-nodes-base.if",
"position": [
-780,
-3280
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "51c41fdf-f4d3-4c7a-ac18-06815a59a958",
"operator": {
"type": "number",
"operation": "equals"
},
"leftValue": "={{ $runIndex}}",
"rightValue": 0
}
]
}
},
"typeVersion": 2.2
},
{
"id": "415927d7-b1a4-42b2-9607-c6ff707a528b",
"name": "Set lastAssistantMessage",
"type": "n8n-nodes-base.set",
"position": [
36,
-3155
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "b93025b2-f5a7-476b-bd09-b5b4af050e73",
"name": "lastAssistantMessage",
"type": "string",
"value": "=**{{ $('Loop Over Items').item.json.name }}**:\n\n{{ $json.output }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "77861e4b-a1d2-4c35-bf50-15914602a8b5",
"name": "Combine and format responses",
"type": "n8n-nodes-base.code",
"position": [
-780,
-3480
],
"parameters": {
"jsCode": "// Get the array of items from the input (output of the loop)\nconst inputItems = items;\n\n// Extract the 'lastAssistantMessage' from each item's JSON data.\n// If the field is missing or not a string, use an empty string to avoid errors.\nconst messages = inputItems.map(item => {\n const message = item.json.lastAssistantMessage;\n return typeof message === 'string' ? message : '';\n});\n\n// Join the extracted messages together with a horizontal rule separator\nconst combinedText = messages.join('\\n\\n---\\n\\n');\n\n// Return a new single item containing the combined text.\n// You can rename 'output' if you like.\nreturn [{ json: { output: combinedText } }];"
},
"typeVersion": 2
},
{
"id": "4da2f95d-bce4-4844-a23c-63ca777efbfd",
"name": "Define Global Settings",
"type": "n8n-nodes-base.code",
"position": [
-1660,
-3280
],
"parameters": {
"jsCode": "// Configure Global settings. This includes information about you - the user - and a section of the System Message that all Assistants will see. (Assistant-specific System Message sections can be set in the 'Define Agent Settings' node.)\nreturn [\n {\n json: {\n \"user\": {\n \"name\": \"Jon\",\n \"location\": \"Melbourne, Australia\",\n \"notes\": \"Jon likes a casual, informal conversation style.\"\n },\n \"global\": {\n \"systemMessage\": \"Don't overdo the helpful, agreeable approach.\"\n }\n }\n }\n];\n"
},
"typeVersion": 2
},
{
"id": "6639a554-9e5f-40ac-b68e-b8eaa777252d",
"name": "Define Agent Settings",
"type": "n8n-nodes-base.code",
"position": [
-1440,
-3280
],
"parameters": {
"jsCode": "// Configure Assistants. The number of Assistants can be changed by adding or removing JSON objects. Use the OpenRouter model naming convention.\nreturn [\n {\n json: {\n \"Chad\": {\n \"name\": \"Chad\",\n \"model\": \"openai/gpt-4o\",\n \"systemMessage\": \"You are a helpful Assistant. You are eccentric and creative, and try to take discussions into unexpected territory.\"\n },\n \"Claude\": {\n \"name\": \"Claude\",\n \"model\": \"anthropic/claude-3.7-sonnet\",\n \"systemMessage\": \"You are logical and practical.\"\n },\n \"Gemma\": {\n \"name\": \"Gemma\",\n \"model\": \"google/gemini-2.0-flash-lite-001\",\n \"systemMessage\": \"You are super friendly and love to debate.\"\n }\n }\n }\n];\n"
},
"typeVersion": 2
},
{
"id": "d55a7e02-3574-4d78-a141-db8d3657857b",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1750,
-3620
],
"parameters": {
"color": 4,
"width": 500,
"height": 500,
"content": "## Step 1: Configure Settings Nodes\n\nEdit the JSON in these nodes to:\n\n- Configure details about you (the user)\n- Define content that will appear in all system messages\n- Define Agents.\n\nFor Agents, you can configure:\n- How many you create\n- Their names\n- The LLM model they use (choose any that are available via OpenRouter)\n- Agent-specific system prompt content"
},
"typeVersion": 1
},
{
"id": "d3eb2797-4008-4bdb-a588-b2412ed5ffa7",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-400,
-3620
],
"parameters": {
"color": 4,
"width": 360,
"height": 720,
"content": "## Step 2: Connect Agent to OpenRouter\n\nSet your OpenRouter credentials, and all other parameters including system messages and model selection are dynamically populated."
},
"typeVersion": 1
},
{
"id": "a6085a55-db36-42d8-8c57-c9123490581f",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1940,
-3900
],
"parameters": {
"color": 5,
"width": 2180,
"height": 1100,
"content": "# Scalable Multi-Agent Conversations\n\n"
},
"typeVersion": 1
},
{
"id": "d2ee6317-3a9c-4df8-8fce-87daa3530233",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1200,
-3860
],
"parameters": {
"width": 380,
"height": 360,
"content": "## About this workflow\n\n**What does this workflow do?**\nEnables you to initiate a conversation with multiple AI agents at once. Each agent can be configured with a unique name, system instructions, a different model.\n\n**How do I use it?**\n1. Configure the settings nodes to create the Agents you need.\n2. Call one or more individual agents using @Name mentions in your messages. If your message does not have @mentions, all agents will be called, in random order."
},
"typeVersion": 1
},
{
"id": "a190a268-7f90-4c4e-aceb-482545d0b72b",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-820,
-3860
],
"parameters": {
"width": 380,
"height": 360,
"content": "**How does it work?**\nSettings are configured in the first two nodes after the chat trigger. Then @mentions in your message are extracted and fed into a loop. With each loop, the agent's system message and model are dynamically populated, avoiding the need to create multiple agent nodes and complex routing logic.\n\nWhen all agents have had their say, their responses are combined and formatted. The use of a shared memory node enables multi-round conversations.\n\n**What are the limitations?**\nAgents cannot call each other or respond in parallel. Agents' responses are not visible to the user until all agents have responded.\n\n"
},
"typeVersion": 1
},
{
"id": "30d8c207-9a7a-46c5-be89-0deafc6c183f",
"name": "OpenRouter Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
"position": [
-312,
-3060
],
"parameters": {
"model": "={{ $('Extract mentions').item.json.model }}",
"options": {}
},
"credentials": {
"openRouterApi": {
"id": "jB56IT6KRdHSBbkw",
"name": "OpenRouter account"
}
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "6c0312e7-7a81-41cd-9403-8ad947100b80",
"connections": {
"AI Agent": {
"main": [
[
{
"node": "Set lastAssistantMessage",
"type": "main",
"index": 0
}
]
]
},
"First loop?": {
"main": [
[
{
"node": "Set user message as input",
"type": "main",
"index": 0
}
],
[
{
"node": "Set last Assistant message as input",
"type": "main",
"index": 0
}
]
]
},
"Simple Memory": {
"ai_memory": [
[
{
"node": "AI Agent",
"type": "ai_memory",
"index": 0
}
]
]
},
"Loop Over Items": {
"main": [
[
{
"node": "Combine and format responses",
"type": "main",
"index": 0
}
],
[
{
"node": "First loop?",
"type": "main",
"index": 0
}
]
]
},
"Extract mentions": {
"main": [
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
},
"Define Agent Settings": {
"main": [
[
{
"node": "Extract mentions",
"type": "main",
"index": 0
}
]
]
},
"OpenRouter Chat Model": {
"ai_languageModel": [
[
{
"node": "AI Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Define Global Settings": {
"main": [
[
{
"node": "Define Agent Settings",
"type": "main",
"index": 0
}
]
]
},
"Set lastAssistantMessage": {
"main": [
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
},
"Set user message as input": {
"main": [
[
{
"node": "AI Agent",
"type": "main",
"index": 0
}
]
]
},
"When chat message received": {
"main": [
[
{
"node": "Define Global Settings",
"type": "main",
"index": 0
}
]
]
},
"Combine and format responses": {
"main": [
[]
]
},
"Set last Assistant message as input": {
"main": [
[
{
"node": "AI Agent",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,381 @@
{
"id": "0pVPSW4PzJZLLqSf",
"meta": {
"instanceId": "8e47d02981c11ba904b56e6bd77877c35ef5c9aa1cdc4076bcb72bbb235efa38"
},
"name": "Notion to Linkedin",
"tags": [],
"nodes": [
{
"id": "d922cf0c-f1c2-40ff-927c-d0d3e2fb7f27",
"name": "Merge",
"type": "n8n-nodes-base.merge",
"position": [
2140,
460
],
"parameters": {
"mode": "combine",
"options": {},
"combinationMode": "mergeByPosition"
},
"typeVersion": 2.1
},
{
"id": "8c5f68d8-f11d-4b37-b0d8-3abd1b681b56",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
780,
440
],
"parameters": {
"color": 4,
"height": 141.4092845296238,
"content": "## Start the flow every day at the same time"
},
"typeVersion": 1
},
{
"id": "d10de4f3-6e90-474f-bd68-25aae2037b7b",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
1240,
312.5835468325357
],
"parameters": {
"color": 6,
"width": 367.12018536439575,
"height": 382.294335406698,
"content": "## Fetch the day's post from my Notion database"
},
"typeVersion": 1
},
{
"id": "a63bcc85-ec8b-424f-a53c-e4c07db3c7c8",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
1642.6949426092506,
313.81962236044654
],
"parameters": {
"color": 6,
"width": 627.4768047417825,
"height": 380.3367219655605,
"content": "## Process and format the post"
},
"typeVersion": 1
},
{
"id": "d7c0f13c-ebbe-4000-bd8f-d1180d65d02a",
"name": "Schedule Trigger",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
1060,
460
],
"parameters": {
"rule": {
"interval": [
{
"triggerAtHour": 15
}
]
}
},
"typeVersion": 1.2
},
{
"id": "7bebcb2d-1642-48ce-a511-bb0f561ca5cf",
"name": "Filter the table for the day's post",
"type": "n8n-nodes-base.notion",
"position": [
1280,
460
],
"parameters": {
"filters": {
"conditions": [
{
"key": "Date|date",
"date": "={{ $today.format(\"yyyy/mM/dd\") }}",
"condition": "equals"
}
]
},
"options": {},
"resource": "databasePage",
"operation": "getAll",
"databaseId": {
"__rl": true,
"mode": "list",
"value": "f09dc21b-1070-4d5a-bf7f-a9ab3dbb69fb",
"cachedResultUrl": "https://www.notion.so/f09dc21b10704d5abf7fa9ab3dbb69fb",
"cachedResultName": "Postagens"
},
"filterType": "manual"
},
"credentials": {
"notionApi": {
"id": "faERNMuBrkAfVaJR",
"name": "Notion Weck"
}
},
"typeVersion": 2.2
},
{
"id": "ee61bc59-164b-45b4-8b49-57cdba7d298b",
"name": "Fetch the content on the page",
"type": "n8n-nodes-base.notion",
"position": [
1480,
460
],
"parameters": {
"blockId": {
"__rl": true,
"mode": "url",
"value": "={{ $json.url }}"
},
"resource": "block",
"operation": "getAll",
"returnAll": true
},
"credentials": {
"notionApi": {
"id": "faERNMuBrkAfVaJR",
"name": "Notion Weck"
}
},
"typeVersion": 2.2
},
{
"id": "52d1ffef-11e8-4635-bbb8-05e915034379",
"name": "Aggregate the Notion blocks",
"type": "n8n-nodes-base.aggregate",
"position": [
1680,
460
],
"parameters": {
"options": {},
"fieldsToAggregate": {
"fieldToAggregate": [
{
"fieldToAggregate": "content"
},
{
"fieldToAggregate": "image.file.url"
}
]
}
},
"typeVersion": 1
},
{
"id": "8617c530-382b-402b-9c0b-aeb4df2bb920",
"name": "Format the post",
"type": "n8n-nodes-base.code",
"position": [
1900,
360
],
"parameters": {
"jsCode": "const notionData = items[0].json.content;\n\nlet formattedText = notionData[0] \n\nfor (let i = 1; i < notionData.length; i++) {\n if (notionData[i].startsWith('-')) {\n formattedText += '\\n\\n' + notionData[i];\n } else {\n formattedText += '\\n' + notionData[i];\n }\n}\n\nreturn [{ formattedText: formattedText }];\n"
},
"typeVersion": 2
},
{
"id": "0f226cfe-eb31-469a-8e7c-a21192adbd4c",
"name": "Download image",
"type": "n8n-nodes-base.httpRequest",
"position": [
1900,
560
],
"parameters": {
"url": "={{ $json.url[0] }}",
"options": {}
},
"typeVersion": 4.2
},
{
"id": "81a1e39c-c7ea-4635-84fc-a8ae05cfd8f3",
"name": "Publish on LinkedIn",
"type": "n8n-nodes-base.linkedIn",
"position": [
2360,
460
],
"parameters": {
"text": "={{ $json.formattedText }}",
"person": "CcS-_lLyzG",
"additionalFields": {},
"shareMediaCategory": "IMAGE"
},
"credentials": {
"linkedInOAuth2Api": {
"id": "HZbihVPNwXzWRzgU",
"name": "LinkedIn account"
}
},
"typeVersion": 1
},
{
"id": "61b92eb8-1bf8-4e57-9e07-1a39e457ecfb",
"name": "Update post status in notion database",
"type": "n8n-nodes-base.notion",
"position": [
2620,
460
],
"parameters": {
"pageId": {
"__rl": true,
"mode": "url",
"value": "={{ $('Filter the table for the day\\'s post').item.json.url }}"
},
"options": {},
"resource": "databasePage",
"operation": "update",
"propertiesUi": {
"propertyValues": [
{
"key": "Status|select",
"selectValue": "Published"
}
]
}
},
"credentials": {
"notionApi": {
"id": "faERNMuBrkAfVaJR",
"name": "Notion Weck"
}
},
"typeVersion": 2.2
},
{
"id": "397f3772-bb2b-4e58-99f8-2b62cc514b7a",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
760,
120
],
"parameters": {
"color": 3,
"width": 567.6073693795047,
"height": 137.6834217043934,
"content": "## 1. Setup\nSet up your Notion and LinkedIn credentials.\nAttention to the LinkedIn credential: to post on your personal or company profile, you need to have a company page assigned to your profile. After that, you can choose where you want to post."
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"callerPolicy": "workflowsFromSameOwner",
"executionOrder": "v1",
"executionTimeout": 30,
"saveManualExecutions": true
},
"versionId": "d6f51bb9-7320-4984-a009-b0f49073349a",
"connections": {
"Merge": {
"main": [
[
{
"node": "Publish on LinkedIn",
"type": "main",
"index": 0
}
]
]
},
"Download image": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 1
}
]
]
},
"Format the post": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 0
}
]
]
},
"Schedule Trigger": {
"main": [
[
{
"node": "Filter the table for the day's post",
"type": "main",
"index": 0
}
]
]
},
"Publish on LinkedIn": {
"main": [
[
{
"node": "Update post status in notion database",
"type": "main",
"index": 0
}
]
]
},
"Aggregate the Notion blocks": {
"main": [
[
{
"node": "Format the post",
"type": "main",
"index": 0
},
{
"node": "Download image",
"type": "main",
"index": 0
}
]
]
},
"Fetch the content on the page": {
"main": [
[
{
"node": "Aggregate the Notion blocks",
"type": "main",
"index": 0
}
]
]
},
"Filter the table for the day's post": {
"main": [
[
{
"node": "Fetch the content on the page",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,457 @@
{
"id": "0uon02fOzPkLcG6G",
"meta": {
"instanceId": "bb9853d4d7d87207561a30bc6fe4ece20b295264f7d27d4a62215de2f3846a56",
"templateCredsSetupCompleted": true
},
"name": "Lead Qualification with BatchData",
"tags": [],
"nodes": [
{
"id": "376bc838-013e-4033-a508-d27a2a64d792",
"name": "CRM New Lead Webhook",
"type": "n8n-nodes-base.webhook",
"position": [
-2560,
600
],
"webhookId": "8fb37aae-df12-40eb-81ea-0e5022e1f988",
"parameters": {
"path": "crm-new-lead",
"options": {}
},
"typeVersion": 1
},
{
"id": "2ca36d9f-7682-4a08-9fff-1674b36e07e4",
"name": "Webhook Setup Instructions",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2720,
160
],
"parameters": {
"color": 5,
"width": 420,
"height": 620,
"content": "# WEBHOOK SETUP INSTRUCTIONS\n\n1. Copy this webhook URL and configure your CRM to send notifications here\n2. Expected payload format:\n ```\n {\n \"leadId\": \"123\",\n \"crmApiUrl\": \"https://your-crm-api.com/api/v1\",\n \"address\": \"123 Main St\",\n \"city\": \"Anytown\",\n \"state\": \"CA\",\n \"zipcode\": \"90210\"\n }\n ```\n3. All fields are required for property verification"
},
"typeVersion": 1
},
{
"id": "961b3c4c-5b58-439e-9c8c-cc6e9774ebe7",
"name": "Fetch Lead Data",
"type": "n8n-nodes-base.httpRequest",
"position": [
-2180,
600
],
"parameters": {
"url": "={{ $json.crmApiUrl }}/leads/{{ $json.leadId }}",
"options": {},
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"typeVersion": 4.1
},
{
"id": "3549918e-cea8-467e-90d0-3661a5f54ae9",
"name": "CRM API Instructions",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2280,
160
],
"parameters": {
"color": 5,
"width": 300,
"height": 620,
"content": "# CRM API CONFIGURATION\n\n1. Create HTTP Header Auth credentials for your CRM API\n2. Include necessary authorization headers (e.g., 'Authorization: Bearer YOUR_TOKEN')\n3. This node fetches comprehensive lead data using the lead ID from the webhook\n4. Ensure your CRM API returns address information needed for property verification"
},
"typeVersion": 1
},
{
"id": "25445c3c-adf0-41d7-8f5f-c0fabc297658",
"name": "BatchData Property Lookup",
"type": "n8n-nodes-base.httpRequest",
"position": [
-1840,
600
],
"parameters": {
"url": "https://api.batchdata.com/api/v1/property/search",
"options": {},
"sendBody": true,
"authentication": "genericCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "address",
"value": "={{ $json.address }}"
},
{
"name": "city",
"value": "={{ $json.city }}"
},
{
"name": "state",
"value": "={{ $json.state }}"
},
{
"name": "zipcode",
"value": "={{ $json.zipcode }}"
}
]
},
"genericAuthType": "httpHeaderAuth"
},
"typeVersion": 4.1
},
{
"id": "85808ecf-e5b0-4d36-a2c3-66c26bb2a191",
"name": "BatchData API Instructions",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1960,
160
],
"parameters": {
"color": 5,
"width": 360,
"height": 620,
"content": "# BATCHDATA API SETUP\n\n1. Create an account at BatchData.com to get your API key\n2. Set up HTTP Header Auth credentials with 'x-api-key: YOUR_BATCHDATA_API_KEY'\n3. This API call verifies property details using the lead's address\n4. Expected response includes property value, size, age, and ownership status\n5. Adjust API endpoint if needed based on BatchData's documentation"
},
"typeVersion": 1
},
{
"id": "389e2f49-9ed4-4017-8002-ac86e1001ed9",
"name": "Score And Qualify Lead",
"type": "n8n-nodes-base.code",
"position": [
-1480,
620
],
"parameters": {
"jsCode": "// Initialize lead score\nlet score = 0;\nlet qualificationStatus = \"not qualified\";\nlet qualificationNotes = [];\n\n// Get property data from BatchData response\nconst propertyData = $input.first().json;\nconst leadData = $input.first().json;\n\n// Check if property exists\nif (propertyData.success === true && propertyData.data) {\n const property = propertyData.data;\n \n // Score based on property value\n if (property.estimatedValue > 750000) {\n score += 30;\n qualificationNotes.push(\"High-value property: $\" + property.estimatedValue);\n } else if (property.estimatedValue > 500000) {\n score += 20;\n qualificationNotes.push(\"Mid-high value property: $\" + property.estimatedValue);\n } else if (property.estimatedValue > 350000) {\n score += 10;\n qualificationNotes.push(\"Average value property: $\" + property.estimatedValue);\n }\n \n // Score based on property size\n if (property.squareFootage > 3000) {\n score += 15;\n qualificationNotes.push(\"Large property: \" + property.squareFootage + \" sq ft\");\n } else if (property.squareFootage > 2000) {\n score += 10;\n qualificationNotes.push(\"Mid-size property: \" + property.squareFootage + \" sq ft\");\n }\n \n // Score based on property age\n const currentYear = new Date().getFullYear();\n const propertyAge = currentYear - property.yearBuilt;\n \n if (propertyAge < 5) {\n score += 15;\n qualificationNotes.push(\"New construction: \" + property.yearBuilt);\n } else if (propertyAge < 20) {\n score += 10;\n qualificationNotes.push(\"Relatively new property: \" + property.yearBuilt);\n }\n \n // Other factors to consider\n if (property.ownerOccupied === false) {\n score += 15;\n qualificationNotes.push(\"Investment property (not owner-occupied)\");\n }\n \n if (property.lotSize > 0.5) {\n score += 10;\n qualificationNotes.push(\"Large lot size: \" + property.lotSize + \" acres\");\n }\n \n // Determine qualification status based on score\n if (score >= 50) {\n qualificationStatus = \"high-value\";\n } else if (score >= 30) {\n qualificationStatus = \"qualified\";\n } else if (score >= 15) {\n qualificationStatus = \"potential\";\n }\n \n // Combine all data for CRM update\n const enrichedData = {\n leadId: leadData.leadId,\n score: score,\n qualificationStatus: qualificationStatus,\n qualificationNotes: qualificationNotes.join(\", \"),\n propertyData: {\n estimatedValue: property.estimatedValue,\n squareFootage: property.squareFootage,\n yearBuilt: property.yearBuilt,\n lotSize: property.lotSize,\n bedrooms: property.bedrooms,\n bathrooms: property.bathrooms,\n ownerOccupied: property.ownerOccupied,\n lastSaleDate: property.lastSaleDate,\n lastSalePrice: property.lastSalePrice\n }\n };\n \n return enrichedData;\n} else {\n // If property data not found\n qualificationNotes.push(\"Property data not found or verification failed\");\n \n return {\n leadId: leadData.leadId,\n score: 0,\n qualificationStatus: \"unverified\",\n qualificationNotes: qualificationNotes.join(\", \"),\n propertyData: null\n };\n}"
},
"typeVersion": 2
},
{
"id": "f33f6442-5e8b-4aab-b5ff-d37d062a5cfa",
"name": "Lead Scoring Instructions",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1580,
-280
],
"parameters": {
"color": 3,
"width": 320,
"height": 1060,
"content": "# LEAD SCORING ALGORITHM\n\nThis function implements a sophisticated scoring system for property-based leads:\n\n### SCORING FACTORS\n- **Property Value**\n - >$750k: 30 points\n - >$500k: 20 points\n - >$350k: 10 points\n\n- **Square Footage**\n - >3000 sq ft: 15 points\n - >2000 sq ft: 10 points\n\n- **Property Age**\n - <5 years old: 15 points\n - <20 years old: 10 points\n\n- **Other Factors**\n - Investment property: 15 points\n - Large lot (>0.5 acres): 10 points\n\n### QUALIFICATION THRESHOLDS\n- **High-value**: 50+ points\n- **Qualified**: 30-49 points\n- **Potential**: 15-29 points\n- **Not qualified**: <15 points\n- **Unverified**: No property data\n\nCustomize the scoring values and thresholds to match your specific business requirements."
},
"typeVersion": 1
},
{
"id": "b9bcb2af-6ccc-4f9e-9926-765df4f36809",
"name": "Update CRM Lead",
"type": "n8n-nodes-base.httpRequest",
"position": [
-1120,
620
],
"parameters": {
"url": "={{ $json.crmApiUrl }}/leads/{{ $json.leadId }}",
"method": "PUT",
"options": {},
"sendBody": true,
"authentication": "genericCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "score",
"value": "={{ $json.score }}"
},
{
"name": "qualificationStatus",
"value": "={{ $json.qualificationStatus }}"
},
{
"name": "qualificationNotes",
"value": "={{ $json.qualificationNotes }}"
},
{
"name": "propertyValue",
"value": "={{ $json.propertyData.estimatedValue }}"
},
{
"name": "squareFootage",
"value": "={{ $json.propertyData.squareFootage }}"
},
{
"name": "yearBuilt",
"value": "={{ $json.propertyData.yearBuilt }}"
},
{
"name": "bedrooms",
"value": "={{ $json.propertyData.bedrooms }}"
},
{
"name": "bathrooms",
"value": "={{ $json.propertyData.bathrooms }}"
},
{
"name": "batchDataVerified",
"value": "={{ $json.propertyData !== null }}"
}
]
},
"genericAuthType": "httpHeaderAuth"
},
"typeVersion": 4.1
},
{
"id": "3cfa64f8-527a-49d5-9787-156fe084f37c",
"name": "CRM Update Instructions",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1240,
160
],
"parameters": {
"color": 5,
"width": 340,
"height": 620,
"content": "# CRM UPDATE CONFIGURATION\n\n1. This node updates your CRM with enriched property data and lead qualification information\n2. Adjust field names in the body parameters to match your CRM's API schema\n3. Common fields to update include:\n - Lead score and qualification status\n - Property details (value, size, beds/baths)\n - Verification status\n4. If your CRM uses PATCH instead of PUT, adjust the method accordingly\n5. Make sure your CRM credentials have write access to update lead records"
},
"typeVersion": 1
},
{
"id": "8470bcf6-a539-4f75-8494-f76bcfc95f00",
"name": "Is High-Value Lead?",
"type": "n8n-nodes-base.if",
"position": [
-760,
620
],
"parameters": {
"conditions": {
"string": [
{
"value1": "={{ $json.qualificationStatus }}",
"value2": "high-value"
}
]
}
},
"typeVersion": 1
},
{
"id": "da84ac21-fbb2-4640-8e92-f40b23d2fa0a",
"name": "Routing Instructions",
"type": "n8n-nodes-base.stickyNote",
"position": [
-880,
160
],
"parameters": {
"color": 3,
"width": 320,
"height": 620,
"content": "# ROUTING LOGIC\n\nThis conditional node determines the workflow path based on the lead's qualification:\n\n- **TRUE Path (Top)**: Routes high-value leads for immediate follow-up\n- **FALSE Path (Bottom)**: Routes standard leads for notification only\n\nYou can modify the condition to create different paths based on:\n- Score thresholds (e.g., >30 points)\n- Property characteristics (e.g., property value >$1M)\n- Geographic targeting (e.g., specific ZIP codes)\n- Lead source (e.g., referrals vs. web leads)"
},
"typeVersion": 1
},
{
"id": "c7772695-cda1-4483-a961-7468fd075c55",
"name": "Create Immediate Follow-up Task",
"type": "n8n-nodes-base.httpRequest",
"position": [
-180,
320
],
"parameters": {
"url": "={{ $json.crmApiUrl }}/tasks",
"method": "POST",
"options": {},
"sendBody": true,
"authentication": "genericCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "type",
"value": "immediate-followup"
},
{
"name": "leadId",
"value": "={{ $json.leadId }}"
},
{
"name": "priority",
"value": "high"
},
{
"name": "dueDate",
"value": "={{ $now.format(\"YYYY-MM-DD\") }}"
},
{
"name": "note",
"value": "High-value lead with property value of ${{ $json.propertyData.estimatedValue }}. Immediate follow-up required."
},
{
"name": "assignedTo",
"value": "senior-agent"
}
]
},
"genericAuthType": "httpHeaderAuth"
},
"typeVersion": 4.1
},
{
"id": "2fd15500-7314-4910-b822-c3d9de4166df",
"name": "Follow-up Task Instructions",
"type": "n8n-nodes-base.stickyNote",
"position": [
-340,
-140
],
"parameters": {
"color": 4,
"width": 420,
"height": 640,
"content": "# HIGH-VALUE LEAD HANDLING\n\n1. This node creates an urgent follow-up task for premium leads\n2. Customize parameters to match your CRM/task system's API:\n - Assignee (currently \"senior-agent\")\n - Priority level and task type\n - Due date format\n - Task description\n3. Alternative approaches:\n - Send email alerts to sales managers\n - Create Salesforce opportunities\n - Trigger SMS notifications\n - Add to special follow-up campaign"
},
"typeVersion": 1
},
{
"id": "0d0d4e2e-b040-45d1-8a4c-e775520a4bbc",
"name": "Send Slack Notification",
"type": "n8n-nodes-base.slack",
"position": [
-60,
860
],
"webhookId": "dc308b09-6aea-41be-96c4-c322cfc8ed8f",
"parameters": {
"text": "=High-value lead alert: {{ $json.leadId }}\nProperty Value: ${{ $json.propertyData.estimatedValue }}\nScore: {{ $json.score }}\nQualification Notes: {{ $json.qualificationNotes }}",
"select": "channel",
"channelId": "high-value-leads",
"otherOptions": {}
},
"typeVersion": 2
},
{
"id": "de158d72-7472-4075-ba57-13916739d24b",
"name": "Notification Instructions",
"type": "n8n-nodes-base.stickyNote",
"position": [
-340,
520
],
"parameters": {
"color": 4,
"width": 460,
"height": 500,
"content": "# NOTIFICATION CONFIGURATION\n\n1. Set up Slack credentials in n8n's Credentials Manager\n2. Update the channel ID to match your Slack workspace\n3. Customize the notification format and content\n4. Alternative options:\n - Replace with Email notification\n - Use Microsoft Teams\n - Send SMS alerts via Twilio\n - Post to a dedicated dashboard\n - Log to monitoring system"
},
"typeVersion": 1
},
{
"id": "1433b56d-3d8e-465a-bccc-c2dece4d6a1c",
"name": "Workflow Overview",
"type": "n8n-nodes-base.stickyNote",
"position": [
-3200,
260
],
"parameters": {
"width": 400,
"height": 400,
"content": "# BatchData Lead Qualification Workflow\n\nThis workflow integrates with BatchData's Property Lookup API to verify, enrich, and qualify leads based on property data. When a new lead is added to your CRM, the workflow:\n\n1. Retrieves the lead's address information\n2. Verifies property details using BatchData's API\n3. Scores and qualifies the lead based on property characteristics\n4. Updates the CRM with enriched data and qualification status\n5. Routes high-value leads for immediate follow-up\n\n## SETUP CHECKLIST\n- [ ] Configure CRM API credentials\n- [ ] Set up BatchData API key\n- [ ] Configure Slack/notification credentials\n- [ ] Customize scoring thresholds\n- [ ] Adjust CRM field mappings\n- [ ] Test with sample lead data"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "d914c2d9-b2af-4c00-b5cd-7ed80d713cb0",
"connections": {
"Fetch Lead Data": {
"main": [
[
{
"node": "BatchData Property Lookup",
"type": "main",
"index": 0
}
]
]
},
"Update CRM Lead": {
"main": [
[
{
"node": "Is High-Value Lead?",
"type": "main",
"index": 0
}
]
]
},
"Is High-Value Lead?": {
"main": [
[
{
"node": "Create Immediate Follow-up Task",
"type": "main",
"index": 0
}
],
[
{
"node": "Send Slack Notification",
"type": "main",
"index": 0
}
]
]
},
"CRM New Lead Webhook": {
"main": [
[
{
"node": "Fetch Lead Data",
"type": "main",
"index": 0
}
]
]
},
"Score And Qualify Lead": {
"main": [
[
{
"node": "Update CRM Lead",
"type": "main",
"index": 0
}
]
]
},
"BatchData Property Lookup": {
"main": [
[
{
"node": "Score And Qualify Lead",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,61 @@
{
"id": "0wfomsVO0TQtQkwU",
"meta": {
"instanceId": "2e75c9fb3cdcf631da470c0180f0739986baa0ee860de53281e9edc3491b82a3"
},
"name": "Complete Guide to Setting Up and Generating TOTP Codes in n8n 🔐",
"tags": [],
"nodes": [
{
"id": "0fe95b9a-be2b-4022-829e-8b6c801e5baf",
"name": "When clicking Test workflow",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-280,
-340
],
"parameters": {},
"typeVersion": 1
},
{
"id": "02fee6b5-7770-4889-b9bb-89bface8872d",
"name": "TOTP",
"type": "n8n-nodes-base.totp",
"position": [
-40,
-340
],
"parameters": {
"options": {}
},
"credentials": {
"totpApi": {
"id": "9487Zco8UqMQWnpf",
"name": "TOTP account Mars55"
}
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"timezone": "Asia/Tehran",
"callerPolicy": "workflowsFromSameOwner",
"executionOrder": "v1"
},
"versionId": "d7a5fff3-3fcd-45cd-ba06-564097567ff5",
"connections": {
"When clicking Test workflow": {
"main": [
[
{
"node": "TOTP",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,165 @@
{
"id": "1001",
"name": "typeform feedback workflow",
"nodes": [
{
"name": "Typeform Trigger",
"type": "n8n-nodes-base.typeformTrigger",
"notes": "course feedback",
"position": [
450,
300
],
"webhookId": "1234567890",
"parameters": {
"formId": "yxcvbnm"
},
"credentials": {
"typeformApi": "typeform"
},
"notesInFlow": true,
"typeVersion": 1
},
{
"name": "IF",
"type": "n8n-nodes-base.if",
"notes": "filter feedback",
"position": [
850,
300
],
"parameters": {
"conditions": {
"number": [
{
"value1": "={{$json[\"usefulness\"]}}",
"value2": 3,
"operation": "largerEqual"
}
],
"string": [],
"boolean": []
}
},
"notesInFlow": true,
"typeVersion": 1
},
{
"name": "Google Sheets",
"type": "n8n-nodes-base.googleSheets",
"notes": "positive feedback",
"position": [
1050,
200
],
"parameters": {
"range": "positive_feedback!A:C",
"options": {},
"sheetId": "asdfghjklöä",
"operation": "append",
"authentication": "oAuth2"
},
"credentials": {
"googleSheetsOAuth2Api": "google_sheets_oauth"
},
"notesInFlow": true,
"typeVersion": 1
},
{
"name": "Set",
"type": "n8n-nodes-base.set",
"notes": "capture typeform data",
"position": [
650,
300
],
"parameters": {
"values": {
"number": [
{
"name": "usefulness",
"value": "={{$json[\"How useful was the course?\"]}}"
}
],
"string": [
{
"name": "opinion",
"value": "={{$json[\"Your opinion on the course:\"]}}"
}
],
"boolean": []
},
"options": {},
"keepOnlySet": true
},
"notesInFlow": true,
"typeVersion": 1
},
{
"name": "Google Sheets1",
"type": "n8n-nodes-base.googleSheets",
"notes": "negative feedback",
"position": [
1050,
400
],
"parameters": {
"range": "negative_feedback!A:C",
"keyRow": 1,
"options": {},
"sheetId": "qwertzuiop",
"operation": "append",
"authentication": "oAuth2"
},
"credentials": {
"googleSheetsOAuth2Api": "google_sheets_oauth"
},
"notesInFlow": true,
"typeVersion": 1
}
],
"active": false,
"settings": {},
"connections": {
"IF": {
"main": [
[
{
"node": "Google Sheets",
"type": "main",
"index": 0
}
],
[
{
"node": "Google Sheets1",
"type": "main",
"index": 0
}
]
]
},
"Set": {
"main": [
[
{
"node": "IF",
"type": "main",
"index": 0
}
]
]
},
"Typeform Trigger": {
"main": [
[
{
"node": "Set",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,109 @@
{
"nodes": [
{
"name": "Bitwarden",
"type": "n8n-nodes-base.bitwarden",
"position": [
470,
320
],
"parameters": {
"name": "documentation",
"resource": "group",
"operation": "create",
"additionalFields": {}
},
"credentials": {
"bitwardenApi": "Bitwarden API Credentials"
},
"typeVersion": 1
},
{
"name": "Bitwarden1",
"type": "n8n-nodes-base.bitwarden",
"position": [
670,
320
],
"parameters": {
"resource": "member",
"operation": "getAll",
"returnAll": true
},
"credentials": {
"bitwardenApi": "Bitwarden API Credentials"
},
"typeVersion": 1
},
{
"name": "Bitwarden2",
"type": "n8n-nodes-base.bitwarden",
"position": [
870,
320
],
"parameters": {
"groupId": "={{$node[\"Bitwarden\"].json[\"id\"]}}",
"resource": "group",
"memberIds": "={{$json[\"id\"]}}",
"operation": "updateMembers"
},
"credentials": {
"bitwardenApi": "Bitwarden API Credentials"
},
"typeVersion": 1
},
{
"name": "Bitwarden3",
"type": "n8n-nodes-base.bitwarden",
"position": [
1070,
320
],
"parameters": {
"groupId": "={{$node[\"Bitwarden\"].json[\"id\"]}}",
"resource": "group",
"operation": "getMembers"
},
"credentials": {
"bitwardenApi": "Bitwarden API Credentials"
},
"typeVersion": 1
}
],
"connections": {
"Bitwarden": {
"main": [
[
{
"node": "Bitwarden1",
"type": "main",
"index": 0
}
]
]
},
"Bitwarden1": {
"main": [
[
{
"node": "Bitwarden2",
"type": "main",
"index": 0
}
]
]
},
"Bitwarden2": {
"main": [
[
{
"node": "Bitwarden3",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,255 @@
{
"id": 1003,
"name": "New tweets",
"nodes": [
{
"name": "On clicking 'execute'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
240,
260
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Twitter",
"type": "n8n-nodes-base.twitter",
"position": [
520,
160
],
"parameters": {
"limit": 100,
"operation": "search",
"searchText": "verstappen",
"additionalFields": {
"resultType": "mixed"
}
},
"typeVersion": 1
},
{
"name": "Set_AT_list",
"type": "n8n-nodes-base.set",
"position": [
780,
360
],
"parameters": {
"values": {
"number": [
{
"name": "Likes",
"value": "={{$node[\"Twitter\"].json[\"favorite_count\"] ? $node[\"Twitter\"].json[\"favorite_count\"] : 0 }}"
}
],
"string": [
{
"name": "Tweet",
"value": "={{$node[\"get airtable list\"].json[\"fields\"][\"Tweet\"]}}"
},
{
"name": "Tweet_id",
"value": "={{$node[\"get airtable list\"].json[\"fields\"][\"Tweet_id\"]}}"
},
{
"name": "Tweet URL",
"value": "={{$node[\"get airtable list\"].json[\"fields\"][\"Tweet URL\"]}}"
},
{
"name": "Author",
"value": "={{$node[\"get airtable list\"].json[\"fields\"][\"Author\"]}}"
},
{
"name": "Time",
"value": "={{$node[\"get airtable list\"].json[\"fields\"][\"Time\"]}}"
}
]
},
"options": {
"dotNotation": false
},
"keepOnlySet": true
},
"typeVersion": 1
},
{
"name": "get airtable list",
"type": "n8n-nodes-base.airtable",
"position": [
520,
360
],
"parameters": {
"table": "tbl6rexxFBodzKVoC",
"operation": "list",
"application": "app36P08S3Jzki6qJ",
"additionalOptions": {}
},
"credentials": {
"airtableApi": {
"id": "2",
"name": "airtable_api"
}
},
"typeVersion": 1
},
{
"name": "set twitter data",
"type": "n8n-nodes-base.set",
"position": [
780,
160
],
"parameters": {
"values": {
"number": [
{
"name": "Likes",
"value": "={{$node[\"Twitter\"].json[\"favorite_count\"]}}"
}
],
"string": [
{
"name": "Tweet",
"value": "={{$node[\"Twitter\"].json[\"text\"]}}"
},
{
"name": "Tweet_id",
"value": "={{$node[\"Twitter\"].json[\"id\"]}}"
},
{
"name": "Tweet URL",
"value": "=https://twitter.com/{{$node[\"Twitter\"].json[\"user\"][\"screen_name\"]}}/status/{{$node[\"Twitter\"].json[\"id_str\"]}}"
},
{
"name": "Author",
"value": "={{$node[\"Twitter\"].json[\"in_reply_to_screen_name\"]}}"
},
{
"name": "Time",
"value": "={{$node[\"Twitter\"].json[\"created_at\"]}}"
}
]
},
"options": {
"dotNotation": false
},
"keepOnlySet": true
},
"typeVersion": 1
},
{
"name": "Leave only new tweets",
"type": "n8n-nodes-base.merge",
"position": [
1060,
260
],
"parameters": {
"mode": "removeKeyMatches",
"propertyName1": "Tweet_id",
"propertyName2": "Tweet_id"
},
"typeVersion": 1
},
{
"name": "Append new tweets to airtable",
"type": "n8n-nodes-base.airtable",
"position": [
1300,
260
],
"parameters": {
"table": "tbl6rexxFBodzKVoC",
"options": {},
"operation": "append",
"application": "app36P08S3Jzki6qJ",
"addAllFields": "={{true}}"
},
"credentials": {
"airtableApi": {
"id": "2",
"name": "airtable_api"
}
},
"typeVersion": 1
}
],
"active": false,
"settings": {},
"connections": {
"Twitter": {
"main": [
[
{
"node": "set twitter data",
"type": "main",
"index": 0
}
]
]
},
"Set_AT_list": {
"main": [
[
{
"node": "Leave only new tweets",
"type": "main",
"index": 1
}
]
]
},
"set twitter data": {
"main": [
[
{
"node": "Leave only new tweets",
"type": "main",
"index": 0
}
]
]
},
"get airtable list": {
"main": [
[
{
"node": "Set_AT_list",
"type": "main",
"index": 0
}
]
]
},
"Leave only new tweets": {
"main": [
[
{
"node": "Append new tweets to airtable",
"type": "main",
"index": 0
}
]
]
},
"On clicking 'execute'": {
"main": [
[
{
"node": "Twitter",
"type": "main",
"index": 0
},
{
"node": "get airtable list",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,76 @@
{
"nodes": [
{
"name": "Plivo",
"type": "n8n-nodes-base.plivo",
"position": [
1030,
400
],
"parameters": {
"message": "=Hey! The temperature outside is {{$node[\"OpenWeatherMap\"].json[\"main\"][\"temp\"]}}°C."
},
"credentials": {
"plivoApi": "Plivo API Credentials"
},
"typeVersion": 1
},
{
"name": "OpenWeatherMap",
"type": "n8n-nodes-base.openWeatherMap",
"position": [
830,
400
],
"parameters": {
"cityName": "berlin"
},
"credentials": {
"openWeatherMapApi": "owm"
},
"typeVersion": 1
},
{
"name": "Cron",
"type": "n8n-nodes-base.cron",
"position": [
630,
400
],
"parameters": {
"triggerTimes": {
"item": [
{
"hour": 9
}
]
}
},
"typeVersion": 1
}
],
"connections": {
"Cron": {
"main": [
[
{
"node": "OpenWeatherMap",
"type": "main",
"index": 0
}
]
]
},
"OpenWeatherMap": {
"main": [
[
{
"node": "Plivo",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,47 @@
{
"id": "100",
"name": "Create a new task in Todoist",
"nodes": [
{
"name": "On clicking 'execute'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
550,
250
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Todoist",
"type": "n8n-nodes-base.todoist",
"position": [
750,
250
],
"parameters": {
"content": "",
"options": {}
},
"credentials": {
"todoistApi": ""
},
"typeVersion": 1
}
],
"active": false,
"settings": {},
"connections": {
"On clicking 'execute'": {
"main": [
[
{
"node": "Todoist",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,376 @@
{
"id": 100,
"name": "On new Stripe Invoice Payment update Hubspot and notify the team in Slack",
"nodes": [
{
"name": "When Invoice Paid",
"type": "n8n-nodes-base.stripeTrigger",
"position": [
400,
460
],
"webhookId": "47727266-5233-48e5-b7f7-e47252840a4e",
"parameters": {
"events": [
"invoice.payment_succeeded"
]
},
"credentials": {
"stripeApi": {
"id": "39",
"name": "Stripe account"
}
},
"typeVersion": 1
},
{
"name": "Update Deal to Paid",
"type": "n8n-nodes-base.hubspot",
"position": [
1240,
500
],
"parameters": {
"dealId": "={{$json[\"id\"]}}",
"operation": "update",
"updateFields": {
"customPropertiesUi": {
"customPropertiesValues": [
{
"value": "Yes",
"property": "paid"
}
]
}
},
"authentication": "oAuth2"
},
"credentials": {
"hubspotOAuth2Api": {
"id": "60",
"name": "Hubspot account 2"
}
},
"typeVersion": 1
},
{
"name": "Find Deal based on PO Number",
"type": "n8n-nodes-base.hubspot",
"position": [
820,
480
],
"parameters": {
"operation": "search",
"filterGroupsUi": {
"filterGroupsValues": [
{
"filtersUi": {
"filterValues": [
{
"value": "={{$json[\"data\"][\"object\"][\"custom_fields\"][0][\"value\"]}}",
"propertyName": "po_number"
}
]
}
}
]
},
"additionalFields": {}
},
"credentials": {
"hubspotApi": {
"id": "57",
"name": "Hubspot account"
}
},
"typeVersion": 1,
"alwaysOutputData": true
},
{
"name": "If no PO Number",
"type": "n8n-nodes-base.if",
"position": [
600,
460
],
"parameters": {
"conditions": {
"string": [
{
"value1": "={{$json[\"data\"][\"object\"][\"custom_fields\"]}}",
"operation": "isEmpty"
}
]
}
},
"typeVersion": 1
},
{
"name": "If no deal found for PO",
"type": "n8n-nodes-base.if",
"position": [
1020,
480
],
"parameters": {
"conditions": {
"string": [
{
"value1": "={{$json[\"id\"]}}",
"operation": "isEmpty"
}
]
}
},
"typeVersion": 1
},
{
"name": "Send invoice paid message",
"type": "n8n-nodes-base.slack",
"position": [
1420,
500
],
"parameters": {
"text": ":sparkles: An invoice has been paid :sparkles:",
"channel": "team-accounts",
"blocksUi": {
"blocksValues": []
},
"attachments": [
{
"color": "#00FF04",
"fields": {
"item": [
{
"short": true,
"title": "Amount",
"value": "={{$node[\"When Invoice Paid\"].json[\"data\"][\"object\"][\"amount_paid\"]/100}}"
},
{
"short": true,
"title": "Currency",
"value": "={{$node[\"When Invoice Paid\"].json[\"data\"][\"object\"][\"currency\"]}}"
},
{
"short": false,
"title": "Customer Name",
"value": "={{$node[\"When Invoice Paid\"].json[\"data\"][\"object\"][\"customer_name\"]}}"
},
{
"short": false,
"title": "Customer Email",
"value": "={{$node[\"When Invoice Paid\"].json[\"data\"][\"object\"][\"customer_email\"]}}"
},
{
"short": true,
"title": "PO Number",
"value": "={{$node[\"When Invoice Paid\"].json[\"data\"][\"object\"][\"custom_fields\"][0][\"value\"]}}"
},
{
"short": true,
"title": "",
"value": "="
}
]
},
"footer": "=*Transaction ID:* {{$node[\"When Invoice Paid\"].json[\"id\"]}}"
}
],
"otherOptions": {}
},
"credentials": {
"slackApi": {
"id": "53",
"name": "Slack Access Token"
}
},
"typeVersion": 1
},
{
"name": "Send no PO Message",
"type": "n8n-nodes-base.slack",
"position": [
800,
240
],
"parameters": {
"text": ":x: Stripe Payment with no PO Number :x:",
"channel": "team-accounts",
"blocksUi": {
"blocksValues": []
},
"attachments": [
{
"color": "#FF3C00",
"fields": {
"item": [
{
"short": true,
"title": "Amount",
"value": "={{$json[\"data\"][\"object\"][\"amount_paid\"] / 100}}"
},
{
"short": true,
"title": "Currency",
"value": "={{$json[\"data\"][\"object\"][\"currency\"]}}"
},
{
"short": false,
"title": "Customer Name",
"value": "={{$json[\"data\"][\"object\"][\"customer_name\"]}}"
},
{
"short": false,
"title": "Customer Email",
"value": "={{$json[\"data\"][\"object\"][\"customer_email\"]}}"
}
]
},
"footer": "=*Transaction ID:* {{$json[\"id\"]}}"
}
],
"otherOptions": {}
},
"credentials": {
"slackApi": {
"id": "53",
"name": "Slack Access Token"
}
},
"typeVersion": 1
},
{
"name": "Send Deal not found message",
"type": "n8n-nodes-base.slack",
"position": [
1180,
240
],
"parameters": {
"text": ":x: Unable to find Deal for the below payment :x:",
"channel": "team-accounts",
"blocksUi": {
"blocksValues": []
},
"attachments": [
{
"color": "#FF3C00",
"fields": {
"item": [
{
"short": true,
"title": "Amount",
"value": "={{$node[\"When Invoice Paid\"].json[\"data\"][\"object\"][\"amount_paid\"]/100}}"
},
{
"short": true,
"title": "Currency",
"value": "={{$node[\"When Invoice Paid\"].json[\"data\"][\"object\"][\"currency\"]}}"
},
{
"short": false,
"title": "Customer Name",
"value": "={{$node[\"When Invoice Paid\"].json[\"data\"][\"object\"][\"customer_name\"]}}"
},
{
"short": false,
"title": "Customer Email",
"value": "={{$node[\"When Invoice Paid\"].json[\"data\"][\"object\"][\"customer_email\"]}}"
},
{
"short": true,
"title": "PO Number",
"value": "={{$node[\"When Invoice Paid\"].json[\"data\"][\"object\"][\"custom_fields\"][0][\"value\"]}}"
}
]
},
"footer": "=*Transaction ID:* {{$node[\"When Invoice Paid\"].json[\"id\"]}}"
}
],
"otherOptions": {}
},
"credentials": {
"slackApi": {
"id": "53",
"name": "Slack Access Token"
}
},
"typeVersion": 1
}
],
"active": false,
"settings": {},
"connections": {
"If no PO Number": {
"main": [
[
{
"node": "Send no PO Message",
"type": "main",
"index": 0
}
],
[
{
"node": "Find Deal based on PO Number",
"type": "main",
"index": 0
}
]
]
},
"When Invoice Paid": {
"main": [
[
{
"node": "If no PO Number",
"type": "main",
"index": 0
}
]
]
},
"Update Deal to Paid": {
"main": [
[
{
"node": "Send invoice paid message",
"type": "main",
"index": 0
}
]
]
},
"If no deal found for PO": {
"main": [
[
{
"node": "Send Deal not found message",
"type": "main",
"index": 0
}
],
[
{
"node": "Update Deal to Paid",
"type": "main",
"index": 0
}
]
]
},
"Find Deal based on PO Number": {
"main": [
[
{
"node": "If no deal found for PO",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,112 @@
{
"nodes": [
{
"name": "Data 1",
"type": "n8n-nodes-base.function",
"position": [
602,
350
],
"parameters": {
"functionCode": "items[0].json = {\n\"data\": [\n{\n\"pointer\": \"12345\",\n\"panel\": \"234234\",\n\"subject\": \"Blah Blah\",\n\"note\": \"\",\n\"interviewers\": [\n{\n\"id\": \"111222333\",\n\"name\": \"Bobby Johnson\",\n\"email\": \"bobbyj@example.com\"\n}\n],\n\"timezone\": \"America/Los_Angeles\",\n},\n{\n\"pointer\": \"98754\",\n\"panel\": \"3243234\",\n\"subject\": \"Yadda Yadda\",\n\"note\": \"\",\n\"interviewers\": [\n{\n\"id\": \"444555666\",\n\"name\": \"Billy Johnson\",\n\"email\": \"billyj@example.com\"\n}\n],\n\"timezone\": \"America/Los_Angeles\",\n},\n],\n\"hasNext\": false\n};\nreturn items;\n"
},
"typeVersion": 1
},
{
"name": "Data 2",
"type": "n8n-nodes-base.function",
"position": [
602,
550
],
"parameters": {
"functionCode": "items[0].json = [\n{\n\"name\": \"test\",\n\"fields\": {\n\"FirstName\": \"Bobby\",\n\"LastName\": \"Johnson\",\n\"JobTitleDescription\": \"Recruiter\",\n\"HomeDepartmentDescription\": \"Recruiting Team\",\n\"Photo\": [\n{\n\"x\": \"attPuc6gAIHUOHjsY\",\n\"url\": \"http://urlto.com/BobbyPhoto.jpg\",\n\"filename\": \"photo.jpg\",\n\"size\": 28956,\n\"type\": \"image/jpeg\"\n}\n],\n\"eid\": \"111222333\"\n},\n\"createdTime\": \"2019-09-23T04:06:48.000Z\"\n},\n{\n\"name\": \"test2\",\n\"fields\": {\n\"FirstName\": \"Billy\",\n\"LastName\": \"Johnson\",\n\"JobTitleDescription\": \"CEO\",\n\"HomeDepartmentDescription\": \"Boss Team\",\n\"Photo\": [\n{\n\"x\": \"attPuc6gAIHUOHjsY\",\n\"url\": \"http://urlto.com/BillyPhoto.jpg\",\n\"filename\": \"photo.jpg\",\n\"size\": 28956,\n\"type\": \"image/jpeg\"\n}\n],\n\"eid\": \"444555666\"\n},\n\"createdTime\": \"2019-09-23T04:06:48.000Z\"\n}\n,\n{\n\"name\": \"test3\",\n\"fields\": {\n\"FirstName\": \"Susan\",\n\"LastName\": \"Smith\",\n\"JobTitleDescription\": \"CFO\",\n\"HomeDepartmentDescription\": \"Boss Team\",\n\"Photo\": [\n{\n\"x\": \"attPuc6gAIHUOHjsY\",\n\"url\": \"http://urlto.com/SusanPhoto.jpg\",\n\"filename\": \"photo.jpg\",\n\"size\": 28956,\n\"type\": \"image/jpeg\"\n}\n],\n\"eid\": \"777888999\"\n},\n\"createdTime\": \"2019-09-23T04:06:48.000Z\"\n}\n];\nreturn items;"
},
"typeVersion": 1
},
{
"name": "Convert Data 1",
"type": "n8n-nodes-base.function",
"position": [
752,
350
],
"parameters": {
"functionCode": "const newItems = [];\n\nfor (const item of items[0].json.data) {\n newItems.push({ json: item });\n}\n\nreturn newItems;"
},
"typeVersion": 1
},
{
"name": "Convert Data 2",
"type": "n8n-nodes-base.function",
"position": [
752,
550
],
"parameters": {
"functionCode": "const newItems = [];\n\nfor (const item of items[0].json) {\n newItems.push({ json: item });\n}\n\nreturn newItems;"
},
"typeVersion": 1
},
{
"name": "Merge",
"type": "n8n-nodes-base.merge",
"position": [
990,
430
],
"parameters": {
"mode": "mergeByKey",
"propertyName1": "interviewers[0].id",
"propertyName2": "fields.eid"
},
"typeVersion": 1
}
],
"connections": {
"Data 1": {
"main": [
[
{
"node": "Convert Data 1",
"type": "main",
"index": 0
}
]
]
},
"Data 2": {
"main": [
[
{
"node": "Convert Data 2",
"type": "main",
"index": 0
}
]
]
},
"Convert Data 1": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 0
}
]
]
},
"Convert Data 2": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 1
}
]
]
}
}
}

View File

@ -0,0 +1,64 @@
{
"nodes": [
{
"name": "Write Binary File",
"type": "n8n-nodes-base.writeBinaryFile",
"position": [
800,
350
],
"parameters": {
"fileName": "test.json"
},
"typeVersion": 1
},
{
"name": "Make Binary",
"type": "n8n-nodes-base.function",
"position": [
600,
350
],
"parameters": {
"functionCode": "items[0].binary = {\n data: {\n data: new Buffer(JSON.stringify(items[0].json, null, 2)).toString('base64')\n }\n};\nreturn items;"
},
"typeVersion": 1
},
{
"name": "Create Example Data",
"type": "n8n-nodes-base.function",
"position": [
390,
350
],
"parameters": {
"functionCode": "items[0].json = {\n \"text\": \"asdf\",\n \"number\": 1\n};\nreturn items;"
},
"typeVersion": 1
}
],
"connections": {
"Make Binary": {
"main": [
[
{
"node": "Write Binary File",
"type": "main",
"index": 0
}
]
]
},
"Create Example Data": {
"main": [
[
{
"node": "Make Binary",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,119 @@
{
"nodes": [
{
"name": "On clicking 'execute'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
250,
320
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Copper",
"type": "n8n-nodes-base.copper",
"position": [
450,
320
],
"parameters": {
"name": "Harshil",
"resource": "person",
"additionalFields": {
"emails": {
"emailFields": [
{
"email": "harshil@n8n.io",
"category": "work"
}
]
}
}
},
"credentials": {
"copperApi": "Copper API Credentials"
},
"typeVersion": 1
},
{
"name": "Copper1",
"type": "n8n-nodes-base.copper",
"position": [
650,
320
],
"parameters": {
"personId": "={{$json[\"id\"]}}",
"resource": "person",
"operation": "update",
"updateFields": {
"phone_numbers": {
"phoneFields": [
{
"number": "1234567890",
"category": "work"
}
]
}
}
},
"credentials": {
"copperApi": "Copper API Credentials"
},
"typeVersion": 1
},
{
"name": "Copper2",
"type": "n8n-nodes-base.copper",
"position": [
850,
320
],
"parameters": {
"personId": "={{$json[\"id\"]}}",
"resource": "person",
"operation": "get"
},
"credentials": {
"copperApi": "Copper API Credentials"
},
"typeVersion": 1
}
],
"connections": {
"Copper": {
"main": [
[
{
"node": "Copper1",
"type": "main",
"index": 0
}
]
]
},
"Copper1": {
"main": [
[
{
"node": "Copper2",
"type": "main",
"index": 0
}
]
]
},
"On clicking 'execute'": {
"main": [
[
{
"node": "Copper",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,104 @@
{
"id": "1028",
"name": "Loading data into a spreadsheet",
"nodes": [
{
"name": "On clicking 'execute'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
160,
300
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Set",
"type": "n8n-nodes-base.set",
"position": [
650,
300
],
"parameters": {
"values": {
"string": [
{
"name": "Name",
"value": "={{$json[\"properties\"][\"firstname\"][\"value\"]}} {{$json[\"properties\"][\"lastname\"][\"value\"]}}"
},
{
"name": "Email",
"value": "={{$json[\"identity-profiles\"][0][\"identities\"][0][\"value\"]}}"
}
]
},
"options": {},
"keepOnlySet": true
},
"typeVersion": 1
},
{
"name": "Mock data (CRM Contacts)",
"type": "n8n-nodes-base.function",
"notes": "\"Get contacts\" data from Hubspot node. ",
"position": [
400,
300
],
"parameters": {
"functionCode": "var newItems = [];\nnewItems.push({json:{\n \"addedAt\": 1606827045601,\n \"vid\": 1,\n \"canonical-vid\": 1,\n \"merged-vids\": [],\n \"portal-id\": 8924380,\n \"is-contact\": true,\n \"profile-token\": \"AO_T-mMZqmgHPI5CLLlw2qE24AlgWOJUL0LdMb2CegxeMzQK1LXyh7iZAgjNd-00ZdPAfnFU9Lv_7nq6qlrKvfAh8hr_cw-VBH1RCCMgHHYQ06DOXoIGAlViWmMKY-0lF9dv7lBVOMf5\",\n \"profile-url\": \"https://app.hubspot.com/contacts/8924380/contact/1\",\n \"properties\": {\n \"firstname\": {\n \"value\": \"Maria\"\n },\n \"lastmodifieddate\": {\n \"value\": \"1606827057310\"\n },\n \"company\": {\n \"value\": \"HubSpot\"\n },\n \"lastname\": {\n \"value\": \"Johnson (Sample Contact)\"\n }\n },\n \"form-submissions\": [],\n \"identity-profiles\": [\n {\n \"vid\": 1,\n \"saved-at-timestamp\": 1606827045478,\n \"deleted-changed-timestamp\": 0,\n \"identities\": [\n {\n \"type\": \"EMAIL\",\n \"value\": \"emailmaria@hubspot.com\",\n \"timestamp\": 1606827045444,\n \"is-primary\": true\n },\n {\n \"type\": \"LEAD_GUID\",\n \"value\": \"cfa8b21f-164e-4c9a-aab1-1235c81a7d26\",\n \"timestamp\": 1606827045475\n }\n ]\n }\n ],\n \"merge-audits\": []\n }});\nnewItems.push({json:{\n \"addedAt\": 1606827045834,\n \"vid\": 51,\n \"canonical-vid\": 51,\n \"merged-vids\": [],\n \"portal-id\": 8924380,\n \"is-contact\": true,\n \"profile-token\": \"AO_T-mMX1jbZjaachMJ8t1F2yRdvyAvsir5RMvooW7XjbPZTdAv8hc24U0Rnc_PDF1gp1qmc8Tg2hDytOaRXRiWVyg-Eg8rbPFEiXNdU6jfMneow46tsSiQH1yyRf03mMi5ALZXMVfyA\",\n \"profile-url\": \"https://app.hubspot.com/contacts/8924380/contact/51\",\n \"properties\": {\n \"firstname\": {\n \"value\": \"Brian\"\n },\n \"lastmodifieddate\": {\n \"value\": \"1606827060106\"\n },\n \"company\": {\n \"value\": \"HubSpot\"\n },\n \"lastname\": {\n \"value\": \"Halligan (Sample Contact)\"\n }\n },\n \"form-submissions\": [],\n \"identity-profiles\": [\n {\n \"vid\": 51,\n \"saved-at-timestamp\": 1606827045720,\n \"deleted-changed-timestamp\": 0,\n \"identities\": [\n {\n \"type\": \"EMAIL\",\n \"value\": \"bh@hubspot.com\",\n \"timestamp\": 1606827045444,\n \"is-primary\": true\n },\n {\n \"type\": \"LEAD_GUID\",\n \"value\": \"d3749acc-06e1-4511-84fd-7b0d847f6eff\",\n \"timestamp\": 1606827045717\n }\n ]\n }\n ],\n \"merge-audits\": []\n } });\nreturn newItems;"
},
"notesInFlow": true,
"typeVersion": 1
},
{
"name": "Replace me",
"type": "n8n-nodes-base.noOp",
"notes": "Google Sheet/ Airtable/ Database with an \"append\" or \"Add row\" operation",
"position": [
910,
300
],
"parameters": {},
"notesInFlow": true,
"typeVersion": 1
}
],
"active": false,
"settings": {},
"connections": {
"Set": {
"main": [
[
{
"node": "Replace me",
"type": "main",
"index": 0
}
]
]
},
"On clicking 'execute'": {
"main": [
[
{
"node": "Mock data (CRM Contacts)",
"type": "main",
"index": 0
}
]
]
},
"Mock data (CRM Contacts)": {
"main": [
[
{
"node": "Set",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,119 @@
{
"nodes": [
{
"name": "On clicking 'execute'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
250,
320
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Copper",
"type": "n8n-nodes-base.copper",
"position": [
450,
320
],
"parameters": {
"name": "Harshil",
"resource": "person",
"additionalFields": {
"emails": {
"emailFields": [
{
"email": "harshil@n8n.io",
"category": "work"
}
]
}
}
},
"credentials": {
"copperApi": "Copper API Credentials"
},
"typeVersion": 1
},
{
"name": "Copper1",
"type": "n8n-nodes-base.copper",
"position": [
650,
320
],
"parameters": {
"personId": "={{$json[\"id\"]}}",
"resource": "person",
"operation": "update",
"updateFields": {
"phone_numbers": {
"phoneFields": [
{
"number": "1234567890",
"category": "work"
}
]
}
}
},
"credentials": {
"copperApi": "Copper API Credentials"
},
"typeVersion": 1
},
{
"name": "Copper2",
"type": "n8n-nodes-base.copper",
"position": [
850,
320
],
"parameters": {
"personId": "={{$json[\"id\"]}}",
"resource": "person",
"operation": "get"
},
"credentials": {
"copperApi": "Copper API Credentials"
},
"typeVersion": 1
}
],
"connections": {
"Copper": {
"main": [
[
{
"node": "Copper1",
"type": "main",
"index": 0
}
]
]
},
"Copper1": {
"main": [
[
{
"node": "Copper2",
"type": "main",
"index": 0
}
]
]
},
"On clicking 'execute'": {
"main": [
[
{
"node": "Copper",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,87 @@
{
"id": "102",
"name": "Insert data into a new row for a table in Coda",
"nodes": [
{
"name": "On clicking 'execute'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
250,
300
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Coda",
"type": "n8n-nodes-base.coda",
"position": [
650,
300
],
"parameters": {
"docId": "",
"options": {},
"tableId": ""
},
"credentials": {
"codaApi": ""
},
"typeVersion": 1
},
{
"name": "Set",
"type": "n8n-nodes-base.set",
"position": [
450,
300
],
"parameters": {
"values": {
"string": [
{
"name": "Column 1",
"value": "This is column 1 data"
},
{
"name": "Column 2",
"value": "This is column 2 data"
},
{
"name": "Column 3",
"value": "This is column 3 data"
}
]
},
"options": {}
},
"typeVersion": 1
}
],
"active": false,
"settings": {},
"connections": {
"Set": {
"main": [
[
{
"node": "Coda",
"type": "main",
"index": 0
}
]
]
},
"On clicking 'execute'": {
"main": [
[
{
"node": "Set",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,133 @@
{
"id": "102",
"name": "Send updates about the position of the ISS every minute to a topic in ActiveMQ",
"nodes": [
{
"name": "Cron",
"type": "n8n-nodes-base.cron",
"position": [
510,
300
],
"parameters": {
"triggerTimes": {
"item": [
{
"mode": "everyMinute"
}
]
}
},
"typeVersion": 1
},
{
"name": "HTTP Request",
"type": "n8n-nodes-base.httpRequest",
"position": [
710,
300
],
"parameters": {
"url": "https://api.wheretheiss.at/v1/satellites/25544/positions",
"options": {},
"queryParametersUi": {
"parameter": [
{
"name": "timestamps",
"value": "={{Date.now();}}"
}
]
}
},
"typeVersion": 1
},
{
"name": "Set",
"type": "n8n-nodes-base.set",
"position": [
910,
300
],
"parameters": {
"values": {
"number": [
{
"name": "Latitude",
"value": "={{$node[\"HTTP Request\"].json[\"0\"][\"latitude\"]}}"
},
{
"name": "Longitude",
"value": "={{$node[\"HTTP Request\"].json[\"0\"][\"longitude\"]}}"
},
{
"name": "Timestamp",
"value": "={{$node[\"HTTP Request\"].json[\"0\"][\"timestamp\"]}}"
}
],
"string": [
{
"name": "Name",
"value": "={{$node[\"HTTP Request\"].json[\"0\"][\"name\"]}}"
}
]
},
"options": {},
"keepOnlySet": true
},
"typeVersion": 1
},
{
"name": "AMQP Sender",
"type": "n8n-nodes-base.amqp",
"position": [
1110,
300
],
"parameters": {
"sink": "iss-postition",
"options": {}
},
"credentials": {
"amqp": "ampq"
},
"typeVersion": 1
}
],
"active": false,
"settings": {},
"connections": {
"Set": {
"main": [
[
{
"node": "AMQP Sender",
"type": "main",
"index": 0
}
]
]
},
"Cron": {
"main": [
[
{
"node": "HTTP Request",
"type": "main",
"index": 0
}
]
]
},
"HTTP Request": {
"main": [
[
{
"node": "Set",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,76 @@
{
"nodes": [
{
"name": "On clicking 'execute'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
270,
280
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Google Slides",
"type": "n8n-nodes-base.googleSlides",
"position": [
470,
280
],
"parameters": {
"operation": "getSlides",
"returnAll": true,
"authentication": "oAuth2",
"presentationId": "11myCBTn3IT-Iww01WMz43L7HUmQdL6cCR6NCtpsZer0"
},
"credentials": {
"googleSlidesOAuth2Api": "Google Slides Credentials"
},
"typeVersion": 1
},
{
"name": "Google Slides1",
"type": "n8n-nodes-base.googleSlides",
"position": [
670,
280
],
"parameters": {
"download": true,
"resource": "page",
"operation": "getThumbnail",
"pageObjectId": "={{$json[\"objectId\"]}}",
"authentication": "oAuth2",
"presentationId": "={{$node[\"Google Slides\"].parameter[\"presentationId\"]}}"
},
"credentials": {
"googleSlidesOAuth2Api": "Google Slides Credentials"
},
"typeVersion": 1
}
],
"connections": {
"Google Slides": {
"main": [
[
{
"node": "Google Slides1",
"type": "main",
"index": 0
}
]
]
},
"On clicking 'execute'": {
"main": [
[
{
"node": "Google Slides",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,54 @@
{
"nodes": [
{
"name": "Mattermost",
"type": "n8n-nodes-base.mattermost",
"position": [
650,
200
],
"parameters": {
"message": "={{$json[\"contact\"][\"firstName\"]}} from {{$json[\"contact\"][\"company\"]}} has replied back to your campaign.",
"channelId": "qx9yo1i9z3bg5qcy5a1oxnh69c",
"attachments": [],
"otherOptions": {}
},
"credentials": {
"mattermostApi": "Mattermost Credentials"
},
"typeVersion": 1
},
{
"name": "Emelia Trigger",
"type": "n8n-nodes-base.emeliaTrigger",
"position": [
450,
200
],
"webhookId": "f53bc370-a8cb-4748-8f81-be7ae9b94972",
"parameters": {
"events": [
"replied"
],
"campaignId": "6054d068b374b64365740101"
},
"credentials": {
"emeliaApi": "Emelia API Credentials"
},
"typeVersion": 1
}
],
"connections": {
"Emelia Trigger": {
"main": [
[
{
"node": "Mattermost",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,50 @@
{
"id": "103",
"name": "Create a new customer in Chargebee",
"nodes": [
{
"name": "On clicking 'execute'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
250,
300
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Chargebee",
"type": "n8n-nodes-base.chargebee",
"position": [
460,
300
],
"parameters": {
"resource": "customer",
"properties": {
"last_name": "",
"first_name": ""
}
},
"credentials": {
"chargebeeApi": ""
},
"typeVersion": 1
}
],
"active": false,
"settings": {},
"connections": {
"On clicking 'execute'": {
"main": [
[
{
"node": "Chargebee",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,101 @@
{
"id": "103",
"name": "verify email",
"nodes": [
{
"name": "On clicking 'execute'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
440,
510
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Create Email Item",
"type": "n8n-nodes-base.functionItem",
"position": [
640,
510
],
"parameters": {
"functionCode": "item.email = \"mcolomer@gmail.com\";\nreturn item;"
},
"typeVersion": 1
},
{
"name": "Check Email Exists",
"type": "n8n-nodes-base.uproc",
"position": [
850,
510
],
"parameters": {
"tool": "checkEmailExists",
"email": "={{$node[\"Create Email Item\"].json[\"email\"]}}",
"additionalOptions": {}
},
"credentials": {
"uprocApi": "miquel-uproc"
},
"typeVersion": 1
},
{
"name": "Email Exists?",
"type": "n8n-nodes-base.if",
"position": [
1050,
510
],
"parameters": {
"conditions": {
"string": [
{
"value1": "={{$node[\"Check Email Exists\"].json[\"message\"][\"response\"]}}",
"value2": "deliverable"
}
]
}
},
"typeVersion": 1
}
],
"active": false,
"settings": {},
"connections": {
"Create Email Item": {
"main": [
[
{
"node": "Check Email Exists",
"type": "main",
"index": 0
}
]
]
},
"Check Email Exists": {
"main": [
[
{
"node": "Email Exists?",
"type": "main",
"index": 0
}
]
]
},
"On clicking 'execute'": {
"main": [
[
{
"node": "Create Email Item",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,54 @@
{
"nodes": [
{
"name": "Mattermost",
"type": "n8n-nodes-base.mattermost",
"position": [
650,
200
],
"parameters": {
"message": "={{$json[\"contact\"][\"firstName\"]}} from {{$json[\"contact\"][\"company\"]}} has replied back to your campaign.",
"channelId": "qx9yo1i9z3bg5qcy5a1oxnh69c",
"attachments": [],
"otherOptions": {}
},
"credentials": {
"mattermostApi": "Mattermost Credentials"
},
"typeVersion": 1
},
{
"name": "Emelia Trigger",
"type": "n8n-nodes-base.emeliaTrigger",
"position": [
450,
200
],
"webhookId": "f53bc370-a8cb-4748-8f81-be7ae9b94972",
"parameters": {
"events": [
"replied"
],
"campaignId": "6054d068b374b64365740101"
},
"credentials": {
"emeliaApi": "Emelia API Credentials"
},
"typeVersion": 1
}
],
"connections": {
"Emelia Trigger": {
"main": [
[
{
"node": "Mattermost",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,129 @@
{
"nodes": [
{
"name": "AWS SQS",
"type": "n8n-nodes-base.awsSqs",
"position": [
1050,
360
],
"parameters": {
"queue": "",
"options": {}
},
"credentials": {
"aws": "AWS SQS Credentials"
},
"typeVersion": 1
},
{
"name": "Set",
"type": "n8n-nodes-base.set",
"position": [
850,
360
],
"parameters": {
"values": {
"number": [
{
"name": "Latitude",
"value": "={{$node[\"HTTP Request\"].json[\"0\"][\"latitude\"]}}"
},
{
"name": "Longitude",
"value": "={{$node[\"HTTP Request\"].json[\"0\"][\"longitude\"]}}"
},
{
"name": "Timestamp",
"value": "={{$node[\"HTTP Request\"].json[\"0\"][\"timestamp\"]}}"
}
],
"string": [
{
"name": "Name",
"value": "={{$node[\"HTTP Request\"].json[\"0\"][\"name\"]}}"
}
]
},
"options": {},
"keepOnlySet": true
},
"typeVersion": 1
},
{
"name": "HTTP Request",
"type": "n8n-nodes-base.httpRequest",
"position": [
650,
360
],
"parameters": {
"url": "https://api.wheretheiss.at/v1/satellites/25544/positions",
"options": {},
"queryParametersUi": {
"parameter": [
{
"name": "timestamps",
"value": "={{Date.now();}}"
}
]
}
},
"typeVersion": 1
},
{
"name": "Cron",
"type": "n8n-nodes-base.cron",
"position": [
450,
360
],
"parameters": {
"triggerTimes": {
"item": [
{
"mode": "everyMinute"
}
]
}
},
"typeVersion": 1
}
],
"connections": {
"Set": {
"main": [
[
{
"node": "AWS SQS",
"type": "main",
"index": 0
}
]
]
},
"Cron": {
"main": [
[
{
"node": "HTTP Request",
"type": "main",
"index": 0
}
]
]
},
"HTTP Request": {
"main": [
[
{
"node": "Set",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,145 @@
{
"nodes": [
{
"name": "On clicking 'execute'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
250,
200
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Webflow",
"type": "n8n-nodes-base.webflow",
"position": [
450,
200
],
"parameters": {
"siteId": "601788abebf7aa35c1b038a1",
"fieldsUi": {
"fieldValues": [
{
"fieldId": "name",
"fieldValue": "n8n"
},
{
"fieldId": "slug",
"fieldValue": "n8n"
},
{
"fieldId": "_archived",
"fieldValue": "false"
},
{
"fieldId": "_draft",
"fieldValue": "false"
}
]
},
"operation": "create",
"collectionId": "601788ab33a62ac6a2a0284c"
},
"credentials": {
"webflowApi": "Webflow Credentials"
},
"typeVersion": 1
},
{
"name": "Webflow2",
"type": "n8n-nodes-base.webflow",
"position": [
650,
200
],
"parameters": {
"itemId": "={{$json[\"_id\"]}}",
"siteId": "601788abebf7aa35c1b038a1",
"fieldsUi": {
"fieldValues": [
{
"fieldId": "name",
"fieldValue": "={{$json[\"name\"]}}"
},
{
"fieldId": "slug",
"fieldValue": "={{$json[\"slug\"]}}"
},
{
"fieldId": "_archived",
"fieldValue": "={{$json[\"_archived\"]}}"
},
{
"fieldId": "_draft",
"fieldValue": "={{$json[\"_draft\"]}}"
},
{
"fieldId": "avatar",
"fieldValue": "https://n8n.io/n8n-logo.png"
}
]
},
"operation": "update",
"collectionId": "601788ab33a62ac6a2a0284c"
},
"credentials": {
"webflowApi": "Webflow Credentials"
},
"typeVersion": 1
},
{
"name": "Webflow1",
"type": "n8n-nodes-base.webflow",
"position": [
850,
200
],
"parameters": {
"itemId": "={{$json[\"_id\"]}}",
"siteId": "601788abebf7aa35c1b038a1",
"collectionId": "601788ab33a62ac6a2a0284c"
},
"credentials": {
"webflowApi": "Webflow Credentials"
},
"typeVersion": 1
}
],
"connections": {
"Webflow": {
"main": [
[
{
"node": "Webflow2",
"type": "main",
"index": 0
}
]
]
},
"Webflow2": {
"main": [
[
{
"node": "Webflow1",
"type": "main",
"index": 0
}
]
]
},
"On clicking 'execute'": {
"main": [
[
{
"node": "Webflow",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,132 @@
{
"nodes": [
{
"name": "Google BigQuery",
"type": "n8n-nodes-base.googleBigQuery",
"position": [
1010,
240
],
"parameters": {
"columns": "name, latitude, longitude, timestamp",
"options": {},
"tableId": "position",
"datasetId": "iss",
"projectId": "supple-cabinet-289219"
},
"credentials": {
"googleBigQueryOAuth2Api": "BigQuery Credentials"
},
"typeVersion": 1
},
{
"name": "Set",
"type": "n8n-nodes-base.set",
"position": [
810,
240
],
"parameters": {
"values": {
"number": [
{
"name": "latitude",
"value": "={{$node[\"HTTP Request\"].json[\"0\"][\"latitude\"]}}"
},
{
"name": "longitude",
"value": "={{$node[\"HTTP Request\"].json[\"0\"][\"longitude\"]}}"
},
{
"name": "timestamp",
"value": "={{$node[\"HTTP Request\"].json[\"0\"][\"timestamp\"]}}"
}
],
"string": [
{
"name": "name",
"value": "={{$json[\"0\"][\"name\"]}}"
}
]
},
"options": {},
"keepOnlySet": true
},
"typeVersion": 1
},
{
"name": "HTTP Request",
"type": "n8n-nodes-base.httpRequest",
"position": [
610,
240
],
"parameters": {
"url": "https://api.wheretheiss.at/v1/satellites/25544/positions",
"options": {},
"queryParametersUi": {
"parameter": [
{
"name": "timestamps",
"value": "={{Date.now();}}"
}
]
}
},
"typeVersion": 1
},
{
"name": "Cron",
"type": "n8n-nodes-base.cron",
"position": [
410,
240
],
"parameters": {
"triggerTimes": {
"item": [
{
"mode": "everyMinute"
}
]
}
},
"typeVersion": 1
}
],
"connections": {
"Set": {
"main": [
[
{
"node": "Google BigQuery",
"type": "main",
"index": 0
}
]
]
},
"Cron": {
"main": [
[
{
"node": "HTTP Request",
"type": "main",
"index": 0
}
]
]
},
"HTTP Request": {
"main": [
[
{
"node": "Set",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,48 @@
{
"id": "104",
"name": "Look up a person using their email in Clearbit",
"nodes": [
{
"name": "On clicking 'execute'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
250,
300
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Clearbit",
"type": "n8n-nodes-base.clearbit",
"position": [
450,
300
],
"parameters": {
"email": "",
"resource": "person",
"additionalFields": {}
},
"credentials": {
"clearbitApi": ""
},
"typeVersion": 1
}
],
"active": false,
"settings": {},
"connections": {
"On clicking 'execute'": {
"main": [
[
{
"node": "Clearbit",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,162 @@
{
"id": "104",
"name": "location_by_ip",
"nodes": [
{
"name": "On clicking 'execute'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
440,
510
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Get Location By IP",
"type": "n8n-nodes-base.uproc",
"position": [
850,
510
],
"parameters": {
"ip": "={{$node[\"Create IP and Email Item\"].json[\"ip\"]}}",
"tool": "getLocationByIp",
"group": "geographic",
"additionalOptions": {}
},
"credentials": {
"uprocApi": "miquel-uproc"
},
"typeVersion": 1
},
{
"name": "User in Spain?",
"type": "n8n-nodes-base.if",
"position": [
1050,
510
],
"parameters": {
"conditions": {
"string": [
{
"value1": "={{$node[\"Get Location By IP\"].json[\"message\"][\"country_code\"]}}",
"value2": "ES"
}
]
}
},
"typeVersion": 1
},
{
"name": "Create IP and Email Item",
"type": "n8n-nodes-base.functionItem",
"position": [
640,
510
],
"parameters": {
"functionCode": "item.ip = \"83.46.131.46\";\nitem.email = \"miquel@uproc.io\";\n\nreturn item;"
},
"typeVersion": 1
},
{
"name": "Send English Email",
"type": "n8n-nodes-base.awsSes",
"position": [
1270,
650
],
"parameters": {
"body": "Hi,\n\nThank you for your signup!",
"subject": "Welcome aboard",
"fromEmail": "sample@uproc.io",
"toAddresses": [
"={{$node[\"Create IP and Email Item\"].json[\"email\"]}}"
],
"additionalFields": {}
},
"credentials": {
"aws": "ses"
},
"typeVersion": 1
},
{
"name": "Send Spanish Email",
"type": "n8n-nodes-base.awsSes",
"position": [
1270,
420
],
"parameters": {
"body": "Hola,\n\n¡Gracias por registrarte!",
"subject": "Bienvenido a bordo",
"fromEmail": "sample@uproc.io",
"toAddresses": [
"={{$node[\"Create IP and Email Item\"].json[\"email\"]}}"
],
"additionalFields": {}
},
"credentials": {
"aws": "ses"
},
"typeVersion": 1
}
],
"active": false,
"settings": {},
"connections": {
"User in Spain?": {
"main": [
[
{
"node": "Send Spanish Email",
"type": "main",
"index": 0
}
],
[
{
"node": "Send English Email",
"type": "main",
"index": 0
}
]
]
},
"Get Location By IP": {
"main": [
[
{
"node": "User in Spain?",
"type": "main",
"index": 0
}
]
]
},
"On clicking 'execute'": {
"main": [
[
{
"node": "Create IP and Email Item",
"type": "main",
"index": 0
}
]
]
},
"Create IP and Email Item": {
"main": [
[
{
"node": "Get Location By IP",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,121 @@
{
"nodes": [
{
"name": "Airtable",
"type": "n8n-nodes-base.airtable",
"position": [
470,
200
],
"parameters": {
"table": "Table 1",
"operation": "list",
"additionalOptions": {}
},
"credentials": {
"airtableApi": ""
},
"typeVersion": 1
},
{
"name": "Mailcheck",
"type": "n8n-nodes-base.mailcheck",
"position": [
670,
200
],
"parameters": {
"email": "={{$json[\"fields\"][\"Email\"]}}"
},
"credentials": {
"mailcheckApi": "Mailcheck API Credentials"
},
"typeVersion": 1
},
{
"name": "Set",
"type": "n8n-nodes-base.set",
"position": [
870,
200
],
"parameters": {
"values": {
"string": [
{
"name": "ID",
"value": "={{$node[\"Airtable\"].json[\"id\"]}}"
}
],
"boolean": [
{
"name": "Valid",
"value": "={{$json[\"mxExists\"]}}"
}
]
},
"options": {},
"keepOnlySet": true
},
"typeVersion": 1
},
{
"name": "Airtable1",
"type": "n8n-nodes-base.airtable",
"position": [
1070,
200
],
"parameters": {
"id": "={{$json[\"ID\"]}}",
"table": "=Table 1",
"fields": [
"Valid"
],
"options": {},
"operation": "update",
"application": "={{$node[\"Airtable\"].parameter[\"application\"]}}",
"updateAllFields": false
},
"credentials": {
"airtableApi": "Airtable Credentials n8n"
},
"typeVersion": 1
}
],
"connections": {
"Set": {
"main": [
[
{
"node": "Airtable1",
"type": "main",
"index": 0
}
]
]
},
"Airtable": {
"main": [
[
{
"node": "Mailcheck",
"type": "main",
"index": 0
}
]
]
},
"Mailcheck": {
"main": [
[
{
"node": "Set",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,49 @@
{
"nodes": [
{
"name": "n8n Trigger",
"type": "n8n-nodes-base.n8nTrigger",
"position": [
450,
200
],
"parameters": {
"events": [
"init"
]
},
"typeVersion": 1
},
{
"name": "Mattermost",
"type": "n8n-nodes-base.mattermost",
"position": [
650,
200
],
"parameters": {
"message": "=Your n8n instance started at {{$json[\"timestamp\"]}}",
"channelId": "toyi3uoycf8rirtm7d5jm15sso",
"attachments": [],
"otherOptions": {}
},
"credentials": {
"mattermostApi": "Mattermost Credentials"
},
"typeVersion": 1
}
],
"connections": {
"n8n Trigger": {
"main": [
[
{
"node": "Mattermost",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,95 @@
{
"nodes": [
{
"name": "Webhook",
"type": "n8n-nodes-base.webhook",
"position": [
490,
460
],
"webhookId": "c0345765-4488-4ac8-a9da-02f647dd2b90",
"parameters": {
"path": "c0345765-4488-4ac8-a9da-02f647dd2b90",
"options": {}
},
"typeVersion": 1
},
{
"name": "Set",
"type": "n8n-nodes-base.set",
"position": [
690,
460
],
"parameters": {
"values": {
"string": [
{
"name": "Message",
"value": "Hello!"
}
]
},
"options": {},
"keepOnlySet": true
},
"typeVersion": 1
},
{
"name": "Mattermost",
"type": "n8n-nodes-base.mattermost",
"position": [
690,
610
],
"parameters": {
"message": "=The workflow {{$workflow.name}}, was updated.",
"channelId": "toyi3uoycf8rirtm7d5jm15sso",
"attachments": [],
"otherOptions": {}
},
"credentials": {
"mattermostApi": "Mattermost Credentials"
},
"typeVersion": 1
},
{
"name": "Workflow Trigger",
"type": "n8n-nodes-base.workflowTrigger",
"position": [
490,
610
],
"parameters": {
"events": [
"update"
]
},
"typeVersion": 1
}
],
"connections": {
"Webhook": {
"main": [
[
{
"node": "Set",
"type": "main",
"index": 0
}
]
]
},
"Workflow Trigger": {
"main": [
[
{
"node": "Mattermost",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,145 @@
{
"id": "105",
"name": "Create a new member, update the information of the member, create a note and a post for the member in Orbit",
"nodes": [
{
"name": "On clicking 'execute'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
250,
300
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Orbit",
"type": "n8n-nodes-base.orbit",
"position": [
450,
300
],
"parameters": {
"operation": "upsert",
"identityUi": {
"identityValue": {
"source": "github",
"searchBy": "username",
"username": ""
}
},
"workspaceId": "425",
"additionalFields": {}
},
"credentials": {
"orbitApi": "orbit-review"
},
"typeVersion": 1
},
{
"name": "Orbit1",
"type": "n8n-nodes-base.orbit",
"position": [
650,
300
],
"parameters": {
"memberId": "={{$node[\"Orbit\"].json[\"id\"]}}",
"operation": "update",
"workspaceId": "={{$node[\"Orbit\"].parameter[\"workspaceId\"]}}",
"updateFields": {
"tagsToAdd": ""
}
},
"credentials": {
"orbitApi": "orbit-review"
},
"typeVersion": 1
},
{
"name": "Orbit2",
"type": "n8n-nodes-base.orbit",
"position": [
850,
300
],
"parameters": {
"note": "",
"memberId": "={{$node[\"Orbit\"].json[\"id\"]}}",
"resource": "note",
"workspaceId": "={{$node[\"Orbit\"].parameter[\"workspaceId\"]}}"
},
"credentials": {
"orbitApi": "orbit-review"
},
"typeVersion": 1
},
{
"name": "Orbit3",
"type": "n8n-nodes-base.orbit",
"position": [
1050,
300
],
"parameters": {
"url": "https://medium.com/n8n-io/sending-sms-the-low-code-way-with-airtable-twilio-programmable-sms-and-n8n-90dbde74223e",
"memberId": "={{$node[\"Orbit\"].json[\"id\"]}}",
"resource": "post",
"workspaceId": "={{$node[\"Orbit\"].parameter[\"workspaceId\"]}}",
"additionalFields": {}
},
"credentials": {
"orbitApi": "orbit-review"
},
"typeVersion": 1
}
],
"active": false,
"settings": {},
"connections": {
"Orbit": {
"main": [
[
{
"node": "Orbit1",
"type": "main",
"index": 0
}
]
]
},
"Orbit1": {
"main": [
[
{
"node": "Orbit2",
"type": "main",
"index": 0
}
]
]
},
"Orbit2": {
"main": [
[
{
"node": "Orbit3",
"type": "main",
"index": 0
}
]
]
},
"On clicking 'execute'": {
"main": [
[
{
"node": "Orbit",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,51 @@
{
"id": "105",
"name": "Create a task in ClickUp",
"nodes": [
{
"name": "On clicking 'execute'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
250,
300
],
"parameters": {},
"typeVersion": 1
},
{
"name": "ClickUp",
"type": "n8n-nodes-base.clickUp",
"position": [
450,
300
],
"parameters": {
"list": "",
"name": "",
"team": "",
"space": "",
"folder": "",
"additionalFields": {}
},
"credentials": {
"clickUpApi": ""
},
"typeVersion": 1
}
],
"active": false,
"settings": {},
"connections": {
"On clicking 'execute'": {
"main": [
[
{
"node": "ClickUp",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,272 @@
{
"id": "105",
"name": "screenshot",
"nodes": [
{
"name": "On clicking 'execute'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
440,
580
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Create Web + Email Item",
"type": "n8n-nodes-base.functionItem",
"position": [
630,
580
],
"parameters": {
"functionCode": "item.website = \"https://uproc.io\";\nitem.email = \"miquel@uproc.io\";\n\nreturn item;"
},
"typeVersion": 1
},
{
"name": "Send Email",
"type": "n8n-nodes-base.awsSes",
"position": [
1660,
600
],
"parameters": {
"body": "=Hi,\n<br><br>\nThese are your screenshots:<br>\n<table border=\"0\">\n<tr>\n<th>Simple screenshot</th><th>Fullpage screenshot</th>\n<tr>\n<td style=\"vertical-align: top; text-align: center\"><img src=\"{{$node[\"Generate Screenshot\"].json[\"message\"][\"result\"]}}\" width=\"320\"></td>\n<td style=\"vertical-align: top; text-align: center\"><img src=\"{{$node[\"Generate FullPage\"].json[\"message\"][\"result\"]}}\" width=\"320\"></td>\n</tr>\n</table>\n<br><br>\nThank you!",
"subject": "Your screenshots!",
"fromEmail": "miquel@uproc.io",
"isBodyHtml": true,
"toAddresses": [
"={{$node[\"Create Web + Email Item\"].json[\"email\"]}}"
],
"additionalFields": {}
},
"credentials": {
"aws": "ses"
},
"typeVersion": 1
},
{
"name": "Generate FullPage",
"type": "n8n-nodes-base.uproc",
"position": [
850,
510
],
"parameters": {
"url": "={{$node[\"Create Web + Email Item\"].json[\"website\"]}}",
"tool": "getUrlScreenshot",
"group": "image",
"width": "640",
"fullpage": "yes",
"additionalOptions": {}
},
"credentials": {
"uprocApi": "miquel-uproc"
},
"typeVersion": 1
},
{
"name": "Generate Screenshot",
"type": "n8n-nodes-base.uproc",
"position": [
840,
680
],
"parameters": {
"url": "={{$node[\"Create Web + Email Item\"].json[\"website\"]}}",
"tool": "getUrlScreenshot",
"group": "image",
"width": "640",
"fullpage": "no",
"additionalOptions": {}
},
"credentials": {
"uprocApi": "miquel-uproc"
},
"typeVersion": 1
},
{
"name": "Get File",
"type": "n8n-nodes-base.httpRequest",
"position": [
1050,
510
],
"parameters": {
"url": "={{$node[\"Generate FullPage\"].json[\"message\"][\"result\"]}}",
"options": {},
"responseFormat": "file",
"allowUnauthorizedCerts": true
},
"typeVersion": 1
},
{
"name": "Get File1",
"type": "n8n-nodes-base.httpRequest",
"position": [
1050,
680
],
"parameters": {
"url": "={{$node[\"Generate Screenshot\"].json[\"message\"][\"result\"]}}",
"options": {},
"responseFormat": "file",
"allowUnauthorizedCerts": true
},
"typeVersion": 1
},
{
"name": "Merge",
"type": "n8n-nodes-base.merge",
"position": [
1460,
600
],
"parameters": {
"mode": "passThrough"
},
"typeVersion": 1
},
{
"name": "Upload Screenshot",
"type": "n8n-nodes-base.dropbox",
"position": [
1270,
680
],
"parameters": {
"path": "/screenshots/sample.png",
"binaryData": true
},
"credentials": {
"dropboxApi": "dropbox-miquel"
},
"typeVersion": 1
},
{
"name": "Upload fullpage",
"type": "n8n-nodes-base.dropbox",
"position": [
1270,
510
],
"parameters": {
"path": "/screenshots/sample_fullpage.png",
"binaryData": true
},
"credentials": {
"dropboxApi": "dropbox-miquel"
},
"typeVersion": 1
}
],
"active": false,
"settings": {},
"connections": {
"Merge": {
"main": [
[
{
"node": "Send Email",
"type": "main",
"index": 0
}
]
]
},
"Get File": {
"main": [
[
{
"node": "Upload fullpage",
"type": "main",
"index": 0
}
]
]
},
"Get File1": {
"main": [
[
{
"node": "Upload Screenshot",
"type": "main",
"index": 0
}
]
]
},
"Upload fullpage": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 0
}
]
]
},
"Generate FullPage": {
"main": [
[
{
"node": "Get File",
"type": "main",
"index": 0
}
]
]
},
"Upload Screenshot": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 1
}
]
]
},
"Generate Screenshot": {
"main": [
[
{
"node": "Get File1",
"type": "main",
"index": 0
}
]
]
},
"On clicking 'execute'": {
"main": [
[
{
"node": "Create Web + Email Item",
"type": "main",
"index": 0
}
]
]
},
"Create Web + Email Item": {
"main": [
[
{
"node": "Generate FullPage",
"type": "main",
"index": 0
},
{
"node": "Generate Screenshot",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,147 @@
{
"nodes": [
{
"name": "FileMaker",
"type": "n8n-nodes-base.filemaker",
"position": [
450,
320
],
"parameters": {
"action": "create",
"layout": "My Form Layout",
"fieldsParametersUi": {
"fields": [
{
"name": "first_name",
"value": "Harshil"
},
{
"name": "last_name",
"value": "Agrawal"
}
]
}
},
"credentials": {
"fileMaker": "FileMaker API Credentials"
},
"typeVersion": 1
},
{
"name": "On clicking 'execute'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
250,
320
],
"parameters": {},
"typeVersion": 1
},
{
"name": "FileMaker",
"type": "n8n-nodes-base.filemaker",
"position": [
450,
320
],
"parameters": {
"action": "create",
"layout": "My Form Layout",
"fieldsParametersUi": {
"fields": [
{
"name": "first_name",
"value": "Harshil"
},
{
"name": "last_name",
"value": "Agrawal"
}
]
}
},
"credentials": {
"fileMaker": "FileMaker API Credentials"
},
"typeVersion": 1
},
{
"name": "FileMaker2",
"type": "n8n-nodes-base.filemaker",
"position": [
650,
320
],
"parameters": {
"modId": "={{$json[\"response\"][\"modId\"]}}",
"recid": "={{$json[\"response\"][\"recordId\"]}}",
"action": "edit",
"layout": "My Form Layout",
"fieldsParametersUi": {
"fields": [
{
"name": "address_country",
"value": "Germany"
}
]
}
},
"credentials": {
"fileMaker": "FileMaker API Credentials"
},
"typeVersion": 1
},
{
"name": "FileMaker3",
"type": "n8n-nodes-base.filemaker",
"position": [
850,
320
],
"parameters": {
"recid": "={{$node[\"FileMaker\"].json[\"response\"][\"recordId\"]}}",
"layout": "My Form Layout"
},
"credentials": {
"fileMaker": "FileMaker API Credentials"
},
"typeVersion": 1
}
],
"connections": {
"FileMaker": {
"main": [
[
{
"node": "FileMaker2",
"type": "main",
"index": 0
}
]
]
},
"FileMaker2": {
"main": [
[
{
"node": "FileMaker3",
"type": "main",
"index": 0
}
]
]
},
"On clicking 'execute'": {
"main": [
[
{
"node": "FileMaker",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,127 @@
{
"nodes": [
{
"name": "Cron",
"type": "n8n-nodes-base.cron",
"position": [
490,
360
],
"parameters": {
"triggerTimes": {
"item": [
{
"mode": "everyMinute"
}
]
}
},
"typeVersion": 1
},
{
"name": "HTTP Request",
"type": "n8n-nodes-base.httpRequest",
"position": [
690,
360
],
"parameters": {
"url": "https://api.wheretheiss.at/v1/satellites/25544/positions",
"options": {},
"queryParametersUi": {
"parameter": [
{
"name": "timestamps",
"value": "={{Date.now()}}"
}
]
}
},
"typeVersion": 1
},
{
"name": "Set",
"type": "n8n-nodes-base.set",
"position": [
890,
360
],
"parameters": {
"values": {
"string": [
{
"name": "Name",
"value": "={{$json[\"0\"][\"name\"]}}"
},
{
"name": "Latitude",
"value": "={{$json[\"0\"][\"latitude\"]}}"
},
{
"name": "Longitude",
"value": "={{$json[\"0\"][\"longitude\"]}}"
},
{
"name": "Timestamp",
"value": "={{$json[\"0\"][\"timestamp\"]}}"
}
]
},
"options": {},
"keepOnlySet": true
},
"typeVersion": 1
},
{
"name": "MQTT",
"type": "n8n-nodes-base.mqtt",
"position": [
1090,
360
],
"parameters": {
"topic": "iss-position",
"options": {}
},
"credentials": {
"mqtt": "mqtt"
},
"typeVersion": 1
}
],
"connections": {
"Set": {
"main": [
[
{
"node": "MQTT",
"type": "main",
"index": 0
}
]
]
},
"Cron": {
"main": [
[
{
"node": "HTTP Request",
"type": "main",
"index": 0
}
]
]
},
"HTTP Request": {
"main": [
[
{
"node": "Set",
"type": "main",
"index": 0
}
]
]
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,49 @@
{
"nodes": [
{
"name": "Google Sheets",
"type": "n8n-nodes-base.googleSheets",
"position": [
700,
300
],
"parameters": {
"range": "Problems!A:D",
"options": {},
"sheetId": "17fzSFl1BZ1njldTfp5lvh8HtS0-pNXH66b7qGZIiGRU"
},
"credentials": {
"googleApi": ""
},
"typeVersion": 1
},
{
"name": "Webhook",
"type": "n8n-nodes-base.webhook",
"position": [
500,
300
],
"parameters": {
"path": "webhook",
"options": {},
"responseData": "allEntries",
"responseMode": "lastNode"
},
"typeVersion": 1
}
],
"connections": {
"Webhook": {
"main": [
[
{
"node": "Google Sheets",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,93 @@
{
"nodes": [
{
"name": "Gmail1",
"type": "n8n-nodes-base.gmail",
"position": [
-34.5,
449.5
],
"parameters": {
"resource": "message",
"operation": "getAll",
"additionalFields": {
"format": "resolved",
"labelIds": [
"Label_1819449526183990002"
]
}
},
"credentials": {
"gmailOAuth2": "Gmail"
},
"typeVersion": 1
},
{
"name": "Upload File1",
"type": "n8n-nodes-base.googleDrive",
"position": [
115.5,
449.5
],
"parameters": {
"name": "={{$binary.attachment_0.fileName}}",
"parents": [
"1I-tBNWFhH2FwcyiKeBOcGseWktF-nXBr"
],
"binaryData": true,
"resolveData": true,
"authentication": "oAuth2",
"binaryPropertyName": "attachment_0"
},
"credentials": {
"googleDriveOAuth2Api": "Google Drive OAuth2 API"
},
"typeVersion": 1
},
{
"name": "Get attachment Link",
"type": "n8n-nodes-base.set",
"position": [
280,
450
],
"parameters": {
"values": {
"string": [
{
"name": "mp4_attachment",
"value": "={{$json[\"webViewLink\"]}}"
}
]
},
"options": {},
"keepOnlySet": true
},
"typeVersion": 1
}
],
"connections": {
"Gmail1": {
"main": [
[
{
"node": "Upload File1",
"type": "main",
"index": 0
}
]
]
},
"Upload File1": {
"main": [
[
{
"node": "Get attachment Link",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,107 @@
{
"id": "107",
"name": "Get a volume and add it to your bookshelf",
"nodes": [
{
"name": "On clicking 'execute'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
260,
300
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Google Books",
"type": "n8n-nodes-base.googleBooks",
"position": [
460,
300
],
"parameters": {
"resource": "volume",
"volumeId": "XxUJ2U2FXtYC",
"authentication": "oAuth2"
},
"credentials": {
"googleBooksOAuth2Api": "google-books"
},
"typeVersion": 1
},
{
"name": "Google Books1",
"type": "n8n-nodes-base.googleBooks",
"position": [
660,
300
],
"parameters": {
"shelfId": "2",
"resource": "bookshelfVolume",
"volumeId": "={{$node[\"Google Books\"].json[\"id\"]}}",
"operation": "add",
"authentication": "oAuth2"
},
"credentials": {
"googleBooksOAuth2Api": "google-books"
},
"typeVersion": 1
},
{
"name": "Google Books2",
"type": "n8n-nodes-base.googleBooks",
"position": [
860,
300
],
"parameters": {
"shelfId": "={{$node[\"Google Books1\"].parameter[\"shelfId\"]}}",
"resource": "bookshelfVolume",
"myLibrary": true,
"authentication": "oAuth2"
},
"credentials": {
"googleBooksOAuth2Api": "google-books"
},
"typeVersion": 1
}
],
"active": false,
"settings": {},
"connections": {
"Google Books": {
"main": [
[
{
"node": "Google Books1",
"type": "main",
"index": 0
}
]
]
},
"Google Books1": {
"main": [
[
{
"node": "Google Books2",
"type": "main",
"index": 0
}
]
]
},
"On clicking 'execute'": {
"main": [
[
{
"node": "Google Books",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,71 @@
{
"nodes": [
{
"name": "On clicking 'execute'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
350,
200
],
"parameters": {},
"typeVersion": 1
},
{
"name": "iCalendar",
"type": "n8n-nodes-base.iCal",
"position": [
550,
200
],
"parameters": {
"end": "2021-06-11T16:15:00.000Z",
"start": "2021-06-11T15:30:00.000Z",
"title": "n8n Community Meetup",
"additionalFields": {}
},
"typeVersion": 1
},
{
"name": "Send Email",
"type": "n8n-nodes-base.emailSend",
"position": [
750,
200
],
"parameters": {
"text": "Hey Harshil,\n\nWe are excited to invite you to the n8n community meetup!\n\nWith this email you will find the invite attached.\n\nLooking forward to seeing you at the meetup!\n\nCheers,\nHarshil",
"options": {},
"subject": "n8n Community Meetup 🚀",
"attachments": "data"
},
"credentials": {
"smtp": "Outlook Burner Credentials"
},
"typeVersion": 1
}
],
"connections": {
"iCalendar": {
"main": [
[
{
"node": "Send Email",
"type": "main",
"index": 0
}
]
]
},
"On clicking 'execute'": {
"main": [
[
{
"node": "iCalendar",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,85 @@
{
"nodes": [
{
"name": "Calendly Trigger",
"type": "n8n-nodes-base.calendlyTrigger",
"position": [
490,
320
],
"webhookId": "d932d43a-511e-4e54-9a8d-c8da6f6ab7c2",
"parameters": {
"events": [
"invitee.created"
]
},
"credentials": {
"calendlyApi": "Calendly API Credentials"
},
"typeVersion": 1
},
{
"name": "Notion",
"type": "n8n-nodes-base.notion",
"position": [
690,
320
],
"parameters": {
"blockUi": {
"blockValues": []
},
"resource": "databasePage",
"databaseId": "b40628ca-9000-4576-ab2c-4ed3c37e6ee4",
"propertiesUi": {
"propertyValues": [
{
"key": "Name|title",
"title": "={{$json[\"payload\"][\"invitee\"][\"name\"]}}",
"peopleValue": [],
"relationValue": [
""
],
"multiSelectValue": []
},
{
"key": "Email|email",
"emailValue": "={{$json[\"payload\"][\"invitee\"][\"email\"]}}",
"peopleValue": [],
"relationValue": [
""
],
"multiSelectValue": []
},
{
"key": "Status|select",
"peopleValue": [],
"selectValue": "6ad3880b-260a-4d12-999f-5b605e096c1c",
"relationValue": [
""
],
"multiSelectValue": []
}
]
}
},
"credentials": {
"notionApi": "Notion API Credentials"
},
"typeVersion": 1
}
],
"connections": {
"Calendly Trigger": {
"main": [
[
{
"node": "Notion",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,105 @@
{
"nodes": [
{
"name": "Notion Trigger",
"type": "n8n-nodes-base.notionTrigger",
"position": [
270,
350
],
"parameters": {
"event": "pageAddedToDatabase",
"pollTimes": {
"item": [
{
"mode": "everyHour"
}
]
},
"databaseId": "6ea34c0d-67e8-4614-ad5c-68c665a34763"
},
"credentials": {
"notionApi": ""
},
"typeVersion": 1
},
{
"name": "IF",
"type": "n8n-nodes-base.if",
"position": [
470,
350
],
"parameters": {
"conditions": {
"string": [
{
"value1": "={{$json[\"Team\"]}}",
"value2": "Marketing"
}
]
}
},
"typeVersion": 1
},
{
"name": "Mattermost",
"type": "n8n-nodes-base.mattermost",
"position": [
670,
250
],
"parameters": {
"message": "=New meeting notes were added.\nAgenda: {{$json[\"Agenda\"]}}\nDate: {{$json[\"Date\"][\"start\"]}}\nLink: https://notion.so/{{$json[\"id\"].replace(/-/g,'')}}",
"channelId": "64cae1bh6pggtcupfd4ztwby4r",
"attachments": [],
"otherOptions": {}
},
"credentials": {
"mattermostApi": ""
},
"typeVersion": 1
},
{
"name": "NoOp",
"type": "n8n-nodes-base.noOp",
"position": [
668,
495
],
"parameters": {},
"typeVersion": 1
}
],
"connections": {
"IF": {
"main": [
[
{
"node": "Mattermost",
"type": "main",
"index": 0
}
],
[
{
"node": "NoOp",
"type": "main",
"index": 0
}
]
]
},
"Notion Trigger": {
"main": [
[
{
"node": "IF",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,23 @@
{
"id": "108",
"name": "Receive updates for events in Chargebee",
"nodes": [
{
"name": "Chargebee Trigger",
"type": "n8n-nodes-base.chargebeeTrigger",
"position": [
700,
250
],
"parameters": {
"events": [
"*"
]
},
"typeVersion": 1
}
],
"active": false,
"settings": {},
"connections": {}
}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,120 @@
{
"nodes": [
{
"name": "Notion",
"type": "n8n-nodes-base.notion",
"position": [
1050,
300
],
"parameters": {
"blockUi": {
"blockValues": [
{
"textContent": "=Name: {{$json[\"display_name\"]}}\nPersonality: {{$json[\"personality_analysis\"][\"summary\"][\"ocean\"][\"description\"].join(', ')}}, {{$json[\"personality_analysis\"][\"summary\"][\"disc\"][\"description\"].join(', ')}}\nOpenness: {{$json[\"personality_analysis\"][\"ocean_assessment\"][\"openness\"][\"level\"]}} {{$json[\"personality_analysis\"][\"ocean_assessment\"][\"openness\"][\"score\"]}}\nCalculativeness: {{$json[\"personality_analysis\"][\"disc_assessment\"][\"calculativeness\"][\"level\"]}} {{$json[\"personality_analysis\"][\"disc_assessment\"][\"calculativeness\"][\"score\"]}}"
}
]
},
"resource": "databasePage",
"databaseId": "",
"propertiesUi": {
"propertyValues": [
{
"key": "Name|title",
"title": "={{$json[\"display_name\"]}}"
}
]
}
},
"credentials": {
"notionApi": ""
},
"typeVersion": 1
},
{
"name": "Humantic AI",
"type": "n8n-nodes-base.humanticAi",
"position": [
650,
300
],
"parameters": {
"userId": "={{$json[\"payload\"][\"questions_and_responses\"][\"1_response\"]}}"
},
"credentials": {
"humanticAiApi": "humantic"
},
"typeVersion": 1
},
{
"name": "Calendly Trigger",
"type": "n8n-nodes-base.calendlyTrigger",
"position": [
450,
300
],
"webhookId": "6d38c1f6-42ee-4f44-b424-20943075087b",
"parameters": {
"events": [
"invitee.created"
]
},
"credentials": {
"calendlyApi": ""
},
"typeVersion": 1
},
{
"name": "Humantic AI1",
"type": "n8n-nodes-base.humanticAi",
"position": [
850,
300
],
"parameters": {
"userId": "={{$json[\"results\"][\"userid\"]}}",
"options": {},
"operation": "get"
},
"credentials": {
"humanticAiApi": ""
},
"typeVersion": 1
}
],
"connections": {
"Humantic AI": {
"main": [
[
{
"node": "Humantic AI1",
"type": "main",
"index": 0
}
]
]
},
"Humantic AI1": {
"main": [
[
{
"node": "Notion",
"type": "main",
"index": 0
}
]
]
},
"Calendly Trigger": {
"main": [
[
{
"node": "Humantic AI",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,179 @@
{
"nodes": [
{
"name": "Typeform Trigger",
"type": "n8n-nodes-base.typeformTrigger",
"position": [
0,
400
],
"webhookId": "ad8a87ef-d293-4e48-8d36-838d69ebce0f",
"parameters": {
"formId": "fBYjtY5e"
},
"credentials": {
"typeformApi": ""
},
"typeVersion": 1
},
{
"name": "Google Cloud Natural Language",
"type": "n8n-nodes-base.googleCloudNaturalLanguage",
"position": [
200,
400
],
"parameters": {
"content": "={{$json[\"Any suggestions for us? \"]}}",
"options": {}
},
"credentials": {
"googleCloudNaturalLanguageOAuth2Api": ""
},
"typeVersion": 1
},
{
"name": "IF",
"type": "n8n-nodes-base.if",
"position": [
400,
400
],
"parameters": {
"conditions": {
"number": [
{
"value1": "={{$node[\"Google Cloud Natural Language\"].json[\"documentSentiment\"][\"score\"]}}",
"operation": "larger"
}
]
}
},
"typeVersion": 1
},
{
"name": "Notion",
"type": "n8n-nodes-base.notion",
"position": [
600,
300
],
"parameters": {
"resource": "databasePage",
"databaseId": "b7d1130a-3756-4bb3-aa56-0c77bf416437",
"propertiesUi": {
"propertyValues": [
{
"key": "Name|title",
"title": "={{$node[\"Typeform Trigger\"].json[\"Name\"]}}"
},
{
"key": "Feedback|rich_text",
"textContent": "={{$node[\"Typeform Trigger\"].json[\"Any suggestions for us? \"]}}"
}
]
}
},
"credentials": {
"notionApi": ""
},
"typeVersion": 1
},
{
"name": "Slack",
"type": "n8n-nodes-base.slack",
"position": [
800,
300
],
"parameters": {
"channel": "general",
"blocksUi": {
"blocksValues": []
},
"attachments": [
{
"text": "={{$node[\"Typeform Trigger\"].json[\"Any suggestions for us? \"]}}",
"title": "={{$node[\"Typeform Trigger\"].json[\"Name\"]}} {{$node[\"Google Cloud Natural Language\"].json[\"documentSentiment\"][\"score\"]}}"
}
],
"otherOptions": {}
},
"credentials": {
"slackApi": ""
},
"typeVersion": 1
},
{
"name": "Trello",
"type": "n8n-nodes-base.trello",
"position": [
600,
500
],
"parameters": {
"name": "=Score: {{$json[\"documentSentiment\"][\"score\"]}}",
"listId": "5fbb9e2eb1d5cc0a8a7ab8ac",
"description": "=Score: {{$json[\"documentSentiment\"][\"score\"]}}\nFeedback: {{$node[\"Typeform Trigger\"].json[\"Any suggestions for us? \"]}}\nUser: {{$node[\"Typeform Trigger\"].json[\"Name\"]}}",
"additionalFields": {}
},
"credentials": {
"trelloApi": ""
},
"typeVersion": 1
}
],
"connections": {
"IF": {
"main": [
[
{
"node": "Notion",
"type": "main",
"index": 0
}
],
[
{
"node": "Trello",
"type": "main",
"index": 0
}
]
]
},
"Notion": {
"main": [
[
{
"node": "Slack",
"type": "main",
"index": 0
}
]
]
},
"Typeform Trigger": {
"main": [
[
{
"node": "Google Cloud Natural Language",
"type": "main",
"index": 0
}
]
]
},
"Google Cloud Natural Language": {
"main": [
[
{
"node": "IF",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,130 @@
{
"id": "110",
"name": "Get SSL Certificate",
"nodes": [
{
"name": "On clicking 'execute'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
240,
290
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Create Domain Item",
"type": "n8n-nodes-base.functionItem",
"position": [
450,
290
],
"parameters": {
"functionCode": "item.domain = \"n8n.io\";\nreturn item;"
},
"typeVersion": 1
},
{
"name": "Get SSL Certificate",
"type": "n8n-nodes-base.uproc",
"position": [
650,
290
],
"parameters": {
"tool": "getDomainCertificate",
"group": "internet",
"domain": "= {{$node[\"Create Domain Item\"].json[\"domain\"]}}",
"additionalOptions": {}
},
"credentials": {
"uprocApi": "miquel-uproc"
},
"typeVersion": 1
},
{
"name": "Send Expired Alarm",
"type": "n8n-nodes-base.telegram",
"position": [
1070,
270
],
"parameters": {
"text": "=The certificate of the domain {{$node[\"Create Domain Item\"].json[\"domain\"]}} has expired!",
"chatId": "-1415703867",
"additionalFields": {}
},
"credentials": {
"telegramApi": "test killia bot"
},
"typeVersion": 1
},
{
"name": "Certificate has expired?",
"type": "n8n-nodes-base.if",
"position": [
840,
290
],
"parameters": {
"conditions": {
"string": [
{
"value1": "={{$node[\"Get SSL Certificate\"].json[\"message\"][\"valid\"]+\"\"}}",
"value2": "false"
}
]
}
},
"typeVersion": 1
}
],
"active": false,
"settings": {},
"connections": {
"Create Domain Item": {
"main": [
[
{
"node": "Get SSL Certificate",
"type": "main",
"index": 0
}
]
]
},
"Get SSL Certificate": {
"main": [
[
{
"node": "Certificate has expired?",
"type": "main",
"index": 0
}
]
]
},
"On clicking 'execute'": {
"main": [
[
{
"node": "Create Domain Item",
"type": "main",
"index": 0
}
]
]
},
"Certificate has expired?": {
"main": [
[
{
"node": "Send Expired Alarm",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,81 @@
{
"id": "110",
"name": "Get all the stories starting with `release` and publish them",
"nodes": [
{
"name": "On clicking 'execute'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
250,
300
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Storyblok",
"type": "n8n-nodes-base.storyblok",
"position": [
450,
300
],
"parameters": {
"space": 96940,
"source": "managementApi",
"filters": {
"starts_with": "release"
},
"operation": "getAll"
},
"credentials": {
"storyblokManagementApi": "storyblok-tanay"
},
"typeVersion": 1
},
{
"name": "Storyblok1",
"type": "n8n-nodes-base.storyblok",
"position": [
650,
300
],
"parameters": {
"space": "={{$node[\"Storyblok\"].parameter[\"space\"]}}",
"source": "managementApi",
"options": {},
"storyId": "={{$node[\"Storyblok\"].json[\"id\"]}}",
"operation": "publish"
},
"credentials": {
"storyblokManagementApi": "storyblok-tanay"
},
"typeVersion": 1
}
],
"active": false,
"settings": {},
"connections": {
"Storyblok": {
"main": [
[
{
"node": "Storyblok1",
"type": "main",
"index": 0
}
]
]
},
"On clicking 'execute'": {
"main": [
[
{
"node": "Storyblok",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,28 @@
{
"id": "110",
"name": "Receive updates for events in ClickUp",
"nodes": [
{
"name": "ClickUp Trigger",
"type": "n8n-nodes-base.clickUpTrigger",
"position": [
700,
250
],
"parameters": {
"team": "",
"events": [
"*"
],
"filters": {}
},
"credentials": {
"clickUpApi": ""
},
"typeVersion": 1
}
],
"active": false,
"settings": {},
"connections": {}
}

View File

@ -0,0 +1,215 @@
{
"nodes": [
{
"name": "Webhook",
"type": "n8n-nodes-base.webhook",
"position": [
450,
300
],
"webhookId": "45e2593e-f25d-4be5-9b50-4a7c1e566a9e",
"parameters": {
"path": "45e2593e-f25d-4be5-9b50-4a7c1e566a9e",
"options": {},
"httpMethod": "POST",
"responseMode": "lastNode"
},
"typeVersion": 1
},
{
"name": "HTTP Request",
"type": "n8n-nodes-base.httpRequest",
"position": [
850,
200
],
"parameters": {
"url": "=https://{{$json[\"body\"][\"data\"][\"options\"][0][\"value\"]}}",
"options": {},
"responseFormat": "string"
},
"typeVersion": 1
},
{
"name": "Check type",
"type": "n8n-nodes-base.if",
"position": [
650,
300
],
"parameters": {
"conditions": {
"number": [
{
"value1": "={{$json[\"body\"][\"type\"]}}",
"value2": 1,
"operation": "notEqual"
}
]
}
},
"typeVersion": 1
},
{
"name": "Extract Title",
"type": "n8n-nodes-base.htmlExtract",
"position": [
1050,
200
],
"parameters": {
"options": {},
"extractionValues": {
"values": [
{
"key": "title",
"cssSelector": "title"
}
]
}
},
"typeVersion": 1
},
{
"name": "Add Link to Notion",
"type": "n8n-nodes-base.notion",
"position": [
1250,
200
],
"parameters": {
"resource": "databasePage",
"databaseId": "8a1638ce-da33-41b7-8fd9-37a4c272ba95",
"propertiesUi": {
"propertyValues": [
{
"key": "Name|title",
"title": "={{$json[\"title\"]}}"
},
{
"key": "Link|url",
"urlValue": "={{$node[\"Check type\"].json[\"body\"][\"data\"][\"options\"][0][\"value\"]}}"
}
]
}
},
"credentials": {
"notionApi": "Notion API Credentials"
},
"typeVersion": 1
},
{
"name": "Reply on Discord",
"type": "n8n-nodes-base.set",
"position": [
1450,
200
],
"parameters": {
"values": {
"number": [
{
"name": "type",
"value": 4
}
],
"string": [
{
"name": "data.content",
"value": "Added Link to notion"
}
]
},
"options": {},
"keepOnlySet": true
},
"typeVersion": 1
},
{
"name": "Register URL",
"type": "n8n-nodes-base.set",
"position": [
850,
410
],
"parameters": {
"values": {
"number": [
{
"name": "type",
"value": 1
}
],
"string": []
},
"options": {},
"keepOnlySet": true
},
"typeVersion": 1
}
],
"connections": {
"Webhook": {
"main": [
[
{
"node": "Check type",
"type": "main",
"index": 0
}
]
]
},
"Check type": {
"main": [
[
{
"node": "HTTP Request",
"type": "main",
"index": 0
}
],
[
{
"node": "Register URL",
"type": "main",
"index": 0
}
]
]
},
"HTTP Request": {
"main": [
[
{
"node": "Extract Title",
"type": "main",
"index": 0
}
]
]
},
"Extract Title": {
"main": [
[
{
"node": "Add Link to Notion",
"type": "main",
"index": 0
}
]
]
},
"Add Link to Notion": {
"main": [
[
{
"node": "Reply on Discord",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,74 @@
{
"nodes": [
{
"name": "On clicking 'execute'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
190,
160
],
"parameters": {},
"typeVersion": 1
},
{
"name": "AWS Transcribe",
"type": "n8n-nodes-base.awsTranscribe",
"position": [
590,
160
],
"parameters": {
"options": {},
"mediaFileUri": "=s3://{{$node[\"AWS S3\"].parameter[\"bucketName\"]}}/{{$json[\"Key\"]}}",
"detectLanguage": true,
"transcriptionJobName": "={{$json[\"Key\"].replace(/\\s/g,'-')}}"
},
"credentials": {
"aws": "AWS Transcribe Credentials"
},
"typeVersion": 1
},
{
"name": "AWS S3",
"type": "n8n-nodes-base.awsS3",
"position": [
390,
160
],
"parameters": {
"options": {},
"operation": "getAll",
"returnAll": true,
"bucketName": "n8n-docs"
},
"credentials": {
"aws": "AWS S3 Credentials"
},
"typeVersion": 1
}
],
"connections": {
"AWS S3": {
"main": [
[
{
"node": "AWS Transcribe",
"type": "main",
"index": 0
}
]
]
},
"On clicking 'execute'": {
"main": [
[
{
"node": "AWS S3",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,84 @@
{
"nodes": [
{
"name": "UptimeRobot2",
"type": "n8n-nodes-base.uptimeRobot",
"position": [
890,
320
],
"parameters": {
"id": "={{$json[\"id\"]}}",
"resource": "monitor",
"operation": "get"
},
"credentials": {
"uptimeRobotApi": "UptimeRobot API Credentials"
},
"typeVersion": 1
},
{
"name": "UptimeRobot",
"type": "n8n-nodes-base.uptimeRobot",
"position": [
490,
320
],
"parameters": {
"url": "https://n8n.io",
"type": 1,
"resource": "monitor",
"operation": "create",
"friendlyName": "n8n"
},
"credentials": {
"uptimeRobotApi": "UptimeRobot API Credentials"
},
"typeVersion": 1
},
{
"name": "UptimeRobot1",
"type": "n8n-nodes-base.uptimeRobot",
"position": [
690,
320
],
"parameters": {
"id": "={{$json[\"id\"]}}",
"resource": "monitor",
"operation": "update",
"updateFields": {
"friendly_name": "n8n website"
}
},
"credentials": {
"uptimeRobotApi": "UptimeRobot API Credentials"
},
"typeVersion": 1
}
],
"connections": {
"UptimeRobot": {
"main": [
[
{
"node": "UptimeRobot1",
"type": "main",
"index": 0
}
]
]
},
"UptimeRobot1": {
"main": [
[
{
"node": "UptimeRobot2",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,105 @@
{
"nodes": [
{
"name": "On clicking 'execute'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
250,
200
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Microsoft To Do",
"type": "n8n-nodes-base.microsoftToDo",
"position": [
450,
200
],
"parameters": {
"title": "Document Microsoft To Do node",
"operation": "create",
"taskListId": "AQMkADAwATNiZmYAZC0zOTkAMy02ZWZjLTAwAi0wMAoALgAAA3i1fHMTrftIhQBzhywL64UBAFB0wRiJW1FJmmlvlAkVFQA-AAACARIAAAA=",
"additionalFields": {
"importance": "high"
}
},
"credentials": {
"microsoftToDoOAuth2Api": "Microsoft OAuth Credentials"
},
"typeVersion": 1
},
{
"name": "Microsoft To Do1",
"type": "n8n-nodes-base.microsoftToDo",
"position": [
650,
200
],
"parameters": {
"taskId": "={{$json[\"id\"]}}",
"operation": "update",
"taskListId": "={{$node[\"Microsoft To Do\"].parameter[\"taskListId\"]}}",
"updateFields": {
"status": "inProgress"
}
},
"credentials": {
"microsoftToDoOAuth2Api": "Microsoft OAuth Credentials"
},
"typeVersion": 1
},
{
"name": "Microsoft To Do2",
"type": "n8n-nodes-base.microsoftToDo",
"position": [
850,
200
],
"parameters": {
"taskId": "={{$json[\"id\"]}}",
"taskListId": "={{$node[\"Microsoft To Do\"].parameter[\"taskListId\"]}}"
},
"credentials": {
"microsoftToDoOAuth2Api": "Microsoft OAuth Credentials"
},
"typeVersion": 1
}
],
"connections": {
"Microsoft To Do": {
"main": [
[
{
"node": "Microsoft To Do1",
"type": "main",
"index": 0
}
]
]
},
"Microsoft To Do1": {
"main": [
[
{
"node": "Microsoft To Do2",
"type": "main",
"index": 0
}
]
]
},
"On clicking 'execute'": {
"main": [
[
{
"node": "Microsoft To Do",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,116 @@
{
"nodes": [
{
"name": "On clicking 'execute'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
230,
320
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Git",
"type": "n8n-nodes-base.git",
"position": [
430,
320
],
"parameters": {
"operation": "add",
"pathsToAdd": "README.md"
},
"typeVersion": 1
},
{
"name": "Git1",
"type": "n8n-nodes-base.git",
"position": [
630,
320
],
"parameters": {
"message": "✨ First commit from n8n",
"options": {},
"operation": "commit",
"repositoryPath": "={{$node[\"Git\"].parameter[\"repositoryPath\"]}}"
},
"typeVersion": 1
},
{
"name": "Git2",
"type": "n8n-nodes-base.git",
"position": [
830,
320
],
"parameters": {
"options": {},
"repositoryPath": "={{$node[\"Git\"].parameter[\"repositoryPath\"]}}"
},
"typeVersion": 1
},
{
"name": "Git3",
"type": "n8n-nodes-base.git",
"position": [
1030,
320
],
"parameters": {
"options": {},
"operation": "push",
"repositoryPath": "={{$node[\"Git\"].parameter[\"repositoryPath\"]}}"
},
"executeOnce": false,
"typeVersion": 1
}
],
"connections": {
"Git": {
"main": [
[
{
"node": "Git1",
"type": "main",
"index": 0
}
]
]
},
"Git1": {
"main": [
[
{
"node": "Git2",
"type": "main",
"index": 0
}
]
]
},
"Git2": {
"main": [
[
{
"node": "Git3",
"type": "main",
"index": 0
}
]
]
},
"On clicking 'execute'": {
"main": [
[
{
"node": "Git",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,244 @@
{
"nodes": [
{
"name": "Get Start & End of day",
"type": "n8n-nodes-base.function",
"position": [
850,
450
],
"parameters": {
"functionCode": "var curr = new Date;\nvar first = (curr.getDate());\nvar last = first;\n\nvar firstday = new Date(curr.setDate(first));\nvar lastday = new Date(curr.setDate(last));\n\nbeginning = new Date(firstday.setHours(0,0,0,0));\nending = new Date(lastday.setHours(23,59,59,99));\n\nitems[0].json.from = beginning.toISOString();\nitems[0].json.to = ending.toISOString();\n\nreturn items;items[0].json.myVariable = 1;\nreturn items;"
},
"typeVersion": 1
},
{
"name": "Set Trello Card Details",
"type": "n8n-nodes-base.set",
"position": [
1460,
640
],
"parameters": {
"values": {
"string": [
{
"name": "name",
"value": "={{$node[\"Split Events In Batches\"].json[\"summary\"]}}"
},
{
"name": "description",
"value": "={{$node[\"Split Events In Batches\"].json[\"description\"]}}"
},
{
"name": "duedate",
"value": "={{$node[\"Split Events In Batches\"].json[\"start\"][\"dateTime\"]}}"
},
{
"name": "URL",
"value": "={{$node[\"Split Events In Batches\"].json[\"htmlLink\"]}}"
}
]
},
"options": {}
},
"typeVersion": 1
},
{
"name": "Remove Recurring Tasks",
"type": "n8n-nodes-base.if",
"position": [
1650,
640
],
"parameters": {
"conditions": {
"string": [
{
"value1": "={{$node[\"Split Events In Batches\"].json[\"summary\"]}}",
"value2": "Check email and start day"
},
{
"value1": "={{$node[\"Split Events In Batches\"].json[\"summary\"]}}",
"value2": "Lunch"
},
{
"value1": "={{$node[\"Split Events In Batches\"].json[\"summary\"]}}",
"value2": "Wrap Up & Clear Desk"
},
{
"value1": "={{$node[\"Split Events In Batches\"].json[\"summary\"]}}",
"value2": "Beers and Griping"
}
],
"boolean": []
},
"combineOperation": "any"
},
"typeVersion": 1
},
{
"name": "Get Todays Events",
"type": "n8n-nodes-base.googleCalendar",
"position": [
1060,
450
],
"parameters": {
"options": {
"timeMax": "={{$node[\"Get Start & End of day\"].json[\"to\"]}}",
"timeMin": "={{$node[\"Get Start & End of day\"].json[\"from\"]}}",
"singleEvents": true
},
"calendar": "amenendez@threatconnect.com",
"operation": "getAll"
},
"credentials": {
"googleCalendarOAuth2Api": "Angel TC Calendar API"
},
"typeVersion": 1
},
{
"name": "Split Events In Batches",
"type": "n8n-nodes-base.splitInBatches",
"position": [
1260,
640
],
"parameters": {
"options": {},
"batchSize": 1
},
"typeVersion": 1
},
{
"name": "Create Trello Cards",
"type": "n8n-nodes-base.trello",
"position": [
1830,
730
],
"parameters": {
"name": "={{$node[\"Set Trello Card Details\"].json[\"name\"]}}",
"description": "=**Meeting purpose (*Integrations, Playbooks, UI Issues, Project*):**\n\n- Task\n\n**Next Steps (*Task, Assigned to, Checkpoint Date*):**\n\n- Task\n\n**Decisions Made: (*What, Why, Impacts*):**\n\n- Task\n\n**Discussion: (*Items/Knowledge Shared*):**\n\n- Task",
"additionalFields": {
"due": "={{$node[\"Set Trello Card Details\"].json[\"duedate\"]}}",
"idLabels": "",
"urlSource": "={{$node[\"Set Trello Card Details\"].json[\"URL\"]}}"
}
},
"credentials": {
"trelloApi": "Angel Work Trello"
},
"typeVersion": 1
},
{
"name": "Delete Task",
"type": "n8n-nodes-base.noOp",
"position": [
1830,
560
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Trigger Every Day at 8am",
"type": "n8n-nodes-base.cron",
"position": [
650,
450
],
"parameters": {
"triggerTimes": {
"item": [
{
"hour": 8
}
]
}
},
"typeVersion": 1
}
],
"connections": {
"Get Todays Events": {
"main": [
[
{
"node": "Split Events In Batches",
"type": "main",
"index": 0
}
]
]
},
"Get Start & End of day": {
"main": [
[
{
"node": "Get Todays Events",
"type": "main",
"index": 0
}
]
]
},
"Remove Recurring Tasks": {
"main": [
[
{
"node": "Delete Task",
"type": "main",
"index": 0
}
],
[
{
"node": "Create Trello Cards",
"type": "main",
"index": 0
}
]
]
},
"Set Trello Card Details": {
"main": [
[
{
"node": "Remove Recurring Tasks",
"type": "main",
"index": 0
}
]
]
},
"Split Events In Batches": {
"main": [
[
{
"node": "Set Trello Card Details",
"type": "main",
"index": 0
},
{
"node": "Get Todays Events",
"type": "main",
"index": 0
}
]
]
},
"Trigger Every Day at 8am": {
"main": [
[
{
"node": "Get Start & End of day",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,118 @@
{
"id": 111,
"name": "Standup Bot - Initialize",
"nodes": [
{
"name": "On clicking 'execute'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
240,
300
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Write Binary File",
"type": "n8n-nodes-base.writeBinaryFile",
"position": [
880,
300
],
"parameters": {
"fileName": "/home/node/.n8n/standup-bot-config.json"
},
"typeVersion": 1
},
{
"name": "Move Binary Data",
"type": "n8n-nodes-base.moveBinaryData",
"position": [
660,
300
],
"parameters": {
"mode": "jsonToBinary",
"options": {
"encoding": "utf8",
"fileName": "standup-bot-config.json"
}
},
"typeVersion": 1
},
{
"name": "Use Default Config",
"type": "n8n-nodes-base.set",
"position": [
440,
300
],
"parameters": {
"values": {
"string": [
{
"name": "config.slashCmdToken",
"value": "xxxxx"
},
{
"name": "config.mattermostBaseUrl",
"value": "https://mattermost.yourdomain.tld"
},
{
"name": "config.botUserToken",
"value": "xxxxx"
},
{
"name": "config.n8nWebhookUrl",
"value": "https://n8n.yourdomain.tld/webhook/standup-bot/action/f6f9b174745fa4651f750c36957d674c"
},
{
"name": "config.botUserId",
"value": "xxxxx"
}
]
},
"options": {},
"keepOnlySet": true
},
"typeVersion": 1
}
],
"active": false,
"settings": {},
"connections": {
"Move Binary Data": {
"main": [
[
{
"node": "Write Binary File",
"type": "main",
"index": 0
}
]
]
},
"Use Default Config": {
"main": [
[
{
"node": "Move Binary Data",
"type": "main",
"index": 0
}
]
]
},
"On clicking 'execute'": {
"main": [
[
{
"node": "Use Default Config",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,401 @@
{
"nodes": [
{
"name": "Function",
"type": "n8n-nodes-base.function",
"position": [
230,
710
],
"parameters": {
"functionCode": "// Code here will run only once, no matter how many input items there are.\n// More info and help: https://docs.n8n.io/nodes/n8n-nodes-base.function\n\n// Loop over inputs and add a new field called 'myNewField' to the JSON of each one\nfor (item of items) {\n \nvar type = \"Status\";\n// Acknowledged\nif ((item.json.body.alert.statusCode == 2) && (item.json.body.eventType == 201)) {\n type = \"Acknowledged\";\n}\n// Closed\nif ((item.json.body.alert.statusCode == 4) & (item.json.body.eventType == 201)) {\n type = \"Closed\";\n}\n// New Alert\nif ((item.json.body.alert.statusCode == 1) & (item.json.body.eventType == 200)) {\n type = \"New Alert\";\n}\n\n// No one on duty\nif ((item.json.body.alert.statusCode == 16) & (item.json.body.eventType == 201)) {\n type = \"No one on duty\";\n}\n \n// Annotation\nvar annotation = \"\";\nif ((item.json.body.eventType == 203) & (item.json.body.annotation != undefined) ) {\n type = \"Annotated\";\n annotation = item.json.body.annotation.message;\n}\nif (annotation != \"\") {\n annotation = \": \" + annotation;\n}\n \nvar username = \"System\";\nif (item.json.body.user != undefined) {\n username = item.json.body.user.username;\n}\n \nvar data = type + \" by \" + username + annotation;\n \nitem.json.s4Status = data; // + \": \" + JSON.stringify(item.json);\n\n\nitem.json.s4Up = false;\nif (type == \"Closed\") {\n item.json.s4Up = true;\n}\n\n}\n\n// You can write logs to the browser console\nconsole.log('Done!');\n\nreturn items;\n\n\n"
},
"typeVersion": 1
},
{
"name": "Notion Trigger",
"type": "n8n-nodes-base.notionTrigger",
"disabled": true,
"position": [
230,
210
],
"parameters": {
"event": "pageAddedToDatabase",
"pollTimes": {
"item": [
{
"mode": "everyX",
"unit": "minutes",
"value": 1
}
]
},
"databaseId": "0f26823d-f509-43bb-b0e9-e9bb4ab91217"
},
"credentials": {
"notionApi": "Notion"
},
"typeVersion": 1
},
{
"name": "Webhook",
"type": "n8n-nodes-base.webhook",
"position": [
50,
710
],
"webhookId": "95fd62c7-fc8c-4f6f-8441-bbf85a2da81a",
"parameters": {
"path": "95fd62c7-fc8c-4f6f-8441-bbf85a2da81a",
"options": {},
"httpMethod": "POST"
},
"typeVersion": 1
},
{
"name": "Function",
"type": "n8n-nodes-base.function",
"position": [
230,
710
],
"parameters": {
"functionCode": "// Code here will run only once, no matter how many input items there are.\n// More info and help: https://docs.n8n.io/nodes/n8n-nodes-base.function\n\n// Loop over inputs and add a new field called 'myNewField' to the JSON of each one\nfor (item of items) {\n \nvar type = \"Status\";\n// Acknowledged\nif ((item.json.body.alert.statusCode == 2) && (item.json.body.eventType == 201)) {\n type = \"Acknowledged\";\n}\n// Closed\nif ((item.json.body.alert.statusCode == 4) & (item.json.body.eventType == 201)) {\n type = \"Closed\";\n}\n// New Alert\nif ((item.json.body.alert.statusCode == 1) & (item.json.body.eventType == 200)) {\n type = \"New Alert\";\n}\n\n// No one on duty\nif ((item.json.body.alert.statusCode == 16) & (item.json.body.eventType == 201)) {\n type = \"No one on duty\";\n}\n \n// Annotation\nvar annotation = \"\";\nif ((item.json.body.eventType == 203) & (item.json.body.annotation != undefined) ) {\n type = \"Annotated\";\n annotation = item.json.body.annotation.message;\n}\nif (annotation != \"\") {\n annotation = \": \" + annotation;\n}\n \nvar username = \"System\";\nif (item.json.body.user != undefined) {\n username = item.json.body.user.username;\n}\n \nvar data = type + \" by \" + username + annotation;\n \nitem.json.s4Status = data; // + \": \" + JSON.stringify(item.json);\n\n\nitem.json.s4Up = false;\nif (type == \"Closed\") {\n item.json.s4Up = true;\n}\n\n}\n\n// You can write logs to the browser console\nconsole.log('Done!');\n\nreturn items;\n\n\n"
},
"typeVersion": 1
},
{
"name": "Notion Update",
"type": "n8n-nodes-base.notion",
"position": [
420,
710
],
"parameters": {
"pageId": "={{$node[\"Webhook\"].json[\"body\"][\"alert\"][\"externalEventId\"]}}",
"resource": "databasePage",
"operation": "update",
"propertiesUi": {
"propertyValues": [
{
"key": "Description|rich_text",
"peopleValue": [],
"textContent": "={{$node[\"Function\"].json[\"s4Status\"]}}",
"relationValue": [],
"multiSelectValue": []
}
]
}
},
"credentials": {
"notionApi": "Notion"
},
"typeVersion": 1
},
{
"name": "Interval",
"type": "n8n-nodes-base.interval",
"position": [
50,
380
],
"parameters": {
"interval": 20
},
"typeVersion": 1
},
{
"name": "SIGNL4 Resolve",
"type": "n8n-nodes-base.signl4",
"position": [
420,
540
],
"parameters": {
"operation": "resolve",
"externalId": "={{$node[\"Notion Read Open\"].json[\"id\"]}}"
},
"credentials": {
"signl4Api": "SIGNL4"
},
"typeVersion": 1
},
{
"name": "SIGNL4 Alert",
"type": "n8n-nodes-base.signl4",
"position": [
420,
210
],
"parameters": {
"message": "=Machine Alert: {{$node[\"Notion Trigger\"].json[\"Name\"]}}",
"additionalFields": {
"title": "n8n Alert",
"externalId": "={{$node[\"Notion Trigger\"].json[\"id\"]}}",
"locationFieldsUi": {
"locationFieldsValues": {
"latitude": "52.3992137",
"longitude": "13.0583823"
}
}
}
},
"credentials": {
"signl4Api": "SIGNL4"
},
"typeVersion": 1
},
{
"name": "Notion Update Read",
"type": "n8n-nodes-base.notion",
"position": [
570,
380
],
"parameters": {
"pageId": "={{$node[\"Notion Read New\"].json[\"id\"]}}",
"resource": "databasePage",
"operation": "update",
"propertiesUi": {
"propertyValues": [
{
"key": "Read|checkbox",
"peopleValue": [],
"checkboxValue": true,
"relationValue": [],
"multiSelectValue": []
}
]
}
},
"credentials": {
"notionApi": "Notion"
},
"typeVersion": 1
},
{
"name": "Notion Read Open",
"type": "n8n-nodes-base.notion",
"position": [
230,
540
],
"parameters": {
"options": {
"filter": {
"multipleCondition": {
"condition": {
"and": [
{
"key": "Up|checkbox",
"condition": "equals",
"checkboxValue": true,
"multiSelectValue": []
},
{
"key": "Read|checkbox",
"condition": "equals",
"checkboxValue": true,
"multiSelectValue": []
}
]
}
}
}
},
"resource": "databasePage",
"operation": "getAll",
"databaseId": "0f26823d-f509-43bb-b0e9-e9bb4ab91217"
},
"credentials": {
"notionApi": "Notion"
},
"typeVersion": 1
},
{
"name": "Notion Read New",
"type": "n8n-nodes-base.notion",
"position": [
230,
380
],
"parameters": {
"options": {
"filter": {
"multipleCondition": {
"condition": {
"and": [
{
"key": "Read|checkbox",
"condition": "equals",
"multiSelectValue": []
},
{
"key": "Up|checkbox",
"condition": "equals",
"multiSelectValue": []
}
]
}
}
}
},
"resource": "databasePage",
"operation": "getAll",
"databaseId": "0f26823d-f509-43bb-b0e9-e9bb4ab91217"
},
"credentials": {
"notionApi": "Notion"
},
"typeVersion": 1
},
{
"name": "Notion Update Final",
"type": "n8n-nodes-base.notion",
"position": [
570,
540
],
"parameters": {
"pageId": "={{$node[\"Notion Read Open\"].json[\"id\"]}}",
"resource": "databasePage",
"operation": "update",
"propertiesUi": {
"propertyValues": [
{
"key": "Read|checkbox",
"peopleValue": [],
"relationValue": [],
"multiSelectValue": []
}
]
}
},
"credentials": {
"notionApi": "Notion"
},
"typeVersion": 1
},
{
"name": "SIGNL4 Alert 2",
"type": "n8n-nodes-base.signl4",
"position": [
420,
380
],
"parameters": {
"message": "=Machine Alert: {{$node[\"Notion Read New\"].json[\"Name\"]}}",
"additionalFields": {
"title": "n8n Alert",
"externalId": "={{$node[\"Notion Read New\"].json[\"id\"]}}",
"locationFieldsUi": {
"locationFieldsValues": {
"latitude": "52.3992137",
"longitude": "13.0583823"
}
}
}
},
"credentials": {
"signl4Api": "SIGNL4"
},
"typeVersion": 1
}
],
"connections": {
"Webhook": {
"main": [
[
{
"node": "Function",
"type": "main",
"index": 0
}
]
]
},
"Function": {
"main": [
[
{
"node": "Notion Update",
"type": "main",
"index": 0
}
]
]
},
"Interval": {
"main": [
[
{
"node": "Notion Read Open",
"type": "main",
"index": 0
},
{
"node": "Notion Read New",
"type": "main",
"index": 0
}
]
]
},
"Notion Trigger": {
"main": [
[
{
"node": "SIGNL4 Alert",
"type": "main",
"index": 0
}
]
]
},
"SIGNL4 Alert 2": {
"main": [
[
{
"node": "Notion Update Read",
"type": "main",
"index": 0
}
]
]
},
"SIGNL4 Resolve": {
"main": [
[
{
"node": "Notion Update Final",
"type": "main",
"index": 0
}
]
]
},
"Notion Read New": {
"main": [
[
{
"node": "SIGNL4 Alert 2",
"type": "main",
"index": 0
}
]
]
},
"Notion Read Open": {
"main": [
[
{
"node": "SIGNL4 Resolve",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,105 @@
{
"id": "112",
"name": "Get Company by Name",
"nodes": [
{
"name": "On clicking 'execute'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
440,
510
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Create Company Item",
"type": "n8n-nodes-base.functionItem",
"position": [
640,
510
],
"parameters": {
"functionCode": "item.company = \"Killia technologies\";\nitem.country = \"Spain\";\n\nreturn item;"
},
"typeVersion": 1
},
{
"name": "Get Company by Name",
"type": "n8n-nodes-base.uproc",
"position": [
850,
510
],
"parameters": {
"name": "={{$node[\"Create Company Item\"].json[\"company\"]}}",
"tool": "getCompanyByName",
"group": "company",
"country": "={{$node[\"Create Company Item\"].json[\"country\"]}}",
"additionalOptions": {}
},
"credentials": {
"uprocApi": "miquel-uproc"
},
"typeVersion": 1
},
{
"name": "Company Found?",
"type": "n8n-nodes-base.if",
"position": [
1050,
510
],
"parameters": {
"conditions": {
"number": [],
"string": [
{
"value1": "={{$node[\"Get Company by Name\"].json[\"message\"][\"name\"]}}",
"value2": ".+",
"operation": "regex"
}
]
}
},
"typeVersion": 1
}
],
"active": false,
"settings": {},
"connections": {
"Create Company Item": {
"main": [
[
{
"node": "Get Company by Name",
"type": "main",
"index": 0
}
]
]
},
"Get Company by Name": {
"main": [
[
{
"node": "Company Found?",
"type": "main",
"index": 0
}
]
]
},
"On clicking 'execute'": {
"main": [
[
{
"node": "Create Company Item",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,29 @@
{
"id": "112",
"name": "Receive updates when a new account is added by an admin in ActiveCampaign",
"nodes": [
{
"name": "ActiveCampaign Trigger",
"type": "n8n-nodes-base.activeCampaignTrigger",
"position": [
700,
250
],
"parameters": {
"events": [
"account_add"
],
"sources": [
"admin"
]
},
"credentials": {
"activeCampaignApi": ""
},
"typeVersion": 1
}
],
"active": false,
"settings": {},
"connections": {}
}

View File

@ -0,0 +1,70 @@
{
"id": 112,
"name": "Standup Bot - Read Config",
"nodes": [
{
"name": "On clicking 'execute'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
240,
300
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Read Config File",
"type": "n8n-nodes-base.readBinaryFile",
"position": [
420,
300
],
"parameters": {
"filePath": "/home/node/.n8n/standup-bot-config.json",
"dataPropertyName": "config"
},
"typeVersion": 1
},
{
"name": "Convert to JSON",
"type": "n8n-nodes-base.moveBinaryData",
"position": [
600,
300
],
"parameters": {
"options": {
"encoding": "utf8"
},
"sourceKey": "config"
},
"typeVersion": 1
}
],
"active": false,
"settings": {},
"connections": {
"Read Config File": {
"main": [
[
{
"node": "Convert to JSON",
"type": "main",
"index": 0
}
]
]
},
"On clicking 'execute'": {
"main": [
[
{
"node": "Read Config File",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,101 @@
{
"nodes": [
{
"name": "On clicking 'execute'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
250,
300
],
"parameters": {},
"typeVersion": 1
},
{
"name": "IF",
"type": "n8n-nodes-base.if",
"position": [
600,
150
],
"parameters": {
"conditions": {
"number": [
{
"value1": "={{$runIndex}}",
"value2": 4
}
]
}
},
"typeVersion": 1
},
{
"name": "NoOp",
"type": "n8n-nodes-base.noOp",
"position": [
750,
300
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Twitter",
"type": "n8n-nodes-base.twitter",
"position": [
440,
300
],
"parameters": {
"text": "Hello from n8n!",
"additionalFields": {}
},
"credentials": {
"twitterOAuth1Api": "Dummy Account"
},
"typeVersion": 1
}
],
"connections": {
"IF": {
"main": [
[
{
"node": "Twitter",
"type": "main",
"index": 0
}
],
[
{
"node": "NoOp",
"type": "main",
"index": 0
}
]
]
},
"Twitter": {
"main": [
[
{
"node": "IF",
"type": "main",
"index": 0
}
]
]
},
"On clicking 'execute'": {
"main": [
[
{
"node": "Twitter",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,109 @@
{
"nodes": [
{
"name": "Github Trigger",
"type": "n8n-nodes-base.githubTrigger",
"position": [
450,
300
],
"webhookId": "01518289-14b1-4a45-9d33-39be08f7a544",
"parameters": {
"owner": "n8n-io",
"events": [
"push",
"pull_request"
],
"repository": "n8n",
"authentication": "oAuth2"
},
"credentials": {
"githubOAuth2Api": "GitHub Credentials"
},
"typeVersion": 1
},
{
"name": "IF",
"type": "n8n-nodes-base.if",
"position": [
650,
300
],
"parameters": {
"conditions": {
"string": [
{
"value1": "={{$json[\"headers\"][\"x-github-event\"]}}",
"value2": "push"
},
{
"value1": "={{$json[\"body\"][\"action\"]}}",
"value2": "opened"
}
]
},
"combineOperation": "any"
},
"typeVersion": 1
},
{
"name": "TravisCI",
"type": "n8n-nodes-base.travisCi",
"position": [
850,
200
],
"parameters": {
"slug": "={{$json[\"body\"][\"repository\"][\"full_name\"]}}",
"branch": "=",
"operation": "trigger",
"additionalFields": {}
},
"credentials": {
"travisCiApi": "Travis API"
},
"typeVersion": 1
},
{
"name": "NoOp",
"type": "n8n-nodes-base.noOp",
"position": [
850,
400
],
"parameters": {},
"typeVersion": 1
}
],
"connections": {
"IF": {
"main": [
[
{
"node": "TravisCI",
"type": "main",
"index": 0
}
],
[
{
"node": "NoOp",
"type": "main",
"index": 0
}
]
]
},
"Github Trigger": {
"main": [
[
{
"node": "IF",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,136 @@
{
"nodes": [
{
"name": "Telegram Trigger",
"type": "n8n-nodes-base.telegramTrigger",
"position": [
460,
320
],
"webhookId": "4d8556a0-8fdf-4228-8ee2-3e3c72f5fc57",
"parameters": {
"updates": [
"message"
],
"additionalFields": {}
},
"credentials": {
"telegramApi": ""
},
"typeVersion": 1
},
{
"name": "IF",
"type": "n8n-nodes-base.if",
"position": [
660,
320
],
"parameters": {
"conditions": {
"string": [
{
"value1": "={{$json[\"message\"][\"text\"]}}",
"value2": "/deploy",
"operation": "contains"
}
]
}
},
"typeVersion": 1
},
{
"name": "GitHub",
"type": "n8n-nodes-base.github",
"position": [
1060,
220
],
"parameters": {
"owner": "n8n-io",
"resource": "release",
"releaseTag": "={{$json[\"version\"]}}",
"repository": "n8n",
"authentication": "oAuth2",
"additionalFields": {}
},
"credentials": {
"githubOAuth2Api": ""
},
"typeVersion": 1
},
{
"name": "Set",
"type": "n8n-nodes-base.set",
"position": [
860,
220
],
"parameters": {
"values": {
"string": [
{
"name": "version",
"value": "={{$json[\"message\"][\"text\"].split(' ')[1]}}"
}
]
},
"options": {},
"keepOnlySet": true
},
"typeVersion": 1
},
{
"name": "NoOp",
"type": "n8n-nodes-base.noOp",
"position": [
860,
420
],
"parameters": {},
"typeVersion": 1
}
],
"connections": {
"IF": {
"main": [
[
{
"node": "Set",
"type": "main",
"index": 0
}
],
[
{
"node": "NoOp",
"type": "main",
"index": 0
}
]
]
},
"Set": {
"main": [
[
{
"node": "GitHub",
"type": "main",
"index": 0
}
]
]
},
"Telegram Trigger": {
"main": [
[
{
"node": "IF",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,47 @@
{
"id": "113",
"name": "Create an deal in Pipedrive",
"nodes": [
{
"name": "On clicking 'execute'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
250,
300
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Pipedrive",
"type": "n8n-nodes-base.pipedrive",
"position": [
450,
300
],
"parameters": {
"title": "",
"additionalFields": {}
},
"credentials": {
"pipedriveApi": ""
},
"typeVersion": 1
}
],
"active": false,
"settings": {},
"connections": {
"On clicking 'execute'": {
"main": [
[
{
"node": "Pipedrive",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,72 @@
{
"id": "113",
"name": "Get DNS entries",
"nodes": [
{
"name": "On clicking 'execute'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
240,
290
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Create Domain Item",
"type": "n8n-nodes-base.functionItem",
"position": [
450,
290
],
"parameters": {
"functionCode": "item.domain = \"n8n.io\";\nreturn item;"
},
"typeVersion": 1
},
{
"name": "Get DNS records",
"type": "n8n-nodes-base.uproc",
"position": [
650,
290
],
"parameters": {
"tool": "getDomainRecords",
"group": "internet",
"domain": "= {{$node[\"Create Domain Item\"].json[\"domain\"]}}",
"additionalOptions": {}
},
"credentials": {
"uprocApi": "miquel-uproc"
},
"typeVersion": 1
}
],
"active": false,
"settings": {},
"connections": {
"Create Domain Item": {
"main": [
[
{
"node": "Get DNS records",
"type": "main",
"index": 0
}
]
]
},
"On clicking 'execute'": {
"main": [
[
{
"node": "Create Domain Item",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,70 @@
{
"id": 113,
"name": "Standup Bot - Override Config",
"nodes": [
{
"name": "On clicking 'execute'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
240,
300
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Write Binary File",
"type": "n8n-nodes-base.writeBinaryFile",
"position": [
600,
300
],
"parameters": {
"fileName": "/home/node/.n8n/standup-bot-config.json"
},
"typeVersion": 1
},
{
"name": "Move Binary Data",
"type": "n8n-nodes-base.moveBinaryData",
"position": [
420,
300
],
"parameters": {
"mode": "jsonToBinary",
"options": {
"encoding": "utf8",
"fileName": "standup-bot-config.json"
}
},
"typeVersion": 1
}
],
"active": false,
"settings": {},
"connections": {
"Move Binary Data": {
"main": [
[
{
"node": "Write Binary File",
"type": "main",
"index": 0
}
]
]
},
"On clicking 'execute'": {
"main": [
[
{
"node": "Move Binary Data",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,81 @@
{
"id": "114",
"name": "Send daily weather updates via a message in Line",
"nodes": [
{
"name": "Line",
"type": "n8n-nodes-base.line",
"position": [
890,
380
],
"parameters": {
"message": "=Hey! The temperature outside is {{$node[\"OpenWeatherMap\"].json[\"main\"][\"temp\"]}}°C.",
"additionalFields": {}
},
"credentials": {
"lineNotifyOAuth2Api": "line-credentials"
},
"typeVersion": 1
},
{
"name": "Cron",
"type": "n8n-nodes-base.cron",
"position": [
490,
380
],
"parameters": {
"triggerTimes": {
"item": [
{
"hour": 9
}
]
}
},
"typeVersion": 1
},
{
"name": "OpenWeatherMap",
"type": "n8n-nodes-base.openWeatherMap",
"position": [
690,
380
],
"parameters": {
"cityName": "berlin"
},
"credentials": {
"openWeatherMapApi": "owm"
},
"typeVersion": 1
}
],
"active": false,
"settings": {},
"connections": {
"Cron": {
"main": [
[
{
"node": "OpenWeatherMap",
"type": "main",
"index": 0
}
]
]
},
"OpenWeatherMap": {
"main": [
[
{
"node": "Line",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,721 @@
{
"id": 114,
"name": "Standup Bot - Worker",
"nodes": [
{
"name": "publish report",
"type": "n8n-nodes-base.mattermost",
"position": [
1840,
1040
],
"parameters": {
"message": "={{$node[\"Prep Report\"].json[\"post\"]}}",
"channelId": "={{$node[\"Prep Report\"].json[\"channel\"]}}",
"attachments": [],
"otherOptions": {}
},
"credentials": {
"mattermostApi": {
"id": "2",
"name": "Mattermost account"
}
},
"typeVersion": 1
},
{
"name": "get user data",
"type": "n8n-nodes-base.httpRequest",
"position": [
1400,
1040
],
"parameters": {
"url": "={{$node[\"Read Config 2\"].json[\"config\"][\"mattermostBaseUrl\"]}}/api/v4/users/{{$node[\"Action from MM\"].json[\"body\"][\"user_id\"]}}",
"options": {},
"jsonParameters": true,
"headerParametersJson": "={\n\"Authorization\": \"Bearer {{$item(0).$node[\"Read Config 2\"].json[\"config\"][\"botUserToken\"]}}\"\n}"
},
"typeVersion": 1
},
{
"name": "open-standup-dialog?",
"type": "n8n-nodes-base.if",
"position": [
1180,
1260
],
"parameters": {
"conditions": {
"string": [
{
"value1": "={{$node[\"Action from MM\"].json[\"body\"][\"context\"][\"action\"]}}",
"value2": "open-standup-dialog"
}
]
}
},
"typeVersion": 1
},
{
"name": "Action from MM",
"type": "n8n-nodes-base.webhook",
"position": [
520,
820
],
"webhookId": "6a28d86b-9f74-4825-9785-57e0d43b198f",
"parameters": {
"path": "standup-bot/action/f6f9b174745fa4651f750c36957d674c",
"options": {},
"httpMethod": "POST"
},
"typeVersion": 1
},
{
"name": "Slash Cmd from MM",
"type": "n8n-nodes-base.webhook",
"position": [
520,
600
],
"webhookId": "72732516-1143-430f-8465-d193fe657311",
"parameters": {
"path": "standup-bot/slashCmd",
"options": {},
"httpMethod": "POST"
},
"typeVersion": 1
},
{
"name": "config?",
"type": "n8n-nodes-base.if",
"position": [
740,
600
],
"parameters": {
"conditions": {
"string": [
{
"value1": "={{$node[\"Slash Cmd from MM\"].json[\"body\"][\"text\"]}}",
"value2": "config"
}
]
}
},
"typeVersion": 1
},
{
"name": "open config dialog",
"type": "n8n-nodes-base.httpRequest",
"position": [
1360,
580
],
"parameters": {
"url": "={{$node[\"Read Config 1\"].json[\"config\"][\"mattermostBaseUrl\"]}}/api/v4/actions/dialogs/open",
"options": {
"bodyContentType": "json"
},
"requestMethod": "POST",
"jsonParameters": true,
"bodyParametersJson": "={{$json}}"
},
"typeVersion": 1
},
{
"name": "Prep Config Dialog",
"type": "n8n-nodes-base.function",
"position": [
1160,
580
],
"parameters": {
"functionCode": "const channelId =\n $item(0).$node['Slash Cmd from MM'].json['body']['channel_id'];\n\nconst configuredStandups =\n $item(0).$node['Read Config 1'].json['standups'] ?? [];\n\nlet standup = configuredStandups.find(\n (standup) => standup.channelId == channelId\n);\n\n// define default values:\nif (!standup) {\n standup = {\n title: 'Team Standup',\n time: '09:00',\n days: [1, 2, 3, 4, 5],\n questions: [\n 'What have you accomplished since your last report?',\n 'What do you want to accomplish until your next report?',\n 'Is anything blocking your progress?',\n ],\n users: [],\n };\n}\n\nconst payload = {\n trigger_id: $item(0).$node['Slash Cmd from MM'].json['body']['trigger_id'],\n url: $item(0).$node['Read Config 1'].json['config']['n8nWebhookUrl'],\n dialog: {\n callback_id: 'standup-config',\n title: 'Standup Configuration',\n submit_label: 'Save',\n notify_on_cancel: false,\n state: JSON.stringify({ standupId: channelId }),\n elements: [\n {\n display_name: 'Standup title',\n name: 'title',\n type: 'text',\n placeholder: 'Team Standup',\n default: standup.title,\n optional: true,\n help_text:\n '💡 The standup can be deleted by setting its title to an empty string!',\n },\n {\n display_name: 'Time',\n name: 'time',\n type: 'select',\n default: standup.time,\n options: [\n {\n text: '06:00',\n value: '06:00',\n },\n {\n text: '07:00',\n value: '07:00',\n },\n {\n text: '08:00',\n value: '08:00',\n },\n {\n text: '09:00',\n value: '09:00',\n },\n {\n text: '10:00',\n value: '10:00',\n },\n {\n text: '11:00',\n value: '11:00',\n },\n {\n text: '12:00',\n value: '12:00',\n },\n {\n text: '13:00',\n value: '13:00',\n },\n {\n text: '14:00',\n value: '14:00',\n },\n {\n text: '15:00',\n value: '15:00',\n },\n {\n text: '16:00',\n value: '16:00',\n },\n {\n text: '17:00',\n value: '17:00',\n },\n ],\n },\n {\n display_name: 'Days',\n name: 'days',\n type: 'text',\n placeholder: '1,2,3,4,5',\n help_text:\n 'comma-separated; 0=Sun | 1=Mon | 2=Tue | 3=Wed | 4=Thu | 5=Fri | 6=Sat',\n default: standup.days.join(','),\n },\n {\n display_name: 'Questions',\n name: 'questions',\n type: 'textarea',\n help_text: 'Max 5 questions, one question per line;',\n default: standup.questions.join('\\n'),\n },\n {\n display_name: 'Users',\n name: 'users',\n type: 'textarea',\n help_text: 'One user per line',\n default: standup.users.join('\\n'),\n },\n ],\n },\n};\n\nreturn [{ json: payload }];\n\n"
},
"typeVersion": 1
},
{
"name": "callback ID?",
"type": "n8n-nodes-base.switch",
"position": [
960,
820
],
"parameters": {
"rules": {
"rules": [
{
"value2": "standup-config"
},
{
"output": 1,
"value2": "standup-answers"
}
]
},
"value1": "={{$node[\"Action from MM\"].json[\"body\"][\"callback_id\"]}}",
"dataType": "string",
"fallbackOutput": 3
},
"typeVersion": 1
},
{
"name": "standup-config",
"type": "n8n-nodes-base.noOp",
"position": [
1180,
820
],
"parameters": {},
"typeVersion": 1
},
{
"name": "standup-answers",
"type": "n8n-nodes-base.noOp",
"position": [
1180,
1040
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Prep Config Override",
"type": "n8n-nodes-base.function",
"position": [
1400,
820
],
"parameters": {
"functionCode": "const mattermostInput = $item(0).$node['Action from MM'].json['body'];\nconst config = $item(0).$node['Read Config 2'].json;\n\n// ensure there is a \"standups\" array:\nconfig['standups'] = config['standups'] ?? [];\n\n// remove the standup from the list:\nconfig['standups'] = config['standups'].filter(\n (standup) => standup.channelId != mattermostInput.channel_id\n);\n\nconst textToArray = (text, separator) => {\n return text\n .split(separator)\n .map((e) => e.trim())\n .filter((e) => e.length > 0);\n};\n\n// a standup can be deleted by updating its title to \"\"\nif (mattermostInput.submission.title.length > 0) {\n const newStandup = {\n channelId: mattermostInput.channel_id,\n title: mattermostInput.submission.title,\n time: mattermostInput.submission.time,\n days: textToArray(mattermostInput.submission.days, ',').map((e) =>\n parseInt(e)\n ),\n users: textToArray(mattermostInput.submission.users, '\\n'),\n questions: textToArray(mattermostInput.submission.questions, '\\n'),\n };\n\n config['standups'].push(newStandup);\n}\n\nreturn [{ json: config }];\n\n"
},
"typeVersion": 1
},
{
"name": "Override Config",
"type": "n8n-nodes-base.executeWorkflow",
"position": [
1620,
820
],
"parameters": {
"workflowId": "1005"
},
"typeVersion": 1
},
{
"name": "Read Config 1",
"type": "n8n-nodes-base.executeWorkflow",
"position": [
960,
580
],
"parameters": {
"workflowId": "1004"
},
"typeVersion": 1
},
{
"name": "Read Config 2",
"type": "n8n-nodes-base.executeWorkflow",
"position": [
740,
820
],
"parameters": {
"workflowId": "1004"
},
"typeVersion": 1
},
{
"name": "confirm success",
"type": "n8n-nodes-base.mattermost",
"position": [
1840,
820
],
"parameters": {
"userId": "={{$node[\"Action from MM\"].json[\"body\"][\"user_id\"]}}",
"message": "new standup config was saved successfully",
"channelId": "={{$node[\"Action from MM\"].json[\"body\"][\"channel_id\"]}}",
"operation": "postEphemeral"
},
"credentials": {
"mattermostApi": {
"id": "2",
"name": "Mattermost account"
}
},
"typeVersion": 1
},
{
"name": "Read Config 3",
"type": "n8n-nodes-base.executeWorkflow",
"position": [
740,
380
],
"parameters": {
"workflowId": "1004"
},
"typeVersion": 1
},
{
"name": "Filter Due Standups",
"type": "n8n-nodes-base.function",
"position": [
960,
380
],
"parameters": {
"functionCode": "const config = $item(0).$node['Read Config 3'].json;\n\n// ensure there is a \"standups\" array:\nconfig['standups'] = config['standups'] ?? [];\n\nconst now = new Date();\nconst duePattern = `${now.getDay()}_${now\n .getHours()\n .toString()\n .padStart(2, '0')}:00`; // e.g. 1_13:00 => Monday 1 p.m.\n \nconsole.log(duePattern);\n\n// filter standups that are due now:\nconst dueStandups = config.standups.filter((standup) =>\n //true\n standup.days.map((day) => `${day}_${standup.time}`).includes(duePattern)\n);\n\nreturn dueStandups.map((standup) => ({\n json: standup,\n}));\n\n"
},
"typeVersion": 1
},
{
"name": "Prep Request Standup",
"type": "n8n-nodes-base.function",
"position": [
1180,
380
],
"parameters": {
"functionCode": "const reminders = items.reduce((prev, curr) => {\n return prev.concat(\n curr.json.users.map((user) => ({\n channelId: curr.json.channelId,\n title: curr.json.title,\n user: user,\n }))\n );\n}, []);\n\nreturn reminders.map((reminder) => ({\n json: reminder,\n}));\n"
},
"typeVersion": 1
},
{
"name": "Create Channel",
"type": "n8n-nodes-base.httpRequest",
"position": [
1620,
380
],
"parameters": {
"url": "={{$item(0).$node[\"Read Config 3\"].json[\"config\"][\"mattermostBaseUrl\"]}}/api/v4/channels/direct",
"options": {},
"requestMethod": "POST",
"jsonParameters": true,
"bodyParametersJson": "=[\"{{$node[\"Get User\"].json[\"id\"]}}\", \"{{$item(0).$node[\"Read Config 3\"].json[\"config\"][\"botUserId\"]}}\"]",
"headerParametersJson": "={\n \"Authorization\": \"Bearer {{$item(0).$node[\"Read Config 3\"].json[\"config\"][\"botUserToken\"]}}\"\n}"
},
"typeVersion": 1
},
{
"name": "Remind Users",
"type": "n8n-nodes-base.httpRequest",
"position": [
2060,
380
],
"parameters": {
"url": "={{$item(0).$node[\"Read Config 3\"].json[\"config\"][\"mattermostBaseUrl\"]}}/api/v4/posts",
"options": {},
"requestMethod": "POST",
"jsonParameters": true,
"bodyParametersJson": "={{$json}}",
"headerParametersJson": "={\n\"Authorization\": \"Bearer {{$item(0).$node[\"Read Config 3\"].json[\"config\"][\"botUserToken\"]}}\"\n}"
},
"typeVersion": 1
},
{
"name": "Get User",
"type": "n8n-nodes-base.httpRequest",
"position": [
1400,
380
],
"parameters": {
"url": "={{$item(0).$node[\"Read Config 3\"].json[\"config\"][\"mattermostBaseUrl\"]}}/api/v4/users/username/{{$node[\"Prep Request Standup\"].json[\"user\"]}}",
"options": {},
"jsonParameters": true,
"headerParametersJson": "={\n \"Authorization\": \"Bearer {{$item(0).$node[\"Read Config 3\"].json[\"config\"][\"botUserToken\"]}}\"\n}"
},
"typeVersion": 1,
"continueOnFail": true
},
{
"name": "Prep Reminder",
"type": "n8n-nodes-base.function",
"position": [
1840,
380
],
"parameters": {
"functionCode": "const webhookUrl =\n $item(0).$node['Read Config 3'].json['config']['n8nWebhookUrl']; // e.g. https://xyz.app.n8n.cloud/webhook-test/standup-bot/action/top-secret-api-key\n\nconst botUserToken =\n $item(0).$node['Read Config 3'].json['config']['botUserToken'];\n\nlet itemIndex = 0;\n\nfor (item of items) {\n const directChannelId = item.json.id;\n\n const payload = {\n channel_id: directChannelId,\n props: {\n attachments: [\n {\n pretext: \"Hi there! It's time for standup!\",\n text: `Please provide your input for: **${\n $item(itemIndex).$node['Prep Request Standup'].json['title']\n }**`,\n actions: [\n {\n id: webhookUrl.includes('test') ? 'webhook-test' : 'webhook',\n name: 'Provide Update',\n integration: {\n url: webhookUrl,\n context: {\n action: 'open-standup-dialog',\n secret: botUserToken, // not ideal but good enough for now...\n standupId:\n $item(itemIndex).$node['Prep Request Standup'].json[\n 'channelId'\n ],\n },\n },\n },\n ],\n },\n ],\n },\n };\n\n item.json = payload;\n\n itemIndex++;\n}\n\nreturn items;\n\n"
},
"typeVersion": 1
},
{
"name": "Prep Standup Dialog",
"type": "n8n-nodes-base.function",
"position": [
1400,
1240
],
"parameters": {
"functionCode": "const standupId =\n $item(0).$node['Action from MM'].json['body']['context']['standupId'];\n\nconst postId = $item(0).$node['Action from MM'].json['body']['post_id'];\n\nconst configuredStandups =\n $item(0).$node['Read Config 2'].json['standups'] ?? [];\n\nlet standup = configuredStandups.find(\n (standup) => (standup.channelId == standupId)\n);\n\nconst renderQuestions = (questions) => {\n let questionId = 1;\n\n return questions.map((question) => ({\n display_name: question,\n name: `q${questionId++}`,\n type: 'textarea',\n }));\n};\n\nconst payload = {\n trigger_id: $item(0).$node['Action from MM'].json['body']['trigger_id'],\n url: $item(0).$node['Read Config 2'].json['config']['n8nWebhookUrl'],\n dialog: {\n callback_id: 'standup-answers',\n title: `Report for: ${standup.title}`,\n submit_label: 'Submit',\n notify_on_cancel: false,\n state: JSON.stringify({ standupId, reminderPostId: postId }),\n elements: renderQuestions(standup.questions),\n },\n};\n\nreturn [{ json: payload }];\n"
},
"typeVersion": 1
},
{
"name": "open standup dialog",
"type": "n8n-nodes-base.httpRequest",
"position": [
1600,
1240
],
"parameters": {
"url": "={{$node[\"Read Config 2\"].json[\"config\"][\"mattermostBaseUrl\"]}}/api/v4/actions/dialogs/open",
"options": {
"bodyContentType": "json"
},
"requestMethod": "POST",
"jsonParameters": true,
"bodyParametersJson": "={{$json}}"
},
"typeVersion": 1
},
{
"name": "Prep Report",
"type": "n8n-nodes-base.function",
"position": [
1620,
1040
],
"parameters": {
"functionCode": "const { standupId, reminderPostId } = JSON.parse(\n $item(0).$node['Action from MM'].json['body']['state']\n);\nconst submission = $item(0).$node['Action from MM'].json['body']['submission'];\n\nconst configuredStandups = $item(0).$node['Read Config 2'].json['standups'];\n\nconst standup = configuredStandups.find(\n (standup) => standup.channelId == standupId\n);\n\nconst emptyAnswers = [\n '-',\n '/',\n ' ',\n 'x',\n 'n/a',\n 'nope',\n 'nopes',\n 'no',\n 'none',\n 'no.',\n 'nothing',\n];\n\nfunction capitalize(text) {\n return text.charAt(0).toUpperCase() + text.slice(1);\n}\n\nconst renderPost = (submission, standup) => {\n let postText = `### ${capitalize(\n $item(0).$node['get user data'].json['username']\n )}\\n`;\n\n let questionIndex = 0;\n\n postText += standup.questions\n .map((question) => {\n questionIndex++;\n\n if (\n !submission[`q${questionIndex}`] ||\n emptyAnswers.includes(submission[`q${questionIndex}`].toLowerCase())\n ) {\n return '';\n }\n\n return `#### ${question}\\n${submission[`q${questionIndex}`]}`;\n })\n .join('\\n');\n\n return postText;\n};\n\nreturn [\n {\n json: {\n post: renderPost(submission, standup),\n channel: standupId,\n reminderPostId,\n standupTitle: standup.title,\n },\n },\n];\n\n"
},
"typeVersion": 1
},
{
"name": "Delete ReminderPost",
"type": "n8n-nodes-base.mattermost",
"position": [
2280,
1040
],
"parameters": {
"postId": "={{$node[\"Prep Report\"].json[\"reminderPostId\"]}}",
"operation": "delete"
},
"credentials": {
"mattermostApi": {
"id": "2",
"name": "Mattermost account"
}
},
"typeVersion": 1
},
{
"name": "Update Post",
"type": "n8n-nodes-base.httpRequest",
"position": [
2060,
1040
],
"parameters": {
"url": "={{$node[\"Read Config 2\"].json[\"config\"][\"mattermostBaseUrl\"]}}/api/v4/posts/{{$node[\"Prep Report\"].json[\"reminderPostId\"]}}",
"options": {},
"requestMethod": "PUT",
"jsonParameters": true,
"bodyParametersJson": "={\n\"id\":\"{{$node[\"Prep Report\"].json[\"reminderPostId\"]}}\",\n\"message\": \"Thank you for providing your report for {{$node[\"Prep Report\"].json[\"standupTitle\"]}}\"\n}",
"headerParametersJson": "={\n\"Content-Type\":\"application/json\",\n\"Authorization\": \"Bearer {{$item(0).$node[\"Read Config 2\"].json[\"config\"][\"botUserToken\"]}}\"\n}"
},
"typeVersion": 1
},
{
"name": "Every hour",
"type": "n8n-nodes-base.cron",
"position": [
520,
380
],
"parameters": {
"triggerTimes": {
"item": [
{
"mode": "custom",
"cronExpression": "0 0 6-12 * * 1-5"
}
]
}
},
"typeVersion": 1
}
],
"active": false,
"settings": {},
"connections": {
"config?": {
"main": [
[
{
"node": "Read Config 1",
"type": "main",
"index": 0
}
]
]
},
"Get User": {
"main": [
[
{
"node": "Create Channel",
"type": "main",
"index": 0
}
]
]
},
"Every hour": {
"main": [
[
{
"node": "Read Config 3",
"type": "main",
"index": 0
}
]
]
},
"Prep Report": {
"main": [
[
{
"node": "publish report",
"type": "main",
"index": 0
}
]
]
},
"callback ID?": {
"main": [
[
{
"node": "standup-config",
"type": "main",
"index": 0
}
],
[
{
"node": "standup-answers",
"type": "main",
"index": 0
}
],
[],
[
{
"node": "open-standup-dialog?",
"type": "main",
"index": 0
}
]
]
},
"Prep Reminder": {
"main": [
[
{
"node": "Remind Users",
"type": "main",
"index": 0
}
]
]
},
"Read Config 1": {
"main": [
[
{
"node": "Prep Config Dialog",
"type": "main",
"index": 0
}
]
]
},
"Read Config 2": {
"main": [
[
{
"node": "callback ID?",
"type": "main",
"index": 0
}
]
]
},
"Read Config 3": {
"main": [
[
{
"node": "Filter Due Standups",
"type": "main",
"index": 0
}
]
]
},
"get user data": {
"main": [
[
{
"node": "Prep Report",
"type": "main",
"index": 0
}
]
]
},
"Action from MM": {
"main": [
[
{
"node": "Read Config 2",
"type": "main",
"index": 0
}
]
]
},
"Create Channel": {
"main": [
[
{
"node": "Prep Reminder",
"type": "main",
"index": 0
}
]
]
},
"publish report": {
"main": [
[
{
"node": "Update Post",
"type": "main",
"index": 0
}
]
]
},
"standup-config": {
"main": [
[
{
"node": "Prep Config Override",
"type": "main",
"index": 0
}
]
]
},
"Override Config": {
"main": [
[
{
"node": "confirm success",
"type": "main",
"index": 0
}
]
]
},
"standup-answers": {
"main": [
[
{
"node": "get user data",
"type": "main",
"index": 0
}
]
]
},
"Slash Cmd from MM": {
"main": [
[
{
"node": "config?",
"type": "main",
"index": 0
}
]
]
},
"Prep Config Dialog": {
"main": [
[
{
"node": "open config dialog",
"type": "main",
"index": 0
}
]
]
},
"Filter Due Standups": {
"main": [
[
{
"node": "Prep Request Standup",
"type": "main",
"index": 0
}
]
]
},
"Prep Standup Dialog": {
"main": [
[
{
"node": "open standup dialog",
"type": "main",
"index": 0
}
]
]
},
"Prep Config Override": {
"main": [
[
{
"node": "Override Config",
"type": "main",
"index": 0
}
]
]
},
"Prep Request Standup": {
"main": [
[
{
"node": "Get User",
"type": "main",
"index": 0
}
]
]
},
"open-standup-dialog?": {
"main": [
[
{
"node": "Prep Standup Dialog",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,101 @@
{
"id": "114",
"name": "Verify phone numbers",
"nodes": [
{
"name": "On clicking 'execute'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
440,
510
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Create Phone Item",
"type": "n8n-nodes-base.functionItem",
"position": [
640,
510
],
"parameters": {
"functionCode": "item.phone = \"+34605281220\";\nreturn item;"
},
"typeVersion": 1
},
{
"name": "Parse and Validate Phone",
"type": "n8n-nodes-base.uproc",
"position": [
850,
510
],
"parameters": {
"tool": "getPhoneParsed",
"phone": "={{$node[\"Create Phone Item\"].json[\"phone\"]}}",
"additionalOptions": {}
},
"credentials": {
"uprocApi": "miquel-uproc"
},
"typeVersion": 1
},
{
"name": "Phone is Valid?",
"type": "n8n-nodes-base.if",
"position": [
1050,
510
],
"parameters": {
"conditions": {
"string": [
{
"value1": "={{$node[\"Parse and Validate Phone\"].json[\"message\"][\"valid\"]+\"\"}}",
"value2": "true"
}
]
}
},
"typeVersion": 1
}
],
"active": false,
"settings": {},
"connections": {
"Create Phone Item": {
"main": [
[
{
"node": "Parse and Validate Phone",
"type": "main",
"index": 0
}
]
]
},
"On clicking 'execute'": {
"main": [
[
{
"node": "Create Phone Item",
"type": "main",
"index": 0
}
]
]
},
"Parse and Validate Phone": {
"main": [
[
{
"node": "Phone is Valid?",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,236 @@
{
"nodes": [
{
"name": "On clicking 'execute'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
320,
170
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Merge",
"type": "n8n-nodes-base.merge",
"position": [
960,
320
],
"parameters": {
"mode": "mergeByIndex"
},
"typeVersion": 1
},
{
"name": "Move Binary Data",
"type": "n8n-nodes-base.moveBinaryData",
"position": [
1260,
320
],
"parameters": {
"mode": "jsonToBinary",
"options": {
"useRawData": false
}
},
"typeVersion": 1
},
{
"name": "Map",
"type": "n8n-nodes-base.function",
"position": [
710,
320
],
"parameters": {
"functionCode": "return items[0].json.data.map(item => {\n return {json: item}\n});"
},
"typeVersion": 1
},
{
"name": "Get Workflow",
"type": "n8n-nodes-base.httpRequest",
"notes": "Don't forget to add your credentials for your n8n instance in this Node. Use Basic Auth for this. ",
"position": [
830,
460
],
"parameters": {
"url": "=http://localhost:5678/rest/workflows/{{$node[\"Map\"].data[\"id\"]}}",
"options": {},
"authentication": "basicAuth"
},
"credentials": {
"httpBasicAuth": "n8n Creds"
},
"notesInFlow": false,
"typeVersion": 1
},
{
"name": "Get Workflow List",
"type": "n8n-nodes-base.httpRequest",
"notes": "Don't forget to add your credentials for your n8n instance in this Node. Use Basic Auth for this. ",
"position": [
520,
320
],
"parameters": {
"url": "http://localhost:5678/rest/workflows",
"options": {},
"authentication": "basicAuth"
},
"credentials": {
"httpBasicAuth": "n8n Creds"
},
"typeVersion": 1
},
{
"name": "FunctionItem",
"type": "n8n-nodes-base.functionItem",
"position": [
1110,
320
],
"parameters": {
"functionCode": "item = item.data;\nreturn item;"
},
"typeVersion": 1
},
{
"name": "Google Drive",
"type": "n8n-nodes-base.googleDrive",
"position": [
1450,
320
],
"parameters": {
"name": "={{$node[\"Merge\"].data[\"name\"]}}.json",
"parents": [
"Delete this text and put id for folder you want to upload into in this field. The folder ID can be found by opening the folder in your browser and copying the portion after https://drive.google.com/drive/u/0/folders/"
],
"binaryData": true,
"resolveData": true
},
"credentials": {
"googleApi": "test"
},
"typeVersion": 1
},
{
"name": "Run Daily at 2:30am",
"type": "n8n-nodes-base.cron",
"position": [
330,
320
],
"parameters": {
"triggerTimes": {
"item": [
{
"hour": 2,
"minute": 30
}
]
}
},
"typeVersion": 1
}
],
"connections": {
"Map": {
"main": [
[
{
"node": "Get Workflow",
"type": "main",
"index": 0
},
{
"node": "Merge",
"type": "main",
"index": 0
}
]
]
},
"Merge": {
"main": [
[
{
"node": "FunctionItem",
"type": "main",
"index": 0
}
]
]
},
"FunctionItem": {
"main": [
[
{
"node": "Move Binary Data",
"type": "main",
"index": 0
}
]
]
},
"Get Workflow": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 1
}
]
]
},
"Move Binary Data": {
"main": [
[
{
"node": "Google Drive",
"type": "main",
"index": 0
}
]
]
},
"Get Workflow List": {
"main": [
[
{
"node": "Map",
"type": "main",
"index": 0
}
]
]
},
"Run Daily at 2:30am": {
"main": [
[
{
"node": "Get Workflow List",
"type": "main",
"index": 0
}
]
]
},
"On clicking 'execute'": {
"main": [
[
{
"node": "Get Workflow List",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,111 @@
{
"nodes": [
{
"name": "On clicking 'execute'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-40,
240
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Gmail",
"type": "n8n-nodes-base.gmail",
"position": [
150,
240
],
"parameters": {
"resource": "message",
"operation": "getAll",
"returnAll": true,
"additionalFields": {
"q": "-in:chats unsubscribe -license -key -password",
"format": "ids"
}
},
"credentials": {
"gmailOAuth2": "Gmail"
},
"typeVersion": 1
},
{
"name": "Delete Old Gmail",
"type": "n8n-nodes-base.gmail",
"position": [
500,
410
],
"parameters": {
"resource": "message",
"messageId": "={{$json[\"id\"]}}",
"operation": "delete"
},
"credentials": {
"gmailOAuth2": "Gmail"
},
"typeVersion": 1
},
{
"name": "SplitInBatches",
"type": "n8n-nodes-base.splitInBatches",
"position": [
310,
240
],
"parameters": {
"options": {},
"batchSize": 100
},
"typeVersion": 1
}
],
"connections": {
"Gmail": {
"main": [
[
{
"node": "SplitInBatches",
"type": "main",
"index": 0
}
]
]
},
"SplitInBatches": {
"main": [
[
{
"node": "Delete Old Gmail",
"type": "main",
"index": 0
}
]
]
},
"Delete Old Gmail": {
"main": [
[
{
"node": "SplitInBatches",
"type": "main",
"index": 0
}
]
]
},
"On clicking 'execute'": {
"main": [
[
{
"node": "Gmail",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,291 @@
{
"id": 115,
"name": "Archive empty pages in Notion Database",
"nodes": [
{
"name": "Get All Databases",
"type": "n8n-nodes-base.notion",
"position": [
240,
300
],
"parameters": {
"resource": "database",
"operation": "getAll",
"returnAll": true
},
"credentials": {
"notionApi": {
"id": "36",
"name": "Notion account"
}
},
"typeVersion": 2
},
{
"name": "Get All Database Pages",
"type": "n8n-nodes-base.notion",
"position": [
420,
300
],
"parameters": {
"simple": false,
"options": {},
"resource": "databasePage",
"operation": "getAll",
"returnAll": true,
"databaseId": "={{$json[\"id\"]}}"
},
"credentials": {
"notionApi": {
"id": "36",
"name": "Notion account"
}
},
"typeVersion": 2
},
{
"name": "Get Page Blocks",
"type": "n8n-nodes-base.notion",
"position": [
1180,
280
],
"parameters": {
"blockId": "={{$json[\"id\"]}}",
"resource": "block",
"operation": "getAll",
"returnAll": true
},
"credentials": {
"notionApi": {
"id": "36",
"name": "Notion account"
}
},
"typeVersion": 2,
"alwaysOutputData": true
},
{
"name": "Process Blocks",
"type": "n8n-nodes-base.function",
"position": [
1360,
280
],
"parameters": {
"functionCode": "let returnData = {\n json: {\n toDelete: false,\n pageID: $node[\"SplitInBatches\"].json[\"id\"],\n }\n};\n\nif (!items[0].json.id) {\n returnData.json.toDelete = true;\n return [returnData];\n}\n\nfor (item of items) {\n \n let toDelete = false;\n\n let type = item.json.type;\n let data = item.json[type];\n\n if (!toDelete) {\n if (data.text.length == 0) {\n toDelete = true;\n } else {\n returnData.json.toDelete = false;\n break;\n }\n }\n\n returnData.json.toDelete = toDelete;\n}\n\nreturn [returnData];"
},
"typeVersion": 1
},
{
"name": "SplitInBatches",
"type": "n8n-nodes-base.splitInBatches",
"position": [
1000,
280
],
"parameters": {
"options": {},
"batchSize": 1
},
"typeVersion": 1
},
{
"name": "Check for empty properties",
"type": "n8n-nodes-base.function",
"position": [
600,
300
],
"parameters": {
"functionCode": "for (item of items) {\n\n let toDelete = false;\n for (const key in item.json.properties) {\n let type = item.json.properties[key].type;\n let data = item.json.properties[key][type];\n \n if (!data || data.length == 0) {\n toDelete = true;\n } else {\n toDelete = false;\n break;\n }\n }\n\n item.json.toDelete = toDelete;\n}\n\nreturn items;"
},
"typeVersion": 1
},
{
"name": "Archive Page",
"type": "n8n-nodes-base.notion",
"position": [
1760,
260
],
"parameters": {
"pageId": "={{$json[\"pageID\"]}}",
"operation": "archive"
},
"credentials": {
"notionApi": {
"id": "36",
"name": "Notion account"
}
},
"typeVersion": 2
},
{
"name": "If toDelete",
"type": "n8n-nodes-base.if",
"position": [
1560,
280
],
"parameters": {
"conditions": {
"boolean": [
{
"value1": "={{$json[\"toDelete\"]}}",
"value2": true
}
]
}
},
"typeVersion": 1
},
{
"name": "If Empty Properties",
"type": "n8n-nodes-base.if",
"position": [
760,
300
],
"parameters": {
"conditions": {
"boolean": [
{
"value1": "={{$json[\"toDelete\"]}}",
"value2": true
}
]
}
},
"typeVersion": 1
},
{
"name": "Every day @ 2am",
"type": "n8n-nodes-base.cron",
"position": [
80,
300
],
"parameters": {
"triggerTimes": {
"item": [
{
"hour": 2
}
]
}
},
"typeVersion": 1
}
],
"active": false,
"settings": {},
"connections": {
"If toDelete": {
"main": [
[
{
"node": "Archive Page",
"type": "main",
"index": 0
}
]
]
},
"Process Blocks": {
"main": [
[
{
"node": "If toDelete",
"type": "main",
"index": 0
},
{
"node": "SplitInBatches",
"type": "main",
"index": 0
}
]
]
},
"SplitInBatches": {
"main": [
[
{
"node": "Get Page Blocks",
"type": "main",
"index": 0
}
]
]
},
"Every day @ 2am": {
"main": [
[
{
"node": "Get All Databases",
"type": "main",
"index": 0
}
]
]
},
"Get Page Blocks": {
"main": [
[
{
"node": "Process Blocks",
"type": "main",
"index": 0
}
]
]
},
"Get All Databases": {
"main": [
[
{
"node": "Get All Database Pages",
"type": "main",
"index": 0
}
]
]
},
"If Empty Properties": {
"main": [
[
{
"node": "SplitInBatches",
"type": "main",
"index": 0
}
]
]
},
"Get All Database Pages": {
"main": [
[
{
"node": "Check for empty properties",
"type": "main",
"index": 0
}
]
]
},
"Check for empty properties": {
"main": [
[
{
"node": "If Empty Properties",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,22 @@
{
"id": "115",
"name": "Receive updates for all changes in Pipedrive",
"nodes": [
{
"name": "Pipedrive Trigger",
"type": "n8n-nodes-base.pipedriveTrigger",
"position": [
750,
250
],
"parameters": {},
"credentials": {
"pipedriveApi": ""
},
"typeVersion": 1
}
],
"active": false,
"settings": {},
"connections": {}
}

View File

@ -0,0 +1,83 @@
{
"id": "115",
"name": "Send daily weather updates via a message using the Gotify node",
"nodes": [
{
"name": "Cron",
"type": "n8n-nodes-base.cron",
"position": [
490,
340
],
"parameters": {
"triggerTimes": {
"item": [
{
"hour": 9
}
]
}
},
"typeVersion": 1
},
{
"name": "OpenWeatherMap",
"type": "n8n-nodes-base.openWeatherMap",
"position": [
690,
340
],
"parameters": {
"cityName": "berlin"
},
"credentials": {
"openWeatherMapApi": "owm"
},
"typeVersion": 1
},
{
"name": "Gotify",
"type": "n8n-nodes-base.gotify",
"position": [
890,
340
],
"parameters": {
"message": "=Hey! The temperature outside is {{$node[\"OpenWeatherMap\"].json[\"main\"][\"temp\"]}}°C.",
"additionalFields": {
"title": "Today's Weather Update"
}
},
"credentials": {
"gotifyApi": "gotify-credentials"
},
"typeVersion": 1
}
],
"active": false,
"settings": {},
"connections": {
"Cron": {
"main": [
[
{
"node": "OpenWeatherMap",
"type": "main",
"index": 0
}
]
]
},
"OpenWeatherMap": {
"main": [
[
{
"node": "Gotify",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,146 @@
{
"nodes": [
{
"name": "On clicking 'execute'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
270,
330
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Merge Data",
"type": "n8n-nodes-base.function",
"position": [
1230,
430
],
"parameters": {
"functionCode": "const allData = []\n\nlet counter = 0;\ndo {\n try {\n const items = $items(\"RSS Feed Read\", 0, counter).map(item => item.json);\n allData.push.apply(allData, items);\n } catch (error) {\n return [{json: {allData}}]; \n }\n\n counter++;\n} while(true);\n\n\n"
},
"typeVersion": 1
},
{
"name": "Function",
"type": "n8n-nodes-base.function",
"position": [
470,
330
],
"parameters": {
"functionCode": "return [\n {\n json: {\n url: 'https://medium.com/feed/n8n-io',\n }\n },\n {\n json: {\n url: 'https://dev.to/feed/n8n',\n }\n }\n];"
},
"typeVersion": 1
},
{
"name": "RSS Feed Read",
"type": "n8n-nodes-base.rssFeedRead",
"position": [
870,
330
],
"parameters": {
"url": "={{$json[\"url\"]}}"
},
"typeVersion": 1
},
{
"name": "SplitInBatches",
"type": "n8n-nodes-base.splitInBatches",
"position": [
670,
330
],
"parameters": {
"options": {},
"batchSize": 1
},
"typeVersion": 1
},
{
"name": "IF",
"type": "n8n-nodes-base.if",
"position": [
1070,
520
],
"parameters": {
"conditions": {
"boolean": [
{
"value1": true,
"value2": "={{$node[\"SplitInBatches\"].context[\"noItemsLeft\"]}}"
}
]
}
},
"typeVersion": 1
}
],
"connections": {
"IF": {
"main": [
[
{
"node": "Merge Data",
"type": "main",
"index": 0
}
],
[
{
"node": "SplitInBatches",
"type": "main",
"index": 0
}
]
]
},
"Function": {
"main": [
[
{
"node": "SplitInBatches",
"type": "main",
"index": 0
}
]
]
},
"RSS Feed Read": {
"main": [
[
{
"node": "IF",
"type": "main",
"index": 0
}
]
]
},
"SplitInBatches": {
"main": [
[
{
"node": "RSS Feed Read",
"type": "main",
"index": 0
}
]
]
},
"On clicking 'execute'": {
"main": [
[
{
"node": "Function",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,213 @@
{
"nodes": [
{
"name": "On clicking 'execute'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
200,
470
],
"parameters": {},
"typeVersion": 1
},
{
"name": "HTTP Request",
"type": "n8n-nodes-base.httpRequest",
"position": [
600,
470
],
"parameters": {
"url": "={{$node[\"Config URL\"].json[\"next\"]}}",
"options": {},
"queryParametersUi": {
"parameter": [
{
"name": "hapikey",
"value": "<YOUR_API_KEY>"
},
{
"name": "limit",
"value": "100"
}
]
}
},
"typeVersion": 1
},
{
"name": "NoOp",
"type": "n8n-nodes-base.noOp",
"position": [
800,
470
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Wait",
"type": "n8n-nodes-base.function",
"position": [
1000,
470
],
"parameters": {
"functionCode": "return new Promise((resolve, reject) => {\n setTimeout(() => { resolve([{ json: {} }]) }, 5000);\n })\n"
},
"typeVersion": 1
},
{
"name": "Config URL",
"type": "n8n-nodes-base.function",
"position": [
400,
470
],
"parameters": {
"functionCode": "\nlet next = 'https://api.hubapi.com/crm/v3/objects/contacts'\n\nif (items[0].json.next) {\n next = items[0].json.next\n}\n\nreturn [\n {\n json: {\n next : next\n }\n }\n]"
},
"typeVersion": 1
},
{
"name": "Check if pagination?",
"type": "n8n-nodes-base.if",
"position": [
1250,
470
],
"parameters": {
"conditions": {
"string": [],
"boolean": [
{
"value1": "={{$node[\"HTTP Request\"].json[\"paging\"] ? true : false}}",
"value2": true
}
]
}
},
"typeVersion": 1
},
{
"name": "Set next URL",
"type": "n8n-nodes-base.set",
"position": [
890,
210
],
"parameters": {
"values": {
"string": [
{
"name": "next",
"value": "={{$node[\"HTTP Request\"].json[\"paging\"][\"next\"][\"link\"]}}"
}
]
},
"options": {},
"keepOnlySet": true
},
"executeOnce": true,
"typeVersion": 1
},
{
"name": "Combine all data",
"type": "n8n-nodes-base.function",
"position": [
1500,
560
],
"parameters": {
"functionCode": "const allData = []\n\nlet counter = 0;\ndo {\n try {\n const items = $items(\"HTTP Request\", 0, counter).map(item => item.json.results);\n \n const aja = items[0].map(item => {\n return { json: item }\n }) \n \n allData.push.apply(allData, aja);\n //allData.push($items(\"Increment\", 0, counter));\n } catch (error) {\n return allData; \n }\n\n counter++;\n} while(true);\n\n"
},
"typeVersion": 1
}
],
"connections": {
"NoOp": {
"main": [
[
{
"node": "Wait",
"type": "main",
"index": 0
}
]
]
},
"Wait": {
"main": [
[
{
"node": "Check if pagination?",
"type": "main",
"index": 0
}
]
]
},
"Config URL": {
"main": [
[
{
"node": "HTTP Request",
"type": "main",
"index": 0
}
]
]
},
"HTTP Request": {
"main": [
[
{
"node": "NoOp",
"type": "main",
"index": 0
}
]
]
},
"Set next URL": {
"main": [
[
{
"node": "Config URL",
"type": "main",
"index": 0
}
]
]
},
"Check if pagination?": {
"main": [
[
{
"node": "Set next URL",
"type": "main",
"index": 0
}
],
[
{
"node": "Combine all data",
"type": "main",
"index": 0
}
]
]
},
"On clicking 'execute'": {
"main": [
[
{
"node": "Config URL",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,126 @@
{
"id": "116",
"name": "Get all the contacts from GetResponse and update them",
"nodes": [
{
"name": "On clicking 'execute'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
250,
300
],
"parameters": {},
"typeVersion": 1
},
{
"name": "GetResponse",
"type": "n8n-nodes-base.getResponse",
"position": [
450,
300
],
"parameters": {
"options": {},
"operation": "getAll",
"returnAll": true
},
"credentials": {
"getResponseApi": "getresponse-api"
},
"typeVersion": 1
},
{
"name": "IF",
"type": "n8n-nodes-base.if",
"position": [
650,
300
],
"parameters": {
"conditions": {
"string": [
{
"value1": "={{$node[\"GetResponse\"].json[\"campaign\"][\"name\"]}}",
"value2": "n8n",
"operation": "notEqual"
}
]
}
},
"typeVersion": 1
},
{
"name": "GetResponse1",
"type": "n8n-nodes-base.getResponse",
"position": [
860,
200
],
"parameters": {
"contactId": "={{$node[\"IF\"].json[\"contactId\"]}}",
"operation": "update",
"updateFields": {
"campaignId": "WRVXO"
}
},
"credentials": {
"getResponseApi": "getresponse-api"
},
"typeVersion": 1
},
{
"name": "NoOp",
"type": "n8n-nodes-base.noOp",
"position": [
860,
400
],
"parameters": {},
"typeVersion": 1
}
],
"active": false,
"settings": {},
"connections": {
"IF": {
"main": [
[
{
"node": "GetResponse1",
"type": "main",
"index": 0
}
],
[
{
"node": "NoOp",
"type": "main",
"index": 0
}
]
]
},
"GetResponse": {
"main": [
[
{
"node": "IF",
"type": "main",
"index": 0
}
]
]
},
"On clicking 'execute'": {
"main": [
[
{
"node": "GetResponse",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,24 @@
{
"id": "117",
"name": "Receive updates for changes in the specified list in Trello",
"nodes": [
{
"name": "Trello Trigger",
"type": "n8n-nodes-base.trelloTrigger",
"position": [
700,
250
],
"parameters": {
"id": ""
},
"credentials": {
"trelloApi": ""
},
"typeVersion": 1
}
],
"active": false,
"settings": {},
"connections": {}
}

View File

@ -0,0 +1,224 @@
{
"id": 117,
"name": "Syncro Alert to OpsGenie",
"nodes": [
{
"name": "Webhook",
"type": "n8n-nodes-base.webhook",
"position": [
460,
380
],
"webhookId": "fromsyncro",
"parameters": {
"path": "fromsyncro",
"options": {},
"httpMethod": "POST",
"responseData": "allEntries",
"responseMode": "lastNode"
},
"typeVersion": 1
},
{
"name": "Set",
"type": "n8n-nodes-base.set",
"position": [
780,
380
],
"parameters": {
"values": {
"string": [
{
"name": "AlertID",
"value": "={{$node[\"Webhook\"].json[\"body\"][\"attributes\"][\"id\"]}}"
},
{
"name": "Description",
"value": "={{$node[\"Webhook\"].json[\"body\"][\"attributes\"][\"computer_name\"]}} ({{$node[\"Webhook\"].json[\"body\"][\"attributes\"][\"customer\"][\"business_then_name\"]}}): {{$node[\"Webhook\"].json[\"body\"][\"attributes\"][\"formatted_output\"]}}"
}
]
},
"options": {},
"keepOnlySet": true
},
"typeVersion": 1
},
{
"name": "Create Alert",
"type": "n8n-nodes-base.httpRequest",
"position": [
1180,
260
],
"parameters": {
"url": "https://api.opsgenie.com/v2/alerts",
"options": {},
"requestMethod": "POST",
"authentication": "headerAuth",
"bodyParametersUi": {
"parameter": [
{
"name": "message",
"value": "={{$node[\"Webhook\"].json[\"body\"][\"attributes\"][\"computer_name\"]}} ({{$node[\"Webhook\"].json[\"body\"][\"attributes\"][\"customer\"][\"business_then_name\"]}}): {{$node[\"Webhook\"].json[\"body\"][\"attributes\"][\"formatted_output\"]}}"
},
{
"name": "alias",
"value": "={{$node[\"Webhook\"].json[\"body\"][\"attributes\"][\"id\"]}}"
},
{
"name": "description",
"value": "={{$node[\"Webhook\"].json[\"body\"][\"text\"]}}\n{{$node[\"Webhook\"].json[\"body\"][\"link\"]}}"
}
]
}
},
"credentials": {
"httpHeaderAuth": {
"id": null,
"name": "OpsGenie"
}
},
"typeVersion": 1
},
{
"name": "Close Alert",
"type": "n8n-nodes-base.httpRequest",
"position": [
1180,
460
],
"parameters": {
"url": "=https://api.opsgenie.com/v2/alerts/{{$node[\"Webhook\"].json[\"body\"][\"attributes\"][\"id\"]}}/close?identifierType=alias",
"options": {},
"requestMethod": "POST",
"authentication": "headerAuth",
"bodyParametersUi": {
"parameter": [
{
"name": "note",
"value": "Issue resolved automatically according to Syncro."
}
]
}
},
"credentials": {
"httpHeaderAuth": {
"id": null,
"name": "OpsGenie"
}
},
"typeVersion": 1
},
{
"name": "NoOp",
"type": "n8n-nodes-base.noOp",
"position": [
780,
560
],
"parameters": {},
"typeVersion": 1
},
{
"name": "IF",
"type": "n8n-nodes-base.if",
"position": [
940,
380
],
"parameters": {
"conditions": {
"boolean": [
{
"value1": "={{$node[\"Webhook\"].json[\"body\"][\"attributes\"][\"resolved\"]}}"
}
]
}
},
"typeVersion": 1
},
{
"name": "Switch",
"type": "n8n-nodes-base.switch",
"position": [
620,
380
],
"parameters": {
"rules": {
"rules": [
{
"value2": "agent_offline_trigger"
}
]
},
"value1": "={{$node[\"Webhook\"].json[\"body\"][\"attributes\"][\"properties\"][\"trigger\"]}}",
"dataType": "string"
},
"typeVersion": 1
}
],
"active": false,
"settings": {},
"connections": {
"IF": {
"main": [
[
{
"node": "Create Alert",
"type": "main",
"index": 0
}
],
[
{
"node": "Close Alert",
"type": "main",
"index": 0
}
]
]
},
"Set": {
"main": [
[
{
"node": "IF",
"type": "main",
"index": 0
}
]
]
},
"Switch": {
"main": [
[
{
"node": "Set",
"type": "main",
"index": 0
}
],
[
{
"node": "NoOp",
"type": "main",
"index": 0
}
]
]
},
"Webhook": {
"main": [
[
{
"node": "Switch",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,252 @@
{
"id": 118,
"name": "Google Calendar to Slack Status & Philips Hue",
"nodes": [
{
"name": "On clicking 'execute'",
"type": "n8n-nodes-base.manualTrigger",
"disabled": true,
"position": [
420,
420
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Google Calendar",
"type": "n8n-nodes-base.googleCalendar",
"position": [
720,
600
],
"parameters": {
"eventId": "={{$node[\"Event Started\"].json[\"id\"].split(\"_\")[0]}}",
"options": {},
"calendar": "youremail@domain.com",
"operation": "get"
},
"credentials": {
"googleCalendarOAuth2Api": {
"id": "15",
"name": "GoogleCalendar - Personal"
}
},
"typeVersion": 1
},
{
"name": "Light - Busy",
"type": "n8n-nodes-base.httpRequest",
"position": [
1220,
180
],
"parameters": {
"url": "WEBHOOK1",
"options": {},
"requestMethod": "POST"
},
"typeVersion": 1
},
{
"name": "Light - Available",
"type": "n8n-nodes-base.httpRequest",
"position": [
1220,
600
],
"parameters": {
"url": "WEBHOOK3",
"options": {},
"requestMethod": "POST"
},
"typeVersion": 1
},
{
"name": "Switch",
"type": "n8n-nodes-base.switch",
"position": [
1040,
460
],
"parameters": {
"rules": {
"rules": [
{
"value2": "4dw_doing",
"operation": "startsWith"
},
{
"value2": "4dw_managing",
"operation": "startsWith"
},
{
"value2": "4dw_leading",
"operation": "startsWith"
},
{
"output": 1,
"value2": "4dw_living",
"operation": "startsWith"
}
]
},
"value1": "={{$json[\"calColor\"]}}",
"dataType": "string",
"fallbackOutput": 3
},
"typeVersion": 1
},
{
"name": "Light - Personal",
"type": "n8n-nodes-base.httpRequest",
"position": [
1220,
340
],
"parameters": {
"url": "WEBHOOK2",
"options": {},
"requestMethod": "POST"
},
"typeVersion": 1
},
{
"name": "Event Started",
"type": "n8n-nodes-base.googleCalendarTrigger",
"position": [
540,
600
],
"parameters": {
"options": {},
"pollTimes": {
"item": [
{
"mode": "everyX",
"unit": "minutes",
"value": 5
}
]
},
"triggerOn": "eventStarted",
"calendarId": "youremail@domain.com"
},
"credentials": {
"googleCalendarOAuth2Api": {
"id": "15",
"name": "GoogleCalendar - Personal"
}
},
"typeVersion": 1
},
{
"name": "Slack - Status",
"type": "n8n-nodes-base.slack",
"position": [
1040,
720
],
"parameters": {
"resource": "userProfile",
"operation": "update",
"additionalFields": {
"status_text": "={{$json[\"summary\"]}}",
"status_emoji": "=:{{$json[\"calColor\"]}}:"
}
},
"credentials": {
"slackApi": {
"id": "17",
"name": "CompanySlack"
}
},
"typeVersion": 1
},
{
"name": "Set CalColor",
"type": "n8n-nodes-base.function",
"position": [
880,
600
],
"parameters": {
"functionCode": "for (item of items) {\n\n switch (item.json.colorId) {\n case '1':\n calColor = 'Lavendar';\n break;\n case '2':\n calColor = '4dw_leading';\n break;\n case '3':\n calColor = 'Grape';\n break;\n case '4':\n calColor = 'Flamingo';\n break;\n case '5':\n calColor = '4dw_managing';\n break;\n case '6':\n calColor = 'Tangerine';\n break;\n case '7':\n calColor = '4dw_living';\n break;\n case '8':\n calColor = 'Graphite';\n break;\n case '9':\n calColor = 'Blueberry';\n break;\n case '10':\n calColor = 'Basil';\n break;\n case '11':\n calColor = '4dw_doing';\n break;\n default:\n calColor = 'undefined';\n }\n item.json.calColor = calColor;\n}\n\nreturn items;"
},
"typeVersion": 1
}
],
"active": false,
"settings": {},
"connections": {
"Switch": {
"main": [
[
{
"node": "Light - Busy",
"type": "main",
"index": 0
}
],
[
{
"node": "Light - Personal",
"type": "main",
"index": 0
}
],
[],
[
{
"node": "Light - Available",
"type": "main",
"index": 0
}
]
]
},
"Set CalColor": {
"main": [
[
{
"node": "Slack - Status",
"type": "main",
"index": 0
},
{
"node": "Switch",
"type": "main",
"index": 0
}
]
]
},
"Event Started": {
"main": [
[
{
"node": "Google Calendar",
"type": "main",
"index": 0
}
]
]
},
"Google Calendar": {
"main": [
[
{
"node": "Set CalColor",
"type": "main",
"index": 0
}
]
]
},
"On clicking 'execute'": {
"main": [
[]
]
}
}
}

View File

@ -0,0 +1,178 @@
{
"id": "119",
"name": "Create, update, and get an entry in Strapi",
"nodes": [
{
"name": "On clicking 'execute'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
250,
300
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Strapi",
"type": "n8n-nodes-base.strapi",
"position": [
650,
300
],
"parameters": {
"columns": "Title, Content, Description",
"operation": "create",
"contentType": "posts"
},
"credentials": {
"strapiApi": "strapi"
},
"typeVersion": 1
},
{
"name": "Set",
"type": "n8n-nodes-base.set",
"position": [
450,
300
],
"parameters": {
"values": {
"string": [
{
"name": "Title",
"value": "Automate Strapi with n8n"
},
{
"name": "Content",
"value": "Strapi is a headless CMS. We will use Strapi and n8n to automate our content creation workflows."
},
{
"name": "Description",
"value": "Learn how to automate Strapi with n8n."
}
]
},
"options": {}
},
"typeVersion": 1
},
{
"name": "Strapi1",
"type": "n8n-nodes-base.strapi",
"position": [
1050,
300
],
"parameters": {
"columns": "slug",
"operation": "update",
"contentType": "={{$node[\"Strapi\"].parameter[\"contentType\"]}}"
},
"credentials": {
"strapiApi": "strapi"
},
"typeVersion": 1
},
{
"name": "Set1",
"type": "n8n-nodes-base.set",
"position": [
850,
300
],
"parameters": {
"values": {
"string": [
{
"name": "id",
"value": "={{$node[\"Strapi\"].json[\"id\"]}}"
},
{
"name": "slug",
"value": "automate-strapi-with-n8n"
}
]
},
"options": {},
"keepOnlySet": true
},
"typeVersion": 1
},
{
"name": "Strapi2",
"type": "n8n-nodes-base.strapi",
"position": [
1250,
300
],
"parameters": {
"entryId": "={{$node[\"Strapi1\"].json[\"id\"]}}",
"contentType": "={{$node[\"Strapi\"].parameter[\"contentType\"]}}"
},
"credentials": {
"strapiApi": "strapi"
},
"typeVersion": 1
}
],
"active": false,
"settings": {},
"connections": {
"Set": {
"main": [
[
{
"node": "Strapi",
"type": "main",
"index": 0
}
]
]
},
"Set1": {
"main": [
[
{
"node": "Strapi1",
"type": "main",
"index": 0
}
]
]
},
"Strapi": {
"main": [
[
{
"node": "Set1",
"type": "main",
"index": 0
}
]
]
},
"Strapi1": {
"main": [
[
{
"node": "Strapi2",
"type": "main",
"index": 0
}
]
]
},
"On clicking 'execute'": {
"main": [
[
{
"node": "Set",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,47 @@
{
"id": "119",
"name": "Get details of a forum in Disqus",
"nodes": [
{
"name": "On clicking 'execute'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
250,
300
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Disqus",
"type": "n8n-nodes-base.disqus",
"position": [
450,
300
],
"parameters": {
"id": "hackernoon",
"additionalFields": {}
},
"credentials": {
"disqusApi": ""
},
"typeVersion": 1
}
],
"active": false,
"settings": {},
"connections": {
"On clicking 'execute'": {
"main": [
[
{
"node": "Disqus",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,124 @@
{
"meta": {
"instanceId": "8c8c5237b8e37b006a7adce87f4369350c58e41f3ca9de16196d3197f69eabcd"
},
"nodes": [
{
"id": "302c87d4-2c92-40a0-9a77-cef4ddd7db6d",
"name": "XML",
"type": "n8n-nodes-base.xml",
"position": [
840,
440
],
"parameters": {
"mode": "jsonToxml",
"options": {}
},
"typeVersion": 1
},
{
"id": "88ba5ee7-4788-452f-9d64-bf192fe90e5f",
"name": "Set",
"type": "n8n-nodes-base.set",
"position": [
660,
440
],
"parameters": {
"values": {
"number": [
{
"name": "number",
"value": 1
}
],
"string": [
{
"name": "string",
"value": "my text"
}
]
},
"options": {},
"keepOnlySet": true
},
"typeVersion": 1
},
{
"id": "6cda9dc3-0fdd-4f3a-aecf-0ff0efd28c33",
"name": "Respond to Webhook",
"type": "n8n-nodes-base.respondToWebhook",
"position": [
1020,
440
],
"parameters": {
"options": {
"responseHeaders": {
"entries": [
{
"name": "content-type",
"value": "application/xml"
}
]
}
},
"respondWith": "text",
"responseBody": "={{ $json.data }}"
},
"typeVersion": 1
},
{
"id": "94644433-fb9b-4532-81d2-d9673eb6e15e",
"name": "Webhook",
"type": "n8n-nodes-base.webhook",
"position": [
480,
440
],
"webhookId": "89fb6783-adc5-4cbc-bacc-dbd7b85df403",
"parameters": {
"path": "test",
"options": {},
"responseMode": "responseNode"
},
"typeVersion": 1
}
],
"connections": {
"Set": {
"main": [
[
{
"node": "XML",
"type": "main",
"index": 0
}
]
]
},
"XML": {
"main": [
[
{
"node": "Respond to Webhook",
"type": "main",
"index": 0
}
]
]
},
"Webhook": {
"main": [
[
{
"node": "Set",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,675 @@
{
"id": 11,
"name": "Plex Automatic Throttler",
"nodes": [
{
"name": "Webhook",
"type": "n8n-nodes-base.webhook",
"position": [
60,
440
],
"webhookId": "72a05ff6-05f5-4e7a-9eee-54a350bb6a47",
"parameters": {
"path": "72a05ff6-05f5-4e7a-9eee-54a350bb6a47",
"options": {},
"httpMethod": "POST"
},
"typeVersion": 1
},
{
"name": "Switch",
"type": "n8n-nodes-base.switch",
"position": [
640,
580
],
"parameters": {
"rules": {
"rules": [
{
"value2": "media.resume",
"operation": "contains"
},
{
"output": 1,
"value2": "media.play",
"operation": "contains"
},
{
"output": 2,
"value2": "media.pause",
"operation": "contains"
},
{
"output": 3,
"value2": "media.stop",
"operation": "contains"
}
]
},
"value1": "={{$node[\"Webhook\"].json[\"body\"][\"payload\"]}}",
"dataType": "string"
},
"typeVersion": 1
},
{
"name": "Resume",
"type": "n8n-nodes-base.noOp",
"position": [
860,
280
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Check if Local",
"type": "n8n-nodes-base.if",
"position": [
460,
440
],
"parameters": {
"conditions": {
"string": [
{
"value1": "={{$json[\"body\"][\"payload\"]}}",
"value2": "\"local\":false",
"operation": "contains"
}
]
}
},
"typeVersion": 1
},
{
"name": "Play",
"type": "n8n-nodes-base.noOp",
"position": [
860,
440
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Don't Do Anything",
"type": "n8n-nodes-base.noOp",
"position": [
660,
220
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Pause",
"type": "n8n-nodes-base.noOp",
"position": [
860,
680
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Stop",
"type": "n8n-nodes-base.noOp",
"position": [
860,
840
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Get QB Cookie",
"type": "n8n-nodes-base.httpRequest",
"position": [
1260,
360
],
"parameters": {
"url": "=http://{{$node[\"Global Variables\"].json[\"qbittorent\"][\"internalIP\"]}}:{{$node[\"Global Variables\"].json[\"qbittorent\"][\"port\"]}}/api/v2/auth/login",
"options": {
"fullResponse": true
},
"responseFormat": "string",
"queryParametersUi": {
"parameter": [
{
"name": "username",
"value": "={{$node[\"Global Variables\"].json[\"qbittorent\"][\"username\"]}}"
},
{
"name": "password",
"value": "={{$node[\"Global Variables\"].json[\"qbittorent\"][\"password\"]}}"
}
]
},
"headerParametersUi": {
"parameter": [
{
"name": "Referer",
"value": "=http://localhost:{{$node[\"Global Variables\"].json[\"qbittorent\"][\"port\"]}}"
}
]
}
},
"typeVersion": 1
},
{
"name": "Get QB Cookie1",
"type": "n8n-nodes-base.httpRequest",
"position": [
1260,
760
],
"parameters": {
"url": "=http://{{$node[\"Global Variables\"].json[\"qbittorent\"][\"internalIP\"]}}:{{$node[\"Global Variables\"].json[\"qbittorent\"][\"port\"]}}/api/v2/auth/login",
"options": {
"fullResponse": true
},
"responseFormat": "string",
"queryParametersUi": {
"parameter": [
{
"name": "username",
"value": "={{$node[\"Global Variables\"].json[\"qbittorent\"][\"username\"]}}"
},
{
"name": "password",
"value": "={{$node[\"Global Variables\"].json[\"qbittorent\"][\"password\"]}}"
}
]
},
"headerParametersUi": {
"parameter": [
{
"name": "Referer",
"value": "=http://localhost:{{$node[\"Global Variables\"].json[\"qbittorent\"][\"port\"]}}"
}
]
}
},
"typeVersion": 1
},
{
"name": "Global Variables",
"type": "n8n-nodes-base.set",
"position": [
280,
440
],
"parameters": {
"values": {
"string": [
{
"name": "qbittorent.username",
"value": "yourusername"
},
{
"name": "qbittorent.password",
"value": "yourpassword"
},
{
"name": "qbittorent.internalIP",
"value": "192.168.1.218"
},
{
"name": "qbittorent.port",
"value": "2020"
}
]
},
"options": {}
},
"typeVersion": 1
},
{
"name": "Check Throttle State",
"type": "n8n-nodes-base.httpRequest",
"position": [
1460,
360
],
"parameters": {
"url": "=http://{{$node[\"Global Variables\"].json[\"qbittorent\"][\"internalIP\"]}}:{{$node[\"Global Variables\"].json[\"qbittorent\"][\"port\"]}}/api/v2/transfer/speedLimitsMode",
"options": {
"fullResponse": true
},
"requestMethod": "POST",
"queryParametersUi": {
"parameter": [
{
"name": "Cookie",
"value": "={{$node[\"Get QB Cookie\"].json[\"headers\"][\"set-cookie\"][0].match(/[^;]*/).toString()}}"
}
]
},
"headerParametersUi": {
"parameter": [
{
"name": "Referer",
"value": "=http://localhost:{{$node[\"Global Variables\"].json[\"qbittorent\"][\"port\"]}}"
},
{
"name": "Cookie",
"value": "={{$node[\"Get QB Cookie\"].json[\"headers\"][\"set-cookie\"][0].match(/[^;]*/).toString()}}"
}
]
}
},
"typeVersion": 1
},
{
"name": "Check if Throttled",
"type": "n8n-nodes-base.if",
"position": [
1680,
360
],
"parameters": {
"conditions": {
"number": [
{
"value1": "={{$json[\"body\"]}}",
"value2": 1,
"operation": "equal"
}
],
"string": []
}
},
"typeVersion": 1
},
{
"name": "Do Nothing",
"type": "n8n-nodes-base.noOp",
"position": [
1900,
260
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Check Throttle State2",
"type": "n8n-nodes-base.httpRequest",
"position": [
1460,
760
],
"parameters": {
"url": "=http://{{$node[\"Global Variables\"].json[\"qbittorent\"][\"internalIP\"]}}:{{$node[\"Global Variables\"].json[\"qbittorent\"][\"port\"]}}/api/v2/transfer/speedLimitsMode",
"options": {
"fullResponse": true
},
"requestMethod": "POST",
"queryParametersUi": {
"parameter": [
{
"name": "Cookie",
"value": "={{$node[\"Get QB Cookie1\"].json[\"headers\"][\"set-cookie\"][0].match(/[^;]*/).toString()}}"
}
]
},
"headerParametersUi": {
"parameter": [
{
"name": "Referer",
"value": "=http://localhost:{{$node[\"Global Variables\"].json[\"qbittorent\"][\"port\"]}}"
},
{
"name": "Cookie",
"value": "={{$node[\"Get QB Cookie1\"].json[\"headers\"][\"set-cookie\"][0].match(/[^;]*/).toString()}}"
}
]
}
},
"typeVersion": 1
},
{
"name": "Check if Throttled1",
"type": "n8n-nodes-base.if",
"position": [
1660,
760
],
"parameters": {
"conditions": {
"number": [
{
"value1": "={{$json[\"body\"]}}",
"value2": 1,
"operation": "equal"
}
],
"string": []
}
},
"typeVersion": 1
},
{
"name": "Do Nothing1",
"type": "n8n-nodes-base.noOp",
"position": [
1900,
860
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Throttle Connection",
"type": "n8n-nodes-base.noOp",
"position": [
1060,
360
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Resume Downloads",
"type": "n8n-nodes-base.noOp",
"position": [
1060,
760
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Disable Throttle",
"type": "n8n-nodes-base.httpRequest",
"position": [
1900,
660
],
"parameters": {
"url": "=http://{{$node[\"Global Variables\"].json[\"qbittorent\"][\"internalIP\"]}}:{{$node[\"Global Variables\"].json[\"qbittorent\"][\"port\"]}}/api/v2/transfer/toggleSpeedLimitsMode",
"options": {},
"requestMethod": "POST",
"queryParametersUi": {
"parameter": [
{
"name": "Cookie",
"value": "={{$node[\"Get QB Cookie1\"].json[\"headers\"][\"set-cookie\"][0].match(/[^;]*/).toString()}}"
}
]
},
"headerParametersUi": {
"parameter": [
{
"name": "Referer",
"value": "=http://localhost:{{$node[\"Global Variables\"].json[\"qbittorent\"][\"port\"]}}"
},
{
"name": "Cookie",
"value": "={{$node[\"Get QB Cookie1\"].json[\"headers\"][\"set-cookie\"][0].match(/[^;]*/).toString()}}"
}
]
}
},
"typeVersion": 1
},
{
"name": "Enable Throttle",
"type": "n8n-nodes-base.httpRequest",
"position": [
1900,
440
],
"parameters": {
"url": "=http://{{$node[\"Global Variables\"].json[\"qbittorent\"][\"internalIP\"]}}:{{$node[\"Global Variables\"].json[\"qbittorent\"][\"port\"]}}/api/v2/transfer/toggleSpeedLimitsMode",
"options": {},
"requestMethod": "POST",
"queryParametersUi": {
"parameter": [
{
"name": "Cookie",
"value": "={{$node[\"Get QB Cookie\"].json[\"headers\"][\"set-cookie\"][0].match(/[^;]*/).toString()}}"
}
]
},
"headerParametersUi": {
"parameter": [
{
"name": "Referer",
"value": "=http://localhost:{{$node[\"Global Variables\"].json[\"qbittorent\"][\"port\"]}}"
},
{
"name": "Cookie",
"value": "={{$node[\"Get QB Cookie\"].json[\"headers\"][\"set-cookie\"][0].match(/[^;]*/).toString()}}"
}
]
}
},
"typeVersion": 1
}
],
"active": true,
"settings": {},
"connections": {
"Play": {
"main": [
[
{
"node": "Throttle Connection",
"type": "main",
"index": 0
}
]
]
},
"Stop": {
"main": [
[
{
"node": "Resume Downloads",
"type": "main",
"index": 0
}
]
]
},
"Pause": {
"main": [
[
{
"node": "Resume Downloads",
"type": "main",
"index": 0
}
]
]
},
"Resume": {
"main": [
[
{
"node": "Throttle Connection",
"type": "main",
"index": 0
}
]
]
},
"Switch": {
"main": [
[
{
"node": "Resume",
"type": "main",
"index": 0
}
],
[
{
"node": "Play",
"type": "main",
"index": 0
}
],
[
{
"node": "Pause",
"type": "main",
"index": 0
}
],
[
{
"node": "Stop",
"type": "main",
"index": 0
}
]
]
},
"Webhook": {
"main": [
[
{
"node": "Global Variables",
"type": "main",
"index": 0
}
]
]
},
"Get QB Cookie": {
"main": [
[
{
"node": "Check Throttle State",
"type": "main",
"index": 0
}
]
]
},
"Check if Local": {
"main": [
[
{
"node": "Don't Do Anything",
"type": "main",
"index": 0
}
],
[
{
"node": "Switch",
"type": "main",
"index": 0
}
]
]
},
"Get QB Cookie1": {
"main": [
[
{
"node": "Check Throttle State2",
"type": "main",
"index": 0
}
]
]
},
"Global Variables": {
"main": [
[
{
"node": "Check if Local",
"type": "main",
"index": 0
}
]
]
},
"Resume Downloads": {
"main": [
[
{
"node": "Get QB Cookie1",
"type": "main",
"index": 0
}
]
]
},
"Check if Throttled": {
"main": [
[
{
"node": "Do Nothing",
"type": "main",
"index": 0
}
],
[
{
"node": "Enable Throttle",
"type": "main",
"index": 0
}
]
]
},
"Check if Throttled1": {
"main": [
[
{
"node": "Disable Throttle",
"type": "main",
"index": 0
}
],
[
{
"node": "Do Nothing1",
"type": "main",
"index": 0
}
]
]
},
"Throttle Connection": {
"main": [
[
{
"node": "Get QB Cookie",
"type": "main",
"index": 0
}
]
]
},
"Check Throttle State": {
"main": [
[
{
"node": "Check if Throttled",
"type": "main",
"index": 0
}
]
]
},
"Check Throttle State2": {
"main": [
[
{
"node": "Check if Throttled1",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,362 @@
{
"id": "11",
"name": "What To Eat",
"nodes": [
{
"name": "Cron",
"type": "n8n-nodes-base.cron",
"position": [
100,
400
],
"parameters": {
"triggerTimes": {
"item": [
{
"hour": 10
}
]
}
},
"typeVersion": 1
},
{
"name": "Search Criteria",
"type": "n8n-nodes-base.set",
"position": [
300,
400
],
"parameters": {
"values": {
"number": [
{
"name": "RecipeCount",
"value": 3
},
{
"name": "IngredientCount",
"value": 5
},
{
"name": "CaloriesMin"
},
{
"name": "CaloriesMax",
"value": 1500
},
{
"name": "TimeMin"
},
{
"name": "TimeMax",
"value": 30
}
],
"string": [
{
"name": "Diet",
"value": "balanced"
},
{
"name": "Health",
"value": "random"
},
{
"name": "SearchItem",
"value": "chicken"
},
{
"name": "AppID",
"value": "Enter Your Edamam AppID Here"
},
{
"name": "AppKey",
"value": "Enter Your Edamam AppKey Here"
}
]
},
"options": {}
},
"typeVersion": 1
},
{
"name": "Set Query Values",
"type": "n8n-nodes-base.function",
"position": [
500,
400
],
"parameters": {
"functionCode": "items[0].json.calories = items[0].json.CaloriesMin + \"-\" + items[0].json.CaloriesMax;\nitems[0].json.time = items[0].json.TimeMin + \"-\" + items[0].json.TimeMax;\n\nif (items[0].json.Diet.toUpperCase() == \"RANDOM\") {\n arrDiet = [\"balanced\",\"high-fiber\",\"high-protein\",\"low-carb\",\"low-fat\",\"low-sodium\"];\n intRandomNumber = Math.floor(Math.random() * 6);\n items[0].json.Diet = arrDiet[intRandomNumber];\n}\n\nif (items[0].json.Health.toUpperCase() == \"RANDOM\") {\n arrHealth = [\"alcohol-free\",\"immuno-supportive\",\"celery-free\",\"crustacean-free\",\"dairy-free\",\"egg-free\",\"fish-free\",\"fodmap-free\",\"gluten-free\",\"keto-friendly\",\"kidney-friendly\",\"kosher\",\"low-potassium\",\"lupine-free\",\"mustard-free\",\"low-fat-abs\",\"no-oil-added\",\"low-sugar\",\"paleo\",\"peanut-free\",\"pecatarian\",\"pork-free\",\"red-meat-free\",\"sesame-free\",\"shellfish-free\",\"soy-free\",\"sugar-conscious\",\"tree-nut-free\",\"vegan\",\"vegetarian\",\"wheat-free\"];\n intRandomNumber = Math.floor(Math.random() * 31);\n items[0].json.Health = arrHealth[intRandomNumber];\n}\n\nreturn items;"
},
"typeVersion": 1
},
{
"name": "Set Recipe ID Values",
"type": "n8n-nodes-base.function",
"position": [
1080,
400
],
"parameters": {
"functionCode": "items[0].json.from = Math.floor(Math.random() * items[0].json.RecipeCount) + 1;\nitems[0].json.to = items[0].json.from + items[0].json.ReturnCount;\n\nreturn items;"
},
"typeVersion": 1
},
{
"name": "Retrieve Recipe Counts",
"type": "n8n-nodes-base.httpRequest",
"position": [
700,
400
],
"parameters": {
"url": "https://api.edamam.com/search",
"options": {},
"queryParametersUi": {
"parameter": [
{
"name": "q",
"value": "={{$node[\"Set Query Values\"].json[\"SearchItem\"]}}"
},
{
"name": "app_id",
"value": "={{$node[\"Set Query Values\"].json[\"AppID\"]}}"
},
{
"name": "app_key",
"value": "={{$node[\"Set Query Values\"].json[\"AppKey\"]}}"
},
{
"name": "ingr",
"value": "={{$node[\"Set Query Values\"].json[\"IngredientCount\"]}}"
},
{
"name": "diet",
"value": "={{$node[\"Set Query Values\"].json[\"Diet\"]}}"
},
{
"name": "calories",
"value": "={{$node[\"Set Query Values\"].json[\"calories\"]}}"
},
{
"name": "time",
"value": "={{$node[\"Set Query Values\"].json[\"time\"]}}"
},
{
"name": "from",
"value": "1"
},
{
"name": "to",
"value": "2"
}
]
}
},
"typeVersion": 1
},
{
"name": "Retrieve Recipes",
"type": "n8n-nodes-base.httpRequest",
"position": [
1260,
400
],
"parameters": {
"url": "https://api.edamam.com/search",
"options": {},
"queryParametersUi": {
"parameter": [
{
"name": "q",
"value": "={{$node[\"Search Criteria\"].json[\"SearchItem\"]}}"
},
{
"name": "app_id",
"value": "={{$node[\"Search Criteria\"].json[\"AppID\"]}}"
},
{
"name": "app_key",
"value": "={{$node[\"Search Criteria\"].json[\"AppKey\"]}}"
},
{
"name": "from",
"value": "={{$node[\"Set Recipe ID Values\"].json[\"from\"]}}"
},
{
"name": "to",
"value": "={{$node[\"Set Recipe ID Values\"].json[\"to\"]}}"
},
{
"name": "ingr",
"value": "={{$node[\"Search Criteria\"].json[\"IngredientCount\"]}}"
},
{
"name": "diet",
"value": "={{$node[\"Search Criteria\"].json[\"Diet\"]}}"
},
{
"name": "calories",
"value": "={{$node[\"Set Query Values\"].json[\"calories\"]}}"
},
{
"name": "time",
"value": "={{$node[\"Set Query Values\"].json[\"time\"]}}"
}
]
}
},
"typeVersion": 1
},
{
"name": "Set Counts",
"type": "n8n-nodes-base.set",
"position": [
880,
400
],
"parameters": {
"values": {
"number": [
{
"name": "RecipeCount",
"value": "={{$node[\"Retrieve Recipe Counts\"].json[\"count\"]}}"
},
{
"name": "ReturnCount",
"value": "={{$node[\"Search Criteria\"].json[\"RecipeCount\"]}}"
}
]
},
"options": {},
"keepOnlySet": true
},
"typeVersion": 1
},
{
"name": "Send Recipes",
"type": "n8n-nodes-base.emailSend",
"position": [
1660,
400
],
"parameters": {
"html": "={{$node[\"Create Email Body in HTML\"].json[\"emailBody\"]}}",
"options": {},
"subject": "={{$node[\"Set Query Values\"].json[\"RecipeCount\"]}} {{$node[\"Set Query Values\"].json[\"Diet\"]}}, {{$node[\"Set Query Values\"].json[\"Health\"]}} {{$node[\"Set Query Values\"].json[\"SearchItem\"]}} recipes under {{$node[\"Set Query Values\"].json[\"CaloriesMax\"]}} calories ready in under {{$node[\"Set Query Values\"].json[\"TimeMax\"]}} minutes",
"toEmail": "Enter Your Email Address Here",
"fromEmail": "Enter Your Email Address Here"
},
"credentials": {
"smtp": "Gmail Creds"
},
"typeVersion": 1
},
{
"name": "Create Email Body in HTML",
"type": "n8n-nodes-base.function",
"position": [
1460,
400
],
"parameters": {
"functionCode": "arrRecipes = items[0].json.hits;\nitems[0].json = {};\n\nstrEmailBody = \"Here are your recipes for today:<br><ul>\";\n\narrRecipes.forEach(createHTML);\n\nfunction createHTML(value, index, array) {\n strEmailBody = strEmailBody + \"<li><a href=\\\"\"+ value.recipe.shareAs + \"\\\">\" + value.recipe.label + \"</a></li>\";\n}\n\nstrEmailBody = strEmailBody + \"</ul>\";\n\nitems[0].json.emailBody = strEmailBody\n\nreturn items;"
},
"typeVersion": 1
}
],
"active": true,
"settings": {},
"connections": {
"Cron": {
"main": [
[
{
"node": "Search Criteria",
"type": "main",
"index": 0
}
]
]
},
"Set Counts": {
"main": [
[
{
"node": "Set Recipe ID Values",
"type": "main",
"index": 0
}
]
]
},
"Search Criteria": {
"main": [
[
{
"node": "Set Query Values",
"type": "main",
"index": 0
}
]
]
},
"Retrieve Recipes": {
"main": [
[
{
"node": "Create Email Body in HTML",
"type": "main",
"index": 0
}
]
]
},
"Set Query Values": {
"main": [
[
{
"node": "Retrieve Recipe Counts",
"type": "main",
"index": 0
}
]
]
},
"Set Recipe ID Values": {
"main": [
[
{
"node": "Retrieve Recipes",
"type": "main",
"index": 0
}
]
]
},
"Retrieve Recipe Counts": {
"main": [
[
{
"node": "Set Counts",
"type": "main",
"index": 0
}
]
]
},
"Create Email Body in HTML": {
"main": [
[
{
"node": "Send Recipes",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,95 @@
{
"nodes": [
{
"name": "Read Sheet",
"type": "n8n-nodes-base.googleSheets",
"position": [
450,
300
],
"parameters": {
"sheetId": "1GT2dc0dOkAC1apY0UlTKY9vitBl8PtKrILvFiAy5VBs"
},
"credentials": {
"googleApi": ""
},
"typeVersion": 1
},
{
"name": "Convert to XLS",
"type": "n8n-nodes-base.spreadsheetFile",
"position": [
650,
300
],
"parameters": {
"operation": "toFile"
},
"typeVersion": 1
},
{
"name": "Upload Dropbox",
"type": "n8n-nodes-base.dropbox",
"position": [
850,
300
],
"parameters": {
"path": "/my-sheets/prices.xls",
"binaryData": true
},
"credentials": {
"dropboxApi": ""
},
"typeVersion": 1
},
{
"name": "Trigger all 15 min",
"type": "n8n-nodes-base.interval",
"position": [
250,
300
],
"parameters": {
"unit": "minutes",
"interval": 15
},
"typeVersion": 1
}
],
"connections": {
"Read Sheet": {
"main": [
[
{
"node": "Convert to XLS",
"type": "main",
"index": 0
}
]
]
},
"Convert to XLS": {
"main": [
[
{
"node": "Upload Dropbox",
"type": "main",
"index": 0
}
]
]
},
"Trigger all 15 min": {
"main": [
[
{
"node": "Read Sheet",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,71 @@
{
"nodes": [
{
"name": "Twitter",
"type": "n8n-nodes-base.twitter",
"position": [
720,
-220
],
"parameters": {
"text": "=Hey there, my design is now on a new product ✨\nVisit my {{$json[\"vendor\"]}} shop to get this cool{{$json[\"title\"]}} (and check out more {{$json[\"product_type\"]}}) 🛍️",
"additionalFields": {}
},
"credentials": {
"twitterOAuth1Api": "twitter"
},
"typeVersion": 1
},
{
"name": "Telegram",
"type": "n8n-nodes-base.telegram",
"position": [
720,
-20
],
"parameters": {
"text": "=Hey there, my design is now on a new product!\nVisit my {{$json[\"vendor\"]}} shop to get this cool{{$json[\"title\"]}} (and check out more {{$json[\"product_type\"]}})",
"chatId": "123456",
"additionalFields": {}
},
"credentials": {
"telegramApi": "telegram_habot"
},
"typeVersion": 1
},
{
"name": "product created",
"type": "n8n-nodes-base.shopifyTrigger",
"position": [
540,
-110
],
"webhookId": "2a7e0e50-8f09-4a2b-bf54-a849a6ac4fe0",
"parameters": {
"topic": "products/create"
},
"credentials": {
"shopifyApi": "shopify_nodeqa"
},
"typeVersion": 1
}
],
"connections": {
"product created": {
"main": [
[
{
"node": "Twitter",
"type": "main",
"index": 0
},
{
"node": "Telegram",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,310 @@
{
"nodes": [
{
"name": "Zoho",
"type": "n8n-nodes-base.zohoCrm",
"position": [
950,
610
],
"parameters": {
"lastName": "={{$json[\"customer_lastname\"]}}",
"resource": "contact",
"operation": "upsert",
"additionalFields": {
"Email": "={{$json[\"customer_email\"]}}",
"Phone": "={{$json[\"customer_phone\"]}}",
"First_Name": "={{$json[\"customer_firstname\"]}}",
"Mailing_Address": {
"address_fields": {
"Mailing_Zip": "={{$json[\"customer_zipcode\"]}}",
"Mailing_City": "={{$json[\"customer_city\"]}}",
"Mailing_State": "=",
"Mailing_Street": "={{$json[\"customer_street\"]}}",
"Mailing_Country": "={{$json[\"customer_country\"]}}"
}
}
}
},
"credentials": {
"zohoOAuth2Api": "zoho_api"
},
"typeVersion": 1
},
{
"name": "Trello",
"type": "n8n-nodes-base.trello",
"position": [
1160,
800
],
"parameters": {
"name": "=Shopify order {{$node[\"order created\"].json[\"order_number\"]}}",
"listId": "list01",
"additionalFields": {
"urlSource": "={{$node[\"order created\"].json[\"order_status_url\"]}}"
}
},
"credentials": {
"trelloApi": "trello_nodeqa"
},
"typeVersion": 1
},
{
"name": "Set fields",
"type": "n8n-nodes-base.set",
"position": [
760,
760
],
"parameters": {
"values": {
"number": [
{
"name": "customer_phone",
"value": "={{$json[\"customer\"][\"default_address\"][\"phone\"]}}"
},
{
"name": "customer_zipcode",
"value": "={{$json[\"shipping_address\"][\"zip\"]}}"
},
{
"name": "order_value",
"value": "={{$json[\"current_total_price\"]}}"
}
],
"string": [
{
"name": "customer_firstname",
"value": "={{$json[\"customer\"][\"first_name\"]}}"
},
{
"name": "customer_lastname",
"value": "={{$json[\"customer\"][\"last_name\"]}}"
},
{
"name": "customer_email",
"value": "={{$json[\"customer\"][\"email\"]}}"
},
{
"name": "customer_country",
"value": "={{$json[\"shipping_address\"][\"country\"]}}"
},
{
"name": "customer_street",
"value": "={{$json[\"shipping_address\"][\"address1\"]}}"
},
{
"name": "customer_city",
"value": "={{$json[\"shipping_address\"][\"city\"]}}"
},
{
"name": "customer_province",
"value": "={{$json[\"shipping_address\"][\"province\"]}}"
}
]
},
"options": {},
"keepOnlySet": true
},
"typeVersion": 1
},
{
"name": "IF",
"type": "n8n-nodes-base.if",
"position": [
960,
1040
],
"parameters": {
"conditions": {
"number": [
{
"value1": "={{$json[\"order_value\"]}}",
"value2": 50,
"operation": "larger"
}
]
}
},
"typeVersion": 1
},
{
"name": "Gmail - coupon",
"type": "n8n-nodes-base.gmail",
"position": [
1140,
950
],
"parameters": {
"toList": [
"={{$node[\"Set fields\"].json[\"customer_email\"]}}"
],
"message": "=Hi {{$json[\"customer_firstname\"]}},\n\nThank you for your order! Here's a 15% coupon code to use for your next order: COUPON15\n\nBest,\nShop Owner",
"subject": "Your Shopify order",
"resource": "message",
"additionalFields": {}
},
"credentials": {
"gmailOAuth2": "gmail"
},
"typeVersion": 1
},
{
"name": "Gmail - thankyou",
"type": "n8n-nodes-base.gmail",
"position": [
1140,
1150
],
"parameters": {
"toList": [
"={{$node[\"Set fields\"].json[\"customer_email\"]}}"
],
"message": "=Hi {{$node[\"Set fields\"].json[\"customer_firstname\"]}},\nThank you for your order! We're getting it ready for shipping it to you.\n\nBest,\nShop Owner",
"subject": "Your Shopify order",
"resource": "message",
"additionalFields": {}
},
"credentials": {
"gmailOAuth2": "gmail"
},
"typeVersion": 1
},
{
"name": "Mailchimp",
"type": "n8n-nodes-base.mailchimp",
"position": [
1340,
950
],
"parameters": {
"list": "qwertz",
"tags": [
"high-order"
],
"email": "={{$node[\"Set fields\"].json[\"customer_email\"]}}",
"options": {},
"resource": "memberTag"
},
"credentials": {
"mailchimpApi": "mailchimp_API"
},
"typeVersion": 1
},
{
"name": "order created",
"type": "n8n-nodes-base.shopifyTrigger",
"position": [
560,
760
],
"webhookId": "qwertz",
"parameters": {
"topic": "orders/create"
},
"credentials": {
"shopifyApi": "shopify_nodeqa"
},
"typeVersion": 1
},
{
"name": "Harvest",
"type": "n8n-nodes-base.harvest",
"position": [
980,
800
],
"parameters": {
"clientId": "shopify_client",
"resource": "invoice",
"accountId": "12345",
"operation": "create",
"additionalFields": {
"currency": "={{$node[\"order created\"].json[\"currency\"]}}",
"issue_date": "={{$node[\"order created\"].json[\"processed_at\"]}}",
"payment_term": "net 15",
"purchase_order": "={{$node[\"order created\"].json[\"order_number\"]}}"
}
},
"credentials": {
"harvestApi": "harvest_token"
},
"typeVersion": 1
}
],
"connections": {
"IF": {
"main": [
[
{
"node": "Gmail - coupon",
"type": "main",
"index": 0
}
],
[
{
"node": "Gmail - thankyou",
"type": "main",
"index": 0
}
]
]
},
"Harvest": {
"main": [
[
{
"node": "Trello",
"type": "main",
"index": 0
}
]
]
},
"Set fields": {
"main": [
[
{
"node": "Harvest",
"type": "main",
"index": 0
},
{
"node": "IF",
"type": "main",
"index": 0
},
{
"node": "Zoho",
"type": "main",
"index": 0
}
]
]
},
"order created": {
"main": [
[
{
"node": "Set fields",
"type": "main",
"index": 0
}
]
]
},
"Gmail - coupon": {
"main": [
[
{
"node": "Mailchimp",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,231 @@
{
"nodes": [
{
"name": "Cron",
"type": "n8n-nodes-base.cron",
"position": [
-700,
1500
],
"parameters": {
"triggerTimes": {
"item": [
{
"hour": 10,
"mode": "everyWeek"
}
]
}
},
"typeVersion": 1
},
{
"name": "Shopify",
"type": "n8n-nodes-base.shopify",
"position": [
-500,
1500
],
"parameters": {
"options": {},
"operation": "getAll"
},
"credentials": {
"shopifyApi": "shopify_nodeqa"
},
"typeVersion": 1
},
{
"name": "Function",
"type": "n8n-nodes-base.function",
"position": [
300,
1400
],
"parameters": {
"functionCode": "let totalOrders = items.length;\nlet ordersSum = 0;\n\nfor(let i=0; i < items.length; i++) {\n ordersSum = ordersSum + parseFloat(items[i].json.orderPrice);\n}\nreturn [{json:{totalOrders, ordersSum}}]"
},
"typeVersion": 1
},
{
"name": "Google Sheets",
"type": "n8n-nodes-base.googleSheets",
"position": [
500,
1500
],
"parameters": {
"options": {},
"sheetId": "1GVyV1yYwWZu510NTzVgi2RyesrsnuP3RxXmWbX1O7DQ",
"operation": "append",
"authentication": "oAuth2"
},
"credentials": {
"googleSheetsOAuth2Api": "google_sheets_oauth"
},
"typeVersion": 1
},
{
"name": "Slack",
"type": "n8n-nodes-base.slack",
"position": [
500,
1300
],
"parameters": {
"text": "=Hey team, this week we had {{$json[\"totalOrders\"]}} orders with a total value of € {{$json[\"ordersSum\"]}}.",
"channel": "shopify",
"attachments": [],
"otherOptions": {}
},
"credentials": {
"slackApi": "slack_nodeqa"
},
"typeVersion": 1
},
{
"name": "Date & Time",
"type": "n8n-nodes-base.dateTime",
"position": [
-300,
1500
],
"parameters": {
"value": "={{$json[\"created_at\"]}}",
"options": {},
"dataPropertyName": "order_date"
},
"typeVersion": 1
},
{
"name": "IF",
"type": "n8n-nodes-base.if",
"position": [
-100,
1500
],
"parameters": {
"conditions": {
"dateTime": [
{
"value1": "={{$node[\"Date & Time\"].json[\"order_date\"]}}",
"value2": "2021-08-17T15:00:53.223Z"
}
]
}
},
"typeVersion": 1
},
{
"name": "NoOp",
"type": "n8n-nodes-base.noOp",
"position": [
100,
1600
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Set price",
"type": "n8n-nodes-base.set",
"position": [
100,
1400
],
"parameters": {
"values": {
"number": [
{
"name": "orderPrice",
"value": "={{$json[\"total_price\"]}}"
}
]
},
"options": {},
"keepOnlySet": true
},
"typeVersion": 1
}
],
"connections": {
"IF": {
"main": [
[
{
"node": "Set price",
"type": "main",
"index": 0
}
],
[
{
"node": "NoOp",
"type": "main",
"index": 0
}
]
]
},
"Cron": {
"main": [
[
{
"node": "Shopify",
"type": "main",
"index": 0
}
]
]
},
"Shopify": {
"main": [
[
{
"node": "Date & Time",
"type": "main",
"index": 0
}
]
]
},
"Function": {
"main": [
[
{
"node": "Slack",
"type": "main",
"index": 0
},
{
"node": "Google Sheets",
"type": "main",
"index": 0
}
]
]
},
"Set price": {
"main": [
[
{
"node": "Function",
"type": "main",
"index": 0
}
]
]
},
"Date & Time": {
"main": [
[
{
"node": "IF",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,49 @@
{
"id": "120",
"name": "Create a client in Harvest",
"nodes": [
{
"name": "On clicking 'execute'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
250,
300
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Harvest",
"type": "n8n-nodes-base.harvest",
"position": [
450,
300
],
"parameters": {
"name": "",
"resource": "client",
"operation": "create",
"additionalFields": {}
},
"credentials": {
"harvestApi": ""
},
"typeVersion": 1
}
],
"active": false,
"settings": {},
"connections": {
"On clicking 'execute'": {
"main": [
[
{
"node": "Harvest",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,148 @@
{
"nodes": [
{
"name": "Telegram Trigger",
"type": "n8n-nodes-base.telegramTrigger",
"position": [
600,
300
],
"webhookId": "2d0805da-143e-40c9-b327-242b1f052c31",
"parameters": {
"updates": [
"message",
"edited_message",
"channel_post",
"edited_channel_post"
],
"additionalFields": {}
},
"credentials": {
"telegramApi": "telegram_habot"
},
"typeVersion": 1
},
{
"name": "Google Perspective",
"type": "n8n-nodes-base.googlePerspective",
"position": [
800,
300
],
"parameters": {
"text": "={{$json[\"message\"][\"text\"]}}",
"options": {
"languages": "en"
},
"requestedAttributesUi": {
"requestedAttributesValues": [
{
"attributeName": "identity_attack"
},
{
"attributeName": "threat"
},
{
"attributeName": "profanity"
}
]
}
},
"credentials": {
"googlePerspectiveOAuth2Api": "perspective_api"
},
"typeVersion": 1
},
{
"name": "IF",
"type": "n8n-nodes-base.if",
"position": [
1000,
300
],
"parameters": {
"conditions": {
"number": [
{
"value1": "={{$json[\"attributeScores\"][\"PROFANITY\"][\"summaryScore\"][\"value\"]}}",
"value2": 0.7,
"operation": "larger"
}
]
}
},
"typeVersion": 1
},
{
"name": "Telegram",
"type": "n8n-nodes-base.telegram",
"position": [
1200,
150
],
"parameters": {
"text": "I don't tolerate toxic language!",
"chatId": "={{$node[\"Telegram Trigger\"].json[\"message\"][\"chat\"][\"id\"]}}",
"additionalFields": {
"reply_to_message_id": "={{$node[\"Telegram Trigger\"].json[\"message\"][\"message_id\"]}}"
}
},
"credentials": {
"telegramApi": "telegram_habot"
},
"typeVersion": 1
},
{
"name": "NoOp",
"type": "n8n-nodes-base.noOp",
"position": [
1200,
400
],
"parameters": {},
"typeVersion": 1
}
],
"connections": {
"IF": {
"main": [
[
{
"node": "Telegram",
"type": "main",
"index": 0
}
],
[
{
"node": "NoOp",
"type": "main",
"index": 0
}
]
]
},
"Telegram Trigger": {
"main": [
[
{
"node": "Google Perspective",
"type": "main",
"index": 0
}
]
]
},
"Google Perspective": {
"main": [
[
{
"node": "IF",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@ -0,0 +1,557 @@
{
"id": 121,
"name": "Create Email Campaign From LinkedIn Post Interactions",
"nodes": [
{
"name": "Cron",
"type": "n8n-nodes-base.cron",
"position": [
280,
500
],
"parameters": {
"triggerTimes": {
"item": [
{
"mode": "everyHour"
}
]
}
},
"typeVersion": 1
},
{
"name": "Exists ?",
"type": "n8n-nodes-base.if",
"position": [
1700,
480
],
"parameters": {
"conditions": {
"string": [
{
"value1": "={{$node[\"Airtable - List\"].json[\"fields\"][\"Email\"]}}",
"value2": "={{$node[\"Dropcontact - GET\"].json[\"data\"][0][\"email\"][0][\"email\"]}}"
}
]
}
},
"typeVersion": 1
},
{
"name": "Airtable - List",
"type": "n8n-nodes-base.airtable",
"position": [
1500,
480
],
"parameters": {
"table": "Contacts",
"operation": "list",
"additionalOptions": {
"fields": []
}
},
"credentials": {
"airtableApi": {
"id": "",
"name": ""
}
},
"typeVersion": 1
},
{
"name": "Airtable - Update",
"type": "n8n-nodes-base.airtable",
"position": [
2100,
400
],
"parameters": {
"id": "={{$node[\"Airtable - List\"].json[\"id\"]}}",
"table": "Contacts",
"options": {
"typecast": true
},
"operation": "update",
"updateAllFields": false
},
"credentials": {
"airtableApi": {
"id": "",
"name": ""
}
},
"typeVersion": 1
},
{
"name": "Airtable - Create",
"type": "n8n-nodes-base.airtable",
"position": [
2100,
580
],
"parameters": {
"table": "Contacts",
"options": {
"typecast": true
},
"operation": "append"
},
"credentials": {
"airtableApi": {
"id": "",
"name": ""
}
},
"typeVersion": 1
},
{
"name": "Set - Update",
"type": "n8n-nodes-base.set",
"position": [
1900,
400
],
"parameters": {
"values": {
"string": [
{
"name": "=ID",
"value": "={{$node[\"Airtable - List\"].json[\"id\"]}}"
},
{
"name": "Email",
"value": "={{$node[\"Dropcontact - GET\"].json[\"data\"][0][\"email\"][0][\"email\"]}}"
},
{
"name": "Phone",
"value": "={{$node[\"Dropcontact - GET\"].json[\"data\"][0][\"phone\"]}}"
},
{
"name": "LinkedIn",
"value": "={{$node[\"Dropcontact - GET\"].json[\"data\"][0][\"linkedin\"]}}"
},
{
"name": "Account",
"value": "={{$node[\"Dropcontact - GET\"].json[\"data\"][0][\"company\"]}}"
},
{
"name": "Company website",
"value": "={{$node[\"Dropcontact - GET\"].json[\"data\"][0][\"website\"]}}"
}
]
},
"options": {}
},
"typeVersion": 1
},
{
"name": "Set - New",
"type": "n8n-nodes-base.set",
"position": [
1900,
580
],
"parameters": {
"values": {
"string": [
{
"name": "Name",
"value": "={{$node[\"Dropcontact - GET\"].json[\"data\"][0][\"full_name\"]}}"
},
{
"name": "Account",
"value": "={{$node[\"Dropcontact - GET\"].json[\"data\"][0][\"company\"]}}"
},
{
"name": "Company website",
"value": "={{$node[\"Dropcontact - GET\"].json[\"data\"][0][\"website\"]}}"
},
{
"name": "Email",
"value": "={{$node[\"Dropcontact - GET\"].json[\"data\"][0][\"email\"][0][\"email\"]}}"
},
{
"name": "Phone",
"value": "={{$node[\"Dropcontact - GET\"].json[\"data\"][0][\"phone\"]}}"
},
{
"name": "LinkedIn",
"value": "={{$node[\"Dropcontact - GET\"].json[\"data\"][0][\"linkedin\"]}}"
}
]
},
"options": {},
"keepOnlySet": true
},
"typeVersion": 1
},
{
"name": "Lemlist",
"type": "n8n-nodes-base.lemlist",
"position": [
2300,
480
],
"parameters": {
"email": "={{$node[\"Dropcontact - GET\"].json[\"data\"][0][\"email\"][0][\"email\"]}}",
"resource": "lead",
"campaignId": "",
"additionalFields": {
"lastName": "={{$node[\"Dropcontact - GET\"].json[\"data\"][0][\"last_name\"]}}",
"firstName": "={{$node[\"Dropcontact - GET\"].json[\"data\"][0][\"first_name\"]}}",
"companyName": "={{$node[\"Dropcontact - GET\"].json[\"data\"][0][\"company\"]}}"
}
},
"credentials": {
"lemlistApi": {
"id": "",
"name": ""
}
},
"retryOnFail": false,
"typeVersion": 1,
"continueOnFail": true
},
{
"name": "Hubspot",
"type": "n8n-nodes-base.hubspot",
"position": [
2700,
480
],
"parameters": {
"email": "={{$node[\"Dropcontact - GET\"].json[\"data\"][0][\"email\"][0][\"email\"]}}",
"resource": "contact",
"additionalFields": {
"city": "={{$node[\"Dropcontact - GET\"].json[\"data\"][0][\"siret_city\"]}}",
"gender": "={{$node[\"Dropcontact - GET\"].json[\"data\"][0][\"civility\"]}}",
"lastName": "={{$node[\"Dropcontact - GET\"].json[\"data\"][0][\"last_name\"]}}",
"firstName": "={{$node[\"Dropcontact - GET\"].json[\"data\"][0][\"first_name\"]}}",
"websiteUrl": "={{$node[\"Dropcontact - GET\"].json[\"data\"][0][\"website\"]}}",
"companyName": "={{$node[\"Dropcontact - GET\"].json[\"data\"][0][\"company\"]}}",
"phoneNumber": "={{$node[\"Dropcontact - GET\"].json[\"data\"][0][\"phone\"]}}",
"originalSource": "SOCIAL_MEDIA"
}
},
"credentials": {
"hubspotApi": {
"id": "",
"name": ""
}
},
"typeVersion": 1
},
{
"name": "LinkedIn Post Commenters",
"type": "n8n-nodes-base.phantombuster",
"position": [
480,
400
],
"parameters": {
"jsonParameters": true,
"additionalFields": {
"manualLaunch": true
}
},
"credentials": {
"phantombusterApi": {
"id": "",
"name": ""
}
},
"typeVersion": 1
},
{
"name": "Get Comments",
"type": "n8n-nodes-base.phantombuster",
"position": [
880,
400
],
"parameters": {
"operation": "getOutput",
"additionalFields": {}
},
"credentials": {
"phantombusterApi": {
"id": "",
"name": ""
}
},
"executeOnce": true,
"typeVersion": 1
},
{
"name": "Dropcontact",
"type": "n8n-nodes-base.dropcontact",
"position": [
1300,
480
],
"parameters": {
"options": {},
"additionalFields": {
"company": "=",
"website": "",
"linkedin": "",
"last_name": "",
"first_name": "="
}
},
"credentials": {
"dropcontactApi": {
"id": "",
"name": ""
}
},
"typeVersion": 1
},
{
"name": "Phantombuster",
"type": "n8n-nodes-base.phantombuster",
"position": [
2500,
480
],
"parameters": {
"additionalFields": {}
},
"credentials": {
"phantombusterApi": {
"id": "",
"name": ""
}
},
"typeVersion": 1
},
{
"name": "LinkedIn Post Liker",
"type": "n8n-nodes-base.phantombuster",
"position": [
480,
600
],
"parameters": {
"jsonParameters": true,
"additionalFields": {
"manualLaunch": true
}
},
"credentials": {
"phantombusterApi": {
"id": "",
"name": ""
}
},
"typeVersion": 1
},
{
"name": "Get Likers",
"type": "n8n-nodes-base.phantombuster",
"position": [
880,
600
],
"parameters": {
"operation": "getOutput",
"additionalFields": {}
},
"credentials": {
"phantombusterApi": {
"id": "",
"name": ""
}
},
"executeOnce": true,
"typeVersion": 1
},
{
"name": "Wait 30s",
"type": "n8n-nodes-base.wait",
"position": [
680,
560
],
"webhookId": "de87cd0e-ea00-43d8-896c-836494094779",
"parameters": {
"unit": "seconds",
"amount": 30
},
"typeVersion": 1
}
],
"active": false,
"settings": {},
"connections": {
"Cron": {
"main": [
[
{
"node": "LinkedIn Post Commenters",
"type": "main",
"index": 0
},
{
"node": "LinkedIn Post Liker",
"type": "main",
"index": 0
}
]
]
},
"Lemlist": {
"main": [
[
{
"node": "Phantombuster",
"type": "main",
"index": 0
}
]
]
},
"Exists ?": {
"main": [
[
{
"node": "Set - Update",
"type": "main",
"index": 0
}
],
[
{
"node": "Set - New",
"type": "main",
"index": 0
}
]
]
},
"Wait 30s": {
"main": [
[
{
"node": "Get Comments",
"type": "main",
"index": 0
}
]
]
},
"Set - New": {
"main": [
[
{
"node": "Airtable - Create",
"type": "main",
"index": 0
}
]
]
},
"Get Likers": {
"main": [
[
{
"node": "Dropcontact",
"type": "main",
"index": 0
}
]
]
},
"Dropcontact": {
"main": [
[
{
"node": "Airtable - List",
"type": "main",
"index": 0
}
]
]
},
"Get Comments": {
"main": [
[
{
"node": "Dropcontact",
"type": "main",
"index": 0
}
]
]
},
"Set - Update": {
"main": [
[
{
"node": "Airtable - Update",
"type": "main",
"index": 0
}
]
]
},
"Phantombuster": {
"main": [
[
{
"node": "Hubspot",
"type": "main",
"index": 0
}
]
]
},
"Airtable - List": {
"main": [
[
{
"node": "Exists ?",
"type": "main",
"index": 0
}
]
]
},
"Airtable - Create": {
"main": [
[
{
"node": "Lemlist",
"type": "main",
"index": 0
}
]
]
},
"Airtable - Update": {
"main": [
[
{
"node": "Lemlist",
"type": "main",
"index": 0
}
]
]
},
"LinkedIn Post Commenters": {
"main": [
[
{
"node": "Wait 30s",
"type": "main",
"index": 0
}
]
]
}
}
}

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More