🔓 Unlock all 10,000+ workflows & prompts free Join Newsletter →
✅ Full access unlocked — explore all 10,000 AI workflow and prompt templates Browse Templates →
Home n8n Workflow
January 22, 2026

WhatsApp meets Slack for shared support threads

Lisa Granqvist Partner Workflow Automation Expert

You’re trying to run support in Slack, but customers keep messaging in WhatsApp. So you end up copy-pasting, forwarding screenshots, and hunting for “that one voice note” when someone asks for context.

This WhatsApp Slack integration hits support leads first, honestly. But ops managers doing handoffs and agency owners juggling client comms feel it too. The outcome is simple: every WhatsApp conversation becomes a private Slack thread your team can actually collaborate in.

You’ll set up a workflow that pulls WhatsApp messages (including files) into Slack automatically, and sends Slack replies back to the right WhatsApp contact. Clean threads. Faster responses. Less “wait, who replied?”

How This Automation Works

Here’s the complete workflow you’ll be setting up:

n8n Workflow Template: WhatsApp meets Slack for shared support threads

Why This Matters: Support Conversations Split Across Tools

WhatsApp is where customers are. Slack is where your team works. When those two worlds don’t connect, support turns into a messy relay race. Someone sees the WhatsApp message, pings Slack, drops a partial screenshot, forgets the file, then another teammate replies without the full backstory. Multiply that by a busy day and you get missed details, slow handoffs, and the kind of “we already answered this” frustration that drains your team.

It adds up fast. Here’s where it breaks down in real life:

  • Copy-pasting WhatsApp messages into Slack steals about 5 minutes per customer thread, and it gets worse when there are attachments.
  • Files shared in WhatsApp (photos, docs, voice notes) get lost in personal phones, which means the team can’t search or reference them later.
  • Two people respond in parallel because there’s no single shared thread, and the customer ends up confused or annoyed.
  • New teammates can’t see the full context, so handoffs become a mini onboarding session every time.

What You’ll Build: Two-Way WhatsApp Threads Inside Slack

This workflow turns WhatsApp into a front door and Slack into the shared workspace behind it. When a customer sends a WhatsApp message, n8n catches it instantly through a webhook trigger. The workflow checks for a matching private Slack channel named after that contact (typically their phone number). If it doesn’t exist yet, it creates one, so every customer gets their own dedicated thread. Then it routes the message based on type: text goes straight into Slack, while images, audio, and documents get fetched from WhatsApp, downloaded securely, and uploaded into the same Slack channel.

Replies work the other way too. When someone on your team posts in that Slack channel, the workflow listens for new Slack messages or file uploads, figures out if it’s text or a file, then sends it back to WhatsApp using the correct contact (identified by the Slack channel name). One shared place to collaborate, while the customer stays in WhatsApp.

What You’re Building

Expected Results

Say you get about 30 WhatsApp messages a day, and around 10 of them include a file (photo, PDF, or voice note). Manually, logging each message into Slack might take 2 minutes, and file handling can take another 5 minutes. That’s roughly 2 hours of busywork on a normal day. With this automation, the “work” is basically just replying in Slack; messages sync in seconds, and attachments show up without anyone downloading and re-uploading them.

Before You Start

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • WhatsApp Cloud API for receiving and sending messages
  • Slack to create channels and post uploads
  • WhatsApp access token (from Meta Developer dashboard)

Skill level: Intermediate. You’ll paste API tokens, test webhooks, and map a few fields, but you won’t be writing code.

Want someone to build this for you? Talk to an automation expert (free 15-minute consultation).

Step by Step

A customer messages you on WhatsApp. The workflow starts when the WhatsApp trigger receives a new incoming message via webhook from the WhatsApp Cloud API.

A private Slack channel is found or created. n8n pulls your existing Slack channels, filters by the sender’s number, and creates a new private channel if there isn’t one yet, so each contact gets a dedicated space.

The message is routed by type. A Switch node checks if it’s text, an image, an audio message, or a document. Text posts into Slack immediately. For media, the workflow requests the media link from WhatsApp, downloads the file using an HTTP request, then uploads it into the same Slack channel.

