I need to find a way to standardize the Slack trigger webhook url across all worfklows I build. Right now each slack trigger creates a unique webhook url, which means I’d have to always be updating the Slack App I’m using with the new URL. There must be a way where multiple Slack triggers can exist at the same time, pinging the same Slack app?
Welcome to the n8n community @A_B_II and btw you’re absolutely right, managing multiple unique webhook URLs for different Slack triggers is inefficient. There are ways to standardize this:
Use a Single Webhook with Routing (Recommended)
Create a single webhook for your application and route it to different workflows based on the following trigger:
Single Slack Trigger (master webhook)
↓
Switch Node (route based on trigger_id, channel, or keyword)
↓
├─ Route 1 → Execute Workflow 1
├─ Route 2 → Execute Workflow 2
└─ Route 3 → Execute Workflow 3
implementation:
Node 1: Slack Trigger (Single Webhook)
This will create a single webhook URL
You will need to configure this in your slack app once
Node 2: Switch Node
Route based on:
Channel ID: {{ $json.event.channel }}
Trigger word: {{ $json.event.text }}
User: {{ $json.event.user }}
Event type: {{ $json.event.type }}
Node 3+: Different workflow logic per route
Example Switch Configuration:
// Route 1: Messages in #support channel
{{ $json.event.channel }} === 'C12345SUPPORT'
// Route 2: Messages containing "urgent"
{{ $json.event.text.toLowerCase().includes('urgent') }}
// Route 3: Messages from specific user
{{ $json.event.user }} === 'U67890ADMIN'
Hi @A_B_II Welcome!
I would recommend using a sub workfow approach which would be a classifier kind of and that would classify based on the message type that which workflow should be executed and would execute that. Somewhat like a trigger house that would contain one slack trigger and maybe a text classifier node or IF/Switch nodes that would define which branch the flow should go and that branch would trigger that slack workflow using the webhook.
I’m not 100% following this but I can dig in after this clarifying question. Would this allow other team members using n8n to create their own Slack nodes and interact with one Slack app? I think thats the big hurdle is how do I set things up so that they can create their own unique workflows in n8n while utilizing the same Slack trigger node/Slack app
@A_B_II Yes you can let other’s also interact with the same main routing workflow like If you create a single shared slack app and a single shared slack credential, and connect that app’s single request URL to a central “router” workflow via a single slack Trigger, and then allow teammates to build their own workflows that are invoked from the router (via execute sub‑workflow or webhooks), they can all create their own slack nodes/workflows while using the same slack app and trigger the reason is that slack doesn’t allow multiple request URLs per app, so the routing pattern is the scalable way to share a single app across many workflows.
To directly answer the team question — yes, the sub-workflow pattern works perfectly for multi-user teams sharing one Slack app. Here’s the mental model that makes it click:
One Slack App → One webhook URL → One central router workflow → Many sub-workflows
Your teammates don’t need their own Slack apps. They all build their workflows as sub-workflows that get invoked by the central router via the “Execute Workflow” node. The router workflow owns the Slack credential and the single event URL. Each teammate creates their own logic, but they trigger it from the central workflow.
The practical setup:
Create one shared Slack App in your workspace and configure a single Request URL pointing to your central n8n workflow’s webhook
In the central workflow, use a Switch node to route based on $json.event.type or channel/command
For each use case, your teammate builds a separate workflow — the router calls it with “Execute Workflow” node passing the relevant Slack payload
All responses back to Slack go through the router too
The big win: when Slack changes anything (URL rotation, event subscriptions, etc.), you update in exactly one place. Teammates just build and deploy their own sub-workflows and tell you which routing condition to add to the Switch node.
The only caveat: if someone needs real-time slash command responses (under Slack’s 3-second timeout), make sure the router workflow responds synchronously before passing off to sub-workflows.