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

# Connect Slack

> Connect Slack from Integrations — Incoming Webhook URL, Connection Name, auto-send events, test, delivery log, and disconnect.

**Slack** posts formatted channel messages when Zippendo shipments and orders change. The catalog card copy is: **Get notified in Slack when shipping events happen.**

This page is the Slack connect form. Shared chrome (events grid, test, delivery log, disconnect) for every app: [Connect an integration](/docs/how-to/connect-an-integration). Inventory: [Connect a carrier or integration](/docs/how-to/connect-index). Conditional logic: [Automations](/docs/how-to/automations). Provider essay: [Slack](/docs/integrations/slack).

Creating a connection uses the same plan gate as outbound webhooks (**Growth** and above). Nordlys on this page is **Pro**, so **Connect** is unlocked.

## Prerequisites

* A Slack workspace where you can create an **Incoming Webhook**.
* The webhook URL for the channel that should receive posts (`https://hooks.slack.com/services/…`).

## Where to get the Incoming Webhook URL

Slack’s public developer docs walk through creating an incoming webhook. Creating the app and copying the URL happens in **your** Slack workspace (login required).

<Frame caption="Slack docs: create an incoming webhook (the live webhook URL is copied in your own Slack app settings)">
  <img src="https://mintcdn.com/zippendo/9-sVHrvFOKqRvskN/images/how-to/connect-slack/10-slack-incoming-webhooks.png?fit=max&auto=format&n=9-sVHrvFOKqRvskN&q=85&s=9908af504cd1e3ea833c6b98fe59ae68" alt="Slack developer docs for sending messages using incoming webhooks, with Create an app and Enable incoming webhooks steps" width="2880" height="2200" data-path="images/how-to/connect-slack/10-slack-incoming-webhooks.png" />
</Frame>

## Connect from Catalog

<Steps>
  <Step title="Open Catalog">
    Sidebar **Integrations**. Page title **Integrations**. Description: **Connect downstream tools to receive shipping and order events from Zippendo.** Tabs: **Connected** (`?tab=connected`) and **Catalog** (`?tab=catalog`).
  </Step>

  <Step title="Find Slack">
    Card title **Slack**. Links: **Use in automations** (Automations) and **Read more** (opens `https://zippendo.com/docs/integrations/slack`). Button **Connect**, or **Add connection** after the first Slack connection.
  </Step>

  <Step title="Click Connect">
    Modal id `connect-integration-modal`. Title **Connect Slack**. Subtitle: **Get notified in Slack when shipping events happen**.
  </Step>

  <Step title="Fill required fields">
    **Connection Name \*** and **Incoming Webhook URL \***. Tick **Auto-send events** if you want Zippendo to push without an automation.
  </Step>

  <Step title="Connect">
    **Connect** stays disabled until name and URL are filled. Pending spinner on **Connect**. Success toast: **Integration connected successfully**. Failure: **Failed to create connection** (or **This feature is not available on your current plan.**).
  </Step>
</Steps>

<Frame caption="Slack on Catalog — Use in automations, Read more, Connect">
  <img src="https://mintcdn.com/zippendo/9-sVHrvFOKqRvskN/images/how-to/connect-slack/01-catalog-card-light.png?fit=max&auto=format&n=9-sVHrvFOKqRvskN&q=85&s=b2756d5b106ceb469f834491de1c0407" alt="Integrations Catalog with the Slack card, Use in automations, Read more, and Connect" className="block dark:hidden" width="2880" height="1800" data-path="images/how-to/connect-slack/01-catalog-card-light.png" />

  <img src="https://mintcdn.com/zippendo/9-sVHrvFOKqRvskN/images/how-to/connect-slack/01-catalog-card-dark.png?fit=max&auto=format&n=9-sVHrvFOKqRvskN&q=85&s=548e17f84a3aa85d824aa954e28e938e" alt="Integrations Catalog with the Slack card, Use in automations, Read more, and Connect" className="hidden dark:block" width="2880" height="1800" data-path="images/how-to/connect-slack/01-catalog-card-dark.png" />
