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

# Connect Zapier

> Generate a Zapier API key in DMLY, subscribe a Zap to workspace events, and test the wiring with a sample payload.

Zapier connects DMLY to the thousands of apps Zapier already speaks to: a new contact adds
a row to a spreadsheet, a paid invoice posts to your accounting tool, a booked appointment
pings a Slack channel. The direction is **events out**: DMLY pushes events to your Zap the
moment they happen, and the Zap does the rest.

Zapier and the **Webhooks** tile are not the same door. Webhooks send events to an endpoint
*you* run; Zapier uses its own subscription handshake: your Zap registers itself with DMLY
and shows up in the panel as a connected hook. Use Zapier to reach an app Zapier supports,
and Webhooks (or [n8n](/integrations/n8n)) for your own code.

## Connect it

<Steps>
  <Step title="Generate the API key">
    Open the **Zapier** tile on the Integrations page and select **Generate API key**. The
    panel then shows two things your Zap will ask for: the **API key** (behind a **Reveal**
    toggle, with **Copy** next to it) and the **Base URL**.
  </Step>

  <Step title="Build the Zap">
    The panel's **Setup guide** walks you through the Zapier side: create a Zap, choose the
    trigger app it names, and paste the API key and base URL when Zapier asks you to
    authenticate.
  </Step>

  <Step title="Pick a trigger event">
    Choose the event the Zap should fire on: a new contact, an inbound message, a paid
    invoice. Zapier subscribes automatically; there is nothing to configure back in DMLY.
  </Step>

  <Step title="Turn the Zap on">
    A live Zap appears in the panel under **Connected Zaps**, listed by the event it
    subscribed to. Turning the Zap off in Zapier unsubscribes it and the row disappears.
  </Step>
</Steps>

<Warning>
  The API key is what authorises a Zap to receive your workspace's events: contact names,
  phone numbers, message content. Treat it like a password. It is a separate key from your
  [REST API keys](/api-reference/authentication): a Zapier key starts `zap_` and only works
  for the Zapier handshake, so it can't be used to read or change anything else in your
  workspace.
</Warning>

## Test it before you rely on it

The panel's **Send a test event** section takes an event and, as it says itself, *"Fires a
sample payload to every Zap subscribed to that event."* Use it to prove the wiring end to
end: the sample arrives in Zapier exactly like a real event, so you can map its fields into
the Zap's next steps without waiting for a real contact to do something.

## The events you can subscribe to

The catalogue is the same one the Webhooks tile uses: every topic in
[Webhook events](/api-reference/webhooks), from `contact.created` through appointments,
invoices, payments, subscriptions, store events and broadcasts. A Zap subscribes to exactly
one event; run several Zaps for several events.

## What a delivery looks like

Every event reaches the Zap in the same envelope, with the event's own payload under `data`:

```json theme={"dark"}
{
  "id": "0d1f2c3e-…",
  "event": "contact.tagged",
  "occurred_at": "2026-07-17T09:30:00+00:00",
  "workspace_id": "…",
  "data": {
    "contact": {
      "id": "contact_demo",
      "name": "Jordan Lee",
      "email": "jordan.lee@example.com",
      "phone": "+15550142299",
      "platform": "whatsapp"
    },
    "tag": "VIP"
  }
}
```

That example is the actual sample payload for `contact.tagged`, what **Send a test event**
delivers. Two fields are worth building around: `event` tells a multi-purpose Zap what
arrived, and `id` is stable across retries, so deduplicate on it if a step must not run
twice.

<Note>
  Zapier deliveries are not signed the way [webhook endpoint](/api-reference/webhooks)
  deliveries are: a Zapier hook URL is an unguessable address that only Zapier and DMLY
  know, which is Zapier's own security model for REST hooks.
</Note>

<Columns cols={2}>
  <Card title="Webhook events" icon="bolt" href="/api-reference/webhooks">
    The full topic list a Zap can subscribe to.
  </Card>

  <Card title="Connect n8n" icon="diagram-project" href="/integrations/n8n">
    The same events, delivered to a workflow you run yourself.
  </Card>
</Columns>
