feat: add folder support for workflows (fixes #70)
This commit is contained in:
376
workflows/Slack/0008_Slack_Stripe_Create_Triggered.json
Normal file
376
workflows/Slack/0008_Slack_Stripe_Create_Triggered.json
Normal file
@@ -0,0 +1,376 @@
|
||||
{
|
||||
"id": 100,
|
||||
"name": "On new Stripe Invoice Payment update Hubspot and notify the team in Slack",
|
||||
"nodes": [
|
||||
{
|
||||
"name": "When Invoice Paid",
|
||||
"type": "n8n-nodes-base.stripeTrigger",
|
||||
"position": [
|
||||
400,
|
||||
460
|
||||
],
|
||||
"webhookId": "47727266-5233-48e5-b7f7-e47252840a4e",
|
||||
"parameters": {
|
||||
"events": [
|
||||
"invoice.payment_succeeded"
|
||||
]
|
||||
},
|
||||
"credentials": {
|
||||
"stripeApi": {
|
||||
"id": "39",
|
||||
"name": "Stripe account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "Update Deal to Paid",
|
||||
"type": "n8n-nodes-base.hubspot",
|
||||
"position": [
|
||||
1240,
|
||||
500
|
||||
],
|
||||
"parameters": {
|
||||
"dealId": "={{$json[\"id\"]}}",
|
||||
"operation": "update",
|
||||
"updateFields": {
|
||||
"customPropertiesUi": {
|
||||
"customPropertiesValues": [
|
||||
{
|
||||
"value": "Yes",
|
||||
"property": "paid"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"authentication": "oAuth2"
|
||||
},
|
||||
"credentials": {
|
||||
"hubspotOAuth2Api": {
|
||||
"id": "60",
|
||||
"name": "Hubspot account 2"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "Find Deal based on PO Number",
|
||||
"type": "n8n-nodes-base.hubspot",
|
||||
"position": [
|
||||
820,
|
||||
480
|
||||
],
|
||||
"parameters": {
|
||||
"operation": "search",
|
||||
"filterGroupsUi": {
|
||||
"filterGroupsValues": [
|
||||
{
|
||||
"filtersUi": {
|
||||
"filterValues": [
|
||||
{
|
||||
"value": "={{$json[\"data\"][\"object\"][\"custom_fields\"][0][\"value\"]}}",
|
||||
"propertyName": "po_number"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"additionalFields": {}
|
||||
},
|
||||
"credentials": {
|
||||
"hubspotApi": {
|
||||
"id": "57",
|
||||
"name": "Hubspot account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1,
|
||||
"alwaysOutputData": true
|
||||
},
|
||||
{
|
||||
"name": "If no PO Number",
|
||||
"type": "n8n-nodes-base.if",
|
||||
"position": [
|
||||
600,
|
||||
460
|
||||
],
|
||||
"parameters": {
|
||||
"conditions": {
|
||||
"string": [
|
||||
{
|
||||
"value1": "={{$json[\"data\"][\"object\"][\"custom_fields\"]}}",
|
||||
"operation": "isEmpty"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "If no deal found for PO",
|
||||
"type": "n8n-nodes-base.if",
|
||||
"position": [
|
||||
1020,
|
||||
480
|
||||
],
|
||||
"parameters": {
|
||||
"conditions": {
|
||||
"string": [
|
||||
{
|
||||
"value1": "={{$json[\"id\"]}}",
|
||||
"operation": "isEmpty"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "Send invoice paid message",
|
||||
"type": "n8n-nodes-base.slack",
|
||||
"position": [
|
||||
1420,
|
||||
500
|
||||
],
|
||||
"parameters": {
|
||||
"text": ":sparkles: An invoice has been paid :sparkles:",
|
||||
"channel": "team-accounts",
|
||||
"blocksUi": {
|
||||
"blocksValues": []
|
||||
},
|
||||
"attachments": [
|
||||
{
|
||||
"color": "#00FF04",
|
||||
"fields": {
|
||||
"item": [
|
||||
{
|
||||
"short": true,
|
||||
"title": "Amount",
|
||||
"value": "={{$node[\"When Invoice Paid\"].json[\"data\"][\"object\"][\"amount_paid\"]/100}}"
|
||||
},
|
||||
{
|
||||
"short": true,
|
||||
"title": "Currency",
|
||||
"value": "={{$node[\"When Invoice Paid\"].json[\"data\"][\"object\"][\"currency\"]}}"
|
||||
},
|
||||
{
|
||||
"short": false,
|
||||
"title": "Customer Name",
|
||||
"value": "={{$node[\"When Invoice Paid\"].json[\"data\"][\"object\"][\"customer_name\"]}}"
|
||||
},
|
||||
{
|
||||
"short": false,
|
||||
"title": "Customer Email",
|
||||
"value": "={{$node[\"When Invoice Paid\"].json[\"data\"][\"object\"][\"customer_email\"]}}"
|
||||
},
|
||||
{
|
||||
"short": true,
|
||||
"title": "PO Number",
|
||||
"value": "={{$node[\"When Invoice Paid\"].json[\"data\"][\"object\"][\"custom_fields\"][0][\"value\"]}}"
|
||||
},
|
||||
{
|
||||
"short": true,
|
||||
"title": "",
|
||||
"value": "="
|
||||
}
|
||||
]
|
||||
},
|
||||
"footer": "=*Transaction ID:* {{$node[\"When Invoice Paid\"].json[\"id\"]}}"
|
||||
}
|
||||
],
|
||||
"otherOptions": {}
|
||||
},
|
||||
"credentials": {
|
||||
"slackApi": {
|
||||
"id": "53",
|
||||
"name": "Slack Access Token"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "Send no PO Message",
|
||||
"type": "n8n-nodes-base.slack",
|
||||
"position": [
|
||||
800,
|
||||
240
|
||||
],
|
||||
"parameters": {
|
||||
"text": ":x: Stripe Payment with no PO Number :x:",
|
||||
"channel": "team-accounts",
|
||||
"blocksUi": {
|
||||
"blocksValues": []
|
||||
},
|
||||
"attachments": [
|
||||
{
|
||||
"color": "#FF3C00",
|
||||
"fields": {
|
||||
"item": [
|
||||
{
|
||||
"short": true,
|
||||
"title": "Amount",
|
||||
"value": "={{$json[\"data\"][\"object\"][\"amount_paid\"] / 100}}"
|
||||
},
|
||||
{
|
||||
"short": true,
|
||||
"title": "Currency",
|
||||
"value": "={{$json[\"data\"][\"object\"][\"currency\"]}}"
|
||||
},
|
||||
{
|
||||
"short": false,
|
||||
"title": "Customer Name",
|
||||
"value": "={{$json[\"data\"][\"object\"][\"customer_name\"]}}"
|
||||
},
|
||||
{
|
||||
"short": false,
|
||||
"title": "Customer Email",
|
||||
"value": "={{$json[\"data\"][\"object\"][\"customer_email\"]}}"
|
||||
}
|
||||
]
|
||||
},
|
||||
"footer": "=*Transaction ID:* {{$json[\"id\"]}}"
|
||||
}
|
||||
],
|
||||
"otherOptions": {}
|
||||
},
|
||||
"credentials": {
|
||||
"slackApi": {
|
||||
"id": "53",
|
||||
"name": "Slack Access Token"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "Send Deal not found message",
|
||||
"type": "n8n-nodes-base.slack",
|
||||
"position": [
|
||||
1180,
|
||||
240
|
||||
],
|
||||
"parameters": {
|
||||
"text": ":x: Unable to find Deal for the below payment :x:",
|
||||
"channel": "team-accounts",
|
||||
"blocksUi": {
|
||||
"blocksValues": []
|
||||
},
|
||||
"attachments": [
|
||||
{
|
||||
"color": "#FF3C00",
|
||||
"fields": {
|
||||
"item": [
|
||||
{
|
||||
"short": true,
|
||||
"title": "Amount",
|
||||
"value": "={{$node[\"When Invoice Paid\"].json[\"data\"][\"object\"][\"amount_paid\"]/100}}"
|
||||
},
|
||||
{
|
||||
"short": true,
|
||||
"title": "Currency",
|
||||
"value": "={{$node[\"When Invoice Paid\"].json[\"data\"][\"object\"][\"currency\"]}}"
|
||||
},
|
||||
{
|
||||
"short": false,
|
||||
"title": "Customer Name",
|
||||
"value": "={{$node[\"When Invoice Paid\"].json[\"data\"][\"object\"][\"customer_name\"]}}"
|
||||
},
|
||||
{
|
||||
"short": false,
|
||||
"title": "Customer Email",
|
||||
"value": "={{$node[\"When Invoice Paid\"].json[\"data\"][\"object\"][\"customer_email\"]}}"
|
||||
},
|
||||
{
|
||||
"short": true,
|
||||
"title": "PO Number",
|
||||
"value": "={{$node[\"When Invoice Paid\"].json[\"data\"][\"object\"][\"custom_fields\"][0][\"value\"]}}"
|
||||
}
|
||||
]
|
||||
},
|
||||
"footer": "=*Transaction ID:* {{$node[\"When Invoice Paid\"].json[\"id\"]}}"
|
||||
}
|
||||
],
|
||||
"otherOptions": {}
|
||||
},
|
||||
"credentials": {
|
||||
"slackApi": {
|
||||
"id": "53",
|
||||
"name": "Slack Access Token"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
}
|
||||
],
|
||||
"active": false,
|
||||
"settings": {},
|
||||
"connections": {
|
||||
"If no PO Number": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Send no PO Message",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"node": "Find Deal based on PO Number",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"When Invoice Paid": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "If no PO Number",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Update Deal to Paid": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Send invoice paid message",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"If no deal found for PO": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Send Deal not found message",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"node": "Update Deal to Paid",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Find Deal based on PO Number": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "If no deal found for PO",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
369
workflows/Slack/0109_Slack_Cron_Automate_Scheduled.json
Normal file
369
workflows/Slack/0109_Slack_Cron_Automate_Scheduled.json
Normal file
@@ -0,0 +1,369 @@
|
||||
{
|
||||
"nodes": [
|
||||
{
|
||||
"name": "Google Calendar",
|
||||
"type": "n8n-nodes-base.googleCalendar",
|
||||
"position": [
|
||||
540,
|
||||
-320
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"calendar": "xxxxx@gmail.com",
|
||||
"operation": "getAll",
|
||||
"returnAll": true
|
||||
},
|
||||
"credentials": {
|
||||
"googleCalendarOAuth2Api": "Google Accounts"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "Function",
|
||||
"type": "n8n-nodes-base.function",
|
||||
"position": [
|
||||
540,
|
||||
70
|
||||
],
|
||||
"parameters": {
|
||||
"functionCode": "var date = new Date().toISOString();\nvar day = new Date().getDay();\nconst weekday = [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"];\n\nitems[0].json.date_today = date;\nitems[0].json.day_today = weekday[day];\n\nreturn items;"
|
||||
},
|
||||
"notesInFlow": false,
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "Date & Time",
|
||||
"type": "n8n-nodes-base.dateTime",
|
||||
"position": [
|
||||
720,
|
||||
-320
|
||||
],
|
||||
"parameters": {
|
||||
"value": "={{$json[\"start\"][\"dateTime\"]}}",
|
||||
"custom": true,
|
||||
"options": {
|
||||
"toTimezone": "Asia/Qatar"
|
||||
},
|
||||
"toFormat": "DD/MM/YYYY",
|
||||
"dataPropertyName": "Event Start Date Only"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "IF",
|
||||
"type": "n8n-nodes-base.if",
|
||||
"position": [
|
||||
1410,
|
||||
-110
|
||||
],
|
||||
"parameters": {
|
||||
"conditions": {
|
||||
"string": [
|
||||
{
|
||||
"value1": "= {{$json[\"Event Date\"]}}",
|
||||
"value2": "= {{$json[\"Today's Date\"]}}"
|
||||
}
|
||||
],
|
||||
"dateTime": []
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "Date & Time1",
|
||||
"type": "n8n-nodes-base.dateTime",
|
||||
"position": [
|
||||
880,
|
||||
70
|
||||
],
|
||||
"parameters": {
|
||||
"value": "={{$json[\"date_today\"]}}",
|
||||
"custom": true,
|
||||
"options": {
|
||||
"toTimezone": "Asia/Qatar"
|
||||
},
|
||||
"toFormat": "DD/MM/YYYY",
|
||||
"dataPropertyName": "Today's Date"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "Set",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
910,
|
||||
-320
|
||||
],
|
||||
"parameters": {
|
||||
"values": {
|
||||
"string": [
|
||||
{
|
||||
"name": "Event Name",
|
||||
"value": "={{$json[\"summary\"]}}"
|
||||
},
|
||||
{
|
||||
"name": "Event Date",
|
||||
"value": "={{$json[\"Event Start Date Only\"]}}"
|
||||
},
|
||||
{
|
||||
"name": "Today's Date",
|
||||
"value": "="
|
||||
},
|
||||
{
|
||||
"name": "Gcal URL",
|
||||
"value": "={{$json[\"htmlLink\"]}}"
|
||||
},
|
||||
{
|
||||
"name": "Location",
|
||||
"value": "={{$json[\"location\"]}}"
|
||||
},
|
||||
{
|
||||
"name": "Start Time",
|
||||
"value": "={{$json[\"start\"][\"dateTime\"]}}"
|
||||
}
|
||||
]
|
||||
},
|
||||
"options": {},
|
||||
"keepOnlySet": true
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "Merge",
|
||||
"type": "n8n-nodes-base.merge",
|
||||
"position": [
|
||||
1200,
|
||||
-110
|
||||
],
|
||||
"parameters": {
|
||||
"mode": "multiplex"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "Set1",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
1630,
|
||||
-130
|
||||
],
|
||||
"parameters": {
|
||||
"values": {
|
||||
"number": [],
|
||||
"string": [
|
||||
{
|
||||
"name": "Name",
|
||||
"value": "={{$json[\"Event Name\"]}}"
|
||||
},
|
||||
{
|
||||
"name": "Time",
|
||||
"value": "={{$json[\"Start Time\"]}}"
|
||||
},
|
||||
{
|
||||
"name": "URL",
|
||||
"value": "={{$json[\"Gcal URL\"]}}"
|
||||
}
|
||||
]
|
||||
},
|
||||
"options": {},
|
||||
"keepOnlySet": true
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "Date & Time2",
|
||||
"type": "n8n-nodes-base.dateTime",
|
||||
"position": [
|
||||
1800,
|
||||
-130
|
||||
],
|
||||
"parameters": {
|
||||
"value": "={{$json[\"Time\"]}}",
|
||||
"custom": true,
|
||||
"options": {
|
||||
"toTimezone": "Asia/Qatar"
|
||||
},
|
||||
"toFormat": "HH:mm",
|
||||
"dataPropertyName": "Time"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "Function1",
|
||||
"type": "n8n-nodes-base.function",
|
||||
"position": [
|
||||
1960,
|
||||
-130
|
||||
],
|
||||
"parameters": {
|
||||
"functionCode": "// Create our Slack message\n// This will output a list of Ticket URLs with the status and the subject\n// 12345 [STATUS] - Ticket Subject\nlet message = \"*Hello , Please find below a list of your meetings for today*. \\n\";\n\n// Loop the input items\nfor (item of items) {\n // Append the ticket information to the message\n message += \"*\" + item.json.Name +' @ '+ item.json.Time + \"\\n* - \" + item.json.URL + \"\\n\"; \n}\n\n// Return our message\nreturn [{json: {message}}];\n"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "Slack",
|
||||
"type": "n8n-nodes-base.slack",
|
||||
"position": [
|
||||
2150,
|
||||
-130
|
||||
],
|
||||
"parameters": {
|
||||
"text": "={{$json[\"message\"]}}",
|
||||
"channel": "virtual-assistant",
|
||||
"attachments": [],
|
||||
"otherOptions": {}
|
||||
},
|
||||
"credentials": {
|
||||
"slackApi": "Slack account"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "Cron",
|
||||
"type": "n8n-nodes-base.cron",
|
||||
"position": [
|
||||
250,
|
||||
-130
|
||||
],
|
||||
"parameters": {
|
||||
"triggerTimes": {
|
||||
"item": [
|
||||
{
|
||||
"hour": 6
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"retryOnFail": true,
|
||||
"typeVersion": 1
|
||||
}
|
||||
],
|
||||
"connections": {
|
||||
"IF": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Set1",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Set": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Merge",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Cron": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Google Calendar",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
},
|
||||
{
|
||||
"node": "Function",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Set1": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Date & Time2",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Merge": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "IF",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Function": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Date & Time1",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Function1": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Slack",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Date & Time": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Set",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Date & Time1": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Merge",
|
||||
"type": "main",
|
||||
"index": 1
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Date & Time2": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Function1",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Google Calendar": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Date & Time",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
404
workflows/Slack/0124_Slack_Typeform_Create_Triggered.json
Normal file
404
workflows/Slack/0124_Slack_Typeform_Create_Triggered.json
Normal file
@@ -0,0 +1,404 @@
|
||||
{
|
||||
"nodes": [
|
||||
{
|
||||
"name": "Typeform Trigger",
|
||||
"type": "n8n-nodes-base.typeformTrigger",
|
||||
"position": [
|
||||
140,
|
||||
200
|
||||
],
|
||||
"webhookId": "",
|
||||
"parameters": {
|
||||
"formId": ""
|
||||
},
|
||||
"credentials": {
|
||||
"typeformApi": {
|
||||
"id": "",
|
||||
"name": ""
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "Slack1",
|
||||
"type": "n8n-nodes-base.slack",
|
||||
"position": [
|
||||
1360,
|
||||
300
|
||||
],
|
||||
"parameters": {
|
||||
"text": "🥳 An existing lead has just subscribed!",
|
||||
"channel": "",
|
||||
"attachments": [],
|
||||
"otherOptions": {}
|
||||
},
|
||||
"credentials": {
|
||||
"slackApi": {
|
||||
"id": "",
|
||||
"name": ""
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "Airtable - Contact List",
|
||||
"type": "n8n-nodes-base.airtable",
|
||||
"position": [
|
||||
540,
|
||||
200
|
||||
],
|
||||
"parameters": {
|
||||
"table": "Contacts",
|
||||
"operation": "list",
|
||||
"returnAll": false,
|
||||
"application": "",
|
||||
"additionalOptions": {
|
||||
"fields": [],
|
||||
"filterByFormula": "=fullName=\"{{$json[\"full_name\"]}}\""
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"airtableApi": {
|
||||
"id": "",
|
||||
"name": ""
|
||||
}
|
||||
},
|
||||
"executeOnce": false,
|
||||
"typeVersion": 1,
|
||||
"alwaysOutputData": true
|
||||
},
|
||||
{
|
||||
"name": "Airtable - Update Contacts1",
|
||||
"type": "n8n-nodes-base.airtable",
|
||||
"position": [
|
||||
1150,
|
||||
300
|
||||
],
|
||||
"parameters": {
|
||||
"id": "={{$node[\"Airtable - Contact List\"].json[\"id\"]}}",
|
||||
"table": "Contacts",
|
||||
"fields": [
|
||||
"firstName",
|
||||
"lastName",
|
||||
"linkedInProfile",
|
||||
"Email",
|
||||
"Phone",
|
||||
"website",
|
||||
"LinkedIn Company",
|
||||
"Industry",
|
||||
"Address"
|
||||
],
|
||||
"options": {
|
||||
"typecast": true
|
||||
},
|
||||
"operation": "update",
|
||||
"application": "",
|
||||
"updateAllFields": false
|
||||
},
|
||||
"credentials": {
|
||||
"airtableApi": {
|
||||
"id": "",
|
||||
"name": ""
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "Slack",
|
||||
"type": "n8n-nodes-base.slack",
|
||||
"position": [
|
||||
1360,
|
||||
100
|
||||
],
|
||||
"parameters": {
|
||||
"text": "=🎉 A new lead has just subscribed!",
|
||||
"channel": "",
|
||||
"attachments": [],
|
||||
"otherOptions": {}
|
||||
},
|
||||
"credentials": {
|
||||
"slackApi": {
|
||||
"id": "",
|
||||
"name": ""
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "Set - Contacts to update",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
940,
|
||||
100
|
||||
],
|
||||
"parameters": {
|
||||
"values": {
|
||||
"string": [
|
||||
{
|
||||
"name": "firstName",
|
||||
"value": "={{$node[\"Dropcontact\"].json[\"first_name\"]}}"
|
||||
},
|
||||
{
|
||||
"name": "lastName",
|
||||
"value": "={{$node[\"Dropcontact\"].json[\"last_name\"]}}"
|
||||
},
|
||||
{
|
||||
"name": "linkedInProfile",
|
||||
"value": "={{$node[\"Dropcontact\"].json[\"linkedin\"]}}"
|
||||
},
|
||||
{
|
||||
"name": "Email",
|
||||
"value": "={{$node[\"Dropcontact\"].json[\"email\"][0][\"email\"]}}"
|
||||
},
|
||||
{
|
||||
"name": "Phone",
|
||||
"value": "={{$node[\"Dropcontact\"].json[\"phone\"]}}"
|
||||
},
|
||||
{
|
||||
"name": "website",
|
||||
"value": "={{$node[\"Dropcontact\"].json[\"website\"]}}"
|
||||
},
|
||||
{
|
||||
"name": "LinkedIn Company",
|
||||
"value": "={{$node[\"Dropcontact\"].json[\"company_linkedin\"]}}"
|
||||
},
|
||||
{
|
||||
"name": "Industry",
|
||||
"value": "={{$node[\"Dropcontact\"].json[\"naf5_des\"]}}"
|
||||
},
|
||||
{
|
||||
"name": "Address",
|
||||
"value": "={{$node[\"Dropcontact\"].json[\"siret_address\"]}}, {{$node[\"Dropcontact\"].json[\"siret_zip\"]}} {{$node[\"Dropcontact\"].json[\"siret_city\"]}}"
|
||||
}
|
||||
]
|
||||
},
|
||||
"options": {
|
||||
"dotNotation": true
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "Dropcontact",
|
||||
"type": "n8n-nodes-base.dropcontact",
|
||||
"position": [
|
||||
340,
|
||||
200
|
||||
],
|
||||
"parameters": {
|
||||
"email": "=",
|
||||
"options": {
|
||||
"siren": true,
|
||||
"language": "fr"
|
||||
},
|
||||
"additionalFields": {
|
||||
"company": "={{$json[\"and your company ?\"]}}",
|
||||
"website": "={{$node[\"Typeform Trigger\"].json[\"tell me more... What's your website ?\"]}}",
|
||||
"last_name": "={{$json[\"Hi [field:1c6436830dfffbf1], what's your last name ?\"]}}",
|
||||
"first_name": "={{$json[\"First, what's your name?\"]}}"
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"dropcontactApi": {
|
||||
"id": "",
|
||||
"name": ""
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "Contact ID empty ?",
|
||||
"type": "n8n-nodes-base.if",
|
||||
"position": [
|
||||
730,
|
||||
200
|
||||
],
|
||||
"parameters": {
|
||||
"conditions": {
|
||||
"string": [
|
||||
{
|
||||
"value1": "={{$json[\"id\"]}}",
|
||||
"operation": "isEmpty"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1,
|
||||
"alwaysOutputData": true
|
||||
},
|
||||
{
|
||||
"name": "Airtable - Create Contacts",
|
||||
"type": "n8n-nodes-base.airtable",
|
||||
"position": [
|
||||
1150,
|
||||
100
|
||||
],
|
||||
"parameters": {
|
||||
"table": "Contacts",
|
||||
"options": {
|
||||
"typecast": true
|
||||
},
|
||||
"operation": "append",
|
||||
"application": ""
|
||||
},
|
||||
"credentials": {
|
||||
"airtableApi": {
|
||||
"id": "",
|
||||
"name": ""
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "Set - Contacts to create",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
940,
|
||||
300
|
||||
],
|
||||
"parameters": {
|
||||
"values": {
|
||||
"string": [
|
||||
{
|
||||
"name": "firstName",
|
||||
"value": "={{$node[\"Dropcontact\"].json[\"first_name\"]}}"
|
||||
},
|
||||
{
|
||||
"name": "lastName",
|
||||
"value": "={{$node[\"Dropcontact\"].json[\"last_name\"]}}"
|
||||
},
|
||||
{
|
||||
"name": "linkedInProfile",
|
||||
"value": "={{$node[\"Dropcontact\"].json[\"linkedin\"]}}"
|
||||
},
|
||||
{
|
||||
"name": "Email",
|
||||
"value": "={{$node[\"Dropcontact\"].json[\"email\"][0][\"email\"]}}"
|
||||
},
|
||||
{
|
||||
"name": "Phone",
|
||||
"value": "={{$node[\"Dropcontact\"].json[\"phone\"]}}"
|
||||
},
|
||||
{
|
||||
"name": "website",
|
||||
"value": "={{$node[\"Dropcontact\"].json[\"website\"]}}"
|
||||
},
|
||||
{
|
||||
"name": "LinkedIn Company",
|
||||
"value": "={{$node[\"Dropcontact\"].json[\"company_linkedin\"]}}"
|
||||
},
|
||||
{
|
||||
"name": "Industry",
|
||||
"value": "={{$node[\"Dropcontact\"].json[\"naf5_des\"]}}"
|
||||
},
|
||||
{
|
||||
"name": "Address",
|
||||
"value": "={{$node[\"Dropcontact\"].json[\"siret_address\"]}}, {{$node[\"Dropcontact\"].json[\"siret_zip\"]}} {{$node[\"Dropcontact\"].json[\"siret_city\"]}}"
|
||||
}
|
||||
]
|
||||
},
|
||||
"options": {
|
||||
"dotNotation": true
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
}
|
||||
],
|
||||
"connections": {
|
||||
"Dropcontact": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Airtable - Contact List",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Typeform Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Dropcontact",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Contact ID empty ?": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Set - Contacts to update",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"node": "Set - Contacts to create",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Airtable - Contact List": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Contact ID empty ?",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Set - Contacts to create": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Airtable - Update Contacts1",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Set - Contacts to update": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Airtable - Create Contacts",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Airtable - Create Contacts": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Slack",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Airtable - Update Contacts1": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Slack1",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
62
workflows/Slack/0176_Slack_Onfleet_Send_Triggered.json
Normal file
62
workflows/Slack/0176_Slack_Onfleet_Send_Triggered.json
Normal file
@@ -0,0 +1,62 @@
|
||||
{
|
||||
"id": 14,
|
||||
"name": "Onfleet Driver signup message in Slack",
|
||||
"nodes": [
|
||||
{
|
||||
"name": "Onfleet Trigger",
|
||||
"type": "n8n-nodes-base.onfleetTrigger",
|
||||
"position": [
|
||||
460,
|
||||
300
|
||||
],
|
||||
"webhookId": "a005e163-13a2-4ea2-a127-6e00e30a82f4",
|
||||
"parameters": {
|
||||
"triggerOn": "workerCreated",
|
||||
"additionalFields": {}
|
||||
},
|
||||
"credentials": {
|
||||
"onfleetApi": {
|
||||
"id": "2",
|
||||
"name": "Onfleet API Key"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "Slack",
|
||||
"type": "n8n-nodes-base.slack",
|
||||
"position": [
|
||||
680,
|
||||
300
|
||||
],
|
||||
"parameters": {
|
||||
"text": "A new driver has signed up!",
|
||||
"channel": "#new-driver-signup",
|
||||
"attachments": [],
|
||||
"otherOptions": {}
|
||||
},
|
||||
"credentials": {
|
||||
"slackApi": {
|
||||
"id": "7",
|
||||
"name": "Slack account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
}
|
||||
],
|
||||
"active": false,
|
||||
"settings": {},
|
||||
"connections": {
|
||||
"Onfleet Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Slack",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
311
workflows/Slack/0423_Slack_Hunter_Send_Webhook.json
Normal file
311
workflows/Slack/0423_Slack_Hunter_Send_Webhook.json
Normal file
@@ -0,0 +1,311 @@
|
||||
{
|
||||
"nodes": [
|
||||
{
|
||||
"id": "1a461b8a-090e-4dc4-a3d7-bf976a49828e",
|
||||
"name": "Slack",
|
||||
"type": "n8n-nodes-base.slack",
|
||||
"position": [
|
||||
1660,
|
||||
200
|
||||
],
|
||||
"parameters": {
|
||||
"text": "=⭐ Got a hot lead for you {{ $json.properties.first_name }} {{ $json.properties.last_name }} from {{ $json.company.properties.name }} ({{ $json.company.properties.domain }}) based out of {{ $json.company.properties.location.state }}, {{ $json.company.properties.location.country }}.\n\n\n{{ $('Score lead with MadKudu').item.json.properties.customer_fit.top_signals_formatted }}",
|
||||
"select": "channel",
|
||||
"channelId": {
|
||||
"__rl": true,
|
||||
"mode": "name",
|
||||
"value": "#interesting_leads"
|
||||
},
|
||||
"otherOptions": {}
|
||||
},
|
||||
"credentials": {
|
||||
"slackApi": {
|
||||
"id": "241",
|
||||
"name": "Nathan Slack Bot token"
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.1
|
||||
},
|
||||
{
|
||||
"id": "bcd8e7dc-cb7f-4e2b-a0c6-2d154cb58938",
|
||||
"name": "n8n Form Trigger",
|
||||
"type": "n8n-nodes-base.formTrigger",
|
||||
"position": [
|
||||
380,
|
||||
420
|
||||
],
|
||||
"webhookId": "0bf8840f-1cc4-46a9-86af-a3fa8da80608",
|
||||
"parameters": {
|
||||
"path": "0bf8840f-1cc4-46a9-86af-a3fa8da80608",
|
||||
"options": {},
|
||||
"formTitle": "Contact us",
|
||||
"formFields": {
|
||||
"values": [
|
||||
{
|
||||
"fieldLabel": "What's your business email?"
|
||||
}
|
||||
]
|
||||
},
|
||||
"formDescription": "We'll get back to you soon"
|
||||
},
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "c20c626f-fd58-497f-942f-5d10f198f36d",
|
||||
"name": "Check if the email is valid",
|
||||
"type": "n8n-nodes-base.if",
|
||||
"position": [
|
||||
800,
|
||||
420
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"conditions": {
|
||||
"options": {
|
||||
"leftValue": "",
|
||||
"caseSensitive": true,
|
||||
"typeValidation": "strict"
|
||||
},
|
||||
"combinator": "and",
|
||||
"conditions": [
|
||||
{
|
||||
"id": "54d84c8a-63ee-40ed-8fb2-301fff0194ba",
|
||||
"operator": {
|
||||
"name": "filter.operator.equals",
|
||||
"type": "string",
|
||||
"operation": "equals"
|
||||
},
|
||||
"leftValue": "={{ $json.status }}",
|
||||
"rightValue": "valid"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "9c55911c-06b7-4291-a91d-30c0cb87b7f2",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
380,
|
||||
220
|
||||
],
|
||||
"parameters": {
|
||||
"color": 5,
|
||||
"width": 547,
|
||||
"height": 158,
|
||||
"content": "### 👨🎤 Setup\n1. Add you **MadKudu**, **Hunter**, and **Slack** credentials \n2. Set the Slack channel\n3. Click the Test Workflow button, enter your email and check the Slack channel\n4. Activate the workflow and use the form trigger production URL to collect your leads in a smart way "
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "c96096f2-6505-4955-bb1b-c4f903428b1d",
|
||||
"name": "Sticky Note1",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
380,
|
||||
560
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 162,
|
||||
"height": 139,
|
||||
"content": "👆 You can exchange this with any form you like (*e.g. Typeform, Google forms, Survey Monkey...*)"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "751458aa-7b63-48ab-881e-d68df94a3390",
|
||||
"name": "Sticky Note2",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
1360,
|
||||
500
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 162,
|
||||
"height": 84,
|
||||
"content": "👆 Adjust the fit as you see necessary"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "6416c2ee-59a0-4496-bd62-0a3af06986b7",
|
||||
"name": "Email is not valid, do nothing",
|
||||
"type": "n8n-nodes-base.noOp",
|
||||
"position": [
|
||||
1140,
|
||||
560
|
||||
],
|
||||
"parameters": {},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "b9ce2ee8-b816-497a-99af-faffdc99ee5f",
|
||||
"name": "Score lead with MadKudu",
|
||||
"type": "n8n-nodes-base.httpRequest",
|
||||
"position": [
|
||||
1140,
|
||||
320
|
||||
],
|
||||
"parameters": {
|
||||
"url": "=https://api.madkudu.com/v1/persons?email={{ $json.email }}",
|
||||
"options": {},
|
||||
"authentication": "genericCredentialType",
|
||||
"genericAuthType": "httpHeaderAuth"
|
||||
},
|
||||
"credentials": {
|
||||
"httpHeaderAuth": {
|
||||
"id": "71W5Bt9g1G9GOhVL",
|
||||
"name": "MadKudu Lead score"
|
||||
}
|
||||
},
|
||||
"typeVersion": 4.1
|
||||
},
|
||||
{
|
||||
"id": "0720ab51-5222-46fe-8a1a-31e25b81920c",
|
||||
"name": "Verify email with Hunter",
|
||||
"type": "n8n-nodes-base.hunter",
|
||||
"position": [
|
||||
600,
|
||||
420
|
||||
],
|
||||
"parameters": {
|
||||
"email": "={{ $json['What\\'s your business email?'] }}",
|
||||
"operation": "emailVerifier"
|
||||
},
|
||||
"credentials": {
|
||||
"hunterApi": {
|
||||
"id": "ecwmdHFSBU5GGnV1",
|
||||
"name": "Hunter account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "95ec00d2-d926-49ff-a604-1f2d0b291b6f",
|
||||
"name": "Not interesting enough",
|
||||
"type": "n8n-nodes-base.noOp",
|
||||
"position": [
|
||||
1660,
|
||||
460
|
||||
],
|
||||
"parameters": {},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "5dc270d5-29fd-4620-8ca4-84532cf49c34",
|
||||
"name": "if customer fit score > 60",
|
||||
"type": "n8n-nodes-base.if",
|
||||
"position": [
|
||||
1380,
|
||||
320
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"conditions": {
|
||||
"options": {
|
||||
"leftValue": "",
|
||||
"caseSensitive": true,
|
||||
"typeValidation": "strict"
|
||||
},
|
||||
"combinator": "and",
|
||||
"conditions": [
|
||||
{
|
||||
"id": "c23d7b34-a4ae-421f-bd7a-6a3ebb05aafe",
|
||||
"operator": {
|
||||
"type": "number",
|
||||
"operation": "gt"
|
||||
},
|
||||
"leftValue": "={{ $json.properties.customer_fit.score }}",
|
||||
"rightValue": 60
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 2
|
||||
}
|
||||
],
|
||||
"pinData": {
|
||||
"n8n Form Trigger": [
|
||||
{
|
||||
"formMode": "test",
|
||||
"submittedAt": "2024-02-22T13:59:54.709Z",
|
||||
"What's your business email?": "jan@n8n.io"
|
||||
}
|
||||
]
|
||||
},
|
||||
"connections": {
|
||||
"n8n Form Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Verify email with Hunter",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Score lead with MadKudu": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "if customer fit score > 60",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Verify email with Hunter": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Check if the email is valid",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"if customer fit score > 60": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Slack",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"node": "Not interesting enough",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Check if the email is valid": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Score lead with MadKudu",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"node": "Email is not valid, do nothing",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
221
workflows/Slack/0552_Slack_Stickynote_Send_Webhook.json
Normal file
221
workflows/Slack/0552_Slack_Stickynote_Send_Webhook.json
Normal file
@@ -0,0 +1,221 @@
|
||||
{
|
||||
"meta": {
|
||||
"instanceId": "84ba6d895254e080ac2b4916d987aa66b000f88d4d919a6b9c76848f9b8a7616",
|
||||
"templateId": "2370"
|
||||
},
|
||||
"nodes": [
|
||||
{
|
||||
"id": "2ce91ec6-0a8c-438a-8a18-216001c9ee07",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
380,
|
||||
240
|
||||
],
|
||||
"parameters": {
|
||||
"width": 407.6388140161723,
|
||||
"height": 490.24769122000794,
|
||||
"content": "## This is a POST Webhook endpoint\n\nMake sure to configure this webhook using a https:// wraper and dont use the default http://localhost:5678 as that will not be recognized by your slack webhook\n\n\nOnce the data has been sent to your webhook, the next step will be passing it via an AI Agent to process data based on the queries we pass to our agent.\n\nTo have some sort of a memory, be sure to set the slack token to the memory node. This way you can refer to other chats from the history.\n\nThe final message is relayed back to slack as a new message. Since we can not wait longer than 3000 ms for slack response, we will create anew message with reference to the input we passed.\n\nWe can advance this using the tools or data sources for it to be more custom tailored for your company.\n"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "7a0c84a8-90ef-4de8-b120-700c94c35a51",
|
||||
"name": "Sticky Note2",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
1180,
|
||||
560
|
||||
],
|
||||
"parameters": {
|
||||
"color": 4,
|
||||
"width": 221.73584905660368,
|
||||
"height": 233,
|
||||
"content": "### Conversation history is stored in memory using the body token as the chatsession id"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "9b843e0e-42a6-4125-8c59-a7d5620a15f7",
|
||||
"name": "Sticky Note3",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
942.5229110512129,
|
||||
560
|
||||
],
|
||||
"parameters": {
|
||||
"color": 4,
|
||||
"width": 217.47708894878716,
|
||||
"height": 233,
|
||||
"content": "### The chat LLM to process the prompt. Use any AI model here"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "4efa968f-ebf5-42ec-80d3-907ef2622c61",
|
||||
"name": "Google Gemini Chat Model",
|
||||
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
|
||||
"position": [
|
||||
1020,
|
||||
640
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"modelName": "models/gemini-1.5-flash-latest"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "fd1efd7c-7cd0-4edf-960e-19bd4567293e",
|
||||
"name": "Window Buffer Memory",
|
||||
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
|
||||
"position": [
|
||||
1260,
|
||||
660
|
||||
],
|
||||
"parameters": {
|
||||
"sessionKey": "={{ $('Webhook to receive message').item.json.body.token }}",
|
||||
"sessionIdType": "customKey",
|
||||
"contextWindowLength": 10
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
},
|
||||
{
|
||||
"id": "60d1eb77-492d-4a18-8cec-fa3f6ef8d707",
|
||||
"name": "Sticky Note4",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
1467.5148247978436,
|
||||
260
|
||||
],
|
||||
"parameters": {
|
||||
"color": 4,
|
||||
"width": 223.7196765498655,
|
||||
"height": 236.66152029520293,
|
||||
"content": "### Send the response from AI back to slack channel\n"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "186069c0-5c79-4738-9924-de33998658bc",
|
||||
"name": "Sticky Note1",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
840,
|
||||
180
|
||||
],
|
||||
"parameters": {
|
||||
"color": 4,
|
||||
"width": 561.423180592992,
|
||||
"height": 340.09703504043114,
|
||||
"content": "## Receive a POST webhook, process data and return response"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "2bfce117-a769-46e1-a028-ed0c7ba62653",
|
||||
"name": "Send response back to slack channel",
|
||||
"type": "n8n-nodes-base.slack",
|
||||
"position": [
|
||||
1540,
|
||||
320
|
||||
],
|
||||
"parameters": {
|
||||
"text": "={{ $('Webhook to receive message').item.json.body.user_name }}: {{ $('Webhook to receive message').item.json.body.text }}\n\nEffibotics Bot: {{ $json.output.removeMarkdown() }} ",
|
||||
"select": "channel",
|
||||
"channelId": {
|
||||
"__rl": true,
|
||||
"mode": "id",
|
||||
"value": "={{ $('Webhook to receive message').item.json.body.channel_id }}"
|
||||
},
|
||||
"otherOptions": {
|
||||
"mrkdwn": true,
|
||||
"sendAsUser": "Effibotics Bot",
|
||||
"includeLinkToWorkflow": false
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.1
|
||||
},
|
||||
{
|
||||
"id": "cfcf2bbc-8ed5-4a9f-8f35-cf2715686ebe",
|
||||
"name": "Webhook to receive message",
|
||||
"type": "n8n-nodes-base.webhook",
|
||||
"position": [
|
||||
880,
|
||||
320
|
||||
],
|
||||
"webhookId": "28b84545-96aa-42f5-990b-aa8783a320ca",
|
||||
"parameters": {
|
||||
"path": "slack-bot",
|
||||
"options": {
|
||||
"responseData": ""
|
||||
},
|
||||
"httpMethod": "POST"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "dc93e588-fc0b-4561-88a5-e1cccd48323f",
|
||||
"name": "Agent",
|
||||
"type": "@n8n/n8n-nodes-langchain.agent",
|
||||
"position": [
|
||||
1100,
|
||||
320
|
||||
],
|
||||
"parameters": {
|
||||
"text": "={{ $json.body.text }}",
|
||||
"options": {
|
||||
"systemMessage": "You are Effibotics AI personal assistant. Your task will be to provide helpful assistance and advice related to automation and such tasks. "
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
}
|
||||
],
|
||||
"pinData": {},
|
||||
"connections": {
|
||||
"Agent": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Send response back to slack channel",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Window Buffer Memory": {
|
||||
"ai_memory": [
|
||||
[
|
||||
{
|
||||
"node": "Agent",
|
||||
"type": "ai_memory",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Google Gemini Chat Model": {
|
||||
"ai_languageModel": [
|
||||
[
|
||||
{
|
||||
"node": "Agent",
|
||||
"type": "ai_languageModel",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Webhook to receive message": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Agent",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
739
workflows/Slack/0761_Slack_Comparedatasets_Create_Triggered.json
Normal file
739
workflows/Slack/0761_Slack_Comparedatasets_Create_Triggered.json
Normal file
@@ -0,0 +1,739 @@
|
||||
{
|
||||
"meta": {
|
||||
"instanceId": "cb484ba7b742928a2048bf8829668bed5b5ad9787579adea888f05980292a4a7",
|
||||
"templateCredsSetupCompleted": true
|
||||
},
|
||||
"nodes": [
|
||||
{
|
||||
"id": "3af140c3-03eb-4eeb-ad31-71f94bc37790",
|
||||
"name": "Loop to next call",
|
||||
"type": "n8n-nodes-base.noOp",
|
||||
"position": [
|
||||
4820,
|
||||
120
|
||||
],
|
||||
"parameters": {},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "8904df21-c993-4c3d-84e6-4418990cb52f",
|
||||
"name": "Execute Workflow Trigger",
|
||||
"type": "n8n-nodes-base.executeWorkflowTrigger",
|
||||
"position": [
|
||||
700,
|
||||
-40
|
||||
],
|
||||
"parameters": {},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "d85f05bd-c680-4b41-b67a-8126b3ed29b0",
|
||||
"name": "Create Notion DB Page",
|
||||
"type": "n8n-nodes-base.notion",
|
||||
"position": [
|
||||
3240,
|
||||
60
|
||||
],
|
||||
"parameters": {
|
||||
"title": "={{ $json.metaData.title }}",
|
||||
"options": {
|
||||
"icon": "📞"
|
||||
},
|
||||
"resource": "databasePage",
|
||||
"databaseId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "1a85b6e0-c94f-81a3-aa21-e3ccf8296d72",
|
||||
"cachedResultUrl": "https://www.notion.so/1a85b6e0c94f81a3aa21e3ccf8296d72",
|
||||
"cachedResultName": "Sales Call Summaries Demo"
|
||||
},
|
||||
"propertiesUi": {
|
||||
"propertyValues": [
|
||||
{
|
||||
"key": "Call Date|date",
|
||||
"date": "={{ $json.metaData.started }}"
|
||||
},
|
||||
{
|
||||
"key": "Recording URL|url",
|
||||
"urlValue": "={{ $json.metaData.url }}"
|
||||
},
|
||||
{
|
||||
"key": "Company|rich_text",
|
||||
"textContent": "={{ $json.metaData.CompanyName }}"
|
||||
},
|
||||
{
|
||||
"key": "Call Name|title",
|
||||
"title": "={{ $json.metaData.title }}"
|
||||
},
|
||||
{
|
||||
"key": "Gong Call ID|rich_text",
|
||||
"textContent": "={{ $json.metaData.GongCallID }}"
|
||||
},
|
||||
{
|
||||
"key": "SF Opp ID|rich_text",
|
||||
"textContent": "={{ $json.sfOpp[0].SFOppId }}"
|
||||
},
|
||||
{
|
||||
"key": "SF Opp Stage|select",
|
||||
"selectValue": "={{ $json.sfOpp[0].sfStage }}"
|
||||
},
|
||||
{
|
||||
"key": "SF Company ID|rich_text",
|
||||
"textContent": "={{ $json.sfOpp[0].companyAccountId }}"
|
||||
},
|
||||
{
|
||||
"key": "SF Opp Won|checkbox",
|
||||
"checkboxValue": "={{ $json.sfOpp[0].IsWon }}"
|
||||
},
|
||||
{
|
||||
"key": "SF Opp Closed|checkbox",
|
||||
"checkboxValue": "={{ $json.sfOpp[0].IsClosed }}"
|
||||
},
|
||||
{
|
||||
"key": "Company Size|select",
|
||||
"selectValue": "={{ $json.sfOpp[0].Employees }}"
|
||||
},
|
||||
{
|
||||
"key": "Sales Rep|multi_select",
|
||||
"multiSelectValue": "={{ $json.Attendees.internalNames }}"
|
||||
},
|
||||
{
|
||||
"key": "SF Opp Link|url",
|
||||
"urlValue": "=https://data-drive-1632.lightning.force.com/lightning/r/Opportunity/{{ $json.sfOpp[0].SFOppId }}/view"
|
||||
},
|
||||
{
|
||||
"key": "SF Company Link|url",
|
||||
"urlValue": "=https://data-drive-1632.lightning.force.com/lightning/r/Account/{{ $json.sfOpp[0].companyAccountId }}/view"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"notionApi": {
|
||||
"id": "2B3YIiD4FMsF9Rjn",
|
||||
"name": "Angelbot Notion"
|
||||
}
|
||||
},
|
||||
"retryOnFail": true,
|
||||
"typeVersion": 2.2,
|
||||
"waitBetweenTries": 3000
|
||||
},
|
||||
{
|
||||
"id": "739aaf26-6807-4f09-a7a5-50b9605e76cb",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
620,
|
||||
-280
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 1240,
|
||||
"height": 600,
|
||||
"content": "## Process Queue Logic\nIf the run fails for any reason, it can be rerun on only the remaining calls, allowing for greater resilisience in api calls. The main issue I ran into was Notion rate limiting."
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "cb8ecb7b-6e90-4394-8161-5b327c17d9c5",
|
||||
"name": "Sticky Note1",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
2700,
|
||||
-280
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 1360,
|
||||
"height": 600,
|
||||
"content": "## Loop over calls for analysis and Create Parent \n## DB Object to relate other DB objects to\nThe output is a structured JSON object that is then \npassed into a subworkflow for processing in a linear fashion. "
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "49b472b7-d47e-4057-9c43-4b471605059f",
|
||||
"name": "Sticky Note2",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
4080,
|
||||
-340
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 420,
|
||||
"height": 660,
|
||||
"content": "## Pass Parent Notion ID and Call data into AI Subworkflow for final prompt processing\nThis allows for multiple agents to process and generate structured data from the calls."
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "b1c39cf4-b101-4e7f-9c74-da43e09769fd",
|
||||
"name": "Sticky Note3",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
4520,
|
||||
-340
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 520,
|
||||
"height": 660,
|
||||
"content": "## Alert on Progress\nIn Slack, a progress alert is generated and updated in real time to keep the company updated on the progress of the call processing. "
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "0ed6b796-8817-461f-958f-49ad2b4157cb",
|
||||
"name": "Sticky Note5",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
3460,
|
||||
-600
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 600,
|
||||
"height": 300,
|
||||
"content": "## Alert Slack Job Complete\nSince this runs in the background, this alerts the team that job finished successfully. "
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "e537ba92-c909-4da6-b1b0-d5d1fb643bd3",
|
||||
"name": "Sticky Note6",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
260,
|
||||
-500
|
||||
],
|
||||
"parameters": {
|
||||
"color": 5,
|
||||
"width": 340,
|
||||
"height": 820,
|
||||
"content": "\n## CallForge - The AI Gong Sales Call Processor\nCallForge allows you to extract important information for different departments from your Sales Gong Calls. \n\n### Call Processor\nThis is where the parent object in notion is generated to store the AI Call data once it's generated. This is done first so that it can be passed into multiple sub objects for storage. Once that's done, it's passed into the AI Processor."
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "af52e980-56a5-4875-878a-495898b345ec",
|
||||
"name": "Sticky Note7",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
1880,
|
||||
-360
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 800,
|
||||
"height": 300,
|
||||
"content": "## Alert Slack Job Started\nSince this runs in the background, this alerts the team that job has begun successfully."
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "67d4605b-f6d5-41ff-bbe1-90e002456fc1",
|
||||
"name": "Post Slack Receipt",
|
||||
"type": "n8n-nodes-base.slack",
|
||||
"position": [
|
||||
2260,
|
||||
-220
|
||||
],
|
||||
"webhookId": "11dd0884-adc7-40f4-a8a3-f3082a0324fc",
|
||||
"parameters": {
|
||||
"text": "=Queu Started, Processing {{ $json.data.length }} calls.",
|
||||
"select": "channel",
|
||||
"channelId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "C080KBCK1TL",
|
||||
"cachedResultName": "project-call-forge-alerts"
|
||||
},
|
||||
"otherOptions": {}
|
||||
},
|
||||
"credentials": {
|
||||
"slackApi": {
|
||||
"id": "OfRxDxHFIqk1q44a",
|
||||
"name": "Knowledge Ninja n8n labs auth"
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.2
|
||||
},
|
||||
{
|
||||
"id": "6d779b87-ce83-40bd-b068-9082f6849429",
|
||||
"name": "AI Team Processor",
|
||||
"type": "n8n-nodes-base.executeWorkflow",
|
||||
"position": [
|
||||
4160,
|
||||
-40
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"workflowId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "4Uol9xlNKyNH213f",
|
||||
"cachedResultName": "AI Team Processor Demo"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.1
|
||||
},
|
||||
{
|
||||
"id": "59848476-c4ec-47ec-9b1c-f206c0749b1e",
|
||||
"name": "Update Slack Progress",
|
||||
"type": "n8n-nodes-base.slack",
|
||||
"position": [
|
||||
4580,
|
||||
-40
|
||||
],
|
||||
"webhookId": "d69dcd59-add1-4fd1-99c0-eee5c6a7fc4f",
|
||||
"parameters": {
|
||||
"ts": "={{ $('Loop Over Calls').item.json.slackdata[0].message.ts }}",
|
||||
"text": "=Queu Started, Processing calls.\nProgress: {{$node[\"Loop Over Calls\"].context[\"currentRunIndex\"]+1;}}/{{ $('Reduce down to One object').item.json.data.length }}",
|
||||
"channelId": {
|
||||
"__rl": true,
|
||||
"mode": "id",
|
||||
"value": "C080KBCK1TL"
|
||||
},
|
||||
"operation": "update",
|
||||
"otherOptions": {},
|
||||
"updateFields": {}
|
||||
},
|
||||
"credentials": {
|
||||
"slackApi": {
|
||||
"id": "OfRxDxHFIqk1q44a",
|
||||
"name": "Knowledge Ninja n8n labs auth"
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.2
|
||||
},
|
||||
{
|
||||
"id": "32a2235e-cbdd-45e2-9cb4-991ea1397274",
|
||||
"name": "Merge call data and parent notion id",
|
||||
"type": "n8n-nodes-base.merge",
|
||||
"position": [
|
||||
3720,
|
||||
-40
|
||||
],
|
||||
"parameters": {
|
||||
"mode": "combine",
|
||||
"options": {},
|
||||
"combineBy": "combineByPosition"
|
||||
},
|
||||
"typeVersion": 3
|
||||
},
|
||||
{
|
||||
"id": "6f91bc31-3249-45f6-9114-7e1d8347cf89",
|
||||
"name": "Reduce down to 1 object",
|
||||
"type": "n8n-nodes-base.aggregate",
|
||||
"position": [
|
||||
980,
|
||||
100
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"aggregate": "aggregateAllItemData"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "1d23b540-696c-4d3e-8c23-fac6a84bc6f3",
|
||||
"name": "Get all older Calls",
|
||||
"type": "n8n-nodes-base.notion",
|
||||
"position": [
|
||||
1220,
|
||||
100
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"resource": "databasePage",
|
||||
"operation": "getAll",
|
||||
"returnAll": true,
|
||||
"databaseId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "1a85b6e0-c94f-81a3-aa21-e3ccf8296d72",
|
||||
"cachedResultUrl": "https://www.notion.so/1a85b6e0c94f81a3aa21e3ccf8296d72",
|
||||
"cachedResultName": "Sales Call Summaries Demo"
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"notionApi": {
|
||||
"id": "2B3YIiD4FMsF9Rjn",
|
||||
"name": "Angelbot Notion"
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.2
|
||||
},
|
||||
{
|
||||
"id": "50a3f35e-7637-4eb2-ae9e-11f214307dc0",
|
||||
"name": "Isolate Only Call IDs",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
1440,
|
||||
100
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"assignments": {
|
||||
"assignments": [
|
||||
{
|
||||
"id": "328e6ac8-88f3-4c2f-b8e8-d4a0756efd24",
|
||||
"name": "Call ID",
|
||||
"type": "string",
|
||||
"value": "={{ $json.property_gong_call_id ? $json.property_gong_call_id : \"none\" }}"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 3.4
|
||||
},
|
||||
{
|
||||
"id": "fb5c0970-3a05-4c38-8568-6ed175520db5",
|
||||
"name": "Only Process New Calls",
|
||||
"type": "n8n-nodes-base.compareDatasets",
|
||||
"position": [
|
||||
1680,
|
||||
-40
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"resolve": "preferInput1",
|
||||
"mergeByFields": {
|
||||
"values": [
|
||||
{
|
||||
"field1": "metaData.GongCallID",
|
||||
"field2": "Call ID"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.3
|
||||
},
|
||||
{
|
||||
"id": "e4c8d925-af53-4855-a002-cbc02c45a9c8",
|
||||
"name": "Reduce down to One object",
|
||||
"type": "n8n-nodes-base.aggregate",
|
||||
"position": [
|
||||
2020,
|
||||
-220
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"aggregate": "aggregateAllItemData"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "b6fb9553-42f3-46ca-a0b5-a97288e99e17",
|
||||
"name": "Bundle Slack Message Data",
|
||||
"type": "n8n-nodes-base.aggregate",
|
||||
"position": [
|
||||
2480,
|
||||
-220
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"aggregate": "aggregateAllItemData",
|
||||
"destinationFieldName": "slackdata"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "ba121e87-d25f-4867-848d-37b353db7ddb",
|
||||
"name": "Merge Slack and Call Data",
|
||||
"type": "n8n-nodes-base.merge",
|
||||
"position": [
|
||||
2800,
|
||||
-80
|
||||
],
|
||||
"parameters": {
|
||||
"mode": "combine",
|
||||
"options": {},
|
||||
"combineBy": "combineAll"
|
||||
},
|
||||
"typeVersion": 3
|
||||
},
|
||||
{
|
||||
"id": "bfd969e7-87a1-42cd-b23a-2b550772e171",
|
||||
"name": "Loop Over Calls",
|
||||
"type": "n8n-nodes-base.splitInBatches",
|
||||
"position": [
|
||||
3020,
|
||||
-80
|
||||
],
|
||||
"parameters": {
|
||||
"options": {}
|
||||
},
|
||||
"typeVersion": 3
|
||||
},
|
||||
{
|
||||
"id": "1f7dea30-dffe-4cc2-a912-c73ed1c8db50",
|
||||
"name": "Bundle Notion Parent Object Data",
|
||||
"type": "n8n-nodes-base.aggregate",
|
||||
"position": [
|
||||
3440,
|
||||
60
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"aggregate": "aggregateAllItemData",
|
||||
"destinationFieldName": "notionData"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "e2e2108c-00e0-48c8-8c5c-ef86edc93481",
|
||||
"name": "Bundle Processed Calls",
|
||||
"type": "n8n-nodes-base.aggregate",
|
||||
"position": [
|
||||
3540,
|
||||
-480
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"aggregate": "aggregateAllItemData"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "21884d73-45fd-4bb0-b3b6-e225383b5f62",
|
||||
"name": "Post Completed Calls Message",
|
||||
"type": "n8n-nodes-base.slack",
|
||||
"position": [
|
||||
3840,
|
||||
-480
|
||||
],
|
||||
"webhookId": "9d4f5a56-5be9-4373-8961-3627498713dd",
|
||||
"parameters": {
|
||||
"text": "=Queu Processed, {{ $json.data.length }} calls successfully added to Database.",
|
||||
"select": "channel",
|
||||
"channelId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "C080KBCK1TL",
|
||||
"cachedResultName": "project-call-forge-alerts"
|
||||
},
|
||||
"otherOptions": {}
|
||||
},
|
||||
"credentials": {
|
||||
"slackApi": {
|
||||
"id": "OfRxDxHFIqk1q44a",
|
||||
"name": "Knowledge Ninja n8n labs auth"
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.2
|
||||
}
|
||||
],
|
||||
"pinData": {},
|
||||
"connections": {
|
||||
"Loop Over Calls": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Bundle Processed Calls",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"node": "Merge call data and parent notion id",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
},
|
||||
{
|
||||
"node": "Create Notion DB Page",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"AI Team Processor": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Update Slack Progress",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Loop to next call": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Loop Over Calls",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Post Slack Receipt": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Bundle Slack Message Data",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Get all older Calls": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Isolate Only Call IDs",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Create Notion DB Page": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Bundle Notion Parent Object Data",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Isolate Only Call IDs": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Only Process New Calls",
|
||||
"type": "main",
|
||||
"index": 1
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Update Slack Progress": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Loop to next call",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Bundle Processed Calls": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Post Completed Calls Message",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Only Process New Calls": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Reduce down to One object",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
},
|
||||
{
|
||||
"node": "Merge Slack and Call Data",
|
||||
"type": "main",
|
||||
"index": 1
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Reduce down to 1 object": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Get all older Calls",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Execute Workflow Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Only Process New Calls",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
},
|
||||
{
|
||||
"node": "Reduce down to 1 object",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Bundle Slack Message Data": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Merge Slack and Call Data",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Merge Slack and Call Data": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Loop Over Calls",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Reduce down to One object": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Post Slack Receipt",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Bundle Notion Parent Object Data": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Merge call data and parent notion id",
|
||||
"type": "main",
|
||||
"index": 1
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Merge call data and parent notion id": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "AI Team Processor",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
326
workflows/Slack/0940_Slack_Manual_Automation_Scheduled.json
Normal file
326
workflows/Slack/0940_Slack_Manual_Automation_Scheduled.json
Normal file
@@ -0,0 +1,326 @@
|
||||
{
|
||||
"id": 3,
|
||||
"name": "Orlen",
|
||||
"nodes": [
|
||||
{
|
||||
"name": "On clicking 'execute'",
|
||||
"type": "n8n-nodes-base.manualTrigger",
|
||||
"position": [
|
||||
240,
|
||||
300
|
||||
],
|
||||
"parameters": {},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "Current date",
|
||||
"type": "n8n-nodes-base.function",
|
||||
"position": [
|
||||
1160,
|
||||
960
|
||||
],
|
||||
"parameters": {
|
||||
"functionCode": "var today = new Date();\nvar year = today.getFullYear();\nvar month = today.getMonth() + 1;\nvar day = today.getDate();\n\nif(month < 10) {\n month = \"0\" + month;\n}\n\nitems[0].json.year = year;\nitems[0].json.month = month;\nitems[0].json.day = day;\n\nreturn items;"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "Every 23:45",
|
||||
"type": "n8n-nodes-base.cron",
|
||||
"position": [
|
||||
960,
|
||||
960
|
||||
],
|
||||
"parameters": {
|
||||
"triggerTimes": {
|
||||
"item": [
|
||||
{
|
||||
"hour": 23,
|
||||
"minute": 45
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "Get Year folder",
|
||||
"type": "n8n-nodes-base.googleDrive",
|
||||
"position": [
|
||||
1360,
|
||||
960
|
||||
],
|
||||
"parameters": {
|
||||
"options": {
|
||||
"fields": [
|
||||
"id"
|
||||
]
|
||||
},
|
||||
"operation": "list",
|
||||
"queryFilters": {
|
||||
"name": [
|
||||
{
|
||||
"value": "={{$json[\"year\"]}}",
|
||||
"operation": "is"
|
||||
}
|
||||
],
|
||||
"mimeType": [
|
||||
{
|
||||
"mimeType": "application/vnd.google-apps.folder"
|
||||
}
|
||||
]
|
||||
},
|
||||
"authentication": "oAuth2"
|
||||
},
|
||||
"credentials": {
|
||||
"googleDriveOAuth2Api": {
|
||||
"id": "7",
|
||||
"name": "Google Drive account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "Get Month folder",
|
||||
"type": "n8n-nodes-base.googleDrive",
|
||||
"position": [
|
||||
1560,
|
||||
960
|
||||
],
|
||||
"parameters": {
|
||||
"options": {
|
||||
"fields": [
|
||||
"id"
|
||||
]
|
||||
},
|
||||
"operation": "list",
|
||||
"queryString": "='{{$json[\"id\"]}}' in parents and name = '{{$node[\"Current date\"].json[\"month\"]}}'",
|
||||
"authentication": "oAuth2",
|
||||
"useQueryString": true
|
||||
},
|
||||
"credentials": {
|
||||
"googleDriveOAuth2Api": {
|
||||
"id": "7",
|
||||
"name": "Google Drive account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "Orlen Invoice",
|
||||
"type": "n8n-nodes-base.gmail",
|
||||
"position": [
|
||||
1760,
|
||||
960
|
||||
],
|
||||
"parameters": {
|
||||
"resource": "message",
|
||||
"operation": "getAll",
|
||||
"returnAll": true,
|
||||
"additionalFields": {
|
||||
"q": "from:(orlenpay@orlen.pl) has:attachment is:unread",
|
||||
"format": "resolved"
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"gmailOAuth2": {
|
||||
"id": "5",
|
||||
"name": "dbarwikowski Gmail account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "Upload Invoice to Google Drive",
|
||||
"type": "n8n-nodes-base.googleDrive",
|
||||
"position": [
|
||||
1960,
|
||||
960
|
||||
],
|
||||
"parameters": {
|
||||
"name": "=Orlen {{$binary.attachment_0.directory}}.{{$binary.attachment_0.fileExtension}}",
|
||||
"options": {},
|
||||
"parents": [
|
||||
"={{$node[\"Get Month folder\"].json[\"id\"]}}"
|
||||
],
|
||||
"binaryData": true,
|
||||
"resolveData": true,
|
||||
"authentication": "oAuth2",
|
||||
"binaryPropertyName": "attachment_0"
|
||||
},
|
||||
"credentials": {
|
||||
"googleDriveOAuth2Api": {
|
||||
"id": "7",
|
||||
"name": "Google Drive account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "Mark as Read",
|
||||
"type": "n8n-nodes-base.gmail",
|
||||
"position": [
|
||||
2160,
|
||||
960
|
||||
],
|
||||
"parameters": {
|
||||
"labelIds": [
|
||||
"UNREAD"
|
||||
],
|
||||
"resource": "messageLabel",
|
||||
"messageId": "={{$node[\"Orlen Invoice\"].json[\"id\"]}}",
|
||||
"operation": "remove"
|
||||
},
|
||||
"credentials": {
|
||||
"gmailOAuth2": {
|
||||
"id": "5",
|
||||
"name": "dbarwikowski Gmail account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "Merge",
|
||||
"type": "n8n-nodes-base.merge",
|
||||
"position": [
|
||||
2280,
|
||||
960
|
||||
],
|
||||
"parameters": {
|
||||
"mode": "mergeByIndex"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "Slack",
|
||||
"type": "n8n-nodes-base.slack",
|
||||
"position": [
|
||||
860,
|
||||
540
|
||||
],
|
||||
"parameters": {
|
||||
"text": "=Kapitanie!\nDodano fakturę {{$node[\"Orlen Invoice\"].binary.attachment_0.directory}} do Firma/{{$node[\"Current date\"].json[\"year\"]}}/{{$node[\"Current date\"].json[\"month\"]}}",
|
||||
"channel": "n8n",
|
||||
"attachments": [],
|
||||
"otherOptions": {},
|
||||
"authentication": "oAuth2"
|
||||
},
|
||||
"credentials": {
|
||||
"slackOAuth2Api": {
|
||||
"id": "6",
|
||||
"name": "Slack account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
}
|
||||
],
|
||||
"active": true,
|
||||
"settings": {
|
||||
"timezone": "Europe/Warsaw",
|
||||
"saveExecutionProgress": "DEFAULT"
|
||||
},
|
||||
"createdAt": "2022-04-11T17:11:34.040Z",
|
||||
"updatedAt": "2022-04-11T21:59:45.898Z",
|
||||
"staticData": null,
|
||||
"connections": {
|
||||
"Merge": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Upload Invoice to Google Drive",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Every 23:45": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Orlen Invoice",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Current date": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Get Year folder",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Mark as Read": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Slack",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Orlen Invoice": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Merge",
|
||||
"type": "main",
|
||||
"index": 1
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Get Year folder": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Get Month folder",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Get Month folder": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Merge",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"On clicking 'execute'": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Orlen Invoice",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Upload Invoice to Google Drive": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Mark as Read",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
125
workflows/Slack/1063_Slack_Graphql_Automation_Webhook.json
Normal file
125
workflows/Slack/1063_Slack_Graphql_Automation_Webhook.json
Normal file
@@ -0,0 +1,125 @@
|
||||
{
|
||||
"id": "5",
|
||||
"name": "Slack-GitHub User Info",
|
||||
"nodes": [
|
||||
{
|
||||
"name": "Webhook",
|
||||
"type": "n8n-nodes-base.webhook",
|
||||
"position": [
|
||||
300,
|
||||
300
|
||||
],
|
||||
"webhookId": "dacd64a7-a83e-4492-b8fe-363453906d0d",
|
||||
"parameters": {
|
||||
"path": "dacd64a7-a83e-4492-b8fe-363453906d0d",
|
||||
"options": {},
|
||||
"httpMethod": "POST"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "GraphQL",
|
||||
"type": "n8n-nodes-base.graphql",
|
||||
"position": [
|
||||
500,
|
||||
300
|
||||
],
|
||||
"parameters": {
|
||||
"query": "=query {\nuser(login:\"{{$node[\"Webhook\"].json[\"body\"][\"text\"]}}\"){\nname\ncompany\nlocation\navatarUrl\nemail\npullRequests(last: 25) {\nedges {\nnode {\ncommits(last:25) {\nnodes {\ncommit {\nauthor {\nemail\nname\n}\n}\n}\n}\n}\n}\n}\n}\n}",
|
||||
"endpoint": "https://api.github.com/graphql",
|
||||
"requestFormat": "json",
|
||||
"responseFormat": "string",
|
||||
"headerParametersUi": {
|
||||
"parameter": [
|
||||
{
|
||||
"name": "User-Agent",
|
||||
"value": "n8n"
|
||||
},
|
||||
{
|
||||
"name": "Authorization",
|
||||
"value": "bearer <Personal Token>"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "Function",
|
||||
"type": "n8n-nodes-base.function",
|
||||
"position": [
|
||||
700,
|
||||
300
|
||||
],
|
||||
"parameters": {
|
||||
"functionCode": "let emails = [];\nlet tempEmails = [];\nconst name = $node[\"GraphQL\"].json[\"data\"][\"data\"][\"user\"][\"name\"];\nconst publicEmail = $node[\"GraphQL\"].json[\"data\"][\"data\"][\"user\"][\"email\"];\nconst username = $node[\"Webhook\"].json[\"body\"][\"text\"];\nconst nameRegex = new RegExp(name,\"g\")\n\nif(publicEmail){\n// if public email address exists, push it to the tempEmails array\n tempEmails.push(publicEmail)\n}\n\n// looping through the pull requests\nfor(const edge of items[0].json.data.data.user.pullRequests.edges){\n // looping through the commits\n for(node of edge.node.commits.nodes){\n\n // Checks the name associated with the email address\n if(nameRegex.test(node.commit.author.name)|| node.commit.author.name == username) {\n // if name equals to contributors name or username, push the email address in tempEmails\n tempEmails.push(node.commit.author.email)\n }\n }\n}\n\n// Remove duplicates\nemails = [...new Set(tempEmails)]\n\n// RegEx Pattern for email address generated by GitHub\nlet re = /^\\w+(.)*@users.noreply.github.com/\n\n// Remove the email addresses Generated by GitHub\nemails = emails.filter(email => !re.test(email))\n\n\nreturn [{json:{emails,}}]\n"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "Slack",
|
||||
"type": "n8n-nodes-base.slack",
|
||||
"position": [
|
||||
900,
|
||||
300
|
||||
],
|
||||
"parameters": {
|
||||
"channel": "={{$node[\"Webhook\"].json[\"body\"][\"channel_id\"]}}",
|
||||
"attachments": [
|
||||
{
|
||||
"title": "=GitHub Details for: {{$node[\"Webhook\"].json[\"body\"][\"text\"]}}"
|
||||
},
|
||||
{
|
||||
"text": "=*Name:* {{$node[\"GraphQL\"].json[\"data\"][\"data\"][\"user\"][\"name\"]}}\n*Email:* {{$node[\"Function\"].json[\"emails\"].join(', ')}}\n*Company:* {{$node[\"GraphQL\"].json[\"data\"][\"data\"][\"user\"][\"company\"]}}\n*Location:* {{$node[\"GraphQL\"].json[\"data\"][\"data\"][\"user\"][\"location\"]}}"
|
||||
},
|
||||
{
|
||||
"thumb_url": "={{$node[\"GraphQL\"].json[\"data\"][\"data\"][\"user\"][\"avatarUrl\"]}}"
|
||||
}
|
||||
],
|
||||
"otherOptions": {},
|
||||
"authentication": "oAuth2"
|
||||
},
|
||||
"credentials": {
|
||||
"slackOAuth2Api": "Slack OAuth2"
|
||||
},
|
||||
"typeVersion": 1
|
||||
}
|
||||
],
|
||||
"active": false,
|
||||
"settings": {},
|
||||
"connections": {
|
||||
"GraphQL": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Function",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Webhook": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "GraphQL",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Function": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Slack",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
233
workflows/Slack/1082_Slack_Readbinaryfile_Create.json
Normal file
233
workflows/Slack/1082_Slack_Readbinaryfile_Create.json
Normal file
@@ -0,0 +1,233 @@
|
||||
{
|
||||
"nodes": [
|
||||
{
|
||||
"name": "Read Harvey's Email",
|
||||
"type": "n8n-nodes-base.emailReadImap",
|
||||
"position": [
|
||||
270,
|
||||
390
|
||||
],
|
||||
"parameters": {
|
||||
"options": {}
|
||||
},
|
||||
"credentials": {
|
||||
"imap": "Read Harvey's Mail"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "Who Is The Email From?",
|
||||
"type": "n8n-nodes-base.switch",
|
||||
"position": [
|
||||
460,
|
||||
390
|
||||
],
|
||||
"parameters": {
|
||||
"rules": {
|
||||
"rules": [
|
||||
{
|
||||
"value2": "Louis Litt <louis_litt_1970@yahoo.com>"
|
||||
}
|
||||
]
|
||||
},
|
||||
"value1": "={{$node[\"Read Harvey's Email\"].json[\"from\"]}}",
|
||||
"dataType": "string",
|
||||
"fallbackOutput": 3
|
||||
},
|
||||
"typeVersion": 1,
|
||||
"alwaysOutputData": false
|
||||
},
|
||||
{
|
||||
"name": "Read Excuses File",
|
||||
"type": "n8n-nodes-base.readBinaryFile",
|
||||
"position": [
|
||||
670,
|
||||
230
|
||||
],
|
||||
"parameters": {
|
||||
"filePath": "/home/n8n/Excuse_Generator.xlsx"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "Retrieve Excuses Spreadsheet Data",
|
||||
"type": "n8n-nodes-base.spreadsheetFile",
|
||||
"position": [
|
||||
860,
|
||||
230
|
||||
],
|
||||
"parameters": {
|
||||
"options": {}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "Generate Excuse",
|
||||
"type": "n8n-nodes-base.function",
|
||||
"position": [
|
||||
1040,
|
||||
230
|
||||
],
|
||||
"parameters": {
|
||||
"functionCode": "var leadinmax = 24;\nvar perpmax = 25;\nvar delaymax = 23;\nvar leadin = Math.floor((Math.random() * leadinmax ) + 1);\nvar perp = Math.floor((Math.random() * perpmax ) + 1);\nvar delay = Math.floor((Math.random() * delaymax) + 1);\n\nvar excuse = items[leadin].json.Leadin + \" \" + items[perp].json.Perpetrator + \" \" + items[delay].json.Delay;\n\nitems = [{json:{}}];\n\nitems[0].json.excuse = excuse;\nreturn items;\n"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "Merge Excuse and Mail Data",
|
||||
"type": "n8n-nodes-base.merge",
|
||||
"position": [
|
||||
1230,
|
||||
330
|
||||
],
|
||||
"parameters": {
|
||||
"mode": "mergeByIndex"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "Send Email",
|
||||
"type": "n8n-nodes-base.emailSend",
|
||||
"position": [
|
||||
1460,
|
||||
250
|
||||
],
|
||||
"parameters": {
|
||||
"text": "= {{$node[\"Merge Excuse and Mail Data\"].json[\"excuse\"]}}\n\nMaybe next time.\n\nHarvey",
|
||||
"options": {},
|
||||
"subject": "=RE: {{$node[\"Merge Excuse and Mail Data\"].json[\"subject\"]}}",
|
||||
"toEmail": "={{$node[\"Merge Excuse and Mail Data\"].json[\"from\"]}}",
|
||||
"fromEmail": "={{$node[\"Merge Excuse and Mail Data\"].json[\"to\"]}}"
|
||||
},
|
||||
"credentials": {
|
||||
"smtp": "Send Harvey's Mail"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "Slack (Louis)",
|
||||
"type": "n8n-nodes-base.slack",
|
||||
"position": [
|
||||
1470,
|
||||
410
|
||||
],
|
||||
"parameters": {
|
||||
"text": "=Here is what Louis emailed you:\n```\n{{$node[\"Merge Excuse and Mail Data\"].json[\"textPlain\"]}}\n```\n\nHere is how \"you\" responded:\n> {{$node[\"Merge Excuse and Mail Data\"].json[\"excuse\"]}}\n\n:+1: *You're Welcome!* :smirk:",
|
||||
"channel": "private",
|
||||
"attachments": [],
|
||||
"otherOptions": {
|
||||
"mrkdwn": true
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"slackApi": "Nathan's Slack API Token"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "Slack (General)",
|
||||
"type": "n8n-nodes-base.slack",
|
||||
"position": [
|
||||
890,
|
||||
470
|
||||
],
|
||||
"parameters": {
|
||||
"text": "You've just received an email. You may wish to check it out.",
|
||||
"channel": "private",
|
||||
"attachments": [],
|
||||
"otherOptions": {
|
||||
"mrkdwn": true
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"slackApi": "Nathan's Slack API Token"
|
||||
},
|
||||
"typeVersion": 1
|
||||
}
|
||||
],
|
||||
"connections": {
|
||||
"Generate Excuse": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Merge Excuse and Mail Data",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Read Excuses File": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Retrieve Excuses Spreadsheet Data",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Read Harvey's Email": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Who Is The Email From?",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Who Is The Email From?": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Read Excuses File",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
},
|
||||
{
|
||||
"node": "Merge Excuse and Mail Data",
|
||||
"type": "main",
|
||||
"index": 1
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"node": "Slack (General)",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Merge Excuse and Mail Data": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Send Email",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
},
|
||||
{
|
||||
"node": "Slack (Louis)",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Retrieve Excuses Spreadsheet Data": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Generate Excuse",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
175
workflows/Slack/1172_Slack_HubSpot_Send_Triggered.json
Normal file
175
workflows/Slack/1172_Slack_HubSpot_Send_Triggered.json
Normal file
@@ -0,0 +1,175 @@
|
||||
{
|
||||
"id": 88,
|
||||
"name": "Check for valid Hubspot contact email",
|
||||
"nodes": [
|
||||
{
|
||||
"name": "When contact created",
|
||||
"type": "n8n-nodes-base.hubspotTrigger",
|
||||
"position": [
|
||||
540,
|
||||
480
|
||||
],
|
||||
"webhookId": "d24ffb14-1e00-4d4e-b3b8-a812690c40d5",
|
||||
"parameters": {
|
||||
"eventsUi": {
|
||||
"eventValues": [
|
||||
{}
|
||||
]
|
||||
},
|
||||
"additionalFields": {}
|
||||
},
|
||||
"credentials": {
|
||||
"hubspotDeveloperApi": {
|
||||
"id": "58",
|
||||
"name": "Hubspot Developer account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "Get contact email address",
|
||||
"type": "n8n-nodes-base.hubspot",
|
||||
"position": [
|
||||
720,
|
||||
480
|
||||
],
|
||||
"parameters": {
|
||||
"resource": "contact",
|
||||
"contactId": "={{$json[\"contactId\"] ? 151 : 151}}",
|
||||
"operation": "get",
|
||||
"additionalFields": {
|
||||
"properties": [
|
||||
"email"
|
||||
],
|
||||
"propertyMode": "valueOnly"
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"hubspotApi": {
|
||||
"id": "57",
|
||||
"name": "Hubspot account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "validate the email",
|
||||
"type": "n8n-nodes-base.oneSimpleApi",
|
||||
"position": [
|
||||
900,
|
||||
480
|
||||
],
|
||||
"parameters": {
|
||||
"resource": "utility",
|
||||
"emailAddress": "={{$json[\"properties\"][\"email\"][\"value\"]}}"
|
||||
},
|
||||
"credentials": {
|
||||
"oneSimpleApi": {
|
||||
"id": "33",
|
||||
"name": "One Simple account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "If email is suspicious",
|
||||
"type": "n8n-nodes-base.if",
|
||||
"notes": "IF\ndeliverability is not good\nOR\nDomain is not valid\nOR\nEmail is Disposable",
|
||||
"position": [
|
||||
1080,
|
||||
480
|
||||
],
|
||||
"parameters": {
|
||||
"conditions": {
|
||||
"string": [
|
||||
{
|
||||
"value1": "={{$json[\"deliverability\"]}}",
|
||||
"value2": "GOOD",
|
||||
"operation": "notEqual"
|
||||
}
|
||||
],
|
||||
"boolean": [
|
||||
{
|
||||
"value1": "={{$json[\"is_domain_valid\"]}}"
|
||||
},
|
||||
{
|
||||
"value1": "={{$json[\"is_email_disposable\"]}}",
|
||||
"value2": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"combineOperation": "any"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "Send to Slack",
|
||||
"type": "n8n-nodes-base.slack",
|
||||
"position": [
|
||||
1280,
|
||||
460
|
||||
],
|
||||
"parameters": {
|
||||
"text": "=:warning: New Contact with Suspicious Email :warning:\n*Name: * {{$node[\"Item Lists\"].json[\"contact\"][\"fields\"][\"core\"][\"firstname\"][\"normalizedValue\"]}} {{$node[\"Item Lists\"].json[\"contact\"][\"fields\"][\"core\"][\"lastname\"][\"normalizedValue\"]}}\n*Email: * {{$node[\"Item Lists\"].json[\"contact\"][\"fields\"][\"core\"][\"email\"][\"normalizedValue\"]}}\n*Creator: * {{$node[\"Item Lists\"].json[\"contact\"][\"createdByUser\"]}}",
|
||||
"channel": "#hubspot-alerts",
|
||||
"attachments": [],
|
||||
"otherOptions": {}
|
||||
},
|
||||
"credentials": {
|
||||
"slackApi": {
|
||||
"id": "53",
|
||||
"name": "Slack Access Token"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
}
|
||||
],
|
||||
"active": false,
|
||||
"settings": {},
|
||||
"connections": {
|
||||
"validate the email": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "If email is suspicious",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"When contact created": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Get contact email address",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"If email is suspicious": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Send to Slack",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Get contact email address": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "validate the email",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
116
workflows/Slack/1191_Slack_Typeform_Automate_Triggered.json
Normal file
116
workflows/Slack/1191_Slack_Typeform_Automate_Triggered.json
Normal file
@@ -0,0 +1,116 @@
|
||||
{
|
||||
"nodes": [
|
||||
{
|
||||
"name": "Typeform Trigger",
|
||||
"type": "n8n-nodes-base.typeformTrigger",
|
||||
"position": [
|
||||
590,
|
||||
300
|
||||
],
|
||||
"webhookId": "c8e53100-0616-4d3c-95b8-261eb0d1632b",
|
||||
"parameters": {
|
||||
"formId": "dpr2kxSL"
|
||||
},
|
||||
"credentials": {
|
||||
"typeformApi": "Typeform Access Token"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "Set",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
790,
|
||||
300
|
||||
],
|
||||
"parameters": {
|
||||
"values": {
|
||||
"string": [
|
||||
{
|
||||
"name": "Name",
|
||||
"value": "={{$json[\"Let's start with your name.\"]}}"
|
||||
},
|
||||
{
|
||||
"name": "Email",
|
||||
"value": "={{$json[\"What's your email address?\"]}}"
|
||||
}
|
||||
]
|
||||
},
|
||||
"options": {},
|
||||
"keepOnlySet": true
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "Airtable",
|
||||
"type": "n8n-nodes-base.airtable",
|
||||
"position": [
|
||||
990,
|
||||
300
|
||||
],
|
||||
"parameters": {
|
||||
"table": "Table 1",
|
||||
"options": {},
|
||||
"operation": "append",
|
||||
"application": ""
|
||||
},
|
||||
"credentials": {
|
||||
"airtableApi": "Airtable Credentials n8n"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "Slack",
|
||||
"type": "n8n-nodes-base.slack",
|
||||
"position": [
|
||||
1190,
|
||||
300
|
||||
],
|
||||
"parameters": {
|
||||
"text": "=*New Submission* 🙌\nName: {{$node[\"Set\"].json[\"Name\"]}}\nEmail: {{$node[\"Set\"].json[\"Email\"]}}",
|
||||
"channel": "general",
|
||||
"attachments": [],
|
||||
"otherOptions": {}
|
||||
},
|
||||
"credentials": {
|
||||
"slackApi": "Slack Bot Credentials"
|
||||
},
|
||||
"typeVersion": 1
|
||||
}
|
||||
],
|
||||
"connections": {
|
||||
"Set": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Airtable",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Airtable": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Slack",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Typeform Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Set",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
226
workflows/Slack/1194_Slack_Emailreadimap_Create.json
Normal file
226
workflows/Slack/1194_Slack_Emailreadimap_Create.json
Normal file
@@ -0,0 +1,226 @@
|
||||
{
|
||||
"id": 91,
|
||||
"name": "New invoice email notification",
|
||||
"nodes": [
|
||||
{
|
||||
"name": "Check for new emails",
|
||||
"type": "n8n-nodes-base.emailReadImap",
|
||||
"position": [
|
||||
500,
|
||||
300
|
||||
],
|
||||
"parameters": {
|
||||
"format": "resolved",
|
||||
"mailbox": "Inbox",
|
||||
"options": {
|
||||
"allowUnauthorizedCerts": true
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"imap": {
|
||||
"id": "24",
|
||||
"name": "GMAIL"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "If email body contains invoice",
|
||||
"type": "n8n-nodes-base.if",
|
||||
"position": [
|
||||
700,
|
||||
300
|
||||
],
|
||||
"parameters": {
|
||||
"conditions": {
|
||||
"string": [
|
||||
{
|
||||
"value1": "={{$json[\"text\"].toLowerCase()}}",
|
||||
"value2": "invoice",
|
||||
"operation": "contains"
|
||||
}
|
||||
]
|
||||
},
|
||||
"combineOperation": "any"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "Extract the total amount",
|
||||
"type": "n8n-nodes-base.mindee",
|
||||
"position": [
|
||||
900,
|
||||
280
|
||||
],
|
||||
"parameters": {
|
||||
"rawData": true,
|
||||
"resource": "invoice",
|
||||
"binaryPropertyName": "attachment_0"
|
||||
},
|
||||
"credentials": {
|
||||
"mindeeInvoiceApi": {
|
||||
"id": "62",
|
||||
"name": "Mindee Invoice account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "Send new invoice notification",
|
||||
"type": "n8n-nodes-base.slack",
|
||||
"position": [
|
||||
1580,
|
||||
300
|
||||
],
|
||||
"parameters": {
|
||||
"text": ":new: There is a new invoice to pay :new:",
|
||||
"channel": "team-accounts",
|
||||
"blocksUi": {
|
||||
"blocksValues": []
|
||||
},
|
||||
"attachments": [
|
||||
{
|
||||
"color": "#FFBF00",
|
||||
"fields": {
|
||||
"item": [
|
||||
{
|
||||
"short": true,
|
||||
"title": "Amount",
|
||||
"value": "={{$node[\"If Amount > 1000\"].json[\"predictions\"][0][\"total_incl\"][\"amount\"]}}"
|
||||
},
|
||||
{
|
||||
"short": false,
|
||||
"title": "From",
|
||||
"value": "={{$node[\"Check for new emails\"].json[\"from\"][\"value\"][0][\"address\"]}}"
|
||||
},
|
||||
{
|
||||
"short": true,
|
||||
"title": "Subject",
|
||||
"value": "={{$node[\"Check for new emails\"].json[\"subject\"]}}"
|
||||
}
|
||||
]
|
||||
},
|
||||
"footer": "=*Date:* {{$node[\"Check for new emails\"].json[\"date\"]}}"
|
||||
}
|
||||
],
|
||||
"otherOptions": {}
|
||||
},
|
||||
"credentials": {
|
||||
"slackApi": {
|
||||
"id": "53",
|
||||
"name": "Slack Access Token"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "Send email to finance manager",
|
||||
"type": "n8n-nodes-base.emailSend",
|
||||
"position": [
|
||||
1340,
|
||||
120
|
||||
],
|
||||
"parameters": {
|
||||
"text": "Hi,\n\nThere is a new high value invoice to be paid that you may need to approve.\n\n~ n8n workflow",
|
||||
"options": {},
|
||||
"subject": "New high value invoice",
|
||||
"toEmail": "finance-manager@company.tld",
|
||||
"fromEmail": "n8n@noreply.tld",
|
||||
"attachments": "attachment_0"
|
||||
},
|
||||
"credentials": {
|
||||
"smtp": {
|
||||
"id": "26",
|
||||
"name": "mailtrap"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "If Amount > 1000",
|
||||
"type": "n8n-nodes-base.if",
|
||||
"position": [
|
||||
1080,
|
||||
280
|
||||
],
|
||||
"parameters": {
|
||||
"conditions": {
|
||||
"number": [
|
||||
{
|
||||
"value1": "={{$json[\"predictions\"][0][\"total_incl\"][\"amount\"]}}",
|
||||
"value2": 1000,
|
||||
"operation": "larger"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
}
|
||||
],
|
||||
"active": false,
|
||||
"settings": {},
|
||||
"connections": {
|
||||
"If Amount > 1000": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Send email to finance manager",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"node": "Send new invoice notification",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Check for new emails": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "If email body contains invoice",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Extract the total amount": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "If Amount > 1000",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Send email to finance manager": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Send new invoice notification",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"If email body contains invoice": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Extract the total amount",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
368
workflows/Slack/1318_Slack_Stickynote_Automation_Triggered.json
Normal file
368
workflows/Slack/1318_Slack_Stickynote_Automation_Triggered.json
Normal file
@@ -0,0 +1,368 @@
|
||||
{
|
||||
"name": "Ask a human",
|
||||
"nodes": [
|
||||
{
|
||||
"id": "a60c8572-56c1-4bf3-8352-a6419a475887",
|
||||
"name": "Window Buffer Memory",
|
||||
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
|
||||
"position": [
|
||||
900,
|
||||
760
|
||||
],
|
||||
"parameters": {},
|
||||
"typeVersion": 1.1
|
||||
},
|
||||
{
|
||||
"id": "b4f2e26c-903b-46b8-bd8b-110fd64de9e4",
|
||||
"name": "Not sure?",
|
||||
"type": "@n8n/n8n-nodes-langchain.toolWorkflow",
|
||||
"position": [
|
||||
1120,
|
||||
760
|
||||
],
|
||||
"parameters": {
|
||||
"name": "dont_know_tool",
|
||||
"fields": {
|
||||
"values": [
|
||||
{
|
||||
"name": "chatInput",
|
||||
"stringValue": "={{ $('Chat Trigger').item.json.chatInput }}"
|
||||
}
|
||||
]
|
||||
},
|
||||
"workflowId": "={{ $workflow.id}}",
|
||||
"description": "Use this tool if you don't know the answer to the user's question, or if you're not very confident about your answer."
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "951cc691-b422-4ce6-901f-b7feb3afd1ad",
|
||||
"name": "Execute Workflow Trigger",
|
||||
"type": "n8n-nodes-base.executeWorkflowTrigger",
|
||||
"position": [
|
||||
540,
|
||||
1360
|
||||
],
|
||||
"parameters": {},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "194ba9c0-e256-449a-8da7-ac5339123a99",
|
||||
"name": "Sticky Note1",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
500,
|
||||
1020
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 1118.3459011229047,
|
||||
"height": 775.3931210698682,
|
||||
"content": "### Sub-workflow: Custom tool\nThe agent above can call this workflow. It checks if the user has supplied an email address. If they haven't it prompts them to provide one. If they have, it messages a customer support channel for help."
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "38c6b363-45a7-4e72-9e40-8c0df3cc480f",
|
||||
"name": "Sticky Note2",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
500,
|
||||
460
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 927.5,
|
||||
"height": 486.5625,
|
||||
"content": "### Main workflow: AI agent using custom tool"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "0389315b-e48d-4b00-b9a1-899302b1b094",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
1060,
|
||||
700
|
||||
],
|
||||
"parameters": {
|
||||
"color": 5,
|
||||
"width": 197.45572294791873,
|
||||
"height": 179.21380662202682,
|
||||
"content": "**This tool calls the sub-workflow below**"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "fb11064a-4cf5-4110-9e39-af24a3225164",
|
||||
"name": "Sticky Note5",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
700,
|
||||
680
|
||||
],
|
||||
"parameters": {
|
||||
"color": 2,
|
||||
"width": 150,
|
||||
"height": 213.44323866265472,
|
||||
"content": "**Set your credentials**"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "d689021d-0a46-4dff-a01a-0b01ecdd198b",
|
||||
"name": "Sticky Note4",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
1020,
|
||||
1180
|
||||
],
|
||||
"parameters": {
|
||||
"color": 2,
|
||||
"width": 178.0499248677781,
|
||||
"height": 250.57252651663197,
|
||||
"content": "**Set your credentials and Slack details**"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "0926cd61-c0b8-4bae-ae65-9afd130d17cd",
|
||||
"name": "Sticky Note3",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
340,
|
||||
520
|
||||
],
|
||||
"parameters": {
|
||||
"color": 4,
|
||||
"width": 185.9375,
|
||||
"height": 214.8397420554627,
|
||||
"content": "## Try it out\n\nSelect **Chat** at the bottom and enter:\n\n_Hi! Please respond to this as if you don't know the answer to my query._"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "cde69dfe-252e-4a05-8d56-fa79431df5d8",
|
||||
"name": "Sticky Note6",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
1580,
|
||||
1600
|
||||
],
|
||||
"parameters": {
|
||||
"height": 144.50520156238127,
|
||||
"content": "## Next steps\n\nLearn more about [Advanced AI in n8n](https://docs.n8n.io/advanced-ai/)"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "927b775a-47f6-4067-a1a5-5f13dea28e45",
|
||||
"name": "Chat Trigger",
|
||||
"type": "@n8n/n8n-nodes-langchain.chatTrigger",
|
||||
"position": [
|
||||
600,
|
||||
520
|
||||
],
|
||||
"webhookId": "785e0c0c-12e5-4249-9abe-47bb131975cb",
|
||||
"parameters": {},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "971e7b90-c2d8-4292-9da8-732d7d399f04",
|
||||
"name": "Prompt the user to provide an email",
|
||||
"type": "n8n-nodes-base.code",
|
||||
"position": [
|
||||
1060,
|
||||
1520
|
||||
],
|
||||
"parameters": {
|
||||
"jsCode": "response = {\"response\":\"I'm sorry I don't know the answer. Please repeat your question and include your email address so I can request help.\"};\nreturn response;"
|
||||
},
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "6f5a21b3-c145-46c8-8e69-660100c4a6fc",
|
||||
"name": "Confirm that we've messaged a human",
|
||||
"type": "n8n-nodes-base.code",
|
||||
"position": [
|
||||
1300,
|
||||
1260
|
||||
],
|
||||
"parameters": {
|
||||
"jsCode": "response = {\"response\": \"Thank you for getting in touch. I've messaged a human to help.\"}\nreturn response;"
|
||||
},
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "8b17da5e-e392-4028-91b0-bc02d34e46ed",
|
||||
"name": "AI Agent",
|
||||
"type": "@n8n/n8n-nodes-langchain.agent",
|
||||
"position": [
|
||||
820,
|
||||
520
|
||||
],
|
||||
"parameters": {
|
||||
"options": {
|
||||
"systemMessage": "Try to answer the user's question. When you can't answer, or you're not confident of the answer, use the appropriate tool. When you use the dont_know_tool, respond with the message from the tool."
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
},
|
||||
{
|
||||
"id": "990ecd3b-6aa0-4b17-8d01-d606b9164fa8",
|
||||
"name": "Check if user has provided email",
|
||||
"type": "n8n-nodes-base.if",
|
||||
"position": [
|
||||
760,
|
||||
1360
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"conditions": {
|
||||
"options": {
|
||||
"leftValue": "",
|
||||
"caseSensitive": true,
|
||||
"typeValidation": "strict"
|
||||
},
|
||||
"combinator": "and",
|
||||
"conditions": [
|
||||
{
|
||||
"id": "5e21e7c5-db60-4111-bb17-c289ae0fc159",
|
||||
"operator": {
|
||||
"type": "string",
|
||||
"operation": "regex"
|
||||
},
|
||||
"leftValue": "={{ $('Execute Workflow Trigger').item.json.chatInput }}",
|
||||
"rightValue": "/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\\.[a-zA-Z0-9_-]+)/gi"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "d14da0ae-06ca-422b-b5b6-e7759e74c787",
|
||||
"name": "Message Slack for help",
|
||||
"type": "n8n-nodes-base.slack",
|
||||
"position": [
|
||||
1060,
|
||||
1260
|
||||
],
|
||||
"parameters": {
|
||||
"text": "={{ \"A user had a question the bot couldn't answer. Here's their message: \" + $('Execute Workflow Trigger').item.json.chatInput }}",
|
||||
"select": "channel",
|
||||
"channelId": {
|
||||
"__rl": true,
|
||||
"mode": "name",
|
||||
"value": ""
|
||||
},
|
||||
"otherOptions": {}
|
||||
},
|
||||
"typeVersion": 2.1
|
||||
},
|
||||
{
|
||||
"id": "278391c7-6945-495e-a4f1-74fb8fcc3549",
|
||||
"name": "GPT4",
|
||||
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
|
||||
"position": [
|
||||
740,
|
||||
740
|
||||
],
|
||||
"parameters": {
|
||||
"model": "gpt-4",
|
||||
"options": {
|
||||
"temperature": 0.2
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
}
|
||||
],
|
||||
"pinData": {},
|
||||
"connections": {
|
||||
"GPT4": {
|
||||
"ai_languageModel": [
|
||||
[
|
||||
{
|
||||
"node": "AI Agent",
|
||||
"type": "ai_languageModel",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Not sure?": {
|
||||
"ai_tool": [
|
||||
[
|
||||
{
|
||||
"node": "AI Agent",
|
||||
"type": "ai_tool",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Chat Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "AI Agent",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Window Buffer Memory": {
|
||||
"ai_memory": [
|
||||
[
|
||||
{
|
||||
"node": "AI Agent",
|
||||
"type": "ai_memory",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Message Slack for help": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Confirm that we've messaged a human",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Execute Workflow Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Check if user has provided email",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Check if user has provided email": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Message Slack for help",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"node": "Prompt the user to provide an email",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
221
workflows/Slack/1396_Slack_Stickynote_Automate_Webhook.json
Normal file
221
workflows/Slack/1396_Slack_Stickynote_Automate_Webhook.json
Normal file
@@ -0,0 +1,221 @@
|
||||
{
|
||||
"meta": {
|
||||
"instanceId": "84ba6d895254e080ac2b4916d987aa66b000f88d4d919a6b9c76848f9b8a7616",
|
||||
"templateId": "2370"
|
||||
},
|
||||
"nodes": [
|
||||
{
|
||||
"id": "2ce91ec6-0a8c-438a-8a18-216001c9ee07",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
380,
|
||||
240
|
||||
],
|
||||
"parameters": {
|
||||
"width": 407.6388140161723,
|
||||
"height": 490.24769122000794,
|
||||
"content": "## This is a POST Webhook endpoint\n\nMake sure to configure this webhook using a https:// wraper and dont use the default http://localhost:5678 as that will not be recognized by your slack webhook\n\n\nOnce the data has been sent to your webhook, the next step will be passing it via an AI Agent to process data based on the queries we pass to our agent.\n\nTo have some sort of a memory, be sure to set the slack token to the memory node. This way you can refer to other chats from the history.\n\nThe final message is relayed back to slack as a new message. Since we can not wait longer than 3000 ms for slack response, we will create anew message with reference to the input we passed.\n\nWe can advance this using the tools or data sources for it to be more custom tailored for your company.\n"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "7a0c84a8-90ef-4de8-b120-700c94c35a51",
|
||||
"name": "Sticky Note2",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
1180,
|
||||
560
|
||||
],
|
||||
"parameters": {
|
||||
"color": 4,
|
||||
"width": 221.73584905660368,
|
||||
"height": 233,
|
||||
"content": "### Conversation history is stored in memory using the body token as the chatsession id"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "9b843e0e-42a6-4125-8c59-a7d5620a15f7",
|
||||
"name": "Sticky Note3",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
942.5229110512129,
|
||||
560
|
||||
],
|
||||
"parameters": {
|
||||
"color": 4,
|
||||
"width": 217.47708894878716,
|
||||
"height": 233,
|
||||
"content": "### The chat LLM to process the prompt. Use any AI model here"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "4efa968f-ebf5-42ec-80d3-907ef2622c61",
|
||||
"name": "Google Gemini Chat Model",
|
||||
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
|
||||
"position": [
|
||||
1020,
|
||||
640
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"modelName": "models/gemini-1.5-flash-latest"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "fd1efd7c-7cd0-4edf-960e-19bd4567293e",
|
||||
"name": "Window Buffer Memory",
|
||||
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
|
||||
"position": [
|
||||
1260,
|
||||
660
|
||||
],
|
||||
"parameters": {
|
||||
"sessionKey": "={{ $('Webhook to receive message').item.json.body.token }}",
|
||||
"sessionIdType": "customKey",
|
||||
"contextWindowLength": 10
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
},
|
||||
{
|
||||
"id": "60d1eb77-492d-4a18-8cec-fa3f6ef8d707",
|
||||
"name": "Sticky Note4",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
1467.5148247978436,
|
||||
260
|
||||
],
|
||||
"parameters": {
|
||||
"color": 4,
|
||||
"width": 223.7196765498655,
|
||||
"height": 236.66152029520293,
|
||||
"content": "### Send the response from AI back to slack channel\n"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "186069c0-5c79-4738-9924-de33998658bc",
|
||||
"name": "Sticky Note1",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
840,
|
||||
180
|
||||
],
|
||||
"parameters": {
|
||||
"color": 4,
|
||||
"width": 561.423180592992,
|
||||
"height": 340.09703504043114,
|
||||
"content": "## Receive a POST webhook, process data and return response"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "2bfce117-a769-46e1-a028-ed0c7ba62653",
|
||||
"name": "Send response back to slack channel",
|
||||
"type": "n8n-nodes-base.slack",
|
||||
"position": [
|
||||
1540,
|
||||
320
|
||||
],
|
||||
"parameters": {
|
||||
"text": "={{ $('Webhook to receive message').item.json.body.user_name }}: {{ $('Webhook to receive message').item.json.body.text }}\n\nEffibotics Bot: {{ $json.output.removeMarkdown() }} ",
|
||||
"select": "channel",
|
||||
"channelId": {
|
||||
"__rl": true,
|
||||
"mode": "id",
|
||||
"value": "={{ $('Webhook to receive message').item.json.body.channel_id }}"
|
||||
},
|
||||
"otherOptions": {
|
||||
"mrkdwn": true,
|
||||
"sendAsUser": "Effibotics Bot",
|
||||
"includeLinkToWorkflow": false
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.1
|
||||
},
|
||||
{
|
||||
"id": "cfcf2bbc-8ed5-4a9f-8f35-cf2715686ebe",
|
||||
"name": "Webhook to receive message",
|
||||
"type": "n8n-nodes-base.webhook",
|
||||
"position": [
|
||||
880,
|
||||
320
|
||||
],
|
||||
"webhookId": "28b84545-96aa-42f5-990b-aa8783a320ca",
|
||||
"parameters": {
|
||||
"path": "slack-bot",
|
||||
"options": {
|
||||
"responseData": ""
|
||||
},
|
||||
"httpMethod": "POST"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "dc93e588-fc0b-4561-88a5-e1cccd48323f",
|
||||
"name": "Agent",
|
||||
"type": "@n8n/n8n-nodes-langchain.agent",
|
||||
"position": [
|
||||
1100,
|
||||
320
|
||||
],
|
||||
"parameters": {
|
||||
"text": "={{ $json.body.text }}",
|
||||
"options": {
|
||||
"systemMessage": "You are Effibotics AI personal assistant. Your task will be to provide helpful assistance and advice related to automation and such tasks. "
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
}
|
||||
],
|
||||
"pinData": {},
|
||||
"connections": {
|
||||
"Agent": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Send response back to slack channel",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Window Buffer Memory": {
|
||||
"ai_memory": [
|
||||
[
|
||||
{
|
||||
"node": "Agent",
|
||||
"type": "ai_memory",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Google Gemini Chat Model": {
|
||||
"ai_languageModel": [
|
||||
[
|
||||
{
|
||||
"node": "Agent",
|
||||
"type": "ai_languageModel",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Webhook to receive message": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Agent",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
299
workflows/Slack/1592_Slack_Stickynote_Automate_Webhook.json
Normal file
299
workflows/Slack/1592_Slack_Stickynote_Automate_Webhook.json
Normal file
@@ -0,0 +1,299 @@
|
||||
{
|
||||
"id": "PGLFPj5y01s26rE1",
|
||||
"meta": {
|
||||
"instanceId": "b68f2515130d1ee83f4af1a6f2ca359fc9bb8cdbe875ca10b6f944f99aa931b5",
|
||||
"templateCredsSetupCompleted": true
|
||||
},
|
||||
"name": "My workflow 6",
|
||||
"tags": [],
|
||||
"nodes": [
|
||||
{
|
||||
"id": "82670f40-2e3b-4e02-ae52-f2c918c3aa1c",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
-80,
|
||||
-600
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 280,
|
||||
"height": 380,
|
||||
"content": "## Command Trigger\n\nCopy the webhook URL, paste it into the Request URL of the Slack slash command, and complete the creation.\n\n\n웹훅 URL을 복사하여 슬랙 슬래시 커맨드의 Request URL에 붙이고 생성을 완료하세요."
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "28f56691-0ad5-47b1-974b-1ece4890933b",
|
||||
"name": "Sticky Note1",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
260,
|
||||
-600
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"height": 380,
|
||||
"content": "## Command Switch\n\nSwitch each slash command.\n\n각 슬래시 커맨드를 분기하세요."
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "9dc9ca95-e29d-44d9-9e09-b2a72d9ad23a",
|
||||
"name": "Sticky Note2",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
600,
|
||||
-600
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 360,
|
||||
"height": 380,
|
||||
"content": "## Create AI Messages"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "025c5a59-06b6-4b6d-b3e0-aa782a133c97",
|
||||
"name": "Sticky Note3",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
1060,
|
||||
-600
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"height": 340,
|
||||
"content": "## Send a Slack Message"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "cb60e9b0-a9a8-4dd6-9aa3-9d22c7f5f537",
|
||||
"name": "Webhook",
|
||||
"type": "n8n-nodes-base.webhook",
|
||||
"position": [
|
||||
-20,
|
||||
-380
|
||||
],
|
||||
"webhookId": "1bd05fcf-8286-491f-ae13-f0e6bff4aca6",
|
||||
"parameters": {
|
||||
"path": "1bd05fcf-8286-491f-ae13-f0e6bff4aca6",
|
||||
"options": {
|
||||
"responseCode": {
|
||||
"values": {
|
||||
"responseCode": 204
|
||||
}
|
||||
}
|
||||
},
|
||||
"httpMethod": "POST"
|
||||
},
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "d60cfb45-df3d-4ab1-8e7e-1b2e81bc5b34",
|
||||
"name": "Switch",
|
||||
"type": "n8n-nodes-base.switch",
|
||||
"position": [
|
||||
320,
|
||||
-380
|
||||
],
|
||||
"parameters": {
|
||||
"rules": {
|
||||
"values": [
|
||||
{
|
||||
"outputKey": "ask",
|
||||
"conditions": {
|
||||
"options": {
|
||||
"version": 2,
|
||||
"leftValue": "",
|
||||
"caseSensitive": true,
|
||||
"typeValidation": "strict"
|
||||
},
|
||||
"combinator": "and",
|
||||
"conditions": [
|
||||
{
|
||||
"operator": {
|
||||
"type": "string",
|
||||
"operation": "equals"
|
||||
},
|
||||
"leftValue": "={{ $json.body.command }}",
|
||||
"rightValue": "/ask"
|
||||
}
|
||||
]
|
||||
},
|
||||
"renameOutput": true
|
||||
},
|
||||
{
|
||||
"outputKey": "another",
|
||||
"conditions": {
|
||||
"options": {
|
||||
"version": 2,
|
||||
"leftValue": "",
|
||||
"caseSensitive": true,
|
||||
"typeValidation": "strict"
|
||||
},
|
||||
"combinator": "and",
|
||||
"conditions": [
|
||||
{
|
||||
"id": "a0924665-de21-4d9b-a1d1-c9f41f74ee09",
|
||||
"operator": {
|
||||
"name": "filter.operator.equals",
|
||||
"type": "string",
|
||||
"operation": "equals"
|
||||
},
|
||||
"leftValue": "={{ $json.body.command }}",
|
||||
"rightValue": "/another"
|
||||
}
|
||||
]
|
||||
},
|
||||
"renameOutput": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"options": {}
|
||||
},
|
||||
"typeVersion": 3.2
|
||||
},
|
||||
{
|
||||
"id": "810ac4dd-8241-4486-b183-74cbde3d58e7",
|
||||
"name": "Basic LLM Chain",
|
||||
"type": "@n8n/n8n-nodes-langchain.chainLlm",
|
||||
"position": [
|
||||
640,
|
||||
-500
|
||||
],
|
||||
"parameters": {
|
||||
"text": "={{ $json.body.text }}",
|
||||
"promptType": "define"
|
||||
},
|
||||
"typeVersion": 1.5
|
||||
},
|
||||
{
|
||||
"id": "f173fe2d-45e7-460c-aa33-d5509b6d59b9",
|
||||
"name": "OpenAI Chat Model",
|
||||
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
|
||||
"position": [
|
||||
720,
|
||||
-340
|
||||
],
|
||||
"parameters": {
|
||||
"model": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "gpt-4o-mini"
|
||||
},
|
||||
"options": {}
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
},
|
||||
{
|
||||
"id": "4752da4c-b013-4469-a3bc-386d3ab3d15d",
|
||||
"name": "Send a Message",
|
||||
"type": "n8n-nodes-base.slack",
|
||||
"position": [
|
||||
1120,
|
||||
-460
|
||||
],
|
||||
"webhookId": "a37abc2a-6e8c-4c00-8543-3f313b300df6",
|
||||
"parameters": {
|
||||
"text": "={{ $json.text }}",
|
||||
"select": "channel",
|
||||
"channelId": {
|
||||
"__rl": true,
|
||||
"mode": "id",
|
||||
"value": "={{ $('Webhook').item.json.body.channel_id }}"
|
||||
},
|
||||
"otherOptions": {
|
||||
"includeLinkToWorkflow": false
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.3
|
||||
},
|
||||
{
|
||||
"id": "c2f5dbcc-8283-47ab-b19a-810ad526d519",
|
||||
"name": "Sticky Note8",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
-80,
|
||||
-1060
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 340,
|
||||
"height": 400,
|
||||
"content": "## 슬랙 Slash Command와 채널 메시지로 챗봇 만들기 🤖\n\n이 튜토리얼에서는 n8n을 활용해 슬랙에서 동작하는 AI 챗봇을 만드는 방법을 알려드립니다. 슬래시 커맨드를 통한 개인 메시지부터 공개 채널에서의 자동 응답까지, 실용적인 챗봇 구현 방법을 단계별로 설명합니다. 슬랙 앱 설정부터 n8n 노드 구성, 웹훅 트리거 설정, AI 봇 연동까지 하나하나 자세히 다룹니다.\n\n유튜브 링크:\nhttps://www.youtube.com/watch?v=UpudYFCWaIM\n"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "4ecdfdfa-8886-47c6-b9df-ac45321b0cea",
|
||||
"name": "Sticky Note10",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
300,
|
||||
-1060
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 340,
|
||||
"height": 400,
|
||||
"content": "## Create an AI chatbot with Slack slash commands! 🤖\n\nIn this tutorial, we'll show you how to create an AI chatbot that works in Slack using n8n. We'll explain step by step how to implement a practical chatbot, from personal messages through slash commands to automatic responses in public channels. We'll cover everything in detail, from Slack app configuration to n8n node setup, webhook trigger configuration, and AI bot integration.\n\nThe YouTube video is provided in Korean.\n\nYoutube Link:\nhttps://www.youtube.com/watch?v=UpudYFCWaIM\n"
|
||||
},
|
||||
"typeVersion": 1
|
||||
}
|
||||
],
|
||||
"active": false,
|
||||
"pinData": {},
|
||||
"settings": {
|
||||
"executionOrder": "v1"
|
||||
},
|
||||
"versionId": "de554ae6-98d5-4841-9ed6-cb68d2c1bc7f",
|
||||
"connections": {
|
||||
"Switch": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Basic LLM Chain",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Webhook": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Switch",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Basic LLM Chain": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Send a Message",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"OpenAI Chat Model": {
|
||||
"ai_languageModel": [
|
||||
[
|
||||
{
|
||||
"node": "Basic LLM Chain",
|
||||
"type": "ai_languageModel",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
635
workflows/Slack/1643_Slack_Manual_Automate_Webhook.json
Normal file
635
workflows/Slack/1643_Slack_Manual_Automate_Webhook.json
Normal file
@@ -0,0 +1,635 @@
|
||||
{
|
||||
"id": "SHpLY12UobbcWRnl",
|
||||
"meta": {
|
||||
"instanceId": "a4bfc93e975ca233ac45ed7c9227d84cf5a2329310525917adaf3312e10d5462",
|
||||
"templateCredsSetupCompleted": true
|
||||
},
|
||||
"name": "Slack AI Chatbot with RAG for company staff",
|
||||
"tags": [],
|
||||
"nodes": [
|
||||
{
|
||||
"id": "df994f64-af5b-49f5-ad83-5c4b69983d41",
|
||||
"name": "AI Agent",
|
||||
"type": "@n8n/n8n-nodes-langchain.agent",
|
||||
"position": [
|
||||
-780,
|
||||
340
|
||||
],
|
||||
"parameters": {
|
||||
"text": "={{ $json.blocks[0].elements[0].elements[1].text }}",
|
||||
"options": {
|
||||
"systemMessage": "=You are an AI assistant connected to the company's internal knowledge base through a RAG (Retrieval Augmented Generation) system. Your purpose is to help team members quickly find and understand information from company documents.\n\nCORE RESPONSIBILITIES:\n- Respond to queries about company policies, procedures, documentation, and internal knowledge\n- Provide concise, accurate information retrieved from the company's document repository\n- Format responses appropriately for Slack (use markdown for clarity)\n- Cite the specific document source when providing information\n\nINTERACTION GUIDELINES:\n- Keep responses brief and to the point (aim for 3-5 sentences when possible)\n- Use bullet points for lists or step-by-step instructions\n- Include direct quotes from documents when relevant, using > for blockquotes\n- When unable to find information, clearly state this and suggest alternative resources\n\nTECHNICAL CONTEXT:\n- You receive queries through Slack messages\n- You use the RAG tool in n8n to search and retrieve relevant document sections\n- All responses should be crafted for readability on Slack's interface\n\nRESPONSE STRUCTURE:\n1. Direct answer to the question (1-2 sentences)\n2. Supporting details from retrieved documents (2-3 sentences or bullet points)\n3. Source citation (document name and date if available)\n4. Follow-up suggestion if applicable (1 sentence)\n\nAlways prioritize accuracy over speed. If multiple documents contain relevant information, synthesize the most important points rather than providing all details. If the query is ambiguous, ask a clarifying question before searching.\n\nRemember that you are a tool to empower employees, not replace human judgment. When questions involve complex decision-making, provide the relevant information and encourage the user to consult with appropriate team members.\n\nDate; {{ $now }}"
|
||||
},
|
||||
"promptType": "define"
|
||||
},
|
||||
"typeVersion": 1.8
|
||||
},
|
||||
{
|
||||
"id": "047141fc-a7a0-4532-ae45-da0f2cc27b69",
|
||||
"name": "Simple Memory",
|
||||
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
|
||||
"position": [
|
||||
-720,
|
||||
600
|
||||
],
|
||||
"parameters": {
|
||||
"sessionKey": "={{ $('Get message').item.json.channel }}_{{ $('Get message').item.json.blocks[0].elements[0].elements[0].user_id }}",
|
||||
"sessionIdType": "customKey",
|
||||
"contextWindowLength": 10
|
||||
},
|
||||
"typeVersion": 1.3
|
||||
},
|
||||
{
|
||||
"id": "f7da4458-3dc5-43b8-a97d-dac3e599543c",
|
||||
"name": "Embeddings OpenAI1",
|
||||
"type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
|
||||
"position": [
|
||||
-460,
|
||||
800
|
||||
],
|
||||
"parameters": {
|
||||
"options": {}
|
||||
},
|
||||
"credentials": {
|
||||
"openAiApi": {
|
||||
"id": "4zwP0MSr8zkNvvV9",
|
||||
"name": "OpenAi account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
},
|
||||
{
|
||||
"id": "14a6052f-e619-4d19-99aa-42253c45a913",
|
||||
"name": "RAG",
|
||||
"type": "@n8n/n8n-nodes-langchain.vectorStoreQdrant",
|
||||
"position": [
|
||||
-420,
|
||||
620
|
||||
],
|
||||
"parameters": {
|
||||
"mode": "retrieve-as-tool",
|
||||
"topK": 10,
|
||||
"options": {},
|
||||
"toolName": "company_info",
|
||||
"toolDescription": "Get business documents",
|
||||
"qdrantCollection": {
|
||||
"__rl": true,
|
||||
"mode": "id",
|
||||
"value": "COLLECTION"
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"qdrantApi": {
|
||||
"id": "iyQ6MQiVaF3VMBmt",
|
||||
"name": "QdrantApi account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.1
|
||||
},
|
||||
{
|
||||
"id": "c6334fd2-0d54-4980-857e-079be08959a5",
|
||||
"name": "Calculator",
|
||||
"type": "@n8n/n8n-nodes-langchain.toolCalculator",
|
||||
"position": [
|
||||
-560,
|
||||
600
|
||||
],
|
||||
"parameters": {},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "87a629b9-980f-4d0d-9fee-5efa560770d2",
|
||||
"name": "Get message",
|
||||
"type": "n8n-nodes-base.slackTrigger",
|
||||
"position": [
|
||||
-1040,
|
||||
340
|
||||
],
|
||||
"webhookId": "3146b3e9-4cfc-493f-882c-57c865380115",
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"trigger": [
|
||||
"app_mention"
|
||||
],
|
||||
"channelId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "C08L6SEPWMB",
|
||||
"cachedResultName": "n8n-test"
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"slackApi": {
|
||||
"id": "QjSyGP8ykppazXDW",
|
||||
"name": "Slack account (Token)"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "939b309d-1828-4159-b1dc-4a1629069c37",
|
||||
"name": "Send message",
|
||||
"type": "n8n-nodes-base.slack",
|
||||
"position": [
|
||||
-420,
|
||||
340
|
||||
],
|
||||
"webhookId": "946ab278-f815-4bd3-a20d-49ba59d76659",
|
||||
"parameters": {
|
||||
"text": "={{ $json.output }}",
|
||||
"select": "channel",
|
||||
"channelId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "C08L6SEPWMB",
|
||||
"cachedResultName": "n8n-test"
|
||||
},
|
||||
"otherOptions": {
|
||||
"mrkdwn": true,
|
||||
"thread_ts": {
|
||||
"replyValues": {
|
||||
"thread_ts": "={{ $('Get message').item.json.event_ts }}",
|
||||
"reply_broadcast": true
|
||||
}
|
||||
},
|
||||
"unfurl_links": true,
|
||||
"includeLinkToWorkflow": false
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"slackApi": {
|
||||
"id": "QjSyGP8ykppazXDW",
|
||||
"name": "Slack account (Token)"
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.3
|
||||
},
|
||||
{
|
||||
"id": "50be03ea-ab0c-48cb-b95a-b096e51c3d16",
|
||||
"name": "When clicking ‘Test workflow’",
|
||||
"type": "n8n-nodes-base.manualTrigger",
|
||||
"position": [
|
||||
-1120,
|
||||
-1020
|
||||
],
|
||||
"parameters": {},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "2a765d76-59c6-49c3-95b4-429e5439da37",
|
||||
"name": "Create collection",
|
||||
"type": "n8n-nodes-base.httpRequest",
|
||||
"position": [
|
||||
-820,
|
||||
-1160
|
||||
],
|
||||
"parameters": {
|
||||
"url": "https://QDRANTURL/collections/COLLECTION",
|
||||
"method": "POST",
|
||||
"options": {},
|
||||
"jsonBody": "{\n \"filter\": {}\n}",
|
||||
"sendBody": true,
|
||||
"sendHeaders": true,
|
||||
"specifyBody": "json",
|
||||
"authentication": "genericCredentialType",
|
||||
"genericAuthType": "httpHeaderAuth",
|
||||
"headerParameters": {
|
||||
"parameters": [
|
||||
{
|
||||
"name": "Content-Type",
|
||||
"value": "application/json"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"httpHeaderAuth": {
|
||||
"id": "qhny6r5ql9wwotpn",
|
||||
"name": "Qdrant API (Hetzner)"
|
||||
}
|
||||
},
|
||||
"typeVersion": 4.2
|
||||
},
|
||||
{
|
||||
"id": "66eb2691-4316-4470-aa6d-9696beff6cf2",
|
||||
"name": "Refresh collection",
|
||||
"type": "n8n-nodes-base.httpRequest",
|
||||
"position": [
|
||||
-820,
|
||||
-900
|
||||
],
|
||||
"parameters": {
|
||||
"url": "https://QDRANTURL/collections/COLLECTION/points/delete",
|
||||
"method": "POST",
|
||||
"options": {},
|
||||
"jsonBody": "{\n \"filter\": {}\n}",
|
||||
"sendBody": true,
|
||||
"sendHeaders": true,
|
||||
"specifyBody": "json",
|
||||
"authentication": "genericCredentialType",
|
||||
"genericAuthType": "httpHeaderAuth",
|
||||
"headerParameters": {
|
||||
"parameters": [
|
||||
{
|
||||
"name": "Content-Type",
|
||||
"value": "application/json"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"httpHeaderAuth": {
|
||||
"id": "qhny6r5ql9wwotpn",
|
||||
"name": "Qdrant API (Hetzner)"
|
||||
}
|
||||
},
|
||||
"typeVersion": 4.2
|
||||
},
|
||||
{
|
||||
"id": "c0e16404-d82c-418e-b384-d9cc5dceeab6",
|
||||
"name": "Get folder",
|
||||
"type": "n8n-nodes-base.googleDrive",
|
||||
"position": [
|
||||
-600,
|
||||
-900
|
||||
],
|
||||
"parameters": {
|
||||
"filter": {
|
||||
"driveId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "My Drive",
|
||||
"cachedResultUrl": "https://drive.google.com/drive/my-drive",
|
||||
"cachedResultName": "My Drive"
|
||||
},
|
||||
"folderId": {
|
||||
"__rl": true,
|
||||
"mode": "id",
|
||||
"value": "=test-whatsapp"
|
||||
}
|
||||
},
|
||||
"options": {},
|
||||
"resource": "fileFolder"
|
||||
},
|
||||
"credentials": {
|
||||
"googleDriveOAuth2Api": {
|
||||
"id": "HEy5EuZkgPZVEa9w",
|
||||
"name": "Google Drive account (n3w.it)"
|
||||
}
|
||||
},
|
||||
"typeVersion": 3
|
||||
},
|
||||
{
|
||||
"id": "ed9768aa-e381-4d53-b0b4-702833e388b9",
|
||||
"name": "Download Files",
|
||||
"type": "n8n-nodes-base.googleDrive",
|
||||
"position": [
|
||||
-380,
|
||||
-900
|
||||
],
|
||||
"parameters": {
|
||||
"fileId": {
|
||||
"__rl": true,
|
||||
"mode": "id",
|
||||
"value": "={{ $json.id }}"
|
||||
},
|
||||
"options": {
|
||||
"googleFileConversion": {
|
||||
"conversion": {
|
||||
"docsToFormat": "text/plain"
|
||||
}
|
||||
}
|
||||
},
|
||||
"operation": "download"
|
||||
},
|
||||
"credentials": {
|
||||
"googleDriveOAuth2Api": {
|
||||
"id": "HEy5EuZkgPZVEa9w",
|
||||
"name": "Google Drive account (n3w.it)"
|
||||
}
|
||||
},
|
||||
"typeVersion": 3
|
||||
},
|
||||
{
|
||||
"id": "0da72902-4338-4610-a48c-ad2762690623",
|
||||
"name": "Default Data Loader",
|
||||
"type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
|
||||
"position": [
|
||||
20,
|
||||
-700
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"dataType": "binary"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "8783e0bc-df82-4bee-9340-5c788e7f7d3c",
|
||||
"name": "Token Splitter",
|
||||
"type": "@n8n/n8n-nodes-langchain.textSplitterTokenSplitter",
|
||||
"position": [
|
||||
0,
|
||||
-520
|
||||
],
|
||||
"parameters": {
|
||||
"chunkSize": 300,
|
||||
"chunkOverlap": 30
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "d3872217-ff7e-4ed7-9992-ab2b6f5af9e1",
|
||||
"name": "Sticky Note3",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
-620,
|
||||
-1220
|
||||
],
|
||||
"parameters": {
|
||||
"color": 6,
|
||||
"width": 880,
|
||||
"height": 220,
|
||||
"content": "# STEP 1\n\n## Create Qdrant Collection\nChange:\n- QDRANTURL\n- COLLECTION"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "887598e8-5ac2-4433-9bd6-779a028eab14",
|
||||
"name": "Qdrant Vector Store1",
|
||||
"type": "@n8n/n8n-nodes-langchain.vectorStoreQdrant",
|
||||
"position": [
|
||||
-140,
|
||||
-900
|
||||
],
|
||||
"parameters": {
|
||||
"mode": "insert",
|
||||
"options": {},
|
||||
"qdrantCollection": {
|
||||
"__rl": true,
|
||||
"mode": "id",
|
||||
"value": "=COLLECTION"
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"qdrantApi": {
|
||||
"id": "iyQ6MQiVaF3VMBmt",
|
||||
"name": "QdrantApi account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "d0ab0fb8-e4b8-49e2-9d40-74c9855af7b0",
|
||||
"name": "Sticky Note5",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
-840,
|
||||
-960
|
||||
],
|
||||
"parameters": {
|
||||
"color": 4,
|
||||
"width": 620,
|
||||
"height": 400,
|
||||
"content": "# STEP 2\n\n\n\n\n\n\n\n\n\n\n\n\n## Documents vectorization with Qdrant and Google Drive\nChange:\n- QDRANTURL\n- COLLECTION"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "f3311b6f-1130-41c7-ab3a-447bb617be1b",
|
||||
"name": "Sticky Note2",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
-1140,
|
||||
-1500
|
||||
],
|
||||
"parameters": {
|
||||
"color": 3,
|
||||
"width": 1400,
|
||||
"height": 200,
|
||||
"content": "# Slack AI Chatbot Workflow with RAG\n\nImagine having an AI chatbot on Slack that seamlessly integrates with your company’s workflow, automating repetitive requests. No more digging through emails or documents to find answers about IT requests, company policies, or vacation days—just ask the bot, and it will instantly provide the right information.\n\nWith its 24/7 availability, the chatbot ensures that team members get immediate support without waiting for a colleague to be online, making assistance faster and more efficient."
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "b81155d1-6382-4bd8-96a1-09b063f95c43",
|
||||
"name": "Embeddings OpenAI2",
|
||||
"type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
|
||||
"position": [
|
||||
-140,
|
||||
-680
|
||||
],
|
||||
"parameters": {
|
||||
"options": {}
|
||||
},
|
||||
"typeVersion": 1.1
|
||||
},
|
||||
{
|
||||
"id": "7754f8bd-56c2-46c9-85da-d9a49ccf5c81",
|
||||
"name": "Sticky Note4",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
-1060,
|
||||
-340
|
||||
],
|
||||
"parameters": {
|
||||
"width": 900,
|
||||
"height": 640,
|
||||
"content": "# STEP 3\nCreate a Slack Bot [here](https://api.slack.com) and add it to your Slack (Private o Public) channel.\n\nSet \"Scope Subscribe to Bot Event\":\n- app_mention \n- message.channels\n\nSet Bot Token Scopes:\n- app_mentions:read\n- channels:history\n- channels:manage\n- channels:read\n- chat:write\n- files:read\n- groups:history\n- groups:read\n- im:history\n- im:read\n- mpim:history\n- mpim:read\n- reactions:read\n- reactions:write\n- usergroups:read\n- users:read\n\nIn RAG Qdrant node change: \n- COLLECTION"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "9933da43-8797-40ed-b399-49ddeb369e42",
|
||||
"name": "Anthropic Chat Model",
|
||||
"type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
|
||||
"position": [
|
||||
-900,
|
||||
600
|
||||
],
|
||||
"parameters": {
|
||||
"model": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "claude-3-7-sonnet-20250219",
|
||||
"cachedResultName": "Claude 3.7 Sonnet"
|
||||
},
|
||||
"options": {}
|
||||
},
|
||||
"credentials": {
|
||||
"anthropicApi": {
|
||||
"id": "NNTZAD0Gmf7lcniq",
|
||||
"name": "Anthropic account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.3
|
||||
}
|
||||
],
|
||||
"active": false,
|
||||
"pinData": {},
|
||||
"settings": {
|
||||
"executionOrder": "v1"
|
||||
},
|
||||
"versionId": "9ed2f0d0-c463-4942-be0c-e5b606973048",
|
||||
"connections": {
|
||||
"RAG": {
|
||||
"ai_tool": [
|
||||
[
|
||||
{
|
||||
"node": "AI Agent",
|
||||
"type": "ai_tool",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"AI Agent": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Send message",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Calculator": {
|
||||
"ai_tool": [
|
||||
[
|
||||
{
|
||||
"node": "AI Agent",
|
||||
"type": "ai_tool",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Get folder": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Download Files",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Get message": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "AI Agent",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Simple Memory": {
|
||||
"ai_memory": [
|
||||
[
|
||||
{
|
||||
"node": "AI Agent",
|
||||
"type": "ai_memory",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Download Files": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Qdrant Vector Store1",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Token Splitter": {
|
||||
"ai_textSplitter": [
|
||||
[
|
||||
{
|
||||
"node": "Default Data Loader",
|
||||
"type": "ai_textSplitter",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Embeddings OpenAI1": {
|
||||
"ai_embedding": [
|
||||
[
|
||||
{
|
||||
"node": "RAG",
|
||||
"type": "ai_embedding",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Embeddings OpenAI2": {
|
||||
"ai_embedding": [
|
||||
[
|
||||
{
|
||||
"node": "Qdrant Vector Store1",
|
||||
"type": "ai_embedding",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Refresh collection": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Get folder",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Default Data Loader": {
|
||||
"ai_document": [
|
||||
[
|
||||
{
|
||||
"node": "Qdrant Vector Store1",
|
||||
"type": "ai_document",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Anthropic Chat Model": {
|
||||
"ai_languageModel": [
|
||||
[
|
||||
{
|
||||
"node": "AI Agent",
|
||||
"type": "ai_languageModel",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"When clicking ‘Test workflow’": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Create collection",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
},
|
||||
{
|
||||
"node": "Refresh collection",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
299
workflows/Slack/1663_Slack_Stickynote_Automate_Webhook.json
Normal file
299
workflows/Slack/1663_Slack_Stickynote_Automate_Webhook.json
Normal file
@@ -0,0 +1,299 @@
|
||||
{
|
||||
"id": "PGLFPj5y01s26rE1",
|
||||
"meta": {
|
||||
"instanceId": "b68f2515130d1ee83f4af1a6f2ca359fc9bb8cdbe875ca10b6f944f99aa931b5",
|
||||
"templateCredsSetupCompleted": true
|
||||
},
|
||||
"name": "My workflow 6",
|
||||
"tags": [],
|
||||
"nodes": [
|
||||
{
|
||||
"id": "82670f40-2e3b-4e02-ae52-f2c918c3aa1c",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
-80,
|
||||
-600
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 280,
|
||||
"height": 380,
|
||||
"content": "## Command Trigger\n\nCopy the webhook URL, paste it into the Request URL of the Slack slash command, and complete the creation.\n\n\n\uc6f9\ud6c5 URL\uc744 \ubcf5\uc0ac\ud558\uc5ec \uc2ac\ub799 \uc2ac\ub798\uc2dc \ucee4\ub9e8\ub4dc\uc758 Request URL\uc5d0 \ubd99\uc774\uace0 \uc0dd\uc131\uc744 \uc644\ub8cc\ud558\uc138\uc694."
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "28f56691-0ad5-47b1-974b-1ece4890933b",
|
||||
"name": "Sticky Note1",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
260,
|
||||
-600
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"height": 380,
|
||||
"content": "## Command Switch\n\nSwitch each slash command.\n\n\uac01 \uc2ac\ub798\uc2dc \ucee4\ub9e8\ub4dc\ub97c \ubd84\uae30\ud558\uc138\uc694."
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "9dc9ca95-e29d-44d9-9e09-b2a72d9ad23a",
|
||||
"name": "Sticky Note2",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
600,
|
||||
-600
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 360,
|
||||
"height": 380,
|
||||
"content": "## Create AI Messages"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "025c5a59-06b6-4b6d-b3e0-aa782a133c97",
|
||||
"name": "Sticky Note3",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
1060,
|
||||
-600
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"height": 340,
|
||||
"content": "## Send a Slack Message"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "cb60e9b0-a9a8-4dd6-9aa3-9d22c7f5f537",
|
||||
"name": "Webhook",
|
||||
"type": "n8n-nodes-base.webhook",
|
||||
"position": [
|
||||
-20,
|
||||
-380
|
||||
],
|
||||
"webhookId": "1bd05fcf-8286-491f-ae13-f0e6bff4aca6",
|
||||
"parameters": {
|
||||
"path": "1bd05fcf-8286-491f-ae13-f0e6bff4aca6",
|
||||
"options": {
|
||||
"responseCode": {
|
||||
"values": {
|
||||
"responseCode": 204
|
||||
}
|
||||
}
|
||||
},
|
||||
"httpMethod": "POST"
|
||||
},
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "d60cfb45-df3d-4ab1-8e7e-1b2e81bc5b34",
|
||||
"name": "Switch",
|
||||
"type": "n8n-nodes-base.switch",
|
||||
"position": [
|
||||
320,
|
||||
-380
|
||||
],
|
||||
"parameters": {
|
||||
"rules": {
|
||||
"values": [
|
||||
{
|
||||
"outputKey": "ask",
|
||||
"conditions": {
|
||||
"options": {
|
||||
"version": 2,
|
||||
"leftValue": "",
|
||||
"caseSensitive": true,
|
||||
"typeValidation": "strict"
|
||||
},
|
||||
"combinator": "and",
|
||||
"conditions": [
|
||||
{
|
||||
"operator": {
|
||||
"type": "string",
|
||||
"operation": "equals"
|
||||
},
|
||||
"leftValue": "={{ $json.body.command }}",
|
||||
"rightValue": "/ask"
|
||||
}
|
||||
]
|
||||
},
|
||||
"renameOutput": true
|
||||
},
|
||||
{
|
||||
"outputKey": "another",
|
||||
"conditions": {
|
||||
"options": {
|
||||
"version": 2,
|
||||
"leftValue": "",
|
||||
"caseSensitive": true,
|
||||
"typeValidation": "strict"
|
||||
},
|
||||
"combinator": "and",
|
||||
"conditions": [
|
||||
{
|
||||
"id": "a0924665-de21-4d9b-a1d1-c9f41f74ee09",
|
||||
"operator": {
|
||||
"name": "filter.operator.equals",
|
||||
"type": "string",
|
||||
"operation": "equals"
|
||||
},
|
||||
"leftValue": "={{ $json.body.command }}",
|
||||
"rightValue": "/another"
|
||||
}
|
||||
]
|
||||
},
|
||||
"renameOutput": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"options": {}
|
||||
},
|
||||
"typeVersion": 3.2
|
||||
},
|
||||
{
|
||||
"id": "810ac4dd-8241-4486-b183-74cbde3d58e7",
|
||||
"name": "Basic LLM Chain",
|
||||
"type": "@n8n/n8n-nodes-langchain.chainLlm",
|
||||
"position": [
|
||||
640,
|
||||
-500
|
||||
],
|
||||
"parameters": {
|
||||
"text": "={{ $json.body.text }}",
|
||||
"promptType": "define"
|
||||
},
|
||||
"typeVersion": 1.5
|
||||
},
|
||||
{
|
||||
"id": "f173fe2d-45e7-460c-aa33-d5509b6d59b9",
|
||||
"name": "OpenAI Chat Model",
|
||||
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
|
||||
"position": [
|
||||
720,
|
||||
-340
|
||||
],
|
||||
"parameters": {
|
||||
"model": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "gpt-4o-mini"
|
||||
},
|
||||
"options": {}
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
},
|
||||
{
|
||||
"id": "4752da4c-b013-4469-a3bc-386d3ab3d15d",
|
||||
"name": "Send a Message",
|
||||
"type": "n8n-nodes-base.slack",
|
||||
"position": [
|
||||
1120,
|
||||
-460
|
||||
],
|
||||
"webhookId": "a37abc2a-6e8c-4c00-8543-3f313b300df6",
|
||||
"parameters": {
|
||||
"text": "={{ $json.text }}",
|
||||
"select": "channel",
|
||||
"channelId": {
|
||||
"__rl": true,
|
||||
"mode": "id",
|
||||
"value": "={{ $('Webhook').item.json.body.channel_id }}"
|
||||
},
|
||||
"otherOptions": {
|
||||
"includeLinkToWorkflow": false
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.3
|
||||
},
|
||||
{
|
||||
"id": "c2f5dbcc-8283-47ab-b19a-810ad526d519",
|
||||
"name": "Sticky Note8",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
-80,
|
||||
-1060
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 340,
|
||||
"height": 400,
|
||||
"content": "## \u1109\u1173\u11af\u1105\u1162\u11a8 Slash Command\u110b\u116a \u110e\u1162\u1102\u1165\u11af \u1106\u1166\u1109\u1175\u110c\u1175\ub85c \ucc57\ubd07 \ub9cc\ub4e4\uae30 \ud83e\udd16\n\n\uc774 \ud29c\ud1a0\ub9ac\uc5bc\uc5d0\uc11c\ub294 n8n\uc744 \ud65c\uc6a9\ud574 \uc2ac\ub799\uc5d0\uc11c \ub3d9\uc791\ud558\ub294 AI \ucc57\ubd07\uc744 \ub9cc\ub4dc\ub294 \ubc29\ubc95\uc744 \uc54c\ub824\ub4dc\ub9bd\ub2c8\ub2e4. \uc2ac\ub798\uc2dc \ucee4\ub9e8\ub4dc\ub97c \ud1b5\ud55c \uac1c\uc778 \uba54\uc2dc\uc9c0\ubd80\ud130 \uacf5\uac1c \ucc44\ub110\uc5d0\uc11c\uc758 \uc790\ub3d9 \uc751\ub2f5\uae4c\uc9c0, \uc2e4\uc6a9\uc801\uc778 \ucc57\ubd07 \uad6c\ud604 \ubc29\ubc95\uc744 \ub2e8\uacc4\ubcc4\ub85c \uc124\uba85\ud569\ub2c8\ub2e4. \uc2ac\ub799 \uc571 \uc124\uc815\ubd80\ud130 n8n \ub178\ub4dc \uad6c\uc131, \uc6f9\ud6c5 \ud2b8\ub9ac\uac70 \uc124\uc815, AI \ubd07 \uc5f0\ub3d9\uae4c\uc9c0 \ud558\ub098\ud558\ub098 \uc790\uc138\ud788 \ub2e4\ub8f9\ub2c8\ub2e4.\n\n\uc720\ud29c\ube0c \ub9c1\ud06c:\nhttps://www.youtube.com/watch?v=UpudYFCWaIM\n"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "4ecdfdfa-8886-47c6-b9df-ac45321b0cea",
|
||||
"name": "Sticky Note10",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
300,
|
||||
-1060
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 340,
|
||||
"height": 400,
|
||||
"content": "## Create an AI chatbot with Slack slash commands! \ud83e\udd16\n\nIn this tutorial, we'll show you how to create an AI chatbot that works in Slack using n8n. We'll explain step by step how to implement a practical chatbot, from personal messages through slash commands to automatic responses in public channels. We'll cover everything in detail, from Slack app configuration to n8n node setup, webhook trigger configuration, and AI bot integration.\n\nThe YouTube video is provided in Korean.\n\nYoutube Link:\nhttps://www.youtube.com/watch?v=UpudYFCWaIM\n"
|
||||
},
|
||||
"typeVersion": 1
|
||||
}
|
||||
],
|
||||
"active": false,
|
||||
"pinData": {},
|
||||
"settings": {
|
||||
"executionOrder": "v1"
|
||||
},
|
||||
"versionId": "de554ae6-98d5-4841-9ed6-cb68d2c1bc7f",
|
||||
"connections": {
|
||||
"Switch": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Basic LLM Chain",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Webhook": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Switch",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Basic LLM Chain": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Send a Message",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"OpenAI Chat Model": {
|
||||
"ai_languageModel": [
|
||||
[
|
||||
{
|
||||
"node": "Basic LLM Chain",
|
||||
"type": "ai_languageModel",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user