feat: add folder support for workflows (fixes #70)

This commit is contained in:
Praveen Mudalgeri
2025-08-05 09:40:47 +05:30
parent 307d530f9b
commit c4885eee92
2057 changed files with 985290 additions and 974268 deletions

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,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,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,218 @@
{
"nodes": [
{
"name": "create new contact",
"type": "n8n-nodes-base.hubspot",
"position": [
-300,
1200
],
"parameters": {
"email": "={{$json[\"form_email\"]}}",
"resource": "contact",
"additionalFields": {
"industry": "={{$json[\"form_department\"]}}",
"lastName": "={{$json[\"form_lastname\"]}}",
"firstName": "={{$json[\"form_firstname\"]}}",
"companyName": "={{$json[\"form_companyname\"]}}"
}
},
"credentials": {
"hubspotApi": "hubspot_nodeqa"
},
"typeVersion": 1
},
{
"name": "update lead stage",
"type": "n8n-nodes-base.hubspot",
"position": [
100,
1100
],
"parameters": {
"email": "={{$node[\"create new contact\"].json[\"properties\"][\"email\"][\"value\"]}}",
"resource": "contact",
"additionalFields": {
"lifeCycleStage": "opportunity"
}
},
"credentials": {
"hubspotApi": "hubspot_nodeqa"
},
"typeVersion": 1
},
{
"name": "NoOp",
"type": "n8n-nodes-base.noOp",
"position": [
100,
1300
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Set values",
"type": "n8n-nodes-base.set",
"position": [
-500,
1200
],
"parameters": {
"values": {
"string": [
{
"name": "form_firstname",
"value": "={{$json[\"First up, what's your name?\"]}}"
},
{
"name": "form_lastname",
"value": "={{$json[\"And your surname, [field:fda1954c-f7a3-4fd3-a8dc-dcad5160bab5]?\"]}}"
},
{
"name": "form_department",
"value": "={{$json[\"And in which department do you work, [field:fda1954c-f7a3-4fd3-a8dc-dcad5160bab5]?\"]}}"
},
{
"name": "form_companyname",
"value": "={{$json[\"Great! Now what company are you from?\"]}}"
},
{
"name": "form_email",
"value": "={{$json[\"Just a couple more questions left! What's your email address?\"]}}"
}
],
"boolean": [
{
"name": "form_interest",
"value": "={{$json[\"And are you currently looking to scale your visual content?\"]}}"
}
]
},
"options": {},
"keepOnlySet": true
},
"typeVersion": 1
},
{
"name": "Typeform Trigger",
"type": "n8n-nodes-base.typeformTrigger",
"position": [
-700,
1200
],
"webhookId": "97eb74c8-156c-4329-8679-37b69533f709",
"parameters": {
"formId": "RPueloJC"
},
"credentials": {
"typeformApi": "typeform"
},
"typeVersion": 1
},
{
"name": "lead interested",
"type": "n8n-nodes-base.if",
"position": [
-100,
1200
],
"parameters": {
"conditions": {
"boolean": [
{
"value1": "={{$node[\"Set values\"].json[\"form_interest\"]}}",
"value2": true
}
]
}
},
"typeVersion": 1
},
{
"name": "send information",
"type": "n8n-nodes-base.gmail",
"position": [
300,
1100
],
"parameters": {
"toList": [
"={{$json[\"properties\"][\"email\"][\"value\"]}}"
],
"message": "=Hello {{$json[\"properties\"][\"firstname\"][\"value\"]}},\n\nI'm glad to hear you're interested in our services. You can schedule a call with me here: [calendly_link].\nUntil then, check out this presentation about how we can help your business: [presentation_link].\nLooking forward to talking to you!\n\nBest,\nTeam",
"subject": "So you're interested in growing your business",
"resource": "message",
"additionalFields": {}
},
"credentials": {
"gmailOAuth2": "gmail"
},
"typeVersion": 1
}
],
"connections": {
"Set values": {
"main": [
[
{
"node": "create new contact",
"type": "main",
"index": 0
}
]
]
},
"lead interested": {
"main": [
[
{
"node": "update lead stage",
"type": "main",
"index": 0
}
],
[
{
"node": "NoOp",
"type": "main",
"index": 0
}
]
]
},
"Typeform Trigger": {
"main": [
[
{
"node": "Set values",
"type": "main",
"index": 0
}
]
]
},
"update lead stage": {
"main": [
[
{
"node": "send information",
"type": "main",
"index": 0
}
]
]
},
"create new contact": {
"main": [
[
{
"node": "lead interested",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@@ -0,0 +1,320 @@
{
"id": 122,
"name": "Automate assigning GitHub issues",
"nodes": [
{
"name": "Switch",
"type": "n8n-nodes-base.switch",
"position": [
720,
360
],
"parameters": {
"rules": {
"rules": [
{
"value2": "opened"
},
{
"output": 1,
"value2": "created"
}
]
},
"value1": "={{$json[\"body\"][\"action\"]}}",
"dataType": "string"
},
"typeVersion": 1
},
{
"name": "IF no assignee?",
"type": "n8n-nodes-base.if",
"position": [
1120,
220
],
"parameters": {
"conditions": {
"number": [
{
"value1": "={{$json[\"body\"][\"issue\"][\"assignees\"].length}}",
"operation": "equal"
}
],
"string": [
{
"value1": "={{$json[\"body\"][\"issue\"][\"body\"]}}",
"value2": "/[a,A]ssign[\\w*\\s*]*me/gm",
"operation": "regex"
}
]
}
},
"typeVersion": 1
},
{
"name": "NoOp",
"type": "n8n-nodes-base.noOp",
"position": [
1320,
320
],
"parameters": {},
"typeVersion": 1
},
{
"name": "IF wants to work?",
"type": "n8n-nodes-base.if",
"position": [
920,
560
],
"parameters": {
"conditions": {
"number": [],
"string": [
{
"value1": "={{$json[\"body\"][\"comment\"][\"body\"]}}",
"value2": "/[a,A]ssign[\\w*\\s*]*me/gm",
"operation": "regex"
}
]
}
},
"typeVersion": 1
},
{
"name": "IF not assigned?",
"type": "n8n-nodes-base.if",
"position": [
1120,
520
],
"parameters": {
"conditions": {
"number": [
{
"value1": "={{$json[\"body\"][\"issue\"][\"assignees\"].length}}",
"operation": "equal"
}
],
"string": []
}
},
"typeVersion": 1
},
{
"name": "Assign Issue Creator",
"type": "n8n-nodes-base.github",
"position": [
1320,
120
],
"parameters": {
"owner": "={{$node[\"Switch\"].json[\"body\"][\"repository\"][\"owner\"][\"login\"]}}",
"operation": "edit",
"editFields": {
"labels": [
{
"label": "assigned"
}
],
"assignees": [
{
"assignee": "={{$json.body.issue[\"user\"][\"login\"]}}"
}
]
},
"repository": "={{$node[\"Switch\"].json[\"body\"][\"repository\"][\"name\"]}}",
"issueNumber": "={{ $json[\"body\"][\"issue\"][\"number\"] }}",
"authentication": "oAuth2"
},
"credentials": {
"githubOAuth2Api": {
"id": null,
"name": "GitHub@Harshil"
}
},
"typeVersion": 1
},
{
"name": "Add Comment",
"type": "n8n-nodes-base.github",
"position": [
1420,
660
],
"parameters": {
"body": "=Hey @{{$json[\"body\"][\"comment\"][\"user\"][\"login\"]}},\n\nThis issue is already assigned to {{$json[\"body\"][\"issue\"][\"assignee\"][\"login\"]}} 🙂",
"owner": "={{$json[\"body\"][\"repository\"][\"owner\"][\"login\"]}}",
"operation": "createComment",
"repository": "={{$json[\"body\"][\"repository\"][\"name\"]}}",
"issueNumber": "={{$json[\"body\"][\"issue\"][\"number\"]}}",
"authentication": "oAuth2"
},
"credentials": {
"githubOAuth2Api": {
"id": null,
"name": "GitHub@Harshil"
}
},
"typeVersion": 1
},
{
"name": "NoOp1",
"type": "n8n-nodes-base.noOp",
"position": [
1120,
720
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Assign Commenter",
"type": "n8n-nodes-base.github",
"position": [
1420,
460
],
"parameters": {
"owner": "={{$json[\"body\"][\"repository\"][\"owner\"][\"login\"]}}",
"operation": "edit",
"editFields": {
"labels": [
{
"label": "assigned"
}
],
"assignees": [
{
"assignee": "={{$json[\"body\"][\"comment\"][\"user\"][\"login\"]}}"
}
]
},
"repository": "={{$json[\"body\"][\"repository\"][\"name\"]}}",
"issueNumber": "={{$json[\"body\"][\"issue\"][\"number\"]}}",
"authentication": "oAuth2"
},
"credentials": {
"githubOAuth2Api": {
"id": null,
"name": "GitHub@Harshil"
}
},
"typeVersion": 1
},
{
"name": "Github Trigger1",
"type": "n8n-nodes-base.githubTrigger",
"position": [
520,
360
],
"webhookId": "52c5fe44-23ef-4903-b6ae-731edd36127e",
"parameters": {
"owner": "harshil1712",
"events": [
"issue_comment",
"issues"
],
"repository": "build-discord-bot",
"authentication": "oAuth2"
},
"credentials": {
"githubOAuth2Api": {
"id": null,
"name": "GitHub Personal Credentials"
}
},
"typeVersion": 1
}
],
"active": false,
"settings": {},
"connections": {
"Switch": {
"main": [
[
{
"node": "IF no assignee?",
"type": "main",
"index": 0
}
],
[
{
"node": "IF wants to work?",
"type": "main",
"index": 0
}
]
]
},
"Github Trigger1": {
"main": [
[
{
"node": "Switch",
"type": "main",
"index": 0
}
]
]
},
"IF no assignee?": {
"main": [
[
{
"node": "Assign Issue Creator",
"type": "main",
"index": 0
}
],
[
{
"node": "NoOp",
"type": "main",
"index": 0
}
]
]
},
"IF not assigned?": {
"main": [
[
{
"node": "Assign Commenter",
"type": "main",
"index": 0
}
],
[
{
"node": "Add Comment",
"type": "main",
"index": 0
}
]
]
},
"IF wants to work?": {
"main": [
[
{
"node": "IF not assigned?",
"type": "main",
"index": 0
}
],
[
{
"node": "NoOp1",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@@ -0,0 +1,326 @@
{
"nodes": [
{
"name": "Github Trigger",
"type": "n8n-nodes-base.githubTrigger",
"position": [
450,
300
],
"webhookId": "52c5fe44-23ef-4903-b6ae-731edd36127e",
"parameters": {
"owner": "harshil1712",
"events": [
"issue_comment",
"issues"
],
"repository": "build-discord-bot",
"authentication": "oAuth2"
},
"credentials": {
"githubOAuth2Api": "GitHub Personal Credentials"
},
"typeVersion": 1
},
{
"name": "Github Trigger",
"type": "n8n-nodes-base.githubTrigger",
"position": [
450,
300
],
"webhookId": "52c5fe44-23ef-4903-b6ae-731edd36127e",
"parameters": {
"owner": "harshil1712",
"events": [
"issue_comment",
"issues"
],
"repository": "build-discord-bot",
"authentication": "oAuth2"
},
"credentials": {
"githubOAuth2Api": "GitHub Personal Credentials"
},
"typeVersion": 1
},
{
"name": "Switch",
"type": "n8n-nodes-base.switch",
"position": [
650,
300
],
"parameters": {
"rules": {
"rules": [
{
"value2": "opened"
},
{
"output": 1,
"value2": "created"
}
]
},
"value1": "={{$json[\"body\"][\"action\"]}}",
"dataType": "string"
},
"typeVersion": 1
},
{
"name": "IF no assignee?",
"type": "n8n-nodes-base.if",
"position": [
1050,
150
],
"parameters": {
"conditions": {
"number": [
{
"value1": "={{$json[\"body\"][\"issue\"][\"assignees\"].length}}",
"operation": "equal"
}
],
"string": [
{
"value1": "={{$json[\"body\"][\"issue\"][\"body\"]}}",
"value2": "/[a,A]ssign[\\w*\\s*]*me/gm",
"operation": "regex"
}
]
}
},
"typeVersion": 1
},
{
"name": "NoOp",
"type": "n8n-nodes-base.noOp",
"position": [
1250,
250
],
"parameters": {},
"typeVersion": 1
},
{
"name": "IF wants to work?",
"type": "n8n-nodes-base.if",
"position": [
850,
500
],
"parameters": {
"conditions": {
"number": [],
"string": [
{
"value1": "={{$json[\"body\"][\"comment\"][\"body\"]}}",
"value2": "/[a,A]ssign[\\w*\\s*]*me/gm",
"operation": "regex"
}
]
}
},
"typeVersion": 1
},
{
"name": "IF not assigned?",
"type": "n8n-nodes-base.if",
"position": [
1050,
450
],
"parameters": {
"conditions": {
"number": [
{
"value1": "={{$json[\"body\"][\"issue\"][\"assignees\"].length}}",
"operation": "equal"
}
],
"string": []
}
},
"typeVersion": 1
},
{
"name": "Assign Issue Creator",
"type": "n8n-nodes-base.github",
"position": [
1250,
50
],
"parameters": {
"owner": "={{$node[\"Switch\"].json[\"body\"][\"repository\"][\"owner\"][\"login\"]}}",
"operation": "edit",
"editFields": {
"labels": [
{
"label": "assigned"
}
],
"assignees": [
{
"assignee": "={{$json.body.issue[\"user\"][\"login\"]}}"
}
]
},
"repository": "={{$node[\"Switch\"].json[\"body\"][\"repository\"][\"name\"]}}",
"issueNumber": "={{ $json[\"body\"][\"issue\"][\"number\"] }}",
"authentication": "oAuth2"
},
"credentials": {
"githubOAuth2Api": "GitHub@Harshil"
},
"typeVersion": 1
},
{
"name": "Add Comment",
"type": "n8n-nodes-base.github",
"position": [
1350,
600
],
"parameters": {
"body": "=Hey @{{$json[\"body\"][\"comment\"][\"user\"][\"login\"]}},\n\nThis issue is already assigned to {{$json[\"body\"][\"issue\"][\"assignee\"][\"login\"]}} 🙂",
"owner": "={{$json[\"body\"][\"repository\"][\"owner\"][\"login\"]}}",
"operation": "createComment",
"repository": "={{$json[\"body\"][\"repository\"][\"name\"]}}",
"issueNumber": "={{$json[\"body\"][\"issue\"][\"number\"]}}",
"authentication": "oAuth2"
},
"credentials": {
"githubOAuth2Api": "GitHub@Harshil"
},
"typeVersion": 1
},
{
"name": "NoOp1",
"type": "n8n-nodes-base.noOp",
"position": [
1050,
650
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Assign Commenter",
"type": "n8n-nodes-base.github",
"position": [
1350,
400
],
"parameters": {
"owner": "={{$json[\"body\"][\"repository\"][\"owner\"][\"login\"]}}",
"operation": "edit",
"editFields": {
"labels": [
{
"label": "assigned"
}
],
"assignees": [
{
"assignee": "={{$json[\"body\"][\"comment\"][\"user\"][\"login\"]}}"
}
]
},
"repository": "={{$json[\"body\"][\"repository\"][\"name\"]}}",
"issueNumber": "={{$json[\"body\"][\"issue\"][\"number\"]}}",
"authentication": "oAuth2"
},
"credentials": {
"githubOAuth2Api": "GitHub@Harshil"
},
"typeVersion": 1
}
],
"connections": {
"Switch": {
"main": [
[
{
"node": "IF no assignee?",
"type": "main",
"index": 0
}
],
[
{
"node": "IF wants to work?",
"type": "main",
"index": 0
}
]
]
},
"Github Trigger": {
"main": [
[
{
"node": "Switch",
"type": "main",
"index": 0
}
]
]
},
"IF no assignee?": {
"main": [
[
{
"node": "Assign Issue Creator",
"type": "main",
"index": 0
}
],
[
{
"node": "NoOp",
"type": "main",
"index": 0
}
]
]
},
"IF not assigned?": {
"main": [
[
{
"node": "Assign Commenter",
"type": "main",
"index": 0
}
],
[
{
"node": "Add Comment",
"type": "main",
"index": 0
}
]
]
},
"IF wants to work?": {
"main": [
[
{
"node": "IF not assigned?",
"type": "main",
"index": 0
}
],
[
{
"node": "NoOp1",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@@ -0,0 +1,194 @@
{
"meta": {
"instanceId": "8c8c5237b8e37b006a7adce87f4369350c58e41f3ca9de16196d3197f69eabcd"
},
"nodes": [
{
"id": "1e603735-dd86-4691-8ece-c81fff396161",
"name": "Webhook",
"type": "n8n-nodes-base.webhook",
"position": [
370,
250
],
"webhookId": "484b94c9-8285-4ec9-aa52-f5a41eb84d1a",
"parameters": {
"path": "timersyncro",
"options": {},
"httpMethod": "POST",
"responseData": "allEntries",
"responseMode": "lastNode"
},
"typeVersion": 1
},
{
"id": "2b243a13-a258-4198-9cad-057c6117b50a",
"name": "EnvVariables",
"type": "n8n-nodes-base.set",
"position": [
570,
250
],
"parameters": {
"values": {
"string": [
{
"name": "syncro_baseurl",
"value": "https://subdomain.syncromsp.com"
}
]
},
"options": {}
},
"typeVersion": 1
},
{
"id": "0108d71b-ae26-4e64-9a52-9b6de15c4fbd",
"name": "Google Sheets",
"type": "n8n-nodes-base.googleSheets",
"position": [
750,
250
],
"parameters": {
"range": "A:B",
"options": {},
"sheetId": "xxx",
"operation": "lookup",
"lookupValue": "={{$node[\"Webhook\"].json[\"body\"][\"call_id\"]}}",
"lookupColumn": "Call"
},
"credentials": {
"googleApi": {
"id": null,
"name": "Google"
}
},
"typeVersion": 1
},
{
"id": "6747ff1c-f7f0-48a2-9aa2-fd1c72401233",
"name": "ConfirmMatch",
"type": "n8n-nodes-base.if",
"position": [
900,
250
],
"parameters": {
"conditions": {
"number": [],
"string": [
{
"value1": "={{$node[\"Google Sheets\"].json[\"Ticket\"]}}",
"operation": "isEmpty"
}
],
"boolean": []
}
},
"typeVersion": 1
},
{
"id": "207192d8-f8f4-4f23-af61-91e254cbeee9",
"name": "NoOp",
"type": "n8n-nodes-base.noOp",
"position": [
1060,
100
],
"parameters": {},
"typeVersion": 1
},
{
"id": "7cd7ba20-951d-4654-82b5-2e8081774723",
"name": "AddTimertoSyncro",
"type": "n8n-nodes-base.httpRequest",
"position": [
1080,
420
],
"parameters": {
"url": "={{$node[\"EnvVariables\"].parameter[\"values\"][\"string\"][0][\"value\"]}}/api/v1/tickets/{{$node[\"Google Sheets\"].json[\"Ticket\"]}}/timer_entry",
"method": "POST",
"options": {},
"sendBody": true,
"authentication": "genericCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "start_at",
"value": "={{new Date(parseInt($node[\"Webhook\"].json[\"body\"][\"date_started\"])).toISOString()}}"
},
{
"name": "end_at",
"value": "={{new Date(parseInt($node[\"Webhook\"].json[\"body\"][\"date_ended\"])).toISOString()}}"
},
{
"name": "notes",
"value": "=Phone call from {{$node[\"Webhook\"].json[\"body\"][\"contact\"][\"name\"]}} ({{$node[\"Webhook\"].json[\"body\"][\"contact\"][\"phone\"]}})."
},
{
"name": "user_id",
"value": "24223"
}
]
},
"genericAuthType": "httpHeaderAuth"
},
"typeVersion": 3
}
],
"connections": {
"Webhook": {
"main": [
[
{
"node": "EnvVariables",
"type": "main",
"index": 0
}
]
]
},
"ConfirmMatch": {
"main": [
[
{
"node": "NoOp",
"type": "main",
"index": 0
}
],
[
{
"node": "AddTimertoSyncro",
"type": "main",
"index": 0
}
]
]
},
"EnvVariables": {
"main": [
[
{
"node": "Google Sheets",
"type": "main",
"index": 0
}
]
]
},
"Google Sheets": {
"main": [
[
{
"node": "ConfirmMatch",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@@ -0,0 +1,186 @@
{
"id": "14",
"name": "Activity Encouragement",
"nodes": [
{
"name": "Strava",
"type": "n8n-nodes-base.strava",
"position": [
640,
300
],
"parameters": {
"operation": "getAll",
"returnAll": true
},
"credentials": {
"stravaOAuth2Api": "Strava OAuth2 Creds"
},
"typeVersion": 1
},
{
"name": "Accountability Settings",
"type": "n8n-nodes-base.set",
"position": [
450,
300
],
"parameters": {
"values": {
"number": [
{
"name": "moveTime",
"value": 1800
}
],
"string": [
{
"name": "actPartner1",
"value": "john.doe@example.com"
},
{
"name": "actPartner2",
"value": "jane.doe@example.com"
},
{
"name": "actPartner3",
"value": "jill.doe@example.com"
},
{
"name": "yourName",
"value": "Jim"
},
{
"name": "yourEmail",
"value": "jim.doe@example.com"
}
]
},
"options": {},
"keepOnlySet": true
},
"typeVersion": 1
},
{
"name": "Check Activity Level",
"type": "n8n-nodes-base.if",
"position": [
840,
300
],
"parameters": {
"conditions": {
"number": [
{
"value1": "={{$node[\"Strava\"].json[\"moving_time\"]}}",
"value2": "={{$node[\"Accountability Settings\"].parameter[\"values\"][\"number\"][0][\"value\"]}}",
"operation": "largerEqual"
}
]
}
},
"typeVersion": 1
},
{
"name": "Enough Activity",
"type": "n8n-nodes-base.noOp",
"position": [
1050,
220
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Send Email",
"type": "n8n-nodes-base.emailSend",
"position": [
1050,
390
],
"parameters": {
"text": "=Hey Accountability Team,\n\nLooks like {{$node[\"Accountability Settings\"].json[\"yourName\"]}} has been spending a bit too much time inactive! How about sending them a quick word of encouragement?\n\nThanks!\n{{$node[\"Accountability Settings\"].json[\"yourName\"]}}'s Heart",
"options": {},
"toEmail": "={{$node[\"Accountability Settings\"].parameter[\"values\"][\"string\"][0][\"value\"]}}; {{$node[\"Accountability Settings\"].parameter[\"values\"][\"string\"][1][\"value\"]}}; {{$node[\"Accountability Settings\"].parameter[\"values\"][\"string\"][2][\"value\"]}}",
"fromEmail": "={{$node[\"Accountability Settings\"].json[\"yourEmail\"]}}"
},
"credentials": {
"smtp": "Email Creds"
},
"typeVersion": 1
},
{
"name": "Check Daily at 11:AM",
"type": "n8n-nodes-base.cron",
"position": [
260,
300
],
"parameters": {
"triggerTimes": {
"item": [
{
"hour": 11
}
]
}
},
"typeVersion": 1
}
],
"active": false,
"settings": {},
"connections": {
"Strava": {
"main": [
[
{
"node": "Check Activity Level",
"type": "main",
"index": 0
}
]
]
},
"Check Activity Level": {
"main": [
[
{
"node": "Enough Activity",
"type": "main",
"index": 0
}
],
[
{
"node": "Send Email",
"type": "main",
"index": 0
}
]
]
},
"Check Daily at 11:AM": {
"main": [
[
{
"node": "Accountability Settings",
"type": "main",
"index": 0
}
]
]
},
"Accountability Settings": {
"main": [
[
{
"node": "Strava",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@@ -0,0 +1,105 @@
{
"id": "166",
"name": "Receive messages from a topic and send an SMS",
"nodes": [
{
"name": "Kafka Trigger",
"type": "n8n-nodes-base.kafkaTrigger",
"position": [
490,
260
],
"parameters": {
"topic": "topic_test",
"groupId": "n8n",
"options": {
"jsonParseMessage": true
}
},
"credentials": {
"kafka": "kafka"
},
"typeVersion": 1
},
{
"name": "IF",
"type": "n8n-nodes-base.if",
"position": [
690,
260
],
"parameters": {
"conditions": {
"number": [
{
"value1": "={{$node[\"Kafka Trigger\"].json[\"message\"][\"temp\"]}}",
"value2": 50,
"operation": "larger"
}
]
}
},
"typeVersion": 1
},
{
"name": "Vonage",
"type": "n8n-nodes-base.vonage",
"position": [
890,
160
],
"parameters": {
"from": "Vonage APIs",
"message": "=Alert!\nThe value of temp is {{$node[\"Kafka Trigger\"].json[\"message\"][\"temp\"]}}.",
"additionalFields": {}
},
"credentials": {
"vonageApi": "vonage"
},
"typeVersion": 1
},
{
"name": "NoOp",
"type": "n8n-nodes-base.noOp",
"position": [
890,
360
],
"parameters": {},
"typeVersion": 1
}
],
"active": false,
"settings": {},
"connections": {
"IF": {
"main": [
[
{
"node": "Vonage",
"type": "main",
"index": 0
}
],
[
{
"node": "NoOp",
"type": "main",
"index": 0
}
]
]
},
"Kafka Trigger": {
"main": [
[
{
"node": "IF",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@@ -0,0 +1,262 @@
{
"id": "168",
"name": "Smart Factory Use Case",
"nodes": [
{
"name": "Values higher than 50°C",
"type": "n8n-nodes-base.if",
"position": [
250,
550
],
"parameters": {
"conditions": {
"number": [
{
"value1": "={{$node[\"Data from factory sensors\"].json[\"body\"][\"temperature_celsius\"]}}",
"value2": 50,
"operation": "largerEqual"
}
]
}
},
"typeVersion": 1
},
{
"name": "Data from factory sensors",
"type": "n8n-nodes-base.amqpTrigger",
"position": [
50,
700
],
"parameters": {
"sink": "berlin_factory_01",
"options": {}
},
"credentials": {
"amqp": ""
},
"typeVersion": 1
},
{
"name": "Set sensor data",
"type": "n8n-nodes-base.set",
"position": [
450,
850
],
"parameters": {
"values": {
"number": [
{
"name": "temeprature_fahrenheit",
"value": "={{$node[\"Data enrichment (°C to °F)\"].json[\"temperature_fahrenheit\"]}}"
},
{
"name": "temperature_celsius",
"value": "={{$node[\"Data enrichment (°C to °F)\"].json[\"body\"][\"temperature_celsius\"]}}"
},
{
"name": "machine_uptime",
"value": "={{$node[\"Data from factory sensors\"].json[\"body\"][\"machine_id\"][\"uptime\"]}}"
},
{
"name": "time_stamp",
"value": "={{$node[\"Data from factory sensors\"].json[\"body\"][\"time_stamp\"]}}"
}
],
"string": [
{
"name": "machine_name",
"value": "={{$node[\"Data from factory sensors\"].json[\"body\"][\"machine_id\"][\"name\"]}}"
}
]
},
"options": {}
},
"typeVersion": 1
},
{
"name": "Ingest machine data",
"type": "n8n-nodes-base.crateDb",
"position": [
650,
850
],
"parameters": {
"table": "machine_data",
"columns": "temperature_fahrenheit, temperature_celsius, machine_name, machine_uptime, time_stamp"
},
"credentials": {
"crateDb": ""
},
"typeVersion": 1
},
{
"name": "Ingest incident data",
"type": "n8n-nodes-base.crateDb",
"position": [
850,
450
],
"parameters": {
"table": "incident_data",
"columns": "incident_id, html_url, incident_timestamp"
},
"credentials": {
"crateDb": ""
},
"typeVersion": 1
},
{
"name": "Set incident info",
"type": "n8n-nodes-base.set",
"position": [
650,
450
],
"parameters": {
"values": {
"string": [
{
"name": "incident_id",
"value": "={{$node[\"Create an incident\"].json[\"id\"]}}"
},
{
"name": "html_url",
"value": "={{$node[\"Create an incident\"].json[\"html_url\"]}}"
},
{
"name": "incident_timestamp",
"value": "={{$node[\"Create an incident\"].json[\"created_at\"]}}"
}
]
},
"options": {},
"keepOnlySet": true
},
"typeVersion": 1
},
{
"name": "Create an incident",
"type": "n8n-nodes-base.pagerDuty",
"position": [
450,
450
],
"parameters": {
"title": "=Incident with {{$node[\"Data from factory sensors\"].json[\"body\"][\"machine_id\"][\"name\"]}}",
"additionalFields": {}
},
"credentials": {
"pagerDutyApi": ""
},
"typeVersion": 1
},
{
"name": "Data enrichment (°C to °F)",
"type": "n8n-nodes-base.function",
"position": [
250,
850
],
"parameters": {
"functionCode": "temp_fahrenheit = (items[0].json.body.temperature_celsius * 1.8) + 32;\nitems[0].json.temperature_fahrenheit = temp_fahrenheit;\nreturn items;"
},
"typeVersion": 1,
"alwaysOutputData": true
},
{
"name": "Do nothing",
"type": "n8n-nodes-base.noOp",
"position": [
450,
640
],
"parameters": {},
"typeVersion": 1
}
],
"active": false,
"settings": {},
"connections": {
"Set sensor data": {
"main": [
[
{
"node": "Ingest machine data",
"type": "main",
"index": 0
}
]
]
},
"Set incident info": {
"main": [
[
{
"node": "Ingest incident data",
"type": "main",
"index": 0
}
]
]
},
"Create an incident": {
"main": [
[
{
"node": "Set incident info",
"type": "main",
"index": 0
}
]
]
},
"Values higher than 50°C": {
"main": [
[
{
"node": "Create an incident",
"type": "main",
"index": 0
}
],
[
{
"node": "Do nothing",
"type": "main",
"index": 0
}
]
]
},
"Data from factory sensors": {
"main": [
[
{
"node": "Data enrichment (°C to °F)",
"type": "main",
"index": 0
},
{
"node": "Values higher than 50°C",
"type": "main",
"index": 0
}
]
]
},
"Data enrichment (°C to °F)": {
"main": [
[
{
"node": "Set sensor data",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@@ -0,0 +1,104 @@
{
"id": "186",
"name": "Receive messages from a queue via RabbitMQ and send an SMS",
"nodes": [
{
"name": "RabbitMQ",
"type": "n8n-nodes-base.rabbitmqTrigger",
"position": [
520,
220
],
"parameters": {
"queue": "temp",
"options": {
"onlyContent": true,
"jsonParseBody": true
}
},
"credentials": {
"rabbitmq": "RabbitMQ Credentials"
},
"typeVersion": 1
},
{
"name": "IF",
"type": "n8n-nodes-base.if",
"position": [
720,
220
],
"parameters": {
"conditions": {
"number": [
{
"value1": "={{$node[\"RabbitMQ\"].json[\"temp\"]}}",
"value2": 50,
"operation": "larger"
}
]
}
},
"typeVersion": 1
},
{
"name": "Vonage",
"type": "n8n-nodes-base.vonage",
"position": [
930,
120
],
"parameters": {
"message": "=Alert!\nThe value of temp is {{$node[\"RabbitMQ\"].json[\"temp\"]}}.",
"additionalFields": {}
},
"credentials": {
"vonageApi": "vonage"
},
"typeVersion": 1
},
{
"name": "NoOp",
"type": "n8n-nodes-base.noOp",
"position": [
920,
370
],
"parameters": {},
"typeVersion": 1
}
],
"active": false,
"settings": {},
"connections": {
"IF": {
"main": [
[
{
"node": "Vonage",
"type": "main",
"index": 0
}
],
[
{
"node": "NoOp",
"type": "main",
"index": 0
}
]
]
},
"RabbitMQ": {
"main": [
[
{
"node": "IF",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@@ -0,0 +1,344 @@
{
"meta": {
"instanceId": "408f9fb9940c3cb18ffdef0e0150fe342d6e655c3a9fac21f0f644e8bedabcd9",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "12786b19-159f-45b0-8d15-d88de73c17e9",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1540,
660
],
"parameters": {
"width": 483,
"height": 345,
"content": "### Slack POSTs to Webhook on every message so we need to filter-out bot messages"
},
"typeVersion": 1
},
{
"id": "3949be41-98b7-4414-84fd-819f4fccca35",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-400,
1080
],
"parameters": {
"width": 293,
"height": 228,
"content": "### Tools which Agent can use to accomplish the task\n"
},
"typeVersion": 1
},
{
"id": "76ce81d8-33e2-470a-9313-dd888acabed0",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-720,
1080
],
"parameters": {
"width": 288,
"height": 233,
"content": "### Conversation history is stored in memory using channel id as key"
},
"typeVersion": 1
},
{
"id": "3682ffd3-7002-466a-bedf-9897067586c0",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1000,
1080
],
"parameters": {
"width": 260,
"height": 233,
"content": "### The chat LM to process the prompt"
},
"typeVersion": 1
},
{
"id": "92865916-e814-49d4-baaa-4122c1447c23",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-280,
640
],
"parameters": {
"width": 280,
"height": 243,
"content": "### Send agent's output as Slack message\n"
},
"typeVersion": 1
},
{
"id": "edeab2bb-8177-42c7-bcf4-f8d99e193729",
"name": "AI Agent",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
-820,
740
],
"parameters": {
"text": "={{ $json.body.event.text }}",
"options": {
"systemMessage": "You are Gilfoyle from Silicon Valley TV show. Amplify your bluntness and cynicism, tolerating zero incompetence. Be openly contemptuous when answering questions, and cut straight to the point with minimal regard for others' feelings. Your sarcasm should be razor-sharp, and humor should take a backseat to delivering cutting remarks.\\nDo your best to answer the questions. Feel free to use any tools available to look up relevant information, only if necessary. "
},
"promptType": "define"
},
"typeVersion": 1.8
},
{
"id": "275f8192-6da6-41b0-b892-c779f5d136e4",
"name": "OpenAI Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
-920,
1180
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "8gccIjcuf3gvaoEr",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "776ce632-5c62-4ac6-a494-e23ef650ac48",
"name": "Simple Memory",
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"position": [
-620,
1180
],
"parameters": {
"sessionKey": "={{ $('Webhook').first().json.body.event.channel }}__gilfoyle",
"sessionIdType": "customKey",
"contextWindowLength": 30
},
"typeVersion": 1.3
},
{
"id": "97989831-3fc6-4954-ac55-8e0950081b7a",
"name": "Is user message?",
"type": "n8n-nodes-base.if",
"position": [
-1480,
740
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "1def7344-ce55-450d-a85a-468f746fe31f",
"operator": {
"type": "string",
"operation": "notExists",
"singleValue": true
},
"leftValue": "={{ $json.body.event.bot_id }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "afa6b192-1e25-46b6-8fdc-81dff9a37e74",
"name": "No Operation, do nothing",
"type": "n8n-nodes-base.noOp",
"position": [
-1280,
820
],
"parameters": {},
"typeVersion": 1
},
{
"id": "eab68a99-cdd6-4ea1-8d6f-053c2a96303c",
"name": "SerpAPI",
"type": "@n8n/n8n-nodes-langchain.toolSerpApi",
"position": [
-360,
1180
],
"parameters": {
"options": {}
},
"credentials": {
"serpApi": {
"id": "aJCKjxx6U3K7ydDe",
"name": "SerpAPI account"
}
},
"typeVersion": 1
},
{
"id": "717117f5-5f34-4189-b92a-df2155e367ac",
"name": "Wikipedia",
"type": "@n8n/n8n-nodes-langchain.toolWikipedia",
"position": [
-220,
1180
],
"parameters": {},
"typeVersion": 1
},
{
"id": "1914f623-66c0-4547-bf3e-b4932d0c2a9b",
"name": "Slack",
"type": "n8n-nodes-base.slack",
"position": [
-200,
720
],
"webhookId": "e0f8b8ad-7126-487c-88e2-b624dfd16678",
"parameters": {
"text": "={{ $json.output }}",
"user": {
"__rl": true,
"mode": "id",
"value": "={{ $('Webhook').first().json.body.event.user }}"
},
"select": "user",
"otherOptions": {}
},
"credentials": {
"slackApi": {
"id": "VfK3js0YdqBdQLGP",
"name": "Slack account"
}
},
"typeVersion": 2.3
},
{
"id": "4a7ec607-1706-4357-aa89-4c44faa98fb8",
"name": "Webhook",
"type": "n8n-nodes-base.webhook",
"position": [
-1780,
740
],
"webhookId": "db3bf3da-b9b7-4823-8c5d-14f5de0272da",
"parameters": {
"path": "slack-gilfoyle",
"options": {},
"httpMethod": "POST"
},
"typeVersion": 2
}
],
"pinData": {},
"connections": {
"SerpAPI": {
"ai_tool": [
[
{
"node": "AI Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"Webhook": {
"main": [
[
{
"node": "Is user message?",
"type": "main",
"index": 0
}
]
]
},
"AI Agent": {
"main": [
[
{
"node": "Slack",
"type": "main",
"index": 0
}
]
]
},
"Wikipedia": {
"ai_tool": [
[
{
"node": "AI Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"Simple Memory": {
"ai_memory": [
[
{
"node": "AI Agent",
"type": "ai_memory",
"index": 0
}
]
]
},
"Is user message?": {
"main": [
[
{
"node": "AI Agent",
"type": "main",
"index": 0
}
],
[
{
"node": "No Operation, do nothing",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "AI Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
}
}
}

View File

@@ -0,0 +1,360 @@
{
"nodes": [
{
"id": "79c06432-9d3f-4a93-b613-24bdaedfb71d",
"name": "Could not find user",
"type": "n8n-nodes-base.noOp",
"position": [
1940,
640
],
"parameters": {},
"typeVersion": 1
},
{
"id": "07d23ef6-8c93-40de-9e95-ea3d56811fa0",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
540,
200
],
"parameters": {
"width": 330.0463186838765,
"height": 609.3353028064989,
"content": "## On User created in HubSpot\n\n1. Setup Oauth2 creds using n8n docs\nhttps://docs.n8n.io/integrations/builtin/trigger-nodes/n8n-nodes-base.hubspottrigger\n\n### Be careful with scopes. Scopes must be exactly as defined in the docs"
},
"typeVersion": 1
},
{
"id": "bad1ea1c-9b03-4419-ac37-272b5740a7c4",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
1660,
200
],
"parameters": {
"color": 3,
"width": 343.28654189681333,
"height": 609.3353028064989,
"content": "## Enrich with data from ExactBuyer\n\n1. Add api key from Exact buyer\n2. Use email as identifier to match user\n\nUse API Guide here https://docs.exactbuyer.com/contact-enrichment/enrichment"
},
"typeVersion": 1
},
{
"id": "d24ae8e3-c5fe-4cde-bade-66f60cda943d",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
940,
240
],
"parameters": {
"color": 6,
"width": 352.21705571104906,
"height": 499.9091886469748,
"content": "## Get user in Hubspot\n\n1. Setup Oauth2 creds using n8n docs\nhttps://docs.n8n.io/integrations/builtin/trigger-nodes/n8n-nodes-base.hubspottrigger/\n\n### Be careful with scopes. Scopes must be exactly as defined in the docs\n### Will need to be a different cred from the trigger one"
},
"typeVersion": 1
},
{
"id": "5e0775c9-178a-460e-a478-b9a69aaf80cd",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
820,
-320
],
"parameters": {
"color": 4,
"width": 629.6175493462406,
"height": 473.03355645575084,
"content": "# Enrich new Hubspot contacts with contact and company data from ExactBuyer\n\n## This workflow aims to enrich new contacts in HubSpot. The more relevant the HubSpot profile, the more useful it is. Once active, this n8n workflow will update the social profiles, contact data (phone, email) as well as location data from ExactBuyer.\n"
},
"typeVersion": 1
},
{
"id": "73f7c19a-8145-4ad3-bbf0-0a4a0d70be33",
"name": "Enrich user from ExactBuyer",
"type": "n8n-nodes-base.httpRequest",
"onError": "continueErrorOutput",
"position": [
1740,
480
],
"parameters": {
"url": "https://api.exactbuyer.com/v1/enrich",
"options": {
"redirect": {
"redirect": {}
}
},
"sendQuery": true,
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"queryParameters": {
"parameters": [
{
"name": "email",
"value": "={{ $json.email }}"
},
{
"name": "required",
"value": "work_email,personal_email,email"
}
]
}
},
"credentials": {
"httpHeaderAuth": {
"id": "kyMNOdXZX3ugPihF",
"name": "ExactBuyer Api key"
}
},
"typeVersion": 4.1
},
{
"id": "7a0c2b14-0f22-475f-84c2-49ff1c1a1fad",
"name": "Set keys",
"type": "n8n-nodes-base.set",
"position": [
1320,
500
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "211cd22a-a55c-4018-8ba6-3272097d502c",
"name": "user_id",
"type": "string",
"value": "={{ $json.vid }}"
},
{
"id": "f3c7d0b9-717c-437b-ab45-1f35c194d412",
"name": "email",
"type": "string",
"value": "={{ $json.properties.email?.value }}"
}
]
}
},
"typeVersion": 3.3
},
{
"id": "4da6204d-2717-41fb-8f79-3bb094db9e71",
"name": "if found email",
"type": "n8n-nodes-base.if",
"position": [
1480,
500
],
"parameters": {
"options": {},
"conditions": {
"options": {
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "dbd1042e-dfe7-40ff-84ca-c3d289decb78",
"operator": {
"type": "string",
"operation": "notEmpty",
"singleValue": true
},
"leftValue": "={{ $json.email }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2
},
{
"id": "24ef009a-c05c-4ca3-afd5-ef44b2349cfb",
"name": "Update contact from Hubspot",
"type": "n8n-nodes-base.hubspot",
"position": [
2200,
460
],
"parameters": {
"email": "={{ $('Set keys').item.json.email }}",
"options": {},
"authentication": "oAuth2",
"additionalFields": {
"gender": "={{ $json.result.gender }}",
"school": "={{ $json.result.education?.[0]?.school?.name }}",
"country": "={{ $json.result.location?.country }}",
"jobTitle": "={{ $json.result.employment?.job?.title }}",
"lastName": "={{ $json.result.last_name }}",
"firstName": "={{ $json.result.first_name }}",
"companyName": "={{ $json.result.employment?.name }}",
"companySize": "={{ $json.result.employment.size }}",
"phoneNumber": "={{ $json.result.phone_numbers?.[0]?.E164 }}"
}
},
"credentials": {
"hubspotOAuth2Api": {
"id": "Gxwfj6z9NwaEC3P5",
"name": "HubSpot account 3"
}
},
"typeVersion": 2
},
{
"id": "1adda76c-39cb-43e7-a1dd-301dfd530c77",
"name": "Get HubSpot contact",
"type": "n8n-nodes-base.hubspot",
"position": [
1060,
500
],
"parameters": {
"contactId": {
"__rl": true,
"mode": "id",
"value": "={{ $json.contactId }}"
},
"operation": "get",
"authentication": "oAuth2",
"additionalFields": {}
},
"credentials": {
"hubspotOAuth2Api": {
"id": "Gxwfj6z9NwaEC3P5",
"name": "HubSpot account 3"
}
},
"typeVersion": 2
},
{
"id": "7aa3b2bc-f564-4160-adb6-e0d977993540",
"name": "On contact created",
"type": "n8n-nodes-base.hubspotTrigger",
"position": [
740,
500
],
"webhookId": "0c93331f-6d07-4cfe-b9b7-8a724c6c8c28",
"parameters": {
"eventsUi": {
"eventValues": [
{}
]
},
"additionalFields": {}
},
"credentials": {
"hubspotDeveloperApi": {
"id": "5VJ26ST8DdVyAfEZ",
"name": "HubSpot Developer account 3"
}
},
"typeVersion": 1
},
{
"id": "e8b386bf-0a86-44a0-82e6-1189bc3c5619",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
2120,
260
],
"parameters": {
"color": 6,
"width": 352.21705571104906,
"height": 499.9091886469748,
"content": "## Update user in Hubspot\n\n### Same cred as in getting the contact in Hubspot"
},
"typeVersion": 1
}
],
"pinData": {
"On contact created": [
{
"appId": 2930857,
"eventId": 812433913,
"portalId": 25023349,
"sourceId": "2931120",
"contactId": 251,
"changeFlag": "CREATED",
"occurredAt": 1708530793161,
"changeSource": "INTEGRATION",
"attemptNumber": 0,
"subscriptionId": 2538662,
"subscriptionType": "contact.creation"
}
]
},
"connections": {
"Set keys": {
"main": [
[
{
"node": "if found email",
"type": "main",
"index": 0
}
]
]
},
"if found email": {
"main": [
[
{
"node": "Enrich user from ExactBuyer",
"type": "main",
"index": 0
}
]
]
},
"On contact created": {
"main": [
[
{
"node": "Get HubSpot contact",
"type": "main",
"index": 0
}
]
]
},
"Get HubSpot contact": {
"main": [
[
{
"node": "Set keys",
"type": "main",
"index": 0
}
]
]
},
"Enrich user from ExactBuyer": {
"main": [
[
{
"node": "Update contact from Hubspot",
"type": "main",
"index": 0
}
],
[
{
"node": "Could not find user",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@@ -0,0 +1,211 @@
{
"id": "247",
"name": "Congratulations Workflow",
"nodes": [
{
"name": "Daily Trigger",
"type": "n8n-nodes-base.cron",
"position": [
200,
400
],
"parameters": {
"triggerTimes": {
"item": [
{
"hour": 8
}
]
}
},
"typeVersion": 1
},
{
"name": "Congratulations Calendar",
"type": "n8n-nodes-base.googleSheets",
"position": [
400,
400
],
"parameters": {
"range": "A:E",
"options": {
"valueRenderMode": "FORMATTED_VALUE"
},
"sheetId": "",
"authentication": "oAuth2"
},
"credentials": {
"googleSheetsOAuth2Api": ""
},
"typeVersion": 1
},
{
"name": "Any Event Today?",
"type": "n8n-nodes-base.if",
"position": [
600,
400
],
"parameters": {
"conditions": {
"string": [
{
"value1": "={{$node[\"Congratulations Calendar\"].json[\"Date\"]}}",
"value2": "={{(new Date).getDate()}}/{{(new Date).getMonth()+1}}"
}
]
}
},
"typeVersion": 1
},
{
"name": "Do Nothing",
"type": "n8n-nodes-base.noOp",
"position": [
800,
550
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Congratulations Messages",
"type": "n8n-nodes-base.googleSheets",
"position": [
1000,
550
],
"parameters": {
"range": "Congratulations Messages!A:B",
"options": {},
"sheetId": "",
"authentication": "oAuth2"
},
"credentials": {
"googleSheetsOAuth2Api": ""
},
"typeVersion": 1
},
{
"name": "Merge Data",
"type": "n8n-nodes-base.merge",
"position": [
1200,
400
],
"parameters": {
"mode": "mergeByKey",
"propertyName1": "Event Name",
"propertyName2": "Event Name"
},
"typeVersion": 1
},
{
"name": "Personalize Message",
"type": "n8n-nodes-base.function",
"position": [
1400,
400
],
"parameters": {
"functionCode": "const newItems = [];\n\nfor (let i=0;i<items.length;i++) {\n wishes_array = items[i].json.Congratulations.split(',');\n greeting = wishes_array.shift();\n \n new_wish = greeting + ' ' + items[i].json['First Name'] + ',' + wishes_array.join(',');\n newItems.push({json: {Wishes: new_wish, \"Phone Number\": items[i].json['Phone Number']}});\n}\n\nreturn newItems;"
},
"typeVersion": 1
},
{
"name": "Send SMS",
"type": "n8n-nodes-base.twilio",
"position": [
1600,
400
],
"parameters": {
"to": "={{$node[\"Personalize Message\"].json[\"Phone Number\"]}}",
"from": "",
"message": "={{$node[\"Personalize Message\"].json[\"Wishes\"]}}"
},
"credentials": {
"twilioApi": "Twilio Programmable SMS"
},
"typeVersion": 1
}
],
"active": true,
"settings": {},
"connections": {
"Merge Data": {
"main": [
[
{
"node": "Personalize Message",
"type": "main",
"index": 0
}
]
]
},
"Daily Trigger": {
"main": [
[
{
"node": "Congratulations Calendar",
"type": "main",
"index": 0
}
]
]
},
"Any Event Today?": {
"main": [
[
{
"node": "Merge Data",
"type": "main",
"index": 0
}
],
[
{
"node": "Do Nothing",
"type": "main",
"index": 0
}
]
]
},
"Personalize Message": {
"main": [
[
{
"node": "Send SMS",
"type": "main",
"index": 0
}
]
]
},
"Congratulations Calendar": {
"main": [
[
{
"node": "Any Event Today?",
"type": "main",
"index": 0
}
]
]
},
"Congratulations Messages": {
"main": [
[
{
"node": "Merge Data",
"type": "main",
"index": 1
}
]
]
}
}
}

View File

@@ -0,0 +1,185 @@
{
"id": 2,
"name": "RSS to Telegram",
"nodes": [
{
"name": "Telegram",
"type": "n8n-nodes-base.telegram",
"position": [
440,
30
],
"parameters": {
"text": "=💹 #日幣匯率 {{$json[\"title\"]}}\n\n{{$json[\"link\"]}}",
"chatId": "",
"additionalFields": {}
},
"credentials": {
"telegramApi": ""
},
"typeVersion": 1
},
{
"name": "RSS Feed Read",
"type": "n8n-nodes-base.rssFeedRead",
"position": [
-359.5,
130
],
"parameters": {
"url": ""
},
"typeVersion": 1
},
{
"name": "Latest Read",
"type": "n8n-nodes-base.function",
"position": [
-160,
130
],
"parameters": {
"functionCode": "const staticData = this.getWorkflowStaticData('global');\n\nlatestRead = staticData.latestRead;\n\nfor (let item of items) {\n item.json.latestRead = latestRead || '2021-06-01';\n}\n\nreturn items;"
},
"typeVersion": 1
},
{
"name": "IF",
"type": "n8n-nodes-base.if",
"position": [
40,
130
],
"parameters": {
"conditions": {
"number": [
{
"value1": "={{new Date($node[\"Latest Read\"].data[\"latestRead\"]).getTime()}}",
"value2": "={{new Date($node[\"RSS Feed Read\"].data[\"isoDate\"]).getTime()}}"
}
],
"string": [
{
"value1": "={{$json[\"title\"]}}",
"value2": "",
"operation": "contains"
}
],
"boolean": []
}
},
"typeVersion": 1
},
{
"name": "Write Latest Read",
"type": "n8n-nodes-base.function",
"position": [
240,
30
],
"parameters": {
"functionCode": "const staticData = this.getWorkflowStaticData('global');\n\nif (items.length > 0) {\n staticData.latestRead = items[0].json.isoDate || staticData.latestRead;\n}\n\n\nreturn items;"
},
"typeVersion": 1
},
{
"name": "NoOp",
"type": "n8n-nodes-base.noOp",
"position": [
230,
270
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Cron",
"type": "n8n-nodes-base.cron",
"position": [
-560,
130
],
"parameters": {
"triggerTimes": {
"item": [
{
"mode": "everyX",
"value": 1
}
]
}
},
"typeVersion": 1
}
],
"active": true,
"settings": {
"timezone": "Asia/Taipei",
"errorWorkflow": "3",
"saveExecutionProgress": "DEFAULT"
},
"connections": {
"IF": {
"main": [
[
{
"node": "Write Latest Read",
"type": "main",
"index": 0
}
],
[
{
"node": "NoOp",
"type": "main",
"index": 0
}
]
]
},
"Cron": {
"main": [
[
{
"node": "RSS Feed Read",
"type": "main",
"index": 0
}
]
]
},
"Latest Read": {
"main": [
[
{
"node": "IF",
"type": "main",
"index": 0
}
]
]
},
"RSS Feed Read": {
"main": [
[
{
"node": "Latest Read",
"type": "main",
"index": 0
}
]
]
},
"Write Latest Read": {
"main": [
[
{
"node": "Telegram",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@@ -0,0 +1,179 @@
{
"id": "331",
"name": "Check To Do on Notion and send message on Slack",
"nodes": [
{
"name": "Cron",
"type": "n8n-nodes-base.cron",
"position": [
470,
320
],
"parameters": {
"triggerTimes": {
"item": [
{
"hour": 8
}
]
}
},
"typeVersion": 1
},
{
"name": "NoOp",
"type": "n8n-nodes-base.noOp",
"position": [
1120,
420
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Get To Dos",
"type": "n8n-nodes-base.notion",
"position": [
670,
320
],
"parameters": {
"blockId": "bafdscf",
"resource": "block",
"operation": "getAll",
"returnAll": true
},
"credentials": {
"notionApi": ""
},
"typeVersion": 1
},
{
"name": "If task assigned to Harshil?",
"type": "n8n-nodes-base.if",
"notes": "Check if the task is incomplete",
"position": [
870,
320
],
"parameters": {
"conditions": {
"string": [
{
"value1": "={{$json[\"to_do\"][\"text\"][1][\"mention\"][\"user\"][\"name\"]}}",
"value2": "NAME"
}
],
"boolean": [
{
"value1": "={{$json[\"to_do\"][\"checked\"]}}"
}
]
}
},
"notesInFlow": true,
"typeVersion": 1
},
{
"name": "Create a Direct Message",
"type": "n8n-nodes-base.slack",
"position": [
1120,
220
],
"parameters": {
"options": {
"users": [
"U01JXLAJ6SE"
]
},
"resource": "channel",
"operation": "open"
},
"credentials": {
"slackApi": ""
},
"executeOnce": false,
"typeVersion": 1
},
{
"name": "Send a Direct Message",
"type": "n8n-nodes-base.slack",
"position": [
1320,
220
],
"parameters": {
"text": "# TO DO",
"channel": "={{$json[\"id\"]}}",
"attachments": [
{
"title": "=☑️ {{$node[\"If task assigned to Harshil?\"].json[\"to_do\"][\"text\"][0][\"text\"][\"content\"]}}"
}
],
"otherOptions": {
"mrkdwn": true
}
},
"credentials": {
"slackApi": ""
},
"typeVersion": 1
}
],
"active": true,
"settings": {},
"connections": {
"Cron": {
"main": [
[
{
"node": "Get To Dos",
"type": "main",
"index": 0
}
]
]
},
"Get To Dos": {
"main": [
[
{
"node": "If task assigned to Harshil?",
"type": "main",
"index": 0
}
]
]
},
"Create a Direct Message": {
"main": [
[
{
"node": "Send a Direct Message",
"type": "main",
"index": 0
}
]
]
},
"If task assigned to Harshil?": {
"main": [
[
{
"node": "Create a Direct Message",
"type": "main",
"index": 0
}
],
[
{
"node": "NoOp",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@@ -0,0 +1,306 @@
{
"id": "39KuujB1fbOvx8Al",
"meta": {
"instanceId": "0a5638e14e0c728ef975d18d109cfb41edae575e3d911724f4f1eccde06a729f"
},
"name": "OpenAI e-mail classification - application",
"tags": [],
"nodes": [
{
"id": "6156844f-d1ba-413d-9ab2-02148bef5bf0",
"name": "Email trigger",
"type": "n8n-nodes-base.emailReadImap",
"position": [
-440,
120
],
"parameters": {
"format": "resolved",
"options": {},
"postProcessAction": "nothing",
"dataPropertyAttachmentsPrefixName": "attachment"
},
"credentials": {
"imap": {
"id": "il5dS1iQxJvOMWbE",
"name": "IMAP account"
}
},
"typeVersion": 2
},
{
"id": "1aedaa56-d988-469b-86b9-61d50e707950",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
0,
0
],
"parameters": {
"height": 200,
"content": "### Change or add any category you want\nEach category can be assigned it's own specific workflow"
},
"typeVersion": 1
},
{
"id": "d41ba844-2b99-42bb-80df-cff1b97dcbb9",
"name": "Classify email",
"type": "@n8n/n8n-nodes-langchain.textClassifier",
"position": [
0,
120
],
"parameters": {
"options": {},
"inputText": "={{ $('Email trigger').first().json.text }}\n\nattachment:\n{{ $('Extract data from attachment').first().json.text }}\n",
"categories": {
"categories": [
{
"category": "job_application",
"description": "for job applications"
},
{
"category": "inbound_lead",
"description": "for sales inquiries or requests for more information about our products/services"
},
{
"category": "invoice",
"description": "for invoices"
},
{
"category": "other",
"description": "for all other sorts of emails"
}
]
}
},
"typeVersion": 1
},
{
"id": "b63a864f-f968-4e7e-9da4-d704f3ffa022",
"name": "Extract variables - email & attachment",
"type": "@n8n/n8n-nodes-langchain.informationExtractor",
"position": [
440,
20
],
"parameters": {
"text": "={{ $('Email trigger').first().json.text }}\n\nResume:\n{{ $('Extract data from attachment').first().json.text }}\n",
"options": {},
"attributes": {
"attributes": [
{
"name": "first_name",
"description": "first name of the applicant"
},
{
"name": "last_name",
"description": "last name of the applicant"
},
{
"name": "age",
"description": "age of the applicant"
},
{
"name": "residence",
"description": "residence of the applicant"
},
{
"name": "study",
"description": "relevant completed study of the applicant"
},
{
"name": "work_experience",
"description": "relevant work experience of the applicant"
},
{
"name": "personal_character",
"description": "personal characteristics of the applicant"
}
]
}
},
"typeVersion": 1
},
{
"id": "398b9240-0d9c-416e-af3b-31ba9e1ac9b2",
"name": "Extract data from attachment",
"type": "n8n-nodes-base.extractFromFile",
"onError": "continueRegularOutput",
"position": [
-220,
120
],
"parameters": {
"options": {},
"operation": "pdf",
"binaryPropertyName": "attachment0"
},
"typeVersion": 1,
"alwaysOutputData": false
},
{
"id": "9f949aac-1681-4f04-983e-8bd5c949987a",
"name": "OpenAI Chat Model 2",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
660,
200
],
"parameters": {
"model": "gpt-4o",
"options": {}
},
"credentials": {
"openAiApi": {
"id": "by5xbXU1Yz36JahE",
"name": "OpenAi account"
}
},
"typeVersion": 1
},
{
"id": "c7a61afe-d68d-407e-8653-46cb123877e9",
"name": "OpenAI Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
100,
320
],
"parameters": {
"model": "gpt-4o",
"options": {}
},
"credentials": {
"openAiApi": {
"id": "by5xbXU1Yz36JahE",
"name": "OpenAi account"
}
},
"typeVersion": 1
},
{
"id": "5a22e81b-8b60-443e-985b-47d493724389",
"name": "Workflow 2",
"type": "n8n-nodes-base.noOp",
"position": [
440,
180
],
"parameters": {},
"typeVersion": 1
},
{
"id": "808e4f35-604e-4354-ab8b-3ba68940016b",
"name": "Workflow 3",
"type": "n8n-nodes-base.noOp",
"position": [
600,
360
],
"parameters": {},
"typeVersion": 1
},
{
"id": "d793675d-c68d-4f73-a99d-6451be5bea30",
"name": "workflow 4",
"type": "n8n-nodes-base.noOp",
"position": [
440,
360
],
"parameters": {},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"errorWorkflow": "rkMQmtrfcSF3XpMF",
"executionOrder": "v1"
},
"versionId": "28448ab7-6d45-41df-9de3-aad0e187edc5",
"connections": {
"Email trigger": {
"main": [
[
{
"node": "Extract data from attachment",
"type": "main",
"index": 0
}
]
]
},
"Classify email": {
"main": [
[
{
"node": "Extract variables - email & attachment",
"type": "main",
"index": 0
}
],
[
{
"node": "Workflow 2",
"type": "main",
"index": 0
}
],
[
{
"node": "Workflow 3",
"type": "main",
"index": 0
}
],
[
{
"node": "workflow 4",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "Classify email",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"OpenAI Chat Model 2": {
"ai_languageModel": [
[
{
"node": "Extract variables - email & attachment",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Extract data from attachment": {
"main": [
[
{
"node": "Classify email",
"type": "main",
"index": 0
}
]
]
},
"Extract variables - email & attachment": {
"main": [
[]
]
}
}
}

View File

@@ -0,0 +1,177 @@
{
"id": "65",
"name": "Get Product Feedback",
"nodes": [
{
"name": "Typeform Trigger",
"type": "n8n-nodes-base.typeformTrigger",
"position": [
170,
260
],
"webhookId": "0cf82c15-eeb8-4b24-bd67-5f4b54a58b6d",
"parameters": {
"formId": ""
},
"credentials": {
"typeformApi": "typeform-harshil"
},
"typeVersion": 1
},
{
"name": "Set",
"type": "n8n-nodes-base.set",
"position": [
370,
260
],
"parameters": {
"values": {
"number": [
{
"name": "Score",
"value": "={{$node[\"Typeform Trigger\"].json[\"What score would you like to give?\"]}}"
}
],
"string": [
{
"name": "Name",
"value": "={{$node[\"Typeform Trigger\"].json[\"What is your name?\"]}}"
},
{
"name": "Email",
"value": "={{$node[\"Typeform Trigger\"].json[\"What is your email address?\"]}}"
},
{
"name": "Description",
"value": "={{$node[\"Typeform Trigger\"].json[\"Anything else you want to share?\"]}}"
}
]
},
"options": {},
"keepOnlySet": true
},
"typeVersion": 1
},
{
"name": "Airtable",
"type": "n8n-nodes-base.airtable",
"position": [
570,
260
],
"parameters": {
"table": "Feedback",
"options": {},
"operation": "append",
"application": ""
},
"credentials": {
"airtableApi": "airtable-harshil"
},
"typeVersion": 1
},
{
"name": "IF",
"type": "n8n-nodes-base.if",
"position": [
770,
260
],
"parameters": {
"conditions": {
"number": [
{
"value1": "={{$node[\"Set\"].json[\"Score\"]}}",
"value2": 7
}
]
}
},
"typeVersion": 1
},
{
"name": "Trello",
"type": "n8n-nodes-base.trello",
"position": [
970,
160
],
"parameters": {
"name": "=[{{$node[\"IF\"].json[\"fields\"][\"Score\"]}}] {{$node[\"IF\"].json[\"fields\"][\"Name\"]}}",
"listId": "5fbb9e2eb1d5cc0a8a7ab8ac",
"description": "=Name: {{$node[\"IF\"].json[\"fields\"][\"Name\"]}}\nEmail: {{$node[\"IF\"].json[\"fields\"][\"Email\"]}}\nScore: {{$node[\"IF\"].json[\"fields\"][\"Score\"]}}\nDescription: {{$node[\"IF\"].json[\"fields\"][\"Description\"]}}",
"additionalFields": {}
},
"credentials": {
"trelloApi": "Trello Credentials"
},
"typeVersion": 1
},
{
"name": "NoOp",
"type": "n8n-nodes-base.noOp",
"position": [
970,
360
],
"parameters": {},
"typeVersion": 1
}
],
"active": false,
"settings": {},
"connections": {
"IF": {
"main": [
[
{
"node": "Trello",
"type": "main",
"index": 0
}
],
[
{
"node": "NoOp",
"type": "main",
"index": 0
}
]
]
},
"Set": {
"main": [
[
{
"node": "Airtable",
"type": "main",
"index": 0
}
]
]
},
"Airtable": {
"main": [
[
{
"node": "IF",
"type": "main",
"index": 0
}
]
]
},
"Typeform Trigger": {
"main": [
[
{
"node": "Set",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@@ -0,0 +1,134 @@
{
"id": "79",
"name": "Get the price of BTC in EUR and send an SMS when the price is larger than EUR 9000",
"nodes": [
{
"name": "Cron",
"type": "n8n-nodes-base.cron",
"position": [
590,
500
],
"parameters": {
"triggerTimes": {
"item": [
{
"mode": "everyMinute"
}
]
}
},
"typeVersion": 1
},
{
"name": "CoinGecko",
"type": "n8n-nodes-base.coinGecko",
"position": [
790,
500
],
"parameters": {
"coinIds": [
"bitcoin"
],
"options": {},
"operation": "price",
"currencies": [
"eur"
]
},
"typeVersion": 1
},
{
"name": "IF",
"type": "n8n-nodes-base.if",
"position": [
990,
500
],
"parameters": {
"conditions": {
"number": [
{
"value1": "={{$node[\"CoinGecko\"].json[\"bitcoin\"][\"eur\"]}}",
"value2": 9000,
"operation": "largerEqual"
}
]
}
},
"typeVersion": 1
},
{
"name": "Twilio",
"type": "n8n-nodes-base.twilio",
"position": [
1190,
400
],
"parameters": {
"to": "1234",
"from": "1234",
"message": "=The price went up! The new price is {{$node[\"CoinGecko\"].json[\"bitcoin\"][\"eur\"]}}"
},
"credentials": {
"twilioApi": "twilio-credentials"
},
"typeVersion": 1
},
{
"name": "NoOp",
"type": "n8n-nodes-base.noOp",
"position": [
1190,
600
],
"parameters": {},
"typeVersion": 1
}
],
"active": false,
"settings": {},
"connections": {
"IF": {
"main": [
[
{
"node": "Twilio",
"type": "main",
"index": 0
}
],
[
{
"node": "NoOp",
"type": "main",
"index": 0
}
]
]
},
"Cron": {
"main": [
[
{
"node": "CoinGecko",
"type": "main",
"index": 0
}
]
]
},
"CoinGecko": {
"main": [
[
{
"node": "IF",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@@ -0,0 +1,131 @@
{
"id": "81",
"name": "Execute a command that gives the hard disk memory used on the host machine",
"nodes": [
{
"name": "Execute Command",
"type": "n8n-nodes-base.executeCommand",
"position": [
670,
300
],
"parameters": {
"command": "df -k / | tail -1 | awk '{print $5}'"
},
"typeVersion": 1
},
{
"name": "Cron",
"type": "n8n-nodes-base.cron",
"position": [
470,
300
],
"parameters": {
"triggerTimes": {
"item": [
{
"hour": 9
},
{
"hour": 16
}
]
}
},
"typeVersion": 1
},
{
"name": "IF",
"type": "n8n-nodes-base.if",
"position": [
870,
300
],
"parameters": {
"conditions": {
"number": [
{
"value1": "={{parseInt($node[\"Execute Command\"].json[\"stdout\"])}}",
"value2": 80,
"operation": "larger"
}
],
"string": []
}
},
"typeVersion": 1
},
{
"name": "Twilio",
"type": "n8n-nodes-base.twilio",
"position": [
1070,
200
],
"parameters": {
"to": "+12345",
"from": "+123",
"message": "=Your hard disk space is filling up fast! Your hard disk is {{$node[\"Execute Command\"].json[\"stdout\"]}} full."
},
"credentials": {
"twilioApi": "twilio-credentials"
},
"typeVersion": 1
},
{
"name": "NoOp",
"type": "n8n-nodes-base.noOp",
"position": [
1070,
400
],
"parameters": {},
"typeVersion": 1
}
],
"active": false,
"settings": {},
"connections": {
"IF": {
"main": [
[
{
"node": "Twilio",
"type": "main",
"index": 0
}
],
[
{
"node": "NoOp",
"type": "main",
"index": 0
}
]
]
},
"Cron": {
"main": [
[
{
"node": "Execute Command",
"type": "main",
"index": 0
}
]
]
},
"Execute Command": {
"main": [
[
{
"node": "IF",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@@ -0,0 +1,292 @@
{
"id": "HMoUOg8J7RzEcslH",
"meta": {
"instanceId": "3f91626b10fcfa8a3d3ab8655534ff3e94151838fd2709ecd2dcb14afb3d061a",
"templateCredsSetupCompleted": true
},
"name": "Extract personal data with a self-hosted LLM Mistral NeMo",
"tags": [],
"nodes": [
{
"id": "7e67ae65-88aa-4e48-aa63-2d3a4208cf4b",
"name": "When chat message received",
"type": "@n8n/n8n-nodes-langchain.chatTrigger",
"position": [
-500,
20
],
"webhookId": "3a7b0ea1-47f3-4a94-8ff2-f5e1f3d9dc32",
"parameters": {
"options": {}
},
"typeVersion": 1.1
},
{
"id": "e064921c-69e6-4cfe-a86e-4e3aa3a5314a",
"name": "Ollama Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOllama",
"position": [
-280,
420
],
"parameters": {
"model": "mistral-nemo:latest",
"options": {
"useMLock": true,
"keepAlive": "2h",
"temperature": 0.1
}
},
"credentials": {
"ollamaApi": {
"id": "vgKP7LGys9TXZ0KK",
"name": "Ollama account"
}
},
"typeVersion": 1
},
{
"id": "fe1379da-a12e-4051-af91-9d67a7c9a76b",
"name": "Auto-fixing Output Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserAutofixing",
"position": [
-200,
220
],
"parameters": {
"options": {
"prompt": "Instructions:\n--------------\n{instructions}\n--------------\nCompletion:\n--------------\n{completion}\n--------------\n\nAbove, the Completion did not satisfy the constraints given in the Instructions.\nError:\n--------------\n{error}\n--------------\n\nPlease try again. Please only respond with an answer that satisfies the constraints laid out in the Instructions:"
}
},
"typeVersion": 1
},
{
"id": "b6633b00-6ebb-43ca-8e5c-664a53548c17",
"name": "Structured Output Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
60,
400
],
"parameters": {
"schemaType": "manual",
"inputSchema": "{\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of the user\"\n },\n \"surname\": {\n \"type\": \"string\",\n \"description\": \"Surname of the user\"\n },\n \"commtype\": {\n \"type\": \"string\",\n \"enum\": [\"email\", \"phone\", \"other\"],\n \"description\": \"Method of communication\"\n },\n \"contacts\": {\n \"type\": \"string\",\n \"description\": \"Contact details. ONLY IF PROVIDED\"\n },\n \"timestamp\": {\n \"type\": \"string\",\n \"format\": \"date-time\",\n \"description\": \"When the communication occurred\"\n },\n \"subject\": {\n \"type\": \"string\",\n \"description\": \"Brief description of the communication topic\"\n }\n },\n \"required\": [\"name\", \"commtype\"]\n}"
},
"typeVersion": 1.2
},
{
"id": "23681a6c-cf62-48cb-86ee-08d5ce39bc0a",
"name": "Basic LLM Chain",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"onError": "continueErrorOutput",
"position": [
-240,
20
],
"parameters": {
"messages": {
"messageValues": [
{
"message": "=Please analyse the incoming user request. Extract information according to the JSON schema. Today is: \"{{ $now.toISO() }}\""
}
]
},
"hasOutputParser": true
},
"typeVersion": 1.5
},
{
"id": "8f4d1b4b-58c0-41ec-9636-ac555e440821",
"name": "On Error",
"type": "n8n-nodes-base.noOp",
"position": [
200,
140
],
"parameters": {},
"typeVersion": 1
},
{
"id": "f4d77736-4470-48b4-8f61-149e09b70e3e",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-560,
-160
],
"parameters": {
"color": 2,
"width": 960,
"height": 500,
"content": "## Update data source\nWhen you change the data source, remember to update the `Prompt Source (User Message)` setting in the **Basic LLM Chain node**."
},
"typeVersion": 1
},
{
"id": "5fd273c8-e61d-452b-8eac-8ac4b7fff6c2",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-560,
340
],
"parameters": {
"color": 2,
"width": 440,
"height": 220,
"content": "## Configure local LLM\nOllama offers additional settings \nto optimize model performance\nor memory usage."
},
"typeVersion": 1
},
{
"id": "63cbf762-0134-48da-a6cd-0363e870decd",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
0,
340
],
"parameters": {
"color": 2,
"width": 400,
"height": 220,
"content": "## Define JSON Schema"
},
"typeVersion": 1
},
{
"id": "9625294f-3cb4-4465-9dae-9976e0cf5053",
"name": "Extract JSON Output",
"type": "n8n-nodes-base.set",
"position": [
200,
-80
],
"parameters": {
"mode": "raw",
"options": {},
"jsonOutput": "={{ $json.output }}\n"
},
"typeVersion": 3.4
},
{
"id": "2c6fba3b-0ffe-4112-b904-823f52cc220b",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-560,
200
],
"parameters": {
"width": 960,
"height": 120,
"content": "If the LLM response does not pass \nthe **Structured Output Parser** checks,\n**Auto-Fixer** will call the model again with a different \nprompt to correct the original response."
},
"typeVersion": 1
},
{
"id": "c73ba1ca-d727-4904-a5fd-01dd921a4738",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
-560,
460
],
"parameters": {
"height": 80,
"content": "The same LLM connects to both **Basic LLM Chain** and to the **Auto-fixing Output Parser**. \n"
},
"typeVersion": 1
},
{
"id": "193dd153-8511-4326-aaae-47b89d0cd049",
"name": "Sticky Note7",
"type": "n8n-nodes-base.stickyNote",
"position": [
200,
440
],
"parameters": {
"width": 200,
"height": 100,
"content": "When the LLM model responds, the output is checked in the **Structured Output Parser**"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "9f3721a8-f340-43d5-89e7-3175c29c2f3a",
"connections": {
"Basic LLM Chain": {
"main": [
[
{
"node": "Extract JSON Output",
"type": "main",
"index": 0
}
],
[
{
"node": "On Error",
"type": "main",
"index": 0
}
]
]
},
"Ollama Chat Model": {
"ai_languageModel": [
[
{
"node": "Auto-fixing Output Parser",
"type": "ai_languageModel",
"index": 0
},
{
"node": "Basic LLM Chain",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Structured Output Parser": {
"ai_outputParser": [
[
{
"node": "Auto-fixing Output Parser",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Auto-fixing Output Parser": {
"ai_outputParser": [
[
{
"node": "Basic LLM Chain",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"When chat message received": {
"main": [
[
{
"node": "Basic LLM Chain",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@@ -0,0 +1,292 @@
{
"id": "HMoUOg8J7RzEcslH",
"meta": {
"instanceId": "3f91626b10fcfa8a3d3ab8655534ff3e94151838fd2709ecd2dcb14afb3d061a",
"templateCredsSetupCompleted": true
},
"name": "Extract personal data with a self-hosted LLM Mistral NeMo",
"tags": [],
"nodes": [
{
"id": "7e67ae65-88aa-4e48-aa63-2d3a4208cf4b",
"name": "When chat message received",
"type": "@n8n/n8n-nodes-langchain.chatTrigger",
"position": [
-500,
20
],
"webhookId": "3a7b0ea1-47f3-4a94-8ff2-f5e1f3d9dc32",
"parameters": {
"options": {}
},
"typeVersion": 1.1
},
{
"id": "e064921c-69e6-4cfe-a86e-4e3aa3a5314a",
"name": "Ollama Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOllama",
"position": [
-280,
420
],
"parameters": {
"model": "mistral-nemo:latest",
"options": {
"useMLock": true,
"keepAlive": "2h",
"temperature": 0.1
}
},
"credentials": {
"ollamaApi": {
"id": "vgKP7LGys9TXZ0KK",
"name": "Ollama account"
}
},
"typeVersion": 1
},
{
"id": "fe1379da-a12e-4051-af91-9d67a7c9a76b",
"name": "Auto-fixing Output Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserAutofixing",
"position": [
-200,
220
],
"parameters": {
"options": {
"prompt": "Instructions:\n--------------\n{instructions}\n--------------\nCompletion:\n--------------\n{completion}\n--------------\n\nAbove, the Completion did not satisfy the constraints given in the Instructions.\nError:\n--------------\n{error}\n--------------\n\nPlease try again. Please only respond with an answer that satisfies the constraints laid out in the Instructions:"
}
},
"typeVersion": 1
},
{
"id": "b6633b00-6ebb-43ca-8e5c-664a53548c17",
"name": "Structured Output Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
60,
400
],
"parameters": {
"schemaType": "manual",
"inputSchema": "{\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of the user\"\n },\n \"surname\": {\n \"type\": \"string\",\n \"description\": \"Surname of the user\"\n },\n \"commtype\": {\n \"type\": \"string\",\n \"enum\": [\"email\", \"phone\", \"other\"],\n \"description\": \"Method of communication\"\n },\n \"contacts\": {\n \"type\": \"string\",\n \"description\": \"Contact details. ONLY IF PROVIDED\"\n },\n \"timestamp\": {\n \"type\": \"string\",\n \"format\": \"date-time\",\n \"description\": \"When the communication occurred\"\n },\n \"subject\": {\n \"type\": \"string\",\n \"description\": \"Brief description of the communication topic\"\n }\n },\n \"required\": [\"name\", \"commtype\"]\n}"
},
"typeVersion": 1.2
},
{
"id": "23681a6c-cf62-48cb-86ee-08d5ce39bc0a",
"name": "Basic LLM Chain",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"onError": "continueErrorOutput",
"position": [
-240,
20
],
"parameters": {
"messages": {
"messageValues": [
{
"message": "=Please analyse the incoming user request. Extract information according to the JSON schema. Today is: \"{{ $now.toISO() }}\""
}
]
},
"hasOutputParser": true
},
"typeVersion": 1.5
},
{
"id": "8f4d1b4b-58c0-41ec-9636-ac555e440821",
"name": "On Error",
"type": "n8n-nodes-base.noOp",
"position": [
200,
140
],
"parameters": {},
"typeVersion": 1
},
{
"id": "f4d77736-4470-48b4-8f61-149e09b70e3e",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-560,
-160
],
"parameters": {
"color": 2,
"width": 960,
"height": 500,
"content": "## Update data source\nWhen you change the data source, remember to update the `Prompt Source (User Message)` setting in the **Basic LLM Chain node**."
},
"typeVersion": 1
},
{
"id": "5fd273c8-e61d-452b-8eac-8ac4b7fff6c2",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-560,
340
],
"parameters": {
"color": 2,
"width": 440,
"height": 220,
"content": "## Configure local LLM\nOllama offers additional settings \nto optimize model performance\nor memory usage."
},
"typeVersion": 1
},
{
"id": "63cbf762-0134-48da-a6cd-0363e870decd",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
0,
340
],
"parameters": {
"color": 2,
"width": 400,
"height": 220,
"content": "## Define JSON Schema"
},
"typeVersion": 1
},
{
"id": "9625294f-3cb4-4465-9dae-9976e0cf5053",
"name": "Extract JSON Output",
"type": "n8n-nodes-base.set",
"position": [
200,
-80
],
"parameters": {
"mode": "raw",
"options": {},
"jsonOutput": "={{ $json.output }}\n"
},
"typeVersion": 3.4
},
{
"id": "2c6fba3b-0ffe-4112-b904-823f52cc220b",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-560,
200
],
"parameters": {
"width": 960,
"height": 120,
"content": "If the LLM response does not pass \nthe **Structured Output Parser** checks,\n**Auto-Fixer** will call the model again with a different \nprompt to correct the original response."
},
"typeVersion": 1
},
{
"id": "c73ba1ca-d727-4904-a5fd-01dd921a4738",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
-560,
460
],
"parameters": {
"height": 80,
"content": "The same LLM connects to both **Basic LLM Chain** and to the **Auto-fixing Output Parser**. \n"
},
"typeVersion": 1
},
{
"id": "193dd153-8511-4326-aaae-47b89d0cd049",
"name": "Sticky Note7",
"type": "n8n-nodes-base.stickyNote",
"position": [
200,
440
],
"parameters": {
"width": 200,
"height": 100,
"content": "When the LLM model responds, the output is checked in the **Structured Output Parser**"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "9f3721a8-f340-43d5-89e7-3175c29c2f3a",
"connections": {
"Basic LLM Chain": {
"main": [
[
{
"node": "Extract JSON Output",
"type": "main",
"index": 0
}
],
[
{
"node": "On Error",
"type": "main",
"index": 0
}
]
]
},
"Ollama Chat Model": {
"ai_languageModel": [
[
{
"node": "Auto-fixing Output Parser",
"type": "ai_languageModel",
"index": 0
},
{
"node": "Basic LLM Chain",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Structured Output Parser": {
"ai_outputParser": [
[
{
"node": "Auto-fixing Output Parser",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Auto-fixing Output Parser": {
"ai_outputParser": [
[
{
"node": "Basic LLM Chain",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"When chat message received": {
"main": [
[
{
"node": "Basic LLM Chain",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@@ -0,0 +1,630 @@
{
"id": "dQC8kExvbCrovWf0",
"meta": {
"instanceId": "fb8bc2e315f7f03c97140b30aa454a27bc7883a19000fa1da6e6b571bf56ad6d",
"templateCredsSetupCompleted": true
},
"name": "Dynamically switch between LLMs Template",
"tags": [],
"nodes": [
{
"id": "962c4b29-c244-4d68-93e1-cacd41b436fc",
"name": "When chat message received",
"type": "@n8n/n8n-nodes-langchain.chatTrigger",
"position": [
220,
80
],
"webhookId": "713a7f98-0e3d-4eb7-aafa-599ca627c8b4",
"parameters": {
"options": {}
},
"typeVersion": 1.1
},
{
"id": "6fc4f336-09e3-4e79-94e9-e5eff04e4089",
"name": "Switch Model",
"type": "@n8n/n8n-nodes-langchain.code",
"position": [
540,
320
],
"parameters": {
"code": {
"supplyData": {
"code": "let llms = await this.getInputConnectionData('ai_languageModel', 0);\nllms.reverse(); // reverse array, so the order matches the UI elements\n\nconst llm_index = $input.item.json.llm_index;\nif (!Number.isInteger(llm_index)) {\n console.log(\"'llm_index' is udefined or not a valid integer\");\n throw new Error(\"'llm_index' is udefined or not a valid integer\");\n}\n\nif(typeof llms[llm_index] === 'undefined') {\n console.log(`No LLM found with index ${llm_index}`);\n throw new Error(`No LLM found with index ${llm_index}`);\n}\n\nreturn llms[llm_index];"
}
},
"inputs": {
"input": [
{
"type": "ai_languageModel",
"required": true
}
]
},
"outputs": {
"output": [
{
"type": "ai_languageModel"
}
]
}
},
"typeVersion": 1
},
{
"id": "68511483-355b-45c1-915f-e7517c42b809",
"name": "Set LLM index",
"type": "n8n-nodes-base.set",
"position": [
440,
80
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "24b4d30e-484a-4cc1-a691-0653ed764296",
"name": "llm_index",
"type": "number",
"value": "={{ $json.llm_index || 0 }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "adc2f24c-0ad6-4057-bb3b-b46563c72ee8",
"name": "Increase LLM index",
"type": "n8n-nodes-base.set",
"position": [
1420,
-200
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "24b4d30e-484a-4cc1-a691-0653ed764296",
"name": "llm_index",
"type": "number",
"value": "={{ $('Set LLM index').item.json.llm_index + 1 }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "eace2dd7-9550-47ba-a4c3-4f065f80757b",
"name": "No Operation, do nothing",
"type": "n8n-nodes-base.noOp",
"position": [
1640,
540
],
"parameters": {},
"typeVersion": 1
},
{
"id": "c1735d1c-5dc4-4bd5-9dde-3bb04b8811c3",
"name": "Check for expected error",
"type": "n8n-nodes-base.if",
"position": [
1040,
160
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "3253e1f2-172e-4af4-a492-3b9c6e9e4797",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.error }}",
"rightValue": "Error in sub-node Switch Model"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "4a259078-aa74-4725-9e91-d2775bbd577f",
"name": "Loop finished without results",
"type": "n8n-nodes-base.set",
"position": [
1260,
60
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "b352627d-d692-47f8-8f8c-885b68073843",
"name": "output",
"type": "string",
"value": "The loop finished without a satisfying result"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "3b527ed3-a700-403d-8e3c-d0d55a83c9ea",
"name": "Unexpected error",
"type": "n8n-nodes-base.set",
"position": [
1260,
260
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "b352627d-d692-47f8-8f8c-885b68073843",
"name": "output",
"type": "string",
"value": "An unexpected error happened"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "2a48a244-25ab-4330-9e89-3f8a52b7fd0a",
"name": "Return result",
"type": "n8n-nodes-base.set",
"position": [
1420,
-460
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "b352627d-d692-47f8-8f8c-885b68073843",
"name": "output",
"type": "string",
"value": "={{ $json.text || $json.output }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "79da2795-800a-423d-ad5b-ec3b0498a5e6",
"name": "OpenAI 4o-mini",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
460,
580
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "X7Jf0zECd3IkQdSw",
"name": "OpenAi (octionicsolutions)"
}
},
"typeVersion": 1.2
},
{
"id": "c5884632-4f21-4e1e-a86d-77e3b18119b9",
"name": "OpenAI 4o",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
640,
580
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o",
"cachedResultName": "gpt-4o"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "X7Jf0zECd3IkQdSw",
"name": "OpenAi (octionicsolutions)"
}
},
"typeVersion": 1.2
},
{
"id": "0693ac6a-fd1e-4a1f-b7be-bd4a1021b6c1",
"name": "OpenAI o1",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
820,
580
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "o1",
"cachedResultName": "o1"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "X7Jf0zECd3IkQdSw",
"name": "OpenAi (octionicsolutions)"
}
},
"typeVersion": 1.2
},
{
"id": "f9fa467a-804d-4abf-84e3-06a88f9142b4",
"name": "OpenAI Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
1100,
-100
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "X7Jf0zECd3IkQdSw",
"name": "OpenAi (octionicsolutions)"
}
},
"typeVersion": 1.2
},
{
"id": "7c6bf364-1844-484f-8a1c-1ff87286c686",
"name": "Validate response",
"type": "@n8n/n8n-nodes-langchain.sentimentAnalysis",
"position": [
1040,
-300
],
"parameters": {
"options": {
"categories": "pass, fail",
"systemPromptTemplate": "You are a highly intelligent and accurate sentiment analyzer. Analyze the sentiment of the provided text. Categorize it into one of the following: {categories}. Use the provided formatting instructions. Only output the JSON.\n\n> Evaluate the following customer support response. Give a short JSON answer with a field “quality”: “pass” or “fail”. Only return “pass” if the response:\n\n1. Acknowledges both the broken keyboard and the late delivery \n2. Uses a polite and empathetic tone \n3. Offers a clear resolution or next step (like refund, replacement, or contact support)"
},
"inputText": "={{ $json.text }}"
},
"typeVersion": 1
},
{
"id": "a7be0179-e246-4f75-8863-d03eefe9d8ac",
"name": "Generate response",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"onError": "continueErrorOutput",
"position": [
660,
80
],
"parameters": {
"text": "={{ $('When chat message received').item.json.chatInput }}",
"messages": {
"messageValues": [
{
"message": "=Youre an AI assistant replying to a customer who is upset about a faulty product and late delivery. The customer uses sarcasm and is vague. Write a short, polite response, offering help."
}
]
},
"promptType": "define"
},
"retryOnFail": false,
"typeVersion": 1.6
},
{
"id": "273f4025-2aeb-4a67-859a-690a3a086f82",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
380,
-160
],
"parameters": {
"width": 480,
"height": 140,
"content": "### Customer complaint - example\n\nI really *love* waiting two weeks just to get a keyboard that doesnt even work. Great job. Any chance I could actually use the thing I paid for sometime this month?"
},
"typeVersion": 1
},
{
"id": "a7806fab-fdc2-4feb-be53-fcea81ede105",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
380,
0
],
"parameters": {
"color": 7,
"width": 220,
"height": 240,
"content": "Defines the LLM node by index which should be used."
},
"typeVersion": 1
},
{
"id": "0117d8d8-672e-458a-a9dd-30b50e05f343",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
480,
240
],
"parameters": {
"color": 7,
"width": 380,
"height": 200,
"content": "Dynamically connects the LLM by the index provided in the previous node."
},
"typeVersion": 1
},
{
"id": "66066bad-4fd3-4e68-88bb-0b95fd9a6e49",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
980,
60
],
"parameters": {
"color": 7,
"width": 220,
"height": 260,
"content": "Check if LangChain Code Node ran into error. _Currently only supports error output from main Node_"
},
"typeVersion": 1
},
{
"id": "b9101226-0035-4de3-8720-f783d13e0cca",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
600,
0
],
"parameters": {
"color": 7,
"width": 380,
"height": 240,
"content": "Generates a polite answer based on the customers complaint."
},
"typeVersion": 1
},
{
"id": "ee7d70ee-2eb7-494f-ad74-2cb6108ba0ed",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
980,
-360
],
"parameters": {
"color": 7,
"width": 380,
"height": 220,
"content": "Analyses the generated answer by certain criteria"
},
"typeVersion": 1
},
{
"id": "03bde6f5-27b1-4568-96fb-5ece77d7b2e5",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
1360,
-280
],
"parameters": {
"color": 7,
"width": 220,
"height": 240,
"content": "Increases the index to choose the next available LLM on the next run"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "52381ffc-bdf4-4243-bc35-462dedb929bd",
"connections": {
"OpenAI 4o": {
"ai_languageModel": [
[
{
"node": "Switch Model",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"OpenAI o1": {
"ai_languageModel": [
[
{
"node": "Switch Model",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Switch Model": {
"ai_outputParser": [
[]
],
"ai_languageModel": [
[
{
"node": "Generate response",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Set LLM index": {
"main": [
[
{
"node": "Generate response",
"type": "main",
"index": 0
}
]
]
},
"OpenAI 4o-mini": {
"ai_languageModel": [
[
{
"node": "Switch Model",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Generate response": {
"main": [
[
{
"node": "Validate response",
"type": "main",
"index": 0
}
],
[
{
"node": "Check for expected error",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "Validate response",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Validate response": {
"main": [
[
{
"node": "Return result",
"type": "main",
"index": 0
}
],
[
{
"node": "Increase LLM index",
"type": "main",
"index": 0
}
]
]
},
"Increase LLM index": {
"main": [
[
{
"node": "No Operation, do nothing",
"type": "main",
"index": 0
}
]
]
},
"Check for expected error": {
"main": [
[
{
"node": "Loop finished without results",
"type": "main",
"index": 0
}
],
[
{
"node": "Unexpected error",
"type": "main",
"index": 0
}
]
]
},
"No Operation, do nothing": {
"main": [
[
{
"node": "Set LLM index",
"type": "main",
"index": 0
}
]
]
},
"When chat message received": {
"main": [
[
{
"node": "Set LLM index",
"type": "main",
"index": 0
}
]
]
}
}
}

View File

@@ -0,0 +1,318 @@
{
"id": "jOI7FRhG1FkeqBLG",
"meta": {
"instanceId": "2872777e468ba025c28c67ebf483f93425a37d897dfc1056e0c00cc75112d703"
},
"name": "Wordpress Form to Mautic",
"tags": [],
"nodes": [
{
"id": "fcd19b7b-9104-45a6-b741-9497effbd68e",
"name": "LeadData",
"type": "n8n-nodes-base.set",
"position": [
1260,
420
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "91215336-3a47-4e86-ac6a-1a1862b31e54",
"name": "name",
"type": "string",
"value": "={{ $json.body.Nome.toTitleCase() }}"
},
{
"id": "703f1da3-3f68-4d97-94c9-c22661813d92",
"name": "email",
"type": "string",
"value": "={{ $json.body['E-mail'].toLowerCase() }}"
},
{
"id": "c9ba65f1-68e9-46ed-9620-365e000aeb6c",
"name": "mobile",
"type": "string",
"value": "={{ $json.body.WhatsApp }}"
},
{
"id": "3a7266cf-5ff8-4559-985d-2480d0271cbd",
"name": "form",
"type": "string",
"value": "={{ $json.body.form_id }}"
},
{
"id": "06825dab-fbed-4d85-b91c-5d1c2cf8e934",
"name": "email_valid",
"type": "boolean",
"value": "={{ $json.body['E-mail'].isEmail() }}"
}
]
}
},
"typeVersion": 3.3
},
{
"id": "9598d8bf-b7f0-4e5e-804c-154f240704ac",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
520,
220
],
"parameters": {
"width": 471,
"height": 370,
"content": "## Receive Data from Wordpress Form\n\nYou can customize your form fields in the way that best suits your marketing campaigns."
},
"typeVersion": 1
},
{
"id": "620d1873-3881-4086-8bd3-e26e07cab88c",
"name": "WordpressForm",
"type": "n8n-nodes-base.webhook",
"position": [
660,
420
],
"webhookId": "917366ee-14a8-4fef-9f0b-6638cdc35fad",
"parameters": {
"path": "917366ee-14a8-4fef-9f0b-6638cdc35fad",
"options": {},
"httpMethod": "POST"
},
"typeVersion": 1.1
},
{
"id": "8f6bed52-1214-46fa-8e8a-c648bbe6e52a",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
1040,
220
],
"parameters": {
"width": 551,
"height": 376,
"content": "## Normalize Data\n\nLet's separate the data we are going to use and remove everything that is unnecessary for the workflow. This way we avoid errors and optimize the use of N8N resources.\n\nYou can use N8N expression extensions to format and validate your data received by N8N."
},
"typeVersion": 1
},
{
"id": "975ec9ae-d64d-42e6-b665-82296825203d",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
2240,
220
],
"parameters": {
"width": 772.5,
"height": 376.25,
"content": "## Checks if the email can be valid\n\nChecks if the email can be valid to create the contact in Mautic with the correct registration information"
},
"typeVersion": 1
},
{
"id": "a2f241c2-6894-4c17-a1bd-88c0c9bc88cb",
"name": "CheckEmailValid",
"type": "n8n-nodes-base.if",
"position": [
2420,
420
],
"parameters": {
"options": {},
"conditions": {
"options": {
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "bcbdaa12-c4ec-4fba-85f8-ddfe5eed8f42",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
},
"leftValue": "={{ $('LeadData').item.json.email_valid }}",
"rightValue": "="
}
]
}
},
"typeVersion": 2
},
{
"id": "26a0eab3-2097-4b91-8a79-8fc2934f3ebe",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
1640,
221.25
],
"parameters": {
"width": 555,
"height": 376.25,
"content": "## Create Contact on Mautic\n\nCreate a contact in Mautic Let's create the contact in Mautic where you will map the fields you need."
},
"typeVersion": 1
},
{
"id": "16a62af3-f9cb-4a12-b168-a2c6c5ff6c78",
"name": "CreateContactMautic",
"type": "n8n-nodes-base.mautic",
"position": [
1860,
420
],
"parameters": {
"email": "={{ $json.email }}",
"options": {},
"firstName": "={{ $json.name }}",
"additionalFields": {
"mobile": "={{ $json.mobile }}"
}
},
"credentials": {
"mauticApi": {
"id": "dNmbC6ievGKXw0ww",
"name": "Mautic account"
}
},
"typeVersion": 1
},
{
"id": "340eb2d8-c2c0-4a31-822e-6fda2c00f4ea",
"name": "LeadMauticDNC",
"type": "n8n-nodes-base.mautic",
"position": [
2740,
380
],
"parameters": {
"contactId": "={{ $json.id }}",
"operation": "editDoNotContactList",
"additionalFields": {
"reason": "3",
"comments": "Did not pass basic email validation"
}
},
"credentials": {
"mauticApi": {
"id": "dNmbC6ievGKXw0ww",
"name": "Mautic account"
}
},
"typeVersion": 1
},
{
"id": "8b773a35-2b4b-4d50-aeed-bf5fe8e6e7d1",
"name": "End",
"type": "n8n-nodes-base.noOp",
"position": [
3140,
380
],
"parameters": {},
"typeVersion": 1
}
],
"active": false,
"pinData": {
"WordpressForm": [
{
"json": {
"body": {
"Nome": "Luiz Eduardo",
"E-mail": "myemail@gmail.com",
"form_id": "1b46cae",
"WhatsApp": "5512992444000",
"form_name": "Contact Form"
},
"query": {},
"params": {},
"headers": {
"host": "data.promovaweb.com",
"accept": "*/*",
"user-agent": "WordPress/6.4.3; https://pages.promovaweb.com",
"content-type": "application/x-www-form-urlencoded",
"content-length": "106",
"accept-encoding": "deflate, gzip, br",
"x-forwarded-for": "35.212.38.239",
"x-forwarded-host": "data.promovaweb.com",
"x-forwarded-port": "443",
"x-forwarded-proto": "https",
"x-forwarded-server": "004c98fc4927"
}
}
}
]
},
"settings": {
"executionOrder": "v1"
},
"versionId": "28d5987d-4623-4275-bb41-1c015ee32b61",
"connections": {
"LeadData": {
"main": [
[
{
"node": "CreateContactMautic",
"type": "main",
"index": 0
}
]
]
},
"LeadMauticDNC": {
"main": [
[
{
"node": "End",
"type": "main",
"index": 0
}
]
]
},
"WordpressForm": {
"main": [
[
{
"node": "LeadData",
"type": "main",
"index": 0
}
]
]
},
"CheckEmailValid": {
"main": [
[],
[
{
"node": "LeadMauticDNC",
"type": "main",
"index": 0
}
]
]
},
"CreateContactMautic": {
"main": [
[
{
"node": "CheckEmailValid",
"type": "main",
"index": 0
}
]
]
}
}
}