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

Automated Work Attendance with Location Triggers
View
Mailchimp Automate Triggered
View
Coinmarketcap Price Agent
View
Create, update, and get activity in Strava
View
Building RAG Chatbot for Movie Recommendations with Qdrant and Open AI
View
[2/3] Set up medoids (2 types) for anomaly detection (crops dataset)
View
Schedule Slack Create Scheduled
View
Manual Renamekeys Automate Triggered
View
Send a cocktail recipe every day via a Telegram
View
XML Conversion
View