</Frame>

<Frame caption="Connect Slack — Connection Name, Incoming Webhook URL, Auto-send events">
  <img src="https://mintcdn.com/zippendo/9-sVHrvFOKqRvskN/images/how-to/connect-slack/02-connect-modal-light.png?fit=max&auto=format&n=9-sVHrvFOKqRvskN&q=85&s=1030f82ac5983a61a273851e22d29a4e" alt="Connect Slack dialog with Connection Name, Incoming Webhook URL, automation hint, and event checkboxes" className="block dark:hidden" width="2880" height="1800" data-path="images/how-to/connect-slack/02-connect-modal-light.png" />

  <img src="https://mintcdn.com/zippendo/9-sVHrvFOKqRvskN/images/how-to/connect-slack/02-connect-modal-dark.png?fit=max&auto=format&n=9-sVHrvFOKqRvskN&q=85&s=ce95b3dd9d6e9946b78ab974d1b2ce23" alt="Connect Slack dialog with Connection Name, Incoming Webhook URL, automation hint, and event checkboxes" className="hidden dark:block" width="2880" height="1800" data-path="images/how-to/connect-slack/02-connect-modal-dark.png" />
</Frame>

## Shared fields

These appear on every integration connect dialog, including Slack.

| Field                  | Required | What it is                                                                                                                                                             |
| ---------------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Connection Name \*** | Yes      | Placeholder **e.g., My Slack**. Max 100 characters.                                                                                                                    |
| Hint                   | —        | **Need conditional logic, delays, or multi-step workflows? Create an automation instead.** **Create an automation** links to Automations.                              |
| **Auto-send events**   | No       | Checkbox grid. **Select All** / **Deselect All** toggles every event this provider supports. Empty means Zippendo will not auto-push; **Send test event** still works. |

## Slack credentials

| Field                       | Required | Control                      | Details                                                                                     |
| --------------------------- | -------- | ---------------------------- | ------------------------------------------------------------------------------------------- |
| **Incoming Webhook URL \*** | Yes      | URL. Placeholder `https://…` | The Slack incoming-webhook URL. The URL is the secret — there is no separate API key field. |

Footer: **Cancel** / **Connect**.

## Auto-send events Slack supports

Groups shown: **Shipments**, **Orders**. Slack has no **Tracking** group.

| Checkbox                | Event                 |
| ----------------------- | --------------------- |
| **Shipment Created**    | `shipment.created`    |
| **Shipment Dispatched** | `shipment.dispatched` |
| **Shipment Cancelled**  | `shipment.cancelled`  |
| **Shipment Error**      | `shipment.error`      |
| **Order Created**       | `order.created`       |
| **Order Cancelled**     | `order.cancelled`     |

Not on this modal: **Shipment Updated**, **Order Updated**, **Tracking Updated**.

## After you connect

**Connected** shows a green **Connected** pill and **\{\{count}} connection(s)**. Each row:

| Element | What it shows                                                                                                                         |
| ------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| Name    | The **Connection Name** you entered                                                                                                   |
| Meta    | **\{\{count}} event(s)** · **Paused** if `isActive` is false (there is **no** pause toggle on this screen)                            |
| Send    | **Send test event**. Toast **Test event sent** / **Failed to send test event** (`INTEGRATION_DELIVERY_FAILED` when Slack rejects it). |
| Plug    | **View delivery log**                                                                                                                 |
| Gear    | **Edit connection**                                                                                                                   |
| Trash   | **Delete connection** → **Disconnect Integration**                                                                                    |

