feat: add folder support for workflows (fixes #70)
This commit is contained in:
337
workflows/Schedule/0382_Schedule_Spotify_Create_Scheduled.json
Normal file
337
workflows/Schedule/0382_Schedule_Spotify_Create_Scheduled.json
Normal file
@@ -0,0 +1,337 @@
|
||||
{
|
||||
"meta": {
|
||||
"instanceId": "dbd383feb42b0206c833e3d762df280d0cce35cf96037fb2d6f3533c171dc540"
|
||||
},
|
||||
"nodes": [
|
||||
{
|
||||
"id": "b605b875-85cf-4210-8027-ce7b9b7069b9",
|
||||
"name": "CRON",
|
||||
"type": "n8n-nodes-base.scheduleTrigger",
|
||||
"notes": "Every Monday @ 8:30am",
|
||||
"position": [
|
||||
820,
|
||||
360
|
||||
],
|
||||
"parameters": {
|
||||
"rule": {
|
||||
"interval": [
|
||||
{
|
||||
"field": "cronExpression",
|
||||
"expression": "30 8 * * MON"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"notesInFlow": true,
|
||||
"typeVersion": 1.1
|
||||
},
|
||||
{
|
||||
"id": "edd9d7b6-9ac4-4acf-8f4b-4cbe943dfd34",
|
||||
"name": "Get User's Playlists",
|
||||
"type": "n8n-nodes-base.spotify",
|
||||
"position": [
|
||||
1060,
|
||||
360
|
||||
],
|
||||
"parameters": {
|
||||
"resource": "playlist",
|
||||
"operation": "getUserPlaylists",
|
||||
"returnAll": true
|
||||
},
|
||||
"credentials": {
|
||||
"spotifyOAuth2Api": {
|
||||
"id": "",
|
||||
"name": "Placeholder"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "98cf8fdc-556a-452a-8df6-16a98c17613e",
|
||||
"name": "Switch",
|
||||
"type": "n8n-nodes-base.switch",
|
||||
"notes": "Find Discover and Archive playlist by name",
|
||||
"position": [
|
||||
1280,
|
||||
360
|
||||
],
|
||||
"parameters": {
|
||||
"rules": {
|
||||
"rules": [
|
||||
{
|
||||
"value2": "Discover Weekly",
|
||||
"outputKey": "disc"
|
||||
},
|
||||
{
|
||||
"value2": "Discover Weekly Archive",
|
||||
"outputKey": "arch"
|
||||
}
|
||||
]
|
||||
},
|
||||
"value1": "={{ $json.name }}",
|
||||
"dataType": "string"
|
||||
},
|
||||
"notesInFlow": true,
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "d27ee5c1-86d8-4a6a-adcb-90bf59280550",
|
||||
"name": "Get Discover Tracks",
|
||||
"type": "n8n-nodes-base.spotify",
|
||||
"position": [
|
||||
1560,
|
||||
240
|
||||
],
|
||||
"parameters": {
|
||||
"id": "={{ $json.uri }}",
|
||||
"resource": "playlist",
|
||||
"operation": "getTracks",
|
||||
"returnAll": true
|
||||
},
|
||||
"credentials": {
|
||||
"spotifyOAuth2Api": {
|
||||
"id": "",
|
||||
"name": "Placeholder"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "e276dce6-d3d2-41a0-96b6-68e115ed198e",
|
||||
"name": "Get Archive Tracks",
|
||||
"type": "n8n-nodes-base.spotify",
|
||||
"position": [
|
||||
1560,
|
||||
460
|
||||
],
|
||||
"parameters": {
|
||||
"id": "={{ $json.uri }}",
|
||||
"resource": "playlist",
|
||||
"operation": "getTracks",
|
||||
"returnAll": true
|
||||
},
|
||||
"credentials": {
|
||||
"spotifyOAuth2Api": {
|
||||
"id": "",
|
||||
"name": "Placeholder"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "c619085b-424d-4ff5-b3eb-fa0eed05ce0d",
|
||||
"name": "Merge",
|
||||
"type": "n8n-nodes-base.merge",
|
||||
"position": [
|
||||
1840,
|
||||
360
|
||||
],
|
||||
"parameters": {
|
||||
"mode": "combine",
|
||||
"options": {},
|
||||
"joinMode": "keepNonMatches",
|
||||
"mergeByFields": {
|
||||
"values": [
|
||||
{
|
||||
"field1": "track.uri",
|
||||
"field2": "track.uri"
|
||||
}
|
||||
]
|
||||
},
|
||||
"outputDataFrom": "input1"
|
||||
},
|
||||
"typeVersion": 2.1,
|
||||
"alwaysOutputData": true
|
||||
},
|
||||
{
|
||||
"id": "6981f3b3-e1d4-415b-b2c2-d05646271270",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
1760,
|
||||
180
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 262,
|
||||
"height": 354,
|
||||
"content": "#### Purpose\n\nCompares tracks using `Combine` operation to output **non-matching** Discover Weekly tracks to ensure that duplicates are not appended to the Archive playlist"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "65a9ef93-afac-4f86-9203-73e24bcdb500",
|
||||
"name": "Check if tracks to add is NOT empty",
|
||||
"type": "n8n-nodes-base.if",
|
||||
"position": [
|
||||
2100,
|
||||
360
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"conditions": {
|
||||
"options": {
|
||||
"leftValue": "",
|
||||
"caseSensitive": true,
|
||||
"typeValidation": "strict"
|
||||
},
|
||||
"combinator": "and",
|
||||
"conditions": [
|
||||
{
|
||||
"id": "81f9e3a7-eef0-462c-9d82-db894b19a110",
|
||||
"operator": {
|
||||
"type": "object",
|
||||
"operation": "notEmpty",
|
||||
"singleValue": true
|
||||
},
|
||||
"leftValue": "={{ $json }}",
|
||||
"rightValue": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "604717ae-90ab-412b-bc83-15399d18c0d4",
|
||||
"name": "Add tracks to Archive playlist",
|
||||
"type": "n8n-nodes-base.spotify",
|
||||
"position": [
|
||||
2360,
|
||||
220
|
||||
],
|
||||
"parameters": {
|
||||
"id": "={{ $('Switch').all(1).first().json.uri }}",
|
||||
"trackID": "={{ $json.track.uri }}",
|
||||
"resource": "playlist",
|
||||
"additionalFields": {}
|
||||
},
|
||||
"credentials": {
|
||||
"spotifyOAuth2Api": {
|
||||
"id": "",
|
||||
"name": "Placeholder"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "34ddb49e-ebfe-46ff-a348-959befe5e86c",
|
||||
"name": "Sticky Note1",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
2580,
|
||||
280
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 634,
|
||||
"height": 190,
|
||||
"content": "### Do anything else here\n\nFor example, in my personal workflow, after the tracks have been added to to my Archive playlist, I send a `POST` request to my self-hosted [NTFY](https://docs.ntfy.sh) server to notify me that my Discover Weekly playlist has refreshed, and I also provide the links to easily open the playlists within the notification that is sent.\n\nThe possibilities are endless with n8n!"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "c5c18f22-2c1f-4e65-83fc-7f89c5e44828",
|
||||
"name": "Sticky Note2",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
820,
|
||||
-418.42807424594014
|
||||
],
|
||||
"parameters": {
|
||||
"color": 4,
|
||||
"width": 605.1751740139206,
|
||||
"height": 733.4280742459401,
|
||||
"content": "## README\n\nThis workflow will automatically archive your Spotify `Discover Weekly` playlist to a separate playlist. One additional caveat this workflow addresses is it will compare the refreshed `Discover Weekly` tracks against your archive playlist's existing tracks to ensure only unique tracks are added to your archive playlist. This helps reduce clutter within the archive playlist. \n\n### Setup Instructions (Required)\n1. **Within your Spotify account, create a new playlist**\n You may name this playlist whatever you like. The default name within the workflow is `Discover Weekly Archive`. If you decide on another name, ensure you update the `Switch` node output with the key of `arch` to the name of the playlist you set.\n\n2. **Create your Spotify credential(s) and update each Spotify node with your created credential**\n Follow the instructions within the [n8n docs](https://docs.n8n.io/integrations/builtin/credentials/spotify/) to create your Spotify credential, then select the credential in the `Get User's Playlists`, `Get Discover Tracks`, `Get Archive Tracks`, and `Add tracks to Archive playlist` nodes.\n\n3. **Activate the workflow to run workflow based on the Cron expression set in the `Schedule` trigger node.**\n\n### Optional Setup\n- Update the Cron expression within the `Schedule` trigger node with an earlier or later time if your `GENERIC_TIMEZONE` is set. You may also consider setting the workflow timezone as well. For assistance with Cron expressions, refer to the [n8n docs](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.scheduletrigger/#generate-a-custom-cron-expression).\n- Add nodes to the end of the workflow to send notifications, update a spreadsheet, or any other operation/action you'd like to perform in conjunction with archiving your Discover Weekly tracks\n- Setup a error workflow to handle any thing that goes wrong within the workflow. You can find an example [here](https://n8n.io/workflows/696-send-email-via-gmail-on-workflow-error/) or more information concerning handling errors within the [n8n docs](https://docs.n8n.io/courses/level-two/chapter-4/).\n"
|
||||
},
|
||||
"typeVersion": 1
|
||||
}
|
||||
],
|
||||
"pinData": {},
|
||||
"connections": {
|
||||
"CRON": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Get User's Playlists",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Merge": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Check if tracks to add is NOT empty",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Switch": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Get Discover Tracks",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"node": "Get Archive Tracks",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Get Archive Tracks": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Merge",
|
||||
"type": "main",
|
||||
"index": 1
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Get Discover Tracks": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Merge",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Get User's Playlists": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Switch",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Check if tracks to add is NOT empty": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Add tracks to Archive playlist",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
502
workflows/Schedule/0402_Schedule_Filter_Update_Scheduled.json
Normal file
502
workflows/Schedule/0402_Schedule_Filter_Update_Scheduled.json
Normal file
@@ -0,0 +1,502 @@
|
||||
{
|
||||
"meta": {
|
||||
"instanceId": "257476b1ef58bf3cb6a46e65fac7ee34a53a5e1a8492d5c6e4da5f87c9b82833",
|
||||
"templateId": "2088"
|
||||
},
|
||||
"nodes": [
|
||||
{
|
||||
"id": "0e4c65ce-95e9-4a32-bc5c-0461cb339764",
|
||||
"name": "Filter Status (Waiting for sending)",
|
||||
"type": "n8n-nodes-base.filter",
|
||||
"position": [
|
||||
1670,
|
||||
1110
|
||||
],
|
||||
"parameters": {
|
||||
"options": {
|
||||
"looseTypeValidation": true
|
||||
},
|
||||
"conditions": {
|
||||
"options": {
|
||||
"leftValue": "",
|
||||
"caseSensitive": true,
|
||||
"typeValidation": "loose"
|
||||
},
|
||||
"combinator": "and",
|
||||
"conditions": [
|
||||
{
|
||||
"id": "401b79a0-a079-4ea0-805b-a963d9206031",
|
||||
"operator": {
|
||||
"name": "filter.operator.equals",
|
||||
"type": "string",
|
||||
"operation": "equals"
|
||||
},
|
||||
"leftValue": "={{ $json.Status }}",
|
||||
"rightValue": "Waiting for sending"
|
||||
},
|
||||
{
|
||||
"id": "74ec18c7-e4cc-4d82-ba05-0ec4781cbb9f",
|
||||
"operator": {
|
||||
"type": "string",
|
||||
"operation": "exists",
|
||||
"singleValue": true
|
||||
},
|
||||
"leftValue": "={{ $json.Title }}",
|
||||
"rightValue": ""
|
||||
},
|
||||
{
|
||||
"id": "6e293a16-48cd-40bb-9882-09b456a97d58",
|
||||
"operator": {
|
||||
"type": "string",
|
||||
"operation": "exists",
|
||||
"singleValue": true
|
||||
},
|
||||
"leftValue": "={{ $json.Subject }}",
|
||||
"rightValue": ""
|
||||
},
|
||||
{
|
||||
"id": "a02d2518-e979-4a17-ab00-dda6723d9945",
|
||||
"operator": {
|
||||
"type": "string",
|
||||
"operation": "exists",
|
||||
"singleValue": true
|
||||
},
|
||||
"leftValue": "={{ $json.Email }}",
|
||||
"rightValue": ""
|
||||
},
|
||||
{
|
||||
"id": "bea4e49e-cf8a-4f05-bd6f-bdce0c5d8533",
|
||||
"operator": {
|
||||
"type": "string",
|
||||
"operation": "exists",
|
||||
"singleValue": true
|
||||
},
|
||||
"leftValue": "={{ $json.Name }}",
|
||||
"rightValue": ""
|
||||
},
|
||||
{
|
||||
"id": "e33eb064-34c6-4dea-b454-10f4fb7fe630",
|
||||
"operator": {
|
||||
"type": "string",
|
||||
"operation": "exists",
|
||||
"singleValue": true
|
||||
},
|
||||
"leftValue": "={{ $json.Date }}",
|
||||
"rightValue": ""
|
||||
},
|
||||
{
|
||||
"id": "1abe48e3-ba4d-4318-900d-fd58097d55ec",
|
||||
"operator": {
|
||||
"type": "dateTime",
|
||||
"operation": "equals"
|
||||
},
|
||||
"leftValue": "={{ DateTime.fromFormat($json[\"Date\"], 'yyyy/MM/dd').startOf('day')}}",
|
||||
"rightValue": "={{ $now.startOf('day')}}"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "27f33448-a016-4ac8-aea3-2ca267fb1628",
|
||||
"name": "Set data",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
2290,
|
||||
1090
|
||||
],
|
||||
"parameters": {
|
||||
"fields": {
|
||||
"values": [
|
||||
{
|
||||
"name": "email",
|
||||
"stringValue": "={{ $json.Email }}"
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"stringValue": "={{ $json.Name }}"
|
||||
},
|
||||
{
|
||||
"name": "ID",
|
||||
"stringValue": "={{ $json.ID }}"
|
||||
}
|
||||
]
|
||||
},
|
||||
"include": "selected",
|
||||
"options": {}
|
||||
},
|
||||
"typeVersion": 3.2
|
||||
},
|
||||
{
|
||||
"id": "badf1d45-21e0-40a5-bcc4-c434f43c04d4",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
390,
|
||||
250
|
||||
],
|
||||
"parameters": {
|
||||
"width": 922.8914139860617,
|
||||
"height": 1171.2381808131183,
|
||||
"content": "# Node Descriptions\n\n## Retrieve Customer Messages Data (Google Sheets Node ):\n**Purpose and Use Cases:**\nThe primary purpose of this node is to retrieve data from a Google Sheets document that contains information about messages to customers. This could be used in various scenarios, such as:\n\n- Compiling a list of customer contacts for outreach campaigns.\n- Gathering feedback or responses stored in a spreadsheet.\n- Automating the process of updating customer records or tracking communications.\n\n\n## Filter Items by Current Date Node:\n- **Purpose:** Filters input items based on comparison with the current date.\n- **Parameters:**\n - **JavaScript Code:** Compares item dates with the current date for filtering.\n- **Functionality:** Ensures only items with dates matching the current date are passed along.\n\n ### Note : The date format should be in this form (year/month/day) to be accepted.\n\n## Gmail Node:\n- **Purpose:** Likely sends emails using Gmail based on filtered items.\n- **Parameters:**\n - **Recipient:** Extracted from input data.\n - **Subject:** Extracted from input data.\n - **Email Content:** Extracted from input data.\n\n## Update Message Status(Google Sheets Node ):\n- **Purpose:** Updates specific columns in the Google Sheets document.\n- **Parameters:**\n - **Operation:** Update mode.\n - **Columns:** Defines which columns to update with values from input data.\n\n## Filter Status (Waiting for sending) Node:\n- **Purpose:** Filters items based on specific status criteria.\n- **Parameters:**\n - **Conditions:** Filters based on status, title, subject, email, name, and date.\n\n## Set data Node:\n- **Purpose:** Sets specified fields with extracted values from input data.\n\n## Merge feild Node:\n- **Purpose:** Merges fields from different sources based on position.\n\nFeel free to utilize these detailed descriptions to understand and enhance the workflow further.\n"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "0f1cd01b-4cf0-4998-9c51-02c2c9c4aa2b",
|
||||
"name": "Sticky Note1",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
1330,
|
||||
870
|
||||
],
|
||||
"parameters": {
|
||||
"width": 1386.7301333853884,
|
||||
"height": 539.317352764935,
|
||||
"content": "# The Workflow"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "421b47fd-4707-41ec-97e4-7256be22b75d",
|
||||
"name": "Sticky Note2",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
380,
|
||||
240
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 2358.9018586668417,
|
||||
"height": 1194.0044652590357,
|
||||
"content": "\n"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "dfb3d998-14fc-4d2a-af9e-19c7da8060f9",
|
||||
"name": "Sticky Note3",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
1330,
|
||||
255
|
||||
],
|
||||
"parameters": {
|
||||
"width": 342.9710297084147,
|
||||
"height": 601.2740375761717,
|
||||
"content": "## Copy this template to get started :\n- [Google Sheets](https://docs.google.com/spreadsheets/d/1efCCzfeUX0AETz2wsULQN90OBCOKK-gBoDaptzcBHdE/edit?usp=sharing)\n\n## Workflow Nodes Documentation:\n\n1. [Schedule Trigger](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.scheduletrigger/)\n2. [Filter Items by Current Date](https://docs.n8n.io/nodes/n8n-nodes-base.code.html)\n3. [Gmail](https://docs.n8n.io/nodes/n8n-nodes-base.gmail.html)\n4. [Google Sheets](https://docs.n8n.io/nodes/n8n-nodes-base.googleSheets.html)\n5. [Filter Status (Waiting for sending)](https://docs.n8n.io/nodes/n8n-nodes-base.filter.html)\n6. [Set data](https://docs.n8n.io/nodes/n8n-nodes-base.set.html)\n7. [Merge feild](https://docs.n8n.io/nodes/n8n-nodes-base.merge.html)\n"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "4ed5a195-fd49-465e-9a14-fa64cd96056b",
|
||||
"name": "Sticky Note4",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
1690,
|
||||
250
|
||||
],
|
||||
"parameters": {
|
||||
"width": 1024.157503378047,
|
||||
"height": 602.8437691253422,
|
||||
"content": "## Workflow Overview:\n\nThe workflow begins with the \"Google Sheets Trigger\" node, which monitors a specified Google Sheet for new row additions. Upon detection of a new row, the workflow progresses to the \"Filter Status (Waiting for sending)\" node, where items are filtered based on specific conditions.\n\nSubsequently, the workflow moves to the \"Filter Items by Current Date\" node, which filters items based on the current date. Items matching the current date are then processed further.\n\nThe filtered items are then forwarded to the \"Gmail\" node, where personalized emails are composed and sent to recipients based on the Google Sheet data. Finally, the workflow updates the Google Sheet using the \"Google Sheets\" node with the status of the sent emails and other relevant information."
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "d156f0da-53e7-499b-b652-5ca0c3c9e237",
|
||||
"name": "Schedule Trigger",
|
||||
"type": "n8n-nodes-base.scheduleTrigger",
|
||||
"position": [
|
||||
1350,
|
||||
1110
|
||||
],
|
||||
"parameters": {
|
||||
"rule": {
|
||||
"interval": [
|
||||
{
|
||||
"field": "minutes",
|
||||
"minutesInterval": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.1
|
||||
},
|
||||
{
|
||||
"id": "e398e809-b00f-4edb-af94-d236cfb80703",
|
||||
"name": "Retrieve Customer Messages Data",
|
||||
"type": "n8n-nodes-base.googleSheets",
|
||||
"position": [
|
||||
1510,
|
||||
1110
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"sheetName": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "gid=0",
|
||||
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/126qQdkEWt_4Vkxvu6G80rBeFdIp_a8ISMz-898fa2D4/edit#gid=0",
|
||||
"cachedResultName": "Page"
|
||||
},
|
||||
"documentId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "126qQdkEWt_4Vkxvu6G80rBeFdIp_a8ISMz-898fa2D4",
|
||||
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/126qQdkEWt_4Vkxvu6G80rBeFdIp_a8ISMz-898fa2D4/edit?usp=drivesdk",
|
||||
"cachedResultName": "Copy of Sending Messages to Customers"
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"googleSheetsOAuth2Api": {
|
||||
"id": "9",
|
||||
"name": "Nik's Google"
|
||||
}
|
||||
},
|
||||
"typeVersion": 4.2
|
||||
},
|
||||
{
|
||||
"id": "6de55876-3924-4fdc-aae7-b901a2ce72be",
|
||||
"name": "Update Message Status",
|
||||
"type": "n8n-nodes-base.googleSheets",
|
||||
"position": [
|
||||
2490,
|
||||
1090
|
||||
],
|
||||
"parameters": {
|
||||
"columns": {
|
||||
"value": {
|
||||
"ID": "={{ $json.ID }}",
|
||||
"Status": "Sent successfully"
|
||||
},
|
||||
"schema": [
|
||||
{
|
||||
"id": "ID",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": false,
|
||||
"required": false,
|
||||
"displayName": "ID",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "Name",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": true,
|
||||
"required": false,
|
||||
"displayName": "Name",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "Email",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": true,
|
||||
"required": false,
|
||||
"displayName": "Email",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "Date",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": true,
|
||||
"required": false,
|
||||
"displayName": "Date",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "Status",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": false,
|
||||
"required": false,
|
||||
"displayName": "Status",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "Title",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": true,
|
||||
"required": false,
|
||||
"displayName": "Title",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "Subject",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": true,
|
||||
"required": false,
|
||||
"displayName": "Subject",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "row_number",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": true,
|
||||
"readOnly": true,
|
||||
"required": false,
|
||||
"displayName": "row_number",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
}
|
||||
],
|
||||
"mappingMode": "defineBelow",
|
||||
"matchingColumns": [
|
||||
"ID"
|
||||
]
|
||||
},
|
||||
"options": {},
|
||||
"operation": "update",
|
||||
"sheetName": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "gid=0",
|
||||
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/126qQdkEWt_4Vkxvu6G80rBeFdIp_a8ISMz-898fa2D4/edit#gid=0",
|
||||
"cachedResultName": "Page"
|
||||
},
|
||||
"documentId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "126qQdkEWt_4Vkxvu6G80rBeFdIp_a8ISMz-898fa2D4",
|
||||
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/126qQdkEWt_4Vkxvu6G80rBeFdIp_a8ISMz-898fa2D4/edit?usp=drivesdk",
|
||||
"cachedResultName": "Copy of Sending Messages to Customers"
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"googleSheetsOAuth2Api": {
|
||||
"id": "9",
|
||||
"name": "Nik's Google"
|
||||
}
|
||||
},
|
||||
"typeVersion": 4.2
|
||||
},
|
||||
{
|
||||
"id": "0401bfe7-de72-407a-a7f7-70b7da52e9c9",
|
||||
"name": "Send a message (Gmail)",
|
||||
"type": "n8n-nodes-base.gmail",
|
||||
"position": [
|
||||
1900,
|
||||
980
|
||||
],
|
||||
"parameters": {
|
||||
"sendTo": "={{ $json.Email }}",
|
||||
"message": "={{ $json.Subject }}",
|
||||
"options": {},
|
||||
"subject": "={{ $json.Title }}",
|
||||
"emailType": "text"
|
||||
},
|
||||
"credentials": {
|
||||
"gmailOAuth2": {
|
||||
"id": "3",
|
||||
"name": "Gmail account"
|
||||
}
|
||||
},
|
||||
"notesInFlow": false,
|
||||
"typeVersion": 2.1,
|
||||
"alwaysOutputData": false
|
||||
},
|
||||
{
|
||||
"id": "94ff4e81-41c6-479e-bcb5-c9786935a954",
|
||||
"name": "Merge fields",
|
||||
"type": "n8n-nodes-base.merge",
|
||||
"position": [
|
||||
2110,
|
||||
1090
|
||||
],
|
||||
"parameters": {
|
||||
"mode": "combine",
|
||||
"options": {},
|
||||
"combinationMode": "mergeByPosition"
|
||||
},
|
||||
"typeVersion": 2.1
|
||||
}
|
||||
],
|
||||
"pinData": {},
|
||||
"connections": {
|
||||
"Set data": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Update Message Status",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Merge fields": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Set data",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Schedule Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Retrieve Customer Messages Data",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Send a message (Gmail)": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Merge fields",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Retrieve Customer Messages Data": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Filter Status (Waiting for sending)",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Filter Status (Waiting for sending)": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Merge fields",
|
||||
"type": "main",
|
||||
"index": 1
|
||||
},
|
||||
{
|
||||
"node": "Send a message (Gmail)",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
555
workflows/Schedule/0412_Schedule_HTTP_Update_Scheduled.json
Normal file
555
workflows/Schedule/0412_Schedule_HTTP_Update_Scheduled.json
Normal file
@@ -0,0 +1,555 @@
|
||||
{
|
||||
"meta": {
|
||||
"instanceId": "21754f977ce20b07e6fe64be3fbc663f6e6f730423d6e46c6cd2bf5b5e70a383"
|
||||
},
|
||||
"nodes": [
|
||||
{
|
||||
"id": "49a3829e-3127-4761-8ac0-edaa6d0224c2",
|
||||
"name": "HTTP Request - Utilize Prospeo.io LinkedIn Email Finder API1",
|
||||
"type": "n8n-nodes-base.httpRequest",
|
||||
"position": [
|
||||
3820,
|
||||
680
|
||||
],
|
||||
"parameters": {
|
||||
"url": "https://api.prospeo.io/linkedin-email-finder",
|
||||
"method": "POST",
|
||||
"options": {},
|
||||
"sendBody": true,
|
||||
"sendHeaders": true,
|
||||
"bodyParameters": {
|
||||
"parameters": [
|
||||
{
|
||||
"name": "url",
|
||||
"value": "={{ $json['Linkden URL'] }}"
|
||||
},
|
||||
{
|
||||
"name": "id",
|
||||
"value": "={{ $json.ID }}"
|
||||
}
|
||||
]
|
||||
},
|
||||
"headerParameters": {
|
||||
"parameters": [
|
||||
{
|
||||
"name": "X-KEY",
|
||||
"value": "43b7e4f5c6558ccaa539e0e5f5778f09"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 4.1
|
||||
},
|
||||
{
|
||||
"id": "705aef1b-5e45-4fe8-b1fd-5ebb5d461dd5",
|
||||
"name": "No Operation, do nothing",
|
||||
"type": "n8n-nodes-base.noOp",
|
||||
"position": [
|
||||
3760,
|
||||
1140
|
||||
],
|
||||
"parameters": {},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "f2b8a1b8-13b6-4de3-9cde-336494bf31dc",
|
||||
"name": "Schedule Trigger",
|
||||
"type": "n8n-nodes-base.scheduleTrigger",
|
||||
"position": [
|
||||
3140,
|
||||
940
|
||||
],
|
||||
"parameters": {
|
||||
"rule": {
|
||||
"interval": [
|
||||
{
|
||||
"field": "minutes"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.1
|
||||
},
|
||||
{
|
||||
"id": "28b1d9c4-c89e-460d-8a5b-0fea42d2d1d8",
|
||||
"name": "Sticky Note1",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
3660,
|
||||
460
|
||||
],
|
||||
"parameters": {
|
||||
"color": 4,
|
||||
"width": 468.54622634118857,
|
||||
"height": 380.67540639666913,
|
||||
"content": "- Utilized the following API: \n - [Prospeo.io LinkedIn Email Finder API](https://prospeo.io/api/linkedin-email-finder)\n\n- **Benefit:**\n - The benefit of this API is to provide an efficient way to find email addresses of users on LinkedIn, aiding in updating and enriching data more accurately and comprehensively in Google Sheets or any other system used in the workflow.\n"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "d8edc9fa-3012-46ab-9ed2-473f55213e78",
|
||||
"name": "Conditional Check",
|
||||
"type": "n8n-nodes-base.if",
|
||||
"position": [
|
||||
3520,
|
||||
940
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"conditions": {
|
||||
"options": {
|
||||
"leftValue": "",
|
||||
"caseSensitive": true,
|
||||
"typeValidation": "strict"
|
||||
},
|
||||
"combinator": "and",
|
||||
"conditions": [
|
||||
{
|
||||
"id": "2b355bc4-0ef4-415a-a437-d8ed6538c1e3",
|
||||
"operator": {
|
||||
"type": "string",
|
||||
"operation": "empty",
|
||||
"singleValue": true
|
||||
},
|
||||
"leftValue": "={{ $json.Name }}",
|
||||
"rightValue": ""
|
||||
},
|
||||
{
|
||||
"id": "1757a7d7-ce91-4df1-b54d-c9285f88e3ee",
|
||||
"operator": {
|
||||
"type": "string",
|
||||
"operation": "empty",
|
||||
"singleValue": true
|
||||
},
|
||||
"leftValue": "={{ $json.Gender }}",
|
||||
"rightValue": ""
|
||||
},
|
||||
{
|
||||
"id": "78089c18-e9d6-40e5-8d0c-e2b96c1f1348",
|
||||
"operator": {
|
||||
"type": "string",
|
||||
"operation": "empty",
|
||||
"singleValue": true
|
||||
},
|
||||
"leftValue": "={{ $json['Job Title'] }}",
|
||||
"rightValue": ""
|
||||
},
|
||||
{
|
||||
"id": "0ee10296-113d-4467-92d7-368111426cf5",
|
||||
"operator": {
|
||||
"type": "string",
|
||||
"operation": "empty",
|
||||
"singleValue": true
|
||||
},
|
||||
"leftValue": "={{ $json.Summery }}",
|
||||
"rightValue": ""
|
||||
},
|
||||
{
|
||||
"id": "2ec7486d-e753-4c87-a6df-10056c7ee4b2",
|
||||
"operator": {
|
||||
"type": "string",
|
||||
"operation": "notEmpty",
|
||||
"singleValue": true
|
||||
},
|
||||
"leftValue": "={{ $json['Linkden URL'] }}",
|
||||
"rightValue": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "bdf82dbf-7b6b-4d42-9a6a-34d5cfb691ad",
|
||||
"name": "Field Editing",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
4100,
|
||||
900
|
||||
],
|
||||
"parameters": {
|
||||
"fields": {
|
||||
"values": [
|
||||
{
|
||||
"name": "Name",
|
||||
"stringValue": "={{ $json.response.full_name }}"
|
||||
},
|
||||
{
|
||||
"name": "Gender",
|
||||
"stringValue": "={{ $json.response.gender }}"
|
||||
},
|
||||
{
|
||||
"name": "Email",
|
||||
"stringValue": "={{ $json.response.email.email }}"
|
||||
},
|
||||
{
|
||||
"name": "Summary",
|
||||
"stringValue": "={{ $json.response.summary}}"
|
||||
},
|
||||
{
|
||||
"name": "Education",
|
||||
"stringValue": "={{ $json.response.education[0].school.name }}"
|
||||
},
|
||||
{
|
||||
"name": "Skills",
|
||||
"stringValue": "={{ $json.response.skills }}"
|
||||
},
|
||||
{
|
||||
"name": "Picture",
|
||||
"stringValue": "={{ $json.response.picture }}"
|
||||
},
|
||||
{
|
||||
"name": "Job Title",
|
||||
"stringValue": "={{ $json.response.job_title }}"
|
||||
},
|
||||
{
|
||||
"name": "Location",
|
||||
"stringValue": "={{ $json.response.location.raw }}"
|
||||
},
|
||||
{
|
||||
"name": "Linkden link",
|
||||
"stringValue": "={{ $json.response.linkedin }}"
|
||||
},
|
||||
{
|
||||
"name": "ID",
|
||||
"stringValue": "={{ $json.ID }}"
|
||||
}
|
||||
]
|
||||
},
|
||||
"include": "selected",
|
||||
"options": {}
|
||||
},
|
||||
"typeVersion": 3.2
|
||||
},
|
||||
{
|
||||
"id": "897734e2-5d05-4480-a24b-e4b3ae44dce6",
|
||||
"name": "Data Merge",
|
||||
"type": "n8n-nodes-base.merge",
|
||||
"position": [
|
||||
3860,
|
||||
900
|
||||
],
|
||||
"parameters": {
|
||||
"mode": "combine",
|
||||
"options": {},
|
||||
"combinationMode": "mergeByPosition"
|
||||
},
|
||||
"typeVersion": 2.1
|
||||
},
|
||||
{
|
||||
"id": "92a9861d-9e42-4fe2-84a7-03b3b0dbb1b0",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
2300,
|
||||
520
|
||||
],
|
||||
"parameters": {
|
||||
"color": 5,
|
||||
"width": 803.4846614963799,
|
||||
"height": 938.2393052135303,
|
||||
"content": "\n- **Schedule Trigger:**\n - Description: This node triggers the workflow based on a defined schedule interval, in this case, based on minutes.\n - Documentation: [Schedule Trigger Node](https://docs.n8n.io/nodes/n8n-nodes-base.scheduleTrigger)\n\n- **Google Sheets Read:**\n - Description: This node reads data from a Google Sheets document and sheet based on the provided document ID and sheet name.\n - Documentation: [Google Sheets Node](https://docs.n8n.io/nodes/n8n-nodes-base.googleSheets)\n\n- **Conditional Check:**\n - Description: This node checks multiple conditions based on the input data and performs further actions based on the conditions.\n - Documentation: [Conditional Node](https://docs.n8n.io/nodes/n8n-nodes-base.if)\n\n- **HTTP Request:**\n - Description: This node sends an HTTP POST request to a specified URL with the provided headers and body parameters.\n - Documentation: [HTTP Request Node](https://docs.n8n.io/nodes/n8n-nodes-base.httpRequest)\n\n- **No Operation, do nothing:**\n - Description: This node does not perform any operation and is used as a placeholder.\n - Documentation: [No Operation Node](https://docs.n8n.io/nodes/n8n-nodes-base.noOp)\n\n\n- **Data Merge:**\n - Description: This node merges data based on the specified mode and combination settings to combine multiple fields into a single object.\n - Documentation: [Merge Node](https://docs.n8n.io/nodes/n8n-nodes-base.merge)\n\n- **Field Editing:**\n - Description: This node edits fields by setting specific values for each field based on the provided input data.\n - Documentation: [Set Node](https://docs.n8n.io/nodes/n8n-nodes-base.set)\n\n\n- **Google Sheets Update:**\n - Description: This node updates data in a Google Sheets document and sheet based on the specified columns and values.\n - Documentation: [Google Sheets Node](https://docs.n8n.io/nodes/n8n-nodes-base.googleSheets)\n\n"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "644f38d3-ccf0-4ce3-b759-e129e1074512",
|
||||
"name": "Sticky Note2",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
2260,
|
||||
240
|
||||
],
|
||||
"parameters": {
|
||||
"width": 2292.975584892399,
|
||||
"height": 1214.0709576942727,
|
||||
"content": "## Find contact information for linkedin profile URLs stored in a Google Sheet\n**Video link.** [Guide](https://www.canva.com/design/DAF9a_UBxWY/xSSlSUzRdxCPtfgx9RzGSg/watch?utm_content=DAF9a_UBxWY&utm_campaign=designshare&utm_medium=link&utm_source=editor)"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "8ddaddad-b976-46c5-b8a1-e49ecb493e87",
|
||||
"name": "Get links from Google Sheet",
|
||||
"type": "n8n-nodes-base.googleSheets",
|
||||
"position": [
|
||||
3340,
|
||||
940
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"sheetName": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "gid=0",
|
||||
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1ochnGSCy8V5Mz-nr51dBmugqR50m62K7d6pvbwOHewo/edit#gid=0",
|
||||
"cachedResultName": "الورقة1"
|
||||
},
|
||||
"documentId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "1ochnGSCy8V5Mz-nr51dBmugqR50m62K7d6pvbwOHewo",
|
||||
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1ochnGSCy8V5Mz-nr51dBmugqR50m62K7d6pvbwOHewo/edit?usp=drivesdk",
|
||||
"cachedResultName": "linkden URls"
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"googleSheetsOAuth2Api": {
|
||||
"id": "L5CnisK8R3BgVGcO",
|
||||
"name": "Omar sheet"
|
||||
}
|
||||
},
|
||||
"typeVersion": 4.2
|
||||
},
|
||||
{
|
||||
"id": "0923a13d-1097-432d-b22e-375fec9f383e",
|
||||
"name": "Update the sheet with information",
|
||||
"type": "n8n-nodes-base.googleSheets",
|
||||
"position": [
|
||||
4320,
|
||||
900
|
||||
],
|
||||
"parameters": {
|
||||
"columns": {
|
||||
"value": {
|
||||
"ID": "={{ $json.ID }}",
|
||||
"Name": "={{ $json.Name }}",
|
||||
"Email": "={{ $json.Email }}",
|
||||
"Gender": "={{ $json.Gender }}",
|
||||
"Skills": "={{ $json.Skills }}",
|
||||
"Picture": "={{ $json.Picture }}",
|
||||
"Summery": "={{ $json.Summary }}",
|
||||
"Location": "={{ $json.Location }}",
|
||||
"Education": "={{ $json.Education }}",
|
||||
"Job Title": "={{ $json['Job Title'] }}"
|
||||
},
|
||||
"schema": [
|
||||
{
|
||||
"id": "ID",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": false,
|
||||
"required": false,
|
||||
"displayName": "ID",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "Linkden URL",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": true,
|
||||
"required": false,
|
||||
"displayName": "Linkden URL",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "Name",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "Name",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "Gender",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "Gender",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "Email",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "Email",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "Education",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": false,
|
||||
"required": false,
|
||||
"displayName": "Education",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "Location",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": false,
|
||||
"required": false,
|
||||
"displayName": "Location",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "Job Title",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "Job Title",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "Summery",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "Summery",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "Skills",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": false,
|
||||
"required": false,
|
||||
"displayName": "Skills",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "Picture",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": false,
|
||||
"required": false,
|
||||
"displayName": "Picture",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "row_number",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": true,
|
||||
"readOnly": true,
|
||||
"required": false,
|
||||
"displayName": "row_number",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
}
|
||||
],
|
||||
"mappingMode": "defineBelow",
|
||||
"matchingColumns": [
|
||||
"ID"
|
||||
]
|
||||
},
|
||||
"options": {},
|
||||
"operation": "update",
|
||||
"sheetName": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "gid=0",
|
||||
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1ochnGSCy8V5Mz-nr51dBmugqR50m62K7d6pvbwOHewo/edit#gid=0",
|
||||
"cachedResultName": "الورقة1"
|
||||
},
|
||||
"documentId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "1ochnGSCy8V5Mz-nr51dBmugqR50m62K7d6pvbwOHewo",
|
||||
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1ochnGSCy8V5Mz-nr51dBmugqR50m62K7d6pvbwOHewo/edit?usp=drivesdk",
|
||||
"cachedResultName": "linkden URls"
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"googleSheetsOAuth2Api": {
|
||||
"id": "L5CnisK8R3BgVGcO",
|
||||
"name": "Omar sheet"
|
||||
}
|
||||
},
|
||||
"typeVersion": 4.2
|
||||
}
|
||||
],
|
||||
"pinData": {},
|
||||
"connections": {
|
||||
"Data Merge": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Field Editing",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Field Editing": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Update the sheet with information",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Schedule Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Get links from Google Sheet",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Conditional Check": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Data Merge",
|
||||
"type": "main",
|
||||
"index": 1
|
||||
},
|
||||
{
|
||||
"node": "HTTP Request - Utilize Prospeo.io LinkedIn Email Finder API1",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"node": "No Operation, do nothing",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Get links from Google Sheet": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Conditional Check",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"HTTP Request - Utilize Prospeo.io LinkedIn Email Finder API1": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Data Merge",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
233
workflows/Schedule/0417_Schedule_Gmail_Send_Scheduled.json
Normal file
233
workflows/Schedule/0417_Schedule_Gmail_Send_Scheduled.json
Normal file
@@ -0,0 +1,233 @@
|
||||
{
|
||||
"meta": {
|
||||
"instanceId": "257476b1ef58bf3cb6a46e65fac7ee34a53a5e1a8492d5c6e4da5f87c9b82833",
|
||||
"templateId": "2112"
|
||||
},
|
||||
"nodes": [
|
||||
{
|
||||
"id": "99d9377f-263b-4deb-8450-6f9ca17d77c7",
|
||||
"name": "Send outreach email",
|
||||
"type": "n8n-nodes-base.gmail",
|
||||
"position": [
|
||||
1420,
|
||||
320
|
||||
],
|
||||
"parameters": {
|
||||
"sendTo": "={{ $json.properties.email }}",
|
||||
"message": "={{ $json.html }}",
|
||||
"options": {
|
||||
"senderName": "Mutasem from n8n",
|
||||
"appendAttribution": false
|
||||
},
|
||||
"subject": "={{ $json.subject }}"
|
||||
},
|
||||
"typeVersion": 2.1
|
||||
},
|
||||
{
|
||||
"id": "aa2d7d84-66e1-4df3-9244-9a9182cd2eb7",
|
||||
"name": "Get uncontacted HubSpot contacts",
|
||||
"type": "n8n-nodes-base.hubspot",
|
||||
"position": [
|
||||
960,
|
||||
540
|
||||
],
|
||||
"parameters": {
|
||||
"operation": "search",
|
||||
"authentication": "oAuth2",
|
||||
"filterGroupsUi": {
|
||||
"filterGroupsValues": [
|
||||
{
|
||||
"filtersUi": {
|
||||
"filterValues": [
|
||||
{
|
||||
"operator": "NOT_HAS_PROPERTY",
|
||||
"propertyName": "notes_last_contacted|datetime"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"additionalFields": {}
|
||||
},
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "cecf3de5-43d8-4d63-a557-adbd1d7d0e81",
|
||||
"name": "Every day at 9 am",
|
||||
"type": "n8n-nodes-base.scheduleTrigger",
|
||||
"position": [
|
||||
460,
|
||||
540
|
||||
],
|
||||
"parameters": {
|
||||
"rule": {
|
||||
"interval": [
|
||||
{
|
||||
"triggerAtHour": 9
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.1
|
||||
},
|
||||
{
|
||||
"id": "faa91fac-7a22-440d-8575-a9f6ef858641",
|
||||
"name": "Sticky Note2",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
820,
|
||||
240
|
||||
],
|
||||
"parameters": {
|
||||
"width": 348.2877732355713,
|
||||
"height": 526.4585335073351,
|
||||
"content": "## Search for all contacts that last contact date for is unknown\n\n1. Setup Oauth2 creds using n8n docs\nhttps://docs.n8n.io/integrations/builtin/trigger-nodes/n8n-nodes-base.hubspottrigger/\n\n### Be careful with scopes. Scopes must be exactly as defined in the n8n docs"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "edf7e39d-efc7-405c-a610-0b098f86de07",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
1380,
|
||||
560
|
||||
],
|
||||
"parameters": {
|
||||
"color": 3,
|
||||
"width": 289.74216745960825,
|
||||
"height": 402.1775107197669,
|
||||
"content": "## Record outreach in Hubspot\n\nOnce outreach is added, last contact date is updated and won't be contacted again\n"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "07dc70c8-bf11-4dbd-9f99-1dad8d233e70",
|
||||
"name": "Set keys",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
1200,
|
||||
540
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"assignments": {
|
||||
"assignments": [
|
||||
{
|
||||
"id": "f3ecc873-2d60-4f2d-bc40-81f9379c725b",
|
||||
"name": "html",
|
||||
"type": "string",
|
||||
"value": "=Hey {{ $json.properties.firstname }},\n\nI'm with n8n, and we work with organizations like yours to empower you to automate away boring and difficult tasks with ease.\n\nCan you point me towards the right person on your team to chat with about this?\n\nCheers,\n\nMutasem"
|
||||
},
|
||||
{
|
||||
"id": "9f4f5b68-984b-415e-a110-a35ded22dd41",
|
||||
"name": "subject",
|
||||
"type": "string",
|
||||
"value": "Why n8n?"
|
||||
},
|
||||
{
|
||||
"id": "5362aa67-f3fa-4a6e-b6e8-4c50cc7a3192",
|
||||
"name": "to",
|
||||
"type": "string",
|
||||
"value": "={{ $json.properties.email }}"
|
||||
},
|
||||
{
|
||||
"id": "5b11e503-868d-4fca-bb44-59bb44d597a8",
|
||||
"name": "id",
|
||||
"type": "string",
|
||||
"value": "={{ $json.id }}"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 3.3
|
||||
},
|
||||
{
|
||||
"id": "506b5b31-8aec-4f74-b194-474c9b09c3f1",
|
||||
"name": "Sticky Note1",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
380,
|
||||
240
|
||||
],
|
||||
"parameters": {
|
||||
"color": 5,
|
||||
"width": 407.25356360335365,
|
||||
"height": 242.51175804432177,
|
||||
"content": "## Send outreach/cold email using Gmail to new Hubspot contacts\n\nThis workflow uses Gmail to send outreach emails to Hubspot contacts that have yet to contacted (usually unknown contacts), and records the engagement in Hubspot. "
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "89afc291-e706-4930-bee7-114d556b4c59",
|
||||
"name": "Record engagement in HubSpot",
|
||||
"type": "n8n-nodes-base.hubspot",
|
||||
"position": [
|
||||
1460,
|
||||
760
|
||||
],
|
||||
"parameters": {
|
||||
"type": "email",
|
||||
"metadata": {
|
||||
"html": "={{ $json.html }}",
|
||||
"subject": "={{ $json.subject }}",
|
||||
"toEmail": [
|
||||
"={{ $json.to }}"
|
||||
],
|
||||
"firstName": "Mutasem",
|
||||
"fromEmail": "mutasem@n8n.io"
|
||||
},
|
||||
"resource": "engagement",
|
||||
"authentication": "oAuth2",
|
||||
"additionalFields": {
|
||||
"associations": {
|
||||
"contactIds": "={{ $json.id }}"
|
||||
}
|
||||
}
|
||||
},
|
||||
"typeVersion": 2
|
||||
}
|
||||
],
|
||||
"pinData": {},
|
||||
"connections": {
|
||||
"Set keys": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Send outreach email",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
},
|
||||
{
|
||||
"node": "Record engagement in HubSpot",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Every day at 9 am": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Get uncontacted HubSpot contacts",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Get uncontacted HubSpot contacts": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Set keys",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
391
workflows/Schedule/0422_Schedule_HTTP_Send_Webhook.json
Normal file
391
workflows/Schedule/0422_Schedule_HTTP_Send_Webhook.json
Normal file
@@ -0,0 +1,391 @@
|
||||
{
|
||||
"nodes": [
|
||||
{
|
||||
"id": "3a0ba7f4-ac41-49b0-a055-b993c82f2680",
|
||||
"name": "Every day at 9 am",
|
||||
"type": "n8n-nodes-base.scheduleTrigger",
|
||||
"position": [
|
||||
340,
|
||||
1280
|
||||
],
|
||||
"parameters": {
|
||||
"rule": {
|
||||
"interval": [
|
||||
{
|
||||
"triggerAtHour": 9
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.1
|
||||
},
|
||||
{
|
||||
"id": "5fa47f36-3206-44b9-965a-0d27b10acc21",
|
||||
"name": "Sticky Note2",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
740,
|
||||
980
|
||||
],
|
||||
"parameters": {
|
||||
"width": 348.2877732355713,
|
||||
"height": 595.2986206729652,
|
||||
"content": "## Search for all contacts that last contact date for is known\n\n1. Setup Oauth2 creds using n8n docs\nhttps://docs.n8n.io/integrations/builtin/trigger-nodes/n8n-nodes-base.hubspottrigger/\n\n### Be careful with scopes. Scopes must be exactly as defined in the n8n docs\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n### To make this more effective, we sort ascending by last contact date."
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "16b6fadf-ff1d-4670-b148-151cfbd242d5",
|
||||
"name": "Send outreach email",
|
||||
"type": "n8n-nodes-base.gmail",
|
||||
"position": [
|
||||
2040,
|
||||
1060
|
||||
],
|
||||
"parameters": {
|
||||
"sendTo": "={{ $json.to }}",
|
||||
"message": "={{ $json.html }}",
|
||||
"options": {
|
||||
"senderName": "Mutasem from n8n",
|
||||
"appendAttribution": false
|
||||
},
|
||||
"subject": "={{ $json.subject }}"
|
||||
},
|
||||
"credentials": {
|
||||
"gmailOAuth2": {
|
||||
"id": "rd2agqPeJBD2377h",
|
||||
"name": "Work Gmail"
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.1
|
||||
},
|
||||
{
|
||||
"id": "a89ec3bd-7bb0-4dde-a9eb-800842073fc9",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
2000,
|
||||
1300
|
||||
],
|
||||
"parameters": {
|
||||
"color": 3,
|
||||
"width": 289.74216745960825,
|
||||
"height": 402.1775107197669,
|
||||
"content": "## Record engagement in Hubspot\n\nOnce engagement is added, last contact date is updated and won't show up in search results for another month.\n"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "687509ed-4d25-4597-bade-1802348e42c9",
|
||||
"name": "Sticky Note1",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
260,
|
||||
980
|
||||
],
|
||||
"parameters": {
|
||||
"color": 5,
|
||||
"width": 407.25356360335365,
|
||||
"height": 242.51175804432177,
|
||||
"content": "## Send followup email using Gmail to Hubspot contacts \n\nFollowing up at the right time is one of the most important parts of sales. This workflow uses Gmail to send outreach emails to Hubspot contacts that have already been contacted only once more than a month ago, and records the engagement in Hubspot. "
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "e66f48c9-0e19-4089-a4a4-d9e87b56898a",
|
||||
"name": "Record engagement in HubSpot",
|
||||
"type": "n8n-nodes-base.hubspot",
|
||||
"position": [
|
||||
2080,
|
||||
1500
|
||||
],
|
||||
"parameters": {
|
||||
"type": "email",
|
||||
"metadata": {
|
||||
"html": "={{ $json.html }}",
|
||||
"subject": "={{ $json.subject }}",
|
||||
"toEmail": [
|
||||
"={{ $json.to }}"
|
||||
],
|
||||
"firstName": "Mutasem",
|
||||
"fromEmail": "mutasem@n8n.io"
|
||||
},
|
||||
"resource": "engagement",
|
||||
"authentication": "oAuth2",
|
||||
"additionalFields": {
|
||||
"associations": {
|
||||
"contactIds": "={{ $json.id }}"
|
||||
}
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"hubspotOAuth2Api": {
|
||||
"id": "Gxwfj6z9NwaEC3P5",
|
||||
"name": "HubSpot account 3"
|
||||
}
|
||||
},
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "f90770cf-aa6c-4148-b471-2b28ed978f72",
|
||||
"name": "Get previously HubSpot contacts",
|
||||
"type": "n8n-nodes-base.hubspot",
|
||||
"position": [
|
||||
840,
|
||||
1280
|
||||
],
|
||||
"parameters": {
|
||||
"operation": "search",
|
||||
"authentication": "oAuth2",
|
||||
"filterGroupsUi": {
|
||||
"filterGroupsValues": [
|
||||
{
|
||||
"filtersUi": {
|
||||
"filterValues": [
|
||||
{
|
||||
"operator": "HAS_PROPERTY",
|
||||
"propertyName": "notes_last_contacted|datetime"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"additionalFields": {
|
||||
"sortBy": "notes_last_contacted",
|
||||
"direction": "ASCENDING",
|
||||
"properties": [
|
||||
"firstname",
|
||||
"lastname",
|
||||
"email",
|
||||
"notes_last_contacted"
|
||||
]
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"hubspotOAuth2Api": {
|
||||
"id": "Gxwfj6z9NwaEC3P5",
|
||||
"name": "HubSpot account 3"
|
||||
}
|
||||
},
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "751fd345-9fec-4c7c-b20b-1db86ce6df10",
|
||||
"name": "if last contacted before a month",
|
||||
"type": "n8n-nodes-base.if",
|
||||
"position": [
|
||||
1120,
|
||||
1280
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"conditions": {
|
||||
"options": {
|
||||
"leftValue": "",
|
||||
"caseSensitive": true,
|
||||
"typeValidation": "strict"
|
||||
},
|
||||
"combinator": "and",
|
||||
"conditions": [
|
||||
{
|
||||
"id": "8d9ad7ef-6e1a-486c-9fac-419ad2660ace",
|
||||
"operator": {
|
||||
"type": "dateTime",
|
||||
"operation": "before"
|
||||
},
|
||||
"leftValue": "={{ $json.properties.notes_last_contacted }}",
|
||||
"rightValue": "={{ DateTime.now().minus({days: 30}) }}"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "52596987-ef7f-4dd7-98e7-6c3aaf6c2853",
|
||||
"name": "Get Hubspot Contact to engagement",
|
||||
"type": "n8n-nodes-base.httpRequest",
|
||||
"position": [
|
||||
1340,
|
||||
1280
|
||||
],
|
||||
"parameters": {
|
||||
"url": "=https://api.hubapi.com/crm-associations/v1/associations/{{ $json.id }}/HUBSPOT_DEFINED/9",
|
||||
"options": {},
|
||||
"authentication": "predefinedCredentialType",
|
||||
"nodeCredentialType": "hubspotOAuth2Api"
|
||||
},
|
||||
"credentials": {
|
||||
"hubspotOAuth2Api": {
|
||||
"id": "Gxwfj6z9NwaEC3P5",
|
||||
"name": "HubSpot account 3"
|
||||
}
|
||||
},
|
||||
"typeVersion": 4.1
|
||||
},
|
||||
{
|
||||
"id": "fe0bc120-8bee-41fa-a896-3c9ff8cf3a29",
|
||||
"name": "if there has been only one engagement",
|
||||
"type": "n8n-nodes-base.if",
|
||||
"position": [
|
||||
1560,
|
||||
1280
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"conditions": {
|
||||
"options": {
|
||||
"leftValue": "",
|
||||
"caseSensitive": true,
|
||||
"typeValidation": "strict"
|
||||
},
|
||||
"combinator": "and",
|
||||
"conditions": [
|
||||
{
|
||||
"id": "07c7e29c-eed1-4872-a9f7-b833bb0cafca",
|
||||
"operator": {
|
||||
"type": "number",
|
||||
"operation": "equals"
|
||||
},
|
||||
"leftValue": "={{ $json.results.length }}",
|
||||
"rightValue": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "512909c7-104b-4507-b91e-aa5b5a9410e5",
|
||||
"name": "Set email keys",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
1820,
|
||||
1280
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"assignments": {
|
||||
"assignments": [
|
||||
{
|
||||
"id": "f3ecc873-2d60-4f2d-bc40-81f9379c725b",
|
||||
"name": "html",
|
||||
"type": "string",
|
||||
"value": "=Hey {{ $json.properties.firstname }},\n\nJust want to follow up on my previous email, since I have not \n heard from you. Have you had the chance to consider n8n? \n\nCheers,\n\nMutasem"
|
||||
},
|
||||
{
|
||||
"id": "9f4f5b68-984b-415e-a110-a35ded22dd41",
|
||||
"name": "subject",
|
||||
"type": "string",
|
||||
"value": "Follow up on n8n"
|
||||
},
|
||||
{
|
||||
"id": "5362aa67-f3fa-4a6e-b6e8-4c50cc7a3192",
|
||||
"name": "to",
|
||||
"type": "string",
|
||||
"value": "={{ $('Get previously HubSpot contacts').item.json.properties.email }}"
|
||||
},
|
||||
{
|
||||
"id": "5b11e503-868d-4fca-bb44-59bb44d597a8",
|
||||
"name": "id",
|
||||
"type": "string",
|
||||
"value": "={{ $('Get previously HubSpot contacts').item.json.id }}"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 3.3
|
||||
},
|
||||
{
|
||||
"id": "c0e5472d-5208-4df7-89e8-380c2dab9642",
|
||||
"name": "Sticky Note3",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
1300,
|
||||
1060
|
||||
],
|
||||
"parameters": {
|
||||
"color": 4,
|
||||
"width": 490.3275896931988,
|
||||
"height": 496.3776986502359,
|
||||
"content": "## Get pervious engagements. Avoid sending follow ups if first eng\n\n### Here we simply follow up if there has only been outreach email before.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n### We could the engagements here and their types and perform more advanced filtering. "
|
||||
},
|
||||
"typeVersion": 1
|
||||
}
|
||||
],
|
||||
"pinData": {},
|
||||
"connections": {
|
||||
"Set email keys": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Record engagement in HubSpot",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
},
|
||||
{
|
||||
"node": "Send outreach email",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Every day at 9 am": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Get previously HubSpot contacts",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Get previously HubSpot contacts": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "if last contacted before a month",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"if last contacted before a month": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Get Hubspot Contact to engagement",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Get Hubspot Contact to engagement": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "if there has been only one engagement",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"if there has been only one engagement": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Set email keys",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
210
workflows/Schedule/0432_Schedule_Filter_Create_Scheduled.json
Normal file
210
workflows/Schedule/0432_Schedule_Filter_Create_Scheduled.json
Normal file
@@ -0,0 +1,210 @@
|
||||
{
|
||||
"meta": {
|
||||
"instanceId": "70aa73f4d8fa35284109864e170a85d0977ad8121a6294c5c305fbaee0d9e028"
|
||||
},
|
||||
"nodes": [
|
||||
{
|
||||
"id": "8b2dad6b-9771-4351-bddc-819746cb04c1",
|
||||
"name": "Get leads created last 5 minutes",
|
||||
"type": "n8n-nodes-base.hubspot",
|
||||
"position": [
|
||||
160,
|
||||
500
|
||||
],
|
||||
"parameters": {
|
||||
"resource": "company",
|
||||
"operation": "getRecentlyCreatedUpdated",
|
||||
"returnAll": true,
|
||||
"authentication": "oAuth2",
|
||||
"additionalFields": {
|
||||
"since": "={{ $now.minus({ \"minutes\": 5 }) }}"
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"hubspotOAuth2Api": {
|
||||
"id": "KTv7XIF0qMaGfg8O",
|
||||
"name": "HubSpot account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "63db576a-6bb7-4215-88f3-98e304081b3e",
|
||||
"name": "Notify sales rep",
|
||||
"type": "n8n-nodes-base.slack",
|
||||
"position": [
|
||||
700,
|
||||
500
|
||||
],
|
||||
"parameters": {
|
||||
"text": "=New high-quality lead 🤑\n*Company Name*: {{ $json.properties.name.value }} \n*Website*: {{ $json.properties.website.value }}\n*Revenue*: {{ $json.properties.annualrevenue.value }}\n*Number of employees*: {{ $json.properties.numberofemployees.value }}",
|
||||
"user": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "U0361884CU9",
|
||||
"cachedResultName": "ricardo"
|
||||
},
|
||||
"select": "user",
|
||||
"otherOptions": {},
|
||||
"authentication": "oAuth2"
|
||||
},
|
||||
"credentials": {
|
||||
"slackOAuth2Api": {
|
||||
"id": "wpCG1E4YH2xiwWxK",
|
||||
"name": "Slack account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.1
|
||||
},
|
||||
{
|
||||
"id": "2b12fb75-ec81-4d2c-a8bb-12ff2bb7e935",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
-420,
|
||||
460
|
||||
],
|
||||
"parameters": {
|
||||
"width": 257.64008049230523,
|
||||
"height": 176.97404402400312,
|
||||
"content": "## Setup\n1. Add `Hubspot` and `Slack` credentials.\n2. Adjust polling time.\n3. Enable the workflow."
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "5c4235de-c7fe-43fc-a351-69e928ba2673",
|
||||
"name": "Trigger every 5 minutes",
|
||||
"type": "n8n-nodes-base.scheduleTrigger",
|
||||
"position": [
|
||||
-100,
|
||||
500
|
||||
],
|
||||
"parameters": {
|
||||
"rule": {
|
||||
"interval": [
|
||||
{
|
||||
"field": "minutes"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.1
|
||||
},
|
||||
{
|
||||
"id": "7af59e19-893a-477a-ba21-4c1c151ffea4",
|
||||
"name": "Sticky Note4",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
100,
|
||||
400
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 225.41119920533646,
|
||||
"height": 282.2830454675093,
|
||||
"content": "`Since` parameter should match the polling time."
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "123ad2e5-f4f2-4411-bf03-5668124b8757",
|
||||
"name": "Sticky Note5",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
380,
|
||||
400
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 223.7628185364029,
|
||||
"height": 276.3308728978709,
|
||||
"content": "Adjust condition to filter leads by your desire condition. e.g, revenue, number of employees, etc."
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "4263cd25-dcf3-4521-b716-0ce48d3b2c26",
|
||||
"name": "Keep the ones that make more than $5M in revenue",
|
||||
"type": "n8n-nodes-base.filter",
|
||||
"position": [
|
||||
440,
|
||||
500
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"conditions": {
|
||||
"options": {
|
||||
"leftValue": "",
|
||||
"caseSensitive": true,
|
||||
"typeValidation": "strict"
|
||||
},
|
||||
"combinator": "and",
|
||||
"conditions": [
|
||||
{
|
||||
"id": "1b31b826-e87d-425f-a65d-370b4b20f7e1",
|
||||
"operator": {
|
||||
"type": "number",
|
||||
"operation": "gt"
|
||||
},
|
||||
"leftValue": "={{ $json.properties.annualrevenue.value.toInt() }}",
|
||||
"rightValue": 5000000
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "ba1a4a6c-a734-45c7-bb05-df0810a2253b",
|
||||
"name": "Sticky Note6",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
640,
|
||||
400
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 223.7628185364029,
|
||||
"height": 276.3308728978709,
|
||||
"content": "Send notification to slack with the desired information."
|
||||
},
|
||||
"typeVersion": 1
|
||||
}
|
||||
],
|
||||
"pinData": {},
|
||||
"connections": {
|
||||
"Trigger every 5 minutes": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Get leads created last 5 minutes",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Get leads created last 5 minutes": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Keep the ones that make more than $5M in revenue",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Keep the ones that make more than $5M in revenue": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Notify sales rep",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,261 @@
|
||||
{
|
||||
"nodes": [
|
||||
{
|
||||
"id": "b1afd02d-6edf-4540-bf32-09d87cb8a27b",
|
||||
"name": "Sticky Note3",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
320,
|
||||
220
|
||||
],
|
||||
"parameters": {
|
||||
"color": 5,
|
||||
"width": 379,
|
||||
"height": 80,
|
||||
"content": "### 👨🎤 Setup\n1. Add your Gmail creds"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "3481e6c3-7706-4c7f-8ca6-c96f76d82021",
|
||||
"name": "At midnight every work day",
|
||||
"type": "n8n-nodes-base.scheduleTrigger",
|
||||
"position": [
|
||||
400,
|
||||
340
|
||||
],
|
||||
"parameters": {
|
||||
"rule": {
|
||||
"interval": [
|
||||
{
|
||||
"field": "cronExpression",
|
||||
"expression": "0 0 * * 1-5"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "3c74e4fd-e919-4acb-8092-658f2e71513b",
|
||||
"name": "Sticky Note2",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
380,
|
||||
520
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 202,
|
||||
"height": 100,
|
||||
"content": "👆 Set your schedule. I use this for work emails. For personal emails, I run this daily."
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "de421702-d012-4ea1-826e-1a4756ff4856",
|
||||
"name": "Get all emails in the last day",
|
||||
"type": "n8n-nodes-base.gmail",
|
||||
"position": [
|
||||
620,
|
||||
340
|
||||
],
|
||||
"parameters": {
|
||||
"filters": {
|
||||
"q": "label:inbox",
|
||||
"receivedBefore": "={{ $now.minus({days: 1}) }}"
|
||||
},
|
||||
"resource": "thread",
|
||||
"returnAll": true
|
||||
},
|
||||
"credentials": {
|
||||
"gmailOAuth2": {
|
||||
"id": "8",
|
||||
"name": "Work Gmail account"
|
||||
}
|
||||
},
|
||||
"retryOnFail": true,
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "ef43b756-5f9c-4c8d-830a-8ccb71562618",
|
||||
"name": "Get the thread of each email",
|
||||
"type": "n8n-nodes-base.gmail",
|
||||
"position": [
|
||||
840,
|
||||
340
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"resource": "thread",
|
||||
"threadId": "={{ $json.id }}",
|
||||
"operation": "get"
|
||||
},
|
||||
"credentials": {
|
||||
"gmailOAuth2": {
|
||||
"id": "8",
|
||||
"name": "Work Gmail account"
|
||||
}
|
||||
},
|
||||
"retryOnFail": true,
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "bfc3b7e1-651a-4eb5-8882-b21d120d982b",
|
||||
"name": "Keep only starred emails in inbox",
|
||||
"type": "n8n-nodes-base.filter",
|
||||
"position": [
|
||||
1060,
|
||||
340
|
||||
],
|
||||
"parameters": {
|
||||
"conditions": {
|
||||
"boolean": [
|
||||
{
|
||||
"value1": "={{ JSON.stringify($json.messages).includes('STARRED') }}"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "3d8145dc-577d-4e9b-83a7-fdf06afa1b96",
|
||||
"name": "for each message in the thread",
|
||||
"type": "n8n-nodes-base.itemLists",
|
||||
"position": [
|
||||
1480,
|
||||
520
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"fieldToSplitOut": "messages"
|
||||
},
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "1a9083a8-ffd2-403e-bf53-9b9eee87ff5b",
|
||||
"name": "Archive message (remove from inbox)",
|
||||
"type": "n8n-nodes-base.gmail",
|
||||
"position": [
|
||||
1700,
|
||||
520
|
||||
],
|
||||
"parameters": {
|
||||
"labelIds": "=INBOX",
|
||||
"messageId": "={{ $json.id }}",
|
||||
"operation": "removeLabels"
|
||||
},
|
||||
"credentials": {
|
||||
"gmailOAuth2": {
|
||||
"id": "8",
|
||||
"name": "Work Gmail account"
|
||||
}
|
||||
},
|
||||
"retryOnFail": true,
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "c51240d0-88cb-461b-82ba-929a2d8a9dde",
|
||||
"name": "Archive thread (remove from inbox)",
|
||||
"type": "n8n-nodes-base.gmail",
|
||||
"position": [
|
||||
1340,
|
||||
300
|
||||
],
|
||||
"parameters": {
|
||||
"labelIds": "=INBOX",
|
||||
"resource": "thread",
|
||||
"threadId": "={{ $json.id }}",
|
||||
"operation": "removeLabels"
|
||||
},
|
||||
"credentials": {
|
||||
"gmailOAuth2": {
|
||||
"id": "8",
|
||||
"name": "Work Gmail account"
|
||||
}
|
||||
},
|
||||
"retryOnFail": true,
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "3ca7074f-c912-456c-92e4-08cac8833471",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
1060,
|
||||
520
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 202,
|
||||
"height": 100,
|
||||
"content": "⭐ Keep starred emails in inbox.. Archive everything else!"
|
||||
},
|
||||
"typeVersion": 1
|
||||
}
|
||||
],
|
||||
"pinData": {},
|
||||
"connections": {
|
||||
"At midnight every work day": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Get all emails in the last day",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Get the thread of each email": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Keep only starred emails in inbox",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Get all emails in the last day": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Get the thread of each email",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"for each message in the thread": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Archive message (remove from inbox)",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Keep only starred emails in inbox": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Archive thread (remove from inbox)",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
},
|
||||
{
|
||||
"node": "for each message in the thread",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
414
workflows/Schedule/0448_Schedule_HTTP_Create_Webhook.json
Normal file
414
workflows/Schedule/0448_Schedule_HTTP_Create_Webhook.json
Normal file
@@ -0,0 +1,414 @@
|
||||
{
|
||||
"nodes": [
|
||||
{
|
||||
"id": "2c3549c1-99c1-4255-a02d-2f454e6ced5e",
|
||||
"name": "Every 15 minutes",
|
||||
"type": "n8n-nodes-base.scheduleTrigger",
|
||||
"position": [
|
||||
560,
|
||||
340
|
||||
],
|
||||
"parameters": {
|
||||
"rule": {
|
||||
"interval": [
|
||||
{
|
||||
"field": "minutes",
|
||||
"minutesInterval": 15
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.1
|
||||
},
|
||||
{
|
||||
"id": "3380272e-5631-44aa-b7da-5e23e0966978",
|
||||
"name": "Get all workflows with tag",
|
||||
"type": "n8n-nodes-base.n8n",
|
||||
"position": [
|
||||
780,
|
||||
340
|
||||
],
|
||||
"parameters": {
|
||||
"filters": {
|
||||
"tags": "sync-to-notion"
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"n8nApi": {
|
||||
"id": "230",
|
||||
"name": "n8n admin account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "d702f13e-8e93-4142-87c7-49fbb6031e19",
|
||||
"name": "Set fields",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
1000,
|
||||
340
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"assignments": {
|
||||
"assignments": [
|
||||
{
|
||||
"id": "1744510d-7ed7-46d8-acd3-f975ab73f298",
|
||||
"name": "active",
|
||||
"type": "boolean",
|
||||
"value": "={{ $json.active }}"
|
||||
},
|
||||
{
|
||||
"id": "7e76f5dc-0c32-4b26-a289-975155b80112",
|
||||
"name": "url",
|
||||
"type": "string",
|
||||
"value": "={{ $vars.instance_url }}workflow/{{ $json.id }}"
|
||||
},
|
||||
{
|
||||
"id": "a7b069bf-8090-4dca-a432-f4fd7aa84e6f",
|
||||
"name": "errorWorkflow",
|
||||
"type": "boolean",
|
||||
"value": "={{ !!$json.settings?.errorWorkflow }}"
|
||||
},
|
||||
{
|
||||
"id": "0bff7a9b-0860-4552-b0f6-5fc279fc75d6",
|
||||
"name": "name",
|
||||
"type": "string",
|
||||
"value": "={{ $json.name }}"
|
||||
},
|
||||
{
|
||||
"id": "3065ee2f-d1bb-42b7-b341-7bb38b0f6720",
|
||||
"name": "updatedAt",
|
||||
"type": "string",
|
||||
"value": "={{ $json.updatedAt }}"
|
||||
},
|
||||
{
|
||||
"id": "ea9d39e4-50ca-4c79-b6ab-8b22cafd0257",
|
||||
"name": "createdAt",
|
||||
"type": "string",
|
||||
"value": "={{ $json.createdAt }}"
|
||||
},
|
||||
{
|
||||
"id": "265d66cd-1796-40eb-ae5b-dca8d1a91871",
|
||||
"name": "envId",
|
||||
"type": "string",
|
||||
"value": "=internal-{{ $json.id }}"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 3.3
|
||||
},
|
||||
{
|
||||
"id": "4527dc91-bad5-4214-b210-ea8f89504fbf",
|
||||
"name": "Get notion page with workflow id",
|
||||
"type": "n8n-nodes-base.httpRequest",
|
||||
"position": [
|
||||
1220,
|
||||
340
|
||||
],
|
||||
"parameters": {
|
||||
"url": "https://api.notion.com/v1/databases/fa25c53eac9a416eab3961b2f5c0c647/query",
|
||||
"method": "POST",
|
||||
"options": {},
|
||||
"jsonBody": "={\n \"filter\": { \"and\": [\n {\n \"property\": \"env id\",\n \"rich_text\": { \"contains\": \"{{ $json.envId }}\" }\n }]\n}\n}",
|
||||
"sendBody": true,
|
||||
"sendHeaders": true,
|
||||
"specifyBody": "json",
|
||||
"authentication": "predefinedCredentialType",
|
||||
"headerParameters": {
|
||||
"parameters": [
|
||||
{
|
||||
"name": "Notion-Version",
|
||||
"value": "2022-06-28"
|
||||
}
|
||||
]
|
||||
},
|
||||
"nodeCredentialType": "notionApi"
|
||||
},
|
||||
"credentials": {
|
||||
"notionApi": {
|
||||
"id": "1exvaAn7wzyBgkXZ",
|
||||
"name": "Nik's Notion Cred"
|
||||
}
|
||||
},
|
||||
"typeVersion": 4.1
|
||||
},
|
||||
{
|
||||
"id": "ced49644-b18f-4984-8dfd-199d88e3ded7",
|
||||
"name": "Map fields",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
1440,
|
||||
340
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"assignments": {
|
||||
"assignments": [
|
||||
{
|
||||
"id": "49092f3a-7f42-4067-b8ea-1073ef1d1bb8",
|
||||
"name": "input",
|
||||
"type": "object",
|
||||
"value": "={{ $('Set fields').item.json }}"
|
||||
}
|
||||
]
|
||||
},
|
||||
"includeOtherFields": true
|
||||
},
|
||||
"typeVersion": 3.3
|
||||
},
|
||||
{
|
||||
"id": "b890dacf-2ac2-4802-b96a-5097119d35ee",
|
||||
"name": "if newly added workflow",
|
||||
"type": "n8n-nodes-base.if",
|
||||
"position": [
|
||||
1660,
|
||||
340
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"conditions": {
|
||||
"options": {
|
||||
"leftValue": "",
|
||||
"caseSensitive": true,
|
||||
"typeValidation": "strict"
|
||||
},
|
||||
"combinator": "and",
|
||||
"conditions": [
|
||||
{
|
||||
"id": "88337d36-8cf6-4cd5-bec1-5123cf612934",
|
||||
"operator": {
|
||||
"type": "array",
|
||||
"operation": "empty",
|
||||
"singleValue": true
|
||||
},
|
||||
"leftValue": "={{ $json.results }}",
|
||||
"rightValue": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "86edfe55-9a88-49ed-82de-df0c44a65d53",
|
||||
"name": "Add to Notion",
|
||||
"type": "n8n-nodes-base.notion",
|
||||
"position": [
|
||||
1920,
|
||||
240
|
||||
],
|
||||
"parameters": {
|
||||
"title": "={{ $json.input.name }}",
|
||||
"options": {},
|
||||
"resource": "databasePage",
|
||||
"databaseId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "fa25c53e-ac9a-416e-ab39-61b2f5c0c647",
|
||||
"cachedResultUrl": "https://www.notion.so/fa25c53eac9a416eab3961b2f5c0c647",
|
||||
"cachedResultName": "Workflows maintained"
|
||||
},
|
||||
"propertiesUi": {
|
||||
"propertyValues": [
|
||||
{
|
||||
"key": "env id|rich_text",
|
||||
"textContent": "={{ $json.input.envId }}"
|
||||
},
|
||||
{
|
||||
"key": "URL (dev)|url",
|
||||
"urlValue": "={{ $json.input.url }}"
|
||||
},
|
||||
{
|
||||
"key": "isActive (dev)|checkbox",
|
||||
"checkboxValue": "={{ $json.input.active }}"
|
||||
},
|
||||
{
|
||||
"key": "Workflow created at|date",
|
||||
"date": "={{ $json.input.createdAt }}"
|
||||
},
|
||||
{
|
||||
"key": "Workflow updatded at|date",
|
||||
"date": "={{ $json.input.updatedAt }}"
|
||||
},
|
||||
{
|
||||
"key": "Error workflow setup|checkbox",
|
||||
"checkboxValue": "={{ $json.input.errorWorkflow }}"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"notionApi": {
|
||||
"id": "1exvaAn7wzyBgkXZ",
|
||||
"name": "Nik's Notion Cred"
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.1
|
||||
},
|
||||
{
|
||||
"id": "9d547270-37dd-41ee-98b7-13001c954ffa",
|
||||
"name": "Update in Notion",
|
||||
"type": "n8n-nodes-base.notion",
|
||||
"position": [
|
||||
1920,
|
||||
440
|
||||
],
|
||||
"parameters": {
|
||||
"pageId": {
|
||||
"__rl": true,
|
||||
"mode": "url",
|
||||
"value": "={{ $json.results[0].url }}"
|
||||
},
|
||||
"options": {},
|
||||
"resource": "databasePage",
|
||||
"operation": "update",
|
||||
"propertiesUi": {
|
||||
"propertyValues": [
|
||||
{
|
||||
"key": "isActive (dev)|checkbox",
|
||||
"checkboxValue": "={{ $json.input.active }}"
|
||||
},
|
||||
{
|
||||
"key": "Name|title",
|
||||
"title": "={{ $json.input.name }}"
|
||||
},
|
||||
{
|
||||
"key": "URL (dev)|url",
|
||||
"urlValue": "={{ $json.input.url }}"
|
||||
},
|
||||
{
|
||||
"key": "isActive (dev)|checkbox",
|
||||
"checkboxValue": "={{ $json.input.active }}"
|
||||
},
|
||||
{
|
||||
"key": "Workflow updatded at|date",
|
||||
"date": "={{ $json.input.updatedAt }}"
|
||||
},
|
||||
{
|
||||
"key": "Error workflow setup|checkbox",
|
||||
"checkboxValue": "={{ false }}"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"notionApi": {
|
||||
"id": "1exvaAn7wzyBgkXZ",
|
||||
"name": "Nik's Notion Cred"
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.1
|
||||
},
|
||||
{
|
||||
"id": "9e4d88f6-aff8-48f1-9470-8b18aae7b83a",
|
||||
"name": "Sticky Note3",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
540,
|
||||
100
|
||||
],
|
||||
"parameters": {
|
||||
"color": 5,
|
||||
"width": 445.6145160912248,
|
||||
"height": 193.68880276091272,
|
||||
"content": "### 👨🎤 Setup\n1. Add your n8n api creds\n2. Add your notion creds\n3. create notion database with fields `env id` as `text`, `isActive (dev)` as `boolean`, `URL (dev)` as `url`, `Workflow created at` as `date`, `Workflow updated at` as `date`, `Error workflow setup` as `boolean`\n4. Add tag `sync-to-notion` to some workflows"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "c212f6ec-22e3-41cf-b1a5-03f261715444",
|
||||
"name": "Sticky Note2",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
1000,
|
||||
540
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 368.0997057335963,
|
||||
"height": 80,
|
||||
"content": "### 👆 Set instance url instead of `{{ $vars.instance_url }}` (or set the env variable if you have that feature)"
|
||||
},
|
||||
"typeVersion": 1
|
||||
}
|
||||
],
|
||||
"pinData": {},
|
||||
"connections": {
|
||||
"Map fields": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "if newly added workflow",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Set fields": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Get notion page with workflow id",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Every 15 minutes": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Get all workflows with tag",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"if newly added workflow": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Add to Notion",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"node": "Update in Notion",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Get all workflows with tag": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Set fields",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Get notion page with workflow id": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Map fields",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,183 @@
|
||||
{
|
||||
"meta": {
|
||||
"instanceId": "8418cffce8d48086ec0a73fd90aca708aa07591f2fefa6034d87fe12a09de26e"
|
||||
},
|
||||
"nodes": [
|
||||
{
|
||||
"id": "3f4a15ab-64d8-49af-ba80-3aa1d424a62a",
|
||||
"name": "Schedule Trigger",
|
||||
"type": "n8n-nodes-base.scheduleTrigger",
|
||||
"position": [
|
||||
620,
|
||||
160
|
||||
],
|
||||
"parameters": {
|
||||
"rule": {
|
||||
"interval": [
|
||||
{
|
||||
"field": "hours",
|
||||
"hoursInterval": 6
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.1
|
||||
},
|
||||
{
|
||||
"id": "8a8681b7-2d28-403f-92a7-58c9030cb8a6",
|
||||
"name": "Get Tweets",
|
||||
"type": "n8n-nodes-base.googleSheets",
|
||||
"position": [
|
||||
820,
|
||||
160
|
||||
],
|
||||
"parameters": {
|
||||
"options": {
|
||||
"returnAllMatches": "returnFirstMatch"
|
||||
},
|
||||
"sheetName": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": 600232182,
|
||||
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1QyscSsUITnoJRnvyBbRpWeNF90TGD4dF5yj8DyZYQsA/edit#gid=600232182",
|
||||
"cachedResultName": "Tweets"
|
||||
},
|
||||
"documentId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "1QyscSsUITnoJRnvyBbRpWeNF90TGD4dF5yj8DyZYQsA",
|
||||
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1QyscSsUITnoJRnvyBbRpWeNF90TGD4dF5yj8DyZYQsA/edit?usp=drivesdk",
|
||||
"cachedResultName": "Tweets"
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"googleSheetsOAuth2Api": {
|
||||
"id": "RICzFHixgHXMuKmg",
|
||||
"name": "Google Sheets account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 4.3
|
||||
},
|
||||
{
|
||||
"id": "bcce591e-b92e-43b4-b672-b02e32f95d15",
|
||||
"name": "Post on X",
|
||||
"type": "n8n-nodes-base.twitter",
|
||||
"position": [
|
||||
1000,
|
||||
160
|
||||
],
|
||||
"parameters": {
|
||||
"text": "={{ $json.tweet }}",
|
||||
"additionalFields": {}
|
||||
},
|
||||
"credentials": {
|
||||
"twitterOAuth2Api": {
|
||||
"id": "Yz7PjesMFvasMWkd",
|
||||
"name": "X account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "8acdd2a7-6104-490d-b8d0-26e5ff2fa37d",
|
||||
"name": "Sticky Note1",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
640,
|
||||
-280
|
||||
],
|
||||
"parameters": {
|
||||
"color": 6,
|
||||
"width": 275.01592825011585,
|
||||
"height": 406.7602710975665,
|
||||
"content": "# Setup\n### 1/ Add Your credentials\n[Google - Sheet](https://docs.n8n.io/integrations/builtin/credentials/google/)\n[X - Twitter](https://docs.n8n.io/integrations/builtin/credentials/twitter/)\n\n### 2/ Create a new Google Spread Sheet, with one sheet named Tweets and in the first cell, write tweet.\n\n### 3/ Define your desire frequency\n\n# 👇"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "255e1f0f-beea-43fd-bfe6-0cc551a9eb6f",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
940,
|
||||
40
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 202.64787116404852,
|
||||
"height": 85.79488430601403,
|
||||
"content": "### Crafted by the\n## [🥷 n8n.ninja](https://n8n.ninja)"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "f834409b-bba2-4e8a-9fb9-5971a49960dd",
|
||||
"name": "Remove from list",
|
||||
"type": "n8n-nodes-base.googleSheets",
|
||||
"position": [
|
||||
1180,
|
||||
160
|
||||
],
|
||||
"parameters": {
|
||||
"operation": "delete",
|
||||
"sheetName": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": 600232182,
|
||||
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1QyscSsUITnoJRnvyBbRpWeNF90TGD4dF5yj8DyZYQsA/edit#gid=600232182",
|
||||
"cachedResultName": "Tweets"
|
||||
},
|
||||
"documentId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "1QyscSsUITnoJRnvyBbRpWeNF90TGD4dF5yj8DyZYQsA",
|
||||
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1QyscSsUITnoJRnvyBbRpWeNF90TGD4dF5yj8DyZYQsA/edit?usp=drivesdk",
|
||||
"cachedResultName": "Tweets"
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"googleSheetsOAuth2Api": {
|
||||
"id": "RICzFHixgHXMuKmg",
|
||||
"name": "Google Sheets account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 4.3
|
||||
}
|
||||
],
|
||||
"pinData": {},
|
||||
"connections": {
|
||||
"Post on X": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Remove from list",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Get Tweets": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Post on X",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Schedule Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Get Tweets",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
614
workflows/Schedule/0478_Schedule_HTTP_Create_Webhook.json
Normal file
614
workflows/Schedule/0478_Schedule_HTTP_Create_Webhook.json
Normal file
@@ -0,0 +1,614 @@
|
||||
{
|
||||
"nodes": [
|
||||
{
|
||||
"id": "db39e47c-df1f-4fec-86e5-fc391cce68da",
|
||||
"name": "Add Log in History",
|
||||
"type": "n8n-nodes-base.googleSheets",
|
||||
"position": [
|
||||
1360,
|
||||
540
|
||||
],
|
||||
"parameters": {
|
||||
"columns": {
|
||||
"value": {},
|
||||
"schema": [
|
||||
{
|
||||
"id": "price",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": false,
|
||||
"required": false,
|
||||
"displayName": "price",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "name",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": false,
|
||||
"required": false,
|
||||
"displayName": "name",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "link",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": false,
|
||||
"required": false,
|
||||
"displayName": "link",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "update",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": false,
|
||||
"required": false,
|
||||
"displayName": "update",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
}
|
||||
],
|
||||
"mappingMode": "autoMapInputData",
|
||||
"matchingColumns": [
|
||||
"update"
|
||||
]
|
||||
},
|
||||
"options": {},
|
||||
"operation": "appendOrUpdate",
|
||||
"sheetName": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": 440562612,
|
||||
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1sM66Rk10ZOhQKbawVB-xZ2WYhBeSr6wnJqvX6Aspbkg/edit#gid=440562612",
|
||||
"cachedResultName": "Pricing History"
|
||||
},
|
||||
"documentId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "1sM66Rk10ZOhQKbawVB-xZ2WYhBeSr6wnJqvX6Aspbkg",
|
||||
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1sM66Rk10ZOhQKbawVB-xZ2WYhBeSr6wnJqvX6Aspbkg/edit?usp=drivesdk",
|
||||
"cachedResultName": "Zalando Links"
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"googleSheetsOAuth2Api": {
|
||||
"id": "1nTQmlgxR0AJJDGA",
|
||||
"name": "n8ninja - Sheet"
|
||||
}
|
||||
},
|
||||
"typeVersion": 4.3
|
||||
},
|
||||
{
|
||||
"id": "56733bdb-8dc7-4c78-9df2-5ee147afe061",
|
||||
"name": "Update Products Infos",
|
||||
"type": "n8n-nodes-base.googleSheets",
|
||||
"position": [
|
||||
1360,
|
||||
360
|
||||
],
|
||||
"parameters": {
|
||||
"columns": {
|
||||
"value": {},
|
||||
"schema": [
|
||||
{
|
||||
"id": "link",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": false,
|
||||
"required": false,
|
||||
"displayName": "link",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "price",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "price",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "name",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "name",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "row_number",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": true,
|
||||
"readOnly": true,
|
||||
"required": false,
|
||||
"displayName": "row_number",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
}
|
||||
],
|
||||
"mappingMode": "autoMapInputData",
|
||||
"matchingColumns": [
|
||||
"link"
|
||||
]
|
||||
},
|
||||
"options": {},
|
||||
"operation": "update",
|
||||
"sheetName": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "gid=0",
|
||||
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1sM66Rk10ZOhQKbawVB-xZ2WYhBeSr6wnJqvX6Aspbkg/edit#gid=0",
|
||||
"cachedResultName": "Links"
|
||||
},
|
||||
"documentId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "1sM66Rk10ZOhQKbawVB-xZ2WYhBeSr6wnJqvX6Aspbkg",
|
||||
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1sM66Rk10ZOhQKbawVB-xZ2WYhBeSr6wnJqvX6Aspbkg/edit?usp=drivesdk",
|
||||
"cachedResultName": "Zalando Links"
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"googleSheetsOAuth2Api": {
|
||||
"id": "1nTQmlgxR0AJJDGA",
|
||||
"name": "n8ninja - Sheet"
|
||||
}
|
||||
},
|
||||
"typeVersion": 4.3
|
||||
},
|
||||
{
|
||||
"id": "f87196d7-26ec-41d6-af04-c4b57f3ea899",
|
||||
"name": "If price below price alert",
|
||||
"type": "n8n-nodes-base.if",
|
||||
"position": [
|
||||
1360,
|
||||
740
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"conditions": {
|
||||
"options": {
|
||||
"leftValue": "",
|
||||
"caseSensitive": true,
|
||||
"typeValidation": "strict"
|
||||
},
|
||||
"combinator": "and",
|
||||
"conditions": [
|
||||
{
|
||||
"id": "0466f2d9-de7a-4017-933a-acda8fb84191",
|
||||
"operator": {
|
||||
"type": "number",
|
||||
"operation": "lte"
|
||||
},
|
||||
"leftValue": "={{ parseFloat($json.price) }}",
|
||||
"rightValue": "={{ parseFloat($('List Products').item.json.price_alert) }}"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "2663fb7a-08ab-45b7-b6d3-4eea495185c4",
|
||||
"name": "List Products",
|
||||
"type": "n8n-nodes-base.googleSheets",
|
||||
"position": [
|
||||
600,
|
||||
540
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"sheetName": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "gid=0",
|
||||
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1sM66Rk10ZOhQKbawVB-xZ2WYhBeSr6wnJqvX6Aspbkg/edit#gid=0",
|
||||
"cachedResultName": "Links"
|
||||
},
|
||||
"documentId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "1sM66Rk10ZOhQKbawVB-xZ2WYhBeSr6wnJqvX6Aspbkg",
|
||||
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1sM66Rk10ZOhQKbawVB-xZ2WYhBeSr6wnJqvX6Aspbkg/edit?usp=drivesdk",
|
||||
"cachedResultName": "Zalando Links"
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"googleSheetsOAuth2Api": {
|
||||
"id": "1nTQmlgxR0AJJDGA",
|
||||
"name": "n8ninja - Sheet"
|
||||
}
|
||||
},
|
||||
"typeVersion": 4.3
|
||||
},
|
||||
{
|
||||
"id": "5ae11ccd-ed5e-4e08-8f42-b3a1c45323df",
|
||||
"name": "Format Product",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
1060,
|
||||
540
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"assignments": {
|
||||
"assignments": [
|
||||
{
|
||||
"id": "77ef948b-e4a4-4695-a5e6-bbb21b99f177",
|
||||
"name": "price",
|
||||
"type": "string",
|
||||
"value": "={{ parseFloat($json.data.split('\"twitter:data1\" content=\"')[1].split('\"')[0].split(' ')[1]) }}"
|
||||
},
|
||||
{
|
||||
"id": "cf241232-d85d-40d7-bf5c-6d49336d6ce1",
|
||||
"name": "name",
|
||||
"type": "string",
|
||||
"value": "={{ $json.data.split('<title>')[1].split('</title>')[0].split('-')[0] }} {{ $json.data.split('<title>')[1].split('</title>')[0].split('-')[1] }} {{ $json.data.split('<title>')[1].split('</title>')[0].split('-')[2] }}"
|
||||
},
|
||||
{
|
||||
"id": "ca07eca0-8bad-4997-a124-e8636eb07bd5",
|
||||
"name": "link",
|
||||
"type": "string",
|
||||
"value": "={{ $('List Products').item.json.link }}"
|
||||
},
|
||||
{
|
||||
"id": "c2d92a0f-56cc-4b74-bbd3-d8a1bb0d6cd7",
|
||||
"name": "update",
|
||||
"type": "string",
|
||||
"value": "={{ $now.format('D') }}"
|
||||
},
|
||||
{
|
||||
"id": "af33b7f1-8367-4f05-bc7e-03d119c3ac76",
|
||||
"name": "",
|
||||
"type": "string",
|
||||
"value": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 3.3
|
||||
},
|
||||
{
|
||||
"id": "ae11877a-e83e-44c9-b6f2-b5cd0c8a3c1e",
|
||||
"name": "Schedule Trigger",
|
||||
"type": "n8n-nodes-base.scheduleTrigger",
|
||||
"position": [
|
||||
380,
|
||||
540
|
||||
],
|
||||
"parameters": {
|
||||
"rule": {
|
||||
"interval": [
|
||||
{}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.1
|
||||
},
|
||||
{
|
||||
"id": "8361e609-0185-4939-92c4-07ec7826bdab",
|
||||
"name": "Scrap Product",
|
||||
"type": "n8n-nodes-base.httpRequest",
|
||||
"position": [
|
||||
820,
|
||||
540
|
||||
],
|
||||
"parameters": {
|
||||
"url": "={{ $json.link }}",
|
||||
"options": {}
|
||||
},
|
||||
"typeVersion": 4.1
|
||||
},
|
||||
{
|
||||
"id": "6a98aad8-9475-4243-948a-b904cde4687a",
|
||||
"name": "Notify Price Reduction",
|
||||
"type": "n8n-nodes-base.gmail",
|
||||
"position": [
|
||||
1600,
|
||||
720
|
||||
],
|
||||
"parameters": {
|
||||
"sendTo": "n8n.ninja@gmail.com",
|
||||
"message": "=<h3>Price reduction alert for {{ $('Format Product').item.json[\"name\"] }}</h3>\n\n<p>New price {{ $('Format Product').item.json[\"price\"] }} CHF is bellow {{ $('List Products').item.json[\"price_alert\"] }} CHF</p>\n\nView product: {{ $('List Products').item.json[\"link\"] }}\n\n\n",
|
||||
"options": {},
|
||||
"subject": "=⚠️ Price Reduction: {{ $('Format Product').item.json.name }}\n"
|
||||
},
|
||||
"credentials": {
|
||||
"gmailOAuth2": {
|
||||
"id": "DMcPDN0IHPwGmI7f",
|
||||
"name": "Gmail account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.1
|
||||
},
|
||||
{
|
||||
"id": "427f51a9-7ebf-42df-bb97-e0a17a37d2cb",
|
||||
"name": "Monitor Zalando Product",
|
||||
"type": "n8n-nodes-base.formTrigger",
|
||||
"position": [
|
||||
380,
|
||||
280
|
||||
],
|
||||
"webhookId": "6da9a655-b46b-454d-bb96-32e203627a20",
|
||||
"parameters": {
|
||||
"path": "6da9a655-b46b-454d-bb96-32e203627a20",
|
||||
"options": {},
|
||||
"formTitle": "Add Product",
|
||||
"formFields": {
|
||||
"values": [
|
||||
{
|
||||
"fieldLabel": "link",
|
||||
"requiredField": true
|
||||
},
|
||||
{
|
||||
"fieldType": "number",
|
||||
"fieldLabel": "price_alert",
|
||||
"requiredField": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"formDescription": "Past in a Zalando URL and the price bellow you would like to be notified"
|
||||
},
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "39711d6f-d699-415b-9a1b-3971839e7e8a",
|
||||
"name": "Add Product",
|
||||
"type": "n8n-nodes-base.googleSheets",
|
||||
"position": [
|
||||
580,
|
||||
280
|
||||
],
|
||||
"parameters": {
|
||||
"columns": {
|
||||
"value": {
|
||||
"link": "={{ $json.link }}",
|
||||
"price_alert": "={{ $json.price_alert }}"
|
||||
},
|
||||
"schema": [
|
||||
{
|
||||
"id": "link",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": false,
|
||||
"required": false,
|
||||
"displayName": "link",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "price_alert",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "price_alert",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "price",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": true,
|
||||
"required": false,
|
||||
"displayName": "price",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "name",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": true,
|
||||
"required": false,
|
||||
"displayName": "name",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "update",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": true,
|
||||
"required": false,
|
||||
"displayName": "update",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
}
|
||||
],
|
||||
"mappingMode": "defineBelow",
|
||||
"matchingColumns": [
|
||||
"link"
|
||||
]
|
||||
},
|
||||
"options": {},
|
||||
"operation": "appendOrUpdate",
|
||||
"sheetName": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "gid=0",
|
||||
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1sM66Rk10ZOhQKbawVB-xZ2WYhBeSr6wnJqvX6Aspbkg/edit#gid=0",
|
||||
"cachedResultName": "Links"
|
||||
},
|
||||
"documentId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "1sM66Rk10ZOhQKbawVB-xZ2WYhBeSr6wnJqvX6Aspbkg",
|
||||
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1sM66Rk10ZOhQKbawVB-xZ2WYhBeSr6wnJqvX6Aspbkg/edit?usp=drivesdk",
|
||||
"cachedResultName": "Zalando Links"
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"googleSheetsOAuth2Api": {
|
||||
"id": "1nTQmlgxR0AJJDGA",
|
||||
"name": "n8ninja - Sheet"
|
||||
}
|
||||
},
|
||||
"typeVersion": 4.3,
|
||||
"alwaysOutputData": true
|
||||
},
|
||||
{
|
||||
"id": "881acff3-1736-4d53-8c3b-3354ec2da07b",
|
||||
"name": "Sticky Note1",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
400,
|
||||
-191
|
||||
],
|
||||
"parameters": {
|
||||
"color": 6,
|
||||
"width": 275.01592825011585,
|
||||
"height": 439.37809705210145,
|
||||
"content": "# Setup\n### 1/ Add Your credentials\n[Google SHeet](https://docs.n8n.io/integrations/builtin/credentials/google/)\n\n### 2/ Create a Google Spreadsheet that will be your database.\nCopy this template: \nhttps://docs.google.com/spreadsheets/d/1sM66Rk10ZOhQKbawVB-xZ2WYhBeSr6wnJqvX6Aspbkg/edit?usp=sharing\n\n### 3/ Add products to monitor from this form \n# 👇"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "92ae590a-bf1d-4c17-a654-f281379fcee6",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
1620,
|
||||
600
|
||||
],
|
||||
"parameters": {
|
||||
"color": 6,
|
||||
"width": 275.01592825011585,
|
||||
"height": 93.37809705210145,
|
||||
"content": "### Fill with your email\n# 👇"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "8834da7f-7ca1-4cad-98b9-2335bfc81b8f",
|
||||
"name": "Sticky Note2",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
40,
|
||||
580
|
||||
],
|
||||
"parameters": {
|
||||
"color": 6,
|
||||
"width": 275.01592825011585,
|
||||
"height": 136.37809705210145,
|
||||
"content": "### Change frequency 👉🏻\n\n(don't put less than once a day, or you will need to also add the hour in the format product node)\n"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "b1838412-6c3e-4519-8946-f6aeff0c9e8d",
|
||||
"name": "Sticky Note3",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
900,
|
||||
340
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 202.64787116404852,
|
||||
"height": 85.79488430601403,
|
||||
"content": "### Crafted by the\n## [🥷 n8n.ninja](n8n.ninja)"
|
||||
},
|
||||
"typeVersion": 1
|
||||
}
|
||||
],
|
||||
"pinData": {},
|
||||
"connections": {
|
||||
"Add Product": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "List Products",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"List Products": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Scrap Product",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Scrap Product": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Format Product",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Format Product": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Add Log in History",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
},
|
||||
{
|
||||
"node": "Update Products Infos",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
},
|
||||
{
|
||||
"node": "If price below price alert",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Schedule Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "List Products",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Monitor Zalando Product": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Add Product",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"If price below price alert": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Notify Price Reduction",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
401
workflows/Schedule/0486_Schedule_Telegram_Create_Scheduled.json
Normal file
401
workflows/Schedule/0486_Schedule_Telegram_Create_Scheduled.json
Normal file
@@ -0,0 +1,401 @@
|
||||
{
|
||||
"meta": {
|
||||
"instanceId": "84ba6d895254e080ac2b4916d987aa66b000f88d4d919a6b9c76848f9b8a7616",
|
||||
"templateId": "2233"
|
||||
},
|
||||
"nodes": [
|
||||
{
|
||||
"id": "757a7e67-073a-4fa1-b571-2ddd147b35f6",
|
||||
"name": "OpenAI Chat Model",
|
||||
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
|
||||
"position": [
|
||||
1000,
|
||||
1240
|
||||
],
|
||||
"parameters": {
|
||||
"model": "gpt-3.5-turbo-16k-0613",
|
||||
"options": {}
|
||||
},
|
||||
"credentials": {
|
||||
"openAiApi": {
|
||||
"id": "kDo5LhPmHS2WQE0b",
|
||||
"name": "OpenAi account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "761ed83a-2cfb-474a-b596-922e5a7e2717",
|
||||
"name": "Schedule Trigger",
|
||||
"type": "n8n-nodes-base.scheduleTrigger",
|
||||
"position": [
|
||||
660,
|
||||
1060
|
||||
],
|
||||
"parameters": {
|
||||
"rule": {
|
||||
"interval": [
|
||||
{
|
||||
"field": "hours",
|
||||
"hoursInterval": 12
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.1
|
||||
},
|
||||
{
|
||||
"id": "41faf334-30d6-4cc0-9a94-9c486ec3fa6c",
|
||||
"name": "OpenAI Chat Model2",
|
||||
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
|
||||
"position": [
|
||||
1520,
|
||||
1420
|
||||
],
|
||||
"parameters": {
|
||||
"options": {}
|
||||
},
|
||||
"credentials": {
|
||||
"openAiApi": {
|
||||
"id": "kDo5LhPmHS2WQE0b",
|
||||
"name": "OpenAi account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "d9ad0a3a-2ce6-4071-8262-8176b3eecf36",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
1780,
|
||||
220
|
||||
],
|
||||
"parameters": {
|
||||
"width": 1004.4263690337257,
|
||||
"height": 811.7188223885136,
|
||||
"content": "### Setting Up a Workflow for \"AI-Powered Children's English Storytelling on Telegram\"\n\nIn this guide, we will walk you through the process of setting up a workflow to create and share captivating children's stories using the provided configuration. Let's dive into the steps required to bring these imaginative tales to life on your Telegram channel:\n\n#### Steps to Setup the Workflow:\n1. **Import the Workflow:**\n - Copy the provided workflow JSON configuration.\n - In your n8n instance, go to Workflows and select \"Import from JSON.\"\n - Paste the configuration and import the workflow.\n\n2. **Configure Node Credentials:**\n - For nodes requiring API credentials (OpenAI and Telegram), create credentials with the appropriate API keys or tokens.\n\n3. **Set Node Parameters:**\n - Modify node parameters as needed, such as chat IDs, prompts, and intervals.\n - Change the chatId in Config node to the ID of the chat you want the story to be posted.\n\n4. **Ensure Data Flow:**\n - Check the connections between nodes to ensure a smooth flow of data and actions.\n\n5. **Execute Once:**\n - Activate the \"executeOnce\" option in nodes where necessary to trigger actions only once during setup.\n\n6. **Test the Workflow:**\n - Run the workflow to verify that each node functions correctly and data is processed as expected.\n\n7. **Enable Recurring Triggers:**\n - Confirm that the Schedule Trigger node is set to trigger the workflow at the desired interval (every 12 hours).\n\n8. **Initiate Workflow:**\n - Once everything is configured correctly, activate the workflow to start generating and sharing children's stories on Telegram.\n\nBy following these steps meticulously, you can seamlessly establish and operate the workflow designed to create captivating children's stories for your audience. Embrace the power of automation to inspire young minds and foster a love for storytelling through engaging narratives shared on Telegram.\n"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "b550e4ff-167d-4b12-8dff-0511a435cd7c",
|
||||
"name": "Create a Prompt for DALL-E",
|
||||
"type": "@n8n/n8n-nodes-langchain.chainSummarization",
|
||||
"position": [
|
||||
1500,
|
||||
1280
|
||||
],
|
||||
"parameters": {
|
||||
"options": {
|
||||
"summarizationMethodAndPrompts": {
|
||||
"values": {
|
||||
"prompt": "Summarize the characters in this story based on their appearance and describe them if they are humans or animals and how they look like and what kind of are they, the prompt should be no-text in the picture, make sure the text is free from any prohibited or inappropriate content:\n\n\n\n\"{text}\"\n\n\nCONCISE SUMMARY:",
|
||||
"summarizationMethod": "stuff"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "024a3615-9e90-4e47-81e3-21febfc2f0c9",
|
||||
"name": "Sticky Note1",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
380,
|
||||
240
|
||||
],
|
||||
"parameters": {
|
||||
"width": 611.6882702103559,
|
||||
"height": 651.7145525871413,
|
||||
"content": "### Use Case for Setting Up a Workflow for Children's Stories\n\nCheck this example: [https://t.me/st0ries95](https://t.me/st0ries95)\n\n\nThe workflow for children's stories serves as a valuable tool for content creators, educators, and parents looking to engage children with imaginative and educational storytelling. Here are some key use cases for this workflow:\n\n1. **Content Creation:** The workflow streamlines the process of creating captivating children's stories by providing a structured framework and automation for story generation, audio creation, and image production.\n\n2. **Educational Resources:** Teachers can use this workflow to develop educational materials that incorporate storytelling to make learning more engaging and interactive for students.\n\n3. **Parental Engagement:** Parents can utilize the workflow to share personalized stories with their children, fostering a love for reading and creativity while bonding over shared storytelling experiences.\n\n4. **Community Building:** Organizations and community groups can leverage the workflow to create and share children's stories as a way to connect with their audience and promote literacy and creativity.\n\n5. **Inspiring Young Minds:** By automating the process of creating and sharing enchanting children's stories, this workflow aims to inspire young minds, spark imagination, and instill a passion for storytelling in children.\n\nOverall, the use case for this workflow extends to various settings where storytelling plays a significant role in engaging, educating, and entertaining children, making it a versatile tool for enhancing the storytelling experience.\n"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "11bfff09-33c6-48ab-b9e6-2e5349a87ca5",
|
||||
"name": "Recursive Character Text Splitter",
|
||||
"type": "@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter",
|
||||
"position": [
|
||||
1160,
|
||||
1260
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"chunkSize": 500,
|
||||
"chunkOverlap": 300
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "9da21054-961e-4b7a-973e-1c180571ce92",
|
||||
"name": "Create a story",
|
||||
"type": "@n8n/n8n-nodes-langchain.chainSummarization",
|
||||
"position": [
|
||||
1080,
|
||||
1060
|
||||
],
|
||||
"parameters": {
|
||||
"options": {
|
||||
"summarizationMethodAndPrompts": {
|
||||
"values": {
|
||||
"prompt": "Create a captivating short tale for kids, whisking them away to magical lands brimming with wisdom. Explore diverse themes in a fun and simple way, weaving in valuable messages. Dive into cultural adventures with lively language that sparks curiosity. Let your story inspire young minds through enchanting narratives that linger long after the last word. Begin crafting your imaginative tale now! (Approximately 900 characters)\n\n\n\"{text}\"\n\nCONCISE SUMMARY:",
|
||||
"summarizationMethod": "stuff"
|
||||
}
|
||||
}
|
||||
},
|
||||
"chunkingMode": "advanced"
|
||||
},
|
||||
"executeOnce": true,
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "35579446-e11c-416b-b34a-b31e8461a1b3",
|
||||
"name": "Generate Audio for the story",
|
||||
"type": "@n8n/n8n-nodes-langchain.openAi",
|
||||
"position": [
|
||||
1520,
|
||||
1060
|
||||
],
|
||||
"parameters": {
|
||||
"input": "={{ $json.response.text }}",
|
||||
"options": {},
|
||||
"resource": "audio"
|
||||
},
|
||||
"credentials": {
|
||||
"openAiApi": {
|
||||
"id": "kDo5LhPmHS2WQE0b",
|
||||
"name": "OpenAi account"
|
||||
}
|
||||
},
|
||||
"executeOnce": true,
|
||||
"typeVersion": 1.3
|
||||
},
|
||||
{
|
||||
"id": "453d149f-a2a7-4fc9-ba3b-85b42df1c29b",
|
||||
"name": "Generate a Picture for the story",
|
||||
"type": "@n8n/n8n-nodes-langchain.openAi",
|
||||
"position": [
|
||||
1840,
|
||||
1280
|
||||
],
|
||||
"parameters": {
|
||||
"prompt": "=Produce an image ensuring that no text is generated within the visual content. {{ $json.response.text }}",
|
||||
"options": {},
|
||||
"resource": "image"
|
||||
},
|
||||
"credentials": {
|
||||
"openAiApi": {
|
||||
"id": "kDo5LhPmHS2WQE0b",
|
||||
"name": "OpenAi account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.3
|
||||
},
|
||||
{
|
||||
"id": "8f324f12-b21e-4d0c-b7fa-5e2f93ba08aa",
|
||||
"name": "Send Story Text",
|
||||
"type": "n8n-nodes-base.telegram",
|
||||
"position": [
|
||||
1520,
|
||||
840
|
||||
],
|
||||
"parameters": {
|
||||
"text": "={{ $json.response.text }}",
|
||||
"chatId": "={{ $('Config').item.json.chatId }}",
|
||||
"additionalFields": {
|
||||
"appendAttribution": false
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"telegramApi": {
|
||||
"id": "k3RE6o9brmFRFE9p",
|
||||
"name": "Telegram account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.1
|
||||
},
|
||||
{
|
||||
"id": "51a08f75-1c34-48a0-86de-b47e435ef618",
|
||||
"name": "Send Audio for the story",
|
||||
"type": "n8n-nodes-base.telegram",
|
||||
"position": [
|
||||
1720,
|
||||
1060
|
||||
],
|
||||
"parameters": {
|
||||
"chatId": "={{ $('Config').item.json.chatId }}",
|
||||
"operation": "sendAudio",
|
||||
"binaryData": true,
|
||||
"additionalFields": {
|
||||
"caption": "End of the Story for today ....."
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"telegramApi": {
|
||||
"id": "k3RE6o9brmFRFE9p",
|
||||
"name": "Telegram account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.1
|
||||
},
|
||||
{
|
||||
"id": "3f890a4d-26ea-452a-8ed5-917282e8b0d8",
|
||||
"name": "Send Story Picture",
|
||||
"type": "n8n-nodes-base.telegram",
|
||||
"position": [
|
||||
2020,
|
||||
1280
|
||||
],
|
||||
"parameters": {
|
||||
"chatId": "={{ $('Config').item.json.chatId }}",
|
||||
"operation": "sendPhoto",
|
||||
"binaryData": true,
|
||||
"additionalFields": {}
|
||||
},
|
||||
"credentials": {
|
||||
"telegramApi": {
|
||||
"id": "k3RE6o9brmFRFE9p",
|
||||
"name": "Telegram account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.1
|
||||
},
|
||||
{
|
||||
"id": "1cbec52c-b545-45df-885f-57c287f81017",
|
||||
"name": "Config",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
880,
|
||||
1060
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"assignments": {
|
||||
"assignments": [
|
||||
{
|
||||
"id": "327667cb-b5b0-4f6f-915c-544696ed8e5a",
|
||||
"name": "chatId",
|
||||
"type": "string",
|
||||
"value": "-4170994782"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 3.3
|
||||
}
|
||||
],
|
||||
"pinData": {},
|
||||
"connections": {
|
||||
"Config": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Create a story",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Create a story": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Generate Audio for the story",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
},
|
||||
{
|
||||
"node": "Create a Prompt for DALL-E",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
},
|
||||
{
|
||||
"node": "Send Story Text",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Schedule Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Config",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"OpenAI Chat Model": {
|
||||
"ai_languageModel": [
|
||||
[
|
||||
{
|
||||
"node": "Create a story",
|
||||
"type": "ai_languageModel",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"OpenAI Chat Model2": {
|
||||
"ai_languageModel": [
|
||||
[
|
||||
{
|
||||
"node": "Create a Prompt for DALL-E",
|
||||
"type": "ai_languageModel",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Create a Prompt for DALL-E": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Generate a Picture for the story",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Generate Audio for the story": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Send Audio for the story",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Generate a Picture for the story": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Send Story Picture",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Recursive Character Text Splitter": {
|
||||
"ai_textSplitter": [
|
||||
[
|
||||
{
|
||||
"node": "Create a story",
|
||||
"type": "ai_textSplitter",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
431
workflows/Schedule/0487_Schedule_Telegram_Create_Scheduled.json
Normal file
431
workflows/Schedule/0487_Schedule_Telegram_Create_Scheduled.json
Normal file
@@ -0,0 +1,431 @@
|
||||
{
|
||||
"meta": {
|
||||
"instanceId": "84ba6d895254e080ac2b4916d987aa66b000f88d4d919a6b9c76848f9b8a7616",
|
||||
"templateId": "2234"
|
||||
},
|
||||
"nodes": [
|
||||
{
|
||||
"id": "e0f68f60-f036-4103-a9fc-d6cb80b6f8a2",
|
||||
"name": "OpenAI Chat Model",
|
||||
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
|
||||
"position": [
|
||||
1980,
|
||||
1100
|
||||
],
|
||||
"parameters": {
|
||||
"model": "gpt-4-turbo",
|
||||
"options": {}
|
||||
},
|
||||
"credentials": {
|
||||
"openAiApi": {
|
||||
"id": "kDo5LhPmHS2WQE0b",
|
||||
"name": "OpenAi account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "23779dea-c21d-42da-b493-09394bc64436",
|
||||
"name": "OpenAI Chat Model1",
|
||||
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
|
||||
"position": [
|
||||
2420,
|
||||
660
|
||||
],
|
||||
"parameters": {
|
||||
"model": "gpt-4-turbo",
|
||||
"options": {}
|
||||
},
|
||||
"credentials": {
|
||||
"openAiApi": {
|
||||
"id": "kDo5LhPmHS2WQE0b",
|
||||
"name": "OpenAi account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "af59863e-12c5-414c-bf64-dd6712e3aa7b",
|
||||
"name": "Schedule Trigger",
|
||||
"type": "n8n-nodes-base.scheduleTrigger",
|
||||
"position": [
|
||||
1680,
|
||||
960
|
||||
],
|
||||
"parameters": {
|
||||
"rule": {
|
||||
"interval": [
|
||||
{
|
||||
"field": "hours",
|
||||
"hoursInterval": 12
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.1
|
||||
},
|
||||
{
|
||||
"id": "bc2ad02b-72c9-4132-96e8-b64487f589f7",
|
||||
"name": "Recursive Character Text Splitter",
|
||||
"type": "@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter",
|
||||
"position": [
|
||||
2160,
|
||||
1140
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"chunkSize": 500,
|
||||
"chunkOverlap": 300
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "cb11a8bb-bdca-43cb-a586-7f93471d58f7",
|
||||
"name": "OpenAI Chat Model2",
|
||||
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
|
||||
"position": [
|
||||
2420,
|
||||
1300
|
||||
],
|
||||
"parameters": {
|
||||
"options": {}
|
||||
},
|
||||
"credentials": {
|
||||
"openAiApi": {
|
||||
"id": "kDo5LhPmHS2WQE0b",
|
||||
"name": "OpenAi account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "9d02b910-a467-4d4d-a2fa-32d1d3361d21",
|
||||
"name": "Create a Prompt for DALL-E",
|
||||
"type": "@n8n/n8n-nodes-langchain.chainSummarization",
|
||||
"position": [
|
||||
2400,
|
||||
1080
|
||||
],
|
||||
"parameters": {
|
||||
"options": {
|
||||
"summarizationMethodAndPrompts": {
|
||||
"values": {
|
||||
"prompt": "Summarize the characters in this story based on their appearance and describe them if they are humans or animals and how they look like and what kind of are they, the prompt should be no-text in the picture.\n\n\n\n\n\"{text}\"\n\n\nCONCISE SUMMARY:",
|
||||
"summarizationMethod": "stuff"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "4723dd65-96f5-41c1-9ff6-f1a344d96241",
|
||||
"name": "Generate an Image for the Story",
|
||||
"type": "@n8n/n8n-nodes-langchain.openAi",
|
||||
"position": [
|
||||
2860,
|
||||
1080
|
||||
],
|
||||
"parameters": {
|
||||
"prompt": "=Produce an image ensuring that no text is generated within the visual content. {{ $json.response.text }}",
|
||||
"options": {},
|
||||
"resource": "image"
|
||||
},
|
||||
"credentials": {
|
||||
"openAiApi": {
|
||||
"id": "kDo5LhPmHS2WQE0b",
|
||||
"name": "OpenAi account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.3
|
||||
},
|
||||
{
|
||||
"id": "70b7f55a-31c4-456b-8273-8250bac74409",
|
||||
"name": "Generate Audio for the Story",
|
||||
"type": "@n8n/n8n-nodes-langchain.openAi",
|
||||
"position": [
|
||||
2640,
|
||||
820
|
||||
],
|
||||
"parameters": {
|
||||
"input": "={{ $json.response.text }}",
|
||||
"options": {},
|
||||
"resource": "audio"
|
||||
},
|
||||
"credentials": {
|
||||
"openAiApi": {
|
||||
"id": "kDo5LhPmHS2WQE0b",
|
||||
"name": "OpenAi account"
|
||||
}
|
||||
},
|
||||
"executeOnce": true,
|
||||
"typeVersion": 1.3
|
||||
},
|
||||
{
|
||||
"id": "c381dbe4-6112-441c-b213-8a2d218f4cc2",
|
||||
"name": "Send the Story To Channel",
|
||||
"type": "n8n-nodes-base.telegram",
|
||||
"position": [
|
||||
3160,
|
||||
480
|
||||
],
|
||||
"parameters": {
|
||||
"text": "={{ $json.response.text }}",
|
||||
"chatId": "=-4170994782",
|
||||
"additionalFields": {
|
||||
"appendAttribution": false
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"telegramApi": {
|
||||
"id": "k3RE6o9brmFRFE9p",
|
||||
"name": "Telegram account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.1
|
||||
},
|
||||
{
|
||||
"id": "78289bfa-54b4-4acb-b513-7a0134a010f3",
|
||||
"name": "Send Image to the Channel",
|
||||
"type": "n8n-nodes-base.telegram",
|
||||
"position": [
|
||||
3180,
|
||||
1080
|
||||
],
|
||||
"parameters": {
|
||||
"chatId": "=-4170994782",
|
||||
"operation": "sendPhoto",
|
||||
"binaryData": true,
|
||||
"additionalFields": {}
|
||||
},
|
||||
"credentials": {
|
||||
"telegramApi": {
|
||||
"id": "k3RE6o9brmFRFE9p",
|
||||
"name": "Telegram account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.1
|
||||
},
|
||||
{
|
||||
"id": "f779047b-6dec-4e4e-ae09-4dd91f961d08",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
380,
|
||||
240
|
||||
],
|
||||
"parameters": {
|
||||
"width": 1224.7156767468991,
|
||||
"height": 1282.378312060854,
|
||||
"content": "# Template for Kids' Story in Arabic\n\nThe n8n template for creating kids' stories in Arabic provides a versatile platform for storytellers to captivate young audiences with educational and interactive tales. Along with its core functionalities, this template allows for customization to suit various use cases and can be set up effortlessly.\n\nCheck this example: [https://t.me/st0ries95](https://t.me/st0ries95)\n\n\n## Node Functionalities\n\n\n## Automated Storytelling Process\n\n\n## Use Cases\n1. **Educational Platforms**:\n Educational platforms can automate the creation and distribution of educational stories in Arabic for children using this template. By incorporating visual and auditory elements into the storytelling process, educational platforms can enhance learning experiences and engage young learners effectively.\n\n2. **Children's Libraries**:\n Children's libraries can utilize this template to curate and share a diverse collection of Arabic stories with young readers. The automated generation of visual content and audio files enhances the storytelling experience, encouraging children to immerse themselves in new worlds and characters through captivating narratives.\n\n3. **Language Learning Apps**:\n Language learning apps focused on Arabic can integrate this template to offer culturally rich storytelling experiences for children learning the language. By translating stories into Arabic and supplementing them with visual and auditory components, these apps can facilitate language acquisition in an enjoyable and interactive manner.\n\n## Configuration Guide for Nodes\n\n### OpenAI Chat Model Nodes:\n- **Credentials**: Provide the necessary API credentials for the OpenAI GPT-4 Turbo model.\n- **Options**: Configure any specific options required for the chat model.\n\n### Create a Prompt for DALL-E Node:\n- **Prompts Customization**: Customize prompts to generate relevant visual content for the stories.\n- **Summarization Method and Prompts**: Define the summarization method and prompts for generating visual content without text.\n\n### Generate an Image for the Story Node:\n- **Resource**: Specify the type of resource (image).\n- **Prompt**: Set up the prompt for producing an image without text within the visual content.\n\n### Generate Audio for the Story Node:\n- **Resource**: Select the type of resource (audio).\n- **Input**: Define the input text for generating audio files.\n\n### Translate the Story to Arabic Node:\n- **Chunking Mode**: Choose the chunking mode (advanced).\n- **Summarization Method and Prompts**: Set the summarization method and prompts for translating the story into Arabic.\n\n### Send the Story To Channel Node:\n- **Chat ID**: Provide the chat ID where the story text will be sent.\n- **Text**: Configure the text to be sent to the channel.\n\nBy configuring each node as per the guidelines above, users can effectively set up and customize the n8n template for kids' stories in Arabic, tailoring it to specific use cases and delivering a seamless and engaging storytelling experience for young audiences.\n"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "5ef92ebc-e4e4-4165-a7df-9f94802f8e27",
|
||||
"name": "Sticky Note1",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
1620,
|
||||
240
|
||||
],
|
||||
"parameters": {
|
||||
"width": 1811.9647367735226,
|
||||
"height": 1280.7253282813103,
|
||||
"content": ""
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "76d2b256-8083-42d9-8465-63b2f9c73a67",
|
||||
"name": "Translate the Story to Arabic",
|
||||
"type": "@n8n/n8n-nodes-langchain.chainSummarization",
|
||||
"position": [
|
||||
2400,
|
||||
480
|
||||
],
|
||||
"parameters": {
|
||||
"options": {
|
||||
"summarizationMethodAndPrompts": {
|
||||
"values": {
|
||||
"prompt": "Translate this story texts to \"Arabic\" and make it easy to understands for kids with easy words and moral lesson :\n\n\n\"{text}\"\n\n\n",
|
||||
"summarizationMethod": "stuff"
|
||||
}
|
||||
}
|
||||
},
|
||||
"chunkingMode": "advanced"
|
||||
},
|
||||
"executeOnce": true,
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "126e463e-f1e8-4cd2-856d-aaaebc279797",
|
||||
"name": "Send Audio to the Channel",
|
||||
"type": "n8n-nodes-base.telegram",
|
||||
"position": [
|
||||
3180,
|
||||
820
|
||||
],
|
||||
"parameters": {
|
||||
"chatId": "-4170994782",
|
||||
"operation": "sendAudio",
|
||||
"binaryData": true,
|
||||
"additionalFields": {
|
||||
"caption": "نهاية القصة ... "
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"telegramApi": {
|
||||
"id": "k3RE6o9brmFRFE9p",
|
||||
"name": "Telegram account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.1
|
||||
},
|
||||
{
|
||||
"id": "162049a0-620a-4044-966a-27b665827b60",
|
||||
"name": "Create a Story for Kids",
|
||||
"type": "@n8n/n8n-nodes-langchain.chainSummarization",
|
||||
"position": [
|
||||
1980,
|
||||
960
|
||||
],
|
||||
"parameters": {
|
||||
"options": {
|
||||
"summarizationMethodAndPrompts": {
|
||||
"values": {
|
||||
"prompt": "Create a captivating short tale for kids, whisking them away to magical lands brimming with wisdom. Explore diverse themes in a fun and simple way, weaving in valuable messages. Dive into cultural adventures with lively language that sparks curiosity. Let your story inspire young minds through enchanting narratives that linger long after the last word. Begin crafting your imaginative tale now! (Approximately 900 characters)\n\n\n\"{text}\"\n\nCONCISE SUMMARY:",
|
||||
"summarizationMethod": "stuff"
|
||||
}
|
||||
}
|
||||
},
|
||||
"chunkingMode": "advanced"
|
||||
},
|
||||
"executeOnce": true,
|
||||
"typeVersion": 2
|
||||
}
|
||||
],
|
||||
"pinData": {},
|
||||
"connections": {
|
||||
"Schedule Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Create a Story for Kids",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"OpenAI Chat Model": {
|
||||
"ai_languageModel": [
|
||||
[
|
||||
{
|
||||
"node": "Create a Story for Kids",
|
||||
"type": "ai_languageModel",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"OpenAI Chat Model1": {
|
||||
"ai_languageModel": [
|
||||
[
|
||||
{
|
||||
"node": "Translate the Story to Arabic",
|
||||
"type": "ai_languageModel",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"OpenAI Chat Model2": {
|
||||
"ai_languageModel": [
|
||||
[
|
||||
{
|
||||
"node": "Create a Prompt for DALL-E",
|
||||
"type": "ai_languageModel",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Create a Story for Kids": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Translate the Story to Arabic",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
},
|
||||
{
|
||||
"node": "Create a Prompt for DALL-E",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Create a Prompt for DALL-E": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Generate an Image for the Story",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Generate Audio for the Story": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Send Audio to the Channel",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Translate the Story to Arabic": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Send the Story To Channel",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
},
|
||||
{
|
||||
"node": "Generate Audio for the Story",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Generate an Image for the Story": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Send Image to the Channel",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Recursive Character Text Splitter": {
|
||||
"ai_textSplitter": [
|
||||
[
|
||||
{
|
||||
"node": "Create a Story for Kids",
|
||||
"type": "ai_textSplitter",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
487
workflows/Schedule/0526_Schedule_Slack_Create_Scheduled.json
Normal file
487
workflows/Schedule/0526_Schedule_Slack_Create_Scheduled.json
Normal file
@@ -0,0 +1,487 @@
|
||||
{
|
||||
"meta": {
|
||||
"instanceId": "26ba763460b97c249b82942b23b6384876dfeb9327513332e743c5f6219c2b8e"
|
||||
},
|
||||
"nodes": [
|
||||
{
|
||||
"id": "2b3112a9-046e-4aae-8fcc-95bddf3bb02e",
|
||||
"name": "Slack",
|
||||
"type": "n8n-nodes-base.slack",
|
||||
"position": [
|
||||
828,
|
||||
327
|
||||
],
|
||||
"parameters": {
|
||||
"limit": 10,
|
||||
"query": "in:#n8n-tickets has::ticket:",
|
||||
"options": {},
|
||||
"operation": "search"
|
||||
},
|
||||
"credentials": {
|
||||
"slackApi": {
|
||||
"id": "VfK3js0YdqBdQLGP",
|
||||
"name": "Slack account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.2
|
||||
},
|
||||
{
|
||||
"id": "65fd6821-4d19-436c-81d9-9bdb0f5efddd",
|
||||
"name": "OpenAI Chat Model",
|
||||
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
|
||||
"position": [
|
||||
1920,
|
||||
480
|
||||
],
|
||||
"parameters": {
|
||||
"options": {}
|
||||
},
|
||||
"credentials": {
|
||||
"openAiApi": {
|
||||
"id": "8gccIjcuf3gvaoEr",
|
||||
"name": "OpenAi account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "85125704-7363-40de-af84-f267f8c7e919",
|
||||
"name": "Structured Output Parser",
|
||||
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
|
||||
"position": [
|
||||
2100,
|
||||
480
|
||||
],
|
||||
"parameters": {
|
||||
"jsonSchema": "{\n \"type\": \"object\",\n \"properties\": {\n \"title\": { \"type\": \"string\" },\n \"summary\": { \"type\": \"string\" },\n \"ideas\": {\n \"type\": \"array\",\n \"items\": { \"type\": \"string\" }\n },\n \"priority\": { \"type\": \"string\" }\n }\n}"
|
||||
},
|
||||
"typeVersion": 1.1
|
||||
},
|
||||
{
|
||||
"id": "eda8851a-1929-4f2f-9149-627c0fe62fbc",
|
||||
"name": "Schedule Trigger",
|
||||
"type": "n8n-nodes-base.scheduleTrigger",
|
||||
"position": [
|
||||
628,
|
||||
327
|
||||
],
|
||||
"parameters": {
|
||||
"rule": {
|
||||
"interval": [
|
||||
{
|
||||
"field": "minutes"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
},
|
||||
{
|
||||
"id": "ad0d56b5-5caf-4fc0-bdbb-4e6207e4eb03",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
580,
|
||||
112.87898199907983
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 432.4578914269739,
|
||||
"height": 427.09547550768553,
|
||||
"content": "## 1. Query Slack for Messages \n[Read more about the Slack Trigger](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.slack)\n\nSlack API search uses the same search syntax found in the app. Here, we'll use it to filter the latest messages with the ticket emoji within our designated channel called #n8n-tickets. "
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "d4ebe5b3-6d9a-4547-8af8-0985206c4ca4",
|
||||
"name": "Sticky Note1",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
1040,
|
||||
180.44851541532478
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 711.6907825442045,
|
||||
"height": 632.7258798316449,
|
||||
"content": "## 2. Decide If We Need to Create a New Ticket \n[Read more about using Linear](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.linear)\n\nFor generated issues, we add the message id to the description of the message so that we can check them at this point in the workflow to avoid duplicates."
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "b2920271-6698-47a4-8cac-ea4cec7b47d6",
|
||||
"name": "Get Values",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
1100,
|
||||
360
|
||||
],
|
||||
"parameters": {
|
||||
"mode": "raw",
|
||||
"options": {},
|
||||
"jsonOutput": "={\n \"id\": \"#{{ $json.permalink.split('/').last() }}\",\n \"type\": \"{{ $json.type }}\",\n \"title\": \"__NOT_SET__\",\n \"channel\": \"{{ $json.channel.name }}\",\n \"user\": \"{{ $json.username }} ({{ $json.user }})\",\n \"ts\": \"{{ $json.ts }}\",\n \"permalink\": \"{{ $json.permalink }}\",\n \"message\": \"{{ $json.text.replaceAll('\"','\\\\\"').replaceAll('\\n', '\\\\n') }}\"\n}"
|
||||
},
|
||||
"typeVersion": 3.3
|
||||
},
|
||||
{
|
||||
"id": "c4a4db2a-5d1c-4726-8c98-aef57fdcfaa6",
|
||||
"name": "Create New Ticket?",
|
||||
"type": "n8n-nodes-base.if",
|
||||
"position": [
|
||||
1600,
|
||||
360
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"conditions": {
|
||||
"options": {
|
||||
"leftValue": "",
|
||||
"caseSensitive": true,
|
||||
"typeValidation": "strict"
|
||||
},
|
||||
"combinator": "and",
|
||||
"conditions": [
|
||||
{
|
||||
"id": "c11109b6-ee45-4b52-adc3-4be5fe420202",
|
||||
"operator": {
|
||||
"type": "boolean",
|
||||
"operation": "false",
|
||||
"singleValue": true
|
||||
},
|
||||
"leftValue": "={{ Boolean(($json.hashes ?? []).includes($json.id)) }}",
|
||||
"rightValue": "=false"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "46acb0de-1df1-4116-8aaf-704ec6644d7c",
|
||||
"name": "Sticky Note2",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
1780,
|
||||
80
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 530.6864600881105,
|
||||
"height": 578.3950618708791,
|
||||
"content": "## 3. Use AI to Generate Ticket Contents\n[Read more about using Basic LLM Chain](https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.chainllm)\n\nFor this demo, we've instructed the AI to do the following:\n* Generate a descriptive title of the issue\n* Summarise the user message into an actionable request.\n* Determine a prority based on tone and context of the user message. \n* Can offer possible fixes through use of tools or RAG. (not implemented)\n"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "503d4ae7-9d5b-4dab-94a2-da28bc0e49da",
|
||||
"name": "Sticky Note6",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
200,
|
||||
120
|
||||
],
|
||||
"parameters": {
|
||||
"width": 359.6648027457353,
|
||||
"height": 400.4748439127683,
|
||||
"content": "## Try It Out!\n### This workflow does the following:\n* Monitors a Slack channel for new user messages asking for assistance\n* Only user messages which are tagged with the ticket(🎫) emoji are processed.\n* Linear is first checked to see if a ticket was created for the user message.\n* User messages are sent to ChatGPT to generate title, description and priority.\n* Support ticket is created in Linear.\n\n### Need Help?\nJoin the [Discord](https://discord.com/invite/XPKeKXeB7d) or ask in the [Forum](https://community.n8n.io/)!\n\nHappy Hacking!"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "11e423a4-36b6-4ecd-8bf7-58a7d4a1aa9a",
|
||||
"name": "Get Existing Issues",
|
||||
"type": "n8n-nodes-base.linear",
|
||||
"position": [
|
||||
1260,
|
||||
360
|
||||
],
|
||||
"parameters": {
|
||||
"operation": "getAll"
|
||||
},
|
||||
"credentials": {
|
||||
"linearApi": {
|
||||
"id": "Nn0F7T9FtvRUtEbe",
|
||||
"name": "Linear account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1,
|
||||
"alwaysOutputData": true
|
||||
},
|
||||
{
|
||||
"id": "413fde96-346a-468e-80b7-d465bd8add14",
|
||||
"name": "Generate Ticket Using ChatGPT",
|
||||
"type": "@n8n/n8n-nodes-langchain.chainLlm",
|
||||
"position": [
|
||||
1920,
|
||||
320
|
||||
],
|
||||
"parameters": {
|
||||
"text": "=The \"user issue\" is enclosed by 3 backticks:\n```\n{{ $('Get Values').item.json.message }}\n```\nYou will complete the following 4 tasks:\n1. Generate a title intended for a support ticket based on the user issue only. Be descriptive but use no more than 10 words.\n2. Summarise the user issue only by identifying the key expectations and steps that were taken to reach the conclusion.\n3. Offer at most 3 suggestions to debug or resolve the user issue only. ignore the previous issues for this task.\n4. Identify the urgency of the user issue only and denote the priority as one of \"low\", \"medium\", \"high\" or \"urgent\". If you cannot determine the urgency of the issue, then assign the \"low\" priority. Also consider that requests which require action either today or tomorrow should be prioritised as \"high\".",
|
||||
"promptType": "define",
|
||||
"hasOutputParser": true
|
||||
},
|
||||
"typeVersion": 1.4
|
||||
},
|
||||
{
|
||||
"id": "66aecf53-6e8a-4ee8-88c3-be6b7d8d0527",
|
||||
"name": "Sticky Note3",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
2340,
|
||||
206
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 374.7406065828194,
|
||||
"height": 352.3865785298774,
|
||||
"content": "## 4. Create New Ticket in Linear\n[Read more about using Linear](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.linear)\n\nWith our ticket contents generated, we can now create our ticket in Linear for support to handle.\n"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "f7898b7b-f60a-4315-a870-8c8ec4ad848f",
|
||||
"name": "Create Ticket",
|
||||
"type": "n8n-nodes-base.linear",
|
||||
"position": [
|
||||
2480,
|
||||
380
|
||||
],
|
||||
"parameters": {
|
||||
"title": "={{ $json.output.title }}",
|
||||
"teamId": "1c721608-321d-4132-ac32-6e92d04bb487",
|
||||
"additionalFields": {
|
||||
"stateId": "92962324-3d1f-4cf8-993b-0c982cc95245",
|
||||
"priorityId": "={{ { 'urgent': 1, 'high': 2, 'medium': 3, 'low': 4 }[$json.output.priority.toLowerCase()] ?? 0 }}",
|
||||
"description": "=## {{ $json.output.summary }}\n\n### Suggestions\n{{ $json.output.ideas.map(idea => '* ' + idea).join('\\n') }}\n\n## Original Message\n{{ $('Get Values').item.json[\"user\"] }} asks:\n> {{ $('Get Values').item.json[\"message\"] }}\n\n### Metadata\nchannel: {{ $('Get Values').item.json.channel }}\nts: {{ $('Get Values').item.json.ts }}\npermalink: {{ $('Get Values').item.json.permalink }}\nhash: {{ $('Get Values').item.json.id }}\n"
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"linearApi": {
|
||||
"id": "Nn0F7T9FtvRUtEbe",
|
||||
"name": "Linear account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "0b706c12-6ce0-41af-ad4b-9d98d7d03a41",
|
||||
"name": "Merge",
|
||||
"type": "n8n-nodes-base.merge",
|
||||
"position": [
|
||||
1440,
|
||||
360
|
||||
],
|
||||
"parameters": {
|
||||
"mode": "combine",
|
||||
"options": {},
|
||||
"combinationMode": "multiplex"
|
||||
},
|
||||
"typeVersion": 2.1
|
||||
},
|
||||
{
|
||||
"id": "d5b30127-f237-459d-860a-2589e3b54fb8",
|
||||
"name": "Get Hashes Only",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
1260,
|
||||
640
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"assignments": {
|
||||
"assignments": [
|
||||
{
|
||||
"id": "9b0e8527-ea17-4b1e-ba62-287111f4b37e",
|
||||
"name": "hashes",
|
||||
"type": "array",
|
||||
"value": "={{ $json.descriptions.map(desc => desc.match(/hash\\:\\s([\\w#]+)/i)[1]) }}"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 3.3
|
||||
},
|
||||
{
|
||||
"id": "9de103e1-b6a4-4454-b1b9-73eff730fcb6",
|
||||
"name": "Collect Descriptions",
|
||||
"type": "n8n-nodes-base.aggregate",
|
||||
"position": [
|
||||
1260,
|
||||
500
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"fieldsToAggregate": {
|
||||
"fieldToAggregate": [
|
||||
{
|
||||
"renameField": true,
|
||||
"outputFieldName": "descriptions",
|
||||
"fieldToAggregate": "description"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1,
|
||||
"alwaysOutputData": true
|
||||
},
|
||||
{
|
||||
"id": "af34916f-7888-4d41-aee6-752b78e88c0c",
|
||||
"name": "Sticky Note4",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
780,
|
||||
300
|
||||
],
|
||||
"parameters": {
|
||||
"width": 204.96868508214473,
|
||||
"height": 296.735132421306,
|
||||
"content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n🚨**Required**\n* Set the Slack channel to monitor here."
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "58ab44f7-5fe5-4804-8bf1-36f351d86528",
|
||||
"name": "Sticky Note5",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
2440,
|
||||
360
|
||||
],
|
||||
"parameters": {
|
||||
"width": 183.49787916474958,
|
||||
"height": 296.735132421306,
|
||||
"content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n🚨**Required**\n* Set the Linear Team Name or ID here."
|
||||
},
|
||||
"typeVersion": 1
|
||||
}
|
||||
],
|
||||
"pinData": {},
|
||||
"connections": {
|
||||
"Merge": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Create New Ticket?",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Slack": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Get Values",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Get Values": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Merge",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
},
|
||||
{
|
||||
"node": "Get Existing Issues",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Get Hashes Only": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Merge",
|
||||
"type": "main",
|
||||
"index": 1
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Schedule Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Slack",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"OpenAI Chat Model": {
|
||||
"ai_languageModel": [
|
||||
[
|
||||
{
|
||||
"node": "Generate Ticket Using ChatGPT",
|
||||
"type": "ai_languageModel",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Create New Ticket?": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Generate Ticket Using ChatGPT",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Get Existing Issues": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Collect Descriptions",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Collect Descriptions": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Get Hashes Only",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Structured Output Parser": {
|
||||
"ai_outputParser": [
|
||||
[
|
||||
{
|
||||
"node": "Generate Ticket Using ChatGPT",
|
||||
"type": "ai_outputParser",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Generate Ticket Using ChatGPT": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Create Ticket",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
747
workflows/Schedule/0527_Schedule_Manual_Update_Scheduled.json
Normal file
747
workflows/Schedule/0527_Schedule_Manual_Update_Scheduled.json
Normal file
@@ -0,0 +1,747 @@
|
||||
{
|
||||
"meta": {
|
||||
"instanceId": "2b1cc1a8b0a2fb9caab11ab2d5eb3712f9973066051b2e898cf4041a1f2a7757",
|
||||
"templateId": "2324",
|
||||
"templateCredsSetupCompleted": true
|
||||
},
|
||||
"nodes": [
|
||||
{
|
||||
"id": "71b06728-7f59-49e3-9365-3281189a6659",
|
||||
"name": "When clicking \"Test workflow\"",
|
||||
"type": "n8n-nodes-base.manualTrigger",
|
||||
"position": [
|
||||
920,
|
||||
340
|
||||
],
|
||||
"parameters": {},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "b37019e3-c7ab-4119-986d-c27d082a036e",
|
||||
"name": "Input",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
1340,
|
||||
340
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"assignments": {
|
||||
"assignments": [
|
||||
{
|
||||
"id": "fcc97354-b9f6-4459-a004-46e87902c77c",
|
||||
"name": "company_input",
|
||||
"type": "string",
|
||||
"value": "={{ $json.input }}"
|
||||
},
|
||||
{
|
||||
"id": "e5415c49-5204-45b1-a0e9-814157127b12",
|
||||
"name": "row_number",
|
||||
"type": "number",
|
||||
"value": "={{ $json.row_number }}"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 3.3
|
||||
},
|
||||
{
|
||||
"id": "7d5d53ac-6d3c-4b24-97c7-deb6b76749e5",
|
||||
"name": "OpenAI Chat Model",
|
||||
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
|
||||
"position": [
|
||||
2020,
|
||||
660
|
||||
],
|
||||
"parameters": {
|
||||
"model": "gpt-4o",
|
||||
"options": {
|
||||
"temperature": 0.3
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"openAiApi": {
|
||||
"id": "FMTQypGcsAwaRQdC",
|
||||
"name": "OpenAi account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "24e2f3b0-8b90-49a9-bde6-0fb0c2baf52a",
|
||||
"name": "Get website content",
|
||||
"type": "@n8n/n8n-nodes-langchain.toolWorkflow",
|
||||
"position": [
|
||||
2580,
|
||||
680
|
||||
],
|
||||
"parameters": {
|
||||
"name": "get_website_content",
|
||||
"source": "parameter",
|
||||
"description": "This tool will return the text from the given URL. ",
|
||||
"workflowJson": "{\n \"meta\": {\n \"templateCredsSetupCompleted\": true,\n \"instanceId\": \"2b1cc1a8b0a2fb9caab11ab2d5eb3712f9973066051b2e898cf4041a1f2a7757\"\n },\n \"nodes\": [\n {\n \"parameters\": {},\n \"id\": \"475eaf3c-7e11-457e-8b72-4d3e683e2f80\",\n \"name\": \"Execute Workflow Trigger\",\n \"type\": \"n8n-nodes-base.executeWorkflowTrigger\",\n \"typeVersion\": 1,\n \"position\": [\n 260,\n 340\n ]\n },\n {\n \"parameters\": {\n \"url\": \"={{ $json.query.url }}\",\n \"options\": {}\n },\n \"id\": \"321fbc74-d749-4f9b-954e-7cad37601ddf\",\n \"name\": \"Visit Website\",\n \"type\": \"n8n-nodes-base.httpRequest\",\n \"typeVersion\": 4.2,\n \"position\": [\n 440,\n 340\n ]\n },\n {\n \"parameters\": {\n \"operation\": \"extractHtmlContent\",\n \"extractionValues\": {\n \"values\": [\n {\n \"key\": \"body\",\n \"cssSelector\": \"html\",\n \"skipSelectors\": \"head\"\n }\n ]\n },\n \"options\": {\n \"cleanUpText\": true\n }\n },\n \"id\": \"6e51732a-4999-4805-838b-f692e9965197\",\n \"name\": \"HTML\",\n \"type\": \"n8n-nodes-base.html\",\n \"typeVersion\": 1.2,\n \"position\": [\n 620,\n 340\n ]\n }\n ],\n \"connections\": {\n \"Execute Workflow Trigger\": {\n \"main\": [\n [\n {\n \"node\": \"Visit Website\",\n \"type\": \"main\",\n \"index\": 0\n }\n ]\n ]\n },\n \"Visit Website\": {\n \"main\": [\n [\n {\n \"node\": \"HTML\",\n \"type\": \"main\",\n \"index\": 0\n }\n ]\n ]\n }\n },\n \"pinData\": {\n \"Execute Workflow Trigger\": [\n {\n \"query\": {\n \"url\": \"https://www.lemlist.com\"\n }\n }\n ]\n }\n}",
|
||||
"jsonSchemaExample": "{\n\t\"url\": \"https://www.lemlist.com\"\n}",
|
||||
"specifyInputSchema": true,
|
||||
"responsePropertyName": "body"
|
||||
},
|
||||
"typeVersion": 1.1
|
||||
},
|
||||
{
|
||||
"id": "ff7ab74c-dfc6-43ce-8c57-6edf935b4915",
|
||||
"name": "SerpAPI - Search Google",
|
||||
"type": "@n8n/n8n-nodes-langchain.toolSerpApi",
|
||||
"position": [
|
||||
2300,
|
||||
660
|
||||
],
|
||||
"parameters": {
|
||||
"options": {}
|
||||
},
|
||||
"credentials": {
|
||||
"serpApi": {
|
||||
"id": "ECK6FimAloRJOZMG",
|
||||
"name": "SerpAPI account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "4fe311f2-4983-4380-b4ed-a827a406fce5",
|
||||
"name": "Structured Output Parser",
|
||||
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
|
||||
"position": [
|
||||
2880,
|
||||
660
|
||||
],
|
||||
"parameters": {
|
||||
"schemaType": "manual",
|
||||
"inputSchema": "{\n\t\"type\": \"object\",\n\t\"properties\": {\n\t\t\"case_study_link\": {\n\t\t\t\"type\":[\"string\", \"null\"]\n\t\t},\n \t\t\"domain\": {\n\t\t\t\"type\": [\"string\", \"null\"]\n\t\t},\n \"linkedinUrl\": {\n\t\t\t\"type\": [\"string\", \"null\"]\n\t\t},\n \t\"market\": {\n\t\t\t\"type\": [\"string\", \"null\"]\n\t\t},\n\t\t\"cheapest_plan\": {\n\t\t\t\"type\": [\"number\", \"null\"]\n\t\t},\n\t\"has_enterprise_plan\": {\n\t\t\t\"type\": [\"boolean\", \"null\"]\n\t\t},\n\t\"has_API\": {\n\t\t\t\"type\": [\"boolean\", \"null\"]\n\t\t},\n\t\"has_free_trial\": {\n\t\t\t\"type\": [\"boolean\", \"null\"]\n\t\t},\n\t\"integrations\": {\n\t\t\t\"type\": [\"array\",\"null\"],\n \"items\": {\n\t\t\t\t\"type\": \"string\"\n\t\t\t}\n\t\t}\n\t}\n}"
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
},
|
||||
{
|
||||
"id": "89ed0723-4dbe-428d-b1a9-ebdf515e42bb",
|
||||
"name": "Loop Over Items",
|
||||
"type": "n8n-nodes-base.splitInBatches",
|
||||
"position": [
|
||||
1600,
|
||||
340
|
||||
],
|
||||
"parameters": {
|
||||
"options": {}
|
||||
},
|
||||
"typeVersion": 3
|
||||
},
|
||||
{
|
||||
"id": "34ea3862-e8e5-4bf2-a9aa-2ad084376bb5",
|
||||
"name": "AI Researcher Output Data",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
2960,
|
||||
340
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"assignments": {
|
||||
"assignments": [
|
||||
{
|
||||
"id": "4109ca11-1bb8-4f5c-8bec-a962f44b0746",
|
||||
"name": "domain",
|
||||
"type": "string",
|
||||
"value": "={{ $json.output.domain }}"
|
||||
},
|
||||
{
|
||||
"id": "7f492768-375e-48fa-866b-644b2b5cbd68",
|
||||
"name": "linkedinUrl",
|
||||
"type": "string",
|
||||
"value": "={{ $json.output.linkedinUrl }}"
|
||||
},
|
||||
{
|
||||
"id": "e30b0d07-68db-45a1-9593-fd6ce24a1d50",
|
||||
"name": "market",
|
||||
"type": "string",
|
||||
"value": "={{ $json.output.market }}"
|
||||
},
|
||||
{
|
||||
"id": "0c03a51e-2c07-4583-85c6-d3d2ee81c5d1",
|
||||
"name": "cheapest_plan",
|
||||
"type": "number",
|
||||
"value": "={{ $json.output.cheapest_plan }}"
|
||||
},
|
||||
{
|
||||
"id": "0c9622d0-8446-4663-9a94-964b5df851f1",
|
||||
"name": "has_enterprise_plan",
|
||||
"type": "boolean",
|
||||
"value": "={{ $json.output.has_enterprise_plan }}"
|
||||
},
|
||||
{
|
||||
"id": "564cf6ea-457f-4762-bc19-6900b7d5743c",
|
||||
"name": "has_API",
|
||||
"type": "boolean",
|
||||
"value": "={{ $json.output.has_API }}"
|
||||
},
|
||||
{
|
||||
"id": "7fd39897-65c3-45d6-9563-8254f55ecef0",
|
||||
"name": "has_free_trial",
|
||||
"type": "boolean",
|
||||
"value": "={{ $json.output.has_free_trial }}"
|
||||
},
|
||||
{
|
||||
"id": "26477939-d407-4cae-92b2-9a9dc0f53a64",
|
||||
"name": "integrations",
|
||||
"type": "array",
|
||||
"value": "={{ $json.output.integrations }}"
|
||||
},
|
||||
{
|
||||
"id": "f0cc61d1-6b6b-4142-8627-4a4c721b19a1",
|
||||
"name": "case_study_link",
|
||||
"type": "string",
|
||||
"value": "={{ $json.output.case_study_link }}"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 3.3
|
||||
},
|
||||
{
|
||||
"id": "ff1cb26d-6138-4ee1-9f28-4ecc80c1c8ae",
|
||||
"name": "Google Sheets - Update Row with data",
|
||||
"type": "n8n-nodes-base.googleSheets",
|
||||
"position": [
|
||||
3600,
|
||||
700
|
||||
],
|
||||
"parameters": {
|
||||
"columns": {
|
||||
"value": {
|
||||
"domain": "={{ $json.domain }}",
|
||||
"market": "={{ $json.market }}",
|
||||
"row_number": "={{ $json.row_number }}",
|
||||
"linkedinUrl": "={{ $json.linkedinUrl }}",
|
||||
"integrations": "={{ $json.integrations }}",
|
||||
"cheapest_plan": "={{ $json.cheapest_plan }}",
|
||||
"has_free_trial": "={{ $json.has_free_trial }}",
|
||||
"enrichment_status": "done",
|
||||
"has_entreprise_plan": "={{ $json.has_enterprise_plan }}",
|
||||
"last_case_study_link": "={{ $json.case_study_link }}"
|
||||
},
|
||||
"schema": [
|
||||
{
|
||||
"id": "input",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": true,
|
||||
"required": false,
|
||||
"displayName": "input",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "domain",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "domain",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "linkedinUrl",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "linkedinUrl",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "has_free_trial",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "has_free_trial",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "cheapest_plan",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "cheapest_plan",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "has_entreprise_plan",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "has_entreprise_plan",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "last_case_study_link",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": false,
|
||||
"required": false,
|
||||
"displayName": "last_case_study_link",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "market",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "market",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "integrations",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "integrations",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "enrichment_status",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "enrichment_status",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "row_number",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": false,
|
||||
"readOnly": true,
|
||||
"required": false,
|
||||
"displayName": "row_number",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
}
|
||||
],
|
||||
"mappingMode": "defineBelow",
|
||||
"matchingColumns": [
|
||||
"row_number"
|
||||
]
|
||||
},
|
||||
"options": {},
|
||||
"operation": "update",
|
||||
"sheetName": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "gid=0",
|
||||
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/19U7gAgkUEz6mbFcnygf1zKDdGvY6OAdUqq3bZQWgjxE/edit#gid=0",
|
||||
"cachedResultName": "Sheet1"
|
||||
},
|
||||
"documentId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "19U7gAgkUEz6mbFcnygf1zKDdGvY6OAdUqq3bZQWgjxE",
|
||||
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/19U7gAgkUEz6mbFcnygf1zKDdGvY6OAdUqq3bZQWgjxE/edit?usp=drivesdk",
|
||||
"cachedResultName": "Enrich companies using AI agents"
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"googleSheetsOAuth2Api": {
|
||||
"id": "GC2OQl3Jvy543LT2",
|
||||
"name": "Google Sheets account - perso"
|
||||
}
|
||||
},
|
||||
"typeVersion": 4.3
|
||||
},
|
||||
{
|
||||
"id": "6611f852-b4d6-4a07-9428-db206ef57cc3",
|
||||
"name": "Merge data",
|
||||
"type": "n8n-nodes-base.merge",
|
||||
"position": [
|
||||
3240,
|
||||
180
|
||||
],
|
||||
"parameters": {
|
||||
"mode": "combine",
|
||||
"options": {},
|
||||
"combinationMode": "mergeByPosition"
|
||||
},
|
||||
"typeVersion": 2.1
|
||||
},
|
||||
{
|
||||
"id": "2a19516b-33a1-4987-9b5f-242a084621e0",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
380,
|
||||
240
|
||||
],
|
||||
"parameters": {
|
||||
"width": 409.0131656322444,
|
||||
"height": 658.0614601225933,
|
||||
"content": "## Read Me\n\nThis workflow allows you to do account research with the web using AI.\n\nThe advanced AI module has 2 capabilities: \n- Research Google using SerpAPI\n- Visit and get website content using a sub-workflow\n\n\nFrom an unstructured input like a domain or a company name. \n\nIt will return the following properties: \n- domain\n- company Linkedin Url\n- cheapest plan\n- has free trial\n- has entreprise plan\n- has API\n- market (B2B or B2C)\n\n\nThe strength of n8n here is that you can adapt this workflow to research whatever information you need.\n\nYou just have to precise it in the prompt and to precise the output format in the \"Strutured Output Parser\" module.\n\n[Click here to find more detailed instructions with video guide.](https://lempire.notion.site/AI-Web-research-with-n8n-a25aae3258d0423481a08bd102f16906)\n"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "67d485c9-3289-4bb3-9523-cd24c0b1aa05",
|
||||
"name": "Get rows to enrich",
|
||||
"type": "n8n-nodes-base.googleSheets",
|
||||
"position": [
|
||||
1140,
|
||||
340
|
||||
],
|
||||
"parameters": {
|
||||
"options": {
|
||||
"returnAllMatches": "returnAllMatches"
|
||||
},
|
||||
"filtersUI": {
|
||||
"values": [
|
||||
{
|
||||
"lookupColumn": "enrichment_status"
|
||||
}
|
||||
]
|
||||
},
|
||||
"sheetName": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "gid=0",
|
||||
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/19U7gAgkUEz6mbFcnygf1zKDdGvY6OAdUqq3bZQWgjxE/edit#gid=0",
|
||||
"cachedResultName": "Sheet1"
|
||||
},
|
||||
"documentId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "19U7gAgkUEz6mbFcnygf1zKDdGvY6OAdUqq3bZQWgjxE",
|
||||
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/19U7gAgkUEz6mbFcnygf1zKDdGvY6OAdUqq3bZQWgjxE/edit?usp=drivesdk",
|
||||
"cachedResultName": "Enrich companies using AI agents"
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"googleSheetsOAuth2Api": {
|
||||
"id": "GC2OQl3Jvy543LT2",
|
||||
"name": "Google Sheets account - perso"
|
||||
}
|
||||
},
|
||||
"typeVersion": 4.3
|
||||
},
|
||||
{
|
||||
"id": "eb0c95e7-2211-48d1-abaf-07cd0c76d3a6",
|
||||
"name": "Sticky Note1",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
1540,
|
||||
227.25301102878547
|
||||
],
|
||||
"parameters": {
|
||||
"width": 300.49399096535876,
|
||||
"height": 333.8263184006576,
|
||||
"content": "### Process rows 1 by 1\nThis module will allow us to process rows 1 by 1"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "8bf0deae-dda7-4e27-9ac7-978db14cca19",
|
||||
"name": "Sticky Note2",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
2740,
|
||||
560
|
||||
],
|
||||
"parameters": {
|
||||
"width": 300.49399096535876,
|
||||
"height": 236.01118609685022,
|
||||
"content": "Precise here the format in which you need the data to be "
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "dc4f1550-1e3c-4175-a2b3-10153dc2fd77",
|
||||
"name": "Sticky Note3",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
2180,
|
||||
200.2582716310755
|
||||
],
|
||||
"parameters": {
|
||||
"width": 300.49399096535876,
|
||||
"height": 279.8787004666023,
|
||||
"content": "### Ask AI what are the information you are looking for about the company"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "70fc73a0-303b-46e1-822d-cebdbccf8e32",
|
||||
"name": "Sticky Note4",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
2220,
|
||||
580
|
||||
],
|
||||
"parameters": {
|
||||
"height": 248.91749449109562,
|
||||
"content": "Get your free API key here https://serpapi.com/"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "0c1dafa9-28fe-4ef4-b80e-d4034e16f6c0",
|
||||
"name": "Schedule Trigger",
|
||||
"type": "n8n-nodes-base.scheduleTrigger",
|
||||
"position": [
|
||||
920,
|
||||
580
|
||||
],
|
||||
"parameters": {
|
||||
"rule": {
|
||||
"interval": [
|
||||
{
|
||||
"field": "hours",
|
||||
"hoursInterval": 2
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
},
|
||||
{
|
||||
"id": "8b5ebee9-f519-4621-bf2a-12891794f2c5",
|
||||
"name": "Sticky Note5",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
820,
|
||||
240
|
||||
],
|
||||
"parameters": {
|
||||
"width": 266.12865147126786,
|
||||
"height": 627.5654650079845,
|
||||
"content": "Run the workflow manually or activate it to run it every 2 hours"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "d7db2452-ba3d-4adb-bd8b-d17a92d1bce5",
|
||||
"name": "AI company researcher",
|
||||
"type": "@n8n/n8n-nodes-langchain.agent",
|
||||
"position": [
|
||||
2200,
|
||||
340
|
||||
],
|
||||
"parameters": {
|
||||
"text": "=This is the company I want you to research info about:\n{{ $json.company_input }}\n\nReturn me:\n- the linkedin URL of the company\n- the domain of the company. in this format ([domain].[tld])\n- market: if they are B2B or B2C. Only reply by \"B2B\" or \"B2B\"\n- the lowest paid plan the company is offering. If you are not sure, reply null.\n- the latest case study URL published on the website (find case study hub using google, and return the first case study link)\n- tell me if the company offer an API\n- tell me if the company has an enterprise plan\n- tell me if the company has a free trial mentionned in their homepage. reply false if you don't find strong evidence.\n- return an array with up to 5 tools the company is integrated with",
|
||||
"options": {
|
||||
"maxIterations": 10
|
||||
},
|
||||
"promptType": "define",
|
||||
"hasOutputParser": true
|
||||
},
|
||||
"typeVersion": 1.6
|
||||
},
|
||||
{
|
||||
"id": "f7896dbd-5c15-44e9-96ca-c695a66562cc",
|
||||
"name": "Search Google with ScrapingBee",
|
||||
"type": "@n8n/n8n-nodes-langchain.toolWorkflow",
|
||||
"position": [
|
||||
2300,
|
||||
1140
|
||||
],
|
||||
"parameters": {
|
||||
"name": "search_google",
|
||||
"source": "parameter",
|
||||
"description": "Call this tool to get results from a google search.",
|
||||
"workflowJson": "{\n \"meta\": {\n \"templateCredsSetupCompleted\": true,\n \"instanceId\": \"2b1cc1a8b0a2fb9caab11ab2d5eb3712f9973066051b2e898cf4041a1f2a7757\"\n },\n \"nodes\": [\n {\n \"parameters\": {},\n \"id\": \"fbb17d8d-e2dc-46ae-aba4-8c27cc9d8766\",\n \"name\": \"Execute Workflow Trigger\",\n \"type\": \"n8n-nodes-base.executeWorkflowTrigger\",\n \"typeVersion\": 1,\n \"position\": [\n 20,\n 460\n ]\n },\n {\n \"parameters\": {\n \"url\": \"https://app.scrapingbee.com/api/v1/store/google\",\n \"authentication\": \"genericCredentialType\",\n \"genericAuthType\": \"httpQueryAuth\",\n \"sendQuery\": true,\n \"queryParameters\": {\n \"parameters\": [\n {\n \"name\": \"search\",\n \"value\": \"={{ $json.query.google_search_query }}\"\n },\n {\n \"name\": \"language\",\n \"value\": \"en\"\n },\n {\n \"name\": \"nb_results\",\n \"value\": \"5\"\n }\n ]\n },\n \"options\": {}\n },\n \"id\": \"b938a2bd-030e-46d7-adee-4e3c85cfc1b3\",\n \"name\": \"Search Google\",\n \"type\": \"n8n-nodes-base.httpRequest\",\n \"typeVersion\": 4.2,\n \"position\": [\n 300,\n 460\n ],\n \"credentials\": {\n \"httpQueryAuth\": {\n \"id\": \"Pb2CIMT0tN838QPy\",\n \"name\": \"ScrapingBee\"\n }\n }\n },\n {\n \"parameters\": {\n \"assignments\": {\n \"assignments\": [\n {\n \"id\": \"096fee70-444e-4948-816c-752b20786062\",\n \"name\": \"response\",\n \"value\": \"={{ $json.organic_results }}\",\n \"type\": \"array\"\n }\n ]\n },\n \"options\": {}\n },\n \"id\": \"c5db1fb6-d875-47d2-97db-287777583f22\",\n \"name\": \"Response\",\n \"type\": \"n8n-nodes-base.set\",\n \"typeVersion\": 3.3,\n \"position\": [\n 520,\n 460\n ]\n }\n ],\n \"connections\": {\n \"Execute Workflow Trigger\": {\n \"main\": [\n [\n {\n \"node\": \"Search Google\",\n \"type\": \"main\",\n \"index\": 0\n }\n ]\n ]\n },\n \"Search Google\": {\n \"main\": [\n [\n {\n \"node\": \"Response\",\n \"type\": \"main\",\n \"index\": 0\n }\n ]\n ]\n }\n },\n \"pinData\": {\n \"Execute Workflow Trigger\": [\n {\n \"query\": {\n \"google_search_query\": \"site:lemlist.com pricing\"\n }\n }\n ]\n }\n}",
|
||||
"jsonSchemaExample": "{\n\t\"google_search_query\": \"site:lemlist.com pricing\"\n}",
|
||||
"specifyInputSchema": true
|
||||
},
|
||||
"typeVersion": 1.1
|
||||
},
|
||||
{
|
||||
"id": "7a89c803-8145-49c2-aafe-ec2aff0b2fbc",
|
||||
"name": "Sticky Note6",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
2220,
|
||||
940
|
||||
],
|
||||
"parameters": {
|
||||
"height": 340.14969579315925,
|
||||
"content": "Instead of SERP API module, you can also use this custom module for ScrapingBee. It is more cost-efficient.\n\nGet your free API key here https://www.scrapingbee.com/"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "79eff129-790b-46da-bef3-899eb6db3ced",
|
||||
"name": "Sticky Note7",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
1100,
|
||||
-20
|
||||
],
|
||||
"parameters": {
|
||||
"width": 194.6864335083109,
|
||||
"height": 525.6560478822986,
|
||||
"content": "In this workflow, I use Google Sheets to store the results. \n\nYou can use my template to get started faster:\n\n1. [Click on this link to get the template](https://docs.google.com/spreadsheets/d/1vR6s2nlTwu01v3GP7wvSRWS5W49FJIh20ZF7AUkmMDo/edit?usp=sharing)\n2. Make a copy of the Sheets\n3. Add the URL to this node and the node **\"Google Sheets - Update Row with data\"**\n\n\n"
|
||||
},
|
||||
"typeVersion": 1
|
||||
}
|
||||
],
|
||||
"pinData": {},
|
||||
"connections": {
|
||||
"Input": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Loop Over Items",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Merge data": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Google Sheets - Update Row with data",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Loop Over Items": {
|
||||
"main": [
|
||||
null,
|
||||
[
|
||||
{
|
||||
"node": "AI company researcher",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
},
|
||||
{
|
||||
"node": "Merge data",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Schedule Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Get rows to enrich",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"OpenAI Chat Model": {
|
||||
"ai_languageModel": [
|
||||
[
|
||||
{
|
||||
"node": "AI company researcher",
|
||||
"type": "ai_languageModel",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Get rows to enrich": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Input",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Get website content": {
|
||||
"ai_tool": [
|
||||
[
|
||||
{
|
||||
"node": "AI company researcher",
|
||||
"type": "ai_tool",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"AI company researcher": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "AI Researcher Output Data",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"SerpAPI - Search Google": {
|
||||
"ai_tool": [
|
||||
[
|
||||
{
|
||||
"node": "AI company researcher",
|
||||
"type": "ai_tool",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Structured Output Parser": {
|
||||
"ai_outputParser": [
|
||||
[
|
||||
{
|
||||
"node": "AI company researcher",
|
||||
"type": "ai_outputParser",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"AI Researcher Output Data": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Merge data",
|
||||
"type": "main",
|
||||
"index": 1
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"When clicking \"Test workflow\"": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Get rows to enrich",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Google Sheets - Update Row with data": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Loop Over Items",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
706
workflows/Schedule/0529_Schedule_Slack_Update_Webhook.json
Normal file
706
workflows/Schedule/0529_Schedule_Slack_Update_Webhook.json
Normal file
@@ -0,0 +1,706 @@
|
||||
{
|
||||
"meta": {
|
||||
"instanceId": "26ba763460b97c249b82942b23b6384876dfeb9327513332e743c5f6219c2b8e"
|
||||
},
|
||||
"nodes": [
|
||||
{
|
||||
"id": "acb0acd0-9bb6-4491-a1ca-4aa9a7820bbc",
|
||||
"name": "Schedule Trigger",
|
||||
"type": "n8n-nodes-base.scheduleTrigger",
|
||||
"position": [
|
||||
1440,
|
||||
420
|
||||
],
|
||||
"parameters": {
|
||||
"rule": {
|
||||
"interval": [
|
||||
{
|
||||
"field": "hours",
|
||||
"hoursInterval": 6
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
},
|
||||
{
|
||||
"id": "c6bb51c4-aec4-4a6d-ade2-1080bbbb6fb3",
|
||||
"name": "Calculate Status",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
2367,
|
||||
460
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"assignments": {
|
||||
"assignments": [
|
||||
{
|
||||
"id": "b0cbcff5-bfcf-46a5-a386-65c4dd56c42f",
|
||||
"name": "date",
|
||||
"type": "string",
|
||||
"value": "={{ $json.headers.date }}"
|
||||
},
|
||||
{
|
||||
"id": "8c4155e4-bcc6-41dd-9582-346a57a7b997",
|
||||
"name": "Property",
|
||||
"type": "string",
|
||||
"value": "={{ $json.Property }}"
|
||||
},
|
||||
{
|
||||
"id": "f0320678-d352-486f-a633-9980c4fc73b2",
|
||||
"name": "UP_FROM_UP",
|
||||
"type": "boolean",
|
||||
"value": "={{ $json.statusCode < 400 && $json.Status === 'UP' }}"
|
||||
},
|
||||
{
|
||||
"id": "61783eb6-a683-44c9-aa0c-5fc5247da9fa",
|
||||
"name": "DOWN_FROM_DOWN",
|
||||
"type": "boolean",
|
||||
"value": "={{ $json.statusCode >= 400 && $json.Status === 'DOWN' }}"
|
||||
},
|
||||
{
|
||||
"id": "1052a69e-4456-445d-bdd9-2765b334cf64",
|
||||
"name": "UP_FROM_DOWN",
|
||||
"type": "boolean",
|
||||
"value": "={{ $json.statusCode < 400 && $json.Status === 'DOWN' }}"
|
||||
},
|
||||
{
|
||||
"id": "9af72278-5b29-406a-b4c5-f47f3d805063",
|
||||
"name": "DOWN_FROM_UP",
|
||||
"type": "boolean",
|
||||
"value": "={{ $json.statusCode >= 400 && $json.Status === 'UP' }}"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 3.3
|
||||
},
|
||||
{
|
||||
"id": "50307dca-fa88-4a19-91a4-456866e529d4",
|
||||
"name": "Get Sites",
|
||||
"type": "n8n-nodes-base.googleSheets",
|
||||
"position": [
|
||||
1700,
|
||||
420
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"sheetName": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "gid=0",
|
||||
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1t2RT3lxyxXj3X1y6klWvyhEJEazpkT3Hpi2ttEJRVT4/edit#gid=0",
|
||||
"cachedResultName": "dashboard"
|
||||
},
|
||||
"documentId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "1t2RT3lxyxXj3X1y6klWvyhEJEazpkT3Hpi2ttEJRVT4",
|
||||
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1t2RT3lxyxXj3X1y6klWvyhEJEazpkT3Hpi2ttEJRVT4/edit?usp=drivesdk",
|
||||
"cachedResultName": "n8n uptime"
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"googleSheetsOAuth2Api": {
|
||||
"id": "XHvC7jIRR8A2TlUl",
|
||||
"name": "Google Sheets account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 4.3
|
||||
},
|
||||
{
|
||||
"id": "4b0cb0cc-282b-4be9-a4ca-0c4eb10d896e",
|
||||
"name": "Send Chat Alert",
|
||||
"type": "n8n-nodes-base.slack",
|
||||
"position": [
|
||||
3100,
|
||||
340
|
||||
],
|
||||
"parameters": {
|
||||
"text": "=From: n8n uptime\nDate: {{ $('Calculate Status').item.json[\"date\"] }}\n\n{{ $('Calculate Status').item.json.Property }} is {{ $('Calculate Status').item.json[\"DOWN_FROM_UP\"] ? 'DOWN' : 'UP' }}",
|
||||
"select": "channel",
|
||||
"channelId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "C06RS1WPUQ6",
|
||||
"cachedResultName": "general"
|
||||
},
|
||||
"otherOptions": {}
|
||||
},
|
||||
"credentials": {
|
||||
"slackApi": {
|
||||
"id": "VfK3js0YdqBdQLGP",
|
||||
"name": "Slack account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.1
|
||||
},
|
||||
{
|
||||
"id": "ab303995-bd82-4aef-8fe1-ce808c4dbd33",
|
||||
"name": "Send Email Alert",
|
||||
"type": "n8n-nodes-base.gmail",
|
||||
"position": [
|
||||
2940,
|
||||
340
|
||||
],
|
||||
"parameters": {
|
||||
"sendTo": "no-reply@example.com",
|
||||
"message": "=From: n8n uptime\nDate: {{ $('Calculate Status').item.json[\"date\"] }}\n\n{{ $('Calculate Status').item.json.Property }} is {{ $('Calculate Status').item.json[\"DOWN_FROM_UP\"] ? 'DOWN' : 'UP' }}",
|
||||
"options": {
|
||||
"senderName": "n8n uptime",
|
||||
"appendAttribution": false
|
||||
},
|
||||
"subject": "=n8n uptime: {{ $('Calculate Status').item.json.Property }} is {{ $('Calculate Status').item.json[\"DOWN_FROM_UP\"] ? 'DOWN' : 'UP' }}",
|
||||
"emailType": "text"
|
||||
},
|
||||
"credentials": {
|
||||
"gmailOAuth2": {
|
||||
"id": "Sf5Gfl9NiFTNXFWb",
|
||||
"name": "Gmail account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.1
|
||||
},
|
||||
{
|
||||
"id": "63343e68-be07-4d89-8363-140299dcf0b6",
|
||||
"name": "Log Uptime Event",
|
||||
"type": "n8n-nodes-base.googleSheets",
|
||||
"position": [
|
||||
2940,
|
||||
520
|
||||
],
|
||||
"parameters": {
|
||||
"columns": {
|
||||
"value": {
|
||||
"date": "={{ $json.date }}",
|
||||
"period": "={{ new Date($json.date).format(\"yyyy-MM\") }}"
|
||||
},
|
||||
"schema": [
|
||||
{
|
||||
"id": "period",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": false,
|
||||
"required": false,
|
||||
"displayName": "period",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "date",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "date",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "Property",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "Property",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "UP_FROM_UP",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "UP_FROM_UP",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "DOWN_FROM_DOWN",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "DOWN_FROM_DOWN",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "UP_FROM_DOWN",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "UP_FROM_DOWN",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "DOWN_FROM_UP",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "DOWN_FROM_UP",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
}
|
||||
],
|
||||
"mappingMode": "defineBelow",
|
||||
"matchingColumns": []
|
||||
},
|
||||
"options": {},
|
||||
"operation": "append",
|
||||
"sheetName": {
|
||||
"__rl": true,
|
||||
"mode": "name",
|
||||
"value": "={{ $('Calculate Status').item.json.Property }}"
|
||||
},
|
||||
"documentId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "1t2RT3lxyxXj3X1y6klWvyhEJEazpkT3Hpi2ttEJRVT4",
|
||||
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1t2RT3lxyxXj3X1y6klWvyhEJEazpkT3Hpi2ttEJRVT4/edit?usp=drivesdk",
|
||||
"cachedResultName": "n8n uptime"
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"googleSheetsOAuth2Api": {
|
||||
"id": "XHvC7jIRR8A2TlUl",
|
||||
"name": "Google Sheets account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 4.3
|
||||
},
|
||||
{
|
||||
"id": "fe97a18b-902c-4fab-bf73-69b5b9e41a11",
|
||||
"name": "Update Site Status",
|
||||
"type": "n8n-nodes-base.googleSheets",
|
||||
"position": [
|
||||
3100,
|
||||
520
|
||||
],
|
||||
"parameters": {
|
||||
"columns": {
|
||||
"value": {
|
||||
"Status": "={{ $json[\"DOWN_FROM_UP\"] || $json[\"DOWN_FROM_DOWN\"] ? 'DOWN' : 'UP' }}",
|
||||
"Property": "={{ $json.Property }}"
|
||||
},
|
||||
"schema": [
|
||||
{
|
||||
"id": "Property",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": false,
|
||||
"required": false,
|
||||
"displayName": "Property",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "Status",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "Status",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
}
|
||||
],
|
||||
"mappingMode": "defineBelow",
|
||||
"matchingColumns": [
|
||||
"Property"
|
||||
]
|
||||
},
|
||||
"options": {},
|
||||
"operation": "appendOrUpdate",
|
||||
"sheetName": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "gid=0",
|
||||
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1t2RT3lxyxXj3X1y6klWvyhEJEazpkT3Hpi2ttEJRVT4/edit#gid=0",
|
||||
"cachedResultName": "dashboard"
|
||||
},
|
||||
"documentId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "1t2RT3lxyxXj3X1y6klWvyhEJEazpkT3Hpi2ttEJRVT4",
|
||||
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1t2RT3lxyxXj3X1y6klWvyhEJEazpkT3Hpi2ttEJRVT4/edit?usp=drivesdk",
|
||||
"cachedResultName": "n8n uptime"
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"googleSheetsOAuth2Api": {
|
||||
"id": "XHvC7jIRR8A2TlUl",
|
||||
"name": "Google Sheets account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 4.3
|
||||
},
|
||||
{
|
||||
"id": "b37537d1-eedf-446e-a5ed-2ef7388fd7bc",
|
||||
"name": "Perform Site Test",
|
||||
"type": "n8n-nodes-base.httpRequest",
|
||||
"position": [
|
||||
2207,
|
||||
460
|
||||
],
|
||||
"parameters": {
|
||||
"url": "={{ $json.Property }}",
|
||||
"options": {
|
||||
"response": {
|
||||
"response": {
|
||||
"neverError": true,
|
||||
"fullResponse": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"sendHeaders": true,
|
||||
"headerParameters": {
|
||||
"parameters": [
|
||||
{}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 4.2
|
||||
},
|
||||
{
|
||||
"id": "22efcca8-81a8-4128-a03f-efd394e41977",
|
||||
"name": "For Each Site...",
|
||||
"type": "n8n-nodes-base.splitInBatches",
|
||||
"position": [
|
||||
2007,
|
||||
460
|
||||
],
|
||||
"parameters": {
|
||||
"options": {}
|
||||
},
|
||||
"typeVersion": 3
|
||||
},
|
||||
{
|
||||
"id": "b74d0b2c-8b08-42fe-a78f-103d4ea3b60f",
|
||||
"name": "Sticky Note3",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
1375.3365733151754,
|
||||
160
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 533.3167991131336,
|
||||
"height": 451.46281790887826,
|
||||
"content": "## 1. Setting a Schedule\n[Read more about Scheduling Workflows](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.scheduletrigger/)\n\nSince we expect downtime to be a rare occurance, our monitor should only check infrequently during the day. We'll use a schedule trigger for this purpose.\n\nOnce the schdule activates, we'll pull a list of sites to check from our google sheet."
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "6c570ff2-aa08-4458-b2da-7632d516c4e3",
|
||||
"name": "Sticky Note4",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
1940,
|
||||
247.83581204342858
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 596.6620781418152,
|
||||
"height": 464.2968162619932,
|
||||
"content": "## 2. Perform Site Checks\n[Read more about using HTTP requests](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/)\n\nn8n makes it easy to communicate with external websites by offering a powerful HTTP request node which can handle GET and POST requests as well as pagination.\n\nHere, we're only interested in the status code of our requests."
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "d1f67650-1409-43b1-b197-0e5a821d8b6f",
|
||||
"name": "Sticky Note5",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
2580,
|
||||
117.20168629145996
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 720.3351531809235,
|
||||
"height": 600.2604061412927,
|
||||
"content": "## 3. Sending Alerts and Logging Results\n[Read more about using Switch for powerful control flow](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.switch)\n\nThe switch node is powerful control flow tool that makes your workflows smart. Here, we're able to use Switch to trigger alert notifications whenever we have DOWN status or whenever we get a status change.\n\nWe store the event in our Sites Google Sheet and update the site's status which will be used to calculate our state on the next scheduled run."
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "244291de-7ce1-48c9-9d7a-c04fc7d069ab",
|
||||
"name": "Status Router",
|
||||
"type": "n8n-nodes-base.switch",
|
||||
"position": [
|
||||
2640,
|
||||
520
|
||||
],
|
||||
"parameters": {
|
||||
"rules": {
|
||||
"values": [
|
||||
{
|
||||
"outputKey": "UP_FROM_UP",
|
||||
"conditions": {
|
||||
"options": {
|
||||
"leftValue": "",
|
||||
"caseSensitive": true,
|
||||
"typeValidation": "strict"
|
||||
},
|
||||
"combinator": "and",
|
||||
"conditions": [
|
||||
{
|
||||
"operator": {
|
||||
"type": "boolean",
|
||||
"operation": "true",
|
||||
"singleValue": true
|
||||
},
|
||||
"leftValue": "={{ $json.UP_FROM_UP }}",
|
||||
"rightValue": 200
|
||||
}
|
||||
]
|
||||
},
|
||||
"renameOutput": true
|
||||
},
|
||||
{
|
||||
"outputKey": "UP_FROM_DOWN",
|
||||
"conditions": {
|
||||
"options": {
|
||||
"leftValue": "",
|
||||
"caseSensitive": true,
|
||||
"typeValidation": "strict"
|
||||
},
|
||||
"combinator": "and",
|
||||
"conditions": [
|
||||
{
|
||||
"id": "f50ae8d6-4359-4163-aedb-fddf100ad676",
|
||||
"operator": {
|
||||
"type": "boolean",
|
||||
"operation": "true",
|
||||
"singleValue": true
|
||||
},
|
||||
"leftValue": "={{ $json.UP_FROM_DOWN }}",
|
||||
"rightValue": 200
|
||||
}
|
||||
]
|
||||
},
|
||||
"renameOutput": true
|
||||
},
|
||||
{
|
||||
"outputKey": "DOWN_FROM_DOWN",
|
||||
"conditions": {
|
||||
"options": {
|
||||
"leftValue": "",
|
||||
"caseSensitive": true,
|
||||
"typeValidation": "strict"
|
||||
},
|
||||
"combinator": "and",
|
||||
"conditions": [
|
||||
{
|
||||
"id": "417e93d8-08b7-468d-a3bb-f0d395b3026a",
|
||||
"operator": {
|
||||
"type": "boolean",
|
||||
"operation": "true",
|
||||
"singleValue": true
|
||||
},
|
||||
"leftValue": "={{ $json.DOWN_FROM_DOWN }}",
|
||||
"rightValue": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
"renameOutput": true
|
||||
},
|
||||
{
|
||||
"outputKey": "DOWN_FROM_UP",
|
||||
"conditions": {
|
||||
"options": {
|
||||
"leftValue": "",
|
||||
"caseSensitive": true,
|
||||
"typeValidation": "strict"
|
||||
},
|
||||
"combinator": "and",
|
||||
"conditions": [
|
||||
{
|
||||
"id": "7191e7cb-f2e1-4288-aa68-21f6efefafc5",
|
||||
"operator": {
|
||||
"type": "boolean",
|
||||
"operation": "true",
|
||||
"singleValue": true
|
||||
},
|
||||
"leftValue": "={{ $json.DOWN_FROM_UP }}",
|
||||
"rightValue": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
"renameOutput": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"options": {}
|
||||
},
|
||||
"typeVersion": 3
|
||||
},
|
||||
{
|
||||
"id": "a2a683fa-1fa5-4595-856a-de4f717eadf0",
|
||||
"name": "Sticky Note6",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
1063.07390978683,
|
||||
160
|
||||
],
|
||||
"parameters": {
|
||||
"width": 276.590892958905,
|
||||
"height": 299.942498076894,
|
||||
"content": "## Try It Out!\n### Thie workflow showcases how you can build a simple website monitoring service using Scheduled Triggers and the HTTP Requests node. \n\n### Need Help?\nJoin the [Discord](https://discord.com/invite/XPKeKXeB7d) or ask in the [Forum](https://community.n8n.io/)!\n\nHappy Hacking!"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "704ce21f-6b96-4dc5-a27f-fca4b326efd1",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
1620,
|
||||
380
|
||||
],
|
||||
"parameters": {
|
||||
"width": 262.6069985025353,
|
||||
"height": 379.4991553144906,
|
||||
"content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n### 🚨Google Sheet Required!\nYou'll need the following columns:\n* **Property** - the website address to monitor\n* **Status** - either one of \"UP\" or \"DOWN\""
|
||||
},
|
||||
"typeVersion": 1
|
||||
}
|
||||
],
|
||||
"pinData": {},
|
||||
"connections": {
|
||||
"Get Sites": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "For Each Site...",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Status Router": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Log Uptime Event",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"node": "Send Email Alert",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
},
|
||||
{
|
||||
"node": "Log Uptime Event",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"node": "Log Uptime Event",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
},
|
||||
{
|
||||
"node": "Send Email Alert",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"node": "Send Email Alert",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
},
|
||||
{
|
||||
"node": "Log Uptime Event",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Calculate Status": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Status Router",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"For Each Site...": {
|
||||
"main": [
|
||||
null,
|
||||
[
|
||||
{
|
||||
"node": "Perform Site Test",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Log Uptime Event": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Update Site Status",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Schedule Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Get Sites",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Send Email Alert": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Send Chat Alert",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Perform Site Test": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Calculate Status",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Update Site Status": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "For Each Site...",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
1664
workflows/Schedule/0539_Schedule_Twilio_Create_Webhook.json
Normal file
1664
workflows/Schedule/0539_Schedule_Twilio_Create_Webhook.json
Normal file
File diff suppressed because it is too large
Load Diff
341
workflows/Schedule/0563_Schedule_Filter_Update_Scheduled.json
Normal file
341
workflows/Schedule/0563_Schedule_Filter_Update_Scheduled.json
Normal file
@@ -0,0 +1,341 @@
|
||||
{
|
||||
"nodes": [
|
||||
{
|
||||
"id": "d45cf237-dbbc-48ed-a7f0-fa9506ae1d67",
|
||||
"name": "Update priority in todoist",
|
||||
"type": "n8n-nodes-base.todoist",
|
||||
"position": [
|
||||
2060,
|
||||
520
|
||||
],
|
||||
"parameters": {
|
||||
"taskId": "={{ $('Get inbox tasks').item.json.id }}",
|
||||
"operation": "update",
|
||||
"updateFields": {
|
||||
"priority": "={{ $('Your Projects').first().json.projects[$json.message.content] }}"
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"todoistApi": {
|
||||
"id": "1",
|
||||
"name": "Todoist account"
|
||||
}
|
||||
},
|
||||
"retryOnFail": true,
|
||||
"typeVersion": 2,
|
||||
"waitBetweenTries": 5000
|
||||
},
|
||||
{
|
||||
"id": "4d0ebf98-5a1d-4dfd-85df-da182b3c5099",
|
||||
"name": "Schedule Trigger",
|
||||
"type": "n8n-nodes-base.scheduleTrigger",
|
||||
"position": [
|
||||
600,
|
||||
520
|
||||
],
|
||||
"parameters": {
|
||||
"rule": {
|
||||
"interval": [
|
||||
{}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
},
|
||||
{
|
||||
"id": "a950e470-6885-42f4-9b17-7b2c2525d3e4",
|
||||
"name": "Get inbox tasks",
|
||||
"type": "n8n-nodes-base.todoist",
|
||||
"position": [
|
||||
1020,
|
||||
520
|
||||
],
|
||||
"parameters": {
|
||||
"filters": {
|
||||
"projectId": "938017196"
|
||||
},
|
||||
"operation": "getAll",
|
||||
"returnAll": true
|
||||
},
|
||||
"credentials": {
|
||||
"todoistApi": {
|
||||
"id": "1",
|
||||
"name": "Todoist account"
|
||||
}
|
||||
},
|
||||
"retryOnFail": true,
|
||||
"typeVersion": 2,
|
||||
"waitBetweenTries": 5000
|
||||
},
|
||||
{
|
||||
"id": "093bcb2e-79b7-427e-b13d-540a5b28f427",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
540,
|
||||
200
|
||||
],
|
||||
"parameters": {
|
||||
"color": 3,
|
||||
"width": 358.6620209059232,
|
||||
"height": 256.5853658536585,
|
||||
"content": "## 💫 To setup this template\n\n1. Add your Todoist credentials\n2. Add your OpenAI credentials\n3. Set your project names and add priority"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "430290e7-1732-46fe-a38d-fa6dc7f78a26",
|
||||
"name": "Sticky Note1",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
800,
|
||||
700
|
||||
],
|
||||
"parameters": {
|
||||
"width": 192.77351916376313,
|
||||
"height": 80,
|
||||
"content": " 👆🏽 Add your projects and priority here"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "6d5a1b7e-f7fa-4a1b-848c-1b4e79f6f667",
|
||||
"name": "Sticky Note2",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
1020,
|
||||
420
|
||||
],
|
||||
"parameters": {
|
||||
"width": 192.77351916376313,
|
||||
"height": 80,
|
||||
"content": " 👇🏽 Add your Todoist credentials here"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "feff35d2-e37d-48a5-9a90-c5a2efde688f",
|
||||
"name": "Sticky Note3",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
2060,
|
||||
420
|
||||
],
|
||||
"parameters": {
|
||||
"width": 192.77351916376313,
|
||||
"height": 80,
|
||||
"content": " 👇🏽 Add your Todoist credentials here"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "e454ebfe-47f6-4e39-8b89-d706da742911",
|
||||
"name": "Sticky Note4",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
1540,
|
||||
700
|
||||
],
|
||||
"parameters": {
|
||||
"width": 192.77351916376313,
|
||||
"height": 80,
|
||||
"content": " 👆🏽 Add your OpenAI credentials here"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "a79effcb-6904-4abf-835b-e1ccd94ca429",
|
||||
"name": "Your Projects",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
820,
|
||||
520
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"assignments": {
|
||||
"assignments": [
|
||||
{
|
||||
"id": "50dc1412-21f8-4158-898d-3940a146586b",
|
||||
"name": "projects",
|
||||
"type": "object",
|
||||
"value": "={{ {\n apartment: 1,\n health: 2,\n german: 3\n} }}"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 3.4
|
||||
},
|
||||
{
|
||||
"id": "b5988629-2225-455f-b579-73e60449d2a3",
|
||||
"name": "Categorize",
|
||||
"type": "@n8n/n8n-nodes-langchain.openAi",
|
||||
"position": [
|
||||
1460,
|
||||
520
|
||||
],
|
||||
"parameters": {
|
||||
"modelId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "gpt-4o-mini",
|
||||
"cachedResultName": "GPT-4O-MINI"
|
||||
},
|
||||
"options": {},
|
||||
"messages": {
|
||||
"values": [
|
||||
{
|
||||
"role": "system",
|
||||
"content": "=Categorize the user's todo item to a project. Return the project name or just \"other\" if it does not belong to a project."
|
||||
},
|
||||
{
|
||||
"content": "=Projects:\n{{ $('Your Projects').first().json.projects.keys().join('\\n') }}\n\nTodo item:\n{{ $('Get inbox tasks').item.json.content }}"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"openAiApi": {
|
||||
"id": "9",
|
||||
"name": "n8n OpenAi"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.4
|
||||
},
|
||||
{
|
||||
"id": "0dca3953-c0ac-4319-9323-c3aed9488bfb",
|
||||
"name": "If task is not a subtask",
|
||||
"type": "n8n-nodes-base.filter",
|
||||
"position": [
|
||||
1240,
|
||||
520
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"conditions": {
|
||||
"options": {
|
||||
"leftValue": "",
|
||||
"caseSensitive": true,
|
||||
"typeValidation": "strict"
|
||||
},
|
||||
"combinator": "and",
|
||||
"conditions": [
|
||||
{
|
||||
"id": "36dd4bc9-1282-4342-89dd-1dac81c7290e",
|
||||
"operator": {
|
||||
"type": "string",
|
||||
"operation": "empty",
|
||||
"singleValue": true
|
||||
},
|
||||
"leftValue": "={{ $json.parent_id }}",
|
||||
"rightValue": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.1
|
||||
},
|
||||
{
|
||||
"id": "12e25a81-dbde-4542-a137-365329da415e",
|
||||
"name": "If other or ai hallucinates",
|
||||
"type": "n8n-nodes-base.filter",
|
||||
"position": [
|
||||
1820,
|
||||
520
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"conditions": {
|
||||
"options": {
|
||||
"leftValue": "",
|
||||
"caseSensitive": true,
|
||||
"typeValidation": "strict"
|
||||
},
|
||||
"combinator": "and",
|
||||
"conditions": [
|
||||
{
|
||||
"id": "c4f69265-abe1-451c-8462-e68ff3b06799",
|
||||
"operator": {
|
||||
"type": "array",
|
||||
"operation": "contains",
|
||||
"rightType": "any"
|
||||
},
|
||||
"leftValue": "={{ $('Your Projects').first().json.projects.keys() }}",
|
||||
"rightValue": "={{ $json.message.content }}"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.1
|
||||
}
|
||||
],
|
||||
"pinData": {},
|
||||
"connections": {
|
||||
"Categorize": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "If other or ai hallucinates",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Your Projects": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Get inbox tasks",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Get inbox tasks": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "If task is not a subtask",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Schedule Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Your Projects",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"If task is not a subtask": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Categorize",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"If other or ai hallucinates": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Update priority in todoist",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,121 @@
|
||||
{
|
||||
"nodes": [
|
||||
{
|
||||
"name": "Zoom",
|
||||
"type": "n8n-nodes-base.zoom",
|
||||
"position": [
|
||||
1340,
|
||||
580
|
||||
],
|
||||
"parameters": {
|
||||
"topic": "New Meeting",
|
||||
"authentication": "oAuth2",
|
||||
"additionalFields": {
|
||||
"type": 3,
|
||||
"settings": {
|
||||
"muteUponEntry": true,
|
||||
"joinBeforeHost": true,
|
||||
"participantVideo": true
|
||||
},
|
||||
"timeZone": "America/New_York"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "Schedule Trigger",
|
||||
"type": "n8n-nodes-base.scheduleTrigger",
|
||||
"notes": "Cron trigger to reset zoom meeting on the auto-redirect link",
|
||||
"position": [
|
||||
1120,
|
||||
580
|
||||
],
|
||||
"parameters": {
|
||||
"rule": {
|
||||
"interval": [
|
||||
{
|
||||
"daysInterval": 360,
|
||||
"triggerAtHour": 3
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
},
|
||||
{
|
||||
"name": "Wordpress",
|
||||
"type": "n8n-nodes-base.wordpress",
|
||||
"position": [
|
||||
1560,
|
||||
580
|
||||
],
|
||||
"parameters": {
|
||||
"pageId": "123 (Create a page in WP, copy the ID of the page, paste it here)",
|
||||
"resource": "page",
|
||||
"operation": "update",
|
||||
"updateFields": {
|
||||
"content": "=\n<meta http-equiv=\"refresh\" content=\"0;{{ $json.join_url }}\">\n<p>Redirecting, please wait a moment. Meeting will begin shortly…</p>"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"name": "Slack",
|
||||
"type": "n8n-nodes-base.slack",
|
||||
"position": [
|
||||
1780,
|
||||
580
|
||||
],
|
||||
"parameters": {
|
||||
"text": "=Zoom recurring meeting updated!\n{{ $('Zoom').item.json.join_url }}",
|
||||
"select": "channel",
|
||||
"channelId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "abc123",
|
||||
"cachedResultName": "my-slack-channel"
|
||||
},
|
||||
"otherOptions": {
|
||||
"includeLinkToWorkflow": true
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.2
|
||||
}
|
||||
],
|
||||
"pinData": {},
|
||||
"connections": {
|
||||
"Zoom": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Wordpress",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Wordpress": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Slack",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Schedule Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Zoom",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
316
workflows/Schedule/0711_Schedule_Slack_Create_Scheduled.json
Normal file
316
workflows/Schedule/0711_Schedule_Slack_Create_Scheduled.json
Normal file
@@ -0,0 +1,316 @@
|
||||
{
|
||||
"meta": {
|
||||
"instanceId": "2f9460831fcdb0e9a4494f0630367cfe2968282072e2d27c6ee6ab0a4c165a36",
|
||||
"templateCredsSetupCompleted": true
|
||||
},
|
||||
"nodes": [
|
||||
{
|
||||
"id": "140f236c-8946-4ca8-b18f-0af99107b15c",
|
||||
"name": "Assign parameters",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
300,
|
||||
80
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"assignments": {
|
||||
"assignments": [
|
||||
{
|
||||
"id": "b836ba12-262a-4fed-a31d-9e2f6514137a",
|
||||
"name": "startUrls",
|
||||
"type": "array",
|
||||
"value": "=[\n {\n \"url\": \"https://www.upwork.com/nx/search/jobs/?nbs=1&q=python\",\n \"method\": \"GET\"\n },\n{\n \"url\": \"https://www.upwork.com/nx/search/jobs/?nbs=1&q=java\",\n \"method\": \"GET\"\n }\n ]"
|
||||
},
|
||||
{
|
||||
"id": "5f7ba5cc-a8fc-4f67-9feb-6243d08462f9",
|
||||
"name": "proxyCountryCode",
|
||||
"type": "string",
|
||||
"value": "FR"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 3.4
|
||||
},
|
||||
{
|
||||
"id": "d1863b34-d35f-477c-bb94-8a77ff08b51d",
|
||||
"name": "Query For Upwork Job Posts",
|
||||
"type": "n8n-nodes-base.httpRequest",
|
||||
"position": [
|
||||
520,
|
||||
80
|
||||
],
|
||||
"parameters": {
|
||||
"url": "=https://api.apify.com/v2/acts/arlusm~upwork-scraper-with-fresh-job-posts/run-sync-get-dataset-items",
|
||||
"method": "POST",
|
||||
"options": {},
|
||||
"sendBody": true,
|
||||
"authentication": "genericCredentialType",
|
||||
"bodyParameters": {
|
||||
"parameters": [
|
||||
{
|
||||
"name": "startUrls",
|
||||
"value": "={{ $json.startUrls }}"
|
||||
},
|
||||
{
|
||||
"name": "proxyCountryCode",
|
||||
"value": "={{ $json.proxyCountryCode }}"
|
||||
}
|
||||
]
|
||||
},
|
||||
"genericAuthType": "httpQueryAuth"
|
||||
},
|
||||
"credentials": {
|
||||
"httpQueryAuth": {
|
||||
"id": "WajVMGJs8zYL5VdP",
|
||||
"name": "Query Auth account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 4.2
|
||||
},
|
||||
{
|
||||
"id": "a923af43-f417-470c-af97-2a50dc0c0d79",
|
||||
"name": "Schedule Trigger",
|
||||
"type": "n8n-nodes-base.scheduleTrigger",
|
||||
"position": [
|
||||
-100,
|
||||
80
|
||||
],
|
||||
"parameters": {
|
||||
"rule": {
|
||||
"interval": [
|
||||
{
|
||||
"field": "minutes",
|
||||
"minutesInterval": 10
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
},
|
||||
{
|
||||
"id": "26322972-4ecd-4f8e-a1fc-81607a911c22",
|
||||
"name": "If Working Hours",
|
||||
"type": "n8n-nodes-base.if",
|
||||
"position": [
|
||||
80,
|
||||
80
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"conditions": {
|
||||
"options": {
|
||||
"version": 2,
|
||||
"leftValue": "",
|
||||
"caseSensitive": true,
|
||||
"typeValidation": "loose"
|
||||
},
|
||||
"combinator": "and",
|
||||
"conditions": [
|
||||
{
|
||||
"id": "795a6d51-0ea0-4493-bc1e-a1807a2cbd77",
|
||||
"operator": {
|
||||
"type": "number",
|
||||
"operation": "gt"
|
||||
},
|
||||
"leftValue": "={{ $json.Hour }}",
|
||||
"rightValue": 2
|
||||
},
|
||||
{
|
||||
"id": "f9ba101d-226d-4d6a-aab8-62229762a046",
|
||||
"operator": {
|
||||
"type": "number",
|
||||
"operation": "lt"
|
||||
},
|
||||
"leftValue": "={{ $json.Hour }}",
|
||||
"rightValue": 15
|
||||
}
|
||||
]
|
||||
},
|
||||
"looseTypeValidation": true
|
||||
},
|
||||
"typeVersion": 2.2
|
||||
},
|
||||
{
|
||||
"id": "d68cb363-df1f-4601-b194-c1dc044b0c6a",
|
||||
"name": "Find Existing Entries",
|
||||
"type": "n8n-nodes-base.mongoDb",
|
||||
"position": [
|
||||
720,
|
||||
-40
|
||||
],
|
||||
"parameters": {
|
||||
"query": "={\n \"title\": \"{{ $json.title }}\",\n \"budget\": \"{{ $json.budget }}\"\n}\n",
|
||||
"options": {},
|
||||
"collection": "n8n"
|
||||
},
|
||||
"credentials": {
|
||||
"mongoDb": {
|
||||
"id": "aXU1Q0utjxwEpfEk",
|
||||
"name": "MongoDB account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.1,
|
||||
"alwaysOutputData": false
|
||||
},
|
||||
{
|
||||
"id": "82a6a26a-9fd5-4ce5-986f-e0aeb0c43fcc",
|
||||
"name": "Output New Entries",
|
||||
"type": "n8n-nodes-base.merge",
|
||||
"position": [
|
||||
940,
|
||||
80
|
||||
],
|
||||
"parameters": {
|
||||
"mode": "combine",
|
||||
"options": {},
|
||||
"joinMode": "keepNonMatches",
|
||||
"fieldsToMatchString": "title, budget"
|
||||
},
|
||||
"typeVersion": 3
|
||||
},
|
||||
{
|
||||
"id": "361603e9-d173-42e2-a170-de08725ffd24",
|
||||
"name": "Add New Entries To MongoDB",
|
||||
"type": "n8n-nodes-base.mongoDb",
|
||||
"position": [
|
||||
1160,
|
||||
-40
|
||||
],
|
||||
"parameters": {
|
||||
"fields": "title,link,paymentType,budget,projectLength,shortBio,skills,publishedDate,normalizedDate,searchUrl",
|
||||
"options": {},
|
||||
"operation": "insert",
|
||||
"collection": "n8n"
|
||||
},
|
||||
"credentials": {
|
||||
"mongoDb": {
|
||||
"id": "aXU1Q0utjxwEpfEk",
|
||||
"name": "MongoDB account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.1
|
||||
},
|
||||
{
|
||||
"id": "e13787c6-f3e5-4bad-afcc-b1c3387a866c",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
220,
|
||||
-240
|
||||
],
|
||||
"parameters": {
|
||||
"height": 260,
|
||||
"content": "## Setup\n1. Add MongoDB, Slack credentials\n2. Add a query auth credential where the key='token' and the value being your apify token\n3. Modify the 'Assign parameters' node to include the Upwork URLs you want to query for"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "bc83acf0-b28b-48ff-bcb1-695404f30282",
|
||||
"name": "Send message in #general",
|
||||
"type": "n8n-nodes-base.slack",
|
||||
"position": [
|
||||
1160,
|
||||
200
|
||||
],
|
||||
"webhookId": "7b8d0119-c115-4ed3-9d2d-ea8d58edfae6",
|
||||
"parameters": {
|
||||
"text": "=Job Title : {{ $json.title }}\nPublished : {{ $json.publishedDate }}\nLink : {{ $json.link }}\nPayment Type: {{ $json.paymentType }}\nBudget: {{ $json.budget }}\nSkills: {{ $json.skills }}\nBio: {{ $json.shortBio }}",
|
||||
"select": "channel",
|
||||
"channelId": {
|
||||
"__rl": true,
|
||||
"mode": "name",
|
||||
"value": "#general"
|
||||
},
|
||||
"otherOptions": {}
|
||||
},
|
||||
"credentials": {
|
||||
"slackApi": {
|
||||
"id": "nilit1oFWL3xhyvx",
|
||||
"name": "Slack account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.3
|
||||
}
|
||||
],
|
||||
"pinData": {},
|
||||
"connections": {
|
||||
"If Working Hours": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Assign parameters",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Schedule Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "If Working Hours",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Assign parameters": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Query For Upwork Job Posts",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Output New Entries": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Add New Entries To MongoDB",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
},
|
||||
{
|
||||
"node": "Send message in #general",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Find Existing Entries": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Output New Entries",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Query For Upwork Job Posts": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Find Existing Entries",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
},
|
||||
{
|
||||
"node": "Output New Entries",
|
||||
"type": "main",
|
||||
"index": 1
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
361
workflows/Schedule/0720_Schedule_Filter_Create_Scheduled.json
Normal file
361
workflows/Schedule/0720_Schedule_Filter_Create_Scheduled.json
Normal file
@@ -0,0 +1,361 @@
|
||||
{
|
||||
"meta": {
|
||||
"instanceId": "db80165df40cb07c0377167c050b3f9ab0b0fb04f0e8cae0dc53f5a8527103ca",
|
||||
"templateCredsSetupCompleted": true
|
||||
},
|
||||
"nodes": [
|
||||
{
|
||||
"id": "62edf095-a02a-4b8d-a7b1-e194ae0d3652",
|
||||
"name": "On clicking 'execute'",
|
||||
"type": "n8n-nodes-base.manualTrigger",
|
||||
"position": [
|
||||
-660,
|
||||
1100
|
||||
],
|
||||
"parameters": {},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "1e10875b-f54b-43a8-a7a2-43d4fcbf248d",
|
||||
"name": "n8n",
|
||||
"type": "n8n-nodes-base.n8n",
|
||||
"position": [
|
||||
-300,
|
||||
1220
|
||||
],
|
||||
"parameters": {
|
||||
"filters": {},
|
||||
"requestOptions": {}
|
||||
},
|
||||
"credentials": {
|
||||
"n8nApi": {
|
||||
"id": "uqWyCDytVt4ZKbVE",
|
||||
"name": "Phoenix✅"
|
||||
}
|
||||
},
|
||||
"retryOnFail": true,
|
||||
"typeVersion": 1,
|
||||
"alwaysOutputData": true
|
||||
},
|
||||
{
|
||||
"id": "1f5caabb-d76b-4744-be76-97e9abea1ddc",
|
||||
"name": "Loop Over Items",
|
||||
"type": "n8n-nodes-base.splitInBatches",
|
||||
"position": [
|
||||
-100,
|
||||
1220
|
||||
],
|
||||
"parameters": {
|
||||
"options": {}
|
||||
},
|
||||
"typeVersion": 3
|
||||
},
|
||||
{
|
||||
"id": "755e0803-c5c0-48a7-9c0c-44f8d5718d0b",
|
||||
"name": "create new folder",
|
||||
"type": "n8n-nodes-base.googleDrive",
|
||||
"position": [
|
||||
-480,
|
||||
1220
|
||||
],
|
||||
"parameters": {
|
||||
"name": "=Workflow Backups {{ $now.format('cccc t dd-MM-yyyy') }}",
|
||||
"driveId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "My Drive"
|
||||
},
|
||||
"options": {},
|
||||
"folderId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "1hnHubRgcstU8OgV8BPwPNivfTZT5g2Wf",
|
||||
"cachedResultUrl": "https://drive.google.com/drive/folders/1hnHubRgcstU8OgV8BPwPNivfTZT5g2Wf",
|
||||
"cachedResultName": "Workflow Backups"
|
||||
},
|
||||
"resource": "folder"
|
||||
},
|
||||
"credentials": {
|
||||
"googleDriveOAuth2Api": {
|
||||
"id": "HqlejV5xP0lqTq5e",
|
||||
"name": "Google Drive account✅"
|
||||
}
|
||||
},
|
||||
"typeVersion": 3
|
||||
},
|
||||
{
|
||||
"id": "22874532-6d87-4a72-bb51-dd8c6e03c0c1",
|
||||
"name": "Convert to File",
|
||||
"type": "n8n-nodes-base.convertToFile",
|
||||
"position": [
|
||||
120,
|
||||
1320
|
||||
],
|
||||
"parameters": {
|
||||
"options": {
|
||||
"format": true,
|
||||
"fileName": "={{ $json.name + \".json\" }} "
|
||||
},
|
||||
"operation": "toJson"
|
||||
},
|
||||
"typeVersion": 1.1
|
||||
},
|
||||
{
|
||||
"id": "0b0155f1-15bc-4580-af6e-7dec3b0d5737",
|
||||
"name": "Google Drive",
|
||||
"type": "n8n-nodes-base.googleDrive",
|
||||
"position": [
|
||||
300,
|
||||
1320
|
||||
],
|
||||
"parameters": {
|
||||
"name": "={{ $('Loop Over Items').item.json.name + \".json\" }}",
|
||||
"driveId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "My Drive"
|
||||
},
|
||||
"options": {},
|
||||
"folderId": {
|
||||
"__rl": true,
|
||||
"mode": "id",
|
||||
"value": "={{ $('create new folder').item.json.id }}"
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"googleDriveOAuth2Api": {
|
||||
"id": "HqlejV5xP0lqTq5e",
|
||||
"name": "Google Drive account✅"
|
||||
}
|
||||
},
|
||||
"typeVersion": 3
|
||||
},
|
||||
{
|
||||
"id": "c7b73036-1831-4dd6-8dd9-fef1356a184c",
|
||||
"name": "Schedule Trigger",
|
||||
"type": "n8n-nodes-base.scheduleTrigger",
|
||||
"position": [
|
||||
-660,
|
||||
1360
|
||||
],
|
||||
"parameters": {
|
||||
"rule": {
|
||||
"interval": [
|
||||
{
|
||||
"field": "hours",
|
||||
"hoursInterval": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
},
|
||||
{
|
||||
"id": "666dcf95-928c-4270-808f-755a9771a410",
|
||||
"name": "Filter",
|
||||
"type": "n8n-nodes-base.filter",
|
||||
"position": [
|
||||
300,
|
||||
1120
|
||||
],
|
||||
"parameters": {
|
||||
"options": {
|
||||
"ignoreCase": true
|
||||
},
|
||||
"conditions": {
|
||||
"options": {
|
||||
"version": 2,
|
||||
"leftValue": "",
|
||||
"caseSensitive": false,
|
||||
"typeValidation": "loose"
|
||||
},
|
||||
"combinator": "and",
|
||||
"conditions": [
|
||||
{
|
||||
"id": "538fc29d-2693-4c62-9848-bdcaf8566909",
|
||||
"operator": {
|
||||
"type": "string",
|
||||
"operation": "notEquals"
|
||||
},
|
||||
"leftValue": "={{ $json.id }}",
|
||||
"rightValue": "={{ $('create new folder').item.json.id }}"
|
||||
}
|
||||
]
|
||||
},
|
||||
"looseTypeValidation": true
|
||||
},
|
||||
"typeVersion": 2.2
|
||||
},
|
||||
{
|
||||
"id": "f6f44cbe-a98e-4a49-8c4c-59ebe02db9e5",
|
||||
"name": "delete folder",
|
||||
"type": "n8n-nodes-base.googleDrive",
|
||||
"position": [
|
||||
480,
|
||||
1120
|
||||
],
|
||||
"parameters": {
|
||||
"options": {
|
||||
"deletePermanently": true
|
||||
},
|
||||
"resource": "folder",
|
||||
"operation": "deleteFolder",
|
||||
"folderNoRootId": {
|
||||
"__rl": true,
|
||||
"mode": "id",
|
||||
"value": "={{ $json.id }}"
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"googleDriveOAuth2Api": {
|
||||
"id": "HqlejV5xP0lqTq5e",
|
||||
"name": "Google Drive account✅"
|
||||
}
|
||||
},
|
||||
"typeVersion": 3
|
||||
},
|
||||
{
|
||||
"id": "d96a009f-08d3-4f0d-9f70-f9e0de9b9f91",
|
||||
"name": "Get folders",
|
||||
"type": "n8n-nodes-base.googleDrive",
|
||||
"position": [
|
||||
120,
|
||||
1120
|
||||
],
|
||||
"parameters": {
|
||||
"filter": {
|
||||
"folderId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "1hnHubRgcstU8OgV8BPwPNivfTZT5g2Wf",
|
||||
"cachedResultUrl": "https://drive.google.com/drive/folders/1hnHubRgcstU8OgV8BPwPNivfTZT5g2Wf",
|
||||
"cachedResultName": "Workflow Backups"
|
||||
}
|
||||
},
|
||||
"options": {},
|
||||
"resource": "fileFolder"
|
||||
},
|
||||
"credentials": {
|
||||
"googleDriveOAuth2Api": {
|
||||
"id": "HqlejV5xP0lqTq5e",
|
||||
"name": "Google Drive account✅"
|
||||
}
|
||||
},
|
||||
"typeVersion": 3
|
||||
}
|
||||
],
|
||||
"pinData": {},
|
||||
"connections": {
|
||||
"n8n": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Loop Over Items",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Filter": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "delete folder",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Get folders": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Filter",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Google Drive": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Loop Over Items",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"delete folder": {
|
||||
"main": [
|
||||
[]
|
||||
]
|
||||
},
|
||||
"Convert to File": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Google Drive",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Loop Over Items": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Get folders",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"node": "Convert to File",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Schedule Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "create new folder",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"create new folder": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "n8n",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"On clicking 'execute'": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "create new folder",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
278
workflows/Schedule/0729_Schedule_Stickynote_Send_Scheduled.json
Normal file
278
workflows/Schedule/0729_Schedule_Stickynote_Send_Scheduled.json
Normal file
@@ -0,0 +1,278 @@
|
||||
{
|
||||
"nodes": [
|
||||
{
|
||||
"id": "ba168090-4727-4b72-a0cf-3f15ef3a9f17",
|
||||
"name": "Send Email",
|
||||
"type": "n8n-nodes-base.emailSend",
|
||||
"position": [
|
||||
580,
|
||||
360
|
||||
],
|
||||
"parameters": {
|
||||
"text": "=System resources are above the threshold.\n\nCPU: {{ $json.CPU.toNumber().round(2) }}%\nRAM: {{ $json.RAM.toNumber().round(2) }}%\nDisk: {{ $json.Disk.toNumber().round(2) }}%",
|
||||
"options": {},
|
||||
"subject": "System Resource Alert",
|
||||
"toEmail": "change@me.com",
|
||||
"fromEmail": "change@me.com"
|
||||
},
|
||||
"credentials": {
|
||||
"smtp": {
|
||||
"id": "EuaQtRc5t8pWPY9b",
|
||||
"name": "SMTP account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "79afc30f-c3db-4ba1-8f0d-a1000b5e0abe",
|
||||
"name": "Check RAM usage",
|
||||
"type": "n8n-nodes-base.ssh",
|
||||
"position": [
|
||||
160,
|
||||
40
|
||||
],
|
||||
"parameters": {
|
||||
"command": "free | awk '/Mem:/ {printf \"%.2f\", (1 - $7/$2) * 100}'"
|
||||
},
|
||||
"credentials": {
|
||||
"sshPassword": {
|
||||
"id": "VMCCUQkaq46q3CpB",
|
||||
"name": "SSH Password account"
|
||||
}
|
||||
},
|
||||
"executeOnce": false,
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "d09aa314-8d60-42a8-9933-d7e8d73e2c7d",
|
||||
"name": "Check Disk usage",
|
||||
"type": "n8n-nodes-base.ssh",
|
||||
"position": [
|
||||
380,
|
||||
40
|
||||
],
|
||||
"parameters": {
|
||||
"command": "df -h | awk '$NF==\"/\"{printf \"%.2f\", $5}'"
|
||||
},
|
||||
"credentials": {
|
||||
"sshPassword": {
|
||||
"id": "VMCCUQkaq46q3CpB",
|
||||
"name": "SSH Password account"
|
||||
}
|
||||
},
|
||||
"executeOnce": false,
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "bc6a0df2-f4cc-484a-ac39-c92e8795175e",
|
||||
"name": "Check CPU usage",
|
||||
"type": "n8n-nodes-base.ssh",
|
||||
"position": [
|
||||
580,
|
||||
40
|
||||
],
|
||||
"parameters": {
|
||||
"command": "top -bn 1 | grep \"Cpu(s)\" | sed \"s/.*, *\\([0-9.]*\\)%* id.*/\\1/\" | awk '{print 100 - $1}'"
|
||||
},
|
||||
"credentials": {
|
||||
"sshPassword": {
|
||||
"id": "VMCCUQkaq46q3CpB",
|
||||
"name": "SSH Password account"
|
||||
}
|
||||
},
|
||||
"executeOnce": false,
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "de0df734-1e4a-4bf0-9f7d-d60b52e06f48",
|
||||
"name": "Merge check results",
|
||||
"type": "n8n-nodes-base.merge",
|
||||
"position": [
|
||||
-40,
|
||||
380
|
||||
],
|
||||
"parameters": {
|
||||
"mode": "combineBySql",
|
||||
"query": "SELECT input1.stdout as CPU, input2.stdout as Disk, input3.stdout as RAM FROM input1 LEFT JOIN input2 ON input1.name = input2.id LEFT JOIN input3 ON input1.name = input3.id",
|
||||
"numberInputs": 3
|
||||
},
|
||||
"typeVersion": 3
|
||||
},
|
||||
{
|
||||
"id": "7b7d6c0a-3f46-48b3-aa1d-191839540196",
|
||||
"name": "Check results against thresholds",
|
||||
"type": "n8n-nodes-base.if",
|
||||
"position": [
|
||||
240,
|
||||
380
|
||||
],
|
||||
"parameters": {
|
||||
"conditions": {
|
||||
"number": [
|
||||
{
|
||||
"value1": "={{ $json.CPU }}",
|
||||
"value2": 80,
|
||||
"operation": "largerEqual"
|
||||
},
|
||||
{
|
||||
"value1": "={{ $json.Disk }}",
|
||||
"value2": 80,
|
||||
"operation": "largerEqual"
|
||||
},
|
||||
{
|
||||
"value1": "={{ $json.RAM }}",
|
||||
"value2": 80,
|
||||
"operation": "largerEqual"
|
||||
}
|
||||
]
|
||||
},
|
||||
"combineOperation": "any"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "92331c38-cab8-4719-8746-6fb341954516",
|
||||
"name": "Sticky Note1",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
560,
|
||||
260
|
||||
],
|
||||
"parameters": {
|
||||
"width": 320,
|
||||
"height": 280,
|
||||
"content": "## Update email addresses\nUpdate From and To email addresses in this node to receive notifications"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "3117fdbc-fde9-469b-bd47-59f45c349162",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
-260,
|
||||
-120
|
||||
],
|
||||
"parameters": {
|
||||
"width": 320,
|
||||
"height": 260,
|
||||
"content": "## Check VPS resource usage every 15 minutes\nThis workflow checks VPS CPU, RAM and Disk usage every 15 minutes and if any of it exceeds 80% will inform you by email"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "45b4c33a-8f02-4535-b67f-56d9d0aaf2ae",
|
||||
"name": "Sticky Note2",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
180,
|
||||
260
|
||||
],
|
||||
"parameters": {
|
||||
"width": 360,
|
||||
"height": 280,
|
||||
"content": "## Update threshold\nIf needed, you can increase/decrease the 80% threshold in this node individually per resource "
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "0bf83ea8-b1c4-40f7-8a60-39f765e8ec2c",
|
||||
"name": "Schedule Trigger",
|
||||
"type": "n8n-nodes-base.scheduleTrigger",
|
||||
"position": [
|
||||
-40,
|
||||
40
|
||||
],
|
||||
"parameters": {
|
||||
"rule": {
|
||||
"interval": [
|
||||
{
|
||||
"field": "minutes",
|
||||
"minutesInterval": 15
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
}
|
||||
],
|
||||
"pinData": {},
|
||||
"connections": {
|
||||
"Check CPU usage": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Merge check results",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Check RAM usage": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Check Disk usage",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
},
|
||||
{
|
||||
"node": "Merge check results",
|
||||
"type": "main",
|
||||
"index": 2
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Check Disk usage": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Check CPU usage",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
},
|
||||
{
|
||||
"node": "Merge check results",
|
||||
"type": "main",
|
||||
"index": 1
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Schedule Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Check RAM usage",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Merge check results": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Check results against thresholds",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Check results against thresholds": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Send Email",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
490
workflows/Schedule/0758_Schedule_Manual_Monitor_Scheduled.json
Normal file
490
workflows/Schedule/0758_Schedule_Manual_Monitor_Scheduled.json
Normal file
@@ -0,0 +1,490 @@
|
||||
{
|
||||
"meta": {
|
||||
"instanceId": "cb484ba7b742928a2048bf8829668bed5b5ad9787579adea888f05980292a4a7"
|
||||
},
|
||||
"nodes": [
|
||||
{
|
||||
"id": "692e2883-0d1b-4162-8472-6d15c12c8b43",
|
||||
"name": "When clicking ‘Test workflow’",
|
||||
"type": "n8n-nodes-base.manualTrigger",
|
||||
"position": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"parameters": {},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "1b226699-d463-42c9-aab0-e328afdb73b9",
|
||||
"name": "Check if Primary Opportunity Contains Value",
|
||||
"type": "n8n-nodes-base.if",
|
||||
"position": [
|
||||
900,
|
||||
-60
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"conditions": {
|
||||
"options": {
|
||||
"version": 2,
|
||||
"leftValue": "",
|
||||
"caseSensitive": true,
|
||||
"typeValidation": "strict"
|
||||
},
|
||||
"combinator": "and",
|
||||
"conditions": [
|
||||
{
|
||||
"id": "e5aed92c-9a3e-4e05-8ce2-9a707abc3115",
|
||||
"operator": {
|
||||
"type": "string",
|
||||
"operation": "notEmpty",
|
||||
"singleValue": true
|
||||
},
|
||||
"leftValue": "={{ $json.Gong__Primary_Opportunity__c }}",
|
||||
"rightValue": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.2
|
||||
},
|
||||
{
|
||||
"id": "1ebe8eba-5a86-4d17-a629-aa8d2e932693",
|
||||
"name": "Check if Opportunity Stage is Meeting Booked or Discovery",
|
||||
"type": "n8n-nodes-base.if",
|
||||
"position": [
|
||||
660,
|
||||
0
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"conditions": {
|
||||
"options": {
|
||||
"version": 2,
|
||||
"leftValue": "",
|
||||
"caseSensitive": true,
|
||||
"typeValidation": "strict"
|
||||
},
|
||||
"combinator": "or",
|
||||
"conditions": [
|
||||
{
|
||||
"id": "8c39be67-f158-4d26-a1e9-cfdba686e272",
|
||||
"operator": {
|
||||
"name": "filter.operator.equals",
|
||||
"type": "string",
|
||||
"operation": "equals"
|
||||
},
|
||||
"leftValue": "={{ $json.Gong__Opp_Stage_Time_Of_Call__c }}",
|
||||
"rightValue": "Discovery"
|
||||
},
|
||||
{
|
||||
"id": "4cacf9be-3d86-49d6-b7f6-672a57025f0e",
|
||||
"operator": {
|
||||
"name": "filter.operator.equals",
|
||||
"type": "string",
|
||||
"operation": "equals"
|
||||
},
|
||||
"leftValue": "={{ $json.Gong__Opp_Stage_Time_Of_Call__c }}",
|
||||
"rightValue": "Meeting Booked"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.2
|
||||
},
|
||||
{
|
||||
"id": "ee00437a-8586-449c-ab4f-04b91d5f247b",
|
||||
"name": "Sticky Note5",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
-440,
|
||||
-360
|
||||
],
|
||||
"parameters": {
|
||||
"width": 340,
|
||||
"height": 820,
|
||||
"content": "\n## CallForge\nCallForge allows you to extract important information for different departments from your Sales Gong Calls. \n\n### Salesforce Trigger\nThis workflow triggers the AI agent to run, processing calls every hour. It uses the Gong/Salesforce integration to look for new conversation objects in Salesforce which indicate that a new recording has synced to Salesforce. This allows us to filter calls based on internal milestones and metrics ensuring only calls that meet a certain criteria are processed. "
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "2906d433-070d-4240-ba2f-a1669ce5ccc1",
|
||||
"name": "Sticky Note4",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
-80,
|
||||
-360
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 1940,
|
||||
"height": 820,
|
||||
"content": "## Get Gong Transcript and Call Details\nThe transcript is to pass into the AI prompt, but needs to be transformed first. The Call details provide the Prompt with metadata."
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "96cb8746-3605-4723-b8b5-33bbe8841eaa",
|
||||
"name": "Format call into correct JSON Object",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
1360,
|
||||
-140
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"assignments": {
|
||||
"assignments": [
|
||||
{
|
||||
"id": "881fab8b-2f6e-474e-a913-c4bde2b6bd2e",
|
||||
"name": "id",
|
||||
"type": "string",
|
||||
"value": "={{ $json.metaData.id }}"
|
||||
},
|
||||
{
|
||||
"id": "29aad399-1bb7-49e3-8fc9-cf8a6353536a",
|
||||
"name": "url",
|
||||
"type": "string",
|
||||
"value": "={{ $json.metaData.url }}"
|
||||
},
|
||||
{
|
||||
"id": "709d029e-6843-42e1-94cc-d01857918617",
|
||||
"name": "title",
|
||||
"type": "string",
|
||||
"value": "={{ $json.metaData.title }}"
|
||||
},
|
||||
{
|
||||
"id": "39de0391-207b-46ec-9230-cf83667c42b8",
|
||||
"name": "scheduled",
|
||||
"type": "string",
|
||||
"value": "={{ $json.metaData.scheduled }}"
|
||||
},
|
||||
{
|
||||
"id": "05e3a4a5-12a4-4e14-a8bf-4231e4b2c5b1",
|
||||
"name": "started",
|
||||
"type": "string",
|
||||
"value": "={{ $json.metaData.started }}"
|
||||
},
|
||||
{
|
||||
"id": "19de15be-56e5-4935-807c-9530cb1da5a8",
|
||||
"name": "duration",
|
||||
"type": "number",
|
||||
"value": "={{ $json.metaData.duration }}"
|
||||
},
|
||||
{
|
||||
"id": "5a15284b-7c7f-4174-ae6a-82a0dade0542",
|
||||
"name": "primaryUserId",
|
||||
"type": "string",
|
||||
"value": "={{ $json.metaData.primaryUserId }}"
|
||||
},
|
||||
{
|
||||
"id": "aa58e20b-ddaa-4ed1-a0e2-06125103216f",
|
||||
"name": "direction",
|
||||
"type": "string",
|
||||
"value": "={{ $json.metaData.direction }}"
|
||||
},
|
||||
{
|
||||
"id": "0f877bb4-a75f-4691-92b0-8b29b939a5b4",
|
||||
"name": "system",
|
||||
"type": "string",
|
||||
"value": "={{ $json.metaData.system }}"
|
||||
},
|
||||
{
|
||||
"id": "05b3cb81-244d-4f42-a681-13aca1c1df0d",
|
||||
"name": "scope",
|
||||
"type": "string",
|
||||
"value": "={{ $json.metaData.scope }}"
|
||||
},
|
||||
{
|
||||
"id": "2f9b87d1-e0bd-4170-88da-6966c00c7a2b",
|
||||
"name": "media",
|
||||
"type": "string",
|
||||
"value": "={{ $json.metaData.media }}"
|
||||
},
|
||||
{
|
||||
"id": "86282040-ceea-4a88-ae47-d5e3fa7cb1a7",
|
||||
"name": "language",
|
||||
"type": "string",
|
||||
"value": "={{ $json.metaData.language }}"
|
||||
},
|
||||
{
|
||||
"id": "6d8e4e35-5b84-4a1b-a2c1-605ea5e08e66",
|
||||
"name": "workspaceId",
|
||||
"type": "string",
|
||||
"value": "={{ $json.metaData.workspaceId }}"
|
||||
},
|
||||
{
|
||||
"id": "85f50bb3-306e-4fb3-921b-ff0f61acecbd",
|
||||
"name": "sdrDisposition",
|
||||
"type": "string",
|
||||
"value": "={{ $json.metaData.sdrDisposition }}"
|
||||
},
|
||||
{
|
||||
"id": "a779d6e8-0d07-4159-8b56-b3c2e49d1c19",
|
||||
"name": "clientUniqueId",
|
||||
"type": "string",
|
||||
"value": "={{ $json.metaData.clientUniqueId }}"
|
||||
},
|
||||
{
|
||||
"id": "14718f26-69e1-4e4b-90b5-dd059af6459e",
|
||||
"name": "customData",
|
||||
"type": "string",
|
||||
"value": "={{ $json.metaData.customData }}"
|
||||
},
|
||||
{
|
||||
"id": "4741d29d-0ad6-471d-8432-e7158daeb224",
|
||||
"name": "purpose",
|
||||
"type": "string",
|
||||
"value": "={{ $json.metaData.purpose }}"
|
||||
},
|
||||
{
|
||||
"id": "7e390036-376e-430d-bd28-43d52ae8794b",
|
||||
"name": "meetingUrl",
|
||||
"type": "string",
|
||||
"value": "={{ $json.metaData.meetingUrl }}"
|
||||
},
|
||||
{
|
||||
"id": "1ea1f639-8327-4e76-bb3b-f08182fdb87a",
|
||||
"name": "isPrivate",
|
||||
"type": "boolean",
|
||||
"value": "={{ $json.metaData.isPrivate }}"
|
||||
},
|
||||
{
|
||||
"id": "855ceef1-6bae-44ea-b2af-cc4aa38d6a37",
|
||||
"name": "calendarEventId",
|
||||
"type": "string",
|
||||
"value": "={{ $json.metaData.calendarEventId }}"
|
||||
},
|
||||
{
|
||||
"id": "f7c11074-70bb-46de-8e7b-2c6d095033c4",
|
||||
"name": "sfOpp",
|
||||
"type": "string",
|
||||
"value": "={{ $('Get all custom Salesforce Gong Objects').item.json.Gong__Primary_Opportunity__c }}"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 3.4
|
||||
},
|
||||
{
|
||||
"id": "5b5eb2c1-7f80-4211-b835-5188376c6df2",
|
||||
"name": "Pass to Gong Call Preprocessor",
|
||||
"type": "n8n-nodes-base.executeWorkflow",
|
||||
"position": [
|
||||
1580,
|
||||
-140
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"workflowId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "6mL5jWOJfuzkpjzx",
|
||||
"cachedResultName": "Gong Call Preprocessor Demo"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.1
|
||||
},
|
||||
{
|
||||
"id": "025d3ed7-2bd8-4a88-8834-034036c533c6",
|
||||
"name": "Get Gong Call",
|
||||
"type": "n8n-nodes-base.gong",
|
||||
"position": [
|
||||
1140,
|
||||
-140
|
||||
],
|
||||
"parameters": {
|
||||
"call": {
|
||||
"__rl": true,
|
||||
"mode": "id",
|
||||
"value": "={{ $json.Gong__Call_ID__c }}"
|
||||
},
|
||||
"options": {},
|
||||
"operation": "get",
|
||||
"requestOptions": {}
|
||||
},
|
||||
"credentials": {
|
||||
"gongApi": {
|
||||
"id": "EchfvOC4rjw8MUkr",
|
||||
"name": "Liam Gong Cred"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "a4f63c5c-a23e-400f-9fa4-40c61756c321",
|
||||
"name": "Sort by date",
|
||||
"type": "n8n-nodes-base.sort",
|
||||
"position": [
|
||||
440,
|
||||
0
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"sortFieldsUi": {
|
||||
"sortField": [
|
||||
{
|
||||
"order": "descending",
|
||||
"fieldName": "CreatedDate"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "aa24b82b-3d65-4d1e-be04-7e7d5e439587",
|
||||
"name": "Get all custom Salesforce Gong Objects",
|
||||
"type": "n8n-nodes-base.salesforce",
|
||||
"position": [
|
||||
220,
|
||||
0
|
||||
],
|
||||
"parameters": {
|
||||
"options": {
|
||||
"fields": [
|
||||
"CreatedDate",
|
||||
"LastActivityDate",
|
||||
"Name",
|
||||
"Gong__Call_ID__c",
|
||||
"Gong__Talk_Time_Us__c",
|
||||
"Gong__Talk_Time_Them__c",
|
||||
"Gong__Title__c",
|
||||
"Gong__View_call__c",
|
||||
"Gong__Primary_Opportunity__c",
|
||||
"Gong__Opp_Stage_Time_Of_Call__c"
|
||||
],
|
||||
"conditionsUi": {
|
||||
"conditionValues": [
|
||||
{
|
||||
"field": "CreatedDate",
|
||||
"value": "={{ $now.minus(4, 'hours') }}",
|
||||
"operation": ">="
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"resource": "customObject",
|
||||
"operation": "getAll",
|
||||
"customObject": "Gong__Gong_Call__c"
|
||||
},
|
||||
"credentials": {
|
||||
"salesforceOAuth2Api": {
|
||||
"id": "Ykybxuyh0jK0o3qH",
|
||||
"name": "Angel SF Creds v3"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "c46f7b03-8ce0-468d-ac84-fae9ae5b2466",
|
||||
"name": "Run Hourly",
|
||||
"type": "n8n-nodes-base.scheduleTrigger",
|
||||
"position": [
|
||||
0,
|
||||
-160
|
||||
],
|
||||
"parameters": {
|
||||
"rule": {
|
||||
"interval": [
|
||||
{
|
||||
"field": "hours"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
}
|
||||
],
|
||||
"pinData": {},
|
||||
"connections": {
|
||||
"Run Hourly": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Get all custom Salesforce Gong Objects",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Sort by date": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Check if Opportunity Stage is Meeting Booked or Discovery",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Get Gong Call": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Format call into correct JSON Object",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"When clicking ‘Test workflow’": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Get all custom Salesforce Gong Objects",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Format call into correct JSON Object": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Pass to Gong Call Preprocessor",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Get all custom Salesforce Gong Objects": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Sort by date",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Check if Primary Opportunity Contains Value": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Get Gong Call",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Check if Opportunity Stage is Meeting Booked or Discovery": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Check if Primary Opportunity Contains Value",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
191
workflows/Schedule/0795_Schedule_Mailchimp_Create_Scheduled.json
Normal file
191
workflows/Schedule/0795_Schedule_Mailchimp_Create_Scheduled.json
Normal file
@@ -0,0 +1,191 @@
|
||||
{
|
||||
"meta": {
|
||||
"instanceId": "e634e668fe1fc93a75c4f2a7fc0dad807ca318b79654157eadb9578496acbc76",
|
||||
"templateCredsSetupCompleted": true
|
||||
},
|
||||
"nodes": [
|
||||
{
|
||||
"id": "a5f5621a-bd4c-45b8-be09-ebdda13ebb3e",
|
||||
"name": "When clicking ‘Test workflow’",
|
||||
"type": "n8n-nodes-base.manualTrigger",
|
||||
"position": [
|
||||
-280,
|
||||
120
|
||||
],
|
||||
"parameters": {},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "9447f0d4-1be3-4b8c-b172-3ff856f2197b",
|
||||
"name": "Schedule Trigger",
|
||||
"type": "n8n-nodes-base.scheduleTrigger",
|
||||
"position": [
|
||||
-280,
|
||||
-160
|
||||
],
|
||||
"parameters": {
|
||||
"rule": {
|
||||
"interval": [
|
||||
{}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
},
|
||||
{
|
||||
"id": "4ffd30f6-6f56-42cd-9f1c-07b58adbe312",
|
||||
"name": "Sticky Note1",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
-740,
|
||||
-260
|
||||
],
|
||||
"parameters": {
|
||||
"color": 4,
|
||||
"width": 371.1995072042308,
|
||||
"height": 600.88409546716,
|
||||
"content": "## Create Mailchimp contact based on Squarespace newsletter\nThis workflow will get Squarespace newsletter signups and create new Mailchimp contact in the given Audience on Mailchimp\n\nThis overcome the limitation between Squarespace forms and Mailchimp connection where only new, empty audience can be used\n\nYou can run the workflow on demand or by schedule\n\n## Spreadsheet template\n\nThe sheet columns are inspire from Squarespace newsletter block connection, but you can change the node to adapt new columns format\n\nClone the [sample sheet here](https://docs.google.com/spreadsheets/d/1wi2Ucb4b35e0-fuf-96sMnyzTft0ADz3MwdE_cG_WnQ/edit?usp=sharing)\n- Submitted On\t\n- Email Address\t\n- Name"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "7af3d027-ffb8-4ca0-84d4-06dbf3902e80",
|
||||
"name": "Squarespace newsletter submissions",
|
||||
"type": "n8n-nodes-base.googleSheets",
|
||||
"position": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"sheetName": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "gid=0",
|
||||
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/15A3ZWzIBfONL4U_1XGJvtsS8HtMQ69qrpxd5C5L6Akg/edit#gid=0",
|
||||
"cachedResultName": "Sheet1"
|
||||
},
|
||||
"documentId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "15A3ZWzIBfONL4U_1XGJvtsS8HtMQ69qrpxd5C5L6Akg",
|
||||
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/15A3ZWzIBfONL4U_1XGJvtsS8HtMQ69qrpxd5C5L6Akg/edit?usp=drivesdk",
|
||||
"cachedResultName": "n8n-submission"
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"googleSheetsOAuth2Api": {
|
||||
"id": "JgI9maibw5DnBXRP",
|
||||
"name": "Google Sheets account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 4.5
|
||||
},
|
||||
{
|
||||
"id": "f0fe2c40-2971-4068-b5b0-57e70f65ff72",
|
||||
"name": "Loop Over each item",
|
||||
"type": "n8n-nodes-base.splitInBatches",
|
||||
"position": [
|
||||
260,
|
||||
0
|
||||
],
|
||||
"parameters": {
|
||||
"options": {}
|
||||
},
|
||||
"typeVersion": 3
|
||||
},
|
||||
{
|
||||
"id": "ebad2d00-56b3-4dec-9e3b-d9cb6cc4aaf1",
|
||||
"name": "Add new member to Mailchimp",
|
||||
"type": "n8n-nodes-base.mailchimp",
|
||||
"onError": "continueErrorOutput",
|
||||
"position": [
|
||||
540,
|
||||
20
|
||||
],
|
||||
"parameters": {
|
||||
"email": "={{ $json['Email Address'] }}{{ $json.row_number }}",
|
||||
"status": "subscribed",
|
||||
"options": {
|
||||
"timestampSignup": "={{ $json['Submitted On'] }}"
|
||||
},
|
||||
"mergeFieldsUi": {
|
||||
"mergeFieldsValues": [
|
||||
{
|
||||
"name": "FNAME",
|
||||
"value": "={{ $json.Name }}"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"mailchimpApi": {
|
||||
"id": "E6kRZLAOwvNxFpNz",
|
||||
"name": "Mailchimp account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1,
|
||||
"alwaysOutputData": false
|
||||
}
|
||||
],
|
||||
"pinData": {},
|
||||
"connections": {
|
||||
"Schedule Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Squarespace newsletter submissions",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Loop Over each item": {
|
||||
"main": [
|
||||
[],
|
||||
[
|
||||
{
|
||||
"node": "Add new member to Mailchimp",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Add new member to Mailchimp": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Loop Over each item",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
],
|
||||
[]
|
||||
]
|
||||
},
|
||||
"When clicking ‘Test workflow’": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Squarespace newsletter submissions",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Squarespace newsletter submissions": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Loop Over each item",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,447 @@
|
||||
{
|
||||
"meta": {
|
||||
"instanceId": "408f9fb9940c3cb18ffdef0e0150fe342d6e655c3a9fac21f0f644e8bedabcd9",
|
||||
"templateCredsSetupCompleted": true
|
||||
},
|
||||
"nodes": [
|
||||
{
|
||||
"id": "1083afcb-1257-45a3-b331-d93fb8769548",
|
||||
"name": "Schedule Trigger",
|
||||
"type": "n8n-nodes-base.scheduleTrigger",
|
||||
"position": [
|
||||
-840,
|
||||
0
|
||||
],
|
||||
"parameters": {
|
||||
"rule": {
|
||||
"interval": [
|
||||
{}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
},
|
||||
{
|
||||
"id": "c3ec0759-a3d1-4866-978a-bfe4f49ee81d",
|
||||
"name": "Get Hash of Contents",
|
||||
"type": "n8n-nodes-base.crypto",
|
||||
"position": [
|
||||
380,
|
||||
0
|
||||
],
|
||||
"parameters": {
|
||||
"value": "={{ $json.data }}",
|
||||
"dataPropertyName": "hash"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "4ad92ad3-6f99-43a5-9a61-374adb3b28f7",
|
||||
"name": "Notify of Change",
|
||||
"type": "n8n-nodes-base.gmail",
|
||||
"position": [
|
||||
1220,
|
||||
0
|
||||
],
|
||||
"webhookId": "cc4cbee1-ad57-48fb-810a-b21880357ab0",
|
||||
"parameters": {
|
||||
"sendTo": "jim@example.com",
|
||||
"message": "=site: {{ $('Variables').first().json.url }}\ndate: {{ $now.toISO() }}\nhash: {{ $json.hash }}\ncontents: {{ $json.gdrive }}",
|
||||
"options": {},
|
||||
"subject": "=Change detected for {{ $('Variables').first().json.url }}",
|
||||
"emailType": "text"
|
||||
},
|
||||
"credentials": {
|
||||
"gmailOAuth2": {
|
||||
"id": "Sf5Gfl9NiFTNXFWb",
|
||||
"name": "Gmail account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.1
|
||||
},
|
||||
{
|
||||
"id": "9385242a-86b1-4624-ada9-949851b68054",
|
||||
"name": "Markdown",
|
||||
"type": "n8n-nodes-base.markdown",
|
||||
"position": [
|
||||
200,
|
||||
0
|
||||
],
|
||||
"parameters": {
|
||||
"html": "={{ $json.content.trim() }}",
|
||||
"options": {}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "663b6ba2-cbf9-44ea-a062-f88ccb0640c1",
|
||||
"name": "Variables",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
-460,
|
||||
0
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"assignments": {
|
||||
"assignments": [
|
||||
{
|
||||
"id": "fa706ed3-7425-4f0e-9590-d9478b4e6692",
|
||||
"name": "url",
|
||||
"type": "string",
|
||||
"value": "https://x.com/en/tos"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 3.4
|
||||
},
|
||||
{
|
||||
"id": "2ef69fff-4d7a-439a-b317-ea5fa3ce7869",
|
||||
"name": "Only New Hashes",
|
||||
"type": "n8n-nodes-base.removeDuplicates",
|
||||
"position": [
|
||||
560,
|
||||
0
|
||||
],
|
||||
"parameters": {
|
||||
"options": {
|
||||
"historySize": 1
|
||||
},
|
||||
"operation": "removeItemsSeenInPreviousExecutions",
|
||||
"dedupeValue": "={{ $json.hash }}"
|
||||
},
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "93e13d80-a26f-408f-be4e-b582ab9fd9bd",
|
||||
"name": "Log Record",
|
||||
"type": "n8n-nodes-base.googleSheets",
|
||||
"position": [
|
||||
1040,
|
||||
0
|
||||
],
|
||||
"parameters": {
|
||||
"columns": {
|
||||
"value": {
|
||||
"hash": "={{ $('Get Hash of Contents').first().json.hash }}",
|
||||
"gdrive": "=https://drive.google.com/file/d/{{ $json.id }}/view?usp=sharing",
|
||||
"website": "={{ $('Variables').first().json.url }}",
|
||||
"date of change": "={{ $now.toISO() }}"
|
||||
},
|
||||
"schema": [
|
||||
{
|
||||
"id": "website",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "website",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "hash",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "hash",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "date of change",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "date of change",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "gdrive",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": false,
|
||||
"required": false,
|
||||
"displayName": "gdrive",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
}
|
||||
],
|
||||
"mappingMode": "defineBelow",
|
||||
"matchingColumns": [],
|
||||
"attemptToConvertTypes": false,
|
||||
"convertFieldsToString": false
|
||||
},
|
||||
"options": {},
|
||||
"operation": "append",
|
||||
"sheetName": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "gid=0",
|
||||
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1K13OBMicH-ebhvJRYo4sHiOuHd1KIX2jiFxBLWy2UOk/edit#gid=0",
|
||||
"cachedResultName": "Sheet1"
|
||||
},
|
||||
"documentId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "1K13OBMicH-ebhvJRYo4sHiOuHd1KIX2jiFxBLWy2UOk",
|
||||
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1K13OBMicH-ebhvJRYo4sHiOuHd1KIX2jiFxBLWy2UOk/edit?usp=drivesdk",
|
||||
"cachedResultName": "86. Webpage Changes Tracker"
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"googleSheetsOAuth2Api": {
|
||||
"id": "XHvC7jIRR8A2TlUl",
|
||||
"name": "Google Sheets account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 4.5
|
||||
},
|
||||
{
|
||||
"id": "dea15963-61de-4371-b716-7683e0e703a9",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
-540,
|
||||
-160
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 620,
|
||||
"height": 380,
|
||||
"content": "## 1. Fetch a Webpage Contents\n[Read more about the HTTP request node](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest)"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "bcb1c0b1-fc77-4417-a9c0-6299ce8ca33e",
|
||||
"name": "Sticky Note1",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
100,
|
||||
-160
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 640,
|
||||
"height": 400,
|
||||
"content": "## 2. Use Hashing to Detect Changes\n[Learn more about the cryptography node](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.crypto/)"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "eda51de6-80a2-42b1-83ba-66c551911c45",
|
||||
"name": "Fetch Webpage",
|
||||
"type": "n8n-nodes-base.httpRequest",
|
||||
"position": [
|
||||
-280,
|
||||
0
|
||||
],
|
||||
"parameters": {
|
||||
"url": "={{ $json.url }}",
|
||||
"options": {},
|
||||
"sendHeaders": true,
|
||||
"headerParameters": {
|
||||
"parameters": [
|
||||
{
|
||||
"name": "User-Agent",
|
||||
"value": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 4.2
|
||||
},
|
||||
{
|
||||
"id": "8aa998f1-1558-4b54-a95a-7be9360a819a",
|
||||
"name": "Extract Contents",
|
||||
"type": "n8n-nodes-base.html",
|
||||
"position": [
|
||||
-100,
|
||||
0
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"operation": "extractHtmlContent",
|
||||
"extractionValues": {
|
||||
"values": [
|
||||
{
|
||||
"key": "content",
|
||||
"cssSelector": ".ct07",
|
||||
"returnValue": "html"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
},
|
||||
{
|
||||
"id": "ecb60054-563c-4c0b-949c-abdcd3896f6b",
|
||||
"name": "Sticky Note2",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
760,
|
||||
-160
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 660,
|
||||
"height": 400,
|
||||
"content": "## 3. Notify when Changes Occur\n[Read more about the Gmail node](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.gmail)\n"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "30774606-5e63-4d73-9894-ba14d5b1fc46",
|
||||
"name": "Take a Snapshot",
|
||||
"type": "n8n-nodes-base.googleDrive",
|
||||
"position": [
|
||||
860,
|
||||
0
|
||||
],
|
||||
"parameters": {
|
||||
"name": "={{\n$('Variables').item.json.url\n .extractDomain()\n .replace('.','_')\n + $json.hash\n + '.md'\n}}",
|
||||
"content": "={{ $json.data }}",
|
||||
"driveId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "My Drive"
|
||||
},
|
||||
"options": {},
|
||||
"folderId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "1BbP5HRnjNkCvcDRFFg1bm0sNYBGZM6AU",
|
||||
"cachedResultUrl": "https://drive.google.com/drive/folders/1BbP5HRnjNkCvcDRFFg1bm0sNYBGZM6AU",
|
||||
"cachedResultName": "86. Monitor Webpage Changes"
|
||||
},
|
||||
"operation": "createFromText"
|
||||
},
|
||||
"credentials": {
|
||||
"googleDriveOAuth2Api": {
|
||||
"id": "yOwz41gMQclOadgu",
|
||||
"name": "Google Drive account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 3
|
||||
},
|
||||
{
|
||||
"id": "9ae563ea-49a3-4dcc-9190-8746650018aa",
|
||||
"name": "Sticky Note3",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
-1040,
|
||||
-760
|
||||
],
|
||||
"parameters": {
|
||||
"width": 440,
|
||||
"height": 980,
|
||||
"content": "## Try it out\n### This n8n template can monitor and detect changes to a webpage's contents and notify you only when a change occurs.\n\nGreat to keep an eye on and track publicly available documents such as company TOS, government policy or competitor pages.\n\n### How it works\n* A scheduled trigger is used so we can run everyday to automate this process.\n* A website page is then fetched with the HTTP request node and the contents we want to track are extracted using the HTML node.\n* To detect changes, we generate a hash on the contents with the cryptography node and compare it with previously seen hashes using the \"remove duplicates\" node. If the hash was seen before, the workflow stops here.\n* Finally, when new changes are detected a copy of the contents are uploaded to Google Drive and a logged into a Google sheet. A notification email can also be sent if action is required.\n\n### How to use\n* Update the URL you want to track in the node named \"variables\" and ensure the HTML node has updated selectors to get the content you want.\n* Ensure the timezone is set correctly when using the Scheduled Trigger node.\n\n### Need Help?\nJoin the [Discord](https://discord.com/invite/XPKeKXeB7d) or ask in the [Forum](https://community.n8n.io/)!"
|
||||
},
|
||||
"typeVersion": 1
|
||||
}
|
||||
],
|
||||
"pinData": {},
|
||||
"connections": {
|
||||
"Markdown": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Get Hash of Contents",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Variables": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Fetch Webpage",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Log Record": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Notify of Change",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Fetch Webpage": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Extract Contents",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Only New Hashes": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Take a Snapshot",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Take a Snapshot": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Log Record",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Extract Contents": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Markdown",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Schedule Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Variables",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Get Hash of Contents": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Only New Hashes",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,900 @@
|
||||
{
|
||||
"meta": {
|
||||
"instanceId": "408f9fb9940c3cb18ffdef0e0150fe342d6e655c3a9fac21f0f644e8bedabcd9",
|
||||
"templateCredsSetupCompleted": true
|
||||
},
|
||||
"nodes": [
|
||||
{
|
||||
"id": "423f3d03-ffe8-419c-8842-95fcda213eb3",
|
||||
"name": "Schedule Trigger",
|
||||
"type": "n8n-nodes-base.scheduleTrigger",
|
||||
"position": [
|
||||
-1540,
|
||||
-400
|
||||
],
|
||||
"parameters": {
|
||||
"rule": {
|
||||
"interval": [
|
||||
{
|
||||
"field": "minutes"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
},
|
||||
{
|
||||
"id": "34ed006b-ecef-4bae-8493-ae43d4927dc3",
|
||||
"name": "Get Open Tickets",
|
||||
"type": "n8n-nodes-base.jira",
|
||||
"position": [
|
||||
-1340,
|
||||
-400
|
||||
],
|
||||
"parameters": {
|
||||
"limit": 10,
|
||||
"options": {
|
||||
"jql": "Project = 'SUPPORT' AND status = 'To Do'",
|
||||
"fields": "*navigable"
|
||||
},
|
||||
"operation": "getAll"
|
||||
},
|
||||
"credentials": {
|
||||
"jiraSoftwareCloudApi": {
|
||||
"id": "IH5V74q6PusewNjD",
|
||||
"name": "Jira SW Cloud account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "4c7d6b23-23d5-410e-92f0-5c9244eb190f",
|
||||
"name": "Simplify Ticket",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
-800,
|
||||
-400
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"assignments": {
|
||||
"assignments": [
|
||||
{
|
||||
"id": "267918d5-5193-48c8-8e3a-6542c8edf77c",
|
||||
"name": "projectKey",
|
||||
"type": "string",
|
||||
"value": "={{ $json.fields.project.key }}"
|
||||
},
|
||||
{
|
||||
"id": "8c44b6b1-a5e7-4312-b96c-727b24a82ac2",
|
||||
"name": "issueKey",
|
||||
"type": "string",
|
||||
"value": "={{ $json.key }}"
|
||||
},
|
||||
{
|
||||
"id": "3451a39f-1907-4406-beb9-fd4feebbf4c2",
|
||||
"name": "issueType",
|
||||
"type": "string",
|
||||
"value": "={{ $json.fields.issuetype.name }}"
|
||||
},
|
||||
{
|
||||
"id": "99f33276-50ad-424a-b307-2ed69094bc43",
|
||||
"name": "createdAt",
|
||||
"type": "string",
|
||||
"value": "={{ $json.fields.created }}"
|
||||
},
|
||||
{
|
||||
"id": "5463ff2e-4d42-4602-8278-555f369a37e5",
|
||||
"name": "status",
|
||||
"type": "string",
|
||||
"value": "={{ $json.fields.status.name }}"
|
||||
},
|
||||
{
|
||||
"id": "1df0588e-7916-4c4d-95f1-7c6d58ba094f",
|
||||
"name": "summary",
|
||||
"type": "string",
|
||||
"value": "={{ $json.fields.summary }}"
|
||||
},
|
||||
{
|
||||
"id": "ecf69a9b-18c9-4b04-9d6e-b77391728f33",
|
||||
"name": "description",
|
||||
"type": "string",
|
||||
"value": "={{ $json.fields.description }}"
|
||||
},
|
||||
{
|
||||
"id": "8f7b0876-4d6f-42b3-bc12-34396ce824ed",
|
||||
"name": "reportedBy",
|
||||
"type": "string",
|
||||
"value": "={{ $json.fields.creator.displayName }}"
|
||||
},
|
||||
{
|
||||
"id": "74504426-6ecd-4b32-866f-0e336c669650",
|
||||
"name": "reportedByEmailAddress",
|
||||
"type": "string",
|
||||
"value": "={{ $json.fields.creator.emailAddress }}"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 3.4
|
||||
},
|
||||
{
|
||||
"id": "24714621-4e64-415f-b388-6e029997942d",
|
||||
"name": "OpenAI Chat Model",
|
||||
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
|
||||
"position": [
|
||||
-620,
|
||||
-220
|
||||
],
|
||||
"parameters": {
|
||||
"model": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "gpt-4o-mini"
|
||||
},
|
||||
"options": {}
|
||||
},
|
||||
"credentials": {
|
||||
"openAiApi": {
|
||||
"id": "8gccIjcuf3gvaoEr",
|
||||
"name": "OpenAi account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
},
|
||||
{
|
||||
"id": "8724cd2d-7f4f-4f8d-beef-23d0360f2487",
|
||||
"name": "Structured Output Parser",
|
||||
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
|
||||
"position": [
|
||||
-420,
|
||||
-220
|
||||
],
|
||||
"parameters": {
|
||||
"schemaType": "manual",
|
||||
"inputSchema": "{\n \"type\": \"object\",\n \"properties\": {\n \"labels\": {\n \"type\": \"array\",\n \"items\": { \"type\": \"string\" }\n },\n \"priority\": { \"type\": \"number\" },\n \"summary\": { \"type\": \"string\" },\n \"description\": { \"type\": \"string\" }\n }\n}"
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
},
|
||||
{
|
||||
"id": "26a7d493-73e4-4ce3-aff1-0357ba5a1df2",
|
||||
"name": "Label, Prioritize & Rewrite",
|
||||
"type": "@n8n/n8n-nodes-langchain.chainLlm",
|
||||
"position": [
|
||||
-600,
|
||||
-400
|
||||
],
|
||||
"parameters": {
|
||||
"text": "=Reported by {{ $json.reportedBy }} <{{ $json.reportedByEmailAddress }}>\nReported at: {{ $json.createdAt }}\nIssue Key: {{ $json.issueKey }}\nSummary: {{ $json.summary }}\nDescription: {{ $json.description }}",
|
||||
"messages": {
|
||||
"messageValues": [
|
||||
{
|
||||
"message": "=Your are JIRA triage assistant who's task is to\n1) classify and label the given issue.\n2) Prioritise the given issue.\n3) Rewrite the issue summary and description.\n\n## Labels\nUse one or more. Use words wrapped in \"[]\" (square brackets):\n* Technical\n* Account\n* Access\n* Billing\n* Product\n* Training\n* Feedback\n* Complaints\n* Security\n* Privacy\n\n## Priority\n* 1 - highest\n* 2 - high\n* 3 - medium\n* 4 - low\n* 5 - lowest\n\n## Rewriting Summary and Description\n* Remove emotional and anedotal phrases or information\n* Keep to the facts of the matter\n* Highlight what was attempted and is/was failing"
|
||||
}
|
||||
]
|
||||
},
|
||||
"promptType": "define",
|
||||
"hasOutputParser": true
|
||||
},
|
||||
"typeVersion": 1.6
|
||||
},
|
||||
{
|
||||
"id": "909d4901-2c77-44aa-8a21-97a604351b22",
|
||||
"name": "Update Labels, Priority and Description",
|
||||
"type": "n8n-nodes-base.jira",
|
||||
"position": [
|
||||
-240,
|
||||
-400
|
||||
],
|
||||
"parameters": {
|
||||
"issueKey": "={{ $('Simplify Ticket').item.json.issueKey }}",
|
||||
"operation": "update",
|
||||
"updateFields": {
|
||||
"labels": "={{ $json.output.labels }}",
|
||||
"priority": {
|
||||
"__rl": true,
|
||||
"mode": "id",
|
||||
"value": "={{ $json.output.priority.toString() }}"
|
||||
},
|
||||
"description": "={{ $json.output.description }}\n\n---\nOriginal Message:\n{{ $('Simplify Ticket').item.json.description }}"
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"jiraSoftwareCloudApi": {
|
||||
"id": "IH5V74q6PusewNjD",
|
||||
"name": "Jira SW Cloud account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "2365cb60-ec67-4d1e-9b8d-1749cf925800",
|
||||
"name": "Get Recent Similar Issues Resolved",
|
||||
"type": "n8n-nodes-base.jira",
|
||||
"position": [
|
||||
120,
|
||||
-360
|
||||
],
|
||||
"parameters": {
|
||||
"limit": 5,
|
||||
"options": {
|
||||
"jql": "=key != {{ $('Simplify Ticket').item.json.issueKey }}\nAND status in (\"Resolved\", \"Closed\", \"Done\")\nAND resolutiondate >= startOfMonth(-1)\nAND labels in ({{\n $('Label, Prioritize & Rewrite').item.json.output.labels\n .map(label => `\"${label}\"`)\n .join(',')\n}})"
|
||||
},
|
||||
"operation": "getAll"
|
||||
},
|
||||
"credentials": {
|
||||
"jiraSoftwareCloudApi": {
|
||||
"id": "IH5V74q6PusewNjD",
|
||||
"name": "Jira SW Cloud account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "a6e8937c-c26c-4659-809a-33ab4b2e7da6",
|
||||
"name": "Loop Over Items",
|
||||
"type": "n8n-nodes-base.splitInBatches",
|
||||
"position": [
|
||||
340,
|
||||
-360
|
||||
],
|
||||
"parameters": {
|
||||
"options": {}
|
||||
},
|
||||
"typeVersion": 3
|
||||
},
|
||||
{
|
||||
"id": "eec2ee2b-12ab-4cd3-9eb9-e300b5c27e81",
|
||||
"name": "Issue Ref",
|
||||
"type": "n8n-nodes-base.noOp",
|
||||
"position": [
|
||||
560,
|
||||
-200
|
||||
],
|
||||
"parameters": {},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "3f33f567-baa0-4ca8-8a05-05302b0807aa",
|
||||
"name": "Get Comments",
|
||||
"type": "n8n-nodes-base.jira",
|
||||
"position": [
|
||||
1000,
|
||||
-200
|
||||
],
|
||||
"parameters": {
|
||||
"options": {
|
||||
"orderBy": "-created"
|
||||
},
|
||||
"issueKey": "={{ $json.issueKey }}",
|
||||
"resource": "issueComment",
|
||||
"operation": "getAll"
|
||||
},
|
||||
"credentials": {
|
||||
"jiraSoftwareCloudApi": {
|
||||
"id": "IH5V74q6PusewNjD",
|
||||
"name": "Jira SW Cloud account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "a631d8d7-8bcd-4a9b-a89b-5f3b7e7ba181",
|
||||
"name": "Simplify Comments",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
1220,
|
||||
-200
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"assignments": {
|
||||
"assignments": [
|
||||
{
|
||||
"id": "faba7ffd-4f3a-4394-9bed-01014ddc12c1",
|
||||
"name": "author",
|
||||
"type": "string",
|
||||
"value": "={{ $json.author.displayName }}"
|
||||
},
|
||||
{
|
||||
"id": "76ed191c-6c43-47e7-bbaf-104bdde26993",
|
||||
"name": "comment",
|
||||
"type": "string",
|
||||
"value": "={{ $json.body.content.map(item => item.content[0].text).join('\\n') }}"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 3.4
|
||||
},
|
||||
{
|
||||
"id": "a0047017-0dd4-49d1-bda7-4ed94b3b6400",
|
||||
"name": "Summarise Resolution",
|
||||
"type": "@n8n/n8n-nodes-langchain.chainLlm",
|
||||
"position": [
|
||||
1660,
|
||||
-200
|
||||
],
|
||||
"parameters": {
|
||||
"text": "=## Issue\n{{ $('Simplify Issue').item.json.issueKey }} {{ $('Simplify Issue').item.json.summary }}\n{{ $('Simplify Issue').item.json.description }}\n\n## Comments\n{{ $json.comments.map((item,idx) => `${idx+1}. ${item.comment.replaceAll('\\n', ' ')}`).join('\\n') }}",
|
||||
"messages": {
|
||||
"messageValues": [
|
||||
{
|
||||
"message": "Analyse the given issue and its comments. Your task is to summarise the resolution of this issue."
|
||||
}
|
||||
]
|
||||
},
|
||||
"promptType": "define"
|
||||
},
|
||||
"typeVersion": 1.6
|
||||
},
|
||||
{
|
||||
"id": "6bb5d668-062e-417a-a874-9f10a334a19b",
|
||||
"name": "Simplify Issue",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
780,
|
||||
-200
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"assignments": {
|
||||
"assignments": [
|
||||
{
|
||||
"id": "267918d5-5193-48c8-8e3a-6542c8edf77c",
|
||||
"name": "projectKey",
|
||||
"type": "string",
|
||||
"value": "={{ $json.fields.project.key }}"
|
||||
},
|
||||
{
|
||||
"id": "8c44b6b1-a5e7-4312-b96c-727b24a82ac2",
|
||||
"name": "issueKey",
|
||||
"type": "string",
|
||||
"value": "={{ $json.key }}"
|
||||
},
|
||||
{
|
||||
"id": "3451a39f-1907-4406-beb9-fd4feebbf4c2",
|
||||
"name": "issueType",
|
||||
"type": "string",
|
||||
"value": "={{ $json.fields.issuetype.name }}"
|
||||
},
|
||||
{
|
||||
"id": "99f33276-50ad-424a-b307-2ed69094bc43",
|
||||
"name": "createdAt",
|
||||
"type": "string",
|
||||
"value": "={{ $json.fields.created }}"
|
||||
},
|
||||
{
|
||||
"id": "5463ff2e-4d42-4602-8278-555f369a37e5",
|
||||
"name": "status",
|
||||
"type": "string",
|
||||
"value": "={{ $json.fields.status.name }}"
|
||||
},
|
||||
{
|
||||
"id": "1df0588e-7916-4c4d-95f1-7c6d58ba094f",
|
||||
"name": "summary",
|
||||
"type": "string",
|
||||
"value": "={{ $json.fields.summary }}"
|
||||
},
|
||||
{
|
||||
"id": "ecf69a9b-18c9-4b04-9d6e-b77391728f33",
|
||||
"name": "description",
|
||||
"type": "string",
|
||||
"value": "={{ $json.fields.description }}"
|
||||
},
|
||||
{
|
||||
"id": "8f7b0876-4d6f-42b3-bc12-34396ce824ed",
|
||||
"name": "reportedBy",
|
||||
"type": "string",
|
||||
"value": "={{ $json.fields.creator.displayName }}"
|
||||
},
|
||||
{
|
||||
"id": "74504426-6ecd-4b32-866f-0e336c669650",
|
||||
"name": "reportedByEmailAddress",
|
||||
"type": "string",
|
||||
"value": "={{ $json.fields.creator.emailAddress }}"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 3.4
|
||||
},
|
||||
{
|
||||
"id": "410c40a1-2f06-4c84-bbd7-1cb3dc5e93af",
|
||||
"name": "Aggregate",
|
||||
"type": "n8n-nodes-base.aggregate",
|
||||
"position": [
|
||||
1440,
|
||||
-200
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"aggregate": "aggregateAllItemData",
|
||||
"destinationFieldName": "comments"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "1cb3d1ac-1084-417f-a39a-1fbc04b10915",
|
||||
"name": "OpenAI Chat Model1",
|
||||
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
|
||||
"position": [
|
||||
1760,
|
||||
-40
|
||||
],
|
||||
"parameters": {
|
||||
"model": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "gpt-4o-mini"
|
||||
},
|
||||
"options": {}
|
||||
},
|
||||
"credentials": {
|
||||
"openAiApi": {
|
||||
"id": "8gccIjcuf3gvaoEr",
|
||||
"name": "OpenAi account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
},
|
||||
{
|
||||
"id": "0f8325eb-4d23-4a05-9f76-7ef111b8d2d6",
|
||||
"name": "Return Fields",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
2020,
|
||||
-80
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"assignments": {
|
||||
"assignments": [
|
||||
{
|
||||
"id": "ae761d50-f4b9-4baa-beec-ca1a91614d1c",
|
||||
"name": "issueKey",
|
||||
"type": "string",
|
||||
"value": "={{ $('Simplify Issue').item.json.issueKey }}"
|
||||
},
|
||||
{
|
||||
"id": "963b12a4-cf60-4380-9f71-4b9885e9f9b5",
|
||||
"name": "summary",
|
||||
"type": "string",
|
||||
"value": "={{ $('Simplify Issue').item.json.summary }}"
|
||||
},
|
||||
{
|
||||
"id": "62a6c941-ccd4-4d71-8685-e5a1144395ca",
|
||||
"name": "description",
|
||||
"type": "string",
|
||||
"value": "={{ $('Simplify Issue').item.json.description }}"
|
||||
},
|
||||
{
|
||||
"id": "47d26f5c-d360-4ca3-b48a-d36ea1746a3b",
|
||||
"name": "resolution",
|
||||
"type": "string",
|
||||
"value": "={{ $json.text }}"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 3.4
|
||||
},
|
||||
{
|
||||
"id": "26a32cba-b0b1-4434-b915-6a879eb511e2",
|
||||
"name": "Attempt to Resolve Issue",
|
||||
"type": "@n8n/n8n-nodes-langchain.chainLlm",
|
||||
"position": [
|
||||
1100,
|
||||
-600
|
||||
],
|
||||
"parameters": {
|
||||
"text": "=## Current Issue\nReported by: {{ $('Simplify Ticket').item.json.reportedBy }}\n{{ $('Simplify Ticket').item.json.issueKey }} {{ $('Simplify Ticket').item.json.summary }}\n{{ $('Simplify Ticket').item.json.description }}\n\n## Previously resolved Issues\n{{ $json.resolved_issues.toJsonString() }}",
|
||||
"messages": {
|
||||
"messageValues": [
|
||||
{
|
||||
"message": "=Using the previously resolved issues, attempt to suggest a resolution for the current issue for the reporter. Please address your answer to the reporter. Assume the report is non-technical and simplify your response as much as possible. Do not sign off your message."
|
||||
}
|
||||
]
|
||||
},
|
||||
"promptType": "define"
|
||||
},
|
||||
"typeVersion": 1.6
|
||||
},
|
||||
{
|
||||
"id": "66929c27-6bc2-43a9-8419-554dbbb33849",
|
||||
"name": "Aggregate1",
|
||||
"type": "n8n-nodes-base.aggregate",
|
||||
"position": [
|
||||
900,
|
||||
-600
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"aggregate": "aggregateAllItemData",
|
||||
"destinationFieldName": "resolved_issues"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "bbf5bb39-a933-49f1-abb6-143b0bce7d08",
|
||||
"name": "OpenAI Chat Model2",
|
||||
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
|
||||
"position": [
|
||||
1200,
|
||||
-440
|
||||
],
|
||||
"parameters": {
|
||||
"model": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "gpt-4o-mini"
|
||||
},
|
||||
"options": {}
|
||||
},
|
||||
"credentials": {
|
||||
"openAiApi": {
|
||||
"id": "8gccIjcuf3gvaoEr",
|
||||
"name": "OpenAi account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
},
|
||||
{
|
||||
"id": "f7802fbc-96b0-4dcb-98c6-ef9051959728",
|
||||
"name": "Add Comment to Issue",
|
||||
"type": "n8n-nodes-base.jira",
|
||||
"position": [
|
||||
1460,
|
||||
-600
|
||||
],
|
||||
"parameters": {
|
||||
"comment": "={{ $json.text }}",
|
||||
"options": {},
|
||||
"issueKey": "={{ $('Simplify Ticket').item.json.issueKey }}",
|
||||
"resource": "issueComment"
|
||||
},
|
||||
"credentials": {
|
||||
"jiraSoftwareCloudApi": {
|
||||
"id": "IH5V74q6PusewNjD",
|
||||
"name": "Jira SW Cloud account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "a294329c-8ff6-4b2f-aa38-e9661d797f7e",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
-1620,
|
||||
-600
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 680,
|
||||
"height": 460,
|
||||
"content": "## 1. Get Open Tickets\n[Read more about the Scheduled Trigger node](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.scheduletrigger)\n\nWe can use a scheduled trigger to aggressively check for newly open tickets in our JIRA support queue. The \"remove duplicates\" node (ie. Mark as Seen) is used so that we don't process any issues more than once."
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "d201a66e-b64b-4b55-b785-9ab2d78f5362",
|
||||
"name": "Mark as Seen",
|
||||
"type": "n8n-nodes-base.removeDuplicates",
|
||||
"position": [
|
||||
-1140,
|
||||
-400
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"operation": "removeItemsSeenInPreviousExecutions",
|
||||
"dedupeValue": "={{ $json.key }}"
|
||||
},
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "72446f8f-07f8-4d06-afe7-ea7ca905183b",
|
||||
"name": "Sticky Note1",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
-900,
|
||||
-600
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 860,
|
||||
"height": 540,
|
||||
"content": "## 2. Automate Triaging of Ticket\n[Read more about the Basic LLM node](https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.chainllm)\n\nNew tickets always need to be properly labelled and prioritised but it's not always possible to get to update all incoming tickets if you're light on hands. Using an AI is a great use-case for triaging of tickets as its contextual understanding helps automates this step."
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "8b17aa91-afcb-4106-9987-c380fcb414b6",
|
||||
"name": "Sticky Note2",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
0,
|
||||
-600
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 760,
|
||||
"height": 600,
|
||||
"content": "## 3. Attempt to Resolve Ticket Using Previously Resolved Issues\n[Learn more about the JIRA node](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.jira)\n\nThere are a number of approaches to also automate issue resolution. Here, we can search for similar tickets in the \"Done\" or resolved state and using the accepted answers of those tickets, provide context for an AI agent to suggest some ideas back to the user - best case, the fix is found and worst case, the user can add more debugging information through failed attempts."
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "ea4b420e-7e93-46e6-a94c-96ff96ce38f0",
|
||||
"name": "Sticky Note3",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
800,
|
||||
-800
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 860,
|
||||
"height": 520,
|
||||
"content": "## 4. Suggest a Resolution via Comment\n[Learn more about the JIRA node](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.jira)\n\nFinally, we provide the context of past resolved tickets for the agent to suggest a few resolution ideas back to the user. Be sure to format the answer to match your company tone of voice as without, AI may sound quite technical and robotic!"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "de26a64a-73dc-4952-946b-c45af9d712ce",
|
||||
"name": "Sticky Note4",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
-2100,
|
||||
-1040
|
||||
],
|
||||
"parameters": {
|
||||
"width": 440,
|
||||
"height": 1100,
|
||||
"content": "## Try It Out!\n### This n8n template automates triaging of newly opened support tickets and issue resolution via JIRA.\n\nIf your organisation deals with a large number of support requests daily, automating triaging is a great use-case for introducing AI to your support teams. Extending the idea, we can also get AI to give a first attempt at resolving the issue intelligently.\n\n### How it works\n* A scheduled trigger picks up newly opened JIRA support tickets from the queue and discards any seen before.\n* An AI agent analyses the open ticket to add labels, priority on the seriousness of the issue and simplifies the description for better readability and understanding for human support.\n* Next, the agent attempts to address and resolve the issue by finding similar issues (by tags) which have been resolved.\n* Each similar issue has its comments analysed and summarised to identify the actual resolution and facts.\n* These summarises are then used as context for the AI agent to suggest a fix to the open ticket.\n\n### How to use\n* Simply connect your JIRA instance to the workflow and activate to start watching for open tickets. Depending on frequency, you may need to increase for decrease the intervals.\n* Define labels to use in the agent's system prompt.\n* Restrict to certain projects or issue types to suit your organisation.\n\n### Requirements\n* JIRA for issue management and support portal\n* OpenAI for LLM\n\n### Customising this workflow\n* Not using JIRA? Try swapping out the nodes for Linear or your issue management system of choice.\n* Try a different approach for issue resolution. You might want to try RAG approach where a knowledge base is used.\n\n### Need Help?\nJoin the [Discord](https://discord.com/invite/XPKeKXeB7d) or ask in the [Forum](https://community.n8n.io/)!\n\nHappy Hacking!"
|
||||
},
|
||||
"typeVersion": 1
|
||||
}
|
||||
],
|
||||
"pinData": {},
|
||||
"connections": {
|
||||
"Aggregate": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Summarise Resolution",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Issue Ref": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Simplify Issue",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Aggregate1": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Attempt to Resolve Issue",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Get Comments": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Simplify Comments",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Mark as Seen": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Simplify Ticket",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Return Fields": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Loop Over Items",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Simplify Issue": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Get Comments",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Loop Over Items": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Aggregate1",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"node": "Issue Ref",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Simplify Ticket": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Label, Prioritize & Rewrite",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Get Open Tickets": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Mark as Seen",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Schedule Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Get Open Tickets",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"OpenAI Chat Model": {
|
||||
"ai_languageModel": [
|
||||
[
|
||||
{
|
||||
"node": "Label, Prioritize & Rewrite",
|
||||
"type": "ai_languageModel",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Simplify Comments": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Aggregate",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"OpenAI Chat Model1": {
|
||||
"ai_languageModel": [
|
||||
[
|
||||
{
|
||||
"node": "Summarise Resolution",
|
||||
"type": "ai_languageModel",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"OpenAI Chat Model2": {
|
||||
"ai_languageModel": [
|
||||
[
|
||||
{
|
||||
"node": "Attempt to Resolve Issue",
|
||||
"type": "ai_languageModel",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Summarise Resolution": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Return Fields",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Attempt to Resolve Issue": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Add Comment to Issue",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Structured Output Parser": {
|
||||
"ai_outputParser": [
|
||||
[
|
||||
{
|
||||
"node": "Label, Prioritize & Rewrite",
|
||||
"type": "ai_outputParser",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Label, Prioritize & Rewrite": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Update Labels, Priority and Description",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Get Recent Similar Issues Resolved": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Loop Over Items",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Update Labels, Priority and Description": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Get Recent Similar Issues Resolved",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,339 @@
|
||||
{
|
||||
"meta": {
|
||||
"instanceId": "408f9fb9940c3cb18ffdef0e0150fe342d6e655c3a9fac21f0f644e8bedabcd9",
|
||||
"templateCredsSetupCompleted": true
|
||||
},
|
||||
"nodes": [
|
||||
{
|
||||
"id": "154458b0-dde3-4224-9fa8-d38a025aa0d3",
|
||||
"name": "Schedule Trigger",
|
||||
"type": "n8n-nodes-base.scheduleTrigger",
|
||||
"position": [
|
||||
-640,
|
||||
-140
|
||||
],
|
||||
"parameters": {
|
||||
"rule": {
|
||||
"interval": [
|
||||
{
|
||||
"field": "hours"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
},
|
||||
{
|
||||
"id": "0fc88546-50ef-4183-8fb2-dcea939f3bcf",
|
||||
"name": "Get Recent Messages",
|
||||
"type": "n8n-nodes-base.microsoftOutlook",
|
||||
"position": [
|
||||
-440,
|
||||
-140
|
||||
],
|
||||
"webhookId": "48619a9a-d7a5-47af-983d-146e377d8767",
|
||||
"parameters": {
|
||||
"fields": [
|
||||
"body",
|
||||
"categories",
|
||||
"conversationId",
|
||||
"from",
|
||||
"hasAttachments",
|
||||
"internetMessageId",
|
||||
"sender",
|
||||
"subject",
|
||||
"toRecipients",
|
||||
"receivedDateTime",
|
||||
"webLink"
|
||||
],
|
||||
"output": "fields",
|
||||
"options": {},
|
||||
"filtersUI": {
|
||||
"values": {
|
||||
"filters": {
|
||||
"receivedAfter": "={{ $now.minus({ \"hour\": 1 }).toISO() }}"
|
||||
}
|
||||
}
|
||||
},
|
||||
"operation": "getAll"
|
||||
},
|
||||
"credentials": {
|
||||
"microsoftOutlookOAuth2Api": {
|
||||
"id": "EWg6sbhPKcM5y3Mr",
|
||||
"name": "Microsoft Outlook account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "d056be7e-43ed-4fea-8aef-36579c656633",
|
||||
"name": "OpenAI Chat Model",
|
||||
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
|
||||
"position": [
|
||||
280,
|
||||
40
|
||||
],
|
||||
"parameters": {
|
||||
"model": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "gpt-4o-mini"
|
||||
},
|
||||
"options": {}
|
||||
},
|
||||
"credentials": {
|
||||
"openAiApi": {
|
||||
"id": "8gccIjcuf3gvaoEr",
|
||||
"name": "OpenAi account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
},
|
||||
{
|
||||
"id": "e4b6fd9d-2506-45bf-bd80-a81a2c04306b",
|
||||
"name": "Structured Output Parser",
|
||||
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
|
||||
"position": [
|
||||
480,
|
||||
40
|
||||
],
|
||||
"parameters": {
|
||||
"schemaType": "manual",
|
||||
"inputSchema": "{\n \"type\": \"object\",\n \"properties\": {\n \"labels\": {\n \"type\": \"array\",\n \"items\": { \"type\": \"string\" }\n },\n \"priority\": { \"type\": \"number\" },\n \"summary\": { \"type\": \"string\" },\n \"description\": { \"type\": \"string\" }\n }\n}"
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
},
|
||||
{
|
||||
"id": "3cef25fc-2581-4556-bf54-7704815d98b3",
|
||||
"name": "Sticky Note1",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
0,
|
||||
-340
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 700,
|
||||
"height": 540,
|
||||
"content": "## 2. Automate Generation and Triaging of Ticket\n[Read more about the Basic LLM node](https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.chainllm)\n\nNew tickets always need to be properly labelled and prioritised but it's not always possible to get to update all incoming tickets if you're light on hands. Using an AI is a great use-case for triaging of tickets as its contextual understanding helps automates this step."
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "d6ba8c9b-3e39-442f-8b79-cafe11c15a18",
|
||||
"name": "Markdown",
|
||||
"type": "n8n-nodes-base.markdown",
|
||||
"position": [
|
||||
100,
|
||||
-140
|
||||
],
|
||||
"parameters": {
|
||||
"html": "={{ $json.body.content }}",
|
||||
"options": {}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "fb7c6d7c-df30-43de-8f37-9e394a8ad7aa",
|
||||
"name": "Create Issue",
|
||||
"type": "n8n-nodes-base.jira",
|
||||
"position": [
|
||||
900,
|
||||
-140
|
||||
],
|
||||
"parameters": {
|
||||
"project": {
|
||||
"__rl": true,
|
||||
"mode": "id",
|
||||
"value": "10000"
|
||||
},
|
||||
"summary": "={{ $json.output.summary }}",
|
||||
"issueType": {
|
||||
"__rl": true,
|
||||
"mode": "id",
|
||||
"value": "10000"
|
||||
},
|
||||
"additionalFields": {
|
||||
"labels": "={{ $json.output.labels }}",
|
||||
"priority": {
|
||||
"__rl": true,
|
||||
"mode": "id",
|
||||
"value": "={{ $json.output.priority }}"
|
||||
},
|
||||
"description": "={{ $json.output.description }}"
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"jiraSoftwareCloudApi": {
|
||||
"id": "IH5V74q6PusewNjD",
|
||||
"name": "Jira SW Cloud account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "9e26f402-36da-40e1-a736-db4fe16de54a",
|
||||
"name": "Mark as Seen",
|
||||
"type": "n8n-nodes-base.removeDuplicates",
|
||||
"position": [
|
||||
-240,
|
||||
-140
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"operation": "removeItemsSeenInPreviousExecutions",
|
||||
"dedupeValue": "={{ $json.id }}"
|
||||
},
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "b5f49877-e494-4712-a937-1f348198700e",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
-740,
|
||||
-340
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 720,
|
||||
"height": 540,
|
||||
"content": "## 1. Watch Outlook Inbox for Support Emails\n[Learn more about the Outlook node](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.microsoftoutlook/)\n\n**This template assumes a shared inbox specifically for support tickets!** If you have a general inbox, you may need to classify and filter each message which might become costly. The \"remove duplicates\" node (ie. \"Mark as seen\") ensures we only process each email exactly once."
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "b9d08834-14ad-4cdf-bc20-411033eee5b7",
|
||||
"name": "Sticky Note2",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
720,
|
||||
-340
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 460,
|
||||
"height": 440,
|
||||
"content": "## 3. Create Issue in JIRA\n[Read more about the JIRA node](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.jira/)\n\nThis is only a simple example to create an issue in JIRA but easily extendable to add much more!"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "e6942a39-1893-44cf-a846-c6b4d9c37e92",
|
||||
"name": "Sticky Note3",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
-1160,
|
||||
-720
|
||||
],
|
||||
"parameters": {
|
||||
"width": 380,
|
||||
"height": 940,
|
||||
"content": "## Try It Out!\n### This n8n template watches an outlook shared inbox for support messages and creates an equivalent issue item in JIRA.\n\n### How it works\n* A scheduled trigger fetches recent Outlook messages from an shared inbox which collects support requests.\n* These support requests are filtered to ensure they are only processed once and their HTML body is converted to markdown for easier parsing.\n* Each support request is then triaged via an AI Agent which adds appropriate labels, assesses priority and summarises a title and description of the original request.\n* Finally, the AI generated values are used to create an issue in JIRA to be actioned.\n\n### How to use\n* Ensure the messages fetched are solely support requests otherwise you'll need to classify messages before processing them.\n* Specify the labels and priorities to use in the system prompt of the AI agent.\n\n### Requirements\n* Outlook for incoming support\n* OpenAI for LLM\n* JIRA for issue management\n\n### Customising this workflow\n* Consider automating more steps after the issue is created such as attempting issue resolution or capacity planning.\n\n\n### Need Help?\nJoin the [Discord](https://discord.com/invite/XPKeKXeB7d) or ask in the [Forum](https://community.n8n.io/)!\n\nHappy Hacking!"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "71a906b2-7b01-43a8-aa82-7d9810d95e23",
|
||||
"name": "Generate Issue From Support Request",
|
||||
"type": "@n8n/n8n-nodes-langchain.chainLlm",
|
||||
"position": [
|
||||
300,
|
||||
-140
|
||||
],
|
||||
"parameters": {
|
||||
"text": "=Reported by {{ $json.from.emailAddress.name }} <{{ $json.from.emailAddress.address }}>\nReported at: {{ $now.toISO() }}\nSummary: {{ $json.subject }}\nDescription:\n{{ $json.data.replaceAll('\\n', ' ') }}",
|
||||
"messages": {
|
||||
"messageValues": [
|
||||
{
|
||||
"message": "=Your are JIRA triage assistant who's task is to\n1) classify and label the given issue.\n2) Prioritise the given issue.\n3) Rewrite the issue summary and description.\n\n## Labels\nUse one or more. Use words wrapped in \"[]\" (square brackets):\n* Technical\n* Account\n* Access\n* Billing\n* Product\n* Training\n* Feedback\n* Complaints\n* Security\n* Privacy\n\n## Priority\n* 1 - highest\n* 2 - high\n* 3 - medium\n* 4 - low\n* 5 - lowest\n\n## Write Summary and Description\n* Remove emotional and anedotal phrases or information\n* Keep to the facts of the matter\n* Highlight what was attempted and is/was failing"
|
||||
}
|
||||
]
|
||||
},
|
||||
"promptType": "define",
|
||||
"hasOutputParser": true
|
||||
},
|
||||
"typeVersion": 1.6
|
||||
}
|
||||
],
|
||||
"pinData": {},
|
||||
"connections": {
|
||||
"Markdown": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Generate Issue From Support Request",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Mark as Seen": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Markdown",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Schedule Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Get Recent Messages",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"OpenAI Chat Model": {
|
||||
"ai_languageModel": [
|
||||
[
|
||||
{
|
||||
"node": "Generate Issue From Support Request",
|
||||
"type": "ai_languageModel",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Get Recent Messages": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Mark as Seen",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Structured Output Parser": {
|
||||
"ai_outputParser": [
|
||||
[
|
||||
{
|
||||
"node": "Generate Issue From Support Request",
|
||||
"type": "ai_outputParser",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Generate Issue From Support Request": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Create Issue",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,325 @@
|
||||
{
|
||||
"meta": {
|
||||
"instanceId": "408f9fb9940c3cb18ffdef0e0150fe342d6e655c3a9fac21f0f644e8bedabcd9",
|
||||
"templateCredsSetupCompleted": true
|
||||
},
|
||||
"nodes": [
|
||||
{
|
||||
"id": "1c583599-826d-4a02-bfd9-f22f020f4af7",
|
||||
"name": "Schedule Trigger",
|
||||
"type": "n8n-nodes-base.scheduleTrigger",
|
||||
"position": [
|
||||
-640,
|
||||
-140
|
||||
],
|
||||
"parameters": {
|
||||
"rule": {
|
||||
"interval": [
|
||||
{
|
||||
"field": "hours"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
},
|
||||
{
|
||||
"id": "aaddc5fd-4b05-4ee2-9f71-222b14fb05d6",
|
||||
"name": "OpenAI Chat Model",
|
||||
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
|
||||
"position": [
|
||||
280,
|
||||
40
|
||||
],
|
||||
"parameters": {
|
||||
"model": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "gpt-4o-mini"
|
||||
},
|
||||
"options": {}
|
||||
},
|
||||
"credentials": {
|
||||
"openAiApi": {
|
||||
"id": "8gccIjcuf3gvaoEr",
|
||||
"name": "OpenAi account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
},
|
||||
{
|
||||
"id": "cd2a47fb-3e04-464d-bcac-00e84952d72c",
|
||||
"name": "Structured Output Parser",
|
||||
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
|
||||
"position": [
|
||||
480,
|
||||
40
|
||||
],
|
||||
"parameters": {
|
||||
"schemaType": "manual",
|
||||
"inputSchema": "{\n \"type\": \"object\",\n \"properties\": {\n \"labels\": {\n \"type\": \"array\",\n \"items\": { \"type\": \"string\" }\n },\n \"priority\": { \"type\": \"number\" },\n \"summary\": { \"type\": \"string\" },\n \"description\": { \"type\": \"string\" }\n }\n}"
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
},
|
||||
{
|
||||
"id": "48234689-66fd-4a5e-b940-5e6e07a95ad9",
|
||||
"name": "Sticky Note1",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
0,
|
||||
-340
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 700,
|
||||
"height": 540,
|
||||
"content": "## 2. Automate Generation and Triaging of Ticket\n[Read more about the Basic LLM node](https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.chainllm)\n\nNew tickets always need to be properly labelled and prioritised but it's not always possible to get to update all incoming tickets if you're light on hands. Using an AI is a great use-case for triaging of tickets as its contextual understanding helps automates this step."
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "c25fd99f-4898-479f-bf63-a79c3ca084fc",
|
||||
"name": "Markdown",
|
||||
"type": "n8n-nodes-base.markdown",
|
||||
"position": [
|
||||
100,
|
||||
-140
|
||||
],
|
||||
"parameters": {
|
||||
"html": "={{ $json.html }}",
|
||||
"options": {}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "b27f5e33-d149-4395-84b2-e1e1070c8a0b",
|
||||
"name": "Mark as Seen",
|
||||
"type": "n8n-nodes-base.removeDuplicates",
|
||||
"position": [
|
||||
-220,
|
||||
-140
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"operation": "removeItemsSeenInPreviousExecutions",
|
||||
"dedupeValue": "={{ $json.id }}"
|
||||
},
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "e282e452-0dbb-4d00-b319-13840264feda",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
-740,
|
||||
-340
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 720,
|
||||
"height": 540,
|
||||
"content": "## 1. Watch Gmail Inbox for Support Emails\n[Learn more about the Gmail node](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.gmail/)\n\n**This template assumes a group email specifically for support tickets!** If you have a general inbox, you may need to classify and filter each message which might become costly. The \"remove duplicates\" node (ie. \"Mark as seen\") ensures we only process each email exactly once."
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "d43db00e-bfd4-4b18-ad33-4bccb3373d09",
|
||||
"name": "Sticky Note2",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
720,
|
||||
-340
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 460,
|
||||
"height": 440,
|
||||
"content": "## 3. Create Issue in Linear.App\n[Read more about the Linear.App node](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.linear)\n\nThis is only a simple example to create an issue in Linear.App but easily extendable to add much more!"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "13f657aa-5af1-4af4-af04-f81a13d2ce29",
|
||||
"name": "Sticky Note3",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
-1160,
|
||||
-720
|
||||
],
|
||||
"parameters": {
|
||||
"width": 380,
|
||||
"height": 940,
|
||||
"content": "## Try It Out!\n### This n8n template watches a Gmail inbox for support messages and creates an equivalent issue item in Linear.\n\n### How it works\n* A scheduled trigger fetches recent Gmail messages from the inbox which collects support requests.\n* These support requests are filtered to ensure they are only processed once and their HTML body is converted to markdown for easier parsing.\n* Each support request is then triaged via an AI Agent which adds appropriate labels, assesses priority and summarises a title and description of the original request.\n* Finally, the AI generated values are used to create an issue in Linear to be actioned.\n\n### How to use\n* Ensure the messages fetched are solely support requests otherwise you'll need to classify messages before processing them.\n* Specify the labels and priorities to use in the system prompt of the AI agent.\n\n### Requirements\n* Gmail for incoming support messages\n* OpenAI for LLM\n* Linear for issue management\n\n### Customising this workflow\n* Consider automating more steps after the issue is created such as attempting issue resolution or capacity planning.\n\n\n### Need Help?\nJoin the [Discord](https://discord.com/invite/XPKeKXeB7d) or ask in the [Forum](https://community.n8n.io/)!\n\nHappy Hacking!"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "684a5300-41c9-4ec4-8780-d1797e4dcfa2",
|
||||
"name": "Generate Issue From Support Request",
|
||||
"type": "@n8n/n8n-nodes-langchain.chainLlm",
|
||||
"position": [
|
||||
300,
|
||||
-140
|
||||
],
|
||||
"parameters": {
|
||||
"text": "=Reported by {{ $json.from.value[0].name }} <{{ $json.from.value[0].address }}>\nReported at: {{ $now.toISO() }}\nSummary: {{ $json.subject }}\nDescription:\n{{ $json.data.replaceAll('\\n', ' ') }}",
|
||||
"messages": {
|
||||
"messageValues": [
|
||||
{
|
||||
"message": "=Your are Issues triage assistant who's task is to\n1) classify and label the given issue.\n2) Prioritise the given issue.\n3) Rewrite the issue summary and description.\n\n## Labels\nUse one or more labels.\n* Technical\n* Account\n* Access\n* Billing\n* Product\n* Training\n* Feedback\n* Complaints\n* Security\n* Privacy\n\n## Priority\n* 1 - highest\n* 2 - high\n* 3 - medium\n* 4 - low\n* 5 - lowest\n\n## Write Summary and Description\n* Remove emotional and anedotal phrases or information\n* Keep to the facts of the matter\n* Highlight what was attempted and is/was failing"
|
||||
}
|
||||
]
|
||||
},
|
||||
"promptType": "define",
|
||||
"hasOutputParser": true
|
||||
},
|
||||
"typeVersion": 1.6
|
||||
},
|
||||
{
|
||||
"id": "50aa5f53-680a-4518-a3a5-b97c3bd82af3",
|
||||
"name": "Get Recent Messages",
|
||||
"type": "n8n-nodes-base.gmail",
|
||||
"position": [
|
||||
-440,
|
||||
-140
|
||||
],
|
||||
"webhookId": "f3528949-056d-4013-ab62-9694e72b38cd",
|
||||
"parameters": {
|
||||
"limit": 1,
|
||||
"simple": false,
|
||||
"filters": {
|
||||
"q": "to:support@example.com"
|
||||
},
|
||||
"options": {},
|
||||
"operation": "getAll"
|
||||
},
|
||||
"credentials": {
|
||||
"gmailOAuth2": {
|
||||
"id": "Sf5Gfl9NiFTNXFWb",
|
||||
"name": "Gmail account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.1
|
||||
},
|
||||
{
|
||||
"id": "a7a41e51-3852-43f3-98b9-d67bab4f8e41",
|
||||
"name": "Create Issue in Linear.App",
|
||||
"type": "n8n-nodes-base.linear",
|
||||
"position": [
|
||||
900,
|
||||
-140
|
||||
],
|
||||
"parameters": {
|
||||
"title": "={{ $json.output.summary }}",
|
||||
"teamId": "1c721608-321d-4132-ac32-6e92d04bb487",
|
||||
"additionalFields": {
|
||||
"stateId": "92962324-3d1f-4cf8-993b-0c982cc95245",
|
||||
"priorityId": "={{ $json.output.priority ?? 3 }}",
|
||||
"description": "={{ $json.output.description }}\n\n{{ $json.output.labels.map(label => `#${label}`).join(' ') }}"
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"linearApi": {
|
||||
"id": "Nn0F7T9FtvRUtEbe",
|
||||
"name": "Linear account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "4593cd01-8fa3-4828-ba77-21082a2f31fb",
|
||||
"name": "Sticky Note4",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
-500,
|
||||
40
|
||||
],
|
||||
"parameters": {
|
||||
"color": 5,
|
||||
"height": 120,
|
||||
"content": "### Gmail Filters\nHere we're using the filter `to:support@example.com` to capture support requests."
|
||||
},
|
||||
"typeVersion": 1
|
||||
}
|
||||
],
|
||||
"pinData": {},
|
||||
"connections": {
|
||||
"Markdown": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Generate Issue From Support Request",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Mark as Seen": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Markdown",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Schedule Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Get Recent Messages",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"OpenAI Chat Model": {
|
||||
"ai_languageModel": [
|
||||
[
|
||||
{
|
||||
"node": "Generate Issue From Support Request",
|
||||
"type": "ai_languageModel",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Get Recent Messages": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Mark as Seen",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Structured Output Parser": {
|
||||
"ai_outputParser": [
|
||||
[
|
||||
{
|
||||
"node": "Generate Issue From Support Request",
|
||||
"type": "ai_outputParser",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Generate Issue From Support Request": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Create Issue in Linear.App",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,747 @@
|
||||
{
|
||||
"meta": {
|
||||
"instanceId": "2b1cc1a8b0a2fb9caab11ab2d5eb3712f9973066051b2e898cf4041a1f2a7757",
|
||||
"templateId": "2324",
|
||||
"templateCredsSetupCompleted": true
|
||||
},
|
||||
"nodes": [
|
||||
{
|
||||
"id": "71b06728-7f59-49e3-9365-3281189a6659",
|
||||
"name": "When clicking \"Test workflow\"",
|
||||
"type": "n8n-nodes-base.manualTrigger",
|
||||
"position": [
|
||||
920,
|
||||
340
|
||||
],
|
||||
"parameters": {},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "b37019e3-c7ab-4119-986d-c27d082a036e",
|
||||
"name": "Input",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
1340,
|
||||
340
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"assignments": {
|
||||
"assignments": [
|
||||
{
|
||||
"id": "fcc97354-b9f6-4459-a004-46e87902c77c",
|
||||
"name": "company_input",
|
||||
"type": "string",
|
||||
"value": "={{ $json.input }}"
|
||||
},
|
||||
{
|
||||
"id": "e5415c49-5204-45b1-a0e9-814157127b12",
|
||||
"name": "row_number",
|
||||
"type": "number",
|
||||
"value": "={{ $json.row_number }}"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 3.3
|
||||
},
|
||||
{
|
||||
"id": "7d5d53ac-6d3c-4b24-97c7-deb6b76749e5",
|
||||
"name": "OpenAI Chat Model",
|
||||
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
|
||||
"position": [
|
||||
2020,
|
||||
660
|
||||
],
|
||||
"parameters": {
|
||||
"model": "gpt-4o",
|
||||
"options": {
|
||||
"temperature": 0.3
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"openAiApi": {
|
||||
"id": "FMTQypGcsAwaRQdC",
|
||||
"name": "OpenAi account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "24e2f3b0-8b90-49a9-bde6-0fb0c2baf52a",
|
||||
"name": "Get website content",
|
||||
"type": "@n8n/n8n-nodes-langchain.toolWorkflow",
|
||||
"position": [
|
||||
2580,
|
||||
680
|
||||
],
|
||||
"parameters": {
|
||||
"name": "get_website_content",
|
||||
"source": "parameter",
|
||||
"description": "This tool will return the text from the given URL. ",
|
||||
"workflowJson": "{\n \"meta\": {\n \"templateCredsSetupCompleted\": true,\n \"instanceId\": \"2b1cc1a8b0a2fb9caab11ab2d5eb3712f9973066051b2e898cf4041a1f2a7757\"\n },\n \"nodes\": [\n {\n \"parameters\": {},\n \"id\": \"475eaf3c-7e11-457e-8b72-4d3e683e2f80\",\n \"name\": \"Execute Workflow Trigger\",\n \"type\": \"n8n-nodes-base.executeWorkflowTrigger\",\n \"typeVersion\": 1,\n \"position\": [\n 260,\n 340\n ]\n },\n {\n \"parameters\": {\n \"url\": \"={{ $json.query.url }}\",\n \"options\": {}\n },\n \"id\": \"321fbc74-d749-4f9b-954e-7cad37601ddf\",\n \"name\": \"Visit Website\",\n \"type\": \"n8n-nodes-base.httpRequest\",\n \"typeVersion\": 4.2,\n \"position\": [\n 440,\n 340\n ]\n },\n {\n \"parameters\": {\n \"operation\": \"extractHtmlContent\",\n \"extractionValues\": {\n \"values\": [\n {\n \"key\": \"body\",\n \"cssSelector\": \"html\",\n \"skipSelectors\": \"head\"\n }\n ]\n },\n \"options\": {\n \"cleanUpText\": true\n }\n },\n \"id\": \"6e51732a-4999-4805-838b-f692e9965197\",\n \"name\": \"HTML\",\n \"type\": \"n8n-nodes-base.html\",\n \"typeVersion\": 1.2,\n \"position\": [\n 620,\n 340\n ]\n }\n ],\n \"connections\": {\n \"Execute Workflow Trigger\": {\n \"main\": [\n [\n {\n \"node\": \"Visit Website\",\n \"type\": \"main\",\n \"index\": 0\n }\n ]\n ]\n },\n \"Visit Website\": {\n \"main\": [\n [\n {\n \"node\": \"HTML\",\n \"type\": \"main\",\n \"index\": 0\n }\n ]\n ]\n }\n },\n \"pinData\": {\n \"Execute Workflow Trigger\": [\n {\n \"query\": {\n \"url\": \"https://www.lemlist.com\"\n }\n }\n ]\n }\n}",
|
||||
"jsonSchemaExample": "{\n\t\"url\": \"https://www.lemlist.com\"\n}",
|
||||
"specifyInputSchema": true,
|
||||
"responsePropertyName": "body"
|
||||
},
|
||||
"typeVersion": 1.1
|
||||
},
|
||||
{
|
||||
"id": "ff7ab74c-dfc6-43ce-8c57-6edf935b4915",
|
||||
"name": "SerpAPI - Search Google",
|
||||
"type": "@n8n/n8n-nodes-langchain.toolSerpApi",
|
||||
"position": [
|
||||
2300,
|
||||
660
|
||||
],
|
||||
"parameters": {
|
||||
"options": {}
|
||||
},
|
||||
"credentials": {
|
||||
"serpApi": {
|
||||
"id": "ECK6FimAloRJOZMG",
|
||||
"name": "SerpAPI account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "4fe311f2-4983-4380-b4ed-a827a406fce5",
|
||||
"name": "Structured Output Parser",
|
||||
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
|
||||
"position": [
|
||||
2880,
|
||||
660
|
||||
],
|
||||
"parameters": {
|
||||
"schemaType": "manual",
|
||||
"inputSchema": "{\n\t\"type\": \"object\",\n\t\"properties\": {\n\t\t\"case_study_link\": {\n\t\t\t\"type\":[\"string\", \"null\"]\n\t\t},\n \t\t\"domain\": {\n\t\t\t\"type\": [\"string\", \"null\"]\n\t\t},\n \"linkedinUrl\": {\n\t\t\t\"type\": [\"string\", \"null\"]\n\t\t},\n \t\"market\": {\n\t\t\t\"type\": [\"string\", \"null\"]\n\t\t},\n\t\t\"cheapest_plan\": {\n\t\t\t\"type\": [\"number\", \"null\"]\n\t\t},\n\t\"has_enterprise_plan\": {\n\t\t\t\"type\": [\"boolean\", \"null\"]\n\t\t},\n\t\"has_API\": {\n\t\t\t\"type\": [\"boolean\", \"null\"]\n\t\t},\n\t\"has_free_trial\": {\n\t\t\t\"type\": [\"boolean\", \"null\"]\n\t\t},\n\t\"integrations\": {\n\t\t\t\"type\": [\"array\",\"null\"],\n \"items\": {\n\t\t\t\t\"type\": \"string\"\n\t\t\t}\n\t\t}\n\t}\n}"
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
},
|
||||
{
|
||||
"id": "89ed0723-4dbe-428d-b1a9-ebdf515e42bb",
|
||||
"name": "Loop Over Items",
|
||||
"type": "n8n-nodes-base.splitInBatches",
|
||||
"position": [
|
||||
1600,
|
||||
340
|
||||
],
|
||||
"parameters": {
|
||||
"options": {}
|
||||
},
|
||||
"typeVersion": 3
|
||||
},
|
||||
{
|
||||
"id": "34ea3862-e8e5-4bf2-a9aa-2ad084376bb5",
|
||||
"name": "AI Researcher Output Data",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
2960,
|
||||
340
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"assignments": {
|
||||
"assignments": [
|
||||
{
|
||||
"id": "4109ca11-1bb8-4f5c-8bec-a962f44b0746",
|
||||
"name": "domain",
|
||||
"type": "string",
|
||||
"value": "={{ $json.output.domain }}"
|
||||
},
|
||||
{
|
||||
"id": "7f492768-375e-48fa-866b-644b2b5cbd68",
|
||||
"name": "linkedinUrl",
|
||||
"type": "string",
|
||||
"value": "={{ $json.output.linkedinUrl }}"
|
||||
},
|
||||
{
|
||||
"id": "e30b0d07-68db-45a1-9593-fd6ce24a1d50",
|
||||
"name": "market",
|
||||
"type": "string",
|
||||
"value": "={{ $json.output.market }}"
|
||||
},
|
||||
{
|
||||
"id": "0c03a51e-2c07-4583-85c6-d3d2ee81c5d1",
|
||||
"name": "cheapest_plan",
|
||||
"type": "number",
|
||||
"value": "={{ $json.output.cheapest_plan }}"
|
||||
},
|
||||
{
|
||||
"id": "0c9622d0-8446-4663-9a94-964b5df851f1",
|
||||
"name": "has_enterprise_plan",
|
||||
"type": "boolean",
|
||||
"value": "={{ $json.output.has_enterprise_plan }}"
|
||||
},
|
||||
{
|
||||
"id": "564cf6ea-457f-4762-bc19-6900b7d5743c",
|
||||
"name": "has_API",
|
||||
"type": "boolean",
|
||||
"value": "={{ $json.output.has_API }}"
|
||||
},
|
||||
{
|
||||
"id": "7fd39897-65c3-45d6-9563-8254f55ecef0",
|
||||
"name": "has_free_trial",
|
||||
"type": "boolean",
|
||||
"value": "={{ $json.output.has_free_trial }}"
|
||||
},
|
||||
{
|
||||
"id": "26477939-d407-4cae-92b2-9a9dc0f53a64",
|
||||
"name": "integrations",
|
||||
"type": "array",
|
||||
"value": "={{ $json.output.integrations }}"
|
||||
},
|
||||
{
|
||||
"id": "f0cc61d1-6b6b-4142-8627-4a4c721b19a1",
|
||||
"name": "case_study_link",
|
||||
"type": "string",
|
||||
"value": "={{ $json.output.case_study_link }}"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 3.3
|
||||
},
|
||||
{
|
||||
"id": "ff1cb26d-6138-4ee1-9f28-4ecc80c1c8ae",
|
||||
"name": "Google Sheets - Update Row with data",
|
||||
"type": "n8n-nodes-base.googleSheets",
|
||||
"position": [
|
||||
3600,
|
||||
700
|
||||
],
|
||||
"parameters": {
|
||||
"columns": {
|
||||
"value": {
|
||||
"domain": "={{ $json.domain }}",
|
||||
"market": "={{ $json.market }}",
|
||||
"row_number": "={{ $json.row_number }}",
|
||||
"linkedinUrl": "={{ $json.linkedinUrl }}",
|
||||
"integrations": "={{ $json.integrations }}",
|
||||
"cheapest_plan": "={{ $json.cheapest_plan }}",
|
||||
"has_free_trial": "={{ $json.has_free_trial }}",
|
||||
"enrichment_status": "done",
|
||||
"has_entreprise_plan": "={{ $json.has_enterprise_plan }}",
|
||||
"last_case_study_link": "={{ $json.case_study_link }}"
|
||||
},
|
||||
"schema": [
|
||||
{
|
||||
"id": "input",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": true,
|
||||
"required": false,
|
||||
"displayName": "input",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "domain",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "domain",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "linkedinUrl",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "linkedinUrl",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "has_free_trial",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "has_free_trial",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "cheapest_plan",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "cheapest_plan",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "has_entreprise_plan",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "has_entreprise_plan",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "last_case_study_link",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": false,
|
||||
"required": false,
|
||||
"displayName": "last_case_study_link",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "market",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "market",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "integrations",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "integrations",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "enrichment_status",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "enrichment_status",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "row_number",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": false,
|
||||
"readOnly": true,
|
||||
"required": false,
|
||||
"displayName": "row_number",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
}
|
||||
],
|
||||
"mappingMode": "defineBelow",
|
||||
"matchingColumns": [
|
||||
"row_number"
|
||||
]
|
||||
},
|
||||
"options": {},
|
||||
"operation": "update",
|
||||
"sheetName": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "gid=0",
|
||||
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/19U7gAgkUEz6mbFcnygf1zKDdGvY6OAdUqq3bZQWgjxE/edit#gid=0",
|
||||
"cachedResultName": "Sheet1"
|
||||
},
|
||||
"documentId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "19U7gAgkUEz6mbFcnygf1zKDdGvY6OAdUqq3bZQWgjxE",
|
||||
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/19U7gAgkUEz6mbFcnygf1zKDdGvY6OAdUqq3bZQWgjxE/edit?usp=drivesdk",
|
||||
"cachedResultName": "Enrich companies using AI agents"
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"googleSheetsOAuth2Api": {
|
||||
"id": "GC2OQl3Jvy543LT2",
|
||||
"name": "Google Sheets account - perso"
|
||||
}
|
||||
},
|
||||
"typeVersion": 4.3
|
||||
},
|
||||
{
|
||||
"id": "6611f852-b4d6-4a07-9428-db206ef57cc3",
|
||||
"name": "Merge data",
|
||||
"type": "n8n-nodes-base.merge",
|
||||
"position": [
|
||||
3240,
|
||||
180
|
||||
],
|
||||
"parameters": {
|
||||
"mode": "combine",
|
||||
"options": {},
|
||||
"combinationMode": "mergeByPosition"
|
||||
},
|
||||
"typeVersion": 2.1
|
||||
},
|
||||
{
|
||||
"id": "2a19516b-33a1-4987-9b5f-242a084621e0",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
380,
|
||||
240
|
||||
],
|
||||
"parameters": {
|
||||
"width": 409.0131656322444,
|
||||
"height": 658.0614601225933,
|
||||
"content": "## Read Me\n\nThis workflow allows you to do account research with the web using AI.\n\nThe advanced AI module has 2 capabilities: \n- Research Google using SerpAPI\n- Visit and get website content using a sub-workflow\n\n\nFrom an unstructured input like a domain or a company name. \n\nIt will return the following properties: \n- domain\n- company Linkedin Url\n- cheapest plan\n- has free trial\n- has entreprise plan\n- has API\n- market (B2B or B2C)\n\n\nThe strength of n8n here is that you can adapt this workflow to research whatever information you need.\n\nYou just have to precise it in the prompt and to precise the output format in the \"Strutured Output Parser\" module.\n\n[Click here to find more detailed instructions with video guide.](https://lempire.notion.site/AI-Web-research-with-n8n-a25aae3258d0423481a08bd102f16906)\n"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "67d485c9-3289-4bb3-9523-cd24c0b1aa05",
|
||||
"name": "Get rows to enrich",
|
||||
"type": "n8n-nodes-base.googleSheets",
|
||||
"position": [
|
||||
1140,
|
||||
340
|
||||
],
|
||||
"parameters": {
|
||||
"options": {
|
||||
"returnAllMatches": "returnAllMatches"
|
||||
},
|
||||
"filtersUI": {
|
||||
"values": [
|
||||
{
|
||||
"lookupColumn": "enrichment_status"
|
||||
}
|
||||
]
|
||||
},
|
||||
"sheetName": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "gid=0",
|
||||
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/19U7gAgkUEz6mbFcnygf1zKDdGvY6OAdUqq3bZQWgjxE/edit#gid=0",
|
||||
"cachedResultName": "Sheet1"
|
||||
},
|
||||
"documentId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "19U7gAgkUEz6mbFcnygf1zKDdGvY6OAdUqq3bZQWgjxE",
|
||||
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/19U7gAgkUEz6mbFcnygf1zKDdGvY6OAdUqq3bZQWgjxE/edit?usp=drivesdk",
|
||||
"cachedResultName": "Enrich companies using AI agents"
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"googleSheetsOAuth2Api": {
|
||||
"id": "GC2OQl3Jvy543LT2",
|
||||
"name": "Google Sheets account - perso"
|
||||
}
|
||||
},
|
||||
"typeVersion": 4.3
|
||||
},
|
||||
{
|
||||
"id": "eb0c95e7-2211-48d1-abaf-07cd0c76d3a6",
|
||||
"name": "Sticky Note1",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
1540,
|
||||
227.25301102878547
|
||||
],
|
||||
"parameters": {
|
||||
"width": 300.49399096535876,
|
||||
"height": 333.8263184006576,
|
||||
"content": "### Process rows 1 by 1\nThis module will allow us to process rows 1 by 1"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "8bf0deae-dda7-4e27-9ac7-978db14cca19",
|
||||
"name": "Sticky Note2",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
2740,
|
||||
560
|
||||
],
|
||||
"parameters": {
|
||||
"width": 300.49399096535876,
|
||||
"height": 236.01118609685022,
|
||||
"content": "Precise here the format in which you need the data to be "
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "dc4f1550-1e3c-4175-a2b3-10153dc2fd77",
|
||||
"name": "Sticky Note3",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
2180,
|
||||
200.2582716310755
|
||||
],
|
||||
"parameters": {
|
||||
"width": 300.49399096535876,
|
||||
"height": 279.8787004666023,
|
||||
"content": "### Ask AI what are the information you are looking for about the company"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "70fc73a0-303b-46e1-822d-cebdbccf8e32",
|
||||
"name": "Sticky Note4",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
2220,
|
||||
580
|
||||
],
|
||||
"parameters": {
|
||||
"height": 248.91749449109562,
|
||||
"content": "Get your free API key here https://serpapi.com/"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "0c1dafa9-28fe-4ef4-b80e-d4034e16f6c0",
|
||||
"name": "Schedule Trigger",
|
||||
"type": "n8n-nodes-base.scheduleTrigger",
|
||||
"position": [
|
||||
920,
|
||||
580
|
||||
],
|
||||
"parameters": {
|
||||
"rule": {
|
||||
"interval": [
|
||||
{
|
||||
"field": "hours",
|
||||
"hoursInterval": 2
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
},
|
||||
{
|
||||
"id": "8b5ebee9-f519-4621-bf2a-12891794f2c5",
|
||||
"name": "Sticky Note5",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
820,
|
||||
240
|
||||
],
|
||||
"parameters": {
|
||||
"width": 266.12865147126786,
|
||||
"height": 627.5654650079845,
|
||||
"content": "Run the workflow manually or activate it to run it every 2 hours"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "d7db2452-ba3d-4adb-bd8b-d17a92d1bce5",
|
||||
"name": "AI company researcher",
|
||||
"type": "@n8n/n8n-nodes-langchain.agent",
|
||||
"position": [
|
||||
2200,
|
||||
340
|
||||
],
|
||||
"parameters": {
|
||||
"text": "=This is the company I want you to research info about:\n{{ $json.company_input }}\n\nReturn me:\n- the linkedin URL of the company\n- the domain of the company. in this format ([domain].[tld])\n- market: if they are B2B or B2C. Only reply by \"B2B\" or \"B2B\"\n- the lowest paid plan the company is offering. If you are not sure, reply null.\n- the latest case study URL published on the website (find case study hub using google, and return the first case study link)\n- tell me if the company offer an API\n- tell me if the company has an enterprise plan\n- tell me if the company has a free trial mentionned in their homepage. reply false if you don't find strong evidence.\n- return an array with up to 5 tools the company is integrated with",
|
||||
"options": {
|
||||
"maxIterations": 10
|
||||
},
|
||||
"promptType": "define",
|
||||
"hasOutputParser": true
|
||||
},
|
||||
"typeVersion": 1.6
|
||||
},
|
||||
{
|
||||
"id": "f7896dbd-5c15-44e9-96ca-c695a66562cc",
|
||||
"name": "Search Google with ScrapingBee",
|
||||
"type": "@n8n/n8n-nodes-langchain.toolWorkflow",
|
||||
"position": [
|
||||
2300,
|
||||
1140
|
||||
],
|
||||
"parameters": {
|
||||
"name": "search_google",
|
||||
"source": "parameter",
|
||||
"description": "Call this tool to get results from a google search.",
|
||||
"workflowJson": "{\n \"meta\": {\n \"templateCredsSetupCompleted\": true,\n \"instanceId\": \"2b1cc1a8b0a2fb9caab11ab2d5eb3712f9973066051b2e898cf4041a1f2a7757\"\n },\n \"nodes\": [\n {\n \"parameters\": {},\n \"id\": \"fbb17d8d-e2dc-46ae-aba4-8c27cc9d8766\",\n \"name\": \"Execute Workflow Trigger\",\n \"type\": \"n8n-nodes-base.executeWorkflowTrigger\",\n \"typeVersion\": 1,\n \"position\": [\n 20,\n 460\n ]\n },\n {\n \"parameters\": {\n \"url\": \"https://app.scrapingbee.com/api/v1/store/google\",\n \"authentication\": \"genericCredentialType\",\n \"genericAuthType\": \"httpQueryAuth\",\n \"sendQuery\": true,\n \"queryParameters\": {\n \"parameters\": [\n {\n \"name\": \"search\",\n \"value\": \"={{ $json.query.google_search_query }}\"\n },\n {\n \"name\": \"language\",\n \"value\": \"en\"\n },\n {\n \"name\": \"nb_results\",\n \"value\": \"5\"\n }\n ]\n },\n \"options\": {}\n },\n \"id\": \"b938a2bd-030e-46d7-adee-4e3c85cfc1b3\",\n \"name\": \"Search Google\",\n \"type\": \"n8n-nodes-base.httpRequest\",\n \"typeVersion\": 4.2,\n \"position\": [\n 300,\n 460\n ],\n \"credentials\": {\n \"httpQueryAuth\": {\n \"id\": \"Pb2CIMT0tN838QPy\",\n \"name\": \"ScrapingBee\"\n }\n }\n },\n {\n \"parameters\": {\n \"assignments\": {\n \"assignments\": [\n {\n \"id\": \"096fee70-444e-4948-816c-752b20786062\",\n \"name\": \"response\",\n \"value\": \"={{ $json.organic_results }}\",\n \"type\": \"array\"\n }\n ]\n },\n \"options\": {}\n },\n \"id\": \"c5db1fb6-d875-47d2-97db-287777583f22\",\n \"name\": \"Response\",\n \"type\": \"n8n-nodes-base.set\",\n \"typeVersion\": 3.3,\n \"position\": [\n 520,\n 460\n ]\n }\n ],\n \"connections\": {\n \"Execute Workflow Trigger\": {\n \"main\": [\n [\n {\n \"node\": \"Search Google\",\n \"type\": \"main\",\n \"index\": 0\n }\n ]\n ]\n },\n \"Search Google\": {\n \"main\": [\n [\n {\n \"node\": \"Response\",\n \"type\": \"main\",\n \"index\": 0\n }\n ]\n ]\n }\n },\n \"pinData\": {\n \"Execute Workflow Trigger\": [\n {\n \"query\": {\n \"google_search_query\": \"site:lemlist.com pricing\"\n }\n }\n ]\n }\n}",
|
||||
"jsonSchemaExample": "{\n\t\"google_search_query\": \"site:lemlist.com pricing\"\n}",
|
||||
"specifyInputSchema": true
|
||||
},
|
||||
"typeVersion": 1.1
|
||||
},
|
||||
{
|
||||
"id": "7a89c803-8145-49c2-aafe-ec2aff0b2fbc",
|
||||
"name": "Sticky Note6",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
2220,
|
||||
940
|
||||
],
|
||||
"parameters": {
|
||||
"height": 340.14969579315925,
|
||||
"content": "Instead of SERP API module, you can also use this custom module for ScrapingBee. It is more cost-efficient.\n\nGet your free API key here https://www.scrapingbee.com/"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "79eff129-790b-46da-bef3-899eb6db3ced",
|
||||
"name": "Sticky Note7",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
1100,
|
||||
-20
|
||||
],
|
||||
"parameters": {
|
||||
"width": 194.6864335083109,
|
||||
"height": 525.6560478822986,
|
||||
"content": "In this workflow, I use Google Sheets to store the results. \n\nYou can use my template to get started faster:\n\n1. [Click on this link to get the template](https://docs.google.com/spreadsheets/d/1vR6s2nlTwu01v3GP7wvSRWS5W49FJIh20ZF7AUkmMDo/edit?usp=sharing)\n2. Make a copy of the Sheets\n3. Add the URL to this node and the node **\"Google Sheets - Update Row with data\"**\n\n\n"
|
||||
},
|
||||
"typeVersion": 1
|
||||
}
|
||||
],
|
||||
"pinData": {},
|
||||
"connections": {
|
||||
"Input": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Loop Over Items",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Merge data": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Google Sheets - Update Row with data",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Loop Over Items": {
|
||||
"main": [
|
||||
null,
|
||||
[
|
||||
{
|
||||
"node": "AI company researcher",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
},
|
||||
{
|
||||
"node": "Merge data",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Schedule Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Get rows to enrich",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"OpenAI Chat Model": {
|
||||
"ai_languageModel": [
|
||||
[
|
||||
{
|
||||
"node": "AI company researcher",
|
||||
"type": "ai_languageModel",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Get rows to enrich": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Input",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Get website content": {
|
||||
"ai_tool": [
|
||||
[
|
||||
{
|
||||
"node": "AI company researcher",
|
||||
"type": "ai_tool",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"AI company researcher": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "AI Researcher Output Data",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"SerpAPI - Search Google": {
|
||||
"ai_tool": [
|
||||
[
|
||||
{
|
||||
"node": "AI company researcher",
|
||||
"type": "ai_tool",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Structured Output Parser": {
|
||||
"ai_outputParser": [
|
||||
[
|
||||
{
|
||||
"node": "AI company researcher",
|
||||
"type": "ai_outputParser",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"AI Researcher Output Data": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Merge data",
|
||||
"type": "main",
|
||||
"index": 1
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"When clicking \"Test workflow\"": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Get rows to enrich",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Google Sheets - Update Row with data": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Loop Over Items",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,431 @@
|
||||
{
|
||||
"meta": {
|
||||
"instanceId": "84ba6d895254e080ac2b4916d987aa66b000f88d4d919a6b9c76848f9b8a7616",
|
||||
"templateId": "2234"
|
||||
},
|
||||
"nodes": [
|
||||
{
|
||||
"id": "e0f68f60-f036-4103-a9fc-d6cb80b6f8a2",
|
||||
"name": "OpenAI Chat Model",
|
||||
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
|
||||
"position": [
|
||||
1980,
|
||||
1100
|
||||
],
|
||||
"parameters": {
|
||||
"model": "gpt-4-turbo",
|
||||
"options": {}
|
||||
},
|
||||
"credentials": {
|
||||
"openAiApi": {
|
||||
"id": "kDo5LhPmHS2WQE0b",
|
||||
"name": "OpenAi account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "23779dea-c21d-42da-b493-09394bc64436",
|
||||
"name": "OpenAI Chat Model1",
|
||||
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
|
||||
"position": [
|
||||
2420,
|
||||
660
|
||||
],
|
||||
"parameters": {
|
||||
"model": "gpt-4-turbo",
|
||||
"options": {}
|
||||
},
|
||||
"credentials": {
|
||||
"openAiApi": {
|
||||
"id": "kDo5LhPmHS2WQE0b",
|
||||
"name": "OpenAi account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "af59863e-12c5-414c-bf64-dd6712e3aa7b",
|
||||
"name": "Schedule Trigger",
|
||||
"type": "n8n-nodes-base.scheduleTrigger",
|
||||
"position": [
|
||||
1680,
|
||||
960
|
||||
],
|
||||
"parameters": {
|
||||
"rule": {
|
||||
"interval": [
|
||||
{
|
||||
"field": "hours",
|
||||
"hoursInterval": 12
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.1
|
||||
},
|
||||
{
|
||||
"id": "bc2ad02b-72c9-4132-96e8-b64487f589f7",
|
||||
"name": "Recursive Character Text Splitter",
|
||||
"type": "@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter",
|
||||
"position": [
|
||||
2160,
|
||||
1140
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"chunkSize": 500,
|
||||
"chunkOverlap": 300
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "cb11a8bb-bdca-43cb-a586-7f93471d58f7",
|
||||
"name": "OpenAI Chat Model2",
|
||||
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
|
||||
"position": [
|
||||
2420,
|
||||
1300
|
||||
],
|
||||
"parameters": {
|
||||
"options": {}
|
||||
},
|
||||
"credentials": {
|
||||
"openAiApi": {
|
||||
"id": "kDo5LhPmHS2WQE0b",
|
||||
"name": "OpenAi account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "9d02b910-a467-4d4d-a2fa-32d1d3361d21",
|
||||
"name": "Create a Prompt for DALL-E",
|
||||
"type": "@n8n/n8n-nodes-langchain.chainSummarization",
|
||||
"position": [
|
||||
2400,
|
||||
1080
|
||||
],
|
||||
"parameters": {
|
||||
"options": {
|
||||
"summarizationMethodAndPrompts": {
|
||||
"values": {
|
||||
"prompt": "Summarize the characters in this story based on their appearance and describe them if they are humans or animals and how they look like and what kind of are they, the prompt should be no-text in the picture.\n\n\n\n\n\"{text}\"\n\n\nCONCISE SUMMARY:",
|
||||
"summarizationMethod": "stuff"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "4723dd65-96f5-41c1-9ff6-f1a344d96241",
|
||||
"name": "Generate an Image for the Story",
|
||||
"type": "@n8n/n8n-nodes-langchain.openAi",
|
||||
"position": [
|
||||
2860,
|
||||
1080
|
||||
],
|
||||
"parameters": {
|
||||
"prompt": "=Produce an image ensuring that no text is generated within the visual content. {{ $json.response.text }}",
|
||||
"options": {},
|
||||
"resource": "image"
|
||||
},
|
||||
"credentials": {
|
||||
"openAiApi": {
|
||||
"id": "kDo5LhPmHS2WQE0b",
|
||||
"name": "OpenAi account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.3
|
||||
},
|
||||
{
|
||||
"id": "70b7f55a-31c4-456b-8273-8250bac74409",
|
||||
"name": "Generate Audio for the Story",
|
||||
"type": "@n8n/n8n-nodes-langchain.openAi",
|
||||
"position": [
|
||||
2640,
|
||||
820
|
||||
],
|
||||
"parameters": {
|
||||
"input": "={{ $json.response.text }}",
|
||||
"options": {},
|
||||
"resource": "audio"
|
||||
},
|
||||
"credentials": {
|
||||
"openAiApi": {
|
||||
"id": "kDo5LhPmHS2WQE0b",
|
||||
"name": "OpenAi account"
|
||||
}
|
||||
},
|
||||
"executeOnce": true,
|
||||
"typeVersion": 1.3
|
||||
},
|
||||
{
|
||||
"id": "c381dbe4-6112-441c-b213-8a2d218f4cc2",
|
||||
"name": "Send the Story To Channel",
|
||||
"type": "n8n-nodes-base.telegram",
|
||||
"position": [
|
||||
3160,
|
||||
480
|
||||
],
|
||||
"parameters": {
|
||||
"text": "={{ $json.response.text }}",
|
||||
"chatId": "=-4170994782",
|
||||
"additionalFields": {
|
||||
"appendAttribution": false
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"telegramApi": {
|
||||
"id": "k3RE6o9brmFRFE9p",
|
||||
"name": "Telegram account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.1
|
||||
},
|
||||
{
|
||||
"id": "78289bfa-54b4-4acb-b513-7a0134a010f3",
|
||||
"name": "Send Image to the Channel",
|
||||
"type": "n8n-nodes-base.telegram",
|
||||
"position": [
|
||||
3180,
|
||||
1080
|
||||
],
|
||||
"parameters": {
|
||||
"chatId": "=-4170994782",
|
||||
"operation": "sendPhoto",
|
||||
"binaryData": true,
|
||||
"additionalFields": {}
|
||||
},
|
||||
"credentials": {
|
||||
"telegramApi": {
|
||||
"id": "k3RE6o9brmFRFE9p",
|
||||
"name": "Telegram account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.1
|
||||
},
|
||||
{
|
||||
"id": "f779047b-6dec-4e4e-ae09-4dd91f961d08",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
380,
|
||||
240
|
||||
],
|
||||
"parameters": {
|
||||
"width": 1224.7156767468991,
|
||||
"height": 1282.378312060854,
|
||||
"content": "# Template for Kids' Story in Arabic\n\nThe n8n template for creating kids' stories in Arabic provides a versatile platform for storytellers to captivate young audiences with educational and interactive tales. Along with its core functionalities, this template allows for customization to suit various use cases and can be set up effortlessly.\n\nCheck this example: [https://t.me/st0ries95](https://t.me/st0ries95)\n\n\n## Node Functionalities\n\n\n## Automated Storytelling Process\n\n\n## Use Cases\n1. **Educational Platforms**:\n Educational platforms can automate the creation and distribution of educational stories in Arabic for children using this template. By incorporating visual and auditory elements into the storytelling process, educational platforms can enhance learning experiences and engage young learners effectively.\n\n2. **Children's Libraries**:\n Children's libraries can utilize this template to curate and share a diverse collection of Arabic stories with young readers. The automated generation of visual content and audio files enhances the storytelling experience, encouraging children to immerse themselves in new worlds and characters through captivating narratives.\n\n3. **Language Learning Apps**:\n Language learning apps focused on Arabic can integrate this template to offer culturally rich storytelling experiences for children learning the language. By translating stories into Arabic and supplementing them with visual and auditory components, these apps can facilitate language acquisition in an enjoyable and interactive manner.\n\n## Configuration Guide for Nodes\n\n### OpenAI Chat Model Nodes:\n- **Credentials**: Provide the necessary API credentials for the OpenAI GPT-4 Turbo model.\n- **Options**: Configure any specific options required for the chat model.\n\n### Create a Prompt for DALL-E Node:\n- **Prompts Customization**: Customize prompts to generate relevant visual content for the stories.\n- **Summarization Method and Prompts**: Define the summarization method and prompts for generating visual content without text.\n\n### Generate an Image for the Story Node:\n- **Resource**: Specify the type of resource (image).\n- **Prompt**: Set up the prompt for producing an image without text within the visual content.\n\n### Generate Audio for the Story Node:\n- **Resource**: Select the type of resource (audio).\n- **Input**: Define the input text for generating audio files.\n\n### Translate the Story to Arabic Node:\n- **Chunking Mode**: Choose the chunking mode (advanced).\n- **Summarization Method and Prompts**: Set the summarization method and prompts for translating the story into Arabic.\n\n### Send the Story To Channel Node:\n- **Chat ID**: Provide the chat ID where the story text will be sent.\n- **Text**: Configure the text to be sent to the channel.\n\nBy configuring each node as per the guidelines above, users can effectively set up and customize the n8n template for kids' stories in Arabic, tailoring it to specific use cases and delivering a seamless and engaging storytelling experience for young audiences.\n"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "5ef92ebc-e4e4-4165-a7df-9f94802f8e27",
|
||||
"name": "Sticky Note1",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
1620,
|
||||
240
|
||||
],
|
||||
"parameters": {
|
||||
"width": 1811.9647367735226,
|
||||
"height": 1280.7253282813103,
|
||||
"content": ""
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "76d2b256-8083-42d9-8465-63b2f9c73a67",
|
||||
"name": "Translate the Story to Arabic",
|
||||
"type": "@n8n/n8n-nodes-langchain.chainSummarization",
|
||||
"position": [
|
||||
2400,
|
||||
480
|
||||
],
|
||||
"parameters": {
|
||||
"options": {
|
||||
"summarizationMethodAndPrompts": {
|
||||
"values": {
|
||||
"prompt": "Translate this story texts to \"Arabic\" and make it easy to understands for kids with easy words and moral lesson :\n\n\n\"{text}\"\n\n\n",
|
||||
"summarizationMethod": "stuff"
|
||||
}
|
||||
}
|
||||
},
|
||||
"chunkingMode": "advanced"
|
||||
},
|
||||
"executeOnce": true,
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "126e463e-f1e8-4cd2-856d-aaaebc279797",
|
||||
"name": "Send Audio to the Channel",
|
||||
"type": "n8n-nodes-base.telegram",
|
||||
"position": [
|
||||
3180,
|
||||
820
|
||||
],
|
||||
"parameters": {
|
||||
"chatId": "-4170994782",
|
||||
"operation": "sendAudio",
|
||||
"binaryData": true,
|
||||
"additionalFields": {
|
||||
"caption": "\u0646\u0647\u0627\u064a\u0629 \u0627\u0644\u0642\u0635\u0629 ... "
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"telegramApi": {
|
||||
"id": "k3RE6o9brmFRFE9p",
|
||||
"name": "Telegram account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.1
|
||||
},
|
||||
{
|
||||
"id": "162049a0-620a-4044-966a-27b665827b60",
|
||||
"name": "Create a Story for Kids",
|
||||
"type": "@n8n/n8n-nodes-langchain.chainSummarization",
|
||||
"position": [
|
||||
1980,
|
||||
960
|
||||
],
|
||||
"parameters": {
|
||||
"options": {
|
||||
"summarizationMethodAndPrompts": {
|
||||
"values": {
|
||||
"prompt": "Create a captivating short tale for kids, whisking them away to magical lands brimming with wisdom. Explore diverse themes in a fun and simple way, weaving in valuable messages. Dive into cultural adventures with lively language that sparks curiosity. Let your story inspire young minds through enchanting narratives that linger long after the last word. Begin crafting your imaginative tale now! (Approximately 900 characters)\n\n\n\"{text}\"\n\nCONCISE SUMMARY:",
|
||||
"summarizationMethod": "stuff"
|
||||
}
|
||||
}
|
||||
},
|
||||
"chunkingMode": "advanced"
|
||||
},
|
||||
"executeOnce": true,
|
||||
"typeVersion": 2
|
||||
}
|
||||
],
|
||||
"pinData": {},
|
||||
"connections": {
|
||||
"Schedule Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Create a Story for Kids",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"OpenAI Chat Model": {
|
||||
"ai_languageModel": [
|
||||
[
|
||||
{
|
||||
"node": "Create a Story for Kids",
|
||||
"type": "ai_languageModel",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"OpenAI Chat Model1": {
|
||||
"ai_languageModel": [
|
||||
[
|
||||
{
|
||||
"node": "Translate the Story to Arabic",
|
||||
"type": "ai_languageModel",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"OpenAI Chat Model2": {
|
||||
"ai_languageModel": [
|
||||
[
|
||||
{
|
||||
"node": "Create a Prompt for DALL-E",
|
||||
"type": "ai_languageModel",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Create a Story for Kids": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Translate the Story to Arabic",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
},
|
||||
{
|
||||
"node": "Create a Prompt for DALL-E",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Create a Prompt for DALL-E": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Generate an Image for the Story",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Generate Audio for the Story": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Send Audio to the Channel",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Translate the Story to Arabic": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Send the Story To Channel",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
},
|
||||
{
|
||||
"node": "Generate Audio for the Story",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Generate an Image for the Story": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Send Image to the Channel",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Recursive Character Text Splitter": {
|
||||
"ai_textSplitter": [
|
||||
[
|
||||
{
|
||||
"node": "Create a Story for Kids",
|
||||
"type": "ai_textSplitter",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,401 @@
|
||||
{
|
||||
"meta": {
|
||||
"instanceId": "84ba6d895254e080ac2b4916d987aa66b000f88d4d919a6b9c76848f9b8a7616",
|
||||
"templateId": "2233"
|
||||
},
|
||||
"nodes": [
|
||||
{
|
||||
"id": "757a7e67-073a-4fa1-b571-2ddd147b35f6",
|
||||
"name": "OpenAI Chat Model",
|
||||
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
|
||||
"position": [
|
||||
1000,
|
||||
1240
|
||||
],
|
||||
"parameters": {
|
||||
"model": "gpt-3.5-turbo-16k-0613",
|
||||
"options": {}
|
||||
},
|
||||
"credentials": {
|
||||
"openAiApi": {
|
||||
"id": "kDo5LhPmHS2WQE0b",
|
||||
"name": "OpenAi account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "761ed83a-2cfb-474a-b596-922e5a7e2717",
|
||||
"name": "Schedule Trigger",
|
||||
"type": "n8n-nodes-base.scheduleTrigger",
|
||||
"position": [
|
||||
660,
|
||||
1060
|
||||
],
|
||||
"parameters": {
|
||||
"rule": {
|
||||
"interval": [
|
||||
{
|
||||
"field": "hours",
|
||||
"hoursInterval": 12
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.1
|
||||
},
|
||||
{
|
||||
"id": "41faf334-30d6-4cc0-9a94-9c486ec3fa6c",
|
||||
"name": "OpenAI Chat Model2",
|
||||
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
|
||||
"position": [
|
||||
1520,
|
||||
1420
|
||||
],
|
||||
"parameters": {
|
||||
"options": {}
|
||||
},
|
||||
"credentials": {
|
||||
"openAiApi": {
|
||||
"id": "kDo5LhPmHS2WQE0b",
|
||||
"name": "OpenAi account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "d9ad0a3a-2ce6-4071-8262-8176b3eecf36",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
1780,
|
||||
220
|
||||
],
|
||||
"parameters": {
|
||||
"width": 1004.4263690337257,
|
||||
"height": 811.7188223885136,
|
||||
"content": "### Setting Up a Workflow for \"AI-Powered Children's English Storytelling on Telegram\"\n\nIn this guide, we will walk you through the process of setting up a workflow to create and share captivating children's stories using the provided configuration. Let's dive into the steps required to bring these imaginative tales to life on your Telegram channel:\n\n#### Steps to Setup the Workflow:\n1. **Import the Workflow:**\n - Copy the provided workflow JSON configuration.\n - In your n8n instance, go to Workflows and select \"Import from JSON.\"\n - Paste the configuration and import the workflow.\n\n2. **Configure Node Credentials:**\n - For nodes requiring API credentials (OpenAI and Telegram), create credentials with the appropriate API keys or tokens.\n\n3. **Set Node Parameters:**\n - Modify node parameters as needed, such as chat IDs, prompts, and intervals.\n - Change the chatId in Config node to the ID of the chat you want the story to be posted.\n\n4. **Ensure Data Flow:**\n - Check the connections between nodes to ensure a smooth flow of data and actions.\n\n5. **Execute Once:**\n - Activate the \"executeOnce\" option in nodes where necessary to trigger actions only once during setup.\n\n6. **Test the Workflow:**\n - Run the workflow to verify that each node functions correctly and data is processed as expected.\n\n7. **Enable Recurring Triggers:**\n - Confirm that the Schedule Trigger node is set to trigger the workflow at the desired interval (every 12 hours).\n\n8. **Initiate Workflow:**\n - Once everything is configured correctly, activate the workflow to start generating and sharing children's stories on Telegram.\n\nBy following these steps meticulously, you can seamlessly establish and operate the workflow designed to create captivating children's stories for your audience. Embrace the power of automation to inspire young minds and foster a love for storytelling through engaging narratives shared on Telegram.\n"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "b550e4ff-167d-4b12-8dff-0511a435cd7c",
|
||||
"name": "Create a Prompt for DALL-E",
|
||||
"type": "@n8n/n8n-nodes-langchain.chainSummarization",
|
||||
"position": [
|
||||
1500,
|
||||
1280
|
||||
],
|
||||
"parameters": {
|
||||
"options": {
|
||||
"summarizationMethodAndPrompts": {
|
||||
"values": {
|
||||
"prompt": "Summarize the characters in this story based on their appearance and describe them if they are humans or animals and how they look like and what kind of are they, the prompt should be no-text in the picture, make sure the text is free from any prohibited or inappropriate content:\n\n\n\n\"{text}\"\n\n\nCONCISE SUMMARY:",
|
||||
"summarizationMethod": "stuff"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "024a3615-9e90-4e47-81e3-21febfc2f0c9",
|
||||
"name": "Sticky Note1",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
380,
|
||||
240
|
||||
],
|
||||
"parameters": {
|
||||
"width": 611.6882702103559,
|
||||
"height": 651.7145525871413,
|
||||
"content": "### Use Case for Setting Up a Workflow for Children's Stories\n\nCheck this example: [https://t.me/st0ries95](https://t.me/st0ries95)\n\n\nThe workflow for children's stories serves as a valuable tool for content creators, educators, and parents looking to engage children with imaginative and educational storytelling. Here are some key use cases for this workflow:\n\n1. **Content Creation:** The workflow streamlines the process of creating captivating children's stories by providing a structured framework and automation for story generation, audio creation, and image production.\n\n2. **Educational Resources:** Teachers can use this workflow to develop educational materials that incorporate storytelling to make learning more engaging and interactive for students.\n\n3. **Parental Engagement:** Parents can utilize the workflow to share personalized stories with their children, fostering a love for reading and creativity while bonding over shared storytelling experiences.\n\n4. **Community Building:** Organizations and community groups can leverage the workflow to create and share children's stories as a way to connect with their audience and promote literacy and creativity.\n\n5. **Inspiring Young Minds:** By automating the process of creating and sharing enchanting children's stories, this workflow aims to inspire young minds, spark imagination, and instill a passion for storytelling in children.\n\nOverall, the use case for this workflow extends to various settings where storytelling plays a significant role in engaging, educating, and entertaining children, making it a versatile tool for enhancing the storytelling experience.\n"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "11bfff09-33c6-48ab-b9e6-2e5349a87ca5",
|
||||
"name": "Recursive Character Text Splitter",
|
||||
"type": "@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter",
|
||||
"position": [
|
||||
1160,
|
||||
1260
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"chunkSize": 500,
|
||||
"chunkOverlap": 300
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "9da21054-961e-4b7a-973e-1c180571ce92",
|
||||
"name": "Create a story",
|
||||
"type": "@n8n/n8n-nodes-langchain.chainSummarization",
|
||||
"position": [
|
||||
1080,
|
||||
1060
|
||||
],
|
||||
"parameters": {
|
||||
"options": {
|
||||
"summarizationMethodAndPrompts": {
|
||||
"values": {
|
||||
"prompt": "Create a captivating short tale for kids, whisking them away to magical lands brimming with wisdom. Explore diverse themes in a fun and simple way, weaving in valuable messages. Dive into cultural adventures with lively language that sparks curiosity. Let your story inspire young minds through enchanting narratives that linger long after the last word. Begin crafting your imaginative tale now! (Approximately 900 characters)\n\n\n\"{text}\"\n\nCONCISE SUMMARY:",
|
||||
"summarizationMethod": "stuff"
|
||||
}
|
||||
}
|
||||
},
|
||||
"chunkingMode": "advanced"
|
||||
},
|
||||
"executeOnce": true,
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "35579446-e11c-416b-b34a-b31e8461a1b3",
|
||||
"name": "Generate Audio for the story",
|
||||
"type": "@n8n/n8n-nodes-langchain.openAi",
|
||||
"position": [
|
||||
1520,
|
||||
1060
|
||||
],
|
||||
"parameters": {
|
||||
"input": "={{ $json.response.text }}",
|
||||
"options": {},
|
||||
"resource": "audio"
|
||||
},
|
||||
"credentials": {
|
||||
"openAiApi": {
|
||||
"id": "kDo5LhPmHS2WQE0b",
|
||||
"name": "OpenAi account"
|
||||
}
|
||||
},
|
||||
"executeOnce": true,
|
||||
"typeVersion": 1.3
|
||||
},
|
||||
{
|
||||
"id": "453d149f-a2a7-4fc9-ba3b-85b42df1c29b",
|
||||
"name": "Generate a Picture for the story",
|
||||
"type": "@n8n/n8n-nodes-langchain.openAi",
|
||||
"position": [
|
||||
1840,
|
||||
1280
|
||||
],
|
||||
"parameters": {
|
||||
"prompt": "=Produce an image ensuring that no text is generated within the visual content. {{ $json.response.text }}",
|
||||
"options": {},
|
||||
"resource": "image"
|
||||
},
|
||||
"credentials": {
|
||||
"openAiApi": {
|
||||
"id": "kDo5LhPmHS2WQE0b",
|
||||
"name": "OpenAi account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.3
|
||||
},
|
||||
{
|
||||
"id": "8f324f12-b21e-4d0c-b7fa-5e2f93ba08aa",
|
||||
"name": "Send Story Text",
|
||||
"type": "n8n-nodes-base.telegram",
|
||||
"position": [
|
||||
1520,
|
||||
840
|
||||
],
|
||||
"parameters": {
|
||||
"text": "={{ $json.response.text }}",
|
||||
"chatId": "={{ $('Config').item.json.chatId }}",
|
||||
"additionalFields": {
|
||||
"appendAttribution": false
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"telegramApi": {
|
||||
"id": "k3RE6o9brmFRFE9p",
|
||||
"name": "Telegram account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.1
|
||||
},
|
||||
{
|
||||
"id": "51a08f75-1c34-48a0-86de-b47e435ef618",
|
||||
"name": "Send Audio for the story",
|
||||
"type": "n8n-nodes-base.telegram",
|
||||
"position": [
|
||||
1720,
|
||||
1060
|
||||
],
|
||||
"parameters": {
|
||||
"chatId": "={{ $('Config').item.json.chatId }}",
|
||||
"operation": "sendAudio",
|
||||
"binaryData": true,
|
||||
"additionalFields": {
|
||||
"caption": "End of the Story for today ....."
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"telegramApi": {
|
||||
"id": "k3RE6o9brmFRFE9p",
|
||||
"name": "Telegram account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.1
|
||||
},
|
||||
{
|
||||
"id": "3f890a4d-26ea-452a-8ed5-917282e8b0d8",
|
||||
"name": "Send Story Picture",
|
||||
"type": "n8n-nodes-base.telegram",
|
||||
"position": [
|
||||
2020,
|
||||
1280
|
||||
],
|
||||
"parameters": {
|
||||
"chatId": "={{ $('Config').item.json.chatId }}",
|
||||
"operation": "sendPhoto",
|
||||
"binaryData": true,
|
||||
"additionalFields": {}
|
||||
},
|
||||
"credentials": {
|
||||
"telegramApi": {
|
||||
"id": "k3RE6o9brmFRFE9p",
|
||||
"name": "Telegram account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.1
|
||||
},
|
||||
{
|
||||
"id": "1cbec52c-b545-45df-885f-57c287f81017",
|
||||
"name": "Config",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
880,
|
||||
1060
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"assignments": {
|
||||
"assignments": [
|
||||
{
|
||||
"id": "327667cb-b5b0-4f6f-915c-544696ed8e5a",
|
||||
"name": "chatId",
|
||||
"type": "string",
|
||||
"value": "-4170994782"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 3.3
|
||||
}
|
||||
],
|
||||
"pinData": {},
|
||||
"connections": {
|
||||
"Config": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Create a story",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Create a story": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Generate Audio for the story",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
},
|
||||
{
|
||||
"node": "Create a Prompt for DALL-E",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
},
|
||||
{
|
||||
"node": "Send Story Text",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Schedule Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Config",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"OpenAI Chat Model": {
|
||||
"ai_languageModel": [
|
||||
[
|
||||
{
|
||||
"node": "Create a story",
|
||||
"type": "ai_languageModel",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"OpenAI Chat Model2": {
|
||||
"ai_languageModel": [
|
||||
[
|
||||
{
|
||||
"node": "Create a Prompt for DALL-E",
|
||||
"type": "ai_languageModel",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Create a Prompt for DALL-E": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Generate a Picture for the story",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Generate Audio for the story": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Send Audio for the story",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Generate a Picture for the story": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Send Story Picture",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Recursive Character Text Splitter": {
|
||||
"ai_textSplitter": [
|
||||
[
|
||||
{
|
||||
"node": "Create a story",
|
||||
"type": "ai_textSplitter",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,979 @@
|
||||
{
|
||||
"id": "AuwhspweKSACE1WQ",
|
||||
"meta": {
|
||||
"instanceId": "d868e3d040e7bda892c81b17cf446053ea25d2556fcef89cbe19dd61a3e876e9"
|
||||
},
|
||||
"name": "YouTube to X Post- AlexK1919",
|
||||
"tags": [
|
||||
{
|
||||
"id": "QsH2EXuw2e7YCv0K",
|
||||
"name": "OpenAI",
|
||||
"createdAt": "2024-11-15T04:05:20.872Z",
|
||||
"updatedAt": "2024-11-15T04:05:20.872Z"
|
||||
},
|
||||
{
|
||||
"id": "igCGAN1PI4iVpikM",
|
||||
"name": "YouTube",
|
||||
"createdAt": "2024-11-21T18:59:47.189Z",
|
||||
"updatedAt": "2024-11-21T18:59:47.189Z"
|
||||
},
|
||||
{
|
||||
"id": "nxU3PfnwjUr2YUdo",
|
||||
"name": "X",
|
||||
"createdAt": "2024-11-21T18:59:49.170Z",
|
||||
"updatedAt": "2024-11-21T18:59:49.170Z"
|
||||
}
|
||||
],
|
||||
"nodes": [
|
||||
{
|
||||
"id": "6aef04f2-b744-4749-99bd-4ad8aa21ad09",
|
||||
"name": "Post to X",
|
||||
"type": "n8n-nodes-base.twitter",
|
||||
"position": [
|
||||
1400,
|
||||
100
|
||||
],
|
||||
"parameters": {
|
||||
"text": "={{ $('Verify character limit constraints').item.json.message.content.post }}",
|
||||
"additionalFields": {}
|
||||
},
|
||||
"credentials": {
|
||||
"twitterOAuth2Api": {
|
||||
"id": "0VkIx1OfmRAYb4Az",
|
||||
"name": "Alex Kim X account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "827ab988-786a-490e-8831-cfee3851a9ac",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
-560,
|
||||
-100
|
||||
],
|
||||
"parameters": {
|
||||
"color": 4,
|
||||
"width": 450,
|
||||
"height": 970,
|
||||
"content": "## Fetch the latest YouTube video and dedupe\n\nEnter your YouTube Channel ID in the \"Channel ID\" field of this node. You can find your [Channel ID here](https://youtube.com/account_advanced)."
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "8e99c377-7d14-473b-a6e4-a190702ad8a9",
|
||||
"name": "Fetch Latest Videos",
|
||||
"type": "n8n-nodes-base.youTube",
|
||||
"position": [
|
||||
-500,
|
||||
100
|
||||
],
|
||||
"parameters": {
|
||||
"limit": 2,
|
||||
"filters": {
|
||||
"channelId": "UC3JB8Cnync-WCDYKwOYSQUg",
|
||||
"publishedAfter": "={{ new Date(new Date().getTime() - 1200 * 60000).toISOString() }}"
|
||||
},
|
||||
"options": {},
|
||||
"resource": "video"
|
||||
},
|
||||
"credentials": {
|
||||
"youTubeOAuth2Api": {
|
||||
"id": "xwcVTsTddECg5vyd",
|
||||
"name": "AlexK1919 YouTube account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "c9ea0b72-2293-4aab-84b4-5e6599f5e04d",
|
||||
"name": "Calculator",
|
||||
"type": "@n8n/n8n-nodes-langchain.toolCalculator",
|
||||
"position": [
|
||||
0,
|
||||
300
|
||||
],
|
||||
"parameters": {},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "e81decde-6a60-4ea0-a3ff-64cbdccc1f88",
|
||||
"name": "Wikipedia",
|
||||
"type": "@n8n/n8n-nodes-langchain.toolWikipedia",
|
||||
"position": [
|
||||
120,
|
||||
300
|
||||
],
|
||||
"parameters": {},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "870a58ba-6d0f-42e5-ad07-040b8d81e780",
|
||||
"name": "Check Every 2 Hours",
|
||||
"type": "n8n-nodes-base.scheduleTrigger",
|
||||
"disabled": true,
|
||||
"position": [
|
||||
-900,
|
||||
100
|
||||
],
|
||||
"parameters": {
|
||||
"rule": {
|
||||
"interval": [
|
||||
{
|
||||
"field": "hours",
|
||||
"hoursInterval": 2,
|
||||
"triggerAtMinute": "={{ Math.floor(Math.random() * 60) }}"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
},
|
||||
{
|
||||
"id": "4af4e893-7c94-4a73-9d88-1426be8725f7",
|
||||
"name": "Sticky Note4",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
380,
|
||||
-100
|
||||
],
|
||||
"parameters": {
|
||||
"color": 4,
|
||||
"width": 637,
|
||||
"height": 969,
|
||||
"content": "## Validate: Is Post under 240 characters?\nIf the generated tweet does not meet length constraints, regenerate it."
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "8c4f51cd-3e25-4d45-a677-1bf27277c2f8",
|
||||
"name": "Calculator2",
|
||||
"type": "@n8n/n8n-nodes-langchain.toolCalculator",
|
||||
"position": [
|
||||
680,
|
||||
240
|
||||
],
|
||||
"parameters": {},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "2eff94c8-5ab8-4fba-8480-39d34077784c",
|
||||
"name": "GS - Add Tweet",
|
||||
"type": "n8n-nodes-base.googleSheets",
|
||||
"position": [
|
||||
1120,
|
||||
100
|
||||
],
|
||||
"parameters": {
|
||||
"columns": {
|
||||
"value": {
|
||||
"xid": "={{ Math.random().toString(36).substr(2, 12) }}",
|
||||
"date": "={{ new Date().toISOString().split('T')[0] }}",
|
||||
"post": "={{ $json.message.content.post }}",
|
||||
"time": "={{ new Date().toLocaleTimeString('en-US', { hour12: false }) }}",
|
||||
"status": "Post written",
|
||||
"channel": "X"
|
||||
},
|
||||
"schema": [
|
||||
{
|
||||
"id": "xid",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "xid",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "status",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "status",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "date",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "date",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "time",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "time",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "channel",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "channel",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "post",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "post",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "image_url",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "image_url",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "video_url",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "video_url",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
}
|
||||
],
|
||||
"mappingMode": "defineBelow",
|
||||
"matchingColumns": []
|
||||
},
|
||||
"options": {
|
||||
"useAppend": true
|
||||
},
|
||||
"operation": "append",
|
||||
"sheetName": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "gid=0",
|
||||
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Ql9TGAzZCSdSqrHvkZLcsBPoNMAjNpPVsELkumP2heM/edit#gid=0",
|
||||
"cachedResultName": "Sheet1"
|
||||
},
|
||||
"documentId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "1Ql9TGAzZCSdSqrHvkZLcsBPoNMAjNpPVsELkumP2heM",
|
||||
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Ql9TGAzZCSdSqrHvkZLcsBPoNMAjNpPVsELkumP2heM/edit?usp=drivesdk",
|
||||
"cachedResultName": "AlexK1919 Social Posts"
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"googleSheetsOAuth2Api": {
|
||||
"id": "IpY8N9VFCXJLC1hv",
|
||||
"name": "AlexK1919 Google Sheets account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 4.3
|
||||
},
|
||||
{
|
||||
"id": "21f25b2d-e9d3-46df-a2c9-53f3a8c14b8b",
|
||||
"name": "GS - Update Tweet",
|
||||
"type": "n8n-nodes-base.googleSheets",
|
||||
"position": [
|
||||
1400,
|
||||
300
|
||||
],
|
||||
"parameters": {
|
||||
"columns": {
|
||||
"value": {
|
||||
"xid": "={{ $('GS - Add Tweet').item.json.xid }}",
|
||||
"date": "={{ new Date().toISOString().split('T')[0] }}",
|
||||
"post": "={{ $json.text }}",
|
||||
"time": "={{ new Date().toLocaleTimeString('en-US', { hour12: false }) }}",
|
||||
"status": "Posted to X",
|
||||
"channel": "X",
|
||||
"post_url": "=https://twitter.com/alexkim/status/{{ $json.id }}"
|
||||
},
|
||||
"schema": [
|
||||
{
|
||||
"id": "xid",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": false,
|
||||
"required": false,
|
||||
"displayName": "xid",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "status",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": false,
|
||||
"required": false,
|
||||
"displayName": "status",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "date",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": false,
|
||||
"required": false,
|
||||
"displayName": "date",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "time",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": false,
|
||||
"required": false,
|
||||
"displayName": "time",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "channel",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": false,
|
||||
"required": false,
|
||||
"displayName": "channel",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "post",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": false,
|
||||
"required": false,
|
||||
"displayName": "post",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "post_url",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": false,
|
||||
"required": false,
|
||||
"displayName": "post_url",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "image_url",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": false,
|
||||
"required": false,
|
||||
"displayName": "image_url",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "video_url",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": false,
|
||||
"required": false,
|
||||
"displayName": "video_url",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
}
|
||||
],
|
||||
"mappingMode": "defineBelow",
|
||||
"matchingColumns": [
|
||||
"xid"
|
||||
]
|
||||
},
|
||||
"options": {},
|
||||
"operation": "appendOrUpdate",
|
||||
"sheetName": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "gid=0",
|
||||
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Ql9TGAzZCSdSqrHvkZLcsBPoNMAjNpPVsELkumP2heM/edit#gid=0",
|
||||
"cachedResultName": "Sheet1"
|
||||
},
|
||||
"documentId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "1Ql9TGAzZCSdSqrHvkZLcsBPoNMAjNpPVsELkumP2heM",
|
||||
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Ql9TGAzZCSdSqrHvkZLcsBPoNMAjNpPVsELkumP2heM/edit?usp=drivesdk",
|
||||
"cachedResultName": "AlexK1919 Social Posts"
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"googleSheetsOAuth2Api": {
|
||||
"id": "IpY8N9VFCXJLC1hv",
|
||||
"name": "AlexK1919 Google Sheets account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 4.3
|
||||
},
|
||||
{
|
||||
"id": "8ce4484b-a7fd-4988-8240-e9c09a4a00be",
|
||||
"name": "When clicking \"Test workflow\"",
|
||||
"type": "n8n-nodes-base.manualTrigger",
|
||||
"position": [
|
||||
-900,
|
||||
300
|
||||
],
|
||||
"parameters": {},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "24f9bc85-8892-4418-8ab6-ef73986adc79",
|
||||
"name": "Discord",
|
||||
"type": "n8n-nodes-base.discord",
|
||||
"position": [
|
||||
1680,
|
||||
100
|
||||
],
|
||||
"parameters": {
|
||||
"content": "=New X Post:\n{{ $('GS - Add Tweet Again').item.json.Content }}\n\n{{ $json.URL }} ",
|
||||
"options": {},
|
||||
"authentication": "webhook"
|
||||
},
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "3526581f-7b71-4396-a3a3-4c676cf1c69b",
|
||||
"name": "Remove Duplicates",
|
||||
"type": "n8n-nodes-base.removeDuplicates",
|
||||
"position": [
|
||||
-500,
|
||||
300
|
||||
],
|
||||
"parameters": {
|
||||
"options": {
|
||||
"scope": "workflow",
|
||||
"historySize": 10000
|
||||
},
|
||||
"operation": "removeItemsSeenInPreviousExecutions",
|
||||
"dedupeValue": "={{ $json.id.videoId }}"
|
||||
},
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "c152651f-12d3-4766-8b4b-43f93b7b06ee",
|
||||
"name": "Sticky Note1",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
-60,
|
||||
-100
|
||||
],
|
||||
"parameters": {
|
||||
"color": 4,
|
||||
"width": 390,
|
||||
"height": 970,
|
||||
"content": "## Generate X Post"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "af1dd938-81f9-464a-865a-2a89882bae90",
|
||||
"name": "Generate X Post",
|
||||
"type": "@n8n/n8n-nodes-langchain.openAi",
|
||||
"position": [
|
||||
0,
|
||||
100
|
||||
],
|
||||
"parameters": {
|
||||
"modelId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "gpt-4o-mini",
|
||||
"cachedResultName": "GPT-4O-MINI"
|
||||
},
|
||||
"options": {},
|
||||
"messages": {
|
||||
"values": [
|
||||
{
|
||||
"content": "=Write an engaging post about my latest YouTube video for X (Twitter) of no more than 220 characters in length. Link to the video at https://youtu.be/{{ $('Set Fields').first().json.id.videoId }} use this title and description: {{ $('Set Fields').first().json.snippet.title }} {{ $('Set Fields').first().json.snippet.description }}. If there is no description available, use your best guess as to the context of the video. Make sure the YouTube link is at the end of the content."
|
||||
},
|
||||
{
|
||||
"role": "assistant",
|
||||
"content": "Be witty. Humanize the content. No emojis."
|
||||
}
|
||||
]
|
||||
},
|
||||
"jsonOutput": true
|
||||
},
|
||||
"credentials": {
|
||||
"openAiApi": {
|
||||
"id": "ysxujEYFiY5ozRTS",
|
||||
"name": "AlexK OpenAi Key"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.3
|
||||
},
|
||||
{
|
||||
"id": "a522b20c-9cb1-47ec-ab26-d7a444154a51",
|
||||
"name": "Set Fields",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
-300,
|
||||
100
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"assignments": {
|
||||
"assignments": [
|
||||
{
|
||||
"id": "c2e2eecd-ca73-40c9-a364-4713030ab451",
|
||||
"name": "id.videoId",
|
||||
"type": "string",
|
||||
"value": "={{ $json.id.videoId }}"
|
||||
}
|
||||
]
|
||||
},
|
||||
"includeOtherFields": true
|
||||
},
|
||||
"typeVersion": 3.4
|
||||
},
|
||||
{
|
||||
"id": "82139047-3ed5-4cc3-9e7e-9567e2f51c20",
|
||||
"name": "Wikipedia1",
|
||||
"type": "@n8n/n8n-nodes-langchain.toolWikipedia",
|
||||
"position": [
|
||||
800,
|
||||
240
|
||||
],
|
||||
"parameters": {},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "6ad77986-f18f-44f0-aff6-fe77282bf55a",
|
||||
"name": "Rewrite X Post to 220 Characters",
|
||||
"type": "@n8n/n8n-nodes-langchain.openAi",
|
||||
"position": [
|
||||
680,
|
||||
40
|
||||
],
|
||||
"parameters": {
|
||||
"modelId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "gpt-4o-mini",
|
||||
"cachedResultName": "GPT-4O-MINI"
|
||||
},
|
||||
"options": {},
|
||||
"messages": {
|
||||
"values": [
|
||||
{
|
||||
"content": "=Rewrite the content so it is less than 220 characters long in total length. Content: {{ $('Generate X Post').item.json.message.content.post }}\nMake sure the YouTube Link is at the end of the content."
|
||||
},
|
||||
{
|
||||
"role": "assistant",
|
||||
"content": "Be witty. Humanize the content. No emojis."
|
||||
}
|
||||
]
|
||||
},
|
||||
"jsonOutput": true
|
||||
},
|
||||
"credentials": {
|
||||
"openAiApi": {
|
||||
"id": "ysxujEYFiY5ozRTS",
|
||||
"name": "AlexK OpenAi Key"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.3
|
||||
},
|
||||
{
|
||||
"id": "e55adf1f-8d1d-4bb6-aa6a-89459fd81773",
|
||||
"name": "Verify character limit constraints",
|
||||
"type": "n8n-nodes-base.if",
|
||||
"position": [
|
||||
440,
|
||||
100
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"conditions": {
|
||||
"options": {
|
||||
"version": 1,
|
||||
"leftValue": "",
|
||||
"caseSensitive": true,
|
||||
"typeValidation": "strict"
|
||||
},
|
||||
"combinator": "and",
|
||||
"conditions": [
|
||||
{
|
||||
"id": "0a6ebbb6-4b14-4c7e-9390-215e32921663",
|
||||
"operator": {
|
||||
"type": "number",
|
||||
"operation": "gt"
|
||||
},
|
||||
"leftValue": "={{ $json.message.content.post.length }}",
|
||||
"rightValue": 280
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "00beb197-aed5-472d-9515-9f0002cc22ae",
|
||||
"name": "Sticky Note3",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
1060,
|
||||
-100
|
||||
],
|
||||
"parameters": {
|
||||
"color": 4,
|
||||
"width": 230,
|
||||
"height": 970,
|
||||
"content": "## Add to Google Sheet"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "f871304f-b39f-46ee-8b22-5f0050eb2b8e",
|
||||
"name": "Sticky Note6",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
1340,
|
||||
-100
|
||||
],
|
||||
"parameters": {
|
||||
"color": 4,
|
||||
"width": 230,
|
||||
"height": 970,
|
||||
"content": "## Post to X and update Google Sheet with Post Link"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "c4d0c37b-658d-4208-9d94-39d27c7d7f36",
|
||||
"name": "Slack",
|
||||
"type": "n8n-nodes-base.slack",
|
||||
"position": [
|
||||
1680,
|
||||
300
|
||||
],
|
||||
"webhookId": "f2269822-19a4-43a4-9a91-06bc69d183b4",
|
||||
"parameters": {
|
||||
"otherOptions": {}
|
||||
},
|
||||
"typeVersion": 2.2
|
||||
},
|
||||
{
|
||||
"id": "6caf1d2d-49d2-4b28-9f23-04389bdaa079",
|
||||
"name": "Sticky Note7",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
1620,
|
||||
-100
|
||||
],
|
||||
"parameters": {
|
||||
"color": 5,
|
||||
"width": 230,
|
||||
"height": 970,
|
||||
"content": "## Optional functions"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "c5528fc1-0416-4295-bdaa-12441099f037",
|
||||
"name": "Gmail",
|
||||
"type": "n8n-nodes-base.gmail",
|
||||
"position": [
|
||||
1680,
|
||||
500
|
||||
],
|
||||
"webhookId": "3404c1a8-9118-48aa-ba03-e9e436f5a7a6",
|
||||
"parameters": {
|
||||
"options": {}
|
||||
},
|
||||
"credentials": {
|
||||
"gmailOAuth2": {
|
||||
"id": "7eQtesjR8Fht0INE",
|
||||
"name": "AlexK1919 Gmail"
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.1
|
||||
},
|
||||
{
|
||||
"id": "e9ac1049-9b87-47a5-8fd1-333cc8c77664",
|
||||
"name": "Set Final Fields",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
680,
|
||||
440
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"includeOtherFields": true
|
||||
},
|
||||
"typeVersion": 3.4
|
||||
},
|
||||
{
|
||||
"id": "955d51f0-3de9-41f7-a92f-8e7bf9e4d53c",
|
||||
"name": "If Array is empty?",
|
||||
"type": "n8n-nodes-base.if",
|
||||
"position": [
|
||||
-300,
|
||||
300
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"conditions": {
|
||||
"options": {
|
||||
"version": 2,
|
||||
"leftValue": "",
|
||||
"caseSensitive": true,
|
||||
"typeValidation": "strict"
|
||||
},
|
||||
"combinator": "and",
|
||||
"conditions": [
|
||||
{
|
||||
"id": "adfea7c7-ed64-4e1e-a9c3-dc5e33aa1147",
|
||||
"operator": {
|
||||
"type": "array",
|
||||
"operation": "empty",
|
||||
"singleValue": true
|
||||
},
|
||||
"leftValue": "={{ $('Remove Duplicates').all() }}",
|
||||
"rightValue": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.2
|
||||
},
|
||||
{
|
||||
"id": "c088bbe1-2008-4473-9874-dc5595f082b7",
|
||||
"name": "Sticky Note8",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
-1000,
|
||||
-100
|
||||
],
|
||||
"parameters": {
|
||||
"color": 5,
|
||||
"width": 390,
|
||||
"height": 970,
|
||||
"content": "# Use AI to Promote Your Latest YouTube Video on X"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "03adde36-d864-486a-9190-2e7d27b9f3f2",
|
||||
"name": "Sticky Note9",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
-1300,
|
||||
-100
|
||||
],
|
||||
"parameters": {
|
||||
"color": 6,
|
||||
"width": 250,
|
||||
"height": 970,
|
||||
"content": "# AlexK1919 \n\n\n#### I’m Alex Kim, an AI-Native Workflow Automation Architect Building Solutions to Optimize your Personal and Professional Life.\n\n### About Me\nhttps://beacons.ai/alexk1919\n\n### Products Used \n[OpenAI](https://openai.com)\n[X](https://x.com/)\n[YouTube](https://youtube.com/)\n"
|
||||
},
|
||||
"typeVersion": 1
|
||||
}
|
||||
],
|
||||
"active": false,
|
||||
"pinData": {},
|
||||
"settings": {
|
||||
"executionOrder": "v1"
|
||||
},
|
||||
"versionId": "5661b96c-9838-4af3-8570-3098acec0bff",
|
||||
"connections": {
|
||||
"Post to X": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "GS - Update Tweet",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Wikipedia": {
|
||||
"ai_tool": [
|
||||
[
|
||||
{
|
||||
"node": "Generate X Post",
|
||||
"type": "ai_tool",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Calculator": {
|
||||
"ai_tool": [
|
||||
[
|
||||
{
|
||||
"node": "Generate X Post",
|
||||
"type": "ai_tool",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Set Fields": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Remove Duplicates",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Wikipedia1": {
|
||||
"ai_tool": [
|
||||
[
|
||||
{
|
||||
"node": "Rewrite X Post to 220 Characters",
|
||||
"type": "ai_tool",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Calculator2": {
|
||||
"ai_tool": [
|
||||
[
|
||||
{
|
||||
"node": "Rewrite X Post to 220 Characters",
|
||||
"type": "ai_tool",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"GS - Add Tweet": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Post to X",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Generate X Post": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Verify character limit constraints",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Set Final Fields": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "GS - Add Tweet",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"GS - Update Tweet": {
|
||||
"main": [
|
||||
[]
|
||||
]
|
||||
},
|
||||
"Remove Duplicates": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "If Array is empty?",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"If Array is empty?": {
|
||||
"main": [
|
||||
[],
|
||||
[
|
||||
{
|
||||
"node": "Generate X Post",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Check Every 2 Hours": {
|
||||
"main": [
|
||||
[]
|
||||
]
|
||||
},
|
||||
"Fetch Latest Videos": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Set Fields",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"When clicking \"Test workflow\"": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Fetch Latest Videos",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Rewrite X Post to 220 Characters": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Verify character limit constraints",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Verify character limit constraints": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Rewrite X Post to 220 Characters",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"node": "Set Final Fields",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
487
workflows/Schedule/1399_Schedule_Slack_Automation_Scheduled.json
Normal file
487
workflows/Schedule/1399_Schedule_Slack_Automation_Scheduled.json
Normal file
@@ -0,0 +1,487 @@
|
||||
{
|
||||
"meta": {
|
||||
"instanceId": "26ba763460b97c249b82942b23b6384876dfeb9327513332e743c5f6219c2b8e"
|
||||
},
|
||||
"nodes": [
|
||||
{
|
||||
"id": "2b3112a9-046e-4aae-8fcc-95bddf3bb02e",
|
||||
"name": "Slack",
|
||||
"type": "n8n-nodes-base.slack",
|
||||
"position": [
|
||||
828,
|
||||
327
|
||||
],
|
||||
"parameters": {
|
||||
"limit": 10,
|
||||
"query": "in:#n8n-tickets has::ticket:",
|
||||
"options": {},
|
||||
"operation": "search"
|
||||
},
|
||||
"credentials": {
|
||||
"slackApi": {
|
||||
"id": "VfK3js0YdqBdQLGP",
|
||||
"name": "Slack account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.2
|
||||
},
|
||||
{
|
||||
"id": "65fd6821-4d19-436c-81d9-9bdb0f5efddd",
|
||||
"name": "OpenAI Chat Model",
|
||||
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
|
||||
"position": [
|
||||
1920,
|
||||
480
|
||||
],
|
||||
"parameters": {
|
||||
"options": {}
|
||||
},
|
||||
"credentials": {
|
||||
"openAiApi": {
|
||||
"id": "8gccIjcuf3gvaoEr",
|
||||
"name": "OpenAi account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "85125704-7363-40de-af84-f267f8c7e919",
|
||||
"name": "Structured Output Parser",
|
||||
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
|
||||
"position": [
|
||||
2100,
|
||||
480
|
||||
],
|
||||
"parameters": {
|
||||
"jsonSchema": "{\n \"type\": \"object\",\n \"properties\": {\n \"title\": { \"type\": \"string\" },\n \"summary\": { \"type\": \"string\" },\n \"ideas\": {\n \"type\": \"array\",\n \"items\": { \"type\": \"string\" }\n },\n \"priority\": { \"type\": \"string\" }\n }\n}"
|
||||
},
|
||||
"typeVersion": 1.1
|
||||
},
|
||||
{
|
||||
"id": "eda8851a-1929-4f2f-9149-627c0fe62fbc",
|
||||
"name": "Schedule Trigger",
|
||||
"type": "n8n-nodes-base.scheduleTrigger",
|
||||
"position": [
|
||||
628,
|
||||
327
|
||||
],
|
||||
"parameters": {
|
||||
"rule": {
|
||||
"interval": [
|
||||
{
|
||||
"field": "minutes"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
},
|
||||
{
|
||||
"id": "ad0d56b5-5caf-4fc0-bdbb-4e6207e4eb03",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
580,
|
||||
112.87898199907983
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 432.4578914269739,
|
||||
"height": 427.09547550768553,
|
||||
"content": "## 1. Query Slack for Messages \n[Read more about the Slack Trigger](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.slack)\n\nSlack API search uses the same search syntax found in the app. Here, we'll use it to filter the latest messages with the ticket emoji within our designated channel called #n8n-tickets. "
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "d4ebe5b3-6d9a-4547-8af8-0985206c4ca4",
|
||||
"name": "Sticky Note1",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
1040,
|
||||
180.44851541532478
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 711.6907825442045,
|
||||
"height": 632.7258798316449,
|
||||
"content": "## 2. Decide If We Need to Create a New Ticket \n[Read more about using Linear](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.linear)\n\nFor generated issues, we add the message id to the description of the message so that we can check them at this point in the workflow to avoid duplicates."
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "b2920271-6698-47a4-8cac-ea4cec7b47d6",
|
||||
"name": "Get Values",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
1100,
|
||||
360
|
||||
],
|
||||
"parameters": {
|
||||
"mode": "raw",
|
||||
"options": {},
|
||||
"jsonOutput": "={\n \"id\": \"#{{ $json.permalink.split('/').last() }}\",\n \"type\": \"{{ $json.type }}\",\n \"title\": \"__NOT_SET__\",\n \"channel\": \"{{ $json.channel.name }}\",\n \"user\": \"{{ $json.username }} ({{ $json.user }})\",\n \"ts\": \"{{ $json.ts }}\",\n \"permalink\": \"{{ $json.permalink }}\",\n \"message\": \"{{ $json.text.replaceAll('\"','\\\\\"').replaceAll('\\n', '\\\\n') }}\"\n}"
|
||||
},
|
||||
"typeVersion": 3.3
|
||||
},
|
||||
{
|
||||
"id": "c4a4db2a-5d1c-4726-8c98-aef57fdcfaa6",
|
||||
"name": "Create New Ticket?",
|
||||
"type": "n8n-nodes-base.if",
|
||||
"position": [
|
||||
1600,
|
||||
360
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"conditions": {
|
||||
"options": {
|
||||
"leftValue": "",
|
||||
"caseSensitive": true,
|
||||
"typeValidation": "strict"
|
||||
},
|
||||
"combinator": "and",
|
||||
"conditions": [
|
||||
{
|
||||
"id": "c11109b6-ee45-4b52-adc3-4be5fe420202",
|
||||
"operator": {
|
||||
"type": "boolean",
|
||||
"operation": "false",
|
||||
"singleValue": true
|
||||
},
|
||||
"leftValue": "={{ Boolean(($json.hashes ?? []).includes($json.id)) }}",
|
||||
"rightValue": "=false"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "46acb0de-1df1-4116-8aaf-704ec6644d7c",
|
||||
"name": "Sticky Note2",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
1780,
|
||||
80
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 530.6864600881105,
|
||||
"height": 578.3950618708791,
|
||||
"content": "## 3. Use AI to Generate Ticket Contents\n[Read more about using Basic LLM Chain](https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.chainllm)\n\nFor this demo, we've instructed the AI to do the following:\n* Generate a descriptive title of the issue\n* Summarise the user message into an actionable request.\n* Determine a prority based on tone and context of the user message. \n* Can offer possible fixes through use of tools or RAG. (not implemented)\n"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "503d4ae7-9d5b-4dab-94a2-da28bc0e49da",
|
||||
"name": "Sticky Note6",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
200,
|
||||
120
|
||||
],
|
||||
"parameters": {
|
||||
"width": 359.6648027457353,
|
||||
"height": 400.4748439127683,
|
||||
"content": "## Try It Out!\n### This workflow does the following:\n* Monitors a Slack channel for new user messages asking for assistance\n* Only user messages which are tagged with the ticket(\ud83c\udfab) emoji are processed.\n* Linear is first checked to see if a ticket was created for the user message.\n* User messages are sent to ChatGPT to generate title, description and priority.\n* Support ticket is created in Linear.\n\n### Need Help?\nJoin the [Discord](https://discord.com/invite/XPKeKXeB7d) or ask in the [Forum](https://community.n8n.io/)!\n\nHappy Hacking!"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "11e423a4-36b6-4ecd-8bf7-58a7d4a1aa9a",
|
||||
"name": "Get Existing Issues",
|
||||
"type": "n8n-nodes-base.linear",
|
||||
"position": [
|
||||
1260,
|
||||
360
|
||||
],
|
||||
"parameters": {
|
||||
"operation": "getAll"
|
||||
},
|
||||
"credentials": {
|
||||
"linearApi": {
|
||||
"id": "Nn0F7T9FtvRUtEbe",
|
||||
"name": "Linear account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1,
|
||||
"alwaysOutputData": true
|
||||
},
|
||||
{
|
||||
"id": "413fde96-346a-468e-80b7-d465bd8add14",
|
||||
"name": "Generate Ticket Using ChatGPT",
|
||||
"type": "@n8n/n8n-nodes-langchain.chainLlm",
|
||||
"position": [
|
||||
1920,
|
||||
320
|
||||
],
|
||||
"parameters": {
|
||||
"text": "=The \"user issue\" is enclosed by 3 backticks:\n```\n{{ $('Get Values').item.json.message }}\n```\nYou will complete the following 4 tasks:\n1. Generate a title intended for a support ticket based on the user issue only. Be descriptive but use no more than 10 words.\n2. Summarise the user issue only by identifying the key expectations and steps that were taken to reach the conclusion.\n3. Offer at most 3 suggestions to debug or resolve the user issue only. ignore the previous issues for this task.\n4. Identify the urgency of the user issue only and denote the priority as one of \"low\", \"medium\", \"high\" or \"urgent\". If you cannot determine the urgency of the issue, then assign the \"low\" priority. Also consider that requests which require action either today or tomorrow should be prioritised as \"high\".",
|
||||
"promptType": "define",
|
||||
"hasOutputParser": true
|
||||
},
|
||||
"typeVersion": 1.4
|
||||
},
|
||||
{
|
||||
"id": "66aecf53-6e8a-4ee8-88c3-be6b7d8d0527",
|
||||
"name": "Sticky Note3",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
2340,
|
||||
206
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 374.7406065828194,
|
||||
"height": 352.3865785298774,
|
||||
"content": "## 4. Create New Ticket in Linear\n[Read more about using Linear](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.linear)\n\nWith our ticket contents generated, we can now create our ticket in Linear for support to handle.\n"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "f7898b7b-f60a-4315-a870-8c8ec4ad848f",
|
||||
"name": "Create Ticket",
|
||||
"type": "n8n-nodes-base.linear",
|
||||
"position": [
|
||||
2480,
|
||||
380
|
||||
],
|
||||
"parameters": {
|
||||
"title": "={{ $json.output.title }}",
|
||||
"teamId": "1c721608-321d-4132-ac32-6e92d04bb487",
|
||||
"additionalFields": {
|
||||
"stateId": "92962324-3d1f-4cf8-993b-0c982cc95245",
|
||||
"priorityId": "={{ { 'urgent': 1, 'high': 2, 'medium': 3, 'low': 4 }[$json.output.priority.toLowerCase()] ?? 0 }}",
|
||||
"description": "=## {{ $json.output.summary }}\n\n### Suggestions\n{{ $json.output.ideas.map(idea => '* ' + idea).join('\\n') }}\n\n## Original Message\n{{ $('Get Values').item.json[\"user\"] }} asks:\n> {{ $('Get Values').item.json[\"message\"] }}\n\n### Metadata\nchannel: {{ $('Get Values').item.json.channel }}\nts: {{ $('Get Values').item.json.ts }}\npermalink: {{ $('Get Values').item.json.permalink }}\nhash: {{ $('Get Values').item.json.id }}\n"
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"linearApi": {
|
||||
"id": "Nn0F7T9FtvRUtEbe",
|
||||
"name": "Linear account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "0b706c12-6ce0-41af-ad4b-9d98d7d03a41",
|
||||
"name": "Merge",
|
||||
"type": "n8n-nodes-base.merge",
|
||||
"position": [
|
||||
1440,
|
||||
360
|
||||
],
|
||||
"parameters": {
|
||||
"mode": "combine",
|
||||
"options": {},
|
||||
"combinationMode": "multiplex"
|
||||
},
|
||||
"typeVersion": 2.1
|
||||
},
|
||||
{
|
||||
"id": "d5b30127-f237-459d-860a-2589e3b54fb8",
|
||||
"name": "Get Hashes Only",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
1260,
|
||||
640
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"assignments": {
|
||||
"assignments": [
|
||||
{
|
||||
"id": "9b0e8527-ea17-4b1e-ba62-287111f4b37e",
|
||||
"name": "hashes",
|
||||
"type": "array",
|
||||
"value": "={{ $json.descriptions.map(desc => desc.match(/hash\\:\\s([\\w#]+)/i)[1]) }}"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 3.3
|
||||
},
|
||||
{
|
||||
"id": "9de103e1-b6a4-4454-b1b9-73eff730fcb6",
|
||||
"name": "Collect Descriptions",
|
||||
"type": "n8n-nodes-base.aggregate",
|
||||
"position": [
|
||||
1260,
|
||||
500
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"fieldsToAggregate": {
|
||||
"fieldToAggregate": [
|
||||
{
|
||||
"renameField": true,
|
||||
"outputFieldName": "descriptions",
|
||||
"fieldToAggregate": "description"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1,
|
||||
"alwaysOutputData": true
|
||||
},
|
||||
{
|
||||
"id": "af34916f-7888-4d41-aee6-752b78e88c0c",
|
||||
"name": "Sticky Note4",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
780,
|
||||
300
|
||||
],
|
||||
"parameters": {
|
||||
"width": 204.96868508214473,
|
||||
"height": 296.735132421306,
|
||||
"content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\ud83d\udea8**Required**\n* Set the Slack channel to monitor here."
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "58ab44f7-5fe5-4804-8bf1-36f351d86528",
|
||||
"name": "Sticky Note5",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
2440,
|
||||
360
|
||||
],
|
||||
"parameters": {
|
||||
"width": 183.49787916474958,
|
||||
"height": 296.735132421306,
|
||||
"content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\ud83d\udea8**Required**\n* Set the Linear Team Name or ID here."
|
||||
},
|
||||
"typeVersion": 1
|
||||
}
|
||||
],
|
||||
"pinData": {},
|
||||
"connections": {
|
||||
"Merge": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Create New Ticket?",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Slack": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Get Values",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Get Values": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Merge",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
},
|
||||
{
|
||||
"node": "Get Existing Issues",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Get Hashes Only": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Merge",
|
||||
"type": "main",
|
||||
"index": 1
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Schedule Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Slack",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"OpenAI Chat Model": {
|
||||
"ai_languageModel": [
|
||||
[
|
||||
{
|
||||
"node": "Generate Ticket Using ChatGPT",
|
||||
"type": "ai_languageModel",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Create New Ticket?": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Generate Ticket Using ChatGPT",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Get Existing Issues": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Collect Descriptions",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Collect Descriptions": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Get Hashes Only",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Structured Output Parser": {
|
||||
"ai_outputParser": [
|
||||
[
|
||||
{
|
||||
"node": "Generate Ticket Using ChatGPT",
|
||||
"type": "ai_outputParser",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Generate Ticket Using ChatGPT": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Create Ticket",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
245
workflows/Schedule/1406_Schedule_Slack_Automation_Scheduled.json
Normal file
245
workflows/Schedule/1406_Schedule_Slack_Automation_Scheduled.json
Normal file
@@ -0,0 +1,245 @@
|
||||
{
|
||||
"id": "jAML9xW28lOdsObH",
|
||||
"meta": {
|
||||
"instanceId": "be04c66ddabda64dad2c5d4c4611c3879370cfcff746359dfed22dbbfaacfc1a",
|
||||
"templateCredsSetupCompleted": true
|
||||
},
|
||||
"name": "Daily meetings summarization with Gemini AI",
|
||||
"tags": [],
|
||||
"nodes": [
|
||||
{
|
||||
"id": "2f5c6f8b-023a-4fc0-8684-66d7f743af0a",
|
||||
"name": "Sticky Note3",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
100,
|
||||
380
|
||||
],
|
||||
"parameters": {
|
||||
"color": 4,
|
||||
"width": 217.47708894878716,
|
||||
"height": 233,
|
||||
"content": "### Gemini Flash model a base"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "8c159251-d78c-4f18-a886-b930194e6459",
|
||||
"name": "Sticky Note4",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
600,
|
||||
40
|
||||
],
|
||||
"parameters": {
|
||||
"color": 4,
|
||||
"width": 223.7196765498655,
|
||||
"height": 236.66152029520293,
|
||||
"content": "### Send the response from AI back to slack channel\n"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "ee7164d8-f257-4e47-9867-239440153fd4",
|
||||
"name": "Sticky Note1",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
0,
|
||||
-20
|
||||
],
|
||||
"parameters": {
|
||||
"color": 4,
|
||||
"width": 561,
|
||||
"height": 360,
|
||||
"content": "## Trigger the task daily, receive the meetings data, process the data and return response for sending\n\n\n\n\n\n\n\n\n\n\n\nNo memory assigned to the model since the model is running one task and doesn't need a followup, then send the data to the user."
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "30ac78b7-08ba-4df9-a67c-e6825a9de380",
|
||||
"name": "Send response back to slack channel",
|
||||
"type": "n8n-nodes-base.slack",
|
||||
"position": [
|
||||
660,
|
||||
100
|
||||
],
|
||||
"webhookId": "636ae330-cc22-408b-b6a5-caf02e48897f",
|
||||
"parameters": {
|
||||
"text": "=Gemini : {{ $json.output.removeMarkdown() }} ",
|
||||
"select": "channel",
|
||||
"channelId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "C07QMTJHR0A",
|
||||
"cachedResultName": "ai-chat-gemini"
|
||||
},
|
||||
"otherOptions": {
|
||||
"mrkdwn": true,
|
||||
"includeLinkToWorkflow": false
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"slackApi": {
|
||||
"id": "DFQMzAsWKIdZFCR4",
|
||||
"name": "Slack account - iKemo"
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.1
|
||||
},
|
||||
{
|
||||
"id": "938738d6-1e2e-4e93-a5bf-70d11fd4fd32",
|
||||
"name": "Google Calendar - Get Events",
|
||||
"type": "n8n-nodes-base.googleCalendarTool",
|
||||
"position": [
|
||||
400,
|
||||
460
|
||||
],
|
||||
"parameters": {
|
||||
"options": {
|
||||
"timeMax": "={{ $fromAI('end_date') }}",
|
||||
"timeMin": "={{ $fromAI('start_date') }}"
|
||||
},
|
||||
"calendar": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "john@iKemo.io",
|
||||
"cachedResultName": "john@iKemo.io"
|
||||
},
|
||||
"operation": "getAll",
|
||||
"descriptionType": "manual",
|
||||
"toolDescription": "Use this tool when you\u2019re asked to retrieve events data."
|
||||
},
|
||||
"credentials": {
|
||||
"googleCalendarOAuth2Api": {
|
||||
"id": "R2W7XHvEyQgyykI0",
|
||||
"name": "Google Calendar - John"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
},
|
||||
{
|
||||
"id": "2290c30e-9e9f-471a-a882-df6856a1dd9d",
|
||||
"name": "Calendar AI Agent",
|
||||
"type": "@n8n/n8n-nodes-langchain.agent",
|
||||
"position": [
|
||||
240,
|
||||
100
|
||||
],
|
||||
"parameters": {
|
||||
"text": "=summarize today's meetings.\nstartdate = {{ $now.format('yyyy-MM-dd 00:00:00') }}\nenddate = {{ $now.format('yyyy-MM-dd 23:59:59') }}",
|
||||
"options": {
|
||||
"systemMessage": "=You are a Google Calendar assistant.\nYour primary goal is to assist the user in managing their calendar effectively using Event Retrieval tool. \nAlways base your responses on the current date: \n{{ DateTime.local().toFormat('cccc d LLLL yyyy') }}.\nGeneral Guidelines:\nAlways mention all meetings attendees\nTool: Event Retrieval\nFormat the date range:\nstart_date: Start date and time in YYYY-MM-DD HH:mm:ss.\nend_date: End date and time in YYYY-MM-DD HH:mm:ss.\n"
|
||||
},
|
||||
"promptType": "define"
|
||||
},
|
||||
"typeVersion": 1.7
|
||||
},
|
||||
{
|
||||
"id": "dd63bab9-0f95-4b84-8bbd-26a1f91fe635",
|
||||
"name": "Schedule Trigger",
|
||||
"type": "n8n-nodes-base.scheduleTrigger",
|
||||
"position": [
|
||||
20,
|
||||
100
|
||||
],
|
||||
"parameters": {
|
||||
"rule": {
|
||||
"interval": [
|
||||
{
|
||||
"triggerAtHour": 9
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
},
|
||||
{
|
||||
"id": "06b9ecd2-83e0-498f-ad79-fbc89242a6f0",
|
||||
"name": "Sticky Note2",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
340,
|
||||
380
|
||||
],
|
||||
"parameters": {
|
||||
"color": 4,
|
||||
"width": 221.73584905660368,
|
||||
"height": 233,
|
||||
"content": "### Access Google Calendar and fetch all the data"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "48679508-2af8-4507-80a9-fc0aad171169",
|
||||
"name": "Google Gemini Chat Model",
|
||||
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
|
||||
"position": [
|
||||
160,
|
||||
480
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"modelName": "models/gemini-1.5-flash-latest"
|
||||
},
|
||||
"credentials": {
|
||||
"googlePalmApi": {
|
||||
"id": "3BBJHhMKD8W8VfL4",
|
||||
"name": "Google Gemini(PaLM) Api account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
}
|
||||
],
|
||||
"active": false,
|
||||
"pinData": {},
|
||||
"settings": {
|
||||
"executionOrder": "v1"
|
||||
},
|
||||
"versionId": "e517b214-b0e5-4119-8aaf-77ee0655dd78",
|
||||
"connections": {
|
||||
"Schedule Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Calendar AI Agent",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Calendar AI Agent": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Send response back to slack channel",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Google Gemini Chat Model": {
|
||||
"ai_languageModel": [
|
||||
[
|
||||
{
|
||||
"node": "Calendar AI Agent",
|
||||
"type": "ai_languageModel",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Google Calendar - Get Events": {
|
||||
"ai_tool": [
|
||||
[
|
||||
{
|
||||
"node": "Calendar AI Agent",
|
||||
"type": "ai_tool",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,933 @@
|
||||
{
|
||||
"id": "E2hq7z4ANLoL5vw1",
|
||||
"meta": {
|
||||
"instanceId": "bdce9ec27bbe2b742054f01d034b8b468d2e7758edd716403ad5bd4583a8f649",
|
||||
"templateCredsSetupCompleted": true
|
||||
},
|
||||
"name": "Noco Kanban Board with AI Prioritization",
|
||||
"tags": [],
|
||||
"nodes": [
|
||||
{
|
||||
"id": "4976d737-a419-4cc6-a8fc-dc1a9482642d",
|
||||
"name": "Incident Form",
|
||||
"type": "n8n-nodes-base.formTrigger",
|
||||
"disabled": true,
|
||||
"position": [
|
||||
-100,
|
||||
200
|
||||
],
|
||||
"webhookId": "fef1bb69-69e9-49ff-ba29-ded7cc398a13",
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"formTitle": "Incident Form",
|
||||
"formFields": {
|
||||
"values": [
|
||||
{
|
||||
"fieldType": "email",
|
||||
"fieldLabel": "Email",
|
||||
"placeholder": "Your Email",
|
||||
"requiredField": true
|
||||
},
|
||||
{
|
||||
"fieldType": "textarea",
|
||||
"fieldLabel": "Incident Description",
|
||||
"placeholder": "Incident Description",
|
||||
"requiredField": true
|
||||
},
|
||||
{
|
||||
"fieldType": "dropdown",
|
||||
"fieldLabel": "Incident Desired Category",
|
||||
"fieldOptions": {
|
||||
"values": [
|
||||
{
|
||||
"option": "Critical"
|
||||
},
|
||||
{
|
||||
"option": "Major"
|
||||
},
|
||||
{
|
||||
"option": "Medium"
|
||||
},
|
||||
{
|
||||
"option": "Minor"
|
||||
},
|
||||
{
|
||||
"option": "Support"
|
||||
},
|
||||
{
|
||||
"option": "Feature"
|
||||
}
|
||||
]
|
||||
},
|
||||
"requiredField": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"formDescription": "Experiencing issues? Fill in this incident form so we can take care of it"
|
||||
},
|
||||
"typeVersion": 2.2
|
||||
},
|
||||
{
|
||||
"id": "f9829dfd-c8bd-45c0-b9ac-fe496d527df8",
|
||||
"name": "Assign Category",
|
||||
"type": "@n8n/n8n-nodes-langchain.agent",
|
||||
"position": [
|
||||
620,
|
||||
100
|
||||
],
|
||||
"parameters": {
|
||||
"text": "=You are professional support assistance. You are receiving information about different issues users are having. Your task is to assign proper category to task requested.\n\nYou should output:\n- category based on definitions provided\n- response time assgined to category\n- resolution time assigned to category\n- default assignee\n\nDefinitions:\n{{ $json.data.toJsonString() }}\n\nTask request is:\n{{ $('On schedule or during flow').item.json['Incident Description'] }}",
|
||||
"options": {},
|
||||
"promptType": "define",
|
||||
"hasOutputParser": true
|
||||
},
|
||||
"typeVersion": 1.8,
|
||||
"alwaysOutputData": true
|
||||
},
|
||||
{
|
||||
"id": "bef9f61d-0019-4407-a0fc-9a4c44894d6e",
|
||||
"name": "OpenAI Chat Model1",
|
||||
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
|
||||
"position": [
|
||||
540,
|
||||
280
|
||||
],
|
||||
"parameters": {
|
||||
"model": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "gpt-4o-mini"
|
||||
},
|
||||
"options": {}
|
||||
},
|
||||
"credentials": {
|
||||
"openAiApi": {
|
||||
"id": "zjIZQuuuZMJpiUny",
|
||||
"name": "OpenAi account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
},
|
||||
{
|
||||
"id": "ccb2092e-f9bb-4b64-987a-d4349b401d5c",
|
||||
"name": "Structure Output Todoist Ready1",
|
||||
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
|
||||
"position": [
|
||||
860,
|
||||
260
|
||||
],
|
||||
"parameters": {
|
||||
"jsonSchemaExample": "{\n\t\"category\": \"critical\",\n \"response_time\": \"1\",\n \"resolution_time\": \"8\",\n \"default_assignee\": \"email@example.com\"\n}"
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
},
|
||||
{
|
||||
"id": "7b8fa2ca-5697-4792-ab60-3506be78bcdf",
|
||||
"name": "Get incident definitions",
|
||||
"type": "n8n-nodes-base.nocoDb",
|
||||
"position": [
|
||||
180,
|
||||
100
|
||||
],
|
||||
"parameters": {
|
||||
"table": "mt94l49b6zocsxy",
|
||||
"options": {
|
||||
"fields": [
|
||||
"Title",
|
||||
"Definition",
|
||||
"Response time",
|
||||
"Resolution time",
|
||||
"Default assignee"
|
||||
]
|
||||
},
|
||||
"operation": "getAll",
|
||||
"projectId": "pksfpoc943gwhvy",
|
||||
"returnAll": true,
|
||||
"authentication": "nocoDbApiToken"
|
||||
},
|
||||
"credentials": {
|
||||
"nocoDbApiToken": {
|
||||
"id": "6KgsjKtnCVIEbBwC",
|
||||
"name": "NocoDB Token account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 3
|
||||
},
|
||||
{
|
||||
"id": "b6023ac0-0a43-47b5-add3-f11c4bb8a5d1",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
-160,
|
||||
0
|
||||
],
|
||||
"parameters": {
|
||||
"height": 440,
|
||||
"content": "## Incident Form\nThis workflow is triggered when someone fills incident form. You could replace it for example with email or webhook, but you will need to update references in other nodes to new fields"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "1a207b67-98de-40e6-8ec2-eb64e515cc14",
|
||||
"name": "Sticky Note1",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
120,
|
||||
0
|
||||
],
|
||||
"parameters": {
|
||||
"width": 1320,
|
||||
"height": 440,
|
||||
"content": "## Parse Incidents\nAllow AI to compare your incident definitions with input from user. AI will attempt to assign proper category and proper person to given incident. WIth AI assignment, we are formatting fields to input them into NocoDB table"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "e28f77db-4701-4df2-a79c-b7239a4b4e1f",
|
||||
"name": "Insert Incident",
|
||||
"type": "n8n-nodes-base.nocoDb",
|
||||
"position": [
|
||||
1260,
|
||||
260
|
||||
],
|
||||
"parameters": {
|
||||
"table": "mwh33g1yyeg9z6k",
|
||||
"operation": "create",
|
||||
"projectId": "pksfpoc943gwhvy",
|
||||
"dataToSend": "autoMapInputData",
|
||||
"authentication": "nocoDbApiToken"
|
||||
},
|
||||
"credentials": {
|
||||
"nocoDbApiToken": {
|
||||
"id": "6KgsjKtnCVIEbBwC",
|
||||
"name": "NocoDB Token account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 3
|
||||
},
|
||||
{
|
||||
"id": "17ccb056-2f0b-4a38-812b-e869842c7032",
|
||||
"name": "Aggregate for AI parsing",
|
||||
"type": "n8n-nodes-base.aggregate",
|
||||
"position": [
|
||||
400,
|
||||
100
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"aggregate": "aggregateAllItemData"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "0048bfe3-0e1f-4a2d-8200-900a56afb21b",
|
||||
"name": "On schedule or during flow",
|
||||
"type": "n8n-nodes-base.noOp",
|
||||
"position": [
|
||||
160,
|
||||
820
|
||||
],
|
||||
"parameters": {},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "25370677-2364-426f-a7ed-f87e4f5d9223",
|
||||
"name": "When clicking ‘Test workflow’",
|
||||
"type": "n8n-nodes-base.manualTrigger",
|
||||
"position": [
|
||||
-120,
|
||||
900
|
||||
],
|
||||
"parameters": {},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "930fc886-6c1d-4613-b312-360bd37544fa",
|
||||
"name": "Task is not picked up after expected response",
|
||||
"type": "n8n-nodes-base.if",
|
||||
"position": [
|
||||
660,
|
||||
620
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"conditions": {
|
||||
"options": {
|
||||
"version": 2,
|
||||
"leftValue": "",
|
||||
"caseSensitive": true,
|
||||
"typeValidation": "strict"
|
||||
},
|
||||
"combinator": "and",
|
||||
"conditions": [
|
||||
{
|
||||
"id": "e860430a-ec94-4dce-9196-5da467e6af2f",
|
||||
"operator": {
|
||||
"type": "dateTime",
|
||||
"operation": "before"
|
||||
},
|
||||
"leftValue": "={{ $json['Expected Response'] }}",
|
||||
"rightValue": "={{ $now }}"
|
||||
},
|
||||
{
|
||||
"id": "278afe7e-2e68-461b-a0fb-baa530cb0819",
|
||||
"operator": {
|
||||
"name": "filter.operator.equals",
|
||||
"type": "string",
|
||||
"operation": "equals"
|
||||
},
|
||||
"leftValue": "={{ $json.status }}",
|
||||
"rightValue": "todo"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.2
|
||||
},
|
||||
{
|
||||
"id": "a11567b4-e5e7-4e64-970d-51e61e6f376f",
|
||||
"name": "Send email to client",
|
||||
"type": "n8n-nodes-base.emailSend",
|
||||
"position": [
|
||||
1000,
|
||||
540
|
||||
],
|
||||
"webhookId": "909aaf74-b3ce-4942-9295-0e1f83810c7f",
|
||||
"parameters": {
|
||||
"text": "We are sorry that we have not yet looked at your message. Although We are working heavily, currently all our developers are busy. But we have reminded asignee on your request and we will reply to you shortly.",
|
||||
"options": {},
|
||||
"subject": "Your task is important to us",
|
||||
"toEmail": "={{ $json.email }}",
|
||||
"fromEmail": "support@example.com",
|
||||
"emailFormat": "text"
|
||||
},
|
||||
"credentials": {
|
||||
"smtp": {
|
||||
"id": "tkdzDgcUAt04af3B",
|
||||
"name": "SMTP account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.1
|
||||
},
|
||||
{
|
||||
"id": "ea9d3ad5-0dd5-428f-8a23-60999c7134f4",
|
||||
"name": "Check status every day",
|
||||
"type": "n8n-nodes-base.scheduleTrigger",
|
||||
"disabled": true,
|
||||
"position": [
|
||||
-120,
|
||||
720
|
||||
],
|
||||
"parameters": {
|
||||
"rule": {
|
||||
"interval": [
|
||||
{
|
||||
"triggerAtHour": 9
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
},
|
||||
{
|
||||
"id": "ce94960f-56c8-4b67-81af-ece07f97c94f",
|
||||
"name": "Send email to asignee",
|
||||
"type": "n8n-nodes-base.emailSend",
|
||||
"position": [
|
||||
1260,
|
||||
640
|
||||
],
|
||||
"webhookId": "909aaf74-b3ce-4942-9295-0e1f83810c7f",
|
||||
"parameters": {
|
||||
"text": "You have an outstanding task that should be picked up. Visit your kanban board for more information ",
|
||||
"options": {},
|
||||
"subject": "Your task is important to us",
|
||||
"toEmail": "={{ $json.assignee }}",
|
||||
"fromEmail": "support@example.com",
|
||||
"emailFormat": "text"
|
||||
},
|
||||
"credentials": {
|
||||
"smtp": {
|
||||
"id": "tkdzDgcUAt04af3B",
|
||||
"name": "SMTP account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.1
|
||||
},
|
||||
{
|
||||
"id": "8c1cc107-76aa-4d62-871d-d107f2055071",
|
||||
"name": "Sticky Note2",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
360,
|
||||
460
|
||||
],
|
||||
"parameters": {
|
||||
"width": 1080,
|
||||
"height": 400,
|
||||
"content": "## Stay Informed\nInform both client and developer about current task status. Maybe task was not picked up. Feel free to replace with Slack messages if applicable"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "b6fb24c3-2a04-4906-be2e-510356cd5f76",
|
||||
"name": "Get Unpicked Tasks",
|
||||
"type": "n8n-nodes-base.nocoDb",
|
||||
"position": [
|
||||
420,
|
||||
620
|
||||
],
|
||||
"parameters": {
|
||||
"limit": 5,
|
||||
"table": "mwh33g1yyeg9z6k",
|
||||
"options": {
|
||||
"where": "(status,eq,todo)",
|
||||
"fields": []
|
||||
},
|
||||
"operation": "getAll",
|
||||
"projectId": "pksfpoc943gwhvy",
|
||||
"authentication": "nocoDbApiToken"
|
||||
},
|
||||
"credentials": {
|
||||
"nocoDbApiToken": {
|
||||
"id": "6KgsjKtnCVIEbBwC",
|
||||
"name": "NocoDB Token account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 3
|
||||
},
|
||||
{
|
||||
"id": "5d5b635d-0302-462d-94a5-7055a63e85ac",
|
||||
"name": "Get Unfinished Tasks",
|
||||
"type": "n8n-nodes-base.nocoDb",
|
||||
"position": [
|
||||
420,
|
||||
1060
|
||||
],
|
||||
"parameters": {
|
||||
"limit": 5,
|
||||
"table": "mwh33g1yyeg9z6k",
|
||||
"options": {
|
||||
"where": "(status,eq,todo)",
|
||||
"fields": []
|
||||
},
|
||||
"operation": "getAll",
|
||||
"projectId": "pksfpoc943gwhvy",
|
||||
"authentication": "nocoDbApiToken"
|
||||
},
|
||||
"credentials": {
|
||||
"nocoDbApiToken": {
|
||||
"id": "6KgsjKtnCVIEbBwC",
|
||||
"name": "NocoDB Token account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 3
|
||||
},
|
||||
{
|
||||
"id": "4a8724da-a752-46fc-8753-ae6344d9d6d3",
|
||||
"name": "Task is not complete in expected time",
|
||||
"type": "n8n-nodes-base.if",
|
||||
"position": [
|
||||
660,
|
||||
1060
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"conditions": {
|
||||
"options": {
|
||||
"version": 2,
|
||||
"leftValue": "",
|
||||
"caseSensitive": true,
|
||||
"typeValidation": "strict"
|
||||
},
|
||||
"combinator": "and",
|
||||
"conditions": [
|
||||
{
|
||||
"id": "e860430a-ec94-4dce-9196-5da467e6af2f",
|
||||
"operator": {
|
||||
"type": "dateTime",
|
||||
"operation": "before"
|
||||
},
|
||||
"leftValue": "={{ $json['Expected Resolution'] }}",
|
||||
"rightValue": "={{ $now }}"
|
||||
},
|
||||
{
|
||||
"id": "278afe7e-2e68-461b-a0fb-baa530cb0819",
|
||||
"operator": {
|
||||
"type": "string",
|
||||
"operation": "notEquals"
|
||||
},
|
||||
"leftValue": "={{ $json.status }}",
|
||||
"rightValue": "done"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.2
|
||||
},
|
||||
{
|
||||
"id": "03fc4e3d-3a49-417e-b0e7-b71cd684e8f7",
|
||||
"name": "Send email to client1",
|
||||
"type": "n8n-nodes-base.emailSend",
|
||||
"position": [
|
||||
1000,
|
||||
960
|
||||
],
|
||||
"webhookId": "909aaf74-b3ce-4942-9295-0e1f83810c7f",
|
||||
"parameters": {
|
||||
"text": "We are sorry that we have not yet finished your task. Although We are working heavily, currently all our developers are busy. But we have reminded asignee on your request and we will reply to you shortly.",
|
||||
"options": {},
|
||||
"subject": "Your task is important to us",
|
||||
"toEmail": "={{ $json.email }}",
|
||||
"fromEmail": "support@example.com",
|
||||
"emailFormat": "text"
|
||||
},
|
||||
"credentials": {
|
||||
"smtp": {
|
||||
"id": "tkdzDgcUAt04af3B",
|
||||
"name": "SMTP account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.1
|
||||
},
|
||||
{
|
||||
"id": "ddeeee95-41b6-47e1-add5-60de172d0117",
|
||||
"name": "If there is asignee email",
|
||||
"type": "n8n-nodes-base.if",
|
||||
"position": [
|
||||
1000,
|
||||
720
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"conditions": {
|
||||
"options": {
|
||||
"version": 2,
|
||||
"leftValue": "",
|
||||
"caseSensitive": true,
|
||||
"typeValidation": "strict"
|
||||
},
|
||||
"combinator": "and",
|
||||
"conditions": [
|
||||
{
|
||||
"id": "3e686523-7208-40f8-b857-7db42ccb0e12",
|
||||
"operator": {
|
||||
"type": "string",
|
||||
"operation": "notEmpty",
|
||||
"singleValue": true
|
||||
},
|
||||
"leftValue": "={{ $json.assignee }}",
|
||||
"rightValue": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.2
|
||||
},
|
||||
{
|
||||
"id": "fb8a3bf0-0f15-4ea3-b61e-f9b582d64d3f",
|
||||
"name": "If there is assignee slack",
|
||||
"type": "n8n-nodes-base.if",
|
||||
"position": [
|
||||
1000,
|
||||
1140
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"conditions": {
|
||||
"options": {
|
||||
"version": 2,
|
||||
"leftValue": "",
|
||||
"caseSensitive": true,
|
||||
"typeValidation": "strict"
|
||||
},
|
||||
"combinator": "and",
|
||||
"conditions": [
|
||||
{
|
||||
"id": "8a70caa3-b692-49c5-a92c-dedff9a8e2ba",
|
||||
"operator": {
|
||||
"type": "string",
|
||||
"operation": "notEmpty",
|
||||
"singleValue": true
|
||||
},
|
||||
"leftValue": "={{ $json['assignee slack'] }}",
|
||||
"rightValue": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.2
|
||||
},
|
||||
{
|
||||
"id": "c31d46a2-d1f2-4573-a4dd-f07a7f9b2e52",
|
||||
"name": "Slack to assignee",
|
||||
"type": "n8n-nodes-base.slack",
|
||||
"position": [
|
||||
1260,
|
||||
980
|
||||
],
|
||||
"webhookId": "2a3764a2-a030-4d99-9dae-0a691934d778",
|
||||
"parameters": {
|
||||
"text": "You have unfinished task in progress. Inform client on your next steps and update expected resolution time.",
|
||||
"user": {
|
||||
"__rl": true,
|
||||
"mode": "username",
|
||||
"value": "={{ $json['assignee slack'] }}"
|
||||
},
|
||||
"select": "user",
|
||||
"otherOptions": {},
|
||||
"authentication": "oAuth2"
|
||||
},
|
||||
"credentials": {
|
||||
"slackOAuth2Api": {
|
||||
"id": "B0jUtT53pVAEPaQM",
|
||||
"name": "Slack Oauth"
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.3
|
||||
},
|
||||
{
|
||||
"id": "ff015cfa-c234-453a-aef5-b2a2d4bda6db",
|
||||
"name": "Sticky Note3",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
360,
|
||||
880
|
||||
],
|
||||
"parameters": {
|
||||
"width": 1080,
|
||||
"height": 460,
|
||||
"content": "## Task incomplete\nInform both client and developer that task is after due. Developer should receive message and react accordingly."
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "516f487a-8f3c-457c-8c35-134c66dacc2f",
|
||||
"name": "Send another email to asignee",
|
||||
"type": "n8n-nodes-base.emailSend",
|
||||
"position": [
|
||||
1260,
|
||||
1160
|
||||
],
|
||||
"webhookId": "909aaf74-b3ce-4942-9295-0e1f83810c7f",
|
||||
"parameters": {
|
||||
"text": "You have an unfninished task that should be done by now. Visit your kanban board for more information ",
|
||||
"options": {},
|
||||
"subject": "Your task is important to us",
|
||||
"toEmail": "={{ $json.assignee }}",
|
||||
"fromEmail": "support@example.com",
|
||||
"emailFormat": "text"
|
||||
},
|
||||
"credentials": {
|
||||
"smtp": {
|
||||
"id": "tkdzDgcUAt04af3B",
|
||||
"name": "SMTP account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.1
|
||||
},
|
||||
{
|
||||
"id": "ab931ca8-ea7a-433c-bf1c-26c9fb67722b",
|
||||
"name": "Sticky Note4",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
-160,
|
||||
560
|
||||
],
|
||||
"parameters": {
|
||||
"width": 480,
|
||||
"height": 580,
|
||||
"content": "## Trigger Task Check Daily\nRunning this more often is probably not good idea because client may receive too many messages when task is delayed"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "b432ed80-eb24-4978-b711-83660a8edeaf",
|
||||
"name": "Format for Noco",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
1040,
|
||||
260
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"assignments": {
|
||||
"assignments": [
|
||||
{
|
||||
"id": "b75b02b8-3365-4830-ad28-87e76836c938",
|
||||
"name": "email",
|
||||
"type": "string",
|
||||
"value": "={{ $('On schedule or during flow').item.json.Email }}"
|
||||
},
|
||||
{
|
||||
"id": "2a0d4d0f-1b1c-40ec-8fb7-f0be9af544f9",
|
||||
"name": "message",
|
||||
"type": "string",
|
||||
"value": "={{ $('On schedule or during flow').item.json['Incident Description'] }}"
|
||||
},
|
||||
{
|
||||
"id": "60fc4759-3026-4d04-9853-b474dbe92d43",
|
||||
"name": "expected category",
|
||||
"type": "string",
|
||||
"value": "={{ $('On schedule or during flow').item.json['Incident Desired Category'] }}"
|
||||
},
|
||||
{
|
||||
"id": "3eccf7ae-f2eb-4997-b304-15428fdf5fb5",
|
||||
"name": "assigned category",
|
||||
"type": "string",
|
||||
"value": "={{ $json.output.category }}"
|
||||
},
|
||||
{
|
||||
"id": "f70e8b0d-4818-405b-ba36-4dc3d31bd11b",
|
||||
"name": "status",
|
||||
"type": "string",
|
||||
"value": "todo"
|
||||
},
|
||||
{
|
||||
"id": "e8ddc64f-d5f0-482e-93d6-a4fd082e3505",
|
||||
"name": "Expected Response",
|
||||
"type": "string",
|
||||
"value": "={{ $now.plus($json.output.response_time, 'hours') }}"
|
||||
},
|
||||
{
|
||||
"id": "be04bc69-e2a6-4c7c-9e94-d39f8b0e4f39",
|
||||
"name": "Expected Resolution",
|
||||
"type": "string",
|
||||
"value": "={{ $now.plus($json.output.resolution_time, 'hours') }}"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 3.4
|
||||
}
|
||||
],
|
||||
"active": false,
|
||||
"pinData": {},
|
||||
"settings": {
|
||||
"executionOrder": "v1"
|
||||
},
|
||||
"versionId": "2c6430f3-da2b-41bf-951d-b650ba63475a",
|
||||
"connections": {
|
||||
"Incident Form": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Get incident definitions",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Assign Category": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Format for Noco",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Format for Noco": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Insert Incident",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Insert Incident": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "On schedule or during flow",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Slack to assignee": {
|
||||
"main": [
|
||||
[]
|
||||
]
|
||||
},
|
||||
"Get Unpicked Tasks": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Task is not picked up after expected response",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"OpenAI Chat Model1": {
|
||||
"ai_languageModel": [
|
||||
[
|
||||
{
|
||||
"node": "Assign Category",
|
||||
"type": "ai_languageModel",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Get Unfinished Tasks": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Task is not complete in expected time",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Send email to asignee": {
|
||||
"main": [
|
||||
[]
|
||||
]
|
||||
},
|
||||
"Check status every day": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "On schedule or during flow",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Aggregate for AI parsing": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Assign Category",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Get incident definitions": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Aggregate for AI parsing",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"If there is asignee email": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Send email to asignee",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"If there is assignee slack": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Slack to assignee",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"node": "Send another email to asignee",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"On schedule or during flow": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Get Unpicked Tasks",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
},
|
||||
{
|
||||
"node": "Get Unfinished Tasks",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Structure Output Todoist Ready1": {
|
||||
"ai_outputParser": [
|
||||
[
|
||||
{
|
||||
"node": "Assign Category",
|
||||
"type": "ai_outputParser",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"When clicking ‘Test workflow’": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "On schedule or during flow",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Task is not complete in expected time": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Send email to client1",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"node": "If there is assignee slack",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Task is not picked up after expected response": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Send email to client",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
},
|
||||
{
|
||||
"node": "If there is asignee email",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
1664
workflows/Schedule/1492_Schedule_Twilio_Automation_Webhook.json
Normal file
1664
workflows/Schedule/1492_Schedule_Twilio_Automation_Webhook.json
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,456 @@
|
||||
{
|
||||
"id": "JJKkNnO4PQ12gQdE",
|
||||
"meta": {
|
||||
"instanceId": "0c2c4ddeb912d098b1d34ad608a9ee98cbe4700322f0cd2d87fa360b51c1c8a8",
|
||||
"templateCredsSetupCompleted": true
|
||||
},
|
||||
"name": "Retry Execution Hourly",
|
||||
"tags": [
|
||||
{
|
||||
"id": "BREwPdgeEC5njFaD",
|
||||
"name": "In Development",
|
||||
"createdAt": "2024-04-13T07:17:56.132Z",
|
||||
"updatedAt": "2024-04-13T07:17:56.132Z"
|
||||
}
|
||||
],
|
||||
"nodes": [
|
||||
{
|
||||
"id": "ca8badce-4a43-4e86-acb8-6a3939ffa597",
|
||||
"name": "When clicking ‘Test workflow’",
|
||||
"type": "n8n-nodes-base.manualTrigger",
|
||||
"position": [
|
||||
580,
|
||||
740
|
||||
],
|
||||
"parameters": {},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "7867cbd1-bf14-488d-9bbf-11d4478f93f2",
|
||||
"name": "n8n",
|
||||
"type": "n8n-nodes-base.n8n",
|
||||
"position": [
|
||||
1160,
|
||||
860
|
||||
],
|
||||
"parameters": {
|
||||
"filters": {
|
||||
"status": "error"
|
||||
},
|
||||
"options": {
|
||||
"activeWorkflows": false
|
||||
},
|
||||
"resource": "execution",
|
||||
"returnAll": true,
|
||||
"requestOptions": {}
|
||||
},
|
||||
"credentials": {
|
||||
"n8nApi": {
|
||||
"id": "m9lkUOoNENYqXZIQ",
|
||||
"name": "Gatu a/c"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "b9826e10-43b9-4a21-b2f8-f91fdee3e6a2",
|
||||
"name": "Log into n8n",
|
||||
"type": "n8n-nodes-base.httpRequest",
|
||||
"position": [
|
||||
960,
|
||||
860
|
||||
],
|
||||
"parameters": {
|
||||
"url": "={{ \n\n(() => {\n const instance = $json.n8n_instance;\n const normalizedUrl = instance.endsWith('/') ? instance + 'rest/login' : instance + '/rest/login';\n return normalizedUrl;\n})()\n}}",
|
||||
"method": "POST",
|
||||
"options": {
|
||||
"response": {
|
||||
"response": {
|
||||
"fullResponse": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"sendBody": true,
|
||||
"sendHeaders": true,
|
||||
"bodyParameters": {
|
||||
"parameters": [
|
||||
{
|
||||
"name": "email",
|
||||
"value": "={{ $json.username }}"
|
||||
},
|
||||
{
|
||||
"name": "password",
|
||||
"value": "={{ $json.password }}"
|
||||
}
|
||||
]
|
||||
},
|
||||
"headerParameters": {
|
||||
"parameters": [
|
||||
{
|
||||
"name": "accept",
|
||||
"value": "application/json, text/plain, */*"
|
||||
},
|
||||
{
|
||||
"name": "accept-language",
|
||||
"value": "en-US,en;q=0.9"
|
||||
},
|
||||
{
|
||||
"name": "user-agent",
|
||||
"value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"retryOnFail": true,
|
||||
"typeVersion": 4.2
|
||||
},
|
||||
{
|
||||
"id": "1ca0527f-ccc4-4b3f-b585-94550987e0d3",
|
||||
"name": "retry workflow automatically",
|
||||
"type": "n8n-nodes-base.httpRequest",
|
||||
"onError": "continueRegularOutput",
|
||||
"position": [
|
||||
2080,
|
||||
980
|
||||
],
|
||||
"parameters": {
|
||||
"url": "={{ \n\n$('login_details').item.json.n8n_instance.endsWith('/') \n ? $('login_details').item.json.n8n_instance + 'rest/executions/' + $json.id + '/retry' \n : $('login_details').item.json.n8n_instance + '/rest/executions/' + $('login_details').item.json.executionid + '/retry'\n\n }} ",
|
||||
"method": "POST",
|
||||
"options": {
|
||||
"redirect": {
|
||||
"redirect": {}
|
||||
}
|
||||
},
|
||||
"sendBody": true,
|
||||
"sendHeaders": true,
|
||||
"bodyParameters": {
|
||||
"parameters": [
|
||||
{
|
||||
"name": "loadWorkflow",
|
||||
"value": "true"
|
||||
}
|
||||
]
|
||||
},
|
||||
"headerParameters": {
|
||||
"parameters": [
|
||||
{
|
||||
"name": "accept",
|
||||
"value": "application/json, text/plain, */*"
|
||||
},
|
||||
{
|
||||
"name": "accept-language",
|
||||
"value": "en-US,en;q=0.9"
|
||||
},
|
||||
{
|
||||
"name": "cookie",
|
||||
"value": "={{ $('Log into n8n').item.json.headers['set-cookie'][0] }}"
|
||||
},
|
||||
{
|
||||
"name": "user-agent",
|
||||
"value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"retryOnFail": true,
|
||||
"typeVersion": 4.2
|
||||
},
|
||||
{
|
||||
"id": "b0b2f473-e12c-4377-80d3-46b18faa09b9",
|
||||
"name": "If",
|
||||
"type": "n8n-nodes-base.if",
|
||||
"position": [
|
||||
1380,
|
||||
860
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"conditions": {
|
||||
"options": {
|
||||
"version": 2,
|
||||
"leftValue": "",
|
||||
"caseSensitive": true,
|
||||
"typeValidation": "strict"
|
||||
},
|
||||
"combinator": "and",
|
||||
"conditions": [
|
||||
{
|
||||
"id": "06acbcc4-1a82-4063-8a92-2ebbc6597b4b",
|
||||
"operator": {
|
||||
"type": "string",
|
||||
"operation": "notEmpty",
|
||||
"singleValue": true
|
||||
},
|
||||
"leftValue": "={{ $json.retrySuccessId }}",
|
||||
"rightValue": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.2
|
||||
},
|
||||
{
|
||||
"id": "6ea6fe2c-de31-4628-87b1-69e7ba867030",
|
||||
"name": "No Operation, do nothing",
|
||||
"type": "n8n-nodes-base.noOp",
|
||||
"position": [
|
||||
1620,
|
||||
680
|
||||
],
|
||||
"parameters": {},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "851277e1-5b0e-4391-8174-2c118aacfa30",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
100,
|
||||
780
|
||||
],
|
||||
"parameters": {
|
||||
"width": 383.5091496232509,
|
||||
"height": 285.0376749192681,
|
||||
"content": "- ## check for failed executions hourly.\n- ## filter out those that have successful reexecution ids.\n- ## log into n8n and get the session ids.\n- ## retry the executions.\n\n- h\n"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "5b8bf8c1-f505-42da-936d-637394e71b34",
|
||||
"name": "login_details",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
760,
|
||||
860
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"assignments": {
|
||||
"assignments": [
|
||||
{
|
||||
"id": "3edb7f73-73cb-44f4-b891-8499598d9b0a",
|
||||
"name": "username",
|
||||
"type": "string",
|
||||
"value": "gaturanjenga@gmail.com"
|
||||
},
|
||||
{
|
||||
"id": "bc07f892-aacf-4f7c-96d1-64a9e28a4d92",
|
||||
"name": "password",
|
||||
"type": "string",
|
||||
"value": "Password123"
|
||||
},
|
||||
{
|
||||
"id": "59874894-b1ec-4a31-949e-9c3834d68d47",
|
||||
"name": "n8n_instance",
|
||||
"type": "string",
|
||||
"value": "https://ai.gatuservices.info/"
|
||||
},
|
||||
{
|
||||
"id": "68c77c33-15e0-4505-90d0-8129e7a8fbba",
|
||||
"name": "executionid",
|
||||
"type": "string",
|
||||
"value": "={{ $json.id }}"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 3.4
|
||||
},
|
||||
{
|
||||
"id": "74716a90-25a2-48b6-b342-197fe3807a3d",
|
||||
"name": "Loop Over Items",
|
||||
"type": "n8n-nodes-base.splitInBatches",
|
||||
"position": [
|
||||
1620,
|
||||
940
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"batchSize": 5
|
||||
},
|
||||
"typeVersion": 3
|
||||
},
|
||||
{
|
||||
"id": "6439f486-68d4-4f9e-8e7f-3df909e32324",
|
||||
"name": "Schedule Trigger",
|
||||
"type": "n8n-nodes-base.scheduleTrigger",
|
||||
"position": [
|
||||
580,
|
||||
980
|
||||
],
|
||||
"parameters": {
|
||||
"rule": {
|
||||
"interval": [
|
||||
{
|
||||
"field": "hours"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
},
|
||||
{
|
||||
"id": "882c03ea-d9e0-4d00-b4c6-5a1c55994fb0",
|
||||
"name": "Sticky Note1",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
740,
|
||||
740
|
||||
],
|
||||
"parameters": {
|
||||
"color": 4,
|
||||
"width": 349.5813953488373,
|
||||
"height": 278.232558139535,
|
||||
"content": "## Set the login credential details in the set node, and login to n8n via api."
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "bcc4d7e3-a91e-4c90-a018-56c6321f6ae2",
|
||||
"name": "Sticky Note2",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
1140,
|
||||
740
|
||||
],
|
||||
"parameters": {
|
||||
"color": 2,
|
||||
"width": 343.81395348837225,
|
||||
"height": 263.8139534883721,
|
||||
"content": "## Get all `Error` executions.\n- ### Filter out those that have been successfully retried\n"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "9219f2a8-8b71-45e0-a987-7e8c1a6364fe",
|
||||
"name": "Sticky Note3",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
1780,
|
||||
880
|
||||
],
|
||||
"parameters": {
|
||||
"color": 5,
|
||||
"width": 444.7441860465116,
|
||||
"height": 268.139534883721,
|
||||
"content": "## Retry the executions.\n- ### Feel free to add notifications error messages for failed one to email or slack"
|
||||
},
|
||||
"typeVersion": 1
|
||||
}
|
||||
],
|
||||
"active": false,
|
||||
"pinData": {},
|
||||
"settings": {
|
||||
"executionOrder": "v1"
|
||||
},
|
||||
"versionId": "eb687638-734c-4feb-af5a-b49cf1dc661b",
|
||||
"connections": {
|
||||
"If": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "No Operation, do nothing",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"node": "Loop Over Items",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"n8n": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "If",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Log into n8n": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "n8n",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"execution_id": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "retry workflow automatically",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"login_details": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Log into n8n",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Loop Over Items": {
|
||||
"main": [
|
||||
[],
|
||||
[
|
||||
{
|
||||
"node": "execution_id",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Schedule Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "login_details",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"retry workflow automatically": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Loop Over Items",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"When clicking ‘Test workflow’": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "login_details",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
179
workflows/Schedule/1574_Schedule_Youtube_Create_Scheduled.json
Normal file
179
workflows/Schedule/1574_Schedule_Youtube_Create_Scheduled.json
Normal file
@@ -0,0 +1,179 @@
|
||||
{
|
||||
"id": "O9FXr8iXzhSgYKaL",
|
||||
"meta": {
|
||||
"instanceId": "d8bbc8c5a59875a8be9f3c7142d858bc46c4b8e36a11781a25e945fcf9a5767a"
|
||||
},
|
||||
"name": "Post New YouTube Videos to X",
|
||||
"tags": [],
|
||||
"nodes": [
|
||||
{
|
||||
"id": "576be5c4-1ed0-4d01-a980-cb2fc31e2223",
|
||||
"name": "Post to X",
|
||||
"type": "n8n-nodes-base.twitter",
|
||||
"position": [
|
||||
1280,
|
||||
380
|
||||
],
|
||||
"parameters": {
|
||||
"text": "={{ $json.message.content }}",
|
||||
"additionalFields": {}
|
||||
},
|
||||
"credentials": {
|
||||
"twitterOAuth2Api": {
|
||||
"id": "FjHOuF0APzoMqIjG",
|
||||
"name": "X account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "3b87cf2a-51d5-4589-9729-bb1fe3cfceca",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
620,
|
||||
254.76543209876536
|
||||
],
|
||||
"parameters": {
|
||||
"color": 3,
|
||||
"width": 221.82716049382665,
|
||||
"height": 308.7901234567902,
|
||||
"content": "🆔 Ensure you enter your YouTube Channel ID in the \"Channel ID\" field of this node. You can find your [Channel ID here](https://youtube.com/account_advanced)."
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "912e631c-aa43-4e02-9816-b35fe6e62dd8",
|
||||
"name": "Generate Post for X with ChatGPT",
|
||||
"type": "@n8n/n8n-nodes-langchain.openAi",
|
||||
"position": [
|
||||
900,
|
||||
380
|
||||
],
|
||||
"parameters": {
|
||||
"modelId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "gpt-3.5-turbo",
|
||||
"cachedResultName": "GPT-3.5-TURBO"
|
||||
},
|
||||
"options": {},
|
||||
"messages": {
|
||||
"values": [
|
||||
{
|
||||
"content": "=Write an engaging post about my latest YouTube video for X (Twitter) of no more than 140 characters in length. Link to the video at https://youtu.be/{{ $json.id.videoId }} use this title and description: {{ $json.snippet.title }} {{ $json.snippet.description }}"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"openAiApi": {
|
||||
"id": "UpdYKqoR9wsGBnaA",
|
||||
"name": "OpenAi account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.3
|
||||
},
|
||||
{
|
||||
"id": "841ee140-7e37-4e9c-8ab2-2a3ee941d255",
|
||||
"name": "Sticky Note1",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
360,
|
||||
254.5679012345679
|
||||
],
|
||||
"parameters": {
|
||||
"width": 244.34567901234558,
|
||||
"height": 102.81481481481477,
|
||||
"content": "**Use AI to Promote Your New YouTube Videos on X**\n\n🎬 Watch the [Setup Video Here](https://mrc.fm/ai2x)"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "583b7d5d-e5dc-4183-92ee-8135ce6095a8",
|
||||
"name": "Fetch Latest Videos",
|
||||
"type": "n8n-nodes-base.youTube",
|
||||
"position": [
|
||||
680,
|
||||
380
|
||||
],
|
||||
"parameters": {
|
||||
"limit": 1,
|
||||
"filters": {
|
||||
"channelId": "UC08Fah8EIryeOZRkjBRohcQ",
|
||||
"publishedAfter": "={{ new Date(new Date().getTime() - 30 * 60000).toISOString() }}"
|
||||
},
|
||||
"options": {},
|
||||
"resource": "video"
|
||||
},
|
||||
"credentials": {
|
||||
"youTubeOAuth2Api": {
|
||||
"id": "cVI5wEqeFEeJ81nk",
|
||||
"name": "YouTube account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "6e391007-10e2-4e67-9db6-e13d5d2bef11",
|
||||
"name": "Check Every 30 Min",
|
||||
"type": "n8n-nodes-base.scheduleTrigger",
|
||||
"position": [
|
||||
460,
|
||||
380
|
||||
],
|
||||
"parameters": {
|
||||
"rule": {
|
||||
"interval": [
|
||||
{
|
||||
"field": "minutes",
|
||||
"minutesInterval": 30
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
}
|
||||
],
|
||||
"active": false,
|
||||
"pinData": {},
|
||||
"settings": {
|
||||
"executionOrder": "v1"
|
||||
},
|
||||
"versionId": "a321d863-1a58-4100-bf8f-d2af08f11382",
|
||||
"connections": {
|
||||
"Check Every 30 Min": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Fetch Latest Videos",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Fetch Latest Videos": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Generate Post for X with ChatGPT",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Generate Post for X with ChatGPT": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Post to X",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
179
workflows/Schedule/1602_Schedule_Youtube_Create_Scheduled.json
Normal file
179
workflows/Schedule/1602_Schedule_Youtube_Create_Scheduled.json
Normal file
@@ -0,0 +1,179 @@
|
||||
{
|
||||
"id": "O9FXr8iXzhSgYKaL",
|
||||
"meta": {
|
||||
"instanceId": "d8bbc8c5a59875a8be9f3c7142d858bc46c4b8e36a11781a25e945fcf9a5767a"
|
||||
},
|
||||
"name": "Post New YouTube Videos to X",
|
||||
"tags": [],
|
||||
"nodes": [
|
||||
{
|
||||
"id": "576be5c4-1ed0-4d01-a980-cb2fc31e2223",
|
||||
"name": "Post to X",
|
||||
"type": "n8n-nodes-base.twitter",
|
||||
"position": [
|
||||
1280,
|
||||
380
|
||||
],
|
||||
"parameters": {
|
||||
"text": "={{ $json.message.content }}",
|
||||
"additionalFields": {}
|
||||
},
|
||||
"credentials": {
|
||||
"twitterOAuth2Api": {
|
||||
"id": "FjHOuF0APzoMqIjG",
|
||||
"name": "X account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "3b87cf2a-51d5-4589-9729-bb1fe3cfceca",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
620,
|
||||
254.76543209876536
|
||||
],
|
||||
"parameters": {
|
||||
"color": 3,
|
||||
"width": 221.82716049382665,
|
||||
"height": 308.7901234567902,
|
||||
"content": "\ud83c\udd94 Ensure you enter your YouTube Channel ID in the \"Channel ID\" field of this node. You can find your [Channel ID here](https://youtube.com/account_advanced)."
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "912e631c-aa43-4e02-9816-b35fe6e62dd8",
|
||||
"name": "Generate Post for X with ChatGPT",
|
||||
"type": "@n8n/n8n-nodes-langchain.openAi",
|
||||
"position": [
|
||||
900,
|
||||
380
|
||||
],
|
||||
"parameters": {
|
||||
"modelId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "gpt-3.5-turbo",
|
||||
"cachedResultName": "GPT-3.5-TURBO"
|
||||
},
|
||||
"options": {},
|
||||
"messages": {
|
||||
"values": [
|
||||
{
|
||||
"content": "=Write an engaging post about my latest YouTube video for X (Twitter) of no more than 140 characters in length. Link to the video at https://youtu.be/{{ $json.id.videoId }} use this title and description: {{ $json.snippet.title }} {{ $json.snippet.description }}"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"openAiApi": {
|
||||
"id": "UpdYKqoR9wsGBnaA",
|
||||
"name": "OpenAi account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.3
|
||||
},
|
||||
{
|
||||
"id": "841ee140-7e37-4e9c-8ab2-2a3ee941d255",
|
||||
"name": "Sticky Note1",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
360,
|
||||
254.5679012345679
|
||||
],
|
||||
"parameters": {
|
||||
"width": 244.34567901234558,
|
||||
"height": 102.81481481481477,
|
||||
"content": "**Use AI to Promote Your New YouTube Videos on X**\n\n\ud83c\udfac Watch the [Setup Video Here](https://mrc.fm/ai2x)"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "583b7d5d-e5dc-4183-92ee-8135ce6095a8",
|
||||
"name": "Fetch Latest Videos",
|
||||
"type": "n8n-nodes-base.youTube",
|
||||
"position": [
|
||||
680,
|
||||
380
|
||||
],
|
||||
"parameters": {
|
||||
"limit": 1,
|
||||
"filters": {
|
||||
"channelId": "UC08Fah8EIryeOZRkjBRohcQ",
|
||||
"publishedAfter": "={{ new Date(new Date().getTime() - 30 * 60000).toISOString() }}"
|
||||
},
|
||||
"options": {},
|
||||
"resource": "video"
|
||||
},
|
||||
"credentials": {
|
||||
"youTubeOAuth2Api": {
|
||||
"id": "cVI5wEqeFEeJ81nk",
|
||||
"name": "YouTube account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "6e391007-10e2-4e67-9db6-e13d5d2bef11",
|
||||
"name": "Check Every 30 Min",
|
||||
"type": "n8n-nodes-base.scheduleTrigger",
|
||||
"position": [
|
||||
460,
|
||||
380
|
||||
],
|
||||
"parameters": {
|
||||
"rule": {
|
||||
"interval": [
|
||||
{
|
||||
"field": "minutes",
|
||||
"minutesInterval": 30
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
}
|
||||
],
|
||||
"active": false,
|
||||
"pinData": {},
|
||||
"settings": {
|
||||
"executionOrder": "v1"
|
||||
},
|
||||
"versionId": "a321d863-1a58-4100-bf8f-d2af08f11382",
|
||||
"connections": {
|
||||
"Check Every 30 Min": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Fetch Latest Videos",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Fetch Latest Videos": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Generate Post for X with ChatGPT",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Generate Post for X with ChatGPT": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Post to X",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
156
workflows/Schedule/1607_Schedule_Notion_Sync_Scheduled.json
Normal file
156
workflows/Schedule/1607_Schedule_Notion_Sync_Scheduled.json
Normal file
@@ -0,0 +1,156 @@
|
||||
{
|
||||
"id": "PtPKIqDlz5xrrvHP",
|
||||
"meta": {
|
||||
"instanceId": "a2434c94d549548a685cca39cc4614698e94f527bcea84eefa363f1037ae14cd"
|
||||
},
|
||||
"name": "Sync Todoist tasks to Notion",
|
||||
"tags": [],
|
||||
"nodes": [
|
||||
{
|
||||
"id": "0122196d-e051-4154-9e39-3ddbfe26858f",
|
||||
"name": "On schedule",
|
||||
"type": "n8n-nodes-base.scheduleTrigger",
|
||||
"position": [
|
||||
640,
|
||||
280
|
||||
],
|
||||
"parameters": {
|
||||
"rule": {
|
||||
"interval": [
|
||||
{
|
||||
"field": "seconds"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.1
|
||||
},
|
||||
{
|
||||
"id": "1a15e1cc-cdd5-4a49-aa7a-a0779f858e69",
|
||||
"name": "Get all tasks with specific label",
|
||||
"type": "n8n-nodes-base.todoist",
|
||||
"position": [
|
||||
860,
|
||||
280
|
||||
],
|
||||
"parameters": {
|
||||
"filters": {
|
||||
"labelId": "send-to-notion"
|
||||
},
|
||||
"operation": "getAll",
|
||||
"authentication": "oAuth2"
|
||||
},
|
||||
"credentials": {
|
||||
"todoistOAuth2Api": {
|
||||
"id": "E6PTOAR6ysBeLwCB",
|
||||
"name": "Todoist account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "35b13f4a-da38-4d63-9fbf-7c36c97cbc11",
|
||||
"name": "Add to Notion database",
|
||||
"type": "n8n-nodes-base.notion",
|
||||
"position": [
|
||||
1080,
|
||||
280
|
||||
],
|
||||
"parameters": {
|
||||
"title": "={{ $json.content }}",
|
||||
"options": {},
|
||||
"resource": "databasePage",
|
||||
"databaseId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "5a98bd24-dd2b-41a3-b7e2-3b8a9ee21d41",
|
||||
"cachedResultUrl": "https://www.notion.so/5a98bd24dd2b41a3b7e23b8a9ee21d41",
|
||||
"cachedResultName": "My Todoist Tasks"
|
||||
},
|
||||
"propertiesUi": {
|
||||
"propertyValues": [
|
||||
{
|
||||
"key": "Todoist ID|number",
|
||||
"numberValue": "={{ parseInt($json.id) }}"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"notionApi": {
|
||||
"id": "5hfWkRpcWCS4KGk5",
|
||||
"name": "n8n-demo-3"
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.1
|
||||
},
|
||||
{
|
||||
"id": "f3144751-28b0-48e1-9331-f25f55a5ddf6",
|
||||
"name": "Replace label on task",
|
||||
"type": "n8n-nodes-base.todoist",
|
||||
"position": [
|
||||
1300,
|
||||
280
|
||||
],
|
||||
"parameters": {
|
||||
"taskId": "={{ $('Get all tasks with specific label').item.json.id }}",
|
||||
"operation": "update",
|
||||
"updateFields": {
|
||||
"labels": [
|
||||
"sent"
|
||||
],
|
||||
"description": "=Notion Link: {{ $json.url }}\n\n{{ $('Get all tasks with specific label').item.json.description }}"
|
||||
},
|
||||
"authentication": "oAuth2"
|
||||
},
|
||||
"credentials": {
|
||||
"todoistOAuth2Api": {
|
||||
"id": "E6PTOAR6ysBeLwCB",
|
||||
"name": "Todoist account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 2
|
||||
}
|
||||
],
|
||||
"active": false,
|
||||
"pinData": {},
|
||||
"settings": {
|
||||
"executionOrder": "v1"
|
||||
},
|
||||
"versionId": "14cd25c2-0a7b-45d0-b81e-173052ebdde7",
|
||||
"connections": {
|
||||
"On schedule": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Get all tasks with specific label",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Add to Notion database": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Replace label on task",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Get all tasks with specific label": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Add to Notion database",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
377
workflows/Schedule/1614_Schedule_HTTP_Send_Webhook.json
Normal file
377
workflows/Schedule/1614_Schedule_HTTP_Send_Webhook.json
Normal file
@@ -0,0 +1,377 @@
|
||||
{
|
||||
"id": "Qj1307oyBx1hZJy5",
|
||||
"meta": {
|
||||
"instanceId": "1abe0e4c2be794795d12bf72aa530a426a6f87aabad209ed6619bcaf0f666fb0",
|
||||
"templateCredsSetupCompleted": true
|
||||
},
|
||||
"name": "SSL Expiry Alert",
|
||||
"tags": [
|
||||
{
|
||||
"id": "aqlZb2qfWiaT4Xr5",
|
||||
"name": "IT Ops",
|
||||
"createdAt": "2025-01-03T12:20:11.917Z",
|
||||
"updatedAt": "2025-01-03T12:20:11.917Z"
|
||||
},
|
||||
{
|
||||
"id": "zJaZorWWcGpTp35U",
|
||||
"name": "DevOps",
|
||||
"createdAt": "2025-01-03T12:19:34.273Z",
|
||||
"updatedAt": "2025-01-03T12:19:34.273Z"
|
||||
}
|
||||
],
|
||||
"nodes": [
|
||||
{
|
||||
"id": "260b66a2-0841-4dc7-9666-acbc9317fd91",
|
||||
"name": "URLs to Monitor",
|
||||
"type": "n8n-nodes-base.googleSheets",
|
||||
"position": [
|
||||
1120,
|
||||
-120
|
||||
],
|
||||
"parameters": {
|
||||
"columns": {
|
||||
"value": {
|
||||
"URL": "={{ $json.result.host }}",
|
||||
"KnownExpiryDate": "={{ $json.result.valid_till }}"
|
||||
},
|
||||
"schema": [
|
||||
{
|
||||
"id": "Website ",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": true,
|
||||
"required": false,
|
||||
"displayName": "Website ",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "URL",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": false,
|
||||
"required": false,
|
||||
"displayName": "URL",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "KnownExpiryDate",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "KnownExpiryDate",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "row_number",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": true,
|
||||
"readOnly": true,
|
||||
"required": false,
|
||||
"displayName": "row_number",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
}
|
||||
],
|
||||
"mappingMode": "defineBelow",
|
||||
"matchingColumns": [
|
||||
"URL"
|
||||
]
|
||||
},
|
||||
"options": {},
|
||||
"operation": "update",
|
||||
"sheetName": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "gid=0",
|
||||
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1VfsX4cW2oKQ3ZHUjBvGk--d1X7509c6__b6gPvA5VpI/edit#gid=0",
|
||||
"cachedResultName": "URLs to Check"
|
||||
},
|
||||
"documentId": {
|
||||
"__rl": true,
|
||||
"mode": "url",
|
||||
"value": "https://docs.google.com/spreadsheets/d/1VfsX4cW2oKQ3ZHUjBvGk--d1X7509c6__b6gPvA5VpI/edit?gid=0#gid=0"
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"googleSheetsOAuth2Api": {
|
||||
"id": "I7vwmkFVGPrI7Os1",
|
||||
"name": "Vishal - Google Sheets"
|
||||
}
|
||||
},
|
||||
"typeVersion": 4.5
|
||||
},
|
||||
{
|
||||
"id": "a2922f1b-9d29-4b66-9560-44207f3e14d2",
|
||||
"name": "Weekly Trigger",
|
||||
"type": "n8n-nodes-base.scheduleTrigger",
|
||||
"position": [
|
||||
160,
|
||||
140
|
||||
],
|
||||
"parameters": {
|
||||
"rule": {
|
||||
"interval": [
|
||||
{
|
||||
"field": "weeks",
|
||||
"triggerAtDay": [
|
||||
1
|
||||
],
|
||||
"triggerAtHour": 8
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
},
|
||||
{
|
||||
"id": "005564e9-5ecb-4ee9-aca0-69a660656b09",
|
||||
"name": "Fetch URLs",
|
||||
"type": "n8n-nodes-base.googleSheets",
|
||||
"position": [
|
||||
420,
|
||||
140
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"sheetName": {
|
||||
"__rl": true,
|
||||
"mode": "url",
|
||||
"value": "https://docs.google.com/spreadsheets/d/1pnUfIkD90MUG99Fp0vRoAB-w-GPSAwRZw0-JsNl-h3s/edit?gid=0#gid=0"
|
||||
},
|
||||
"documentId": {
|
||||
"__rl": true,
|
||||
"mode": "url",
|
||||
"value": "https://docs.google.com/spreadsheets/d/1pnUfIkD90MUG99Fp0vRoAB-w-GPSAwRZw0-JsNl-h3s/edit?usp=sharing"
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"googleSheetsOAuth2Api": {
|
||||
"id": "I7vwmkFVGPrI7Os1",
|
||||
"name": "Vishal - Google Sheets"
|
||||
}
|
||||
},
|
||||
"typeVersion": 4.5
|
||||
},
|
||||
{
|
||||
"id": "943c561c-ca89-461c-a6fb-c3011baaf81a",
|
||||
"name": "Check SSL",
|
||||
"type": "n8n-nodes-base.httpRequest",
|
||||
"position": [
|
||||
680,
|
||||
140
|
||||
],
|
||||
"parameters": {
|
||||
"url": "=https://ssl-checker.io/api/v1/check/{{ $json[\"URL\"].replace(/^https?:\\/\\//, \"\").replace(/\\/$/, \"\") }}",
|
||||
"options": {}
|
||||
},
|
||||
"typeVersion": 4.2
|
||||
},
|
||||
{
|
||||
"id": "911fa691-decf-4572-a46e-d8644d3b2a35",
|
||||
"name": "Expiry Alert",
|
||||
"type": "n8n-nodes-base.if",
|
||||
"position": [
|
||||
1120,
|
||||
220
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"conditions": {
|
||||
"options": {
|
||||
"version": 2,
|
||||
"leftValue": "",
|
||||
"caseSensitive": true,
|
||||
"typeValidation": "strict"
|
||||
},
|
||||
"combinator": "and",
|
||||
"conditions": [
|
||||
{
|
||||
"id": "ee6e2ce8-569a-4f1f-91b5-2c55f605a16b",
|
||||
"operator": {
|
||||
"type": "number",
|
||||
"operation": "lte"
|
||||
},
|
||||
"leftValue": "={{ $json.result.days_left }}",
|
||||
"rightValue": 7
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.2
|
||||
},
|
||||
{
|
||||
"id": "8b59ebbb-0a87-40c2-be79-cc38431ebdbd",
|
||||
"name": "Send Alert Email",
|
||||
"type": "n8n-nodes-base.gmail",
|
||||
"position": [
|
||||
1440,
|
||||
240
|
||||
],
|
||||
"webhookId": "cd6b6b20-e619-4526-aa69-64754e3d9035",
|
||||
"parameters": {
|
||||
"sendTo": "phanineeraj@quantana.com",
|
||||
"message": "=SSL Expiry - {{ $json.result.days_left }} Days Left - {{ $json.result.host }}",
|
||||
"options": {
|
||||
"appendAttribution": false
|
||||
},
|
||||
"subject": "=SSL Expiry - {{ $json.result.days_left }} Days Left - {{ $json.result.host }}",
|
||||
"emailType": "text"
|
||||
},
|
||||
"credentials": {
|
||||
"gmailOAuth2": {
|
||||
"id": "brYm5tKb5se1DyUw",
|
||||
"name": "Sabila Gmail"
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.1
|
||||
},
|
||||
{
|
||||
"id": "32eebd68-f0e6-467c-bf65-f2d513a60666",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
100,
|
||||
0
|
||||
],
|
||||
"parameters": {
|
||||
"height": 329.860465116279,
|
||||
"content": "Triggers the workflow once a week."
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "3c0ed796-94a4-488c-9cb7-e3d46db63815",
|
||||
"name": "Sticky Note1",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
360,
|
||||
0
|
||||
],
|
||||
"parameters": {
|
||||
"height": 327.0154373927959,
|
||||
"content": "Pulls the list of URLs to monitor from the Google Sheet. Ensure you clone the Google Sheet worksheet and update this node with its URL."
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "fdb2077c-7d6a-4255-b499-e90513a0de1d",
|
||||
"name": "Sticky Note2",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
620,
|
||||
0
|
||||
],
|
||||
"parameters": {
|
||||
"height": 323.89365351629556,
|
||||
"content": "Uses SSL-Checker.io to verify the SSL certificate of each URL. Fetches details like the host, validity period, and days remaining until expiry."
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "5cc1644b-6abc-4299-8a25-9507b09d863f",
|
||||
"name": "Sticky Note3",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
1060,
|
||||
-260
|
||||
],
|
||||
"parameters": {
|
||||
"height": 344.1852487135509,
|
||||
"content": "Updates the Google Sheet with SSL details, including the expiry date and certificate status."
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "1001a69e-8efc-4a8b-a97b-a1bc021ada35",
|
||||
"name": "Sticky Note4",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
1060,
|
||||
140
|
||||
],
|
||||
"parameters": {
|
||||
"height": 344.1852487135509,
|
||||
"content": "Checks if any SSL certificate is set to expire in 7 days or less."
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "ad9e359e-3d95-4e8c-97b0-d06475bb8883",
|
||||
"name": "Sticky Note5",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
1360,
|
||||
140
|
||||
],
|
||||
"parameters": {
|
||||
"height": 344.1852487135509,
|
||||
"content": "Sends an email alert if an SSL certificate is nearing expiry, including the host and days remaining."
|
||||
},
|
||||
"typeVersion": 1
|
||||
}
|
||||
],
|
||||
"active": false,
|
||||
"pinData": {},
|
||||
"settings": {
|
||||
"timezone": "Asia/Kolkata",
|
||||
"callerPolicy": "workflowsFromSameOwner",
|
||||
"errorWorkflow": "rL70w0U4LV2l9a5b",
|
||||
"executionOrder": "v1"
|
||||
},
|
||||
"versionId": "f60d6e6e-dace-497a-b58b-113993ec36e5",
|
||||
"connections": {
|
||||
"Check SSL": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "URLs to Monitor",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
},
|
||||
{
|
||||
"node": "Expiry Alert",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Fetch URLs": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Check SSL",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Expiry Alert": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Send Alert Email",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Weekly Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Fetch URLs",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,312 @@
|
||||
{
|
||||
"id": "RJ4PaYq0JBr29KJm",
|
||||
"meta": {
|
||||
"instanceId": "e3de7ac3dee198637aeea8f82bd3b7f55121370bf7582aeef633e085d2f68ac8"
|
||||
},
|
||||
"name": "Reschedule overdue Asana tasks and clean up completed tasks",
|
||||
"tags": [
|
||||
{
|
||||
"id": "oMfA3lEfbqs7MU2P",
|
||||
"name": "Template",
|
||||
"createdAt": "2025-01-06T20:33:18.396Z",
|
||||
"updatedAt": "2025-01-06T20:33:18.396Z"
|
||||
}
|
||||
],
|
||||
"nodes": [
|
||||
{
|
||||
"id": "9262720e-2beb-4426-a472-3d7bf8bc28af",
|
||||
"name": "Everyday at 7am",
|
||||
"type": "n8n-nodes-base.scheduleTrigger",
|
||||
"position": [
|
||||
80,
|
||||
-520
|
||||
],
|
||||
"parameters": {
|
||||
"rule": {
|
||||
"interval": [
|
||||
{
|
||||
"triggerAtHour": 7
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
},
|
||||
{
|
||||
"id": "0d074451-5d61-4ed4-86a8-f6cdf002e84b",
|
||||
"name": "Get user tasks",
|
||||
"type": "n8n-nodes-base.asana",
|
||||
"position": [
|
||||
320,
|
||||
-520
|
||||
],
|
||||
"parameters": {
|
||||
"filters": {
|
||||
"assignee": "1201727447190193",
|
||||
"workspace": "1201727656813934",
|
||||
"completed_since": "={{ DateTime.now().format('yyyy-MM-dd') }}"
|
||||
},
|
||||
"operation": "getAll",
|
||||
"returnAll": true
|
||||
},
|
||||
"credentials": {
|
||||
"asanaApi": {
|
||||
"id": "u7fFpY0SmMcpBCdn",
|
||||
"name": "Asana account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "14939268-9bda-4fc1-9fef-aa6a74c2365a",
|
||||
"name": "Get task infos",
|
||||
"type": "n8n-nodes-base.asana",
|
||||
"position": [
|
||||
540,
|
||||
-520
|
||||
],
|
||||
"parameters": {
|
||||
"id": "={{ $json.gid }}",
|
||||
"operation": "get"
|
||||
},
|
||||
"credentials": {
|
||||
"asanaApi": {
|
||||
"id": "u7fFpY0SmMcpBCdn",
|
||||
"name": "Asana account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "e7d9a37c-66b7-46b9-b228-7372cb0d7b09",
|
||||
"name": "Task is open?",
|
||||
"type": "n8n-nodes-base.if",
|
||||
"position": [
|
||||
780,
|
||||
-520
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"conditions": {
|
||||
"options": {
|
||||
"version": 2,
|
||||
"leftValue": "",
|
||||
"caseSensitive": true,
|
||||
"typeValidation": "strict"
|
||||
},
|
||||
"combinator": "and",
|
||||
"conditions": [
|
||||
{
|
||||
"id": "145d9367-7662-4ed9-8195-bf9b35c78d6b",
|
||||
"operator": {
|
||||
"type": "boolean",
|
||||
"operation": "false",
|
||||
"singleValue": true
|
||||
},
|
||||
"leftValue": "={{ $json.completed }}",
|
||||
"rightValue": "false"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.2
|
||||
},
|
||||
{
|
||||
"id": "11ae0bbb-8d76-4623-9a24-2c2a36600dd3",
|
||||
"name": "Due date in the past?",
|
||||
"type": "n8n-nodes-base.if",
|
||||
"position": [
|
||||
1020,
|
||||
-640
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"conditions": {
|
||||
"options": {
|
||||
"version": 2,
|
||||
"leftValue": "",
|
||||
"caseSensitive": true,
|
||||
"typeValidation": "loose"
|
||||
},
|
||||
"combinator": "and",
|
||||
"conditions": [
|
||||
{
|
||||
"id": "dbecabb3-8075-4cc0-94af-b678c8af8f66",
|
||||
"operator": {
|
||||
"type": "number",
|
||||
"operation": "lt"
|
||||
},
|
||||
"leftValue": "={{ $json.due_on.replaceAll(\"-\",\"\") }}",
|
||||
"rightValue": "={{ DateTime.now().format('yyyyMMdd') }}"
|
||||
}
|
||||
]
|
||||
},
|
||||
"looseTypeValidation": true
|
||||
},
|
||||
"typeVersion": 2.2
|
||||
},
|
||||
{
|
||||
"id": "282d79c7-e74a-4249-ad37-b4d81655a206",
|
||||
"name": "Set due date to Today",
|
||||
"type": "n8n-nodes-base.asana",
|
||||
"position": [
|
||||
1280,
|
||||
-680
|
||||
],
|
||||
"parameters": {
|
||||
"id": "={{ $json.gid }}",
|
||||
"operation": "update",
|
||||
"otherProperties": {
|
||||
"due_on": "={{ DateTime.now().format('yyyy-MM-dd') }}"
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"asanaApi": {
|
||||
"id": "u7fFpY0SmMcpBCdn",
|
||||
"name": "Asana account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "7cc18243-d3d4-4624-a906-a1617e411b0c",
|
||||
"name": "Clean up task",
|
||||
"type": "n8n-nodes-base.asana",
|
||||
"position": [
|
||||
1020,
|
||||
-440
|
||||
],
|
||||
"parameters": {
|
||||
"id": "={{ $json.gid }}",
|
||||
"operation": "delete"
|
||||
},
|
||||
"credentials": {
|
||||
"asanaApi": {
|
||||
"id": "u7fFpY0SmMcpBCdn",
|
||||
"name": "Asana account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "f4aafa1f-8c5b-4fd1-9aca-fd096508dbfb",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
40,
|
||||
-800
|
||||
],
|
||||
"parameters": {
|
||||
"color": 5,
|
||||
"width": 640,
|
||||
"height": 240,
|
||||
"content": "### ⚙️ Set Up \n\n1. Add your **Asana** credentials\n2. Schedule the workflow to run at desired intervals (e.g., daily or weekly).\n3. Select your **Workspace Name** and your **Assignee Name** (user) in the **Get user tasks** node\n4. *(Optional) Tailor filtering conditions to match your preferred due-date rules and removal criteria.*\n5. **Activate the workflow** and watch your Asana workspace stay up to date and clutter-free."
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "e4fcbdee-5dd0-40dc-b1ef-f7b8ce00dd03",
|
||||
"name": "Sticky Note1",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
60,
|
||||
-360
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 160,
|
||||
"height": 100,
|
||||
"content": "👆 \nUpdate the **Scheduler** here"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "195f467d-1124-4216-ab0e-048c6a9fc752",
|
||||
"name": "Sticky Note2",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
280,
|
||||
-360
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 200,
|
||||
"height": 100,
|
||||
"content": "👆 \nSelect your **Workspace Name** & **Assignee Name** here"
|
||||
},
|
||||
"typeVersion": 1
|
||||
}
|
||||
],
|
||||
"active": false,
|
||||
"pinData": {},
|
||||
"settings": {
|
||||
"timezone": "Europe/Paris",
|
||||
"callerPolicy": "workflowsFromSameOwner",
|
||||
"executionOrder": "v1"
|
||||
},
|
||||
"versionId": "fdc51229-75f4-4489-a7f7-1f36a35d43ac",
|
||||
"connections": {
|
||||
"Task is open?": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Due date in the past?",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"node": "Clean up task",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Get task infos": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Task is open?",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Get user tasks": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Get task infos",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Everyday at 7am": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Get user tasks",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Due date in the past?": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Set due date to Today",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
795
workflows/Schedule/1697_Schedule_HTTP_Monitor_Scheduled.json
Normal file
795
workflows/Schedule/1697_Schedule_HTTP_Monitor_Scheduled.json
Normal file
@@ -0,0 +1,795 @@
|
||||
{
|
||||
"id": "TqnC0nyAa0LRfYBX",
|
||||
"meta": {
|
||||
"instanceId": "c2ff056313a72210aa803da7c5191a260dbed0dab6ae2b8e39a8dd21701bf0ab",
|
||||
"templateCredsSetupCompleted": true
|
||||
},
|
||||
"name": "Amazon Product Price Tracker",
|
||||
"tags": [],
|
||||
"nodes": [
|
||||
{
|
||||
"id": "cc15c8e6-53f9-4dd1-895f-34a72af4506f",
|
||||
"name": "Products to Monitor",
|
||||
"type": "n8n-nodes-base.googleSheets",
|
||||
"position": [
|
||||
40,
|
||||
-220
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"sheetName": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "gid=0",
|
||||
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1hRv-TBXrpN6rkIU65WorttNHt-IPWas_An0sF4Of39U/edit#gid=0",
|
||||
"cachedResultName": "Products to Monitor"
|
||||
},
|
||||
"documentId": {
|
||||
"__rl": true,
|
||||
"mode": "url",
|
||||
"value": "={{ $json.spreadsheet_url }}"
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"googleSheetsOAuth2Api": {
|
||||
"id": "xWJJNb7VGUUp4vzV",
|
||||
"name": "Google Sheets account 2"
|
||||
}
|
||||
},
|
||||
"typeVersion": 4.5
|
||||
},
|
||||
{
|
||||
"id": "4ec34045-ea02-40bc-a243-b50c804ab947",
|
||||
"name": "Loop Over Items",
|
||||
"type": "n8n-nodes-base.splitInBatches",
|
||||
"position": [
|
||||
260,
|
||||
-220
|
||||
],
|
||||
"parameters": {
|
||||
"options": {}
|
||||
},
|
||||
"typeVersion": 3
|
||||
},
|
||||
{
|
||||
"id": "d5cdb7eb-144f-477b-83d6-85be5cd2eb79",
|
||||
"name": "Scrapeops - Amazon Product",
|
||||
"type": "n8n-nodes-base.httpRequest",
|
||||
"position": [
|
||||
720,
|
||||
-80
|
||||
],
|
||||
"parameters": {
|
||||
"url": "https://proxy.scrapeops.io/v1/structured-data/amazon/product",
|
||||
"options": {},
|
||||
"sendQuery": true,
|
||||
"queryParameters": {
|
||||
"parameters": [
|
||||
{
|
||||
"name": "asin",
|
||||
"value": "={{ $('Loop Over Items').item.json.asin }}"
|
||||
},
|
||||
{
|
||||
"name": "api_key",
|
||||
"value": "={{ $('Setup').item.json.scrapeops_apikey }}"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 4.2
|
||||
},
|
||||
{
|
||||
"id": "32134749-17e9-456a-9814-2e03b34ce37b",
|
||||
"name": "Fields",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
940,
|
||||
-80
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"assignments": {
|
||||
"assignments": [
|
||||
{
|
||||
"id": "ae829540-06b7-4ea8-a5f8-d2750b02c530",
|
||||
"name": "name",
|
||||
"type": "string",
|
||||
"value": "={{ $json.data.name }}"
|
||||
},
|
||||
{
|
||||
"id": "4dec41ce-3522-481b-985f-455c858702e0",
|
||||
"name": "pricing",
|
||||
"type": "number",
|
||||
"value": "={{ parseFloat(($json.data.pricing || \"\").replace(/[^\\d.-]/g, \"\")) || 0 }}"
|
||||
},
|
||||
{
|
||||
"id": "ebb64d89-e9b2-4384-9778-fce8aa9eb3be",
|
||||
"name": "product_url",
|
||||
"type": "string",
|
||||
"value": "=https://www.amazon.com/dp/{{ $('Loop Over Items').item.json.asin }}?th=1&psc=1"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 3.4
|
||||
},
|
||||
{
|
||||
"id": "954afd09-609f-4ed1-94a0-6d6431b8a9e6",
|
||||
"name": "Last Price",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
480,
|
||||
-80
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"assignments": {
|
||||
"assignments": [
|
||||
{
|
||||
"id": "db85d431-5631-4629-99f8-426ec3d7ecc7",
|
||||
"name": "last_pricing",
|
||||
"type": "number",
|
||||
"value": "={{ $json.pricing }}"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 3.4
|
||||
},
|
||||
{
|
||||
"id": "695673df-6bf7-4e64-898c-f143c77c8ff0",
|
||||
"name": "Price Change",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
1420,
|
||||
-180
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"assignments": {
|
||||
"assignments": [
|
||||
{
|
||||
"id": "4ef9bde2-62d3-4d6a-9759-4ae6c13db127",
|
||||
"name": "price_change",
|
||||
"type": "number",
|
||||
"value": "={{ \n $('Last Price').item.json.last_pricing !== \"\" && $('Last Price').item.json.last_pricing !== undefined ? \n ($json.pricing - $('Last Price').item.json.last_pricing).toFixed(2) : \n 0 \n}}"
|
||||
},
|
||||
{
|
||||
"id": "02e5a84b-76bf-4511-a78d-c725882a64dc",
|
||||
"name": "percent_change",
|
||||
"type": "number",
|
||||
"value": "={{ \n $('Last Price').item.json.last_pricing !== \"\" && $('Last Price').item.json.last_pricing !== undefined && parseFloat($('Last Price').item.json.last_pricing) !== 0 ? \n ((($json.pricing - $('Last Price').item.json.last_pricing) / $('Last Price').item.json.last_pricing)).toFixed(2) : \n 0 \n}}"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 3.4
|
||||
},
|
||||
{
|
||||
"id": "ab56b334-c4a7-45f7-95d0-9c7e990c21d7",
|
||||
"name": "Alert Status",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
1600,
|
||||
-180
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"assignments": {
|
||||
"assignments": [
|
||||
{
|
||||
"id": "fd261f8a-8417-4fdb-95de-bd71768300e6",
|
||||
"name": "alert_status",
|
||||
"type": "string",
|
||||
"value": "={{ \n $json.percent_change > $('Loop Over Items').item.json.alert_threshold_high ? \n \"High\" : \n ($json.percent_change < $('Loop Over Items').item.json.alert_threshold_low ? \n \"Low\" : \n \"\")\n}}"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 3.4
|
||||
},
|
||||
{
|
||||
"id": "54f3ef24-58bc-4eba-b341-b14ab9f66d68",
|
||||
"name": "Insert - Price History",
|
||||
"type": "n8n-nodes-base.googleSheets",
|
||||
"position": [
|
||||
2020,
|
||||
-180
|
||||
],
|
||||
"parameters": {
|
||||
"columns": {
|
||||
"value": {
|
||||
"asin": "={{ $('Loop Over Items').item.json.asin }}",
|
||||
"pricing": "={{ $('Scrapeops - Amazon Product').item.json.data.pricing.replace(/[^\\d.]/g, '') }}",
|
||||
"timestamp": "={{$now.format(\"MM/dd/yyyy HH:mm:ss\")}}"
|
||||
},
|
||||
"schema": [
|
||||
{
|
||||
"id": "asin",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": false,
|
||||
"required": false,
|
||||
"displayName": "asin",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "pricing",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": false,
|
||||
"required": false,
|
||||
"displayName": "pricing",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "timestamp",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": false,
|
||||
"required": false,
|
||||
"displayName": "timestamp",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
}
|
||||
],
|
||||
"mappingMode": "defineBelow",
|
||||
"matchingColumns": [],
|
||||
"attemptToConvertTypes": false,
|
||||
"convertFieldsToString": false
|
||||
},
|
||||
"options": {},
|
||||
"operation": "append",
|
||||
"sheetName": {
|
||||
"__rl": true,
|
||||
"mode": "name",
|
||||
"value": "Price History"
|
||||
},
|
||||
"documentId": {
|
||||
"__rl": true,
|
||||
"mode": "url",
|
||||
"value": "={{ $('Setup').item.json.spreadsheet_url }}"
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"googleSheetsOAuth2Api": {
|
||||
"id": "xWJJNb7VGUUp4vzV",
|
||||
"name": "Google Sheets account 2"
|
||||
}
|
||||
},
|
||||
"typeVersion": 4.5
|
||||
},
|
||||
{
|
||||
"id": "b161e44b-1fbf-40f1-a485-a7b132f42efc",
|
||||
"name": "Update - Products to Monitor",
|
||||
"type": "n8n-nodes-base.googleSheets",
|
||||
"position": [
|
||||
1800,
|
||||
-180
|
||||
],
|
||||
"parameters": {
|
||||
"columns": {
|
||||
"value": {
|
||||
"asin": "={{ $('Loop Over Items').item.json.asin }}",
|
||||
"name": "={{ $('Scrapeops - Amazon Product').item.json.data.name }}",
|
||||
"pricing": "={{ $('Scrapeops - Amazon Product').item.json.data.pricing.replace(/[^\\d.]/g, '') }}",
|
||||
"product_url": "=https://www.amazon.com/dp/{{ $('Loop Over Items').item.json.asin }}?th=1&psc=1",
|
||||
"alert_status": "={{ $json.alert_status }}",
|
||||
"last_updated": "={{$now.format(\"MM/dd/yyyy HH:mm:ss\")}}",
|
||||
"price_change": "={{ $('Price Change').item.json.price_change }}",
|
||||
"average_rating": "={{ $('Scrapeops - Amazon Product').item.json.data.average_rating }}",
|
||||
"percent_change": "={{ $('Price Change').item.json.percent_change }}"
|
||||
},
|
||||
"schema": [
|
||||
{
|
||||
"id": "asin",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": false,
|
||||
"required": false,
|
||||
"displayName": "asin",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "alert_threshold_low",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": true,
|
||||
"required": false,
|
||||
"displayName": "alert_threshold_low",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "alert_threshold_high",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": true,
|
||||
"required": false,
|
||||
"displayName": "alert_threshold_high",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "name",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "name",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "average_rating",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "average_rating",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "product_url",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "product_url",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "pricing",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "pricing",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "price_change",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": false,
|
||||
"required": false,
|
||||
"displayName": "price_change",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "percent_change",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": false,
|
||||
"required": false,
|
||||
"displayName": "percent_change",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "alert_status",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": false,
|
||||
"required": false,
|
||||
"displayName": "alert_status",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "last_updated",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": false,
|
||||
"required": false,
|
||||
"displayName": "last_updated",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "row_number",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": true,
|
||||
"readOnly": true,
|
||||
"required": false,
|
||||
"displayName": "row_number",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
}
|
||||
],
|
||||
"mappingMode": "defineBelow",
|
||||
"matchingColumns": [
|
||||
"asin"
|
||||
],
|
||||
"attemptToConvertTypes": false,
|
||||
"convertFieldsToString": false
|
||||
},
|
||||
"options": {},
|
||||
"operation": "update",
|
||||
"sheetName": {
|
||||
"__rl": true,
|
||||
"mode": "name",
|
||||
"value": "Products to Monitor"
|
||||
},
|
||||
"documentId": {
|
||||
"__rl": true,
|
||||
"mode": "url",
|
||||
"value": "={{ $('Setup').item.json.spreadsheet_url }}"
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"googleSheetsOAuth2Api": {
|
||||
"id": "xWJJNb7VGUUp4vzV",
|
||||
"name": "Google Sheets account 2"
|
||||
}
|
||||
},
|
||||
"typeVersion": 4.5
|
||||
},
|
||||
{
|
||||
"id": "62372099-de2a-4dcf-afdf-e9d9697a7a95",
|
||||
"name": "Send Email",
|
||||
"type": "n8n-nodes-base.emailSend",
|
||||
"position": [
|
||||
2560,
|
||||
120
|
||||
],
|
||||
"webhookId": "c0eb28fe-1c74-4692-9701-3790014c8951",
|
||||
"parameters": {
|
||||
"html": "=<!DOCTYPE html>\n<html>\n<head>\n <style>\n body { font-family: Arial, sans-serif; line-height: 1.6; color: #333; }\n .container { max-width: 600px; margin: 0 auto; padding: 20px; background: #fff; }\n .header { text-align: center; padding-bottom: 15px; border-bottom: 1px solid #eee; }\n .price-up { color: #d64541; font-weight: bold; }\n .price-down { color: #27ae60; font-weight: bold; }\n .price-details { background: #f5f5f5; padding: 15px; margin: 15px 0; border-radius: 5px; }\n .button {\n display: block;\n background-color: #2c3e50;\n color: white !important; \n text-decoration: none;\n text-align: center;\n padding: 10px;\n border-radius: 4px;\n margin: 20px auto;\n width: 200px;\n font-weight: bold;\n }\n .button:visited {\n color: white !important;\n background-color: #2c3e50 !important;\n text-decoration: none !important;\n }\n .button:hover {\n background-color: #34495e !important;\n text-decoration: none !important;\n }\n .footer { font-size: 12px; color: #999; text-align: center; margin-top: 20px; border-top: 1px solid #eee; padding-top: 15px; }\n </style>\n</head>\n<body>\n <div class=\"container\">\n <div class=\"header\">\n <h1>Price Alert</h1>\n <p>We've detected a significant price change for an item you're tracking</p>\n </div>\n\n <div class=\"price-details\">\n <h2 class=\"{{ $('Alert Status').item.json.alert_status === 'High' ? 'price-up' : 'price-down' }}\">\n {{ $('Alert Status').item.json.alert_status === 'High' ? 'Price Increased by ' : 'Price Decreased by ' }} \n {{ (Math.abs($('Update - Products to Monitor').item.json.percent_change * 100).toFixed(2)) }}%\n </h2>\n \n <h3>{{ $('Update - Products to Monitor').item.json.name }}</h3>\n <p>ASIN: {{ $json.asin }}</p>\n \n <table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n <tr>\n <th align=\"left\">Previous Price</th>\n <th align=\"left\">Current Price</th>\n <th align=\"left\">Difference</th>\n </tr>\n <tr>\n <td>${{ $('Last Price').item.json.last_pricing.toFixed(2) }}</td>\n <td>${{ $('Update - Products to Monitor').item.json.pricing }}</td>\n <td>{{ \n $('Update - Products to Monitor').item.json.price_change >= 0 \n ? '$' + $('Update - Products to Monitor').item.json.price_change.toFixed(2) \n : '- $' + Math.abs($('Update - Products to Monitor').item.json.price_change).toFixed(2) \n }}</td>\n </tr>\n </table>\n \n <p>Last updated: {{ $('Insert - Price History').item.json.timestamp }}</p>\n </div>\n\n <a href=\"{{ $('Update - Products to Monitor').item.json.product_url }}\" class=\"button\">View Product</a>\n\n <div class=\"footer\">\n <p>This alert was generated by Amazon Price Tracker, your automated price monitoring system.</p>\n <p>© 2025 ScrapeOps. All rights reserved.</p>\n </div>\n </div>\n</body>\n</html>",
|
||||
"options": {
|
||||
"appendAttribution": false
|
||||
},
|
||||
"subject": "=Amazon Price Tracker Alert: {{ $('Update - Products to Monitor').item.json.name }} Price Change Detected",
|
||||
"toEmail": "={{ $('Setup').item.json.to_email }}",
|
||||
"fromEmail": "={{ $('Setup').item.json.from_email }}"
|
||||
},
|
||||
"credentials": {
|
||||
"smtp": {
|
||||
"id": "k3bEE2wVXvRZ42hg",
|
||||
"name": "SMTP account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.1
|
||||
},
|
||||
{
|
||||
"id": "834dd1f0-d651-48b4-8765-360d8d5dcf27",
|
||||
"name": "Check Valid Price",
|
||||
"type": "n8n-nodes-base.if",
|
||||
"position": [
|
||||
1160,
|
||||
-80
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"conditions": {
|
||||
"options": {
|
||||
"version": 2,
|
||||
"leftValue": "",
|
||||
"caseSensitive": true,
|
||||
"typeValidation": "strict"
|
||||
},
|
||||
"combinator": "and",
|
||||
"conditions": [
|
||||
{
|
||||
"id": "f9d540d5-bc09-4970-904d-34977192b771",
|
||||
"operator": {
|
||||
"type": "number",
|
||||
"operation": "gt"
|
||||
},
|
||||
"leftValue": "={{ $json.pricing }}",
|
||||
"rightValue": 0
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.2
|
||||
},
|
||||
{
|
||||
"id": "163385ad-6f41-4144-bf2a-6ba2e2425ae2",
|
||||
"name": "Alert Decision",
|
||||
"type": "n8n-nodes-base.if",
|
||||
"position": [
|
||||
2240,
|
||||
-40
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"conditions": {
|
||||
"options": {
|
||||
"version": 2,
|
||||
"leftValue": "",
|
||||
"caseSensitive": true,
|
||||
"typeValidation": "strict"
|
||||
},
|
||||
"combinator": "and",
|
||||
"conditions": [
|
||||
{
|
||||
"id": "6b1f16aa-dd42-4889-9c07-7fdba5a56067",
|
||||
"operator": {
|
||||
"type": "string",
|
||||
"operation": "notEmpty",
|
||||
"singleValue": true
|
||||
},
|
||||
"leftValue": "={{ $('Alert Status').item.json.alert_status }}",
|
||||
"rightValue": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.2
|
||||
},
|
||||
{
|
||||
"id": "dd075f72-22bc-438e-a75b-a2437a8920c3",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
-1100,
|
||||
-600
|
||||
],
|
||||
"parameters": {
|
||||
"color": 5,
|
||||
"width": 660,
|
||||
"height": 360,
|
||||
"content": "# Amazon Product Price Tracker\n\nThis workflow automates price monitoring for Amazon products using the ScrapeOps API. It tracks price changes over time, alerts you when prices cross your defined thresholds, and maintains a historical record of all price movements.\n\n## Features\n- Scheduled price checks for multiple Amazon products\n- Price change calculations (absolute and percentage)\n- Smart alerting based on customizable thresholds\n- Automated email notifications with detailed price information\n- Historical price tracking for trend analysis"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "83324982-44e9-49cc-8782-d0520955c1ff",
|
||||
"name": "Sticky Note2",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
-1100,
|
||||
-200
|
||||
],
|
||||
"parameters": {
|
||||
"color": 5,
|
||||
"width": 660,
|
||||
"height": 740,
|
||||
"content": "## API Configuration\nThis workflow requires a ScrapeOps API key to fetch Amazon product data.\nTo obtain your API key, register at https://scrapeops.io/app/register/main\n\n## API Documentation\nFor detailed information about the Amazon Product API endpoint used in this workflow,\nrefer to the official documentation at:\nhttps://scrapeops.io/docs/data-api/amazon-product-api/\nThe documentation provides details on all available parameters, response formats,\nand best practices for optimizing your API usage.\n\n## Integration Setup\nOnce registered, insert your API key in the \"Scrapeops - Amazon Product\" node parameters.\nThis workflow uses the structured data endpoint which returns clean, parsed product data\nin a consistent JSON format.\n\n## Google Sheets Configuration\nA Google Sheets spreadsheet is used to store the product data collected through this workflow.\nThe original template spreadsheet is shared in read-only mode through this link:\nhttps://docs.google.com/spreadsheets/d/1hRv-TBXrpN6rkIU65WorttNHt-IPWas_An0sF4Of39U\n\nTo use this workflow:\n1. Access the shared spreadsheet using the link above\n2. Make your own copy by going to File > Make a copy\n3. Share your copy with appropriate permissions\n4. In the n8n workflow, locate the \"Setup\" node\n5. Update the \"spreadsheet_url\" variable with the link to YOUR copy of the spreadsheet\n\nThis ensures each user works with their own separate spreadsheet, avoiding data overlap \nbetween different users while maintaining the original structure needed by the workflow."
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "2b3d3b37-7e9d-48a0-a97a-223f4d60c6a6",
|
||||
"name": "Setup",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
-160,
|
||||
-220
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"assignments": {
|
||||
"assignments": [
|
||||
{
|
||||
"id": "6f1a8857-9ecc-4fcd-8803-4494ca230ae4",
|
||||
"name": "spreadsheet_url",
|
||||
"type": "string",
|
||||
"value": "https://docs.google.com/spreadsheets/d/1hRv-TBXrpN6rkIU65WorttNHt-IPWas_An0sF4Of39U"
|
||||
},
|
||||
{
|
||||
"id": "bbe91759-984c-4d62-b832-b37d84997211",
|
||||
"name": "scrapeops_apikey",
|
||||
"type": "string",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"id": "29428dd3-8659-43d0-a888-1e2ee7c37ab8",
|
||||
"name": "from_email",
|
||||
"type": "string",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"id": "d39032ee-895d-436e-9948-355d37abb740",
|
||||
"name": "to_email",
|
||||
"type": "string",
|
||||
"value": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 3.4
|
||||
},
|
||||
{
|
||||
"id": "aab72c63-3864-42b4-87b6-c9911d8d09be",
|
||||
"name": "Schedule Trigger",
|
||||
"type": "n8n-nodes-base.scheduleTrigger",
|
||||
"position": [
|
||||
-360,
|
||||
-220
|
||||
],
|
||||
"parameters": {
|
||||
"rule": {
|
||||
"interval": [
|
||||
{
|
||||
"field": "hours"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
}
|
||||
],
|
||||
"active": false,
|
||||
"pinData": {},
|
||||
"settings": {
|
||||
"executionOrder": "v1"
|
||||
},
|
||||
"versionId": "38990374-8154-4f1e-8026-ce206ed2d90d",
|
||||
"connections": {
|
||||
"Setup": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Products to Monitor",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Fields": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Check Valid Price",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Last Price": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Scrapeops - Amazon Product",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Send Email": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Loop Over Items",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Alert Status": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Update - Products to Monitor",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Price Change": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Alert Status",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Alert Decision": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Send Email",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"node": "Loop Over Items",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Loop Over Items": {
|
||||
"main": [
|
||||
[],
|
||||
[
|
||||
{
|
||||
"node": "Last Price",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Schedule Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Setup",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Check Valid Price": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Price Change",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"node": "Loop Over Items",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Products to Monitor": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Loop Over Items",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Insert - Price History": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Alert Decision",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Scrapeops - Amazon Product": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Fields",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Update - Products to Monitor": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Insert - Price History",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,341 @@
|
||||
{
|
||||
"nodes": [
|
||||
{
|
||||
"id": "d45cf237-dbbc-48ed-a7f0-fa9506ae1d67",
|
||||
"name": "Update priority in todoist",
|
||||
"type": "n8n-nodes-base.todoist",
|
||||
"position": [
|
||||
2060,
|
||||
520
|
||||
],
|
||||
"parameters": {
|
||||
"taskId": "={{ $('Get inbox tasks').item.json.id }}",
|
||||
"operation": "update",
|
||||
"updateFields": {
|
||||
"priority": "={{ $('Your Projects').first().json.projects[$json.message.content] }}"
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"todoistApi": {
|
||||
"id": "1",
|
||||
"name": "Todoist account"
|
||||
}
|
||||
},
|
||||
"retryOnFail": true,
|
||||
"typeVersion": 2,
|
||||
"waitBetweenTries": 5000
|
||||
},
|
||||
{
|
||||
"id": "4d0ebf98-5a1d-4dfd-85df-da182b3c5099",
|
||||
"name": "Schedule Trigger",
|
||||
"type": "n8n-nodes-base.scheduleTrigger",
|
||||
"position": [
|
||||
600,
|
||||
520
|
||||
],
|
||||
"parameters": {
|
||||
"rule": {
|
||||
"interval": [
|
||||
{}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
},
|
||||
{
|
||||
"id": "a950e470-6885-42f4-9b17-7b2c2525d3e4",
|
||||
"name": "Get inbox tasks",
|
||||
"type": "n8n-nodes-base.todoist",
|
||||
"position": [
|
||||
1020,
|
||||
520
|
||||
],
|
||||
"parameters": {
|
||||
"filters": {
|
||||
"projectId": "938017196"
|
||||
},
|
||||
"operation": "getAll",
|
||||
"returnAll": true
|
||||
},
|
||||
"credentials": {
|
||||
"todoistApi": {
|
||||
"id": "1",
|
||||
"name": "Todoist account"
|
||||
}
|
||||
},
|
||||
"retryOnFail": true,
|
||||
"typeVersion": 2,
|
||||
"waitBetweenTries": 5000
|
||||
},
|
||||
{
|
||||
"id": "093bcb2e-79b7-427e-b13d-540a5b28f427",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
540,
|
||||
200
|
||||
],
|
||||
"parameters": {
|
||||
"color": 3,
|
||||
"width": 358.6620209059232,
|
||||
"height": 256.5853658536585,
|
||||
"content": "## \ud83d\udcab To setup this template\n\n1. Add your Todoist credentials\n2. Add your OpenAI credentials\n3. Set your project names and add priority"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "430290e7-1732-46fe-a38d-fa6dc7f78a26",
|
||||
"name": "Sticky Note1",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
800,
|
||||
700
|
||||
],
|
||||
"parameters": {
|
||||
"width": 192.77351916376313,
|
||||
"height": 80,
|
||||
"content": " \ud83d\udc46\ud83c\udffd Add your projects and priority here"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "6d5a1b7e-f7fa-4a1b-848c-1b4e79f6f667",
|
||||
"name": "Sticky Note2",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
1020,
|
||||
420
|
||||
],
|
||||
"parameters": {
|
||||
"width": 192.77351916376313,
|
||||
"height": 80,
|
||||
"content": " \ud83d\udc47\ud83c\udffd Add your Todoist credentials here"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "feff35d2-e37d-48a5-9a90-c5a2efde688f",
|
||||
"name": "Sticky Note3",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
2060,
|
||||
420
|
||||
],
|
||||
"parameters": {
|
||||
"width": 192.77351916376313,
|
||||
"height": 80,
|
||||
"content": " \ud83d\udc47\ud83c\udffd Add your Todoist credentials here"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "e454ebfe-47f6-4e39-8b89-d706da742911",
|
||||
"name": "Sticky Note4",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
1540,
|
||||
700
|
||||
],
|
||||
"parameters": {
|
||||
"width": 192.77351916376313,
|
||||
"height": 80,
|
||||
"content": " \ud83d\udc46\ud83c\udffd Add your OpenAI credentials here"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "a79effcb-6904-4abf-835b-e1ccd94ca429",
|
||||
"name": "Your Projects",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
820,
|
||||
520
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"assignments": {
|
||||
"assignments": [
|
||||
{
|
||||
"id": "50dc1412-21f8-4158-898d-3940a146586b",
|
||||
"name": "projects",
|
||||
"type": "object",
|
||||
"value": "={{ {\n apartment: 1,\n health: 2,\n german: 3\n} }}"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 3.4
|
||||
},
|
||||
{
|
||||
"id": "b5988629-2225-455f-b579-73e60449d2a3",
|
||||
"name": "Categorize",
|
||||
"type": "@n8n/n8n-nodes-langchain.openAi",
|
||||
"position": [
|
||||
1460,
|
||||
520
|
||||
],
|
||||
"parameters": {
|
||||
"modelId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "gpt-4o-mini",
|
||||
"cachedResultName": "GPT-4O-MINI"
|
||||
},
|
||||
"options": {},
|
||||
"messages": {
|
||||
"values": [
|
||||
{
|
||||
"role": "system",
|
||||
"content": "=Categorize the user's todo item to a project. Return the project name or just \"other\" if it does not belong to a project."
|
||||
},
|
||||
{
|
||||
"content": "=Projects:\n{{ $('Your Projects').first().json.projects.keys().join('\\n') }}\n\nTodo item:\n{{ $('Get inbox tasks').item.json.content }}"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"openAiApi": {
|
||||
"id": "9",
|
||||
"name": "n8n OpenAi"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.4
|
||||
},
|
||||
{
|
||||
"id": "0dca3953-c0ac-4319-9323-c3aed9488bfb",
|
||||
"name": "If task is not a subtask",
|
||||
"type": "n8n-nodes-base.filter",
|
||||
"position": [
|
||||
1240,
|
||||
520
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"conditions": {
|
||||
"options": {
|
||||
"leftValue": "",
|
||||
"caseSensitive": true,
|
||||
"typeValidation": "strict"
|
||||
},
|
||||
"combinator": "and",
|
||||
"conditions": [
|
||||
{
|
||||
"id": "36dd4bc9-1282-4342-89dd-1dac81c7290e",
|
||||
"operator": {
|
||||
"type": "string",
|
||||
"operation": "empty",
|
||||
"singleValue": true
|
||||
},
|
||||
"leftValue": "={{ $json.parent_id }}",
|
||||
"rightValue": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.1
|
||||
},
|
||||
{
|
||||
"id": "12e25a81-dbde-4542-a137-365329da415e",
|
||||
"name": "If other or ai hallucinates",
|
||||
"type": "n8n-nodes-base.filter",
|
||||
"position": [
|
||||
1820,
|
||||
520
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"conditions": {
|
||||
"options": {
|
||||
"leftValue": "",
|
||||
"caseSensitive": true,
|
||||
"typeValidation": "strict"
|
||||
},
|
||||
"combinator": "and",
|
||||
"conditions": [
|
||||
{
|
||||
"id": "c4f69265-abe1-451c-8462-e68ff3b06799",
|
||||
"operator": {
|
||||
"type": "array",
|
||||
"operation": "contains",
|
||||
"rightType": "any"
|
||||
},
|
||||
"leftValue": "={{ $('Your Projects').first().json.projects.keys() }}",
|
||||
"rightValue": "={{ $json.message.content }}"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.1
|
||||
}
|
||||
],
|
||||
"pinData": {},
|
||||
"connections": {
|
||||
"Categorize": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "If other or ai hallucinates",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Your Projects": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Get inbox tasks",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Get inbox tasks": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "If task is not a subtask",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Schedule Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Your Projects",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"If task is not a subtask": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Categorize",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"If other or ai hallucinates": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Update priority in todoist",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,624 @@
|
||||
{
|
||||
"id": "VtiRiIGkdeUhyh0N",
|
||||
"meta": {
|
||||
"instanceId": "fb924c73af8f703905bc09c9ee8076f48c17b596ed05b18c0ff86915ef8a7c4a"
|
||||
},
|
||||
"name": "GoogleSheets MySQL Integration",
|
||||
"tags": [],
|
||||
"nodes": [
|
||||
{
|
||||
"id": "ec43f0df-338b-462f-9195-b20024e83ba1",
|
||||
"name": "When clicking \"Execute Workflow\"",
|
||||
"type": "n8n-nodes-base.manualTrigger",
|
||||
"position": [
|
||||
720,
|
||||
500
|
||||
],
|
||||
"parameters": {},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "e9fd1af3-dcf8-4442-958d-cb8390c85263",
|
||||
"name": "Compare Datasets",
|
||||
"type": "n8n-nodes-base.compareDatasets",
|
||||
"position": [
|
||||
1380,
|
||||
380
|
||||
],
|
||||
"parameters": {
|
||||
"options": {
|
||||
"skipFields": "record_created,record_updated,id"
|
||||
},
|
||||
"mergeByFields": {
|
||||
"values": [
|
||||
{
|
||||
"field1": "timestamp",
|
||||
"field2": "timestamp"
|
||||
},
|
||||
{
|
||||
"field1": "source_name",
|
||||
"field2": "source_name"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.3
|
||||
},
|
||||
{
|
||||
"id": "5b14d739-9037-48a8-9990-5b8ac3318b1c",
|
||||
"name": "Send Notifications",
|
||||
"type": "n8n-nodes-base.noOp",
|
||||
"position": [
|
||||
1840,
|
||||
260
|
||||
],
|
||||
"parameters": {},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "10ff3339-9091-4ea2-be4e-12a91208e27d",
|
||||
"name": "Schedule Trigger",
|
||||
"type": "n8n-nodes-base.scheduleTrigger",
|
||||
"position": [
|
||||
720,
|
||||
200
|
||||
],
|
||||
"parameters": {
|
||||
"rule": {
|
||||
"interval": [
|
||||
{
|
||||
"field": "cronExpression",
|
||||
"expression": "*/30 6-22 * * 1-5"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.1
|
||||
},
|
||||
{
|
||||
"id": "dcf6838f-0d58-4438-875b-94caac45cb65",
|
||||
"name": "Google Sheet Data",
|
||||
"type": "n8n-nodes-base.googleSheets",
|
||||
"position": [
|
||||
940,
|
||||
200
|
||||
],
|
||||
"parameters": {
|
||||
"options": {
|
||||
"returnAllMatches": "returnAllMatches"
|
||||
},
|
||||
"filtersUI": {
|
||||
"values": [
|
||||
{
|
||||
"lookupColumn": "DB Status"
|
||||
}
|
||||
]
|
||||
},
|
||||
"sheetName": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": 263642066,
|
||||
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1KCSKt9bKrFSWGRTTfj-JIVl-u7gcLMbFTCSvZbUMiuo/edit#gid=263642066",
|
||||
"cachedResultName": "Form Responses 1"
|
||||
},
|
||||
"documentId": {
|
||||
"__rl": true,
|
||||
"mode": "url",
|
||||
"value": "https://docs.google.com/spreadsheets/d/1KCSKt9bKrFSWGRTTfj-JIVl-u7gcLMbFTCSvZbUMiuo"
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"googleSheetsOAuth2Api": {
|
||||
"id": "RtRiRezoxiWkzZQt",
|
||||
"name": "Google Sheets account 3"
|
||||
}
|
||||
},
|
||||
"typeVersion": 4
|
||||
},
|
||||
{
|
||||
"id": "6044469f-9000-4e47-a2d9-920371677a82",
|
||||
"name": "SQL Get inquiries from Google",
|
||||
"type": "n8n-nodes-base.mySql",
|
||||
"position": [
|
||||
940,
|
||||
500
|
||||
],
|
||||
"parameters": {
|
||||
"table": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "ConcertInquiries",
|
||||
"cachedResultName": "ConcertInquiries"
|
||||
},
|
||||
"where": {
|
||||
"values": [
|
||||
{
|
||||
"value": "GoogleForm",
|
||||
"column": "source_name"
|
||||
}
|
||||
]
|
||||
},
|
||||
"options": {},
|
||||
"operation": "select",
|
||||
"returnAll": true
|
||||
},
|
||||
"credentials": {
|
||||
"mySql": {
|
||||
"id": "ICakJ1LRuVl4dRTs",
|
||||
"name": "db4free TTT account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.2
|
||||
},
|
||||
{
|
||||
"id": "f65aad46-93ce-44e6-b7b9-8c177516cf18",
|
||||
"name": "Add MySQL records",
|
||||
"type": "n8n-nodes-base.mySql",
|
||||
"position": [
|
||||
1620,
|
||||
80
|
||||
],
|
||||
"parameters": {
|
||||
"table": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "ConcertInquiries",
|
||||
"cachedResultName": "ConcertInquiries"
|
||||
},
|
||||
"options": {},
|
||||
"operation": "upsert",
|
||||
"columnToMatchOn": "timestamp"
|
||||
},
|
||||
"credentials": {
|
||||
"mySql": {
|
||||
"id": "ICakJ1LRuVl4dRTs",
|
||||
"name": "db4free TTT account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.2
|
||||
},
|
||||
{
|
||||
"id": "6b3d9971-f37c-4721-8134-f60bdf1a03da",
|
||||
"name": "Rename GSheet variables",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
1160,
|
||||
200
|
||||
],
|
||||
"parameters": {
|
||||
"values": {
|
||||
"string": [
|
||||
{
|
||||
"name": "timestamp",
|
||||
"value": "={{ $json.Timestamp }}"
|
||||
},
|
||||
{
|
||||
"name": "occasion",
|
||||
"value": "={{ $json[\"What event are you organizing? \"] }}"
|
||||
},
|
||||
{
|
||||
"name": "email_address",
|
||||
"value": "={{ $json[\"Email Address\"] }}"
|
||||
},
|
||||
{
|
||||
"name": "event_date",
|
||||
"value": "={{ DateTime.fromFormat($json[\"When does the event take place? \"], 'M/d/yyyy').toFormat('yyyy-MM-dd') }}"
|
||||
},
|
||||
{
|
||||
"name": "location",
|
||||
"value": "={{ $json[\"Where does the event take place? \"] }}"
|
||||
},
|
||||
{
|
||||
"name": "event_description",
|
||||
"value": "={{ $json[\"Please tell us more about the event. \"] }}"
|
||||
},
|
||||
{
|
||||
"name": "source_name",
|
||||
"value": "GoogleForm"
|
||||
},
|
||||
{
|
||||
"name": "db_status",
|
||||
"value": "={{ $json[\"DB Status\"] }}"
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"value": "={{ $json[\"Your name \"] }}"
|
||||
}
|
||||
]
|
||||
},
|
||||
"options": {},
|
||||
"keepOnlySet": true
|
||||
},
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "04f067be-8d7d-48bd-9a3d-d881d6dd3464",
|
||||
"name": "No reply too long?",
|
||||
"type": "n8n-nodes-base.if",
|
||||
"position": [
|
||||
1620,
|
||||
280
|
||||
],
|
||||
"parameters": {
|
||||
"conditions": {
|
||||
"dateTime": [
|
||||
{
|
||||
"value1": "={{ DateTime.fromFormat($json.timestamp, 'MM/d/yyyy HH:mm:ss'); }}",
|
||||
"value2": "={{ DateTime.now().minus({ hours: 4 }) }}",
|
||||
"operation": "before"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "2f287a7b-eda2-4d05-9864-ba66bddaf14d",
|
||||
"name": "DB Status assigned?",
|
||||
"type": "n8n-nodes-base.if",
|
||||
"position": [
|
||||
1620,
|
||||
480
|
||||
],
|
||||
"parameters": {
|
||||
"conditions": {
|
||||
"string": [
|
||||
{
|
||||
"value1": "={{ $json.different.db_status.inputB }}",
|
||||
"operation": "isNotEmpty"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "cb10201c-5fcc-41f2-94ac-a52cdbe96e58",
|
||||
"name": "Update GSheet status",
|
||||
"type": "n8n-nodes-base.googleSheets",
|
||||
"position": [
|
||||
1840,
|
||||
460
|
||||
],
|
||||
"parameters": {
|
||||
"columns": {
|
||||
"value": {
|
||||
"DB Status": "={{ $json.different.db_status.inputB }}",
|
||||
"Timestamp": "={{ $json.keys.timestamp }}"
|
||||
},
|
||||
"schema": [
|
||||
{
|
||||
"id": "Timestamp",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": false,
|
||||
"required": false,
|
||||
"displayName": "Timestamp",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "Email Address",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": true,
|
||||
"required": false,
|
||||
"displayName": "Email Address",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "Your name ",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": true,
|
||||
"required": false,
|
||||
"displayName": "Your name ",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "What event are you organizing? ",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": true,
|
||||
"required": false,
|
||||
"displayName": "What event are you organizing? ",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "When does the event take place? ",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": true,
|
||||
"required": false,
|
||||
"displayName": "When does the event take place? ",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "Where does the event take place? ",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": true,
|
||||
"required": false,
|
||||
"displayName": "Where does the event take place? ",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "Please tell us more about the event. ",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"removed": true,
|
||||
"required": false,
|
||||
"displayName": "Please tell us more about the event. ",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "DB Status",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "DB Status",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
}
|
||||
],
|
||||
"mappingMode": "defineBelow",
|
||||
"matchingColumns": [
|
||||
"Timestamp"
|
||||
]
|
||||
},
|
||||
"options": {},
|
||||
"operation": "update",
|
||||
"sheetName": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": 263642066,
|
||||
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1KCSKt9bKrFSWGRTTfj-JIVl-u7gcLMbFTCSvZbUMiuo/edit#gid=263642066",
|
||||
"cachedResultName": "Form Responses 1"
|
||||
},
|
||||
"documentId": {
|
||||
"__rl": true,
|
||||
"mode": "url",
|
||||
"value": "https://docs.google.com/spreadsheets/d/1KCSKt9bKrFSWGRTTfj-JIVl-u7gcLMbFTCSvZbUMiuo"
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"googleSheetsOAuth2Api": {
|
||||
"id": "RtRiRezoxiWkzZQt",
|
||||
"name": "Google Sheets account 3"
|
||||
}
|
||||
},
|
||||
"typeVersion": 4
|
||||
},
|
||||
{
|
||||
"id": "178fe745-b026-4c7f-9104-6756ba2d7d7d",
|
||||
"name": "DB Status in sync?",
|
||||
"type": "n8n-nodes-base.if",
|
||||
"position": [
|
||||
1620,
|
||||
680
|
||||
],
|
||||
"parameters": {
|
||||
"conditions": {
|
||||
"string": [
|
||||
{
|
||||
"value1": "={{ $json.source_name }}",
|
||||
"operation": "isNotEmpty"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "6b92bfaf-65f1-441d-a0fc-51e448380520",
|
||||
"name": "Sync MySQL data",
|
||||
"type": "n8n-nodes-base.mySql",
|
||||
"position": [
|
||||
1840,
|
||||
660
|
||||
],
|
||||
"parameters": {
|
||||
"table": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "ConcertInquiries",
|
||||
"cachedResultName": "ConcertInquiries"
|
||||
},
|
||||
"options": {},
|
||||
"dataMode": "defineBelow",
|
||||
"operation": "update",
|
||||
"valuesToSend": {
|
||||
"values": [
|
||||
{
|
||||
"value": "={{ $json.source_name }}Sync",
|
||||
"column": "source_name"
|
||||
}
|
||||
]
|
||||
},
|
||||
"valueToMatchOn": "={{ $json.id }}",
|
||||
"columnToMatchOn": "id"
|
||||
},
|
||||
"credentials": {
|
||||
"mySql": {
|
||||
"id": "ICakJ1LRuVl4dRTs",
|
||||
"name": "db4free TTT account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.2
|
||||
},
|
||||
{
|
||||
"id": "3c95f764-e91c-4418-98c9-c18939486b01",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
903,
|
||||
-115.08597285067867
|
||||
],
|
||||
"parameters": {
|
||||
"width": 376.8778280542988,
|
||||
"height": 474.81900452488685,
|
||||
"content": "## Create a new Google Form with several variables:\n\n-Email Address\n-Your name \n-What event are you organizing? \n-When does the event take place? \n-Where does the event take place? \n-Please tell us more about the event. \n\n- Timestamp variable is added automatically\n- Add \"DB Status\" manually in the Google Sheet\n"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "0a5aa6c9-5312-4716-bd63-71534cdccbf1",
|
||||
"name": "Sticky Note1",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
900,
|
||||
394
|
||||
],
|
||||
"parameters": {
|
||||
"width": 375.6334841628956,
|
||||
"height": 273.23529411764684,
|
||||
"content": "### Import this SQL file to create a new table\nhttps://gist.github.com/teds-tech-talks/cf25c60363cba082b9c5a1feca10180f"
|
||||
},
|
||||
"typeVersion": 1
|
||||
}
|
||||
],
|
||||
"active": true,
|
||||
"pinData": {},
|
||||
"settings": {
|
||||
"executionOrder": "v1"
|
||||
},
|
||||
"versionId": "69bdc2a6-346a-4c2e-82fd-9b7fd54b6f36",
|
||||
"connections": {
|
||||
"Compare Datasets": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Add MySQL records",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"node": "No reply too long?",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"node": "DB Status assigned?",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"node": "DB Status in sync?",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Schedule Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Google Sheet Data",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
},
|
||||
{
|
||||
"node": "SQL Get inquiries from Google",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Google Sheet Data": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Rename GSheet variables",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"DB Status in sync?": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Sync MySQL data",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"No reply too long?": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Send Notifications",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"DB Status assigned?": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Update GSheet status",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Rename GSheet variables": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Compare Datasets",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"SQL Get inquiries from Google": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Compare Datasets",
|
||||
"type": "main",
|
||||
"index": 1
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"When clicking \"Execute Workflow\"": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Google Sheet Data",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
},
|
||||
{
|
||||
"node": "SQL Get inquiries from Google",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,557 @@
|
||||
{
|
||||
"id": "WceMkVib0VLlF1BZ",
|
||||
"meta": {
|
||||
"instanceId": "ecc960f484e18b0e09045fd93acf0d47f4cfff25cc212ea348a08ac3aae81850",
|
||||
"templateCredsSetupCompleted": true
|
||||
},
|
||||
"name": "Vector DB Loader from Google Drive",
|
||||
"tags": [
|
||||
{
|
||||
"id": "6rb8rVhKZj4t0Kne",
|
||||
"name": "Current",
|
||||
"createdAt": "2025-02-04T18:13:17.427Z",
|
||||
"updatedAt": "2025-02-04T18:13:17.427Z"
|
||||
}
|
||||
],
|
||||
"nodes": [
|
||||
{
|
||||
"id": "6652e41a-d14a-4e17-9dcd-34df114d219a",
|
||||
"name": "Default Data Loader",
|
||||
"type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
|
||||
"position": [
|
||||
1240,
|
||||
1100
|
||||
],
|
||||
"parameters": {
|
||||
"options": {}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "8ae38b72-52fd-46bc-ab47-50bebe5ac4ee",
|
||||
"name": "Recursive Character Text Splitter",
|
||||
"type": "@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter",
|
||||
"position": [
|
||||
1320,
|
||||
1300
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"chunkOverlap": 50
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "57ce64af-88d4-4dc4-8c8e-01717c1bd47d",
|
||||
"name": "Embeddings OpenAI",
|
||||
"type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
|
||||
"position": [
|
||||
1120,
|
||||
1100
|
||||
],
|
||||
"parameters": {
|
||||
"model": "text-embedding-3-small",
|
||||
"options": {}
|
||||
},
|
||||
"credentials": {
|
||||
"openAiApi": {
|
||||
"id": "fzLcLisovaZjIqma",
|
||||
"name": "AlexK OpenAi account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "e6bed8bc-f629-41fd-aa6e-9158b1cbc323",
|
||||
"name": "Postgres PGVector Store",
|
||||
"type": "@n8n/n8n-nodes-langchain.vectorStorePGVector",
|
||||
"position": [
|
||||
1140,
|
||||
880
|
||||
],
|
||||
"parameters": {
|
||||
"mode": "insert",
|
||||
"options": {
|
||||
"collection": {
|
||||
"values": {
|
||||
"useCollection": true,
|
||||
"collectionName": "n8n_wfs"
|
||||
}
|
||||
}
|
||||
},
|
||||
"tableName": "n8n_vectors_wfs"
|
||||
},
|
||||
"credentials": {
|
||||
"postgres": {
|
||||
"id": "UkNm7VVkmuXOwMVa",
|
||||
"name": "KBB Postgres account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.1
|
||||
},
|
||||
{
|
||||
"id": "96fbc1f3-920d-44c9-9314-742efa3a698a",
|
||||
"name": "When clicking ‘Test workflow’",
|
||||
"type": "n8n-nodes-base.manualTrigger",
|
||||
"position": [
|
||||
-280,
|
||||
740
|
||||
],
|
||||
"parameters": {},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "4cd7a934-04cc-47b5-a771-db554680ba77",
|
||||
"name": "Loop Over Items",
|
||||
"type": "n8n-nodes-base.splitInBatches",
|
||||
"position": [
|
||||
160,
|
||||
740
|
||||
],
|
||||
"parameters": {
|
||||
"options": {}
|
||||
},
|
||||
"typeVersion": 3
|
||||
},
|
||||
{
|
||||
"id": "778593d8-fe1c-4eb9-865a-e6ce9ed5f900",
|
||||
"name": "Move File",
|
||||
"type": "n8n-nodes-base.googleDrive",
|
||||
"position": [
|
||||
1500,
|
||||
880
|
||||
],
|
||||
"parameters": {
|
||||
"fileId": {
|
||||
"__rl": true,
|
||||
"mode": "id",
|
||||
"value": "={{ $('Loop Over Items').item.json.id }}"
|
||||
},
|
||||
"driveId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "My Drive"
|
||||
},
|
||||
"folderId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "1Re6vg-PZxBoUU6sTRDbGs-77bAJ40u8F",
|
||||
"cachedResultUrl": "https://drive.google.com/drive/folders/1Re6vg-PZxBoUU6sTRDbGs-77bAJ40u8F",
|
||||
"cachedResultName": "vectorized"
|
||||
},
|
||||
"operation": "move"
|
||||
},
|
||||
"credentials": {
|
||||
"googleDriveOAuth2Api": {
|
||||
"id": "kxXwhBLKOmB8CkBW",
|
||||
"name": "AlexK Google Drive account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 3
|
||||
},
|
||||
{
|
||||
"id": "3a6584f5-ed86-4900-9177-40ffe82d0ad3",
|
||||
"name": "Download File",
|
||||
"type": "n8n-nodes-base.googleDrive",
|
||||
"position": [
|
||||
380,
|
||||
680
|
||||
],
|
||||
"parameters": {
|
||||
"fileId": {
|
||||
"__rl": true,
|
||||
"mode": "id",
|
||||
"value": "={{ $json.id }}"
|
||||
},
|
||||
"options": {},
|
||||
"operation": "download"
|
||||
},
|
||||
"credentials": {
|
||||
"googleDriveOAuth2Api": {
|
||||
"id": "kxXwhBLKOmB8CkBW",
|
||||
"name": "AlexK Google Drive account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 3
|
||||
},
|
||||
{
|
||||
"id": "e1931ab6-4391-46c3-9d7d-22cbfbf90327",
|
||||
"name": "Search Folder",
|
||||
"type": "n8n-nodes-base.googleDrive",
|
||||
"position": [
|
||||
-60,
|
||||
740
|
||||
],
|
||||
"parameters": {
|
||||
"filter": {
|
||||
"folderId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "1mBHrP8UzUnfn3dj_3QS1r0XhQQyVPAGX",
|
||||
"cachedResultUrl": "https://drive.google.com/drive/folders/1mBHrP8UzUnfn3dj_3QS1r0XhQQyVPAGX",
|
||||
"cachedResultName": "n8n Workflow JSON Files"
|
||||
},
|
||||
"whatToSearch": "files"
|
||||
},
|
||||
"options": {},
|
||||
"resource": "fileFolder",
|
||||
"returnAll": true
|
||||
},
|
||||
"credentials": {
|
||||
"googleDriveOAuth2Api": {
|
||||
"id": "kxXwhBLKOmB8CkBW",
|
||||
"name": "AlexK Google Drive account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 3
|
||||
},
|
||||
{
|
||||
"id": "95134ab4-806f-4c47-96a6-e261b3176ebf",
|
||||
"name": "Schedule Trigger",
|
||||
"type": "n8n-nodes-base.scheduleTrigger",
|
||||
"position": [
|
||||
-280,
|
||||
940
|
||||
],
|
||||
"parameters": {
|
||||
"rule": {
|
||||
"interval": [
|
||||
{
|
||||
"triggerAtHour": 3
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
},
|
||||
{
|
||||
"id": "0fe604ed-e886-4aa3-856f-c46fb79ce0de",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
1700,
|
||||
960
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 380,
|
||||
"height": 240,
|
||||
"content": "## Creative Commons License\n*License*: **Creative Commons Attribution-ShareAlike 4.0 International** (CC BY-SA 4.0)\n\n*Author*: **AlexK1919**\nYou are free to use, adapt, and share this workflow—even commercially—under the terms of this license.\n\nFull license details: https://creativecommons.org/licenses/by-sa/4.0/"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "f8055452-b487-46c7-92fe-14b3c88d193f",
|
||||
"name": "Switch",
|
||||
"type": "n8n-nodes-base.switch",
|
||||
"position": [
|
||||
560,
|
||||
680
|
||||
],
|
||||
"parameters": {
|
||||
"rules": {
|
||||
"values": [
|
||||
{
|
||||
"outputKey": "pdf",
|
||||
"conditions": {
|
||||
"options": {
|
||||
"version": 2,
|
||||
"leftValue": "",
|
||||
"caseSensitive": true,
|
||||
"typeValidation": "strict"
|
||||
},
|
||||
"combinator": "and",
|
||||
"conditions": [
|
||||
{
|
||||
"id": "7b4e792b-ab6d-4b9b-88a1-d8e51bea6853",
|
||||
"operator": {
|
||||
"type": "string",
|
||||
"operation": "equals"
|
||||
},
|
||||
"leftValue": "={{$binary[\"data\"].mimeType}}",
|
||||
"rightValue": "application/pdf"
|
||||
}
|
||||
]
|
||||
},
|
||||
"renameOutput": true
|
||||
},
|
||||
{
|
||||
"outputKey": "text",
|
||||
"conditions": {
|
||||
"options": {
|
||||
"version": 2,
|
||||
"leftValue": "",
|
||||
"caseSensitive": true,
|
||||
"typeValidation": "strict"
|
||||
},
|
||||
"combinator": "and",
|
||||
"conditions": [
|
||||
{
|
||||
"id": "09b7d7c5-5353-4719-b4e2-072e4da39948",
|
||||
"operator": {
|
||||
"name": "filter.operator.equals",
|
||||
"type": "string",
|
||||
"operation": "equals"
|
||||
},
|
||||
"leftValue": "={{$binary[\"data\"].mimeType}}",
|
||||
"rightValue": "text/plain"
|
||||
}
|
||||
]
|
||||
},
|
||||
"renameOutput": true
|
||||
},
|
||||
{
|
||||
"outputKey": "json",
|
||||
"conditions": {
|
||||
"options": {
|
||||
"version": 2,
|
||||
"leftValue": "",
|
||||
"caseSensitive": true,
|
||||
"typeValidation": "strict"
|
||||
},
|
||||
"combinator": "and",
|
||||
"conditions": [
|
||||
{
|
||||
"id": "d2763a45-a592-47c8-868f-59dfcd17a71c",
|
||||
"operator": {
|
||||
"name": "filter.operator.equals",
|
||||
"type": "string",
|
||||
"operation": "equals"
|
||||
},
|
||||
"leftValue": "={{$binary[\"data\"].mimeType}}",
|
||||
"rightValue": "application/json"
|
||||
}
|
||||
]
|
||||
},
|
||||
"renameOutput": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"options": {}
|
||||
},
|
||||
"typeVersion": 3.2
|
||||
},
|
||||
{
|
||||
"id": "c704f48e-a1f5-4539-bde2-545862d21bc6",
|
||||
"name": "Extract from PDF",
|
||||
"type": "n8n-nodes-base.extractFromFile",
|
||||
"position": [
|
||||
780,
|
||||
480
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"operation": "pdf"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "63b3a751-5726-4821-8379-72af15226584",
|
||||
"name": "Extract from Text",
|
||||
"type": "n8n-nodes-base.extractFromFile",
|
||||
"position": [
|
||||
780,
|
||||
680
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"operation": "text"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "44a5980a-17aa-4a09-8040-a7d9804c7998",
|
||||
"name": "Extract from JSON",
|
||||
"type": "n8n-nodes-base.extractFromFile",
|
||||
"position": [
|
||||
780,
|
||||
880
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"operation": "fromJson"
|
||||
},
|
||||
"typeVersion": 1
|
||||
}
|
||||
],
|
||||
"active": false,
|
||||
"pinData": {},
|
||||
"settings": {
|
||||
"timezone": "America/Los_Angeles",
|
||||
"callerPolicy": "workflowsFromSameOwner",
|
||||
"errorWorkflow": "lYgdNzdEapw2W8gK",
|
||||
"executionOrder": "v1"
|
||||
},
|
||||
"versionId": "4f54c70a-b18b-4e4c-8959-ace70dd41218",
|
||||
"connections": {
|
||||
"Switch": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Extract from PDF",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"node": "Extract from Text",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"node": "Extract from JSON",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Move File": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Loop Over Items",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Download File": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Switch",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Search Folder": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Loop Over Items",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Loop Over Items": {
|
||||
"main": [
|
||||
[],
|
||||
[
|
||||
{
|
||||
"node": "Download File",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Extract from PDF": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Postgres PGVector Store",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Schedule Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Search Folder",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Embeddings OpenAI": {
|
||||
"ai_embedding": [
|
||||
[
|
||||
{
|
||||
"node": "Postgres PGVector Store",
|
||||
"type": "ai_embedding",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Extract from JSON": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Postgres PGVector Store",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Extract from Text": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Postgres PGVector Store",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Default Data Loader": {
|
||||
"ai_document": [
|
||||
[
|
||||
{
|
||||
"node": "Postgres PGVector Store",
|
||||
"type": "ai_document",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Postgres PGVector Store": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Move File",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Recursive Character Text Splitter": {
|
||||
"ai_textSplitter": [
|
||||
[
|
||||
{
|
||||
"node": "Default Data Loader",
|
||||
"type": "ai_textSplitter",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"When clicking ‘Test workflow’": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Search Folder",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
334
workflows/Schedule/1820_Schedule_N8N_Automate_Scheduled.json
Normal file
334
workflows/Schedule/1820_Schedule_N8N_Automate_Scheduled.json
Normal file
@@ -0,0 +1,334 @@
|
||||
{
|
||||
"id": "cGqPi5Uy2u1ShmoO",
|
||||
"meta": {
|
||||
"instanceId": "8fccc85e4982eaaf920505127420cfb3a600b56930a56e499973488bb6dc5e3a",
|
||||
"templateCredsSetupCompleted": true
|
||||
},
|
||||
"name": "💻 Schedule workflow activity time",
|
||||
"tags": [
|
||||
{
|
||||
"id": "0IPbflTW7vujkmxO",
|
||||
"name": "DevOps",
|
||||
"createdAt": "2025-03-16T13:11:38.707Z",
|
||||
"updatedAt": "2025-03-16T13:11:38.707Z"
|
||||
}
|
||||
],
|
||||
"nodes": [
|
||||
{
|
||||
"id": "294244fd-8c35-4b70-af84-cc466a60541f",
|
||||
"name": "n8n Activate",
|
||||
"type": "n8n-nodes-base.n8n",
|
||||
"position": [
|
||||
360,
|
||||
-180
|
||||
],
|
||||
"parameters": {
|
||||
"operation": "activate",
|
||||
"workflowId": {
|
||||
"__rl": true,
|
||||
"mode": "id",
|
||||
"value": "={{ $json.workflowID }}"
|
||||
},
|
||||
"requestOptions": {}
|
||||
},
|
||||
"credentials": {
|
||||
"n8nApi": {
|
||||
"id": "zYX6aInNigxW08J2",
|
||||
"name": "n8n acc for Gitlab/hub sync of repos"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "e669e5e3-288a-4d6b-af12-011340e60f64",
|
||||
"name": "n8n Deactivate",
|
||||
"type": "n8n-nodes-base.n8n",
|
||||
"position": [
|
||||
360,
|
||||
140
|
||||
],
|
||||
"parameters": {
|
||||
"operation": "deactivate",
|
||||
"workflowId": {
|
||||
"__rl": true,
|
||||
"mode": "id",
|
||||
"value": "={{ $json.workflowID }}"
|
||||
},
|
||||
"requestOptions": {}
|
||||
},
|
||||
"credentials": {
|
||||
"n8nApi": {
|
||||
"id": "zYX6aInNigxW08J2",
|
||||
"name": "n8n acc for Gitlab/hub sync of repos"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "a9c7337f-d0ca-4e7e-873d-1d38813f2717",
|
||||
"name": "Workflow ID",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
-60,
|
||||
-80
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"assignments": {
|
||||
"assignments": [
|
||||
{
|
||||
"id": "86a66597-b7c3-4e26-aab9-fdf6cc4e43b5",
|
||||
"name": "workflowID",
|
||||
"type": "string",
|
||||
"value": "cGqPi5Uy2u1ShmoO"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 3.4
|
||||
},
|
||||
{
|
||||
"id": "9c641940-fb33-4750-b3ef-ed3d216c339e",
|
||||
"name": "Merge in Workflow ID for deactivation",
|
||||
"type": "n8n-nodes-base.merge",
|
||||
"position": [
|
||||
180,
|
||||
140
|
||||
],
|
||||
"parameters": {
|
||||
"mode": "combine",
|
||||
"options": {},
|
||||
"combineBy": "combineByPosition"
|
||||
},
|
||||
"typeVersion": 3
|
||||
},
|
||||
{
|
||||
"id": "1368366d-0bec-45b3-9de9-d1902ca9b30c",
|
||||
"name": "Merge in Workflow ID for activation",
|
||||
"type": "n8n-nodes-base.merge",
|
||||
"position": [
|
||||
180,
|
||||
-180
|
||||
],
|
||||
"parameters": {
|
||||
"mode": "combine",
|
||||
"options": {},
|
||||
"combineBy": "combineByPosition"
|
||||
},
|
||||
"typeVersion": 3
|
||||
},
|
||||
{
|
||||
"id": "68f765bc-23e2-48c9-8558-a30fc4d8bbb1",
|
||||
"name": "Activate at 08:00 daily",
|
||||
"type": "n8n-nodes-base.scheduleTrigger",
|
||||
"position": [
|
||||
-320,
|
||||
-200
|
||||
],
|
||||
"parameters": {
|
||||
"rule": {
|
||||
"interval": [
|
||||
{
|
||||
"field": "cronExpression",
|
||||
"expression": "0 8 * * *"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
},
|
||||
{
|
||||
"id": "2b51cc72-55c8-444a-931e-54adb0a7ada8",
|
||||
"name": "Deactivate at 20:00 daily",
|
||||
"type": "n8n-nodes-base.scheduleTrigger",
|
||||
"position": [
|
||||
-320,
|
||||
160
|
||||
],
|
||||
"parameters": {
|
||||
"rule": {
|
||||
"interval": [
|
||||
{
|
||||
"field": "cronExpression",
|
||||
"expression": "0 20 * * *"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
},
|
||||
{
|
||||
"id": "27edd566-b0cc-47d8-922b-33a909df9e56",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
-180,
|
||||
-500
|
||||
],
|
||||
"parameters": {
|
||||
"color": 5,
|
||||
"width": 320,
|
||||
"height": 800,
|
||||
"content": "## Set targeted Workflow ID\n\nYou will find it in the URL of the workflow you want to manage.\n\n\n"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "d568b8e8-aaad-45ae-aa56-b6e6671f246d",
|
||||
"name": "Sticky Note1",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
-500,
|
||||
-500
|
||||
],
|
||||
"parameters": {
|
||||
"color": 5,
|
||||
"width": 300,
|
||||
"height": 800,
|
||||
"content": "## Set Activate/deactivate schedule \n\n[Custom (cron) interval](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.scheduletrigger/#custom-cron-interval) is a recommended approach.\n\n"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "d23ff5a9-a8c2-43c7-8241-fcc3ff53f290",
|
||||
"name": "Sticky Note2",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
300,
|
||||
-500
|
||||
],
|
||||
"parameters": {
|
||||
"color": 5,
|
||||
"width": 320,
|
||||
"height": 800,
|
||||
"content": "## Set n8n API credentials\n\n1. Create an API key:\nhttps://docs.n8n.io/api/authentication/\n\n2. Create n8n credentials using the API key\n\n\nThis workflow uses **[n8n node](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.n8n/)**."
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "0dd08d9b-046a-4c11-9bf4-bfb6beffa852",
|
||||
"name": "Sticky Note3",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
-500,
|
||||
-620
|
||||
],
|
||||
"parameters": {
|
||||
"width": 1120,
|
||||
"height": 100,
|
||||
"content": "## ⚠️ Warning!\nThis approach **won't work for trial users** as it requires n8n API that is not available to trial users.\nSee https://docs.n8n.io/api/ for details."
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "895034b7-5d7d-4e02-a125-6df6e4c44531",
|
||||
"name": "Sticky Note4",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
-500,
|
||||
-740
|
||||
],
|
||||
"parameters": {
|
||||
"color": 4,
|
||||
"width": 1120,
|
||||
"height": 100,
|
||||
"content": "## Scheduling workflow activity time\nYour workflow wants to work normal business hours?\nMaybe it is in its own right."
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "18e464f1-fc3b-4ce5-b5c7-c3769b3fc697",
|
||||
"name": "Sticky Note5",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
640,
|
||||
-500
|
||||
],
|
||||
"parameters": {
|
||||
"color": 5,
|
||||
"width": 320,
|
||||
"height": 800,
|
||||
"content": "## Activate this workflow!"
|
||||
},
|
||||
"typeVersion": 1
|
||||
}
|
||||
],
|
||||
"active": false,
|
||||
"pinData": {},
|
||||
"settings": {
|
||||
"executionOrder": "v1"
|
||||
},
|
||||
"versionId": "bb1c2014-2e38-41c0-ae1c-952fb98d0504",
|
||||
"connections": {
|
||||
"Workflow ID": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Merge in Workflow ID for activation",
|
||||
"type": "main",
|
||||
"index": 1
|
||||
},
|
||||
{
|
||||
"node": "Merge in Workflow ID for deactivation",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Activate at 08:00 daily": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Workflow ID",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
},
|
||||
{
|
||||
"node": "Merge in Workflow ID for activation",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Deactivate at 20:00 daily": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Workflow ID",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
},
|
||||
{
|
||||
"node": "Merge in Workflow ID for deactivation",
|
||||
"type": "main",
|
||||
"index": 1
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Merge in Workflow ID for activation": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "n8n Activate",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Merge in Workflow ID for deactivation": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "n8n Deactivate",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
197
workflows/Schedule/1859_Schedule_Slack_Monitor_Scheduled.json
Normal file
197
workflows/Schedule/1859_Schedule_Slack_Monitor_Scheduled.json
Normal file
@@ -0,0 +1,197 @@
|
||||
{
|
||||
"id": "fvYgcG9s1pqP5cQ6",
|
||||
"meta": {
|
||||
"instanceId": "660cf2c29eb19fa42319afac3bd2a4a74c6354b7c006403f6cba388968b63f5d",
|
||||
"templateCredsSetupCompleted": true
|
||||
},
|
||||
"name": "Monitor ProductHunt",
|
||||
"tags": [
|
||||
{
|
||||
"id": "a8B9vqj0vNLXcKVQ",
|
||||
"name": "template",
|
||||
"createdAt": "2025-04-04T15:38:37.785Z",
|
||||
"updatedAt": "2025-04-04T15:38:37.785Z"
|
||||
}
|
||||
],
|
||||
"nodes": [
|
||||
{
|
||||
"id": "3cf0b7e0-ec9f-4173-bc85-1b4daef5aa22",
|
||||
"name": "Define relevant products",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
220,
|
||||
-100
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"assignments": {
|
||||
"assignments": [
|
||||
{
|
||||
"id": "a83156e0-1782-4d0a-a15c-1ff889ff915d",
|
||||
"name": "Relevant Products",
|
||||
"type": "string",
|
||||
"value": "AI Agents"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 3.4
|
||||
},
|
||||
{
|
||||
"id": "a316f080-0fd8-4723-a65c-bce2c2a13cf8",
|
||||
"name": "Found products?",
|
||||
"type": "n8n-nodes-base.if",
|
||||
"position": [
|
||||
660,
|
||||
-100
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"conditions": {
|
||||
"options": {
|
||||
"version": 2,
|
||||
"leftValue": "",
|
||||
"caseSensitive": true,
|
||||
"typeValidation": "strict"
|
||||
},
|
||||
"combinator": "and",
|
||||
"conditions": [
|
||||
{
|
||||
"id": "552c61c2-1ec0-40b5-b473-2423b646418b",
|
||||
"operator": {
|
||||
"type": "string",
|
||||
"operation": "notContains"
|
||||
},
|
||||
"leftValue": "={{ $json.data.modelResponse }}",
|
||||
"rightValue": "[NA]"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.2
|
||||
},
|
||||
{
|
||||
"id": "ffb0289e-9341-4641-bfcd-41b25f0b1379",
|
||||
"name": "Look up products",
|
||||
"type": "n8n-nodes-base.airtop",
|
||||
"position": [
|
||||
440,
|
||||
-100
|
||||
],
|
||||
"parameters": {
|
||||
"url": "https://www.producthunt.com/",
|
||||
"prompt": "=Extract up to 5 product launches that are {{ $json[\"Relevant Products\"] }} for each product extract the title and URL (if exists).\n\nReturn format:\nToday's [{{ $json[\"Relevant Products\"] }}] on Producthunt\n1. Title 1 (URL 1)\n2. Title 2 (URL 2)\nand so on\n\nIf you cannot find any relevant products, return [NA]",
|
||||
"resource": "extraction",
|
||||
"operation": "query",
|
||||
"sessionMode": "new",
|
||||
"additionalFields": {}
|
||||
},
|
||||
"credentials": {
|
||||
"airtopApi": {
|
||||
"id": "byhouJF8RLH5DkmY",
|
||||
"name": "[PROD] Airtop"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "4d1f0668-d5d5-4440-8608-3cfe3d61d0c0",
|
||||
"name": "Send slack message",
|
||||
"type": "n8n-nodes-base.slack",
|
||||
"position": [
|
||||
880,
|
||||
-100
|
||||
],
|
||||
"webhookId": "9887477b-9680-4701-a2a1-583d47f1fb5d",
|
||||
"parameters": {
|
||||
"text": "={{ $json.data.modelResponse }}",
|
||||
"select": "channel",
|
||||
"channelId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "C087FK3J0MC",
|
||||
"cachedResultName": "make-debug"
|
||||
},
|
||||
"otherOptions": {}
|
||||
},
|
||||
"credentials": {
|
||||
"slackApi": {
|
||||
"id": "NgjAmOgS9xRg1RlU",
|
||||
"name": "Slack account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.3
|
||||
},
|
||||
{
|
||||
"id": "921d283e-6d67-4aaa-a344-687bb23b8710",
|
||||
"name": "Trigger daily",
|
||||
"type": "n8n-nodes-base.scheduleTrigger",
|
||||
"position": [
|
||||
0,
|
||||
-100
|
||||
],
|
||||
"parameters": {
|
||||
"rule": {
|
||||
"interval": [
|
||||
{
|
||||
"triggerAtHour": 6
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
}
|
||||
],
|
||||
"active": false,
|
||||
"pinData": {},
|
||||
"settings": {
|
||||
"executionOrder": "v1"
|
||||
},
|
||||
"versionId": "e51e2bd0-43f0-4601-a0ad-f553f419a827",
|
||||
"connections": {
|
||||
"Trigger daily": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Define relevant products",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Found products?": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Send slack message",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Look up products": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Found products?",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Define relevant products": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Look up products",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
1004
workflows/Schedule/1867_Schedule_Filter_Sync_Scheduled.json
Normal file
1004
workflows/Schedule/1867_Schedule_Filter_Sync_Scheduled.json
Normal file
File diff suppressed because it is too large
Load Diff
245
workflows/Schedule/1891_Schedule_Slack_Automation_Scheduled.json
Normal file
245
workflows/Schedule/1891_Schedule_Slack_Automation_Scheduled.json
Normal file
@@ -0,0 +1,245 @@
|
||||
{
|
||||
"id": "jAML9xW28lOdsObH",
|
||||
"meta": {
|
||||
"instanceId": "be04c66ddabda64dad2c5d4c4611c3879370cfcff746359dfed22dbbfaacfc1a",
|
||||
"templateCredsSetupCompleted": true
|
||||
},
|
||||
"name": "Daily meetings summarization with Gemini AI",
|
||||
"tags": [],
|
||||
"nodes": [
|
||||
{
|
||||
"id": "2f5c6f8b-023a-4fc0-8684-66d7f743af0a",
|
||||
"name": "Sticky Note3",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
100,
|
||||
380
|
||||
],
|
||||
"parameters": {
|
||||
"color": 4,
|
||||
"width": 217.47708894878716,
|
||||
"height": 233,
|
||||
"content": "### Gemini Flash model a base"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "8c159251-d78c-4f18-a886-b930194e6459",
|
||||
"name": "Sticky Note4",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
600,
|
||||
40
|
||||
],
|
||||
"parameters": {
|
||||
"color": 4,
|
||||
"width": 223.7196765498655,
|
||||
"height": 236.66152029520293,
|
||||
"content": "### Send the response from AI back to slack channel\n"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "ee7164d8-f257-4e47-9867-239440153fd4",
|
||||
"name": "Sticky Note1",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
0,
|
||||
-20
|
||||
],
|
||||
"parameters": {
|
||||
"color": 4,
|
||||
"width": 561,
|
||||
"height": 360,
|
||||
"content": "## Trigger the task daily, receive the meetings data, process the data and return response for sending\n\n\n\n\n\n\n\n\n\n\n\nNo memory assigned to the model since the model is running one task and doesn't need a followup, then send the data to the user."
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "30ac78b7-08ba-4df9-a67c-e6825a9de380",
|
||||
"name": "Send response back to slack channel",
|
||||
"type": "n8n-nodes-base.slack",
|
||||
"position": [
|
||||
660,
|
||||
100
|
||||
],
|
||||
"webhookId": "636ae330-cc22-408b-b6a5-caf02e48897f",
|
||||
"parameters": {
|
||||
"text": "=Gemini : {{ $json.output.removeMarkdown() }} ",
|
||||
"select": "channel",
|
||||
"channelId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "C07QMTJHR0A",
|
||||
"cachedResultName": "ai-chat-gemini"
|
||||
},
|
||||
"otherOptions": {
|
||||
"mrkdwn": true,
|
||||
"includeLinkToWorkflow": false
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"slackApi": {
|
||||
"id": "DFQMzAsWKIdZFCR4",
|
||||
"name": "Slack account - iKemo"
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.1
|
||||
},
|
||||
{
|
||||
"id": "938738d6-1e2e-4e93-a5bf-70d11fd4fd32",
|
||||
"name": "Google Calendar - Get Events",
|
||||
"type": "n8n-nodes-base.googleCalendarTool",
|
||||
"position": [
|
||||
400,
|
||||
460
|
||||
],
|
||||
"parameters": {
|
||||
"options": {
|
||||
"timeMax": "={{ $fromAI('end_date') }}",
|
||||
"timeMin": "={{ $fromAI('start_date') }}"
|
||||
},
|
||||
"calendar": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "john@iKemo.io",
|
||||
"cachedResultName": "john@iKemo.io"
|
||||
},
|
||||
"operation": "getAll",
|
||||
"descriptionType": "manual",
|
||||
"toolDescription": "Use this tool when you’re asked to retrieve events data."
|
||||
},
|
||||
"credentials": {
|
||||
"googleCalendarOAuth2Api": {
|
||||
"id": "R2W7XHvEyQgyykI0",
|
||||
"name": "Google Calendar - John"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
},
|
||||
{
|
||||
"id": "2290c30e-9e9f-471a-a882-df6856a1dd9d",
|
||||
"name": "Calendar AI Agent",
|
||||
"type": "@n8n/n8n-nodes-langchain.agent",
|
||||
"position": [
|
||||
240,
|
||||
100
|
||||
],
|
||||
"parameters": {
|
||||
"text": "=summarize today's meetings.\nstartdate = {{ $now.format('yyyy-MM-dd 00:00:00') }}\nenddate = {{ $now.format('yyyy-MM-dd 23:59:59') }}",
|
||||
"options": {
|
||||
"systemMessage": "=You are a Google Calendar assistant.\nYour primary goal is to assist the user in managing their calendar effectively using Event Retrieval tool. \nAlways base your responses on the current date: \n{{ DateTime.local().toFormat('cccc d LLLL yyyy') }}.\nGeneral Guidelines:\nAlways mention all meetings attendees\nTool: Event Retrieval\nFormat the date range:\nstart_date: Start date and time in YYYY-MM-DD HH:mm:ss.\nend_date: End date and time in YYYY-MM-DD HH:mm:ss.\n"
|
||||
},
|
||||
"promptType": "define"
|
||||
},
|
||||
"typeVersion": 1.7
|
||||
},
|
||||
{
|
||||
"id": "dd63bab9-0f95-4b84-8bbd-26a1f91fe635",
|
||||
"name": "Schedule Trigger",
|
||||
"type": "n8n-nodes-base.scheduleTrigger",
|
||||
"position": [
|
||||
20,
|
||||
100
|
||||
],
|
||||
"parameters": {
|
||||
"rule": {
|
||||
"interval": [
|
||||
{
|
||||
"triggerAtHour": 9
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
},
|
||||
{
|
||||
"id": "06b9ecd2-83e0-498f-ad79-fbc89242a6f0",
|
||||
"name": "Sticky Note2",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
340,
|
||||
380
|
||||
],
|
||||
"parameters": {
|
||||
"color": 4,
|
||||
"width": 221.73584905660368,
|
||||
"height": 233,
|
||||
"content": "### Access Google Calendar and fetch all the data"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "48679508-2af8-4507-80a9-fc0aad171169",
|
||||
"name": "Google Gemini Chat Model",
|
||||
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
|
||||
"position": [
|
||||
160,
|
||||
480
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"modelName": "models/gemini-1.5-flash-latest"
|
||||
},
|
||||
"credentials": {
|
||||
"googlePalmApi": {
|
||||
"id": "3BBJHhMKD8W8VfL4",
|
||||
"name": "Google Gemini(PaLM) Api account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
}
|
||||
],
|
||||
"active": false,
|
||||
"pinData": {},
|
||||
"settings": {
|
||||
"executionOrder": "v1"
|
||||
},
|
||||
"versionId": "e517b214-b0e5-4119-8aaf-77ee0655dd78",
|
||||
"connections": {
|
||||
"Schedule Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Calendar AI Agent",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Calendar AI Agent": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Send response back to slack channel",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Google Gemini Chat Model": {
|
||||
"ai_languageModel": [
|
||||
[
|
||||
{
|
||||
"node": "Calendar AI Agent",
|
||||
"type": "ai_languageModel",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Google Calendar - Get Events": {
|
||||
"ai_tool": [
|
||||
[
|
||||
{
|
||||
"node": "Calendar AI Agent",
|
||||
"type": "ai_tool",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
232
workflows/Schedule/1932_Schedule_Telegram_Send_Scheduled.json
Normal file
232
workflows/Schedule/1932_Schedule_Telegram_Send_Scheduled.json
Normal file
@@ -0,0 +1,232 @@
|
||||
{
|
||||
"id": "nV1xFcF5HWJcD6w7",
|
||||
"meta": {
|
||||
"instanceId": "b1be0f8fadff87de92fbcd08be474fb794e544ef8a62dd9c586c9914a3836990"
|
||||
},
|
||||
"name": "Automatically Send Daily Meeting List to Telegram",
|
||||
"tags": [
|
||||
{
|
||||
"id": "THCdGkSMWvR7AzSR",
|
||||
"name": "Template",
|
||||
"createdAt": "2024-02-28T08:32:57.511Z",
|
||||
"updatedAt": "2024-02-28T08:32:57.511Z"
|
||||
},
|
||||
{
|
||||
"id": "ro6MmCu2eov1eWfR",
|
||||
"name": "Creators",
|
||||
"createdAt": "2024-03-01T11:11:36.214Z",
|
||||
"updatedAt": "2024-03-01T11:11:36.214Z"
|
||||
}
|
||||
],
|
||||
"nodes": [
|
||||
{
|
||||
"id": "eee04fe7-7f65-4db8-8ad8-7b67197a1f70",
|
||||
"name": "Get meetings for today",
|
||||
"type": "n8n-nodes-base.googleCalendar",
|
||||
"position": [
|
||||
1240,
|
||||
580
|
||||
],
|
||||
"parameters": {
|
||||
"options": {
|
||||
"timeMax": "={{ $today.plus({ days: 1 }) }}",
|
||||
"timeMin": "={{ $today }}",
|
||||
"singleEvents": true
|
||||
},
|
||||
"calendar": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "lrnr6ha3nt9cv8i0fimup684e4@group.calendar.google.com",
|
||||
"cachedResultName": "Meeting Room"
|
||||
},
|
||||
"operation": "getAll"
|
||||
},
|
||||
"credentials": {
|
||||
"googleCalendarOAuth2Api": {
|
||||
"id": "BSvdyVkCIqvVagsr",
|
||||
"name": "Google Calendar account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "358ab462-d69f-4980-99fd-de5a22a3c783",
|
||||
"name": "Every morning @ 6",
|
||||
"type": "n8n-nodes-base.scheduleTrigger",
|
||||
"position": [
|
||||
940,
|
||||
580
|
||||
],
|
||||
"parameters": {
|
||||
"rule": {
|
||||
"interval": [
|
||||
{
|
||||
"triggerAtHour": 6
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.1
|
||||
},
|
||||
{
|
||||
"id": "57f77b4e-d608-4929-bc49-2dfecff88c8d",
|
||||
"name": "Set",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
1520,
|
||||
580
|
||||
],
|
||||
"parameters": {
|
||||
"values": {
|
||||
"number": [],
|
||||
"string": [
|
||||
{
|
||||
"name": "Name",
|
||||
"value": "={{ $json.summary }}"
|
||||
},
|
||||
{
|
||||
"name": "Time",
|
||||
"value": "={{ $json.start }}"
|
||||
},
|
||||
{
|
||||
"name": "Guests",
|
||||
"value": "={{ $json.attendees }}"
|
||||
}
|
||||
]
|
||||
},
|
||||
"options": {},
|
||||
"keepOnlySet": true
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "6bcde2e8-46f6-46aa-b2f2-0e2670a9ce66",
|
||||
"name": "Function",
|
||||
"type": "n8n-nodes-base.function",
|
||||
"position": [
|
||||
1780,
|
||||
580
|
||||
],
|
||||
"parameters": {
|
||||
"functionCode": "let message = \"*Your meetings today are:* \\n\";\n\nfor (item of items) {\n const time = new Date(item.json.Time.dateTime);\n const formattedTime = new Intl.DateTimeFormat('fa-IR', {\n hour: 'numeric',\n minute: 'numeric',\n timeZone: item.json.Time.timeZone\n }).format(time);\n\n message += `* ${item.json.Name} | ${formattedTime}\\n`;\n\n if (item.json.Guests && item.json.Guests.length > 0) {\n message += '*Â - ';\n item.json.Guests.forEach((guest, index) => {\n message += `${guest.email}${index < item.json.Guests.length - 1 ? ', ' : ''}`;\n });\n message += '\\n';\n } else {\n message += '*Â - No guests\\n';\n }\n}\n\nreturn [{ json: { message } }];\n"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "568c4efd-a4d4-4309-ab3e-c15c955ce361",
|
||||
"name": "Telegram",
|
||||
"type": "n8n-nodes-base.telegram",
|
||||
"position": [
|
||||
2120,
|
||||
580
|
||||
],
|
||||
"parameters": {
|
||||
"text": "={{$json[\"message\"]}}",
|
||||
"additionalFields": {}
|
||||
},
|
||||
"typeVersion": 1.1
|
||||
},
|
||||
{
|
||||
"id": "9f2b0543-9f3f-43e2-a7ea-e77ce1430985",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
800,
|
||||
232
|
||||
],
|
||||
"parameters": {
|
||||
"color": 7,
|
||||
"width": 1527.817454565021,
|
||||
"height": 658.1528835709971,
|
||||
"content": "## This workflow \nprovides a convenient and automated way to stay on top of your daily meetings and improve your personal productivity.\n\n\n"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "41d85383-ccca-42f6-b9a1-d18e14ab3e32",
|
||||
"name": "Sticky Note1",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
2031.7098362416477,
|
||||
431.96581702471417
|
||||
],
|
||||
"parameters": {
|
||||
"color": 5,
|
||||
"width": 268.2901637583533,
|
||||
"height": 315.7841809336307,
|
||||
"content": "### Create a Telegram bot in @botfather\nUses your Telegram user ID to send the list of meetings as a message to Telegram."
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "254dccf8-a366-4cdc-84ca-987eca928ed6",
|
||||
"name": "Sticky Note2",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
820,
|
||||
340
|
||||
],
|
||||
"parameters": {
|
||||
"width": 430.6727493433055,
|
||||
"height": 151.60560223016907,
|
||||
"content": "## setup:\n### - Google Calendar connected to n8n\n### - A Telegram bot created and connected to n8n\n### - Your Telegram user ID specified"
|
||||
},
|
||||
"typeVersion": 1
|
||||
}
|
||||
],
|
||||
"active": false,
|
||||
"pinData": {},
|
||||
"settings": {
|
||||
"timezone": "Asia/Tehran",
|
||||
"callerPolicy": "workflowsFromSameOwner",
|
||||
"executionOrder": "v1",
|
||||
"saveManualExecutions": true
|
||||
},
|
||||
"versionId": "9dc21ef6-2b7d-4c80-9c03-0d636ab6f0d1",
|
||||
"connections": {
|
||||
"Set": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Function",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Function": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Telegram",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Every morning @ 6": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Get meetings for today",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Get meetings for today": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Set",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
323
workflows/Schedule/1952_Schedule_HTTP_Monitor_Webhook.json
Normal file
323
workflows/Schedule/1952_Schedule_HTTP_Monitor_Webhook.json
Normal file
@@ -0,0 +1,323 @@
|
||||
{
|
||||
"id": "pcLi17oUJK9pSaee",
|
||||
"meta": {
|
||||
"instanceId": "10ac0d272b984a3e01d44645b4be41105d42352c9db9f4c0c7f5be7946b87d41",
|
||||
"templateCredsSetupCompleted": true
|
||||
},
|
||||
"name": "Web Server Monitor.",
|
||||
"tags": [],
|
||||
"nodes": [
|
||||
{
|
||||
"id": "014e1202-3822-4d3f-817e-31f64c8bd5f5",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
-680,
|
||||
-440
|
||||
],
|
||||
"parameters": {
|
||||
"width": 560,
|
||||
"height": 540,
|
||||
"content": "📘 Node Descriptions for Your Web Server Monitor Workflow\n\n⏰ 1. Schedule Trigger \nTriggers the workflow every minute to initiate regular checks on server availability.\n\n📄 2. Web Servers List (Google Sheets) \nFetches a list of server hostnames or IP addresses from a Google Sheet. \nEach row is treated as one server. This makes server management easy — no need to edit the workflow to add/remove servers.\n\n🌐 3. Server Alive Check (HTTP) \nSends an HTTP GET request to each server (e.g., http://your-server.com). \nIf the request fails, the error path is triggered. \n\n📝 4. Web Server Alive Log (Google Sheets) \nLogs successful server checks into a separate Sheet with a timestamp.\nThis log helps track uptime history, verify server health, and generate availability reports.\n\n🚨📧 5. Server Down Notification (Gmail) \nSends an alert email if a server does not respond or returns an error. \nIncludes the server address and the timestamp of failure.\n\n📝 6. Web Server Down Log (Google Sheets)\nLogs the failed server checks into another Sheet with a timestamp. \nUseful for uptime reporting, debugging, and audit tracking.\n"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "94a3454c-69bd-4a5d-b169-8f3772a41321",
|
||||
"name": "Schedule Trigger",
|
||||
"type": "n8n-nodes-base.scheduleTrigger",
|
||||
"position": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"parameters": {
|
||||
"rule": {
|
||||
"interval": [
|
||||
{
|
||||
"field": "minutes",
|
||||
"minutesInterval": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
},
|
||||
{
|
||||
"id": "f92fcadf-0b13-42ac-abed-aaf169d0ed76",
|
||||
"name": "Server-Monitor",
|
||||
"type": "n8n-nodes-base.googleSheets",
|
||||
"position": [
|
||||
220,
|
||||
0
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"sheetName": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": 524060827,
|
||||
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1OiwBkf3bs3tcfi5cAIrOl_GrXw2EfQLdcPbh6SaBFKQ/edit#gid=524060827",
|
||||
"cachedResultName": "Server_List"
|
||||
},
|
||||
"documentId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "1OiwBkf3bs3tcfi5cAIrOl_GrXw2EfQLdcPbh6SaBFKQ",
|
||||
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1OiwBkf3bs3tcfi5cAIrOl_GrXw2EfQLdcPbh6SaBFKQ/edit?usp=drivesdk",
|
||||
"cachedResultName": "Server-Monitor"
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"googleSheetsOAuth2Api": {
|
||||
"id": "8cXGgTelVK5DewVr",
|
||||
"name": "Google Sheets account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 4.5
|
||||
},
|
||||
{
|
||||
"id": "c168a1f9-1f3f-40b8-95d0-51f6259d8096",
|
||||
"name": "HTTP Request",
|
||||
"type": "n8n-nodes-base.httpRequest",
|
||||
"onError": "continueErrorOutput",
|
||||
"position": [
|
||||
440,
|
||||
0
|
||||
],
|
||||
"parameters": {
|
||||
"url": "=http://{{ $json.Server }}",
|
||||
"options": {}
|
||||
},
|
||||
"typeVersion": 4.2
|
||||
},
|
||||
{
|
||||
"id": "0ac82373-6958-4de9-8cf7-94b0005197ff",
|
||||
"name": "Server_Status_Alive",
|
||||
"type": "n8n-nodes-base.googleSheets",
|
||||
"position": [
|
||||
660,
|
||||
-180
|
||||
],
|
||||
"parameters": {
|
||||
"columns": {
|
||||
"value": {
|
||||
"Status": "Alive",
|
||||
"TimeStamp": "={{ $now.format('yyyy-MM-dd') }}",
|
||||
"Server IP Address": "={{ $('Server-Monitor').item.json.Server }}"
|
||||
},
|
||||
"schema": [
|
||||
{
|
||||
"id": "TimeStamp",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "TimeStamp",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "Server IP Address",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "Server IP Address",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "Status",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "Status",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
}
|
||||
],
|
||||
"mappingMode": "defineBelow",
|
||||
"matchingColumns": [],
|
||||
"attemptToConvertTypes": false,
|
||||
"convertFieldsToString": false
|
||||
},
|
||||
"options": {},
|
||||
"operation": "append",
|
||||
"sheetName": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": 303958634,
|
||||
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1OiwBkf3bs3tcfi5cAIrOl_GrXw2EfQLdcPbh6SaBFKQ/edit#gid=303958634",
|
||||
"cachedResultName": "Server_Status_Alive"
|
||||
},
|
||||
"documentId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "1OiwBkf3bs3tcfi5cAIrOl_GrXw2EfQLdcPbh6SaBFKQ",
|
||||
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1OiwBkf3bs3tcfi5cAIrOl_GrXw2EfQLdcPbh6SaBFKQ/edit?usp=drivesdk",
|
||||
"cachedResultName": "Server-Monitor"
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"googleSheetsOAuth2Api": {
|
||||
"id": "8cXGgTelVK5DewVr",
|
||||
"name": "Google Sheets account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 4.5
|
||||
},
|
||||
{
|
||||
"id": "6dc31115-4ab6-44cf-ac4f-e2af82a5355e",
|
||||
"name": "Gmail",
|
||||
"type": "n8n-nodes-base.gmail",
|
||||
"position": [
|
||||
660,
|
||||
100
|
||||
],
|
||||
"webhookId": "dec1def3-c858-4a43-b96e-2655d3fa3b77",
|
||||
"parameters": {
|
||||
"message": "=Hi Team,\n\nAt {{$now.format('yyyy-MM-dd HH:mm:ss')}}, the following server failed to respond to ping:\n\n🔻 Server Down: {{ $json[\"Server\"] }} \n\nPlease investigate immediately to prevent service disruption. \n\nAutomated Monitoring System\n",
|
||||
"options": {},
|
||||
"subject": "=🔻 Server Down: {{ $json[\"Server\"] }}: {{ $today.format('yyyy-MM-dd') }}"
|
||||
},
|
||||
"credentials": {
|
||||
"gmailOAuth2": {
|
||||
"id": "C1RVeb9JgdvkMkP4",
|
||||
"name": "Gmail account 2"
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.1
|
||||
},
|
||||
{
|
||||
"id": "10262115-57a2-4c4d-9a10-89f4f6ee4ed7",
|
||||
"name": "Server_Status_Down",
|
||||
"type": "n8n-nodes-base.googleSheets",
|
||||
"position": [
|
||||
880,
|
||||
100
|
||||
],
|
||||
"parameters": {
|
||||
"columns": {
|
||||
"value": {
|
||||
"Status": "Down",
|
||||
"TimeStamp": "={{$now.format('yyyy-MM-dd HH:mm:ss')}}",
|
||||
"Server IP Address": "={{ $('Server-Monitor').item.json.Server }}"
|
||||
},
|
||||
"schema": [
|
||||
{
|
||||
"id": "TimeStamp",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "TimeStamp",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "Server IP Address",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "Server IP Address",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
},
|
||||
{
|
||||
"id": "Status",
|
||||
"type": "string",
|
||||
"display": true,
|
||||
"required": false,
|
||||
"displayName": "Status",
|
||||
"defaultMatch": false,
|
||||
"canBeUsedToMatch": true
|
||||
}
|
||||
],
|
||||
"mappingMode": "defineBelow",
|
||||
"matchingColumns": [],
|
||||
"attemptToConvertTypes": false,
|
||||
"convertFieldsToString": false
|
||||
},
|
||||
"options": {},
|
||||
"operation": "append",
|
||||
"sheetName": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "gid=0",
|
||||
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1OiwBkf3bs3tcfi5cAIrOl_GrXw2EfQLdcPbh6SaBFKQ/edit#gid=0",
|
||||
"cachedResultName": "Server_Status_Down"
|
||||
},
|
||||
"documentId": {
|
||||
"__rl": true,
|
||||
"mode": "list",
|
||||
"value": "1OiwBkf3bs3tcfi5cAIrOl_GrXw2EfQLdcPbh6SaBFKQ",
|
||||
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1OiwBkf3bs3tcfi5cAIrOl_GrXw2EfQLdcPbh6SaBFKQ/edit?usp=drivesdk",
|
||||
"cachedResultName": "Server-Monitor"
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"googleSheetsOAuth2Api": {
|
||||
"id": "8cXGgTelVK5DewVr",
|
||||
"name": "Google Sheets account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 4.5
|
||||
}
|
||||
],
|
||||
"active": false,
|
||||
"pinData": {},
|
||||
"settings": {
|
||||
"executionOrder": "v1"
|
||||
},
|
||||
"versionId": "21468219-4434-4a0c-a3c4-9068baccc3cc",
|
||||
"connections": {
|
||||
"Gmail": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Server_Status_Down",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"HTTP Request": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Server_Status_Alive",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"node": "Gmail",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Server-Monitor": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "HTTP Request",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Schedule Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Server-Monitor",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
263
workflows/Schedule/2045_Schedule_HTTP_Create_Scheduled.json
Normal file
263
workflows/Schedule/2045_Schedule_HTTP_Create_Scheduled.json
Normal file
@@ -0,0 +1,263 @@
|
||||
{
|
||||
"meta": {
|
||||
"instanceId": "6045c639951d83c8706b0dd8d6330164bda01fe58f103cedc2c276bf1f9c11f1"
|
||||
},
|
||||
"nodes": [
|
||||
{
|
||||
"id": "d2a24a9b-9cf3-4de0-82e7-5d858658d4b4",
|
||||
"name": "Extract specific content",
|
||||
"type": "n8n-nodes-base.html",
|
||||
"notes": "Extract selected headlines, editor's picks, spotlight etc.",
|
||||
"position": [
|
||||
800,
|
||||
340
|
||||
],
|
||||
"parameters": {
|
||||
"options": {
|
||||
"cleanUpText": true
|
||||
},
|
||||
"operation": "extractHtmlContent",
|
||||
"extractionValues": {
|
||||
"values": [
|
||||
{
|
||||
"key": "Headline #1",
|
||||
"cssSelector": "#site-content > div:nth-child(1) > section > div > div > div.layout-desktop__grid.layout-desktop__grid--span4.layout-desktop__grid--column-start-1.layout-desktop__grid--row-start-1.layout-desktop__grid--with-border.layout--default > div > div > div > div.story-group-stacked__primary-story > div > div > div > div > div.primary-story__teaser"
|
||||
},
|
||||
{
|
||||
"key": "Headline #2",
|
||||
"cssSelector": "#site-content > div:nth-child(1) > section > div > div > div.layout-desktop__grid.layout-desktop__grid--span6.layout-desktop__grid--column-start-5.layout-desktop__grid--row-start-1.layout-desktop__grid--with-border.layout--default > div > div > div > div > div > div.story-group__article.story-group__article--featured > div > div.featured-story-content > div.headline.js-teaser-headline.headline--scale-5.headline--color-black > a > span"
|
||||
},
|
||||
{
|
||||
"key": "Editor's Picks",
|
||||
"cssSelector": "#site-content > div:nth-child(1) > section > div > div > div.layout-desktop__grid.layout-desktop__grid--span2.layout-desktop__grid--column-start-11.layout-desktop__grid--row-start-1.layout--default > div"
|
||||
},
|
||||
{
|
||||
"key": "Top Stories",
|
||||
"cssSelector": "#site-content > div:nth-child(3) > section > div",
|
||||
"skipSelectors": "h2"
|
||||
},
|
||||
{
|
||||
"key": "Spotlight",
|
||||
"cssSelector": "#site-content > div:nth-child(6) > section",
|
||||
"skipSelectors": "h2"
|
||||
},
|
||||
{
|
||||
"key": "Various News",
|
||||
"cssSelector": "#site-content > div:nth-child(8) > section",
|
||||
"skipSelectors": "h2"
|
||||
},
|
||||
{
|
||||
"key": "Europe News",
|
||||
"cssSelector": "#site-content > div:nth-child(13) > section",
|
||||
"skipSelectors": "h2"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"notesInFlow": true,
|
||||
"typeVersion": 1.2
|
||||
},
|
||||
{
|
||||
"id": "38af5df2-65ce-4f04-aed3-6f71d81a37df",
|
||||
"name": "Get financial news online",
|
||||
"type": "n8n-nodes-base.httpRequest",
|
||||
"notes": "Url : https://www.ft.com/",
|
||||
"position": [
|
||||
580,
|
||||
340
|
||||
],
|
||||
"parameters": {
|
||||
"url": "https://www.ft.com/",
|
||||
"options": {}
|
||||
},
|
||||
"notesInFlow": true,
|
||||
"typeVersion": 4.2
|
||||
},
|
||||
{
|
||||
"id": "764b2209-bf20-4feb-b000-fa261459a617",
|
||||
"name": "Schedule Trigger",
|
||||
"type": "n8n-nodes-base.scheduleTrigger",
|
||||
"position": [
|
||||
360,
|
||||
340
|
||||
],
|
||||
"parameters": {
|
||||
"rule": {
|
||||
"interval": [
|
||||
{
|
||||
"triggerAtHour": 7
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1.2
|
||||
},
|
||||
{
|
||||
"id": "96b337ba-6fe7-47ec-8385-58bfc6c789cb",
|
||||
"name": "Google Gemini Chat Model",
|
||||
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
|
||||
"position": [
|
||||
1200,
|
||||
520
|
||||
],
|
||||
"parameters": {
|
||||
"options": {}
|
||||
},
|
||||
"credentials": {
|
||||
"googlePalmApi": {
|
||||
"id": "450x4z8bKvomb0tZ",
|
||||
"name": "Google Gemini(PaLM) Api account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "925eabf3-3619-4da2-be2c-bda97c605d4d",
|
||||
"name": "Gather the elements",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
1020,
|
||||
340
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"assignments": {
|
||||
"assignments": [
|
||||
{
|
||||
"id": "5412a5ee-dbbe-4fcc-98a5-6fafc37b94d1",
|
||||
"name": "News together",
|
||||
"type": "string",
|
||||
"value": "=Yahoo news :\n\n{{ $json['Headline '] }};\n\n{{ $('HTML').item.json['News #1'] }};\n\n{{ $('HTML').item.json['News #2'] }};\n\nFinancial times news :\n\n{{ $('Extract specific content').item.json['Headline #1'] }};\n\n{{ $('Extract specific content').item.json['Headline #2'] }};\n\n{{ $('Extract specific content').item.json['Editor\\'s Picks'] }};\n\n{{ $('Extract specific content').item.json['Top Stories'] }};\n\n{{ $('Extract specific content').item.json.Spotlight }};\n\n{{ $('Extract specific content').item.json['Various News'] }};\n\n{{ $('Extract specific content').item.json['Europe News'] }};\n\n"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 3.4
|
||||
},
|
||||
{
|
||||
"id": "5445b14f-25e8-4759-82d4-985961ca7fdd",
|
||||
"name": "AI Agent",
|
||||
"type": "@n8n/n8n-nodes-langchain.agent",
|
||||
"position": [
|
||||
1200,
|
||||
340
|
||||
],
|
||||
"parameters": {
|
||||
"text": "=Here are the news to summarise :\n\n{{ $json['News together'] }}",
|
||||
"options": {
|
||||
"systemMessage": "You role is to summarise the financial news from today. The summary will help an investor to have a clear view of the market, and to make better choice. \n\nYou will write the body of an e-mail using a well structured html format"
|
||||
},
|
||||
"promptType": "define"
|
||||
},
|
||||
"typeVersion": 1.6
|
||||
},
|
||||
{
|
||||
"id": "30b76eac-d646-44d8-bc41-46aa2d9fe05f",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
-200,
|
||||
200
|
||||
],
|
||||
"parameters": {
|
||||
"width": 683.6774193548385,
|
||||
"height": 581.4193548387093,
|
||||
"content": "# Financial News Recap Workflow\n\nThis workflow automates the daily email delivery of curated financial news to a designated recipient at 7:00 AM. It extracts relevant financial news articles, structures the content, and sends it in a concise summary format via Microsoft Outlook.\n\n### Workflow Steps\n1. **Schedule Trigger** \n Sets the workflow to activate daily at 7:00 AM.\n2. **Fetch Financial News** \n Retrieves financial news content from [ft.com](https://www.ft.com/) using an HTTP Request node.\n3. **Extract News Headlines and Sections** \n Using CSS selectors, this node parses specific sections of the HTML page to gather key headlines and sections:\n - Headline #1, Headline #2\n - Editor's Picks\n - etc.\n4. **Aggregate News Content** \n Combines all extracted news sections into a single data set, organizing content under relevant categories.\n5. **AI Agent for Summarization** \n A Google Gemini Chat Model generates a structured summary in HTML format, optimized to provide investors with a clear market overview.\n6. **Email Dispatch** \n Sends the summarized content via Microsoft Outlook with a subject \"Financial news from today,\" formatted in HTML for clarity and readability.\n"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "7f2b6e9a-8b14-4083-a05c-3b76aae601a8",
|
||||
"name": "Send the summary by e-mail",
|
||||
"type": "n8n-nodes-base.microsoftOutlook",
|
||||
"position": [
|
||||
1540,
|
||||
340
|
||||
],
|
||||
"parameters": {
|
||||
"subject": "Financial news from today",
|
||||
"bodyContent": "=News of the day : \n\n{{ $json.output }}",
|
||||
"toRecipients": "",
|
||||
"additionalFields": {
|
||||
"bodyContentType": "html"
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"microsoftOutlookOAuth2Api": {
|
||||
"id": "8asOQiRWBGic8ei8",
|
||||
"name": "Microsoft Outlook account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 2
|
||||
}
|
||||
],
|
||||
"pinData": {},
|
||||
"connections": {
|
||||
"AI Agent": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Send the summary by e-mail",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Schedule Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Get financial news online",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Gather the elements": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "AI Agent",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Extract specific content": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Gather the elements",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Google Gemini Chat Model": {
|
||||
"ai_languageModel": [
|
||||
[
|
||||
{
|
||||
"node": "AI Agent",
|
||||
"type": "ai_languageModel",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Get financial news online": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Extract specific content",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user