Your team replies in Slack and it goes back to WhatsApp. A Slack trigger listens for new messages and file uploads. Another message-type check decides whether to send a WhatsApp text message or to download the Slack file and send it as WhatsApp media.

You can easily modify the channel naming and routing rules to match how your team works (for example, naming channels by customer name instead of phone number). See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the WhatsApp Incoming Trigger

Set up the workflow entry point so incoming WhatsApp messages can start the relay.

  1. Add the WhatsApp Incoming Trigger node as your trigger.
  2. Credential Required: Connect your whatsAppTriggerApi credentials in WhatsApp Incoming Trigger.
  3. Ensure updates includes messages so message events are captured.

If you already have a WhatsApp webhook, re-use it here to keep message delivery consistent.

Step 2: Connect Slack and WhatsApp Services

Authorize Slack and WhatsApp nodes that post messages, manage channels, and send media.

  1. Credential Required: Connect your slackApi credentials in Post to Slack Channel, Slack Event Listener, Generate Slack Channel, Retrieve All Channels, Retrieve Channel Details, Fetch Slack File Link, and Upload File to Slack.
  2. Credential Required: Connect your whatsAppApi credentials in Fetch Audio Link, Fetch Image Link, Fetch Document Link, Send WhatsApp Text, and Send WhatsApp Media.

⚠️ Common Pitfall: Missing Slack scopes (files:read, files:write, channels:read, channels:manage, chat:write) will cause file upload or channel operations to fail.

Step 3: Set Up Channel Creation and Message Routing

Create private Slack channels per WhatsApp sender and route message types through the correct branch.

  1. In Generate Slack Channel, set resource to channel, channelVisibility to private, and channelId to ={{ $('WhatsApp Incoming Trigger').item.json.messages[0].from }}.
  2. In Retrieve All Channels, set resource to channel, operation to getAll, and returnAll to true. Add filterstypes with private_channel.
  3. In Filter Channels by Name, match leftValue ={{ $json.name }} to rightValue ={{ $('WhatsApp Incoming Trigger').item.json.messages[0].from }}.
  4. In Route Message Kind, keep the rules that map message type to outputs text, audio, image, and document using ={{ $('WhatsApp Incoming Trigger').item.json.messages[0].type }}.
  5. In Post to Slack Channel, set text to ={{ $('WhatsApp Incoming Trigger').item.json.messages[0].text.body }} and channelId to ={{ $json.id }}.

Step 4: Configure WhatsApp Media Upload to Slack

Fetch WhatsApp media URLs, download the files, and upload them to the correct Slack channel.

  1. In Fetch Audio Link, set resource to media, operation to mediaUrlGet, and mediaGetId to ={{ $('WhatsApp Incoming Trigger').item.json.messages[0].audio.id }}.
  2. In Fetch Image Link, set mediaGetId to ={{ $('WhatsApp Incoming Trigger').item.json.messages[0].image.id }}.
  3. In Fetch Document Link, set mediaGetId to ={{ $('WhatsApp Incoming Trigger').item.json.messages[0].document.id }}.
  4. In Download Media File, set url to ={{ $json.url }}, authentication to genericCredentialType, and genericAuthType to httpHeaderAuth.
  5. Credential Required: Connect your httpBearerAuth and httpHeaderAuth credentials in Download Media File.
  6. In Upload File to Slack, keep resource as file and set options.channelId to ={{ $('Route Message Kind').item.json.id }}.

If media uploads fail, confirm the HTTP response is binary and that Slack has file upload permissions.

Step 5: Configure Slack-to-WhatsApp Relay

