Workflow: Webhook Filter Update

Workflow Details

Download Workflow
{
    "meta": {
        "instanceId": "257476b1ef58bf3cb6a46e65fac7ee34a53a5e1a8492d5c6e4da5f87c9b82833",
        "templateId": "2105"
    },
    "nodes": [
        {
            "id": "3abfbefa-0a41-4dd2-a79b-99aa02447a6f",
            "name": "When clicking \"Test workflow\"",
            "type": "n8n-nodes-base.manualTrigger",
            "position": [
                380,
                240
            ],
            "parameters": [],
            "typeVersion": 1
        },
        {
            "id": "5233daa6-9b3f-4048-8187-b78decac0bbd",
            "name": "Delete ID",
            "type": "n8n-nodes-base.googleSheets",
            "position": [
                1900,
                380
            ],
            "parameters": {
                "operation": "delete",
                "sheetName": {
                    "__rl": true,
                    "mode": "list",
                    "value": "gid=0",
                    "cachedResultUrl": "https:\/\/docs.google.com\/spreadsheets\/d\/1lj15jPOKrfS0-EAnCmths4-SVXwQJ78eBnq8C4DFRx4\/edit#gid=0",
                    "cachedResultName": "Last Member"
                },
                "documentId": {
                    "__rl": true,
                    "mode": "url",
                    "value": "={{ $('Setup: Edit this to get started').first().json['Google Sheets URL'] }}"
                }
            },
            "credentials": {
                "googleSheetsOAuth2Api": {
                    "id": "9",
                    "name": "Nik's Google"
                }
            },
            "executeOnce": true,
            "typeVersion": 4.20000000000000017763568394002504646778106689453125,
            "alwaysOutputData": true
        },
        {
            "id": "d3be48cd-9652-43ea-9bbf-d9d3a6c972ae",
            "name": "SaveID",
            "type": "n8n-nodes-base.googleSheets",
            "position": [
                2040,
                380
            ],
            "parameters": {
                "columns": {
                    "value": {
                        "ID": "={{ $('Merge').last().json.user.id }}"
                    },
                    "schema": [
                        {
                            "id": "ID",
                            "type": "string",
                            "display": true,
                            "removed": false,
                            "required": false,
                            "displayName": "ID",
                            "defaultMatch": false,
                            "canBeUsedToMatch": true
                        }
                    ],
                    "mappingMode": "defineBelow",
                    "matchingColumns": [
                        "ID"
                    ]
                },
                "options": [],
                "operation": "append",
                "sheetName": {
                    "__rl": true,
                    "mode": "list",
                    "value": "gid=0",
                    "cachedResultUrl": "https:\/\/docs.google.com\/spreadsheets\/d\/1lj15jPOKrfS0-EAnCmths4-SVXwQJ78eBnq8C4DFRx4\/edit#gid=0",
                    "cachedResultName": "Sheet1"
                },
                "documentId": {
                    "__rl": true,
                    "mode": "url",
                    "value": "={{ $('Setup: Edit this to get started').first().json['Google Sheets URL'] }}"
                }
            },
            "credentials": {
                "googleSheetsOAuth2Api": {
                    "id": "9",
                    "name": "Nik's Google"
                }
            },
            "typeVersion": 4.20000000000000017763568394002504646778106689453125
        },
        {
            "id": "a8cb3b10-1143-4467-936c-36ea29c3489a",
            "name": "Get ID",
            "type": "n8n-nodes-base.googleSheets",
            "position": [
                920,
                240
            ],
            "parameters": {
                "options": [],
                "sheetName": {
                    "__rl": true,
                    "mode": "list",
                    "value": "gid=0",
                    "cachedResultUrl": "https:\/\/docs.google.com\/spreadsheets\/d\/1lj15jPOKrfS0-EAnCmths4-SVXwQJ78eBnq8C4DFRx4\/edit#gid=0",
                    "cachedResultName": "Last Member"
                },
                "documentId": {
                    "__rl": true,
                    "mode": "url",
                    "value": "={{ $('Setup: Edit this to get started').first().json['Google Sheets URL'] }}"
                }
            },
            "credentials": {
                "googleSheetsOAuth2Api": {
                    "id": "9",
                    "name": "Nik's Google"
                }
            },
            "typeVersion": 4.20000000000000017763568394002504646778106689453125,
            "alwaysOutputData": true
        },
        {
            "id": "82bdeec7-5ff5-4ed5-8c57-f3007bd7f81e",
            "name": "Merge",
            "type": "n8n-nodes-base.merge",
            "position": [
                1520,
                240
            ],
            "parameters": [],
            "typeVersion": 2.100000000000000088817841970012523233890533447265625
        },
        {
            "id": "19247435-e0b0-4eac-8807-cb9e4ac532ab",
            "name": "Check if we have more members left",
            "type": "n8n-nodes-base.if",
            "position": [
                1740,
                240
            ],
            "parameters": {
                "options": [],
                "conditions": {
                    "options": {
                        "leftValue": "",
                        "caseSensitive": true,
                        "typeValidation": "strict"
                    },
                    "combinator": "and",
                    "conditions": [
                        {
                            "id": "11bd5681-d979-40a8-ba0c-8c697532cf0d",
                            "operator": {
                                "type": "number",
                                "operation": "lt"
                            },
                            "leftValue": "={{ $input.all().length }}",
                            "rightValue": 100
                        }
                    ]
                }
            },
            "typeVersion": 2
        },
        {
            "id": "9845c82b-942e-4265-be8c-c4b1a9199b1e",
            "name": "We're done",
            "type": "n8n-nodes-base.noOp",
            "position": [
                2040,
                160
            ],
            "parameters": [],
            "typeVersion": 1
        },
        {
            "id": "86bf2fe1-22b3-4563-a4b7-b3603f96cada",
            "name": "Check if we have an ID",
            "type": "n8n-nodes-base.if",
            "position": [
                1100,
                240
            ],
            "parameters": {
                "options": [],
                "conditions": {
                    "options": {
                        "leftValue": "",
                        "caseSensitive": true,
                        "typeValidation": "strict"
                    },
                    "combinator": "and",
                    "conditions": [
                        {
                            "id": "8cabfe61-be13-462f-a8ce-99ba5304fa10",
                            "operator": {
                                "type": "string",
                                "operation": "exists",
                                "singleValue": true
                            },
                            "leftValue": "={{ $json.ID }}",
                            "rightValue": ""
                        }
                    ]
                }
            },
            "executeOnce": true,
            "typeVersion": 2
        },
        {
            "id": "96324abb-2464-418a-850f-c6f8d3ce209f",
            "name": "Filter to only include members with role",
            "type": "n8n-nodes-base.filter",
            "position": [
                1740,
                -80
            ],
            "parameters": {
                "options": [],
                "conditions": {
                    "options": {
                        "leftValue": "",
                        "caseSensitive": true,
                        "typeValidation": "strict"
                    },
                    "combinator": "and",
                    "conditions": [
                        {
                            "id": "cac0aeae-ff45-4717-b11e-4e19995649fe",
                            "operator": {
                                "type": "number",
                                "operation": "gt"
                            },
                            "leftValue": "={{ $json.roles.filter(role => role === $('Setup: Edit this to get started').first().json['Role ID']).length }}",
                            "rightValue": 0
                        }
                    ]
                }
            },
            "typeVersion": 2
        },
        {
            "id": "bc012053-c619-479b-8bcb-9325c209d999",
            "name": "Get First 100 Members",
            "type": "n8n-nodes-base.discord",
            "position": [
                1300,
                260
            ],
            "parameters": {
                "guildId": {
                    "__rl": true,
                    "mode": "id",
                    "value": "={{ $('Setup: Edit this to get started').first().json['Discord ID'] }}"
                },
                "options": {
                    "simplify": true
                },
                "resource": "member"
            },
            "credentials": {
                "discordBotApi": {
                    "id": "M7ApR1tTlF4HFHn4",
                    "name": "Discord Bot account"
                }
            },
            "typeVersion": 2
        },
        {
            "id": "7214e807-5a51-438d-9db8-32821307f4ea",
            "name": "Get next 100 Members after last ID",
            "type": "n8n-nodes-base.discord",
            "position": [
                1300,
                80
            ],
            "parameters": {
                "after": "={{ $('Get ID').first().json.ID }}",
                "guildId": {
                    "__rl": true,
                    "mode": "id",
                    "value": "={{ $('Setup: Edit this to get started').first().json['Discord ID'] }}"
                },
                "options": {
                    "simplify": true
                },
                "resource": "member"
            },
            "credentials": {
                "discordBotApi": {
                    "id": "M7ApR1tTlF4HFHn4",
                    "name": "Discord Bot account"
                }
            },
            "typeVersion": 2
        },
        {
            "id": "158d3e7a-cc8c-4ab3-b59f-5a2251c79613",
            "name": "Sticky Note",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                517,
                -60.4402810304449076284072361886501312255859375
            ],
            "parameters": {
                "color": 5,
                "width": 350.31452535264980951978941448032855987548828125,
                "height": 491.35128805620587399971554987132549285888671875,
                "content": "## Setup\n1. Add your Google Sheets and Discord credentials.\n2. Create a Google Sheets document that contains `ID` as a column. We're using this to remember which member we received last.\n3. Edit the fields in the setup node `Setup: Edit this to get started`. *You can read up on how to get the Discord IDs via [this link](https:\/\/www.pythondiscord.com\/pages\/guides\/pydis-guides\/contributing\/obtaining-discord-ids\/).*\n4. Link to your Discord server in the Discord nodes\n5. Activate the workflow\n6. Call the production webhook URL in your browser"
            },
            "typeVersion": 1
        },
        {
            "id": "11926dbb-a5e0-48f9-8453-7dc21ecf6717",
            "name": "Setup: Edit this to get started",
            "type": "n8n-nodes-base.set",
            "position": [
                640,
                240
            ],
            "parameters": {
                "options": [],
                "assignments": {
                    "assignments": [
                        {
                            "id": "7c8cce4f-1330-425a-baff-4c40320f2335",
                            "name": "Role ID",
                            "type": "string",
                            "value": "<Enter your roleID here>"
                        },
                        {
                            "id": "8533b358-d8e6-4eba-9159-f6bdd2e0df65",
                            "name": "Google Sheets URL",
                            "type": "string",
                            "value": "<Enter your Sheets URL here>"
                        },
                        {
                            "id": "bb87e6f5-def9-4625-818a-ce6ff7b44ed7",
                            "name": "Discord ID",
                            "type": "string",
                            "value": "<Enter your server\/guild ID here>"
                        }
                    ]
                }
            },
            "typeVersion": 3.29999999999999982236431605997495353221893310546875
        },
        {
            "id": "334377fc-ddb8-4c0d-9ddc-f6949b98578c",
            "name": "Webhook",
            "type": "n8n-nodes-base.webhook",
            "disabled": true,
            "position": [
                380,
                420
            ],
            "webhookId": "b40c1140-75a7-481e-b8c7-789eef1f8bac",
            "parameters": {
                "path": "discord-template",
                "options": [],
                "responseMode": "responseNode"
            },
            "typeVersion": 1.100000000000000088817841970012523233890533447265625
        },
        {
            "id": "8fac2863-a046-4ce7-8391-72486141ea98",
            "name": "Send Response",
            "type": "n8n-nodes-base.respondToWebhook",
            "position": [
                1960,
                -80
            ],
            "parameters": {
                "options": [],
                "respondWith": "allIncomingItems"
            },
            "typeVersion": 1
        },
        {
            "id": "10677a2d-9bcb-4b51-8cab-a49c7f16a8d7",
            "name": "Sticky Note1",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                1900,
                -180
            ],
            "parameters": {
                "color": 7,
                "height": 265.6674473067915869251010008156299591064453125,
                "content": "You can replace this node according to your use case. In my case, I've send a DM to all users"
            },
            "typeVersion": 1
        }
    ],
    "pinData": [],
    "connections": {
        "Merge": {
            "main": [
                [
                    {
                        "node": "Check if we have more members left",
                        "type": "main",
                        "index": 0
                    },
                    {
                        "node": "Filter to only include members with role",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Get ID": {
            "main": [
                [
                    {
                        "node": "Check if we have an ID",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "SaveID": {
            "main": [
                [
                    {
                        "node": "Get ID",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Webhook": {
            "main": [
                [
                    {
                        "node": "Setup: Edit this to get started",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Delete ID": {
            "main": [
                [
                    {
                        "node": "SaveID",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Get First 100 Members": {
            "main": [
                [
                    {
                        "node": "Merge",
                        "type": "main",
                        "index": 1
                    }
                ]
            ]
        },
        "Check if we have an ID": {
            "main": [
                [
                    {
                        "node": "Get next 100 Members after last ID",
                        "type": "main",
                        "index": 0
                    }
                ],
                [
                    {
                        "node": "Get First 100 Members",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "When clicking \"Test workflow\"": {
            "main": [
                [
                    {
                        "node": "Setup: Edit this to get started",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Setup: Edit this to get started": {
            "main": [
                [
                    {
                        "node": "Get ID",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Check if we have more members left": {
            "main": [
                [
                    {
                        "node": "We're done",
                        "type": "main",
                        "index": 0
                    }
                ],
                [
                    {
                        "node": "Delete ID",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Get next 100 Members after last ID": {
            "main": [
                [
                    {
                        "node": "Merge",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Filter to only include members with role": {
            "main": [
                [
                    {
                        "node": "Send Response",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        }
    }
}
Back to Workflows

Related Workflows

🗨️Ollama Chat
View
Filter Slack Send Scheduled
View
Openai Form Automation Triggered
View
Splitout Code Automation Webhook
View
HubSpot Automate Triggered
View
Build an MCP server with Airtable
View
Telegram Code Create Webhook
View
Respondtowebhook Stickynote Automate Webhook
View
✍️🌄 Your First Wordpress Content Creator - Quick Start
View
Manual Linkedin Automation Webhook
View