Workflow: Webhook Respondtowebhook Create

Workflow Details

Download Workflow
{
    "nodes": [
        {
            "name": "Receive Slash Command",
            "type": "n8n-nodes-base.webhook",
            "position": [
                240,
                100
            ],
            "webhookId": "3c0d3820-5896-41c5-83bf-1cd5e956c32c",
            "parameters": {
                "path": "3c0d3820-5896-41c5-83bf-1cd5e956c32c",
                "options": [],
                "httpMethod": "POST",
                "responseMode": "responseNode"
            },
            "typeVersion": 1
        },
        {
            "name": "Reject",
            "type": "n8n-nodes-base.respondToWebhook",
            "position": [
                680,
                200
            ],
            "parameters": {
                "options": {
                    "responseCode": 403
                },
                "respondWith": "noData"
            },
            "typeVersion": 1
        },
        {
            "name": "Set",
            "type": "n8n-nodes-base.set",
            "position": [
                680,
                0
            ],
            "parameters": {
                "values": {
                    "string": [
                        {
                            "name": "operation",
                            "value": "={{$json[\"body\"][\"text\"].split(\" \")[0].toLowerCase()}}"
                        },
                        {
                            "name": "email",
                            "value": "={{$json[\"body\"][\"text\"].split(\" \")[1].toLowerCase()}}"
                        }
                    ]
                },
                "options": [],
                "keepOnlySet": true
            },
            "typeVersion": 1
        },
        {
            "name": "Read Command",
            "type": "n8n-nodes-base.switch",
            "position": [
                900,
                0
            ],
            "parameters": {
                "rules": {
                    "rules": [
                        {
                            "value2": "delete"
                        }
                    ]
                },
                "value1": "={{$json[\"operation\"]}}",
                "dataType": "string",
                "fallbackOutput": 3
            },
            "typeVersion": 1
        },
        {
            "name": "Wrong Command Error",
            "type": "n8n-nodes-base.respondToWebhook",
            "position": [
                1120,
                100
            ],
            "parameters": {
                "options": [],
                "respondWith": "json",
                "responseBody": "{\n  \"text\": \"Sorry, I didn't understand your command. You can request data deletion like so: `\/gdpr delete <email>`.\"\n}"
            },
            "typeVersion": 1
        },
        {
            "name": "Acknowledge",
            "type": "n8n-nodes-base.respondToWebhook",
            "position": [
                1340,
                0
            ],
            "parameters": {
                "options": [],
                "respondWith": "json",
                "responseBody": "{\n  \"text\": \"On it!\"\n}"
            },
            "typeVersion": 1
        },
        {
            "name": "Empty Email?",
            "type": "n8n-nodes-base.if",
            "position": [
                1120,
                -100
            ],
            "parameters": {
                "conditions": {
                    "string": [
                        {
                            "value1": "={{$json[\"email\"]}}",
                            "operation": "isEmpty"
                        }
                    ]
                }
            },
            "typeVersion": 1
        },
        {
            "name": "Missing Email Error",
            "type": "n8n-nodes-base.respondToWebhook",
            "position": [
                1340,
                -200
            ],
            "parameters": {
                "options": [],
                "respondWith": "json",
                "responseBody": "{\n  \"text\": \"It looks like the user email address is missing. You can request data deletion like so: `\/gdpr delete <email>`.\"\n}"
            },
            "typeVersion": 1
        },
        {
            "name": "Valid Token?",
            "type": "n8n-nodes-base.if",
            "position": [
                460,
                100
            ],
            "parameters": {
                "conditions": {
                    "string": [
                        {
                            "value1": "={{$json[\"body\"][\"token\"]}}",
                            "value2": "foo"
                        }
                    ]
                }
            },
            "typeVersion": 1
        },
        {
            "name": "Paddle Data Deletion",
            "type": "n8n-nodes-base.executeWorkflow",
            "position": [
                1560,
                0
            ],
            "parameters": {
                "workflowId": "1231"
            },
            "typeVersion": 1
        },
        {
            "name": "Customer.io Data Deletion",
            "type": "n8n-nodes-base.executeWorkflow",
            "position": [
                1780,
                0
            ],
            "parameters": {
                "workflowId": "1237"
            },
            "typeVersion": 1
        },
        {
            "name": "Zendesk Data Deletion",
            "type": "n8n-nodes-base.executeWorkflow",
            "position": [
                2000,
                0
            ],
            "parameters": {
                "workflowId": "1240"
            },
            "typeVersion": 1
        },
        {
            "name": "Airtable",
            "type": "n8n-nodes-base.airtable",
            "position": [
                1780,
                200
            ],
            "parameters": {
                "table": "Log",
                "options": [],
                "operation": "append",
                "application": "app3wAXUUwalhapFV"
            },
            "credentials": {
                "airtableApi": {
                    "id": "12",
                    "name": "mutedjam@n8n.io"
                }
            },
            "typeVersion": 1
        },
        {
            "name": "Prepare Log Entry",
            "type": "n8n-nodes-base.function",
            "position": [
                1340,
                200
            ],
            "parameters": {
                "functionCode": "let deletion_nodes = [\n  'Paddle Data Deletion',\n  'Customer.io Data Deletion',\n  'Zendesk Data Deletion'\n]\n\nconst deletion_results = deletion_nodes.map(node_name => $items(node_name)[0].json);\nconst deletion_success = deletion_results.filter(json => json.success == true).length == deletion_nodes.length;\n\nreturn [{\n  json: {\n    Result: deletion_success ? 'Done' : 'Error',\n    Notes: deletion_results.map(json => json.service + ': ' + json.message).join('\\n'),\n    Processed: new Date().toISOString()\n  }\n}];"
            },
            "typeVersion": 1
        },
        {
            "name": "Crypto",
            "type": "n8n-nodes-base.crypto",
            "position": [
                1560,
                200
            ],
            "parameters": {
                "type": "SHA256",
                "value": "={{$node[\"Set\"].json[\"email\"]}}",
                "dataPropertyName": "Email Hash"
            },
            "typeVersion": 1
        },
        {
            "name": "Respond to Slack",
            "type": "n8n-nodes-base.httpRequest",
            "position": [
                2000,
                200
            ],
            "parameters": {
                "url": "={{$node[\"Receive Slash Command\"].json[\"body\"][\"response_url\"]}}",
                "options": [],
                "requestMethod": "POST",
                "responseFormat": "string",
                "bodyParametersUi": {
                    "parameter": [
                        {
                            "name": "text",
                            "value": "=GDPR data deletion process finished.\nStatus: {{$node[\"Prepare Log Entry\"].json[\"Result\"] == \"Done\" ? \":white_check_mark: OK\" : \":x: Error\"}}\nLog: <https:\/\/airtable.com\/app3wAXUUwalhapFV\/tbljkxW55l2Gq7Fzq\/viwOJdJM1taITEaPr\/{{$node[\"Airtable\"].json[\"id\"]}}?blocks=hide|View in Airtable>"
                        },
                        {
                            "name": "delete_original",
                            "value": "true"
                        }
                    ]
                }
            },
            "typeVersion": 1
        }
    ],
    "connections": {
        "Set": {
            "main": [
                [
                    {
                        "node": "Read Command",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Crypto": {
            "main": [
                [
                    {
                        "node": "Airtable",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Airtable": {
            "main": [
                [
                    {
                        "node": "Respond to Slack",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Acknowledge": {
            "main": [
                [
                    {
                        "node": "Paddle Data Deletion",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Empty Email?": {
            "main": [
                [
                    {
                        "node": "Missing Email Error",
                        "type": "main",
                        "index": 0
                    }
                ],
                [
                    {
                        "node": "Acknowledge",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Read Command": {
            "main": [
                [
                    {
                        "node": "Empty Email?",
                        "type": "main",
                        "index": 0
                    }
                ],
                null,
                null,
                [
                    {
                        "node": "Wrong Command Error",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Valid Token?": {
            "main": [
                [
                    {
                        "node": "Set",
                        "type": "main",
                        "index": 0
                    }
                ],
                [
                    {
                        "node": "Reject",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Prepare Log Entry": {
            "main": [
                [
                    {
                        "node": "Crypto",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Paddle Data Deletion": {
            "main": [
                [
                    {
                        "node": "Customer.io Data Deletion",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Receive Slash Command": {
            "main": [
                [
                    {
                        "node": "Valid Token?",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Zendesk Data Deletion": {
            "main": [
                [
                    {
                        "node": "Prepare Log Entry",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Customer.io Data Deletion": {
            "main": [
                [
                    {
                        "node": "Zendesk Data Deletion",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        }
    }
}
Back to Workflows

Related Workflows

Slack Webhook - Verify Signature
View
Personalized AI Tech Newsletter Using RSS, OpenAI and Gmail
View
Stickynote Webhook Automate Webhook
View
Zip multiple files
View
Splitout Code Import Scheduled
View
Mattermost Twilio Automate Triggered
View
Respondtowebhook Webhook Import Webhook
View
Intercom Code Create Webhook
View
RAG:Context-Aware Chunking | Google Drive to Pinecone via OpenRouter & Gemini
View
Wait Splitout Create Webhook
View