Workflow: N8Ntrainingcustomermessenger Wait Create

Workflow Details

Download Workflow
{
    "nodes": [
        {
            "name": "On clicking 'execute'",
            "type": "n8n-nodes-base.manualTrigger",
            "position": [
                400,
                520
            ],
            "parameters": [],
            "typeVersion": 1
        },
        {
            "name": "Note1",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                1500,
                360
            ],
            "parameters": {
                "width": 780,
                "height": 360,
                "content": "## 2. Wait for an external event\nUse this operation when an external step is needed in order to continue with the rest of the workflow.\nFor example - a workflow sends a purchase approval link to the merchant (using Gmail, Slack etc..) and waits for the merchant to click on it before continuing with the rest of the steps.\n\nIn this example, the `Customer Messenger` node mimics the email or messaging node.\n"
            },
            "typeVersion": 1
        },
        {
            "name": "Note",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                200,
                380
            ],
            "parameters": {
                "width": 300,
                "height": 120,
                "content": "### Click the `Execute Workflow` button and double click on the nodes to see the input and output items."
            },
            "typeVersion": 1
        },
        {
            "name": "Create approval URL",
            "type": "n8n-nodes-base.set",
            "position": [
                1540,
                520
            ],
            "parameters": {
                "values": {
                    "string": [
                        {
                            "name": "URL",
                            "value": "={{$resumeWebhookUrl}}?name=nathan"
                        }
                    ]
                },
                "options": [],
                "keepOnlySet": true
            },
            "typeVersion": 1
        },
        {
            "name": "Wait for external approval",
            "type": "n8n-nodes-base.wait",
            "position": [
                1940,
                520
            ],
            "webhookId": "0bcafff8-9fc1-4415-95b1-00746bb1304d",
            "parameters": {
                "resume": "webhook",
                "options": []
            },
            "typeVersion": 1
        },
        {
            "name": "Rest of the workflow placeholder",
            "type": "n8n-nodes-base.noOp",
            "position": [
                2140,
                520
            ],
            "parameters": [],
            "typeVersion": 1
        },
        {
            "name": "Customer Datastore",
            "type": "n8n-nodes-base.n8nTrainingCustomerDatastore",
            "position": [
                580,
                520
            ],
            "parameters": {
                "operation": "getAllPeople",
                "returnAll": true
            },
            "typeVersion": 1
        },
        {
            "name": "SplitInBatches",
            "type": "n8n-nodes-base.splitInBatches",
            "position": [
                760,
                520
            ],
            "parameters": {
                "options": [],
                "batchSize": 1
            },
            "typeVersion": 1
        },
        {
            "name": "Note4",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                540,
                360
            ],
            "parameters": {
                "width": 900,
                "height": 360,
                "content": "## 1. Rate Limiting \nSometimes you need to slow down how often you are contacting a service.\n\nIn this example, `Customer Datastore` node simulates the big batches of requests coming at once, the `SplitInBatches` node handles each one individually in a loop, and the `Wait` node creates a 2 second delay between each message to a customer."
            },
            "typeVersion": 1
        },
        {
            "name": "Wait for time interval",
            "type": "n8n-nodes-base.wait",
            "position": [
                920,
                520
            ],
            "webhookId": "2b72e9d7-75b7-4ef5-87e7-2bfdfdbaa20f",
            "parameters": {
                "unit": "seconds",
                "amount": 2
            },
            "typeVersion": 1
        },
        {
            "name": "If - Are we Finished?",
            "type": "n8n-nodes-base.if",
            "position": [
                1280,
                520
            ],
            "parameters": {
                "conditions": {
                    "boolean": [
                        {
                            "value1": "={{$node[\"SplitInBatches\"].context[\"noItemsLeft\"]}}",
                            "value2": true
                        }
                    ]
                }
            },
            "typeVersion": 1
        },
        {
            "name": "Customer Messenger - Send URL to merchant",
            "type": "n8n-nodes-base.n8nTrainingCustomerMessenger",
            "position": [
                1740,
                520
            ],
            "parameters": {
                "message": "={{$json[\"URL\"]}}",
                "customerId": "1"
            },
            "typeVersion": 1
        },
        {
            "name": "Customer Messenger - Send message to client",
            "type": "n8n-nodes-base.n8nTrainingCustomerMessenger",
            "position": [
                1100,
                520
            ],
            "parameters": {
                "message": "=\nHi {{$node[\"Customer Datastore\"].json[\"name\"]}}\nThis message was sent at {{$now.toLocaleString(DateTime.TIME_WITH_SECONDS)}}",
                "customerId": "={{$node[\"Customer Datastore\"].json[\"id\"]}}"
            },
            "typeVersion": 1
        }
    ],
    "connections": {
        "SplitInBatches": {
            "main": [
                [
                    {
                        "node": "Wait for time interval",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Customer Datastore": {
            "main": [
                [
                    {
                        "node": "SplitInBatches",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Create approval URL": {
            "main": [
                [
                    {
                        "node": "Customer Messenger - Send URL to merchant",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "If - Are we Finished?": {
            "main": [
                [
                    {
                        "node": "Create approval URL",
                        "type": "main",
                        "index": 0
                    }
                ],
                [
                    {
                        "node": "SplitInBatches",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "On clicking 'execute'": {
            "main": [
                [
                    {
                        "node": "Customer Datastore",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Wait for time interval": {
            "main": [
                [
                    {
                        "node": "Customer Messenger - Send message to client",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Wait for external approval": {
            "main": [
                [
                    {
                        "node": "Rest of the workflow placeholder",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Customer Messenger - Send URL to merchant": {
            "main": [
                [
                    {
                        "node": "Wait for external approval",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Customer Messenger - Send message to client": {
            "main": [
                [
                    {
                        "node": "If - Are we Finished?",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        }
    }
}
Back to Workflows

Related Workflows

OpenAI e-mail classification - application
View
BambooHR AI-Powered Company Policies and Benefits Chatbot
View
Zendesk-to-slack
View
Stock Q&A Workflow
View
Get all orders in Squarespace to Google Sheets
View
Personal Assistant MCP server
View
Post RSS feed items from yesterday to Slack
View
Form Stickynote Send Triggered
View
HubSpot Mailchimp Create Scheduled
View
puq-docker-minio-deploy
View