feat: add folder support for workflows (fixes #70)
This commit is contained in:
51
workflows/Error/0126_Error_Slack_Automate_Triggered.json
Normal file
51
workflows/Error/0126_Error_Slack_Automate_Triggered.json
Normal file
@@ -0,0 +1,51 @@
|
||||
{
|
||||
"nodes": [
|
||||
{
|
||||
"name": "Slack",
|
||||
"type": "n8n-nodes-base.slack",
|
||||
"position": [
|
||||
650,
|
||||
300
|
||||
],
|
||||
"parameters": {
|
||||
"text": "=🐞 What?!\n*This execution{{$node[\"Error Trigger\"].json[\"workflow\"][\"name\"]}} went wrong*\\nWhy don't you go take a look {{$node[\"Error Trigger\"].json[\"execution\"][\"url\"]}}",
|
||||
"channel": "",
|
||||
"attachments": [],
|
||||
"otherOptions": {}
|
||||
},
|
||||
"credentials": {
|
||||
"slackApi": {
|
||||
"id": "",
|
||||
"name": ""
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "Error Trigger",
|
||||
"type": "n8n-nodes-base.errorTrigger",
|
||||
"position": [
|
||||
450,
|
||||
300
|
||||
],
|
||||
"parameters": {},
|
||||
"executeOnce": false,
|
||||
"retryOnFail": false,
|
||||
"typeVersion": 1,
|
||||
"alwaysOutputData": true
|
||||
}
|
||||
],
|
||||
"connections": {
|
||||
"Error Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Slack",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
159
workflows/Error/0395_Error_Mondaycom_Update_Triggered.json
Normal file
159
workflows/Error/0395_Error_Mondaycom_Update_Triggered.json
Normal file
@@ -0,0 +1,159 @@
|
||||
{
|
||||
"meta": {
|
||||
"instanceId": "257476b1ef58bf3cb6a46e65fac7ee34a53a5e1a8492d5c6e4da5f87c9b82833",
|
||||
"templateId": "2074"
|
||||
},
|
||||
"nodes": [
|
||||
{
|
||||
"id": "25a95fba-9367-48ca-b7a3-5ab1fb701869",
|
||||
"name": "Monday",
|
||||
"type": "n8n-nodes-base.mondayCom",
|
||||
"notes": "CREATE ERROR ITEM",
|
||||
"position": [
|
||||
620,
|
||||
240
|
||||
],
|
||||
"parameters": {
|
||||
"name": "={{ \"\".concat($('Error Trigger').last().json.execution.id) }}",
|
||||
"boardId": "1382091189",
|
||||
"groupId": "topics",
|
||||
"resource": "boardItem",
|
||||
"additionalFields": {}
|
||||
},
|
||||
"credentials": {
|
||||
"mondayComApi": {
|
||||
"id": "SP53wbPUCBNJRq1G",
|
||||
"name": "Monday.com account"
|
||||
}
|
||||
},
|
||||
"notesInFlow": true,
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "5fb18856-cd59-4f57-9e72-c637a206fa41",
|
||||
"name": "Date & Time",
|
||||
"type": "n8n-nodes-base.dateTime",
|
||||
"position": [
|
||||
840,
|
||||
240
|
||||
],
|
||||
"parameters": {
|
||||
"options": {}
|
||||
},
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "66baa154-b421-4942-99e9-f00f6870b3fa",
|
||||
"name": "Error Trigger",
|
||||
"type": "n8n-nodes-base.errorTrigger",
|
||||
"position": [
|
||||
380,
|
||||
240
|
||||
],
|
||||
"parameters": {},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "34347458-7509-4e08-a501-1cee4a307bb7",
|
||||
"name": "Code",
|
||||
"type": "n8n-nodes-base.code",
|
||||
"notes": "GET STACKTRACE",
|
||||
"position": [
|
||||
1040,
|
||||
240
|
||||
],
|
||||
"parameters": {
|
||||
"jsCode": "\nconsole.log($('Error Trigger').last().json.execution)\nstr = escape ($('Error Trigger').last().json.execution.error.stack )\nreturn { \"stack\": str}"
|
||||
},
|
||||
"notesInFlow": true,
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "92b6e47b-1c34-40eb-9f9a-57e197528c86",
|
||||
"name": "UPDATE",
|
||||
"type": "n8n-nodes-base.mondayCom",
|
||||
"notes": "POPULUATE MONDAY ITEM",
|
||||
"position": [
|
||||
1280,
|
||||
240
|
||||
],
|
||||
"parameters": {
|
||||
"itemId": "={{ $('Monday').last().json.id }}",
|
||||
"boardId": "1382091189",
|
||||
"resource": "boardItem",
|
||||
"operation": "changeMultipleColumnValues",
|
||||
"columnValues": "={ \"column_id_for_workflow_name (text)\" : \"{{ $('Error Trigger').item.json.workflow.name }}\",\n\"column_id_for_error_stack (long text)\" : \"{{ $('Code').last().json.stack}}\",\n\"column_id_for_error_message (text)\": \"{{ $('Error Trigger').item.json.execution.error.message }}\",\n\"column_id_for_date (text)\": \"{{ $('Date & Time').last().json.currentDate }}\"\n}\n"
|
||||
},
|
||||
"credentials": {
|
||||
"mondayComApi": {
|
||||
"id": "SP53wbPUCBNJRq1G",
|
||||
"name": "Monday.com account"
|
||||
}
|
||||
},
|
||||
"notesInFlow": true,
|
||||
"typeVersion": 1
|
||||
}
|
||||
],
|
||||
"pinData": {
|
||||
"Error Trigger": [
|
||||
{
|
||||
"workflow": {
|
||||
"name": "My WF"
|
||||
},
|
||||
"execution": {
|
||||
"id": 1,
|
||||
"error": {
|
||||
"stack": "Some error here haha",
|
||||
"message": "New error"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"connections": {
|
||||
"Code": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "UPDATE",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Monday": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Date & Time",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Date & Time": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Code",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Error Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Monday",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
119
workflows/Error/0447_Error_Slack_Send_Triggered.json
Normal file
119
workflows/Error/0447_Error_Slack_Send_Triggered.json
Normal file
@@ -0,0 +1,119 @@
|
||||
{
|
||||
"nodes": [
|
||||
{
|
||||
"id": "eb305364-de39-4b9e-ad6e-eea54ebf712d",
|
||||
"name": "Slack",
|
||||
"type": "n8n-nodes-base.slack",
|
||||
"position": [
|
||||
740,
|
||||
300
|
||||
],
|
||||
"parameters": {
|
||||
"text": "={{ $json.message }}",
|
||||
"select": "channel",
|
||||
"channelId": {
|
||||
"__rl": true,
|
||||
"mode": "name",
|
||||
"value": "#alerts-n8n-workflows"
|
||||
},
|
||||
"otherOptions": {}
|
||||
},
|
||||
"credentials": {
|
||||
"slackApi": {
|
||||
"id": "26",
|
||||
"name": "Cloudbot bot token"
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.1
|
||||
},
|
||||
{
|
||||
"id": "9babcea6-ac7c-4a75-bd4c-f3d6a54c0ec7",
|
||||
"name": "On Error",
|
||||
"type": "n8n-nodes-base.errorTrigger",
|
||||
"position": [
|
||||
220,
|
||||
300
|
||||
],
|
||||
"parameters": {},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "134acca3-d4a7-485c-ab45-5a2721ed6a2c",
|
||||
"name": "Set message",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
480,
|
||||
300
|
||||
],
|
||||
"parameters": {
|
||||
"values": {
|
||||
"string": [
|
||||
{
|
||||
"name": "message",
|
||||
"value": "=:warning: [prod] workflow `{{$json[\"workflow\"][\"name\"]}}` failed to run! <{{ $json.execution.url }}|execution>\n\nerror message from node: {{ $json.execution.lastNodeExecuted }}\n {{ $json.execution.error.message }}"
|
||||
}
|
||||
]
|
||||
},
|
||||
"options": {},
|
||||
"keepOnlySet": true
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "b6dfce1e-95c0-43c4-8a81-098b33130232",
|
||||
"name": "Sticky Note3",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
140,
|
||||
100
|
||||
],
|
||||
"parameters": {
|
||||
"color": 5,
|
||||
"width": 424.4907862645661,
|
||||
"height": 154.7766688696994,
|
||||
"content": "### 👨🎤 Setup\n1. Add Slack creds\n2. Add this error workflow to other workflows\nhttps://docs.n8n.io/flow-logic/error-handling/#create-and-set-an-error-workflow"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "619e2628-6860-47ca-9e6a-9294ea123f8f",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
480,
|
||||
480
|
||||
],
|
||||
"parameters": {
|
||||
"width": 241,
|
||||
"height": 80,
|
||||
"content": "### 👆🏽 Adjust error message here"
|
||||
},
|
||||
"typeVersion": 1
|
||||
}
|
||||
],
|
||||
"pinData": {},
|
||||
"connections": {
|
||||
"On Error": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Set message",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Set message": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Slack",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
116
workflows/Error/0454_Error_Telegram_Send_Triggered.json
Normal file
116
workflows/Error/0454_Error_Telegram_Send_Triggered.json
Normal file
@@ -0,0 +1,116 @@
|
||||
{
|
||||
"nodes": [
|
||||
{
|
||||
"id": "aa84d631-c14f-45c2-a659-454605e83c30",
|
||||
"name": "On Error",
|
||||
"type": "n8n-nodes-base.errorTrigger",
|
||||
"position": [
|
||||
880,
|
||||
900
|
||||
],
|
||||
"parameters": {},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "abffce17-cc93-4c6a-8955-de2d0f4cc885",
|
||||
"name": "Set message",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
1140,
|
||||
900
|
||||
],
|
||||
"parameters": {
|
||||
"values": {
|
||||
"string": [
|
||||
{
|
||||
"name": "message",
|
||||
"value": "=⚠️ Workflow `{{$json[\"workflow\"][\"name\"]}}` failed to run! [execution]({{ $json.execution.url }})"
|
||||
}
|
||||
]
|
||||
},
|
||||
"options": {},
|
||||
"keepOnlySet": true
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "1e5c4af6-30ae-45b8-bca7-048a656ce9bd",
|
||||
"name": "Sticky Note3",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
800,
|
||||
700
|
||||
],
|
||||
"parameters": {
|
||||
"color": 5,
|
||||
"width": 424.4907862645661,
|
||||
"height": 154.7766688696994,
|
||||
"content": "### 👨🎤 Setup\n1. Add Telegram creds\n2. Set chat id in **Telegram** node\n2. Add this error workflow to other workflows\nhttps://docs.n8n.io/flow-logic/error-handling/#create-and-set-an-error-workflow"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "845ddf26-2d40-4cc6-843b-ccb3b365fbfb",
|
||||
"name": "Telegram",
|
||||
"type": "n8n-nodes-base.telegram",
|
||||
"position": [
|
||||
1360,
|
||||
900
|
||||
],
|
||||
"parameters": {
|
||||
"text": "={{ $json.message }}",
|
||||
"chatId": "1688282582",
|
||||
"additionalFields": {
|
||||
"appendAttribution": false
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"telegramApi": {
|
||||
"id": "6",
|
||||
"name": "mymontsbot token"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.1
|
||||
},
|
||||
{
|
||||
"id": "90db96b8-0e43-4977-b455-3e6813211640",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
1380,
|
||||
1080
|
||||
],
|
||||
"parameters": {
|
||||
"width": 241,
|
||||
"height": 80,
|
||||
"content": "### 👆🏽 Set chat id here"
|
||||
},
|
||||
"typeVersion": 1
|
||||
}
|
||||
],
|
||||
"pinData": {},
|
||||
"connections": {
|
||||
"On Error": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Set message",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Set message": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Telegram",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
83
workflows/Error/0456_Error_Gmail_Send_Triggered.json
Normal file
83
workflows/Error/0456_Error_Gmail_Send_Triggered.json
Normal file
@@ -0,0 +1,83 @@
|
||||
{
|
||||
"nodes": [
|
||||
{
|
||||
"id": "dee0969b-e780-400c-a8d2-383a392b9432",
|
||||
"name": "On Error",
|
||||
"type": "n8n-nodes-base.errorTrigger",
|
||||
"position": [
|
||||
880,
|
||||
900
|
||||
],
|
||||
"parameters": {},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "018f4497-2a68-4de7-a59a-b6714d9211af",
|
||||
"name": "Sticky Note3",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
800,
|
||||
700
|
||||
],
|
||||
"parameters": {
|
||||
"color": 5,
|
||||
"width": 424.4907862645661,
|
||||
"height": 154.7766688696994,
|
||||
"content": "### 👨🎤 Setup\n1. Add your Gmail creds\n2. Add your target email\n2. Add this error workflow to other workflows\nhttps://docs.n8n.io/flow-logic/error-handling/#create-and-set-an-error-workflow"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "b5d560c0-1de1-4e6c-be4d-0fef1dd42e9e",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
1140,
|
||||
1080
|
||||
],
|
||||
"parameters": {
|
||||
"width": 241,
|
||||
"height": 80,
|
||||
"content": "### 👆🏽 Set target email here"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "f1a73854-5b24-407e-9584-0448ae66f7a0",
|
||||
"name": "Gmail",
|
||||
"type": "n8n-nodes-base.gmail",
|
||||
"position": [
|
||||
1120,
|
||||
900
|
||||
],
|
||||
"parameters": {
|
||||
"sendTo": "SET YOUR EMAIL HERE",
|
||||
"message": "=⚠️ Workflow `{{$json[\"workflow\"][\"name\"]}}` failed to run!\nYou can find the execution here: {{ $json.execution.url }}\n\nerror message from node {{ $json.execution.lastNodeExecuted }}: {{ $json.execution.error.message }}\n\n {{ $json.execution.error.stack }}",
|
||||
"options": {},
|
||||
"subject": "=🚨 Error in workflow: {{ $json.workflow.name }}",
|
||||
"emailType": "text"
|
||||
},
|
||||
"credentials": {
|
||||
"gmailOAuth2": {
|
||||
"id": "8",
|
||||
"name": "Work Gmail account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.1
|
||||
}
|
||||
],
|
||||
"pinData": {},
|
||||
"connections": {
|
||||
"On Error": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Gmail",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
308
workflows/Error/0518_Error_Code_Update_Scheduled.json
Normal file
308
workflows/Error/0518_Error_Code_Update_Scheduled.json
Normal file
@@ -0,0 +1,308 @@
|
||||
{
|
||||
"meta": {
|
||||
"instanceId": "78ab5e476ecaa1f377d804637c3e86d3fd449c31126b69159de63d266513b694"
|
||||
},
|
||||
"nodes": [
|
||||
{
|
||||
"id": "d46a710d-0d0e-4040-b2b2-a2bd2e2410ff",
|
||||
"name": "Error Trigger",
|
||||
"type": "n8n-nodes-base.errorTrigger",
|
||||
"position": [
|
||||
440,
|
||||
520
|
||||
],
|
||||
"parameters": {},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "2e3a9cf6-9a9f-4f11-ab53-e3fa9c393e1f",
|
||||
"name": "n8n",
|
||||
"type": "n8n-nodes-base.n8n",
|
||||
"position": [
|
||||
900,
|
||||
180
|
||||
],
|
||||
"parameters": {
|
||||
"filters": {},
|
||||
"requestOptions": {}
|
||||
},
|
||||
"credentials": {
|
||||
"n8nApi": {
|
||||
"id": "27",
|
||||
"name": "n8n account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "7fc93f47-24ee-4000-ac3f-eb2746a926bb",
|
||||
"name": "Gmail",
|
||||
"type": "n8n-nodes-base.gmail",
|
||||
"position": [
|
||||
660,
|
||||
520
|
||||
],
|
||||
"parameters": {
|
||||
"sendTo": "=(your email address)",
|
||||
"message": "={{ $json.execution.url }}",
|
||||
"options": {},
|
||||
"subject": "=[n8n] workflow failed: {{ $json.workflow.name }}"
|
||||
},
|
||||
"credentials": {
|
||||
"gmailOAuth2": {
|
||||
"id": "3",
|
||||
"name": "gmail bart@blendernation.com"
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.1
|
||||
},
|
||||
{
|
||||
"id": "25ed8ec8-2c28-498a-a951-c5ef1b2a2c59",
|
||||
"name": "get error handler",
|
||||
"type": "n8n-nodes-base.n8n",
|
||||
"position": [
|
||||
660,
|
||||
180
|
||||
],
|
||||
"parameters": {
|
||||
"operation": "get",
|
||||
"workflowId": {
|
||||
"__rl": true,
|
||||
"mode": "id",
|
||||
"value": "={{ $workflow.id }}"
|
||||
},
|
||||
"requestOptions": {}
|
||||
},
|
||||
"credentials": {
|
||||
"n8nApi": {
|
||||
"id": "27",
|
||||
"name": "n8n account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "44713be9-786a-4bff-b562-a23146792995",
|
||||
"name": "n8n | update",
|
||||
"type": "n8n-nodes-base.n8n",
|
||||
"position": [
|
||||
1500,
|
||||
180
|
||||
],
|
||||
"parameters": {
|
||||
"operation": "update",
|
||||
"workflowId": {
|
||||
"__rl": true,
|
||||
"mode": "id",
|
||||
"value": "={{ $json.id }}"
|
||||
},
|
||||
"requestOptions": {},
|
||||
"workflowObject": "={{ JSON.stringify($json) }}"
|
||||
},
|
||||
"credentials": {
|
||||
"n8nApi": {
|
||||
"id": "27",
|
||||
"name": "n8n account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "be27247a-71e5-4204-9c7c-2692d8a82c8b",
|
||||
"name": "set fields",
|
||||
"type": "n8n-nodes-base.code",
|
||||
"position": [
|
||||
1300,
|
||||
180
|
||||
],
|
||||
"parameters": {
|
||||
"mode": "runOnceForEachItem",
|
||||
"jsCode": "const data = $json\n\ndata.settings.errorWorkflow = $('get error handler').item.json.id ;\ndelete data.settings.callerPolicy;\n\nreturn {\n id: data.id,\n name: data.name,\n nodes: data.nodes,\n connections: data.connections,\n settings: data.settings\n}"
|
||||
},
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "d8774911-f4b2-4198-838b-2d0b89002e25",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
380,
|
||||
400
|
||||
],
|
||||
"parameters": {
|
||||
"width": 483.4744075807993,
|
||||
"height": 308.64949804469416,
|
||||
"content": "## Default Error Handler\n\nUpdate this to your preferred notification mechanism"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "0baa0fc3-4d5e-4507-bd5d-65ebce68178f",
|
||||
"name": "Sticky Note1",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
605.0603083429507,
|
||||
126.84319830832769
|
||||
],
|
||||
"parameters": {
|
||||
"width": 232.91556831986873,
|
||||
"height": 216.67545344104974,
|
||||
"content": "get ID of self"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "fabb0db7-7364-4349-8563-952c9f0e07b2",
|
||||
"name": "Schedule Trigger",
|
||||
"type": "n8n-nodes-base.scheduleTrigger",
|
||||
"position": [
|
||||
440,
|
||||
180
|
||||
],
|
||||
"parameters": {
|
||||
"rule": {
|
||||
"interval": [
|
||||
{}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
},
|
||||
{
|
||||
"id": "dd1e0036-1093-4160-adad-ed1b0c1b3548",
|
||||
"name": "Sticky Note2",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
380,
|
||||
125.83113663973751
|
||||
],
|
||||
"parameters": {
|
||||
"width": 214.6984582852457,
|
||||
"height": 219.7116384468202,
|
||||
"content": "Runs every day at midnight to update new workflows"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "aca838c8-ff3e-4630-824b-a6d1d8414326",
|
||||
"name": "active && no error handler set && not this handler workflow",
|
||||
"type": "n8n-nodes-base.if",
|
||||
"position": [
|
||||
1100,
|
||||
180
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"conditions": {
|
||||
"options": {
|
||||
"leftValue": "",
|
||||
"caseSensitive": true,
|
||||
"typeValidation": "strict"
|
||||
},
|
||||
"combinator": "and",
|
||||
"conditions": [
|
||||
{
|
||||
"id": "290fd302-4e2d-44d6-8a8a-14a0b8f2c360",
|
||||
"operator": {
|
||||
"type": "string",
|
||||
"operation": "notExists",
|
||||
"singleValue": true
|
||||
},
|
||||
"leftValue": "={{ $json.settings.errorWorkflow }}",
|
||||
"rightValue": "=Default Error Handler"
|
||||
},
|
||||
{
|
||||
"id": "2a5799e9-2030-4281-bf11-e7f9777906c5",
|
||||
"operator": {
|
||||
"type": "string",
|
||||
"operation": "notEquals"
|
||||
},
|
||||
"leftValue": "={{ $json.id }}",
|
||||
"rightValue": "={{ $('get error handler').item.json.id }}"
|
||||
},
|
||||
{
|
||||
"id": "8bc4c2a0-e094-4426-8ae6-71b6e4fa9842",
|
||||
"operator": {
|
||||
"type": "boolean",
|
||||
"operation": "true",
|
||||
"singleValue": true
|
||||
},
|
||||
"leftValue": "={{ $json.active }}",
|
||||
"rightValue": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 2
|
||||
}
|
||||
],
|
||||
"pinData": {},
|
||||
"connections": {
|
||||
"n8n": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "active && no error handler set && not this handler workflow",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"set fields": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "n8n | update",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Error Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Gmail",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Schedule Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "get error handler",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"get error handler": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "n8n",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"active && no error handler set && not this handler workflow": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "set fields",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
83
workflows/Error/0545_Error_N8N_Import_Triggered.json
Normal file
83
workflows/Error/0545_Error_N8N_Import_Triggered.json
Normal file
@@ -0,0 +1,83 @@
|
||||
{
|
||||
"meta": {
|
||||
"instanceId": "84ba6d895254e080ac2b4916d987aa66b000f88d4d919a6b9c76848f9b8a7616",
|
||||
"templateId": "2349"
|
||||
},
|
||||
"nodes": [
|
||||
{
|
||||
"id": "d9c81685-d16e-45c0-a1ab-3927ef619568",
|
||||
"name": "Error Trigger",
|
||||
"type": "n8n-nodes-base.errorTrigger",
|
||||
"position": [
|
||||
380,
|
||||
240
|
||||
],
|
||||
"parameters": {},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "22089e9b-73ae-4d03-a11b-5f67f9b47fb4",
|
||||
"name": "Extract webhook data",
|
||||
"type": "n8n-nodes-base.code",
|
||||
"position": [
|
||||
820,
|
||||
240
|
||||
],
|
||||
"parameters": {
|
||||
"mode": "runOnceForEachItem",
|
||||
"jsCode": "const webhook_node_names = $json.workflowData.nodes.filter(x => x.type == 'n8n-nodes-base.webhook').map(x => x.name)\n\nconst webhook_data_array = webhook_node_names.map(n => $json.data.resultData.runData[n] ? $json.data.resultData.runData[n][0].data.main[0][0].json : null).filter(x => x != null)\n\nlet webhook_data = null;\nif (webhook_data_array.length > 0) {\n webhook_data = webhook_data_array[0]\n}\n\nreturn {\n 'webhook_node_names': webhook_node_names,\n 'webook_node_payload': webhook_data\n}"
|
||||
},
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "b7fb5443-3faf-4e59-b464-4d3ca131a84f",
|
||||
"name": "Get execution data",
|
||||
"type": "n8n-nodes-base.n8n",
|
||||
"position": [
|
||||
600,
|
||||
240
|
||||
],
|
||||
"parameters": {
|
||||
"options": {
|
||||
"activeWorkflows": true
|
||||
},
|
||||
"resource": "execution",
|
||||
"operation": "get",
|
||||
"executionId": "={{ $json.execution.id }}",
|
||||
"requestOptions": {}
|
||||
},
|
||||
"credentials": {
|
||||
"n8nApi": {
|
||||
"id": "eGEre3g3El08ZItb",
|
||||
"name": "n8n account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
}
|
||||
],
|
||||
"pinData": {},
|
||||
"connections": {
|
||||
"Error Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Get execution data",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Get execution data": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Extract webhook data",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
469
workflows/Error/0945_Error_Code_Send_Triggered.json
Normal file
469
workflows/Error/0945_Error_Code_Send_Triggered.json
Normal file
@@ -0,0 +1,469 @@
|
||||
{
|
||||
"id": "3b1q6ZJTxeONrpUV",
|
||||
"meta": {
|
||||
"instanceId": ""
|
||||
},
|
||||
"name": "Error Alert and Summarizer",
|
||||
"tags": [],
|
||||
"nodes": [
|
||||
{
|
||||
"id": "d29a5b06-1609-416f-bc74-0274d3321019",
|
||||
"name": "Error Trigger",
|
||||
"type": "n8n-nodes-base.errorTrigger",
|
||||
"position": [
|
||||
-600,
|
||||
-40
|
||||
],
|
||||
"parameters": {},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "a71d3052-a89b-4e8e-baee-7fe245575f42",
|
||||
"name": "OpenAI Chat Model",
|
||||
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
|
||||
"position": [
|
||||
528,
|
||||
180
|
||||
],
|
||||
"parameters": {
|
||||
"model": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "gpt-4o",
|
||||
"cachedResultName": "gpt-4o"
|
||||
},
|
||||
"options": {}
|
||||
},
|
||||
"credentials": {
|
||||
"openAiApi": {
|
||||
"id": "786",
|
||||
"name": "OpenAi account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
},
|
||||
{
|
||||
"id": "e71dee7b-4dfd-49ab-8939-f3808ee112d7",
|
||||
"name": "Structured Output Parser",
|
||||
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
|
||||
"position": [
|
||||
648,
|
||||
180
|
||||
],
|
||||
"parameters": {
|
||||
"jsonSchemaExample": "{\n\"diagnosis\":\"\",\n\"cause\":\"\",\n\"resolution\":\"\"\n}"
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
},
|
||||
{
|
||||
"id": "3611e9e8-f677-49c4-b06c-fa6c28f43930",
|
||||
"name": "SET EMAIL",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
-380,
|
||||
-40
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"assignments": {
|
||||
"assignments": [
|
||||
{
|
||||
"id": "45e1443a-fb44-42f8-96ad-423197c7265b",
|
||||
"name": "TO",
|
||||
"type": "string",
|
||||
"value": "myemail@myemail.com"
|
||||
},
|
||||
{
|
||||
"id": "968b05dc-f476-4e13-8166-e62005d0f936",
|
||||
"name": "CC",
|
||||
"type": "string",
|
||||
"value": "theiremail@theiremail.com"
|
||||
},
|
||||
{
|
||||
"id": "570663c5-29c0-44fb-9992-908b7cca8136",
|
||||
"name": "BCC",
|
||||
"type": "string",
|
||||
"value": "theiremail@theiremail.com"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 3.4
|
||||
},
|
||||
{
|
||||
"id": "3676f72e-d06d-44f8-be35-19efe09a257e",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
-450,
|
||||
-260
|
||||
],
|
||||
"parameters": {
|
||||
"color": 3,
|
||||
"height": 380,
|
||||
"content": "# SET YOUR EMAILS"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "f0b08a20-6ecc-4487-9a0a-30be07cc0cbb",
|
||||
"name": "Sticky Note1",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
-40,
|
||||
-260
|
||||
],
|
||||
"parameters": {
|
||||
"color": 3,
|
||||
"width": 280,
|
||||
"height": 380,
|
||||
"content": "# Enable/Disable Manual Executions"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "b35cd2a6-5f22-4e06-9bb0-880855c423a8",
|
||||
"name": "Remove Manual Exec",
|
||||
"type": "n8n-nodes-base.if",
|
||||
"position": [
|
||||
60,
|
||||
-40
|
||||
],
|
||||
"parameters": {
|
||||
"options": {
|
||||
"ignoreCase": true
|
||||
},
|
||||
"conditions": {
|
||||
"options": {
|
||||
"version": 2,
|
||||
"leftValue": "",
|
||||
"caseSensitive": false,
|
||||
"typeValidation": "strict"
|
||||
},
|
||||
"combinator": "and",
|
||||
"conditions": [
|
||||
{
|
||||
"id": "9b2f3ff3-db9c-406b-a97f-37620dc5fab9",
|
||||
"operator": {
|
||||
"type": "string",
|
||||
"operation": "notContains"
|
||||
},
|
||||
"leftValue": "={{ $json.mode }}",
|
||||
"rightValue": "manual"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.2
|
||||
},
|
||||
{
|
||||
"id": "2a33b02a-78f1-4243-ba7d-f217ea4d1895",
|
||||
"name": "Get Failed Exec",
|
||||
"type": "n8n-nodes-base.n8n",
|
||||
"position": [
|
||||
-160,
|
||||
-40
|
||||
],
|
||||
"parameters": {
|
||||
"options": {
|
||||
"activeWorkflows": true
|
||||
},
|
||||
"resource": "execution",
|
||||
"operation": "get",
|
||||
"executionId": "={{ $('Error Trigger').item.json.execution.id }}",
|
||||
"requestOptions": {}
|
||||
},
|
||||
"credentials": {
|
||||
"n8nApi": {
|
||||
"id": "786",
|
||||
"name": "n8n account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "b36ccbf9-4e47-44fc-aed3-424b6f121329",
|
||||
"name": "Extract Error Details",
|
||||
"type": "n8n-nodes-base.code",
|
||||
"position": [
|
||||
280,
|
||||
-40
|
||||
],
|
||||
"parameters": {
|
||||
"jsCode": "// 1) Grab your full execution JSON\nconst exec = items[0].json;\n\n// 2) Build execution‐level metadata\nconst meta = {\n executionId: exec.id,\n finished: exec.finished,\n mode: exec.mode,\n status: exec.status,\n createdAt: exec.createdAt,\n startedAt: exec.startedAt,\n stoppedAt: exec.stoppedAt,\n deletedAt: exec.deletedAt,\n workflowId: exec.workflowId,\n workflowName: exec.workflowData?.name,\n retryOf: exec.retryOf,\n retrySuccessId: exec.retrySuccessId,\n};\n\n// 3) Identify trigger node name from startData\nconst runNodeFilter = exec.data?.startData?.runNodeFilter || [];\nconst triggerNodeName = runNodeFilter[0] || null;\n\n// 4) Grab the raw trigger runData\nconst runData = exec.data?.resultData?.runData || {};\nconst triggerRuns = triggerNodeName ? (runData[triggerNodeName] || []) : [];\n\n// 5) Extract the JSON payload from the first run of the trigger\nlet triggerPayload = {};\nif (triggerRuns.length && triggerRuns[0].data?.main?.[0]?.[0]?.json) {\n triggerPayload = triggerRuns[0].data.main[0][0].json;\n}\n\n// 6) Merge trigger info into meta\nmeta.triggerNodeName = triggerNodeName;\nmeta.triggerPayload = triggerPayload;\n\n// 7) Now scan for all node errors, **excluding** any nodeName that contains “SERP”\nconst allErrors = [];\nfor (const [nodeName, runs] of Object.entries(runData)) {\n // Skip any of the SERP nodes\n if (nodeName.includes('SERP')) continue;\n\n runs.forEach(run => {\n if (run.executionStatus === 'error') {\n const err = run.error || exec.data.resultData.error || {};\n const nodeDef = err.node || run.node || {};\n\n allErrors.push({\n ...meta, // exec + trigger metadata\n\n nodeName,\n nodeId: nodeDef.id,\n nodeType: nodeDef.type,\n nodeLabel: nodeDef.name,\n\n startTime: run.startTime,\n executionTime: run.executionTime,\n source: run.source,\n\n errorName: err.name,\n errorMessage: err.message,\n errorDescription: err.description,\n httpCode: err.httpCode,\n messages: err.messages,\n context: err.context,\n stack: err.stack,\n\n parameters: nodeDef.parameters,\n credentials: nodeDef.credentials,\n });\n }\n });\n}\n\n// 8) Return results\nif (!allErrors.length) {\n return [{ json: { message: '✅ No (non‑SERP) errors found in this execution.' } }];\n}\nreturn allErrors.map(e => ({ json: e }));\n"
|
||||
},
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "a26fb0c8-99eb-466d-b201-89c402fa1af4",
|
||||
"name": "Error Solver Agent",
|
||||
"type": "@n8n/n8n-nodes-langchain.agent",
|
||||
"position": [
|
||||
500,
|
||||
-40
|
||||
],
|
||||
"parameters": {
|
||||
"text": "=Can you please help me with this error that occured in my n8n workflow? {{ JSON.stringify($json) }}",
|
||||
"options": {
|
||||
"systemMessage": "You are an seasoned n8n expert with specializations in managing n8n instances and workflows. The user will provide a detailed error json object and your goal is to review, analyze and understand the error and using your expertise diagnose the error and provide a detailed report to the user with your diagnosis, cause and resolution so the user understands and can immediately fix the issue."
|
||||
},
|
||||
"promptType": "define",
|
||||
"hasOutputParser": true
|
||||
},
|
||||
"typeVersion": 1.8
|
||||
},
|
||||
{
|
||||
"id": "8cfd7229-3ff1-4ba1-a67d-caa21be8064f",
|
||||
"name": "Set Diagnosis Fields",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
876,
|
||||
-40
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"assignments": {
|
||||
"assignments": [
|
||||
{
|
||||
"id": "fac5fbee-d63d-4148-b047-5ed5af4f2574",
|
||||
"name": "error.diagnosis",
|
||||
"type": "string",
|
||||
"value": "={{ $json.output.diagnosis }}"
|
||||
},
|
||||
{
|
||||
"id": "ece9388d-f667-4984-a143-7241f622fe76",
|
||||
"name": "error.cause",
|
||||
"type": "string",
|
||||
"value": "={{ $json.output.cause }}"
|
||||
},
|
||||
{
|
||||
"id": "acb6b34a-a651-42fc-a44a-331b2e0d745c",
|
||||
"name": "error.resolution",
|
||||
"type": "string",
|
||||
"value": "={{ $json.output.resolution }}"
|
||||
},
|
||||
{
|
||||
"id": "c765754b-d6d5-4592-ac3f-99a350bc3c19",
|
||||
"name": "error.workflowName",
|
||||
"type": "string",
|
||||
"value": "={{ $('Extract Error Details').item.json.workflowName }}"
|
||||
},
|
||||
{
|
||||
"id": "dabebc62-3e0c-4d22-afbf-54ba66a912fb",
|
||||
"name": "error.workflowId",
|
||||
"type": "string",
|
||||
"value": "={{ $('Extract Error Details').item.json.workflowId }}"
|
||||
},
|
||||
{
|
||||
"id": "6ab19800-9a0f-439f-bf62-7a7afc5bf958",
|
||||
"name": "workflowLink",
|
||||
"type": "string",
|
||||
"value": "={{ $execution.resumeUrl.split('/').slice(0, 3).join('/') }}/workflow/{{ $('Extract Error Details').item.json.workflowId }}"
|
||||
},
|
||||
{
|
||||
"id": "29daaea5-052b-46d4-8192-141db159bff2",
|
||||
"name": "error.executionId",
|
||||
"type": "string",
|
||||
"value": "={{ $('Extract Error Details').item.json.executionId }}"
|
||||
},
|
||||
{
|
||||
"id": "9e4e553c-c82b-41ec-8ee2-14162cdc3bd8",
|
||||
"name": "executionLink",
|
||||
"type": "string",
|
||||
"value": "={{ $execution.resumeUrl.split('/').slice(0, 3).join('/') }}/workflow/{{ $('Extract Error Details').item.json.workflowId }}/executions/{{ $('Extract Error Details').item.json.executionId }}"
|
||||
},
|
||||
{
|
||||
"id": "7269ea9f-ed49-46cd-89f2-d4a467da529d",
|
||||
"name": "error.finished",
|
||||
"type": "boolean",
|
||||
"value": "={{ $('Extract Error Details').item.json.finished }}"
|
||||
},
|
||||
{
|
||||
"id": "29a6e6d2-5058-4dd9-b2f9-3980a6a9073a",
|
||||
"name": "error.startedAt",
|
||||
"type": "string",
|
||||
"value": "={{ $('Extract Error Details').item.json.startedAt }}"
|
||||
},
|
||||
{
|
||||
"id": "a0ad0e13-5a6e-48db-9a80-74c09434de7f",
|
||||
"name": "error.nodeName",
|
||||
"type": "string",
|
||||
"value": "={{ $('Extract Error Details').item.json.nodeName }}"
|
||||
},
|
||||
{
|
||||
"id": "6c1001d4-a581-4520-9f16-a2c7cf0e1f84",
|
||||
"name": "error.previousNode",
|
||||
"type": "string",
|
||||
"value": "={{ $('Extract Error Details').item.json.source[0].previousNode }}"
|
||||
},
|
||||
{
|
||||
"id": "8c3402ca-3f15-44ae-9b96-ea37c174334c",
|
||||
"name": "rawJson",
|
||||
"type": "string",
|
||||
"value": "={{ JSON.stringify($('Extract Error Details').item.json) }}"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 3.4
|
||||
},
|
||||
{
|
||||
"id": "9e95edf0-b2f1-443b-9ac4-3e3b3311cad5",
|
||||
"name": "Send Gmail",
|
||||
"type": "n8n-nodes-base.gmail",
|
||||
"position": [
|
||||
1316,
|
||||
-40
|
||||
],
|
||||
"webhookId": "2f253c1f-36c3-4d58-ba2f-3a50bb78f188",
|
||||
"parameters": {
|
||||
"sendTo": "={{ $('SET EMAIL').item.json.TO }}",
|
||||
"message": "={{ $json.html }}",
|
||||
"options": {
|
||||
"ccList": "={{ $('SET EMAIL').item.json.CC }}",
|
||||
"bccList": "={{ $('SET EMAIL').item.json.BCC }}",
|
||||
"appendAttribution": true
|
||||
},
|
||||
"subject": "={{ $json.subject }}"
|
||||
},
|
||||
"credentials": {
|
||||
"gmailOAuth2": {
|
||||
"id": "786",
|
||||
"name": "Gmail account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.1
|
||||
},
|
||||
{
|
||||
"id": "1705ee42-0be4-41a2-8ff9-f6963eef7382",
|
||||
"name": "Generate Email",
|
||||
"type": "n8n-nodes-base.code",
|
||||
"position": [
|
||||
1100,
|
||||
-40
|
||||
],
|
||||
"parameters": {
|
||||
"jsCode": "// 1. Pull in your error payload\nconst rawInput = items[0].json;\nconst parsed = typeof rawInput === 'string' ? JSON.parse(rawInput) : rawInput;\nconst errorArray = Array.isArray(parsed) ? parsed : [parsed];\n\n// 2. Build HTML & Markdown sections\nlet htmlSections = '';\n\n\nfor (const errObj of errorArray) {\n const {\n error: {\n workflowName,\n executionId,\n nodeName,\n previousNode,\n diagnosis,\n cause,\n resolution,\n startedAt,\n },\n workflowLink,\n executionLink,\n } = errObj;\n\n // HTML block\n htmlSections += `\n <div style=\"border:1px solid #ddd;border-radius:4px;padding:16px;margin-bottom:20px;background:#fafafa;\">\n <h3 style=\"margin:0 0 10px;color:#c0392b;font-family:Arial,sans-serif;\">\n 🛑 ${workflowName} — Error in node: ${nodeName}\n </h3>\n <p style=\"margin:4px 0;font-family:Arial,sans-serif;\">\n <strong>Workflow:</strong> \n <a href=\"${workflowLink}\" style=\"color:#2980b9;text-decoration:none;\">\n ${workflowName}\n </a><br/>\n <strong>Execution:</strong> \n <a href=\"${executionLink}\" style=\"color:#2980b9;text-decoration:none;\">\n #${executionId}\n </a><br/>\n <strong>Previous Node:</strong> ${previousNode}<br/>\n <strong>Started At:</strong> ${new Date(startedAt).toLocaleString('en-US', { timeZone: 'America/New_York' })}\n </p>\n <hr style=\"border:none;border-top:1px solid #ccc;margin:12px 0;\"/>\n <h4 style=\"margin:0 0 6px;color:#e67e22;font-family:Arial,sans-serif;\">🔍 Diagnosis</h4>\n <p style=\"margin:4px 0 12px;font-family:Arial,sans-serif;\">${diagnosis}</p>\n <h4 style=\"margin:0 0 6px;color:#e67e22;font-family:Arial,sans-serif;\">⚙️ Cause</h4>\n <p style=\"margin:4px 0 12px;font-family:Arial,sans-serif;\">${cause}</p>\n <h4 style=\"margin:0 0 6px;color:#e67e22;font-family:Arial,sans-serif;\">✅ Resolution</h4>\n <p style=\"white-space:pre-wrap;margin:4px 0;font-family:Arial,sans-serif;\">${resolution}</p>\n </div>`;\n\n// 3. Wrap up\nconst html = `\n <div style=\"font-family:Arial,sans-serif;color:#333;background:#fff;padding:20px;\">\n <h2 style=\"margin-top:0;color:#2c3e50;\">Automated Error Report</h2>\n ${htmlSections}\n <p style=\"font-size:12px;color:#777;font-family:Arial,sans-serif;\">\n This message was generated automatically by \n <a href=\"https://realsimple.dev\" style=\"color:#777;text-decoration:none;\"><b>Real Simple Solutions</b></a>.\n</p>\n<div style=\"background:#f0f4ff;padding:8px 12px;margin-top:6px;border-radius:6px;font-size:12px;font-family:Arial,sans-serif;\">\n ✨ <strong>Want more n8n AI automation templates?</strong><br>\n Check out our full collection on \n <a href=\"https://joeper.es/4jXyRub\" style=\"color:#0066cc;text-decoration:none;\"><b>Gumroad</b></a>.\n</div>\n </div>\n`;\n\n// 4. Return all three\nreturn [\n {\n json: {\n subject: `🚨 n8n Error: ${errorArray[0].error.workflowName} (#${errorArray[0].error.executionId})`,\n html\n },\n },\n];\n"
|
||||
},
|
||||
"typeVersion": 2
|
||||
}
|
||||
],
|
||||
"active": true,
|
||||
"pinData": {},
|
||||
"settings": {
|
||||
"executionOrder": "v1"
|
||||
},
|
||||
"versionId": "be484a20-26cd-4df4-a993-f7d01c2956e6",
|
||||
"connections": {
|
||||
"SET EMAIL": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Get Failed Exec",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Error Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "SET EMAIL",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Generate Email": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Send Gmail",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Get Failed Exec": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Remove Manual Exec",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"OpenAI Chat Model": {
|
||||
"ai_languageModel": [
|
||||
[
|
||||
{
|
||||
"node": "Error Solver Agent",
|
||||
"type": "ai_languageModel",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Error Solver Agent": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Set Diagnosis Fields",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Remove Manual Exec": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Extract Error Details",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Set Diagnosis Fields": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Generate Email",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Extract Error Details": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Error Solver Agent",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Structured Output Parser": {
|
||||
"ai_outputParser": [
|
||||
[
|
||||
{
|
||||
"node": "Error Solver Agent",
|
||||
"type": "ai_outputParser",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
48
workflows/Error/1036_Error_Twilio_Send_Triggered.json
Normal file
48
workflows/Error/1036_Error_Twilio_Send_Triggered.json
Normal file
@@ -0,0 +1,48 @@
|
||||
{
|
||||
"id": "56",
|
||||
"name": "Send an SMS when a workflow fails",
|
||||
"nodes": [
|
||||
{
|
||||
"name": "Error Trigger",
|
||||
"type": "n8n-nodes-base.errorTrigger",
|
||||
"position": [
|
||||
550,
|
||||
260
|
||||
],
|
||||
"parameters": {},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "Twilio",
|
||||
"type": "n8n-nodes-base.twilio",
|
||||
"position": [
|
||||
750,
|
||||
260
|
||||
],
|
||||
"parameters": {
|
||||
"to": "",
|
||||
"from": "",
|
||||
"message": "=Your workflow with ID: {{$node[\"Error Trigger\"].json[\"workflow\"][\"id\"]}} and name: {{$node[\"Error Trigger\"].json[\"workflow\"][\"name\"]}} failed to execute."
|
||||
},
|
||||
"credentials": {
|
||||
"twilioApi": "twilio-credentials"
|
||||
},
|
||||
"typeVersion": 1
|
||||
}
|
||||
],
|
||||
"active": false,
|
||||
"settings": {},
|
||||
"connections": {
|
||||
"Error Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Twilio",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
48
workflows/Error/1099_Error_Gmail_Send_Triggered.json
Normal file
48
workflows/Error/1099_Error_Gmail_Send_Triggered.json
Normal file
@@ -0,0 +1,48 @@
|
||||
{
|
||||
"nodes": [
|
||||
{
|
||||
"name": "Error Trigger",
|
||||
"type": "n8n-nodes-base.errorTrigger",
|
||||
"position": [
|
||||
450,
|
||||
300
|
||||
],
|
||||
"parameters": {},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "Gmail",
|
||||
"type": "n8n-nodes-base.gmail",
|
||||
"position": [
|
||||
650,
|
||||
300
|
||||
],
|
||||
"parameters": {
|
||||
"toList": [
|
||||
"recipient@email.com"
|
||||
],
|
||||
"message": "=Workflow: {{$json[\"workflow\"][\"name\"]}}\nError: {{$json[\"execution\"][\"error\"][\"message\"]}}\nLast node executed: {{$json[\"execution\"][\"lastNodeExecuted\"]}}\nExecution URL: {{$json[\"execution\"][\"url\"]}}\nStacktrace:\n{{$json[\"execution\"][\"error\"][\"stack\"]}}",
|
||||
"subject": "=n8n Workflow Failure: {{$json[\"workflow\"][\"name\"]}}",
|
||||
"resource": "message",
|
||||
"additionalFields": {}
|
||||
},
|
||||
"credentials": {
|
||||
"gmailOAuth2": "TBD"
|
||||
},
|
||||
"typeVersion": 1
|
||||
}
|
||||
],
|
||||
"connections": {
|
||||
"Error Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Gmail",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
45
workflows/Error/1179_Error_Mailgun_Automate_Triggered.json
Normal file
45
workflows/Error/1179_Error_Mailgun_Automate_Triggered.json
Normal file
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"nodes": [
|
||||
{
|
||||
"name": "Error Trigger",
|
||||
"type": "n8n-nodes-base.errorTrigger",
|
||||
"position": [
|
||||
250,
|
||||
500
|
||||
],
|
||||
"parameters": {},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "Mailgun",
|
||||
"type": "n8n-nodes-base.mailgun",
|
||||
"position": [
|
||||
450,
|
||||
500
|
||||
],
|
||||
"parameters": {
|
||||
"text": "=Error: {{$node[\"Error Trigger\"].data[\"execution\"][\"error\"][\"message\"]}}\n\nStack Trace:\n{{$node[\"Error Trigger\"].data[\"execution\"][\"error\"][\"stack\"]}}",
|
||||
"subject": "=Workflow Error: {{$node[\"Error Trigger\"].data[\"workflow\"][\"name\"]}}",
|
||||
"toEmail": "",
|
||||
"fromEmail": ""
|
||||
},
|
||||
"credentials": {
|
||||
"mailgunApi": ""
|
||||
},
|
||||
"typeVersion": 1
|
||||
}
|
||||
],
|
||||
"connections": {
|
||||
"Error Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Mailgun",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
544
workflows/Error/1237_Error_Telegram_Automation_Webhook.json
Normal file
544
workflows/Error/1237_Error_Telegram_Automation_Webhook.json
Normal file
@@ -0,0 +1,544 @@
|
||||
{
|
||||
"id": "9nBQ1BfwxLhuzTcK",
|
||||
"meta": {
|
||||
"instanceId": "3378b0d68c3b7ebfc71b79896d94e1a044dec38e99a1160aed4e9c323910fbe2"
|
||||
},
|
||||
"name": "google drive to instagram, tiktok and youtube",
|
||||
"tags": [],
|
||||
"nodes": [
|
||||
{
|
||||
"id": "b6c1d2f5-a8de-42dc-a164-3b1e80b2f19d",
|
||||
"name": "Google Drive Trigger",
|
||||
"type": "n8n-nodes-base.googleDriveTrigger",
|
||||
"position": [
|
||||
220,
|
||||
320
|
||||
],
|
||||
"parameters": {
|
||||
"event": "fileCreated",
|
||||
"options": {},
|
||||
"pollTimes": {
|
||||
"item": [
|
||||
{
|
||||
"mode": "everyMinute"
|
||||
}
|
||||
]
|
||||
},
|
||||
"triggerOn": "specificFolder",
|
||||
"folderToWatch": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "18m0i341QLQuyWuHv_FBdz8-r-QDtofYm",
|
||||
"cachedResultUrl": "https://drive.google.com/drive/folders/18m0i341QLQuyWuHv_FBdz8-r-QDtofYm",
|
||||
"cachedResultName": "Influencersde"
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"googleDriveOAuth2Api": {
|
||||
"id": "2TbhWtnbRfSloGxX",
|
||||
"name": "Google Drive account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "1dda484a-f6f5-4677-85a3-09b2a47e69c4",
|
||||
"name": "Google Drive",
|
||||
"type": "n8n-nodes-base.googleDrive",
|
||||
"position": [
|
||||
400,
|
||||
320
|
||||
],
|
||||
"parameters": {
|
||||
"fileId": {
|
||||
"__rl": true,
|
||||
"mode": "",
|
||||
"value": "={{ $json.id || $json.data[0].id }}"
|
||||
},
|
||||
"options": {},
|
||||
"operation": "download",
|
||||
"authentication": "oAuth2"
|
||||
},
|
||||
"credentials": {
|
||||
"googleDriveOAuth2Api": {
|
||||
"id": "2TbhWtnbRfSloGxX",
|
||||
"name": "Google Drive account"
|
||||
}
|
||||
},
|
||||
"retryOnFail": true,
|
||||
"typeVersion": 1,
|
||||
"waitBetweenTries": 5000
|
||||
},
|
||||
{
|
||||
"id": "f9388923-b20e-40f0-ba10-fd00b463b1a7",
|
||||
"name": "Error Trigger",
|
||||
"type": "n8n-nodes-base.errorTrigger",
|
||||
"position": [
|
||||
620,
|
||||
660
|
||||
],
|
||||
"parameters": {},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "eda45ad6-d976-4665-9b6d-dae4c3212191",
|
||||
"name": "Telegram",
|
||||
"type": "n8n-nodes-base.telegram",
|
||||
"position": [
|
||||
960,
|
||||
640
|
||||
],
|
||||
"webhookId": "f6729386-9905-45f1-800f-4fe01a06ac9c",
|
||||
"parameters": {
|
||||
"text": "=🔔 ERROR SUBIENDO VIDEOS",
|
||||
"additionalFields": {
|
||||
"appendAttribution": false
|
||||
}
|
||||
},
|
||||
"retryOnFail": true,
|
||||
"typeVersion": 1.2,
|
||||
"waitBetweenTries": 5000
|
||||
},
|
||||
{
|
||||
"id": "7b1d6015-49b8-423c-be64-e905ff791574",
|
||||
"name": "If",
|
||||
"type": "n8n-nodes-base.if",
|
||||
"position": [
|
||||
760,
|
||||
660
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"conditions": {
|
||||
"options": {
|
||||
"version": 1,
|
||||
"leftValue": "",
|
||||
"caseSensitive": true,
|
||||
"typeValidation": "strict"
|
||||
},
|
||||
"combinator": "and",
|
||||
"conditions": [
|
||||
{
|
||||
"id": "9fadb3fd-2547-42bd-8f40-f410a97dcf57",
|
||||
"operator": {
|
||||
"type": "string",
|
||||
"operation": "notContains"
|
||||
},
|
||||
"leftValue": "={{ $json.trigger.error.message }}",
|
||||
"rightValue": "The DNS server returned an error, perhaps the server is offline"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.1
|
||||
},
|
||||
{
|
||||
"id": "6e9882aa-b11f-4c1a-8600-eedda9d92046",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
-220,
|
||||
0
|
||||
],
|
||||
"parameters": {
|
||||
"width": 860,
|
||||
"height": 260,
|
||||
"content": "## Description\nThis automation allows you to upload a video to a configured Google Drive folder, and it will automatically create descriptions and upload it to Instagram and TikTok.\n\n## How to Use\n1. Generate an API token at upload-post.com and add to Upload to Tiktok and Upload to Instagram nodes\n2. Configure your Google Drive folder\n3. Customize the OpenAI prompt for your specific use case\n4. Optional: Configure Telegram for error notifications\n\n## Requirements\n- upload-post.com account\n- Google Drive account\n- OpenAI API key\n"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "b3eed1dc-8273-4593-ab07-8860fffa0907",
|
||||
"name": "Get Audio from Video",
|
||||
"type": "@n8n/n8n-nodes-langchain.openAi",
|
||||
"notes": "Extract the audio from video for generate the description",
|
||||
"position": [
|
||||
860,
|
||||
320
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"resource": "audio",
|
||||
"operation": "transcribe"
|
||||
},
|
||||
"credentials": {
|
||||
"openAiApi": {
|
||||
"id": "XJdxgMSXFgwReSsh",
|
||||
"name": "n8n key"
|
||||
}
|
||||
},
|
||||
"notesInFlow": true,
|
||||
"retryOnFail": true,
|
||||
"typeVersion": 1,
|
||||
"waitBetweenTries": 5000
|
||||
},
|
||||
{
|
||||
"id": "b057fea0-087e-4c7f-b5ac-6d16ca658437",
|
||||
"name": "Read video from Google Drive",
|
||||
"type": "n8n-nodes-base.writeBinaryFile",
|
||||
"position": [
|
||||
580,
|
||||
320
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"fileName": "={{ $json.originalFilename.replaceAll(\" \", \"_\") }}"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "f9296b8f-b631-4df4-b8b5-aa7139dd65cd",
|
||||
"name": "Generate Description for Videos in Tiktok and Instagram",
|
||||
"type": "@n8n/n8n-nodes-langchain.openAi",
|
||||
"notes": "Request to OpenAi for generate description with the audio extracted from the video",
|
||||
"position": [
|
||||
1060,
|
||||
320
|
||||
],
|
||||
"parameters": {
|
||||
"modelId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "gpt-4o",
|
||||
"cachedResultName": "GPT-4O"
|
||||
},
|
||||
"options": {},
|
||||
"messages": {
|
||||
"values": [
|
||||
{
|
||||
"role": "system",
|
||||
"content": "You are an expert assistant in creating engaging social media video titles."
|
||||
},
|
||||
{
|
||||
"content": "=I'm going to upload a video to social media. Here are some examples of descriptions that have worked well on Instagram:\n\nFollow and save for later. Discover InfluencersDe, the AI tool that automates TikTok creation and publishing to drive traffic to your website. Perfect for entrepreneurs and brands.\n#digitalmarketing #ugc #tiktok #ai #influencersde #contentcreation\n\nDiscover the video marketing revolution with InfluencersDe!\n.\n.\n.\n#socialmedia #videomarketing #ai #tiktok #influencersde #growthhacking\n\nDon't miss InfluencersDe, the tool that transforms your marketing strategy with just one click!\n.\n.\n.\n#ugc #ai #tiktok #digitalmarketing #influencersde #branding\n\nCan you create another title for the Instagram post based on this recognized audio from the video?\n\nAudio: {{ $('Get Audio from Video').item.json.text }}\n\nIMPORTANT: Reply only with the description, don't add anything else."
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"openAiApi": {
|
||||
"id": "XJdxgMSXFgwReSsh",
|
||||
"name": "n8n key"
|
||||
}
|
||||
},
|
||||
"notesInFlow": true,
|
||||
"retryOnFail": true,
|
||||
"typeVersion": 1.4,
|
||||
"waitBetweenTries": 5000
|
||||
},
|
||||
{
|
||||
"id": "e80758fd-5532-48b0-b663-085629137fc0",
|
||||
"name": "Read Video from Google Drive",
|
||||
"type": "n8n-nodes-base.readBinaryFile",
|
||||
"position": [
|
||||
1620,
|
||||
100
|
||||
],
|
||||
"parameters": {
|
||||
"filePath": "={{ $('Read video from Google Drive').item.json.originalFilename.replaceAll(\" \", \"_\") }}",
|
||||
"dataPropertyName": "datavideo"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "8f13c601-4282-4a44-8e8a-dc88e4165ee4",
|
||||
"name": "Read Video from Google Drive2",
|
||||
"type": "n8n-nodes-base.readBinaryFile",
|
||||
"position": [
|
||||
1620,
|
||||
400
|
||||
],
|
||||
"parameters": {
|
||||
"filePath": "={{ $('Read video from Google Drive').item.json.originalFilename.replaceAll(\" \", \"_\") }}",
|
||||
"dataPropertyName": "datavideo"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "1b46976e-be37-49bd-b77b-e48d8e619954",
|
||||
"name": "Upload Video and Description to Tiktok",
|
||||
"type": "n8n-nodes-base.httpRequest",
|
||||
"notes": "Generate in upload-post.com the token and add to the credentials in the header-> Authorization: Apikey (token here)",
|
||||
"position": [
|
||||
1880,
|
||||
100
|
||||
],
|
||||
"parameters": {
|
||||
"url": "https://api.upload-post.com/api/upload",
|
||||
"method": "POST",
|
||||
"options": {},
|
||||
"sendBody": true,
|
||||
"contentType": "multipart-form-data",
|
||||
"authentication": "genericCredentialType",
|
||||
"bodyParameters": {
|
||||
"parameters": [
|
||||
{
|
||||
"name": "title",
|
||||
"value": "={{ $('Generate Description for Videos in Tiktok and Instagram').item.json.message.content.replaceAll(\"\\\"\", \"\") }}"
|
||||
},
|
||||
{
|
||||
"name": "platform[]",
|
||||
"value": "tiktok"
|
||||
},
|
||||
{
|
||||
"name": "video",
|
||||
"parameterType": "formBinaryData",
|
||||
"inputDataFieldName": "datavideo"
|
||||
},
|
||||
{
|
||||
"name": "user",
|
||||
"value": "Add user generated in upload-post"
|
||||
}
|
||||
]
|
||||
},
|
||||
"genericAuthType": "httpHeaderAuth"
|
||||
},
|
||||
"credentials": {
|
||||
"httpHeaderAuth": {
|
||||
"id": "WNjAx7UqrEZ1JDrR",
|
||||
"name": "VituManco"
|
||||
}
|
||||
},
|
||||
"notesInFlow": true,
|
||||
"typeVersion": 4.2
|
||||
},
|
||||
{
|
||||
"id": "0404a57f-2c1a-4ccd-90df-893dd01acaa0",
|
||||
"name": "Upload Video and Description to Instagram",
|
||||
"type": "n8n-nodes-base.httpRequest",
|
||||
"notes": "Generate in upload-post.com the token and add to the credentials in the header-> Authorization: Apikey (token here)",
|
||||
"position": [
|
||||
1880,
|
||||
400
|
||||
],
|
||||
"parameters": {
|
||||
"url": "https://api.upload-post.com/api/upload",
|
||||
"method": "POST",
|
||||
"options": {},
|
||||
"sendBody": true,
|
||||
"contentType": "multipart-form-data",
|
||||
"authentication": "genericCredentialType",
|
||||
"bodyParameters": {
|
||||
"parameters": [
|
||||
{
|
||||
"name": "title",
|
||||
"value": "={{ $('Generate Description for Videos in Tiktok and Instagram').item.json.message.content.replaceAll(\"\\\"\", \"\") }}"
|
||||
},
|
||||
{
|
||||
"name": "platform[]",
|
||||
"value": "instagram"
|
||||
},
|
||||
{
|
||||
"name": "video",
|
||||
"parameterType": "formBinaryData",
|
||||
"inputDataFieldName": "datavideo"
|
||||
},
|
||||
{
|
||||
"name": "user",
|
||||
"value": "Add user generated in upload-post"
|
||||
}
|
||||
]
|
||||
},
|
||||
"genericAuthType": "httpHeaderAuth"
|
||||
},
|
||||
"credentials": {
|
||||
"httpHeaderAuth": {
|
||||
"id": "47dO31ED0WIaJkR6",
|
||||
"name": "Header Auth account"
|
||||
}
|
||||
},
|
||||
"notesInFlow": true,
|
||||
"typeVersion": 4.2
|
||||
},
|
||||
{
|
||||
"id": "358da7b7-2d0a-475b-a10d-ffc499b5e99d",
|
||||
"name": "Read Video from Google Drive3",
|
||||
"type": "n8n-nodes-base.readBinaryFile",
|
||||
"position": [
|
||||
1620,
|
||||
660
|
||||
],
|
||||
"parameters": {
|
||||
"filePath": "={{ $('Read video from Google Drive').item.json.originalFilename.replaceAll(\" \", \"_\") }}",
|
||||
"dataPropertyName": "datavideo"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "0e46ee9b-e466-4a5d-8916-3836eed4fc2d",
|
||||
"name": "Upload Video and Description to Youtube",
|
||||
"type": "n8n-nodes-base.httpRequest",
|
||||
"notes": "Generate in upload-post.com the token and add to the credentials in the header-> Authorization: Apikey (token here)",
|
||||
"position": [
|
||||
1880,
|
||||
660
|
||||
],
|
||||
"parameters": {
|
||||
"url": "https://api.upload-post.com/api/upload",
|
||||
"method": "POST",
|
||||
"options": {},
|
||||
"sendBody": true,
|
||||
"contentType": "multipart-form-data",
|
||||
"authentication": "genericCredentialType",
|
||||
"bodyParameters": {
|
||||
"parameters": [
|
||||
{
|
||||
"name": "title",
|
||||
"value": "={{ $('Generate Description for Videos in Tiktok and Instagram').item.json.message.content.replaceAll(\"\\\"\", \"\").substring(0, 70) }}\n"
|
||||
},
|
||||
{
|
||||
"name": "platform[]",
|
||||
"value": "youtube"
|
||||
},
|
||||
{
|
||||
"name": "video",
|
||||
"parameterType": "formBinaryData",
|
||||
"inputDataFieldName": "datavideo"
|
||||
},
|
||||
{
|
||||
"name": "user",
|
||||
"value": "test2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"genericAuthType": "httpHeaderAuth"
|
||||
},
|
||||
"credentials": {
|
||||
"httpHeaderAuth": {
|
||||
"id": "47dO31ED0WIaJkR6",
|
||||
"name": "Header Auth account"
|
||||
}
|
||||
},
|
||||
"notesInFlow": true,
|
||||
"typeVersion": 4.2
|
||||
}
|
||||
],
|
||||
"active": false,
|
||||
"pinData": {},
|
||||
"settings": {
|
||||
"executionOrder": "v1"
|
||||
},
|
||||
"versionId": "13975e04-a6c4-42d0-887c-e6c4ff219f42",
|
||||
"connections": {
|
||||
"If": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Telegram",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Google Drive": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Read video from Google Drive",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Error Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "If",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Get Audio from Video": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Generate Description for Videos in Tiktok and Instagram",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Google Drive Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Google Drive",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Read Video from Google Drive": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Upload Video and Description to Tiktok",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Read video from Google Drive": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Get Audio from Video",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Read Video from Google Drive2": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Upload Video and Description to Instagram",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Read Video from Google Drive3": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Upload Video and Description to Youtube",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Generate Description for Videos in Tiktok and Instagram": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Read Video from Google Drive",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
},
|
||||
{
|
||||
"node": "Read Video from Google Drive2",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
},
|
||||
{
|
||||
"node": "Read Video from Google Drive3",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
474
workflows/Error/1715_Error_Telegram_Automation_Webhook.json
Normal file
474
workflows/Error/1715_Error_Telegram_Automation_Webhook.json
Normal file
@@ -0,0 +1,474 @@
|
||||
{
|
||||
"id": "cZPEH5aMMZNy61xs",
|
||||
"meta": {
|
||||
"instanceId": "3378b0d68c3b7ebfc71b79896d94e1a044dec38e99a1160aed4e9c323910fbe2",
|
||||
"templateCredsSetupCompleted": true
|
||||
},
|
||||
"name": "template in store",
|
||||
"tags": [],
|
||||
"nodes": [
|
||||
{
|
||||
"id": "14f93cdb-72cb-419a-b8d7-a68ae9383290",
|
||||
"name": "Google Drive Trigger",
|
||||
"type": "n8n-nodes-base.googleDriveTrigger",
|
||||
"position": [
|
||||
440,
|
||||
320
|
||||
],
|
||||
"parameters": {
|
||||
"event": "fileCreated",
|
||||
"options": {},
|
||||
"pollTimes": {
|
||||
"item": [
|
||||
{
|
||||
"mode": "everyMinute"
|
||||
}
|
||||
]
|
||||
},
|
||||
"triggerOn": "specificFolder",
|
||||
"folderToWatch": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "18m0i341QLQuyWuHv_FBdz8-r-QDtofYm",
|
||||
"cachedResultUrl": "https://drive.google.com/drive/folders/18m0i341QLQuyWuHv_FBdz8-r-QDtofYm",
|
||||
"cachedResultName": "Influencersde"
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"googleDriveOAuth2Api": {
|
||||
"id": "2TbhWtnbRfSloGxX",
|
||||
"name": "Google Drive account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "d4ab0d11-b110-46fa-9cd2-6091737c302e",
|
||||
"name": "Google Drive",
|
||||
"type": "n8n-nodes-base.googleDrive",
|
||||
"position": [
|
||||
620,
|
||||
320
|
||||
],
|
||||
"parameters": {
|
||||
"fileId": {
|
||||
"__rl": true,
|
||||
"mode": "",
|
||||
"value": "={{ $json.id || $json.data[0].id }}"
|
||||
},
|
||||
"options": {},
|
||||
"operation": "download",
|
||||
"authentication": "oAuth2"
|
||||
},
|
||||
"credentials": {
|
||||
"googleDriveOAuth2Api": {
|
||||
"id": "2TbhWtnbRfSloGxX",
|
||||
"name": "Google Drive account"
|
||||
}
|
||||
},
|
||||
"retryOnFail": true,
|
||||
"typeVersion": 1,
|
||||
"waitBetweenTries": 5000
|
||||
},
|
||||
{
|
||||
"id": "fde9df88-3f9e-4732-bb1c-72eb33ce6826",
|
||||
"name": "Error Trigger",
|
||||
"type": "n8n-nodes-base.errorTrigger",
|
||||
"position": [
|
||||
840,
|
||||
660
|
||||
],
|
||||
"parameters": {},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "ecfe1ad1-6887-492b-a2f7-f9b6c43f9b91",
|
||||
"name": "Telegram",
|
||||
"type": "n8n-nodes-base.telegram",
|
||||
"position": [
|
||||
1180,
|
||||
640
|
||||
],
|
||||
"webhookId": "f6729386-9905-45f1-800f-4fe01a06ac9c",
|
||||
"parameters": {
|
||||
"text": "=\ud83d\udd14 ERROR SUBIENDO VIDEOS",
|
||||
"chatId": "-4127128831",
|
||||
"additionalFields": {
|
||||
"appendAttribution": false
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"telegramApi": {
|
||||
"id": "vzA62UXRgiFICuPP",
|
||||
"name": "Telegram account"
|
||||
}
|
||||
},
|
||||
"retryOnFail": true,
|
||||
"typeVersion": 1.2,
|
||||
"waitBetweenTries": 5000
|
||||
},
|
||||
{
|
||||
"id": "6ed274c7-726f-40aa-92b0-70768dc053a5",
|
||||
"name": "If",
|
||||
"type": "n8n-nodes-base.if",
|
||||
"position": [
|
||||
980,
|
||||
660
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"conditions": {
|
||||
"options": {
|
||||
"version": 1,
|
||||
"leftValue": "",
|
||||
"caseSensitive": true,
|
||||
"typeValidation": "strict"
|
||||
},
|
||||
"combinator": "and",
|
||||
"conditions": [
|
||||
{
|
||||
"id": "9fadb3fd-2547-42bd-8f40-f410a97dcf57",
|
||||
"operator": {
|
||||
"type": "string",
|
||||
"operation": "notContains"
|
||||
},
|
||||
"leftValue": "={{ $json.trigger.error.message }}",
|
||||
"rightValue": "The DNS server returned an error, perhaps the server is offline"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.1
|
||||
},
|
||||
{
|
||||
"id": "dd4b2dfa-ccba-45d8-b388-755888343b4c",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"parameters": {
|
||||
"width": 860,
|
||||
"height": 260,
|
||||
"content": "## Description\nThis automation allows you to upload a video to a configured Google Drive folder, and it will automatically create descriptions and upload it to Instagram and TikTok.\n\n## How to Use\n1. Generate an API token at upload-post.com and add to Upload to Tiktok and Upload to Instagram nodes\n2. Configure your Google Drive folder\n3. Customize the OpenAI prompt for your specific use case\n4. Optional: Configure Telegram for error notifications\n\n## Requirements\n- upload-post.com account\n- Google Drive account\n- OpenAI API key\n"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "299e3e95-dbcb-4798-b843-a4424ce3f3bf",
|
||||
"name": "Get Audio from Video",
|
||||
"type": "@n8n/n8n-nodes-langchain.openAi",
|
||||
"notes": "Extract the audio from video for generate the description",
|
||||
"position": [
|
||||
1080,
|
||||
320
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"resource": "audio",
|
||||
"operation": "transcribe"
|
||||
},
|
||||
"credentials": {
|
||||
"openAiApi": {
|
||||
"id": "XJdxgMSXFgwReSsh",
|
||||
"name": "n8n key"
|
||||
}
|
||||
},
|
||||
"notesInFlow": true,
|
||||
"retryOnFail": true,
|
||||
"typeVersion": 1,
|
||||
"waitBetweenTries": 5000
|
||||
},
|
||||
{
|
||||
"id": "da9048ce-542e-44e0-ba67-ab853822c428",
|
||||
"name": "Read video from Google Drive",
|
||||
"type": "n8n-nodes-base.writeBinaryFile",
|
||||
"position": [
|
||||
800,
|
||||
320
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"fileName": "={{ $json.originalFilename.replaceAll(\" \", \"_\") }}"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "5977baf1-d4a2-439f-aafe-14745201d3d8",
|
||||
"name": "Generate Description for Videos in Tiktok and Instagram",
|
||||
"type": "@n8n/n8n-nodes-langchain.openAi",
|
||||
"notes": "Request to OpenAi for generate description with the audio extracted from the video",
|
||||
"position": [
|
||||
1280,
|
||||
320
|
||||
],
|
||||
"parameters": {
|
||||
"modelId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "gpt-4o",
|
||||
"cachedResultName": "GPT-4O"
|
||||
},
|
||||
"options": {},
|
||||
"messages": {
|
||||
"values": [
|
||||
{
|
||||
"role": "system",
|
||||
"content": "You are an expert assistant in creating engaging social media video titles."
|
||||
},
|
||||
{
|
||||
"content": "=I'm going to upload a video to social media. Here are some examples of descriptions that have worked well on Instagram:\n\nFollow and save for later. Discover InfluencersDe, the AI tool that automates TikTok creation and publishing to drive traffic to your website. Perfect for entrepreneurs and brands.\n#digitalmarketing #ugc #tiktok #ai #influencersde #contentcreation\n\nDiscover the video marketing revolution with InfluencersDe!\n.\n.\n.\n#socialmedia #videomarketing #ai #tiktok #influencersde #growthhacking\n\nDon't miss InfluencersDe, the tool that transforms your marketing strategy with just one click!\n.\n.\n.\n#ugc #ai #tiktok #digitalmarketing #influencersde #branding\n\nCan you create another title for the Instagram post based on this recognized audio from the video?\n\nAudio: {{ $('Get Audio from Video').item.json.text }}\n\nIMPORTANT: Reply only with the description, don't add anything else."
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"openAiApi": {
|
||||
"id": "XJdxgMSXFgwReSsh",
|
||||
"name": "n8n key"
|
||||
}
|
||||
},
|
||||
"notesInFlow": true,
|
||||
"retryOnFail": true,
|
||||
"typeVersion": 1.4,
|
||||
"waitBetweenTries": 5000
|
||||
},
|
||||
{
|
||||
"id": "a139c8b0-b934-492b-8f85-e42c9c345af4",
|
||||
"name": "Read Video from Google Drive",
|
||||
"type": "n8n-nodes-base.readBinaryFile",
|
||||
"position": [
|
||||
1840,
|
||||
100
|
||||
],
|
||||
"parameters": {
|
||||
"filePath": "={{ $('Read video from Google Drive').item.json.originalFilename.replaceAll(\" \", \"_\") }}",
|
||||
"dataPropertyName": "datavideo"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "63230edb-8346-4441-929f-1f6403507501",
|
||||
"name": "Read Video from Google Drive2",
|
||||
"type": "n8n-nodes-base.readBinaryFile",
|
||||
"position": [
|
||||
1840,
|
||||
460
|
||||
],
|
||||
"parameters": {
|
||||
"filePath": "={{ $('Read video from Google Drive').item.json.originalFilename.replaceAll(\" \", \"_\") }}",
|
||||
"dataPropertyName": "datavideo"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "5d6e26ef-1bb4-43d6-a282-151c95856905",
|
||||
"name": "Upload Video and Description to Tiktok",
|
||||
"type": "n8n-nodes-base.httpRequest",
|
||||
"notes": "Generate in upload-post.com the token and add to the credentials in the header-> Authorization: Apikey (token here)",
|
||||
"position": [
|
||||
2100,
|
||||
100
|
||||
],
|
||||
"parameters": {
|
||||
"url": "https://api.upload-post.com/api/upload",
|
||||
"method": "POST",
|
||||
"options": {},
|
||||
"sendBody": true,
|
||||
"contentType": "multipart-form-data",
|
||||
"authentication": "genericCredentialType",
|
||||
"bodyParameters": {
|
||||
"parameters": [
|
||||
{
|
||||
"name": "title",
|
||||
"value": "={{ $('Generate Description for Videos in Tiktok and Instagram').item.json.message.content.replaceAll(\"\\\"\", \"\") }}"
|
||||
},
|
||||
{
|
||||
"name": "platform[]",
|
||||
"value": "tiktok"
|
||||
},
|
||||
{
|
||||
"name": "video",
|
||||
"parameterType": "formBinaryData",
|
||||
"inputDataFieldName": "datavideo"
|
||||
},
|
||||
{
|
||||
"name": "user",
|
||||
"value": "Add user generated in upload-post"
|
||||
}
|
||||
]
|
||||
},
|
||||
"genericAuthType": "httpHeaderAuth"
|
||||
},
|
||||
"credentials": {
|
||||
"httpHeaderAuth": {
|
||||
"id": "47dO31ED0WIaJkR6",
|
||||
"name": "Header Auth account"
|
||||
}
|
||||
},
|
||||
"notesInFlow": true,
|
||||
"typeVersion": 4.2
|
||||
},
|
||||
{
|
||||
"id": "ed785663-50e4-43cc-9dc0-a340d0360b38",
|
||||
"name": "Upload Video and Description to Instagram",
|
||||
"type": "n8n-nodes-base.httpRequest",
|
||||
"notes": "Generate in upload-post.com the token and add to the credentials in the header-> Authorization: Apikey (token here)",
|
||||
"position": [
|
||||
2100,
|
||||
460
|
||||
],
|
||||
"parameters": {
|
||||
"url": "https://api.upload-post.com/api/upload",
|
||||
"method": "POST",
|
||||
"options": {},
|
||||
"sendBody": true,
|
||||
"contentType": "multipart-form-data",
|
||||
"authentication": "genericCredentialType",
|
||||
"bodyParameters": {
|
||||
"parameters": [
|
||||
{
|
||||
"name": "title",
|
||||
"value": "={{ $('Generate Description for Videos in Tiktok and Instagram').item.json.message.content.replaceAll(\"\\\"\", \"\") }}"
|
||||
},
|
||||
{
|
||||
"name": "platform[]",
|
||||
"value": "instagram"
|
||||
},
|
||||
{
|
||||
"name": "video",
|
||||
"parameterType": "formBinaryData",
|
||||
"inputDataFieldName": "datavideo"
|
||||
},
|
||||
{
|
||||
"name": "user",
|
||||
"value": "Add user generated in upload-post"
|
||||
}
|
||||
]
|
||||
},
|
||||
"genericAuthType": "httpHeaderAuth"
|
||||
},
|
||||
"credentials": {
|
||||
"httpHeaderAuth": {
|
||||
"id": "47dO31ED0WIaJkR6",
|
||||
"name": "Header Auth account"
|
||||
}
|
||||
},
|
||||
"notesInFlow": true,
|
||||
"typeVersion": 4.2
|
||||
}
|
||||
],
|
||||
"active": false,
|
||||
"pinData": {},
|
||||
"settings": {
|
||||
"executionOrder": "v1"
|
||||
},
|
||||
"versionId": "fdcd0643-0958-426c-ab1d-16fb061b4e38",
|
||||
"connections": {
|
||||
"If": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Telegram",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Google Drive": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Read video from Google Drive",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Error Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "If",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Get Audio from Video": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Generate Description for Videos in Tiktok and Instagram",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Google Drive Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Google Drive",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Read Video from Google Drive": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Upload Video and Description to Tiktok",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Read video from Google Drive": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Get Audio from Video",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Read Video from Google Drive2": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Upload Video and Description to Instagram",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Generate Description for Videos in Tiktok and Instagram": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Read Video from Google Drive",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
},
|
||||
{
|
||||
"node": "Read Video from Google Drive2",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
624
workflows/Error/1777_Error_Postgres_Send_Triggered.json
Normal file
624
workflows/Error/1777_Error_Postgres_Send_Triggered.json
Normal file
@@ -0,0 +1,624 @@
|
||||
{
|
||||
"id": "YybYYc430rmZWJPJ",
|
||||
"meta": {
|
||||
"instanceId": "febfa0961d1e55a48938f0337f348b73a50538aa16673607611ead85d95f662c",
|
||||
"templateCredsSetupCompleted": true
|
||||
},
|
||||
"name": "Log errors and avoid sending too many emails",
|
||||
"tags": [
|
||||
{
|
||||
"id": "7YoU4oTsaGGEtWJj",
|
||||
"name": "sample",
|
||||
"createdAt": "2025-01-31T16:41:27.407Z",
|
||||
"updatedAt": "2025-01-31T16:41:27.407Z"
|
||||
}
|
||||
],
|
||||
"nodes": [
|
||||
{
|
||||
"id": "0e44df4c-00d2-4545-89ae-844a590de369",
|
||||
"name": "Error Trigger",
|
||||
"type": "n8n-nodes-base.errorTrigger",
|
||||
"position": [
|
||||
-1200,
|
||||
90
|
||||
],
|
||||
"parameters": {},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "7101542a-5146-4917-a1f2-13686cad197e",
|
||||
"name": "Insert Log",
|
||||
"type": "n8n-nodes-base.postgres",
|
||||
"position": [
|
||||
-980,
|
||||
40
|
||||
],
|
||||
"parameters": {
|
||||
"table": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "N8Err",
|
||||
"cachedResultName": "N8Err"
|
||||
},
|
||||
"schema": {
|
||||
"__rl": true,
|
||||
"mode": "name",
|
||||
"value": "p1gq6ljdsam3x1m"
|
||||
},
|
||||
"columns": {
|
||||
"value": {
|
||||
"URL": "={{ $json.execution.url }}",
|
||||
"json": "={{ JSON.stringify($json) }}",
|
||||
"Stack": "={{ $json.execution.error.stack }}",
|
||||
"title": "={{ $json.workflow.name }}",
|
||||
"Message": "={{ $json.execution.error.message }}",
|
||||
"LastNode": "={{ $json.execution.lastNodeExecuted }}",
|
||||
"created_at": "={{ $now }}"
|
||||
},
|
||||
"schema": [
|
||||
{
|
||||
"id": "id",
|
||||
"type": "number",
|
||||
"display": true,
|
||||
"removed": true,
|
||||
"required": false,
|
||||
"displayName": "id",
|
||||
"defaultMatch": true,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "created_at",
|
||||
"type": "dateTime",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "created_at",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "updated_at",
|
||||
"type": "dateTime",
|
||||
"display": true,
|
||||
"removed": true,
|
||||
"required": false,
|
||||
"displayName": "updated_at",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "created_by",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": true,
|
||||
"required": false,
|
||||
"displayName": "created_by",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "updated_by",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": true,
|
||||
"required": false,
|
||||
"displayName": "updated_by",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "nc_order",
|
||||
"type": "number",
|
||||
"display": true,
|
||||
"removed": true,
|
||||
"required": false,
|
||||
"displayName": "nc_order",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "title",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "title",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "URL",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "URL",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "Stack",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "Stack",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "json",
|
||||
"type": "object",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "json",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "Message",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "Message",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "LastNode",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "LastNode",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
}
|
||||
],
|
||||
"mappingMode": "defineBelow",
|
||||
"matchingColumns": [
|
||||
"id"
|
||||
],
|
||||
"attemptToConvertTypes": false,
|
||||
"convertFieldsToString": false
|
||||
},
|
||||
"options": {}
|
||||
},
|
||||
"credentials": {
|
||||
"postgres": {
|
||||
"id": "2VsRB7eDnG0FA3z2",
|
||||
"name": "Postgres Nocodb"
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.6
|
||||
},
|
||||
{
|
||||
"id": "8fb1201c-353e-466c-8d08-fd969e6b10b1",
|
||||
"name": "Count for 5 minutes",
|
||||
"type": "n8n-nodes-base.postgres",
|
||||
"position": [
|
||||
-980,
|
||||
-210
|
||||
],
|
||||
"parameters": {
|
||||
"query": "SELECT count(*) FROM p1gq6ljdsam3x1m.\"N8Err\" where created_at >= $1;\n",
|
||||
"options": {
|
||||
"queryReplacement": "={{ $now.minus(5, 'minutes').toString() }}"
|
||||
},
|
||||
"operation": "executeQuery"
|
||||
},
|
||||
"credentials": {
|
||||
"postgres": {
|
||||
"id": "2VsRB7eDnG0FA3z2",
|
||||
"name": "Postgres Nocodb"
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.6
|
||||
},
|
||||
{
|
||||
"id": "89f836dc-8141-4c20-a758-bf7ff261a87b",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
-2260,
|
||||
-300
|
||||
],
|
||||
"parameters": {
|
||||
"color": 5,
|
||||
"width": 820,
|
||||
"height": 1140,
|
||||
"content": "# Log errors and avoid sending too many emails\n\n## Use case\n\nMost of the time, it’s necessary to log all errors that occur. However, in some cases, a scheduled task or service consuming excessive resources might trigger a surge of errors.\n\nTo address this, we can log all errors but limit alerts to a maximum of one notification every 5 minutes.\n\n## What this workflow does\n\nThis workflow can be configured to receive error events, or you can integrate it **before your own error-handling logic.** \n\nIf used as the **primary error handler**, note that this flow will **only add a database log entry** and take no further action. You’ll need to add your own alerts (e.g., email or push notifications). Below is an example of a notification setup I prefer to use. \n\nAt the end, there’s an **error cleanup** option. This feature is particularly useful in development environments. \n\nIf you already have an error-handling workflow, you can call this one as a **sub-workflow**. Its final steps include cleanup logic to reset the execution state and terminate the workflow.\n\n## Setup\n\n**Verify all Postgres nodes and credentials when using the 'Error Handling Sample'**\n\n## How to adjust it to your needs\n\n1) You can set this workflow as a sub-workflow within your existing error-handling setup.\n\n2) Alternatively, you can add the \"Error Handling Sample\" at the end of this workflow, which sends email and push notifications.\n\nConfiguration Requirements:\n\n⚠️ You must create a database table for this to work!\n\n\n\nDDL of this sample:\n\ncreate table p1gq6ljdsam3x1m.\"N8Err\"\n(\n id serial\n primary key,\n created_at timestamp,\n updated_at timestamp,\n created_by varchar,\n updated_by varchar,\n nc_order numeric,\n title text,\n \"URL\" text,\n \"Stack\" text,\n json json,\n \"Message\" text,\n \"LastNode\" text\n);\n\nalter table p1gq6ljdsam3x1m.\"N8Err\"\n owner to postgres;\n\ncreate index \"N8Err_order_idx\"\n on p1gq6ljdsam3x1m.\"N8Err\" (nc_order);\n\nby Davi Saranszky Mesquita\nhttps://www.linkedin.com/in/mesquitadavi/"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "fba7fec5-5285-46bd-9cc7-270b7dcc8c5f",
|
||||
"name": "Principal E-Mail",
|
||||
"type": "n8n-nodes-base.emailSend",
|
||||
"onError": "continueErrorOutput",
|
||||
"disabled": true,
|
||||
"position": [
|
||||
-980,
|
||||
350
|
||||
],
|
||||
"webhookId": "d76d2e82-b0a8-4e35-88f9-1815d4ce6c79",
|
||||
"parameters": {
|
||||
"text": "={{ $(\"Error Trigger\").item.json.execution.url }}\n\n{{ $(\"Error Trigger\").item.json.execution.lastNodeExecuted }}\n\n{{ $(\"Error Trigger\").item.json.execution.error.message }}\n{{ $(\"Error Trigger\").item.json.execution.error.stack }}",
|
||||
"options": {
|
||||
"appendAttribution": false
|
||||
},
|
||||
"subject": "=Erro - {{ $(\"Error Trigger\").item.json.workflow.name }}",
|
||||
"toEmail": "davimesquita@gmail.com",
|
||||
"fromEmail": "suporte@ideias.casa",
|
||||
"emailFormat": "text"
|
||||
},
|
||||
"credentials": {
|
||||
"smtp": {
|
||||
"id": "0YIoKeISQNR2kxwO",
|
||||
"name": "SMTP Resent"
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.1
|
||||
},
|
||||
{
|
||||
"id": "979d0e82-42e8-450a-95b1-3c204ad61a50",
|
||||
"name": "Fallback E-Mail",
|
||||
"type": "n8n-nodes-base.emailSend",
|
||||
"disabled": true,
|
||||
"position": [
|
||||
-760,
|
||||
350
|
||||
],
|
||||
"webhookId": "d76d2e82-b0a8-4e35-88f9-1815d4ce6c79",
|
||||
"parameters": {
|
||||
"text": "={{ $(\"Error Trigger\").item.json.execution.url }}\n\n{{ $(\"Error Trigger\").item.json.execution.lastNodeExecuted }}\n\n{{ $(\"Error Trigger\").item.json.execution.error.message }}\n{{ $(\"Error Trigger\").item.json.execution.error.stack }}",
|
||||
"options": {
|
||||
"appendAttribution": false
|
||||
},
|
||||
"subject": "=Erro - {{ $(\"Error Trigger\").item.json.workflow.name }}",
|
||||
"toEmail": "davimesquita@gmail.com",
|
||||
"fromEmail": "contato@ideias.casa",
|
||||
"emailFormat": "text"
|
||||
},
|
||||
"credentials": {
|
||||
"smtp": {
|
||||
"id": "UvWloRL7Jyqt8tm9",
|
||||
"name": "SMTP Contato"
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.1
|
||||
},
|
||||
{
|
||||
"id": "6c073c03-e00e-45b1-8f14-faa29fd58472",
|
||||
"name": "Push mobile notification",
|
||||
"type": "n8n-nodes-base.pushover",
|
||||
"disabled": true,
|
||||
"position": [
|
||||
-980,
|
||||
550
|
||||
],
|
||||
"parameters": {
|
||||
"message": "={{ $(\"Error Trigger\").item.json.workflow.name }} - {{ $(\"Error Trigger\").item.json.execution.url }}\n\n{{ $(\"Error Trigger\").item.json.execution.lastNodeExecuted }}\n\n{{ $(\"Error Trigger\").item.json.execution.error.message }}\n{{ $(\"Error Trigger\").item.json.execution.error.stack }}",
|
||||
"userKey": "=u4RMqXQR9EFdeSQBfaL1riBy1Qd953",
|
||||
"additionalFields": {}
|
||||
},
|
||||
"credentials": {
|
||||
"pushoverApi": {
|
||||
"id": "ae8Jsj87n2hSWDbs",
|
||||
"name": "Pushover account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "4ca939e4-dcb1-40bd-b5eb-4cd00cb403fb",
|
||||
"name": "Truncate Log Database",
|
||||
"type": "n8n-nodes-base.postgres",
|
||||
"position": [
|
||||
-980,
|
||||
810
|
||||
],
|
||||
"parameters": {
|
||||
"table": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "N8Err",
|
||||
"cachedResultName": "N8Err"
|
||||
},
|
||||
"schema": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "p1gq6ljdsam3x1m",
|
||||
"cachedResultName": "p1gq6ljdsam3x1m"
|
||||
},
|
||||
"options": {},
|
||||
"operation": "deleteTable",
|
||||
"restartSequences": true
|
||||
},
|
||||
"credentials": {
|
||||
"postgres": {
|
||||
"id": "2VsRB7eDnG0FA3z2",
|
||||
"name": "Postgres Nocodb"
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.6
|
||||
},
|
||||
{
|
||||
"id": "1eaf67ca-fb77-4b76-8ee3-ae65d4b79182",
|
||||
"name": "Sometimes... just cleanup",
|
||||
"type": "n8n-nodes-base.manualTrigger",
|
||||
"position": [
|
||||
-1200,
|
||||
810
|
||||
],
|
||||
"parameters": {},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "01e5a7dd-41a2-43f1-bbf5-241e6791cf18",
|
||||
"name": "Call this Sample - Prepend to your error catcher",
|
||||
"type": "n8n-nodes-base.executeWorkflow",
|
||||
"disabled": true,
|
||||
"position": [
|
||||
-1200,
|
||||
450
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"workflowId": {
|
||||
"__rl": true,
|
||||
"mode": "id",
|
||||
"value": ""
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
},
|
||||
{
|
||||
"id": "4386788d-5f10-468a-8a02-cff45a4a7ed5",
|
||||
"name": "See below to prepend this at your error handling",
|
||||
"type": "n8n-nodes-base.executeWorkflowTrigger",
|
||||
"position": [
|
||||
-1200,
|
||||
-260
|
||||
],
|
||||
"parameters": {
|
||||
"inputSource": "passthrough"
|
||||
},
|
||||
"typeVersion": 1.1
|
||||
},
|
||||
{
|
||||
"id": "d6aed974-4a36-4edd-809d-867a95d0f6ef",
|
||||
"name": "If there is no logs in 5 minutes",
|
||||
"type": "n8n-nodes-base.if",
|
||||
"position": [
|
||||
-760,
|
||||
-210
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"conditions": {
|
||||
"options": {
|
||||
"version": 2,
|
||||
"leftValue": "",
|
||||
"caseSensitive": true,
|
||||
"typeValidation": "loose"
|
||||
},
|
||||
"combinator": "and",
|
||||
"conditions": [
|
||||
{
|
||||
"id": "a17b915d-f581-4774-a78a-48bc386aebc9",
|
||||
"operator": {
|
||||
"type": "number",
|
||||
"operation": "lte"
|
||||
},
|
||||
"leftValue": "={{ $json.count }}",
|
||||
"rightValue": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
"looseTypeValidation": true
|
||||
},
|
||||
"typeVersion": 2.2
|
||||
},
|
||||
{
|
||||
"id": "3c49f611-f1a6-409a-a4c6-903dadb27165",
|
||||
"name": "CleanUp execution. See below if you will prepend this workflow",
|
||||
"type": "n8n-nodes-base.code",
|
||||
"position": [
|
||||
-540,
|
||||
-10
|
||||
],
|
||||
"parameters": {
|
||||
"jsCode": "return [];"
|
||||
},
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "192443fc-c032-4815-acc7-c8cf6040cc34",
|
||||
"name": "Insert your error handling logic after this",
|
||||
"type": "n8n-nodes-base.noOp",
|
||||
"position": [
|
||||
-540,
|
||||
-260
|
||||
],
|
||||
"parameters": {},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "2f87907f-816f-4054-8517-bb713a203131",
|
||||
"name": "Sticky Note1",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
-1350,
|
||||
250
|
||||
],
|
||||
"parameters": {
|
||||
"width": 840,
|
||||
"height": 460,
|
||||
"content": "# Error handling sample\n"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "b173898f-d1d8-4f83-b7b7-ba52cab7651e",
|
||||
"name": "Sticky Note2",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
-1610,
|
||||
630
|
||||
],
|
||||
"parameters": {
|
||||
"width": 1140,
|
||||
"height": 340,
|
||||
"content": "# Database Cleanup: Useful in DEV, but DO NOT run in production"
|
||||
},
|
||||
"typeVersion": 1
|
||||
}
|
||||
],
|
||||
"active": false,
|
||||
"pinData": {
|
||||
"Error Trigger": [
|
||||
{
|
||||
"json": {
|
||||
"workflow": {
|
||||
"id": "1",
|
||||
"name": "Example Workflow"
|
||||
},
|
||||
"execution": {
|
||||
"id": 231,
|
||||
"url": "https://work.ideias.casa/execution/workflow/1/231",
|
||||
"mode": "manual",
|
||||
"error": {
|
||||
"stack": "Stacktrace",
|
||||
"message": "Example Error Message"
|
||||
},
|
||||
"retryOf": "34",
|
||||
"lastNodeExecuted": "Node With Error"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"settings": {
|
||||
"callerPolicy": "workflowsFromSameOwner",
|
||||
"executionOrder": "v1",
|
||||
"saveManualExecutions": false,
|
||||
"saveExecutionProgress": false,
|
||||
"saveDataErrorExecution": "all",
|
||||
"saveDataSuccessExecution": "none"
|
||||
},
|
||||
"versionId": "07c6795a-f906-4e22-a15a-4f1984e540a3",
|
||||
"connections": {
|
||||
"Insert Log": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "CleanUp execution. See below if you will prepend this workflow",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Error Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Insert Log",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
},
|
||||
{
|
||||
"node": "Count for 5 minutes",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Principal E-Mail": {
|
||||
"main": [
|
||||
[],
|
||||
[
|
||||
{
|
||||
"node": "Fallback E-Mail",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Count for 5 minutes": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "If there is no logs in 5 minutes",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Sometimes... just cleanup": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Truncate Log Database",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"If there is no logs in 5 minutes": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Insert your error handling logic after this",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"node": "CleanUp execution. See below if you will prepend this workflow",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Call this Sample - Prepend to your error catcher": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Principal E-Mail",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
},
|
||||
{
|
||||
"node": "Push mobile notification",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"See below to prepend this at your error handling": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Insert Log",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
},
|
||||
{
|
||||
"node": "Count for 5 minutes",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"CleanUp execution. See below if you will prepend this workflow": {
|
||||
"main": [
|
||||
[]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
125
workflows/Error/1849_Error_Stickynote_Automation_Webhook.json
Normal file
125
workflows/Error/1849_Error_Stickynote_Automation_Webhook.json
Normal file
@@ -0,0 +1,125 @@
|
||||
{
|
||||
"id": "ePnGZtZ8zLcf1UZZ",
|
||||
"meta": {
|
||||
"instanceId": "558d88703fb65b2d0e44613bc35916258b0f0bf983c5d4730c00c424b77ca36a",
|
||||
"templateCredsSetupCompleted": true
|
||||
},
|
||||
"name": "n8n Error Report to Line",
|
||||
"tags": [
|
||||
{
|
||||
"id": "0xpEHcJjNRRRMtEj",
|
||||
"name": "lin",
|
||||
"createdAt": "2025-03-12T05:06:24.112Z",
|
||||
"updatedAt": "2025-03-12T05:06:24.112Z"
|
||||
},
|
||||
{
|
||||
"id": "U1ozjO3iXQZWUyfG",
|
||||
"name": "_Blueprint",
|
||||
"createdAt": "2025-03-12T06:24:40.268Z",
|
||||
"updatedAt": "2025-03-12T06:24:40.268Z"
|
||||
}
|
||||
],
|
||||
"nodes": [
|
||||
{
|
||||
"id": "c45a01a5-289b-4927-8bba-4bb1029a7129",
|
||||
"name": "Error Trigger",
|
||||
"type": "n8n-nodes-base.errorTrigger",
|
||||
"position": [
|
||||
-240,
|
||||
-80
|
||||
],
|
||||
"parameters": {},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "1e3f7a7e-8be4-4fec-973f-befb477e6957",
|
||||
"name": "HTTP Request",
|
||||
"type": "n8n-nodes-base.httpRequest",
|
||||
"position": [
|
||||
40,
|
||||
-80
|
||||
],
|
||||
"parameters": {
|
||||
"url": "https://api.line.me/v2/bot/message/push",
|
||||
"method": "POST",
|
||||
"options": {},
|
||||
"jsonBody": "={\n \"to\": \"<UID HERE>\",\n \"messages\":[\n {\n \"type\":\"text\",\n \"text\":\"🚨Your n8n flow is dead.🚨\\n\\nName: {{ $json.workflow.name }} \\nURL: {{ $json.execution.url }}\"\n }\n ]\n}",
|
||||
"sendBody": true,
|
||||
"specifyBody": "json",
|
||||
"authentication": "genericCredentialType",
|
||||
"genericAuthType": "httpHeaderAuth"
|
||||
},
|
||||
"credentials": {
|
||||
"httpHeaderAuth": {
|
||||
"id": "lKd3b2nc8uNJ148Z",
|
||||
"name": "Line @271dudsw MiniBear"
|
||||
}
|
||||
},
|
||||
"typeVersion": 4.2
|
||||
},
|
||||
{
|
||||
"id": "5bcf04cc-2c3e-4e37-a134-fcc42326afc3",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
-340,
|
||||
-400
|
||||
],
|
||||
"parameters": {
|
||||
"width": 660,
|
||||
"content": "## Error Handling\n\nYou can set this workflow as error workflow\n\nhttps://docs.n8n.io/flow-logic/error-handling/#create-and-set-an-error-workflow"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "22b66275-e111-45c8-b7bc-b6c03b55fd02",
|
||||
"name": "Sticky Note1",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
-300,
|
||||
-220
|
||||
],
|
||||
"parameters": {
|
||||
"color": 5,
|
||||
"height": 300,
|
||||
"content": "## Error Trigger\n\nThis flow will get trigger when the error occur. You can set only one error flow for all your flows.\n"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "5a2c1b3b-2546-47e6-bb9f-b9b8d7c63d65",
|
||||
"name": "Sticky Note2",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
-40,
|
||||
-220
|
||||
],
|
||||
"parameters": {
|
||||
"color": 4,
|
||||
"width": 320,
|
||||
"height": 300,
|
||||
"content": "## Send Line Message\n\nTo send message to notify you via Line Account -- Please replace <UID HERE> with your own UID\n"
|
||||
},
|
||||
"typeVersion": 1
|
||||
}
|
||||
],
|
||||
"active": false,
|
||||
"pinData": {},
|
||||
"settings": {
|
||||
"executionOrder": "v1"
|
||||
},
|
||||
"versionId": "4a774ee1-96b8-4a81-858d-6c5b0d24ba03",
|
||||
"connections": {
|
||||
"Error Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "HTTP Request",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
116
workflows/Error/1948_Error_Telegram_Send_Triggered.json
Normal file
116
workflows/Error/1948_Error_Telegram_Send_Triggered.json
Normal file
@@ -0,0 +1,116 @@
|
||||
{
|
||||
"id": "ozo5jlbwPHgaMnVt",
|
||||
"meta": {
|
||||
"instanceId": "2c69a61055797162319204105e5a124e409f0c7fbfaba08ee106324374f4ae73"
|
||||
},
|
||||
"name": "Error Handler send Telegram",
|
||||
"tags": [],
|
||||
"nodes": [
|
||||
{
|
||||
"id": "3968e71e-d9fb-4810-81bb-18ecf073b3ee",
|
||||
"name": "Telegram",
|
||||
"type": "n8n-nodes-base.telegram",
|
||||
"position": [
|
||||
520,
|
||||
-200
|
||||
],
|
||||
"webhookId": "b3f6e388-8313-4bc1-8077-d81471b2f95d",
|
||||
"parameters": {
|
||||
"text": "=Workflow: {{ $('Error Trigger').first().json.workflow.name }}\nData & Time: {{ $now }}\nURL: {{ $('Error Trigger').first().json.execution.url }}\nLast Node: {{ $('Error Trigger').first().json.execution.lastNodeExecuted }}\nError Detal: {{ $('Error Trigger').first().json.execution.error.message }}\n",
|
||||
"chatId": "={{ $('Config').item.json.telegramChatId }}",
|
||||
"additionalFields": {
|
||||
"parse_mode": "HTML",
|
||||
"appendAttribution": false
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"telegramApi": {
|
||||
"id": "BCYwPAl9pdnRqKeR",
|
||||
"name": "Telegram n8n Log Test"
|
||||
}
|
||||
},
|
||||
"retryOnFail": true,
|
||||
"typeVersion": 1.2,
|
||||
"waitBetweenTries": 3000
|
||||
},
|
||||
{
|
||||
"id": "bbb54150-b749-49e2-9c49-720341691151",
|
||||
"name": "Error Trigger",
|
||||
"type": "n8n-nodes-base.errorTrigger",
|
||||
"position": [
|
||||
60,
|
||||
-200
|
||||
],
|
||||
"parameters": {},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "68bc359d-4c7f-4027-8e76-c2bc6b612ede",
|
||||
"name": "Sticky Note1",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
-520,
|
||||
-820
|
||||
],
|
||||
"parameters": {
|
||||
"width": 1420,
|
||||
"height": 1240,
|
||||
"content": "### **How to Use Telegram Error Notifier**\n\n### **Step 1: Prerequisites**\n1. **Telegram Bot:**\n - Create a bot using [BotFather](https://core.telegram.org/bots#botfather) and get the bot token.\n - Add the bot to your Telegram group/channel and note the `chatId`.\n\n2. **n8n Setup:**\n - Ensure the **Telegram** and **Error Trigger** nodes are installed.\n---\n### **Step 2: Configure the Workflow**\n1. **Update Telegram Chat ID:**\n - Open the **Config** node.\n - Replace `telegramChatId` with your actual Telegram group/channel ID:\n ```json\n return [\n {\n \"telegramChatId\": 123456789, // Replace with your chat ID, format 123456789 or -123456789\n }\n ];\n ```\n\n2. **Set Telegram Bot Credentials:**\n - Open the **Telegram** node.\n - Add your bot token in the **Credentials** section.\n\n3. **Activate the Workflow:**\n - Toggle the **Active** switch to enable the workflow.\n---\n### **Step 3: Set Up Error Workflow**\n1. Open the workflow where you want error notifications.\n2. Go to **Settings** > **Error Workflow**.\n3. Select **Telegram Error Notifier** from the dropdown.\n4. Save the changes.\n---\n### **Step 4: Test the Workflow**\n1. Trigger an error in the workflow.\n2. Check your Telegram for the error notification, which includes:\n - Workflow name\n - Date and time\n - Execution URL\n - Last node executed\n - Error details\n---\n### **Example Notification**\n```\nWorkflow: My Workflow 1\nData & Time: 2023-10-27T12:34:56Z\nURL: https://n8n.example.com/execution/12345\nLast Node: HTTP Request\nError Detail: Failed to connect to the server.\n```\n---\n### **Troubleshooting**\n- **No Notifications:** \n Ensure the workflow is active, and the bot token/chat ID is correct.\n- **Permission Issues:** \n Ensure the bot can send messages in your Telegram group/channel.\n---"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "6bcf5a24-643d-4fbe-81c9-c8830dc8f1b6",
|
||||
"name": "Config",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
300,
|
||||
-200
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"assignments": {
|
||||
"assignments": [
|
||||
{
|
||||
"id": "bf7b1294-b50d-49f7-a5f1-76b0d6845aea",
|
||||
"name": "telegramChatId",
|
||||
"type": "string",
|
||||
"value": "123456789"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 3.4
|
||||
}
|
||||
],
|
||||
"active": false,
|
||||
"pinData": {},
|
||||
"settings": {
|
||||
"executionOrder": "v1"
|
||||
},
|
||||
"versionId": "e3a6d588-a83c-4d4e-afdc-232624479723",
|
||||
"connections": {
|
||||
"Config": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Telegram",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Error Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Config",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
401
workflows/Error/1991_Error_Code_Automation_Triggered.json
Normal file
401
workflows/Error/1991_Error_Code_Automation_Triggered.json
Normal file
@@ -0,0 +1,401 @@
|
||||
{
|
||||
"id": "vnhhf9aNsw0kzdBV",
|
||||
"meta": {
|
||||
"instanceId": "8fccc85e4982eaaf920505127420cfb3a600b56930a56e499973488bb6dc5e3a",
|
||||
"templateCredsSetupCompleted": true
|
||||
},
|
||||
"name": "CV Evaluation - Error Handling",
|
||||
"tags": [
|
||||
{
|
||||
"id": "GLfSiUrpHvSix03S",
|
||||
"name": "Error Handling",
|
||||
"createdAt": "2025-03-03T17:54:29.858Z",
|
||||
"updatedAt": "2025-03-03T17:54:29.858Z"
|
||||
}
|
||||
],
|
||||
"nodes": [
|
||||
{
|
||||
"id": "e2fd6e88-ae06-48ea-a73f-8e523b747a33",
|
||||
"name": "Error Trigger",
|
||||
"type": "n8n-nodes-base.errorTrigger",
|
||||
"position": [
|
||||
-40,
|
||||
180
|
||||
],
|
||||
"parameters": {},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "6b75ee9b-4540-4199-a393-c3e2583fd6bb",
|
||||
"name": "Gmail",
|
||||
"type": "n8n-nodes-base.gmail",
|
||||
"position": [
|
||||
1360,
|
||||
160
|
||||
],
|
||||
"webhookId": "d9c9328c-5be7-4ebe-a20a-c025e52cdf46",
|
||||
"parameters": {
|
||||
"sendTo": "={{ $json.config.emailing.sendTo }}",
|
||||
"message": "=<p>Workflow <a href=\"{{ $json.workflow.url }}\">{{ $json.workflow.id }}</a> ({{ $json.workflow.name }})<br/>\nhas triggered the error handling workflow <a href=\"{{ $json.errorHandlingWorkflow.url }}\">{{ $json.errorHandlingWorkflow.id }}</a> ({{ $json.errorHandlingWorkflow.name }})<br/>\nwith the error details below.</p>\n{{ $json.html }}\n<h2>Error handling JSON (complete error handling data)</h2>\n<pre>\n{{ JSON.stringify({\n execution: $json.execution,\n trigger: $json.trigger,\n workflow: $json.workflow,\n errorHandlingWorkflow: $json.errorHandlingWorkflow,\n}, null, 2) }}\n</pre>",
|
||||
"options": {
|
||||
"senderName": "={{ $json.config.emailing.senderName }}"
|
||||
},
|
||||
"subject": "=Workflow {{ $json.workflow.id }} ({{ $json.workflow.name }}) {{ $json.workflow.isExecutionError ? \"execution error\" : \"trigger failure\" }}: {{ $json.execution.error.message || $json.trigger.error.message }}"
|
||||
},
|
||||
"credentials": {
|
||||
"gmailOAuth2": {
|
||||
"id": "DsQxovsVtYdErSwk",
|
||||
"name": "Gmail m42g@g"
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.1
|
||||
},
|
||||
{
|
||||
"id": "2a3fd36f-a04b-4b43-bc5a-ac9d18adea82",
|
||||
"name": "Merge",
|
||||
"type": "n8n-nodes-base.merge",
|
||||
"position": [
|
||||
1160,
|
||||
160
|
||||
],
|
||||
"parameters": {
|
||||
"mode": "combine",
|
||||
"options": {},
|
||||
"combineBy": "combineByPosition"
|
||||
},
|
||||
"typeVersion": 3
|
||||
},
|
||||
{
|
||||
"id": "b93cf843-42a2-4f64-873a-afdef2451934",
|
||||
"name": "Config",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
120,
|
||||
180
|
||||
],
|
||||
"parameters": {
|
||||
"options": {
|
||||
"dotNotation": true
|
||||
},
|
||||
"assignments": {
|
||||
"assignments": [
|
||||
{
|
||||
"id": "53ac5417-db98-41e5-bc6d-acb6dd1fec42",
|
||||
"name": "config.appUrl",
|
||||
"type": "string",
|
||||
"value": "https://YourAccountName.app.n8n.cloud/"
|
||||
},
|
||||
{
|
||||
"id": "0f85c65a-80bb-4977-90b9-1b4e741b5f70",
|
||||
"name": "config.emailing.sendTo",
|
||||
"type": "string",
|
||||
"value": "recipient@gmail.com"
|
||||
},
|
||||
{
|
||||
"id": "138c091f-7cd4-453a-9c75-5d193b617a39",
|
||||
"name": "config.emailing.senderName",
|
||||
"type": "string",
|
||||
"value": "Marvin the Yeoman Warder"
|
||||
}
|
||||
]
|
||||
},
|
||||
"includeOtherFields": true
|
||||
},
|
||||
"typeVersion": 3.4
|
||||
},
|
||||
{
|
||||
"id": "5da22c60-fa54-4ddf-add8-f2b26610ef92",
|
||||
"name": "Constants",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
280,
|
||||
180
|
||||
],
|
||||
"parameters": {
|
||||
"options": {
|
||||
"dotNotation": true
|
||||
},
|
||||
"assignments": {
|
||||
"assignments": [
|
||||
{
|
||||
"id": "d69f8081-b58c-4283-a424-a2804c51258a",
|
||||
"name": "workflow.url",
|
||||
"type": "string",
|
||||
"value": "={{ $json.config.appUrl + \"workflow/\" + $json.workflow.id }}"
|
||||
},
|
||||
{
|
||||
"id": "735040f7-8f6e-4bda-a1be-e7784132ead8",
|
||||
"name": "workflow.isExecutionError",
|
||||
"type": "boolean",
|
||||
"value": "={{ Boolean($json.execution) }}"
|
||||
},
|
||||
{
|
||||
"id": "9206cdcc-4387-47e9-902e-f7d6b1f6893f",
|
||||
"name": "errorHandlingWorkflow.id",
|
||||
"type": "string",
|
||||
"value": "={{ $workflow.id }}"
|
||||
},
|
||||
{
|
||||
"id": "21de1fda-f4e4-4aef-afee-e3d7e6635f42",
|
||||
"name": "errorHandlingWorkflow.name",
|
||||
"type": "string",
|
||||
"value": "={{ $workflow.name }}"
|
||||
},
|
||||
{
|
||||
"id": "651ff8f3-be7b-4990-8248-38383f6d5f6a",
|
||||
"name": "errorHandlingWorkflow.url",
|
||||
"type": "string",
|
||||
"value": "={{ $json.config.appUrl + \"workflow/\" + $workflow.id }}"
|
||||
}
|
||||
]
|
||||
},
|
||||
"includeOtherFields": true
|
||||
},
|
||||
"typeVersion": 3.4
|
||||
},
|
||||
{
|
||||
"id": "a3e45087-e799-4b1b-b420-8d106bdd6daf",
|
||||
"name": "If",
|
||||
"type": "n8n-nodes-base.if",
|
||||
"position": [
|
||||
460,
|
||||
40
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"conditions": {
|
||||
"options": {
|
||||
"version": 2,
|
||||
"leftValue": "",
|
||||
"caseSensitive": true,
|
||||
"typeValidation": "strict"
|
||||
},
|
||||
"combinator": "and",
|
||||
"conditions": [
|
||||
{
|
||||
"id": "a757d78d-799b-401b-8c01-3103fddfe757",
|
||||
"operator": {
|
||||
"type": "boolean",
|
||||
"operation": "true",
|
||||
"singleValue": true
|
||||
},
|
||||
"leftValue": "={{ $json.workflow.isExecutionError }}",
|
||||
"rightValue": "={{ true }}"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.2
|
||||
},
|
||||
{
|
||||
"id": "249a330d-1e9f-412c-a067-c96fbbcd1e6f",
|
||||
"name": "HTML for Execution Error",
|
||||
"type": "n8n-nodes-base.html",
|
||||
"position": [
|
||||
660,
|
||||
-140
|
||||
],
|
||||
"parameters": {
|
||||
"html": "<h2>Execution details</h2>\n<p>See execution details at <a href=\"{{ $json.execution.url }}\">{{ $json.execution.url }}</a></p>\n<p>Execution id: {{ $json.execution.id }}</p>\n<p>retryOf: {{ $json.execution.retryOf }}</p>\n<p>lastNodeExecuted: {{ $json.execution.lastNodeExecuted }}</p>\n<p>mode: {{ $json.execution.mode }}</p>\n<p>Message: {{ $json.execution.error.message }}</p>\n<h3>Stack trace</h3>\n<pre>\n{{ $json.execution.error.stack }}\n</pre>"
|
||||
},
|
||||
"typeVersion": 1.2,
|
||||
"alwaysOutputData": true
|
||||
},
|
||||
{
|
||||
"id": "cc9e2e40-7858-4d86-bfda-65b4ad9f6ada",
|
||||
"name": "HTML for Trigger Error",
|
||||
"type": "n8n-nodes-base.html",
|
||||
"position": [
|
||||
660,
|
||||
40
|
||||
],
|
||||
"parameters": {
|
||||
"html": "<h2>Trigger failure details</h2>\n<p>A trigger on main workflow has thrown an error.</p>\n<h3>Mode</h3>\n<p>{{ $json.trigger.mode }}</p>\n<h3>Error</h3>\n<p>Message: {{ $json.trigger.error.message }}</p>\n<p>DateTime: {{ DateTime.fromMillis($json.trigger.error.timestamp) }}</p>\n<p>Name: {{ $json.trigger.error.name }}</p>\n<p>Description: {{ $json.trigger.error.description }}</p>\n<p>Context:<br/>\n<pre>{{ JSON.stringify($json.trigger.error.context, null, 2) }}</pre></p>\n\n<h3>Cause</h3>\n<p>Message: {{ $json.trigger.error.cause.message }}</p>\n<p>Name: {{ $json.trigger.error.cause.name }}</p>\n<p>Code:{{ $json.trigger.error.cause.code }} </p>\n<p>Status: {{ $json.trigger.error.cause.status }}</p>\n<h3>Stack trace</h3>\n<pre>\n{{ $json.trigger.error.cause.stack }}\n</pre>"
|
||||
},
|
||||
"typeVersion": 1.2,
|
||||
"alwaysOutputData": true
|
||||
},
|
||||
{
|
||||
"id": "865dc047-69fc-4409-888b-701468746945",
|
||||
"name": "KeepEitherOfHTMLs",
|
||||
"type": "n8n-nodes-base.merge",
|
||||
"position": [
|
||||
900,
|
||||
-40
|
||||
],
|
||||
"parameters": {
|
||||
"mode": "combine",
|
||||
"options": {
|
||||
"includeUnpaired": true
|
||||
},
|
||||
"combineBy": "combineByPosition"
|
||||
},
|
||||
"typeVersion": 3
|
||||
},
|
||||
{
|
||||
"id": "4d975de4-b458-43ac-9bfd-d6ab8205dc9a",
|
||||
"name": "Code",
|
||||
"type": "n8n-nodes-base.code",
|
||||
"position": [
|
||||
100,
|
||||
480
|
||||
],
|
||||
"parameters": {},
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "e85a2fd7-eaff-4390-93ed-27c038aab890",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
60,
|
||||
-40
|
||||
],
|
||||
"parameters": {
|
||||
"color": 5,
|
||||
"width": 220,
|
||||
"height": 380,
|
||||
"content": "## Config\n\nDefine\n- your n8n app base url\n- notifications recipient email \n- sender name"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "efedfd1a-8e4f-44cb-aa0b-e10608f2328d",
|
||||
"name": "Sticky Note1",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
60,
|
||||
-1000
|
||||
],
|
||||
"parameters": {
|
||||
"color": 4,
|
||||
"width": 1060,
|
||||
"height": 820,
|
||||
"content": "## Send email via Gmail on workflow error (execution and trigger-level errors)\n\nThis error handling workflow sends an email via Gmail on workflow errors with details.\n\nIt extends https://n8n.io/workflows/696-send-email-via-gmail-on-workflow-error/ by adding functionality covering also trigger-level errors.\n\n\n---\n\n### Features\n- Get notifications on both main workflow trigger and execution time errors.\n- Subject line will have the failed workflow id, name, error source (execution or trigger), error message.\n- Body will contain links to both failed and error handling workflows as well as execution or trigger error details.\n- Body will also contain a machine readable and enriched JSON from **`Error Trigger`** describing the error.\n\nUse this **error handling workflow** for as many workflows as you wish.\n\n\n---\n\n### Configiration\n- Copy this workflow to your workspace and, optionally, move it under the project that contains your main workflow\n- In this **error handling workflow** settings, set **This workflow can be called by** as appropriate\n- In **`Config`** node, define your app url, notifications recipient email, and sender name (useful to build filters in your inbox)\n- In **`Gmail`** node, create and select **credentials**\n- In your **main workflow** settings, pick this error handling workflow in the **Error Workflow** field ([How to...](https://docs.n8n.io/flow-logic/error-handling/#create-and-set-an-error-workflow))\n\n\n---\n\n### Related resources\n- [n8n Error Trigger](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.errortrigger/) documentation.\n\n\n---\n\n### Author\n- Reach out [Olek](https://community.n8n.io/u/olek/summary) on community.n8n.io\n- [Olek](https://n8n.io/creators/olek/) on n8n creators hub"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "98d42327-3d06-4fc0-a31c-64114ae5cfc2",
|
||||
"name": "Sticky Note2",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
1300,
|
||||
-40
|
||||
],
|
||||
"parameters": {
|
||||
"height": 380,
|
||||
"content": "## Gmail credentials\nSetup your Gmail account credentials here."
|
||||
},
|
||||
"typeVersion": 1
|
||||
}
|
||||
],
|
||||
"active": false,
|
||||
"pinData": {},
|
||||
"settings": {
|
||||
"executionOrder": "v1"
|
||||
},
|
||||
"versionId": "aef68c1b-3efa-4f48-97ba-23c686cb7683",
|
||||
"connections": {
|
||||
"If": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "HTML for Execution Error",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"node": "HTML for Trigger Error",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Merge": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Gmail",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Config": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Constants",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Constants": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Merge",
|
||||
"type": "main",
|
||||
"index": 1
|
||||
},
|
||||
{
|
||||
"node": "If",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Error Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Config",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"KeepEitherOfHTMLs": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Merge",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"HTML for Trigger Error": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "KeepEitherOfHTMLs",
|
||||
"type": "main",
|
||||
"index": 1
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"HTML for Execution Error": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "KeepEitherOfHTMLs",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user