> ## Documentation Index
> Fetch the complete documentation index at: https://docs.upstackdata.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Slack

> Send real-time event notifications to Slack channels for purchases, leads, and other key conversions.

<Note>
  **Data direction:** This is a **destination** — Upstack sends event and conversion data **out** to this platform via server-side APIs.
</Note>

## What it does

The Slack destination sends real-time notifications to any Slack channel when events occur on your store. Get instant alerts for purchases, new leads, abandoned carts, or any custom event — delivered directly to your team's Slack workspace.

Unlike ad platform destinations that optimize campaigns, Slack notifications are designed for visibility. See every high-value conversion the moment it happens, celebrate wins with your team, or monitor for unusual activity.

## How it works

When a matching event occurs, Upstack:

1. Evaluates the event against your configured event templates and conditions.
2. Renders a Block Kit message using the template's placeholder values (order ID, customer email, revenue, etc.).
3. POSTs the formatted message to your Slack webhook URL.
4. Logs the delivery status to the Upstack event debugger.

Each event template can have its own conditions — for example, only notify on purchases over \$100, or only alert when a specific product is purchased.

## Supported events

Slack notifications can be triggered by any standard or custom event:

| Event              | Use case                                                |
| ------------------ | ------------------------------------------------------- |
| `Purchase`         | Celebrate new orders, track high-value conversions      |
| `InitiateCheckout` | Monitor checkout abandonment in real-time               |
| `AddToCart`        | Track product interest and cart activity                |
| `Lead`             | Get notified of form submissions and newsletter signups |
| `ViewContent`      | Monitor traffic to key pages                            |
| Custom events      | Trigger on any event you define                         |

## Setup instructions

### Step 1: Create a Slack Incoming Webhook

1. Go to [Slack API Apps](https://api.slack.com/apps) and click **Create New App**.
2. Choose **From scratch**, name your app (e.g., "Upstack Notifications"), and select your workspace.
3. Under **Features**, click **Incoming Webhooks** and toggle it **On**.
4. Click **Add New Webhook to Workspace** and select the channel where notifications should appear.
5. Copy the **Webhook URL** — it looks like `https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX`.

### Step 2: Configure the Slack destination in Upstack

1. In the Upstack dashboard, go to **Destinations** and click **Add Destination**.
2. Select **Slack** from the destination list.
3. Paste your **Webhook URL** from Step 1.
4. Create one or more **Event Templates** to define which events trigger notifications and how they're formatted.

### Step 3: Create event templates

Each template maps a source event to a Slack message:

* **Source Event**: The event type that triggers this template (e.g., `Purchase`).
* **Template**: The Block Kit message structure with placeholders like `{{data.order_id}}` and `{{data.value}}`.
* **Conditions** (optional): Filter criteria — only send when conditions are met.

## Example message format

Slack messages use Block Kit for rich formatting. Here's an example purchase notification:

```json theme={null}
{
  "blocks": [
    {
      "type": "header",
      "text": {
        "type": "plain_text",
        "text": "🎉 New Purchase!"
      }
    },
    {
      "type": "section",
      "fields": [
        {
          "type": "mrkdwn",
          "text": "*Order ID:*\n{{data.order_id}}"
        },
        {
          "type": "mrkdwn",
          "text": "*Revenue:*\n${{data.value}}"
        },
        {
          "type": "mrkdwn",
          "text": "*Customer:*\n{{data.email}}"
        },
        {
          "type": "mrkdwn",
          "text": "*Source:*\n{{context.utm_source}}"
        }
      ]
    },
    {
      "type": "context",
      "elements": [
        {
          "type": "mrkdwn",
          "text": "via Upstack Data"
        }
      ]
    }
  ]
}
```

Placeholders like `{{data.order_id}}` are replaced with actual event values at send time.

## Use cases

<CardGroup cols={2}>
  <Card title="Purchase alerts" icon="bell">
    Get notified in Slack the moment a purchase completes. Include order value, customer info, and attribution source.
  </Card>

  <Card title="Lead notifications" icon="user-plus">
    Alert your sales team when a lead form is submitted. Route different lead types to different channels.
  </Card>

  <Card title="High-value order alerts" icon="trophy">
    Use conditions to only notify on orders above a threshold — celebrate the big wins.
  </Card>

  <Card title="Abandoned cart monitoring" icon="cart-shopping">
    Track checkout initiations in real-time to spot abandonment patterns.
  </Card>
</CardGroup>

## FAQ

<AccordionGroup>
  <Accordion title="Where do I find my Slack webhook URL?">
    Create an Incoming Webhook in your Slack workspace settings. Go to [Slack API Apps](https://api.slack.com/apps), create or select an app, enable Incoming Webhooks, and add a new webhook to your desired channel. The URL is generated automatically.
  </Accordion>

  <Accordion title="Can I send to multiple Slack channels?">
    Each Slack destination has one webhook URL (one channel). To send to multiple channels, create multiple Slack destinations with different webhook URLs and configure each with the appropriate event templates.
  </Accordion>

  <Accordion title="How do conditions work?">
    Conditions let you filter which events trigger a notification. For example, you can configure a template to only fire when `data.value` is greater than 100, or when `data.currency` equals "USD". Conditions support AND/OR logic for complex filtering.
  </Accordion>

  <Accordion title="What placeholders can I use in templates?">
    Any field from the tracking event is available as a placeholder. Common examples:

    * `{{data.order_id}}` — Order ID
    * `{{data.value}}` — Order value
    * `{{data.email}}` — Customer email
    * `{{data.currency}}` — Currency code
    * `{{context.utm_source}}` — UTM source
    * `{{context.page_url}}` — Page URL where event occurred
  </Accordion>

  <Accordion title="What happens if the Slack webhook fails?">
    Failed deliveries are logged to the Upstack event debugger. Upstack uses SQS-based retry with exponential backoff for transient failures. If the webhook URL is invalid or the Slack app is deleted, events will fail permanently and appear in your delivery logs.
  </Accordion>
</AccordionGroup>

## Related

<CardGroup cols={2}>
  <Card title="Webhooks destination" icon="webhook" href="/destinations/webhooks">
    Send raw event payloads to any HTTP endpoint for custom integrations.
  </Card>

  <Card title="Standard events reference" icon="bolt" href="/pixel/standard-events">
    Full reference for all event types and properties available in templates.
  </Card>

  <Card title="Custom events" icon="code" href="/guides/custom-events/how-to-create-custom-event-triggers">
    Create custom events to trigger Slack notifications for any action.
  </Card>

  <Card title="Destinations overview" icon="arrow-right-from-bracket" href="/destinations/overview">
    How Upstack delivers events to all destination types.
  </Card>
</CardGroup>
