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

# Zapier

> Send conversation events to a Zapier Catch Hook, or trigger Botcadence from a Zap

Zapier connects Botcadence and other apps in two directions:

* **Outbound:** Botcadence POSTs conversation events to a Zapier **Catch Hook**. You store the hook URL on **Integrations**, then attach that connection on a campaign, inbound, or channel.
* **Inbound:** a Zap calls Botcadence with a **project API key** to place a campaign call or fire an automation.

Integrations only stores the Catch Hook URL. Events fire only for conversations on a source that selected this Zapier connection.

## Prerequisites

* A Zapier account
* Permission to add integrations and, for inbound Zaps, to create a project API key
* For outbound: a Zap that starts with **Webhooks by Zapier** → **Catch Hook**

## Connect (outbound Catch Hook)

<Steps>
  <Step title="Create a Catch Hook in Zapier">
    Create a Zap. Choose **Webhooks by Zapier** → **Catch Hook**. Copy the webhook URL.
  </Step>

  <Step title="Save the URL in Botcadence">
    In the project sidebar, select **Integrations**, then **Add Integration**. Select **Connect** on **Zapier**. Paste **Zapier Catch Hook URL** (HTTPS). The wizard checks that the URL uses HTTPS.
  </Step>

  <Step title="Attach it on a source">
    Open the campaign, inbound, or channel **Integrations** tab. Enable post-call extraction and set **Send extracted fields to** / **Destination** to this Zapier connection (or leave **In-app only** if you do not want Zapier yet).
  </Step>
</Steps>

<Check>
  When you test the Zap trigger, Zapier can receive a sample. After a real conversation on that source, the Catch Hook receives the event payload.
</Check>

Extracted fields are always stored for in-app reports. When Zapier is the destination, the Catch Hook also receives them in `structured_data`.

You can attach CRM, Sheets, or Zapier as the extra destination — not more than one extra destination at a time.

## Outbound events

Catch Hooks receive:

* `conversation.completed`
* `conversation.handover`
* `conversation.inactivity_summary`

Payload fields include: `event`, `event_type` (compat alias), `occurred_at`, `organization_id`, `project_id`, `conversation_id`, `customer_profile_id`, `conversation_type`, `channel`, `status`, `summary`.

Handover events also include `handover_id`, `handover_reason`, `handover_status`, and `user_message`.

Map those fields in Zapier to Gmail, Sheets, your CRM, or any other Zap step.

## Inbound Zaps (call Botcadence)

<Steps>
  <Step title="Create a project API key">
    Create a key under API keys with the scope you need.
  </Step>

  <Step title="POST from Zapier">
    In Zapier, use **Webhooks by Zapier** → **POST**. Add header `X-API-Key` with the key. Do not put the key in the Zap URL.
  </Step>
</Steps>

Supported endpoints:

* Trigger an outbound campaign call: `POST /organizations/{org_id}/projects/{project_id}/campaigns/{campaign_id}/trigger-call` (scope `calls:create`)
* Fire an automation rule: `POST /organizations/{org_id}/projects/{project_id}/automation-rules/trigger` (scope `automations:trigger`)

Base URL: `https://backend.botcadence.com` (production). See [Authentication](/docs/api-reference/authentication) and [Trigger outbound call](/docs/api-reference/campaigns/trigger-call).

## Limits

* The Catch Hook must be HTTPS.
* No events go to Zapier until a campaign, inbound, or channel selects this connection.
* Custom webhook integrations stay gated on those sources the same way. Zapier is a Catch Hook, not a generic CRM field mapper.

## Troubleshooting

<AccordionGroup>
  <Accordion title="Zapier never receives events">
    Confirm the Catch Hook URL is saved on **Integrations**, the source **Destination** is this Zapier connection, and a conversation actually completed (or handed over) on that source.
  </Accordion>

  <Accordion title="Catch Hook URL is rejected">
    Paste the full HTTPS URL from Webhooks by Zapier. HTTP URLs are not accepted.
  </Accordion>

  <Accordion title="Inbound Zap returns 401">
    Use header `X-API-Key` with a live project key. Confirm the key matches the organization and project in the URL and has `calls:create` or `automations:trigger`.
  </Accordion>

  <Accordion title="I cannot select both Sheets and Zapier">
    Pick one extra destination. Keep a second export as a separate source or a later conversation if you need both systems.
  </Accordion>
</AccordionGroup>