Listen for Slack messages, map them back to WhatsApp recipients, and send text or media accordingly.

  1. In Slack Event Listener, keep watchWorkspace enabled to capture messages across channels.
  2. In Retrieve Channel Details, set resource to channel, operation to get, and channelId to ={{ $json.channel }}.
  3. In Evaluate Slack Message, keep the rules that route file attachments with ={{ $('Slack Event Listener').item.json.files }} and text with ={{ $('Slack Event Listener').item.json.text }}.
  4. In Fetch Slack File Link, set fileId to ={{ $('Slack Event Listener').item.json.files[0].id }}, resource to file, and operation to get.
  5. In Download Slack File, set url to ={{ $json.url_private_download }} and keep genericAuthType as httpHeaderAuth. Credential Required: Connect your httpHeaderAuth credentials.
  6. In Send WhatsApp Text, set textBody to ={{ $('Slack Event Listener').item.json.blocks[0].elements[0].elements[0].text }}, recipientPhoneNumber to ={{ $('Retrieve Channel Details').item.json.name }}, and phoneNumberId to =[YOUR_ID].
  7. In Send WhatsApp Media, set mediaPath to useMedian8n, messageType to document, recipientPhoneNumber to ={{ $('Retrieve Channel Details').item.json.name }}, and phoneNumberId to =[YOUR_ID].

⚠️ Common Pitfall: Replace =[YOUR_ID] in Send WhatsApp Text and Send WhatsApp Media with your real WhatsApp phone number ID, or messages will not send.

Step 6: Test and Activate Your Workflow

Validate both directions of the relay and enable the workflow for production use.

  1. Click Test workflow and send a WhatsApp text, image, audio, and document to verify each branch of Route Message Kind.
  2. Confirm the Slack channel is created by Generate Slack Channel and messages/files appear in Slack via Post to Slack Channel or Upload File to Slack.
  3. Send a Slack message and file to the channel and verify Send WhatsApp Text or Send WhatsApp Media delivers to the correct WhatsApp recipient.
  4. When testing succeeds, toggle the workflow Active for continuous operation.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Troubleshooting Tips

  • Slack credentials can expire or need specific permissions. If things break, check the n8n Credentials entry for Slack and confirm it still has access to create private channels and upload files.
  • If you’re using HTTP downloads for media, processing times vary and some file links are short-lived. If downstream upload nodes fail, retry quickly and confirm the WhatsApp media URL or Slack file URL is still valid.
  • Channel-name matching is unforgiving. If your workflow expects the Slack channel name to equal the WhatsApp phone number, any manual renaming will break replies going back to WhatsApp.

Quick Answers

What’s the setup time for this WhatsApp Slack integration automation?

About 30–60 minutes if your WhatsApp Cloud API and Slack apps are ready.

Is coding required for this WhatsApp Slack integration?

No. You’ll connect accounts and map a few fields in n8n. The logic is already built into the workflow nodes.

Is n8n free to use for this WhatsApp Slack integration workflow?

Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in WhatsApp Cloud API usage costs (usually small unless you’re doing heavy volume).

Where can I host n8n to run this automation?

Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.

Can I modify this WhatsApp Slack integration workflow for different use cases?

Yes, and you probably should. You can change how channels are named by adjusting the Slack “create/get channel” logic (the nodes that retrieve channels, filter by name, and generate the Slack channel). Common tweaks include posting into a shared triage channel first, adding tags like “billing” vs “tech,” or routing VIP contacts to a different Slack workspace.

Why is my Slack connection failing in this workflow?

Usually it’s permissions. The Slack app/token needs access to create private channels, read channel events, post messages, and upload files. If someone reinstalled the app or changed scopes, update the Slack credentials in n8n and test by creating a channel and uploading a small file.

What volume can this WhatsApp Slack integration workflow process?

It depends more on your hosting and Slack/WhatsApp rate limits than the workflow itself.

Is this WhatsApp Slack integration automation better than using Zapier or Make?

For two-way messaging with attachments, n8n is often the more practical choice. You can branch on message type, download and re-upload files, and keep all the routing in one place without stitching together lots of separate zaps/scenarios. Self-hosting is a big deal if you expect higher volume because you’re not paying per tiny step. Zapier or Make can still work if you only need one-way forwarding of text. If you want help choosing (or you need this hardened for a real support team), Talk to an automation expert.

Once this is live, WhatsApp stops being a private inbox and starts acting like a proper shared support queue in Slack. Set it up once, and let the workflow carry the context for you.

Need Help Setting This Up?

Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.

Lisa Granqvist

Workflow Automation Expert

Expert in workflow automation and no-code tools.

×

Use template

Get instant access to this n8n workflow Json file

💬
Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Launch login modal Launch register modal