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

Manual Stickynote Automate Triggered
View
Telegram Automate Triggered
View
HTTP Automation Webhook
View
Twilio Stickynote Send Triggered
View
Webhook Respondtowebhook Automate Webhook
View
Upload video to drive via google script
View
Manual Stickynote Update Triggered
View
Turn YouTube Videos into Summaries, Transcripts, and Visual Insights
View
Calendar_scheduling
View
Analyze_Crowdstrike_Detections__search_for_IOCs_in_VirusTotal__create_a_ticket_in_Jira_and_post_a_message_in_Slack
View