Skip to content

Premium Integrations

How to Post a Slack Message When a WooCommerce Product Is Purchased

Want your team to see new sales land in Slack in real time instead of checking the WooCommerce orders screen? Zapify does this with the free A product is purchased trigger and the Send a Slack message action. Slack is a Zapify PRO integration.

What this automation does

The automation is one trigger plus one action:

  • Trigger: A product is purchased (WC_PRODUCT_PURCHASED, WooCommerce)
  • Action: Send a Slack message (SLACK_SEND_MESSAGE, Slack)

When an order containing the product you choose reaches a paid status, Zapify posts a message to the Slack channel you specify.

PRO feature

Slack is a Zapify PRO integration and needs a Connection under Settings → Connections. The WooCommerce trigger itself is free.

Before you start

  • WooCommerce installed and active.
  • A Slack app for your workspace with a bot user OAuth token (starts xoxb-), created under OAuth & Permissions in your Slack app's settings — see Slack's authentication basics if you're setting one up for the first time. The bot needs the chat:write scope.
  • The bot invited into the channel you want it to post to — Slack won't let it post to a channel it isn't a member of.

How to build the automation

Step 1: Connect Slack

  1. Go to Settings → Connections and click Add New.

Connections Tab

  1. Choose Slack, paste in the bot user OAuth token, and name the connection something like Sales Slack.

  1. Save.

See Connections for how this screen works generally.

Step 2: Create a new automation

  1. In the WordPress admin, go to Zapify → Automations.
  2. Click Add New to open the builder.
  3. Name it clearly, such as Announce new sales in Slack.

Create Automation Button

Step 3: Add the "A product is purchased" trigger

  1. Click Add Trigger.

Trigger Button

  1. Choose WooCommerce as the app.

Select WooCommerce as the trigger

  1. Select A product is purchased.

Select A Product is Purchased

  1. Leave the Product field as Any to hear about every sale, or pick a specific product to only announce that one.

Step 4: Add the "Send a Slack message" action

  1. Click Add Action.

Action Button

  1. Choose Slack as the app, and select Send a Slack message.

Select Slack Select Send a Slack Message

Step 5: Configure the action

Field Required What it does
Connection Yes The Slack connection you set up in Step 1.
Channel Yes A channel name (#sales) or ID. The bot must already be a member.
Message Yes The text to post. Insert order tokens to include the product and amount.
Post as No Overrides the bot's display name for this message. Leave empty to use the bot's own name.

For example:

  • Channel: #sales
  • Message: New sale: {{trigger:PRODUCT_NAMES}} — {{trigger:ORDER_TOTAL}} {{trigger:CURRENCY}}

Step 6: Set the steps Live and save

  1. Set both the trigger and the action to Live.
  2. Click Save.

Set Live Button to activate Automation

Step 7: Test it

Place a test order and mark it as paid. Check the Slack channel for the message, or open Zapify → Logs — a failed post shows Slack's own error code, such as channel_not_found or not_in_channel.

Tokens you can use

The A product is purchased trigger exposes these tokens for the Message field:

Token Value
Product IDs / Product names The purchased products
Order ID / Order number Order identifiers
Order total / Currency Order value and currency
Billing email / first name / last name Customer details

Conclusion

With the free A product is purchased trigger and the Send a Slack message action, Zapify puts new sales in front of your team the moment they happen. Log the same events to a spreadsheet with add a row to a Google Sheet, or create a fulfilment task with create a ClickUp task.

FAQs

Is this free in Zapify?

The trigger is free. Send a Slack message is part of the Slack PRO integration and needs an active Zapify PRO licence and a Connection.

The action reports success but nothing appeared in Slack. Why?

Slack answers with an HTTP 200 even when it refuses a message — a wrong or unauthorised channel comes back as {"ok":false,"error":"channel_not_found"}, still with a 200 status. Zapify reads Slack's own response and reports the real error in Zapify → Logs, so check there rather than assuming a 200-looking result means the message posted.

Why does the action need a bot token instead of a webhook URL?

An incoming webhook is bound to a single channel when it's created, so posting to different channels from different automations would mean a separate webhook — and connection — for each. A bot token lets one connection post to any channel it's a member of.

The action fails with "not_in_channel" or similar. What do I do?

Invite the bot into that channel from Slack itself — a bot can only post to channels it has actually joined.

Can I override which name the message posts under?

Yes, using the Post as field. Leave it empty to post under the bot's own configured name.

Do I need to write any code?

No. The connection and every field are configured visually — the bot token is the only thing you copy from Slack.

Was this page helpful?