<Frame caption="Connected — Slack row with test, log, edit, and disconnect">
  <img src="https://mintcdn.com/zippendo/9-sVHrvFOKqRvskN/images/how-to/connect-slack/03-connected-light.png?fit=max&auto=format&n=9-sVHrvFOKqRvskN&q=85&s=5165dd2d0fbed6ceb983f48ed896f0a7" alt="Integrations Connected tab with a Slack connection and action icons" className="block dark:hidden" width="2880" height="1800" data-path="images/how-to/connect-slack/03-connected-light.png" />

  <img src="https://mintcdn.com/zippendo/9-sVHrvFOKqRvskN/images/how-to/connect-slack/03-connected-dark.png?fit=max&auto=format&n=9-sVHrvFOKqRvskN&q=85&s=b220f04a1a99f80147c14976d3a12bd7" alt="Integrations Connected tab with a Slack connection and action icons" className="hidden dark:block" width="2880" height="1800" data-path="images/how-to/connect-slack/03-connected-dark.png" />
</Frame>

Each auto-send (or test) POSTs a Slack message titled **Zippendo: \{\{event}}** (test: **Zippendo: Test Event**). You can add more Slack connections (one webhook per channel).

There is **no** Sandbox Mode checkbox. Use **Send test event** to verify the URL.

## Edit Slack Connection

Modal id `edit-integration-connection-modal`. Title **Edit Slack Connection**. Subtitle **Update the configuration for \{\{connection}}**. **Save Changes** / **Cancel**. **Save Changes** disabled while **Connection Name \*** is empty.

<Frame caption="Edit Slack Connection — rename, replace the webhook URL, retick events">
  <img src="https://mintcdn.com/zippendo/9-sVHrvFOKqRvskN/images/how-to/connect-slack/04-edit-modal-light.png?fit=max&auto=format&n=9-sVHrvFOKqRvskN&q=85&s=eccfe9907ad875e8109780195250f958" alt="Edit Slack Connection dialog with Connection Name, Incoming Webhook URL, and Auto-send events" className="block dark:hidden" width="2880" height="1800" data-path="images/how-to/connect-slack/04-edit-modal-light.png" />

  <img src="https://mintcdn.com/zippendo/9-sVHrvFOKqRvskN/images/how-to/connect-slack/04-edit-modal-dark.png?fit=max&auto=format&n=9-sVHrvFOKqRvskN&q=85&s=58b83e0434e72c911863b9e1b5f03de8" alt="Edit Slack Connection dialog with Connection Name, Incoming Webhook URL, and Auto-send events" className="hidden dark:block" width="2880" height="1800" data-path="images/how-to/connect-slack/04-edit-modal-dark.png" />
</Frame>

| Field                       | Details                                                                                                                                         |
| --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| **Connection Name \***      | Same as create.                                                                                                                                 |
| **Incoming Webhook URL \*** | Placeholder **Enter new incoming webhook url or leave to keep existing**. Stored secrets are never listed. Leave blank to keep the current URL. |
| **Auto-send events**        | Same Slack checkboxes as create.                                                                                                                |

Toasts: **Integration updated successfully** / **Failed to update connection**.

<Warning>
  Pasting a new URL **replaces** the stored credentials. Leave the field blank to keep the existing webhook.
</Warning>

## Delivery log and test

**View delivery log** — modal id `integration-delivery-log-modal`. Title **Delivery Log**. Subtitle **Recent deliveries for \{\{connection}}**. **Close**.

| State   | What you see                                                                                         |
| ------- | ---------------------------------------------------------------------------------------------------- |
| Loading | Spinner                                                                                              |
| Empty   | **No deliveries yet**                                                                                |
| Row     | Event name, HTTP status, duration in `ms`, relative time, error text if failed. Green check / red X. |

