Slack Destination
UpdatedAbout this integration
This integration helps you send messages to your Slack Workspaes based on events from your app or website.
Use cases
- Alert your sales team when a high-value lead signs up or reaches a usage milestone. Post to your
#sales-alertschannel with the person’s name, plan, and key traits. - Notify support when a customer submits a negative NPS score or cancels their subscription, so your team can reach out proactively.
- Keep your team in the loop on product activity—post to a channel when someone completes onboarding, upgrades their plan, or hits an error threshold.
- Monitor data pipeline health by posting to an internal channel when specific track events fire, confirming that your integration is working as expected.
Getting started
Go to Data & Integrations > Integrations and select the Slack entry in the Directory tab.
(Optional) Select the data sources that you want to connect to your outbound integration. You can always connect data sources later. We’ll only show you data sources that work with your integration.
Configure your integration.
Click Enable Destination.
Actions
When you’re done setting things up, you can go to the Actions tab to see how we map incoming data to your integration.
You may need to add actions for this integration
While we often have default triggers for actions, we don't always add those actions as defaults. You may need to add actions to make sure that you're sending all the data that you want to send to your integration. See our actions page for help setting up actions.
| Action | Default Trigger | Description |
|---|---|---|
| Post Message | Post a message to the specified Slack workspace and channel when the associated trigger criteria are met. |
Post message
Set up at least one Post Message action. This action posts a message to a channel in your Slack workspace when an incoming data trigger fires.
- Go to Actions for your Slack integration and click Add Action to set up the Post Message action.
- Set up the Trigger for the action. This determines when Customer.io posts to Slack.
- Under Data Structure, enter the Webhook URL for your Slack workspace and channel. See Slack’s documentation for help creating an incoming webhook.
- Enter the Message you want to send. You can include variables in your message!
- Enter the Channel you want to send your message to.
- Set the User. This controls who the message appears from.
- (Optional) Enter the Icon URL for the user. This sets the profile picture for your integration.
Use variables in your messages
You can use variables in the Message field to include data from the incoming event. For example, if someone triggers a track call with the event name Order Completed, you might send a message like:
🎉 {{$.properties.name}} just completed an order for {{$.properties.total}}!
This pulls the name and total properties from the incoming track event and includes them in your Slack message.
Send to different channels
Each Post Message action targets a single Slack webhook URL, which maps to a specific channel. If you want to post to multiple channels based on different events, create separate Post Message actions—one per channel.
For example, you might have:
- A
#sales-alertsaction triggered byidentifycalls where$.traits.planequalsenterprise - A
#support-alertsaction triggered bytrackcalls where$.eventequalsNPS Submitted
Things to know
- Webhook URLs are channel-specific. Each Slack incoming webhook is tied to a single channel. You’ll need a separate webhook (and action) for each channel you want to post to.
- Messages are plain text. This integration posts text messages. It doesn’t support Slack’s Block Kit for rich formatting.
- The default username is “Customer.io Data Pipelines.” Change this per action by updating the User field.
- Rate limits apply. Slack limits incoming webhooks to roughly 1 message per second per webhook URL. If you send high-volume events to Slack, some messages may be dropped. Use this integration for important alerts, not high-frequency event streams.
