Workflow: Wait Code Send

Workflow Details

Download Workflow
{
    "meta": {
        "instanceId": "cb484ba7b742928a2048bf8829668bed5b5ad9787579adea888f05980292a4a7"
    },
    "nodes": [
        {
            "id": "fe775b06-0264-49ea-af29-16289fee1100",
            "name": "Get events page",
            "type": "n8n-nodes-base.httpRequest",
            "position": [
                -660,
                1160
            ],
            "parameters": {
                "url": "={{ $json.location }}\/this-month?page={{ $runIndex+1}}",
                "options": []
            },
            "typeVersion": 3
        },
        {
            "id": "c55554f4-f06c-4084-b9c2-454cf290682b",
            "name": "Last page?",
            "type": "n8n-nodes-base.if",
            "position": [
                0,
                1160
            ],
            "parameters": {
                "conditions": {
                    "number": [
                        {
                            "value1": "={{ $items().length }}",
                            "value2": "=50"
                        }
                    ]
                }
            },
            "typeVersion": 1
        },
        {
            "id": "3d750b8a-4288-45ac-af2d-24fc6b7126ec",
            "name": "Get all events from the page",
            "type": "n8n-nodes-base.htmlExtract",
            "position": [
                -440,
                1160
            ],
            "parameters": {
                "options": {
                    "trimValues": true
                },
                "extractionValues": {
                    "values": [
                        {
                            "key": "events",
                            "cssSelector": "li.event-listings-element",
                            "returnArray": true,
                            "returnValue": "html"
                        }
                    ]
                }
            },
            "typeVersion": 1
        },
        {
            "id": "84b570d5-60ad-4cb1-9428-1cc3372954cb",
            "name": "Get each event data",
            "type": "n8n-nodes-base.htmlExtract",
            "position": [
                420,
                1140
            ],
            "parameters": {
                "options": [],
                "dataPropertyName": "events",
                "extractionValues": {
                    "values": [
                        {
                            "key": "date",
                            "attribute": "datetime",
                            "cssSelector": "time",
                            "returnArray": true,
                            "returnValue": "attribute"
                        },
                        {
                            "key": "artist",
                            "cssSelector": "p.artists strong"
                        },
                        {
                            "key": "support",
                            "cssSelector": "p.artists span.support"
                        },
                        {
                            "key": "location",
                            "cssSelector": "p.location"
                        },
                        {
                            "key": "eventLink",
                            "attribute": "href",
                            "cssSelector": "a.event-link",
                            "returnValue": "attribute"
                        }
                    ]
                }
            },
            "typeVersion": 1
        },
        {
            "id": "783555d1-1c9c-4bda-8969-0ac46dced10e",
            "name": "Limit to one",
            "type": "n8n-nodes-base.itemLists",
            "position": [
                420,
                1300
            ],
            "parameters": {
                "operation": "limit"
            },
            "typeVersion": 1
        },
        {
            "id": "fdd1c66b-5e20-4c2d-8c01-38555621ec84",
            "name": "Wait 3s",
            "type": "n8n-nodes-base.wait",
            "position": [
                220,
                1300
            ],
            "webhookId": "617f8c35-66e5-4fca-b974-cf9fc4130d68",
            "parameters": {
                "unit": "seconds",
                "amount": 3
            },
            "typeVersion": 1
        },
        {
            "id": "49b5b5c7-9645-42cb-89ec-bb9972c8b379",
            "name": "Split events",
            "type": "n8n-nodes-base.itemLists",
            "position": [
                -220,
                1160
            ],
            "parameters": {
                "options": [],
                "fieldToSplitOut": "events"
            },
            "typeVersion": 1
        },
        {
            "id": "30b06dc8-d896-4684-9c79-3d845f1041ac",
            "name": "Collect all results",
            "type": "n8n-nodes-base.code",
            "position": [
                220,
                1140
            ],
            "parameters": {
                "jsCode": "let results = [],\n  i = 0;\n\ndo {\n  try {\n    results = results.concat($items('Split events', 0, i));\n  } catch (error) {\n    return results;\n  }\n  i++;\n} while(true);"
            },
            "typeVersion": 1
        },
        {
            "id": "ea9444ad-06a3-4567-9638-ce8ef8bfff23",
            "name": "\ud83e\udd16 Each month",
            "type": "n8n-nodes-base.scheduleTrigger",
            "position": [
                -1220,
                1160
            ],
            "parameters": {
                "rule": {
                    "interval": [
                        {
                            "field": "months",
                            "triggerAtHour": 20
                        }
                    ]
                }
            },
            "typeVersion": 1
        },
        {
            "id": "73f7295d-c0f7-42b6-8784-3198538e6e48",
            "name": "Setup location and email",
            "type": "n8n-nodes-base.set",
            "position": [
                -880,
                1160
            ],
            "parameters": {
                "values": {
                    "string": [
                        {
                            "name": "location"
                        },
                        {
                            "name": "email"
                        }
                    ]
                },
                "options": [],
                "keepOnlySet": true
            },
            "typeVersion": 1
        },
        {
            "id": "a3529743-a7fd-4056-80a9-63b0dac259d6",
            "name": "\ud83d\udc84 Lick the stamp",
            "type": "n8n-nodes-base.code",
            "position": [
                620,
                1140
            ],
            "parameters": {
                "jsCode": "const monthNames = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' ];\n\nlet html = `<table style=\"width: 100%\">`;\nfor (const item of $input.all()) {\n  const eventDate = new Date(item.json.date[0]);\n  \n   html += `\n    <tr>\n      <td style=\"width: 60px; background-color: #2e2e32; font-family: sans-serif\">\n        <a href=\"https:\/\/www.songkick.com${item.json.eventLink}\" style=\"color: #dcdfe6; text-decoration: none\">\n          <p style=\"font-weight: bold; text-align: center; margin: 5px 0 0; padding: 0 0.5em\">${monthNames[eventDate.getMonth()]}<\/p>\n          <p style=\"font-weight: bold; font-size: 1.5em; text-align: center; margin: 0 0 2px\">${eventDate.getDate()}<\/p>\n        <\/a>\n      <\/td>\n      <td style=\"background-color: #f2f4f8; font-family: sans-serif; padding: 0.3em 0.5em\">\n        <a href=\"https:\/\/www.songkick.com${item.json.eventLink}\" style=\"color: #555555; text-decoration: none\">\n        <div>\n          <p style=\"font-size: 1.2em; margin: 0\"><b>${item.json.artist}<\/b>`\n\n  if (item.json.support) {\n    html = html + `<span style=\"color: #7d7d87; margin:0\"> + ${item.json.support}<\/span>`;\n  }\n  \n  html += `\n          <\/p><p style=\"color: #7d7d87; margin: 0\">${item.json.location.split(',')[0].replace(\/(\\r\\n|\\n|\\r)\/gm, \"\")}<\/p>\n        <\/div>\n        <\/a>\n      <\/td>\n  <\/tr>\n   `\n}\nhtml += '<\/table>';\n\nreturn { \n  \"html\": html,\n  \"total\": $input.all().length \n};\n\/\/$input.all();"
            },
            "typeVersion": 1
        },
        {
            "id": "a8f0e1cf-e8b5-402f-9336-4c623980a315",
            "name": "\u2709\ufe0f Send it",
            "type": "n8n-nodes-base.gmail",
            "position": [
                820,
                1140
            ],
            "parameters": {
                "sendTo": "={{ $('Setup location and email').params[\"values\"][\"string\"][1][\"value\"] }}",
                "message": "={{ $json[\"html\"] }}",
                "options": {
                    "senderName": "=Monthly event newsletter"
                },
                "subject": "=\ud83d\udceb This month: {{$json[\"total\"]}} events!"
            },
            "typeVersion": 2
        },
        {
            "id": "e23fd2fc-baf3-4494-ae4a-ddb51f45ff3c",
            "name": "Sticky Note",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                -940,
                1080
            ],
            "parameters": {
                "color": 7,
                "height": 230.2142363510711220442317426204681396484375,
                "content": "### Setup your location link and receiver email(s) here"
            },
            "typeVersion": 1
        },
        {
            "id": "58300fe9-e3b3-452f-b13b-a9296cf05a71",
            "name": "Sticky Note1",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                800,
                1060
            ],
            "parameters": {
                "color": 3,
                "height": 230.2142363510711220442317426204681396484375,
                "content": "###  Don't forget to connect a GMail account to this node!"
            },
            "typeVersion": 1
        },
        {
            "id": "663147c1-1af0-49f3-9671-3d1d66e7a6f0",
            "name": "Sticky Note2",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                460,
                720
            ],
            "parameters": {
                "color": 4,
                "content": "## Don't forget to activate the workflow here \u261d\ufe0f"
            },
            "typeVersion": 1
        }
    ],
    "pinData": [],
    "connections": {
        "Wait 3s": {
            "main": [
                [
                    {
                        "node": "Limit to one",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Last page?": {
            "main": [
                [
                    {
                        "node": "Collect all results",
                        "type": "main",
                        "index": 0
                    }
                ],
                [
                    {
                        "node": "Wait 3s",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Limit to one": {
            "main": [
                [
                    {
                        "node": "Setup location and email",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Split events": {
            "main": [
                [
                    {
                        "node": "Last page?",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Get events page": {
            "main": [
                [
                    {
                        "node": "Get all events from the page",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "\ud83e\udd16 Each month": {
            "main": [
                [
                    {
                        "node": "Setup location and email",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Collect all results": {
            "main": [
                [
                    {
                        "node": "Get each event data",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Get each event data": {
            "main": [
                [
                    {
                        "node": "\ud83d\udc84 Lick the stamp",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "\ud83d\udc84 Lick the stamp": {
            "main": [
                [
                    {
                        "node": "\u2709\ufe0f Send it",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Setup location and email": {
            "main": [
                [
                    {
                        "node": "Get events page",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Get all events from the page": {
            "main": [
                [
                    {
                        "node": "Split events",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        }
    }
}
Back to Workflows

Related Workflows

Splitout Code Create Webhook
View
My workflow 3
View
Splitout HTTP Create Webhook
View
Splitout Schedule Update Webhook
View
Fetch the Most Recent Document from Google Drive
View
Splitout Code Send Webhook
View
Manual Stickynote Automate Triggered
View
Create a new task in Todoist
View
Form with Dynamic Dropdown Field
View
Filter HTTP Update Webhook
View