<Frame caption="Delivery Log — empty until the first auto-send or Send test event">
  <img src="https://mintcdn.com/zippendo/9-sVHrvFOKqRvskN/images/how-to/connect-slack/05-delivery-log-light.png?fit=max&auto=format&n=9-sVHrvFOKqRvskN&q=85&s=abc11769d92a8a2d9d1e27495f9e38f3" alt="Delivery Log modal showing No deliveries yet for a Slack connection" className="block dark:hidden" width="2880" height="1800" data-path="images/how-to/connect-slack/05-delivery-log-light.png" />

  <img src="https://mintcdn.com/zippendo/9-sVHrvFOKqRvskN/images/how-to/connect-slack/05-delivery-log-dark.png?fit=max&auto=format&n=9-sVHrvFOKqRvskN&q=85&s=c4107017d6b69ce7b44352c73ed94a63" alt="Delivery Log modal showing No deliveries yet for a Slack connection" className="hidden dark:block" width="2880" height="1800" data-path="images/how-to/connect-slack/05-delivery-log-dark.png" />
</Frame>

**Send test event** enqueues `integration.test`. It does not require any auto-send checkbox.

## Disconnect

Trash opens **Disconnect Integration**. Description: **Are you sure you want to disconnect this integration? This will stop all event deliveries and delete the delivery history.** Type **DELETE** (placeholder **DELETE**) to enable **Disconnect**. Label: **Type DELETE to confirm**. Tooltip while disabled: **Type "DELETE" to confirm.**

Toasts: **Integration disconnected** / **Failed to delete connection**. Missing row: **Integration not found.** (`ORG_INTEGRATION_NOT_FOUND`).

<Frame caption="Disconnect Integration — type DELETE to confirm">
  <img src="https://mintcdn.com/zippendo/9-sVHrvFOKqRvskN/images/how-to/connect-slack/06-disconnect-modal-light.png?fit=max&auto=format&n=9-sVHrvFOKqRvskN&q=85&s=da2ac5662186d0e0397fe0c241e543a4" alt="Disconnect Integration confirmation requiring DELETE" className="block dark:hidden" width="2880" height="1800" data-path="images/how-to/connect-slack/06-disconnect-modal-light.png" />

  <img src="https://mintcdn.com/zippendo/9-sVHrvFOKqRvskN/images/how-to/connect-slack/06-disconnect-modal-dark.png?fit=max&auto=format&n=9-sVHrvFOKqRvskN&q=85&s=03eecad1fdc54acb7711da25cee907e9" alt="Disconnect Integration confirmation requiring DELETE" className="hidden dark:block" width="2880" height="1800" data-path="images/how-to/connect-slack/06-disconnect-modal-dark.png" />
</Frame>

<Check>
  You are done when **Connected** lists Slack with a **Connected** pill and **Send test event** toasts **Test event sent**.
</Check>

## Automations

Two Slack nodes exist. They are not the same.

| Palette name                | What it uses                                                                     |
| --------------------------- | -------------------------------------------------------------------------------- |
| **Send Slack Notification** | A **connected** Slack integration from this screen (`action.integration.slack`). |
| **Send Slack Message**      | A webhook URL typed on the node. It does **not** use this connection.            |

**Send Slack Notification** inspector: **Connection** (required — **Connection is required**; placeholder **Select a connection**; helper **Select an existing slack connection. Manage connections in Settings > Integrations.**). Empty list: **No items available**. **Custom properties** optional (**Add**; key **key**, value **\{\{shipment.reference}}**). No **Event name override**.

Full node list: [Automations](/docs/how-to/automations).

## Related

* [Connect a carrier or integration](/docs/how-to/connect-index)
* [Connect an integration](/docs/how-to/connect-an-integration)
* [Carrier credentials](/docs/how-to/carrier-credentials)
* [Sandbox mode](/docs/how-to/sandbox-mode)
* [Request a carrier integration](/docs/how-to/request-carrier-integration)
* [Carriers](/docs/tutorials/carriers)
* [Automations](/docs/how-to/automations)
* [Slack](/docs/integrations/slack)
* [Integrations troubleshooting](/docs/integrations/troubleshooting)
