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

Splitout Code Create Webhook
View
Webhook Respondtowebhook Create Webhook
View
Wait Splitout Create Webhook
View
Telegram Webhook Automation Webhook
View
Code Typeform Create Triggered
View
RAG:Context-Aware Chunking | Google Drive to Pinecone via OpenRouter & Gemini
View
DigialOceanUpload
View
Code Noop Send Triggered
View
Generate Company Stories from LinkedIn with Bright Data & Google Gemini
View
Send
View