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

# Zapier Outbound

> Send call results to any app using Zapier after every call completes.

Use an outbound Zapier integration to send call results to another app automatically. For example, update your customer relationship manager (CRM) with call outcomes. You can also add qualified leads to email sequences, or log data to a spreadsheet.

<Note>
  This no-code integration is perfect for non-technical users. If you are a developer and need more control or custom functionality, check out [Custom webhooks](/docs/integrations/custom-webhooks).
</Note>

<Note>
  Zapier is free to get started. More complex automations may require a paid Zapier plan. Those include multi-step Zaps, premium app connections, and higher task volume. See [Zapier's pricing](https://zapier.com/pricing) for current tiers.
</Note>

<Note>
  You do **not** need to create an outbound webhook manually for Zapier. When you set up an outbound Zapier integration, hyzl creates an outbound webhook automatically. It labels the webhook **Managed by zapier** in your integrations list. The **Custom outbound webhook** card on the Integrations page is only for [custom webhooks](/docs/integrations/custom-webhooks).
</Note>

## Quick setup with Zapier Copilot

Zapier Copilot can scaffold the Zap from a natural-language description. This is the fastest way to forward call results into any app.

### 1. Open Zapier and prompt Copilot

In Zapier, click **Create → Zap** and open Copilot. Describe what should happen after each call completes. For example, for HubSpot:

> When I receive a "Call Finished" trigger from hyzl, find the matching contact in HubSpot by phone number. Then create a call engagement.

Copilot will scaffold a Zap with a **hyzl → Call Finished** trigger and a HubSpot action.

### 2. Connect your hyzl account

In the trigger step, click **Connect** and authorize Zapier to access your hyzl data.

### 3. Send a sample payload

Run a test call in hyzl. Once it completes, Zapier receives the result and the trigger step populates with real fields you can map. Until Zapier sees a real payload, the field picker in later steps will be empty.

### 4. Configure the action and turn it on

In the HubSpot step, Copilot will pre-fill mappings using the call data. For a call engagement on a HubSpot contact, the typical mapping is:

* **Search by**: `call.recipient.phoneNumber`
* **Engagement Type**: Call
* **Engagement Body** ← `call.summary`
* **Call Recording URL** ← `call.recording`
* **Call Duration** ← `call.duration`

Check the mappings. Click **Test step**. Turn the Zap on.

## Manual setup

If you prefer to build the Zap by hand:

1. Create a new Zap in Zapier
2. Choose **hyzl** as the trigger app
3. Choose the **Call Finished** trigger
4. Authorize Zapier to access your hyzl data
5. Choose the action that sends the data to the app you want (e.g. "Create Deal in HubSpot")
6. Map the call results to your target app's fields
7. Test your Zap
8. Turn the Zap on

<video controls preload="metadata" poster="https://res.cloudinary.com/atllas/video/upload/so_0,f_jpg,q_auto/v1770691026/videos/tutorials/zapier-outbound-tutorial-export_znthea" style={{ width: '100%', borderRadius: '0.5rem', aspectRatio: '16 / 9' }}>
  <source src="https://res.cloudinary.com/atllas/video/upload/f_auto:video,q_auto/v1770691026/videos/tutorials/zapier-outbound-tutorial-export_znthea" type="video/mp4" />
</video>

## Available data fields

The outbound integration fires once per call (event type `call.finished`) with a JSON payload identical to the [custom webhooks outbound payload](/docs/integrations/custom-webhooks#outbound-webhooks-receive-call-results). The following fields are available to map in your Zap:

**Call**

| Field                 | Description                       |
| --------------------- | --------------------------------- |
| `call.id`             | Unique call identifier            |
| `call.status`         | `finished`, `missed`, or `failed` |
| `call.duration`       | Call length in milliseconds       |
| `call.recording`      | URL to the MP3 recording          |
| `call.summary`        | AI-generated summary of the call  |
| `call.tokensConsumed` | Credits used for the call         |

**Transcript**

The full transcript is available as an array of turns. Each turn has:

| Field  | Description           |
| ------ | --------------------- |
| `who`  | `assistant` or `user` |
| `what` | What was said         |
| `when` | ISO timestamp         |

**AI Analysis**

| Field                         | Description                                         |
| ----------------------------- | --------------------------------------------------- |
| `call.analysis.lead_warmth`   | `hot`, `warm`, `cold`, `dead`, or `unknown`         |
| `call.analysis.sentiment`     | `positive`, `neutral`, `negative`, or `unknown`     |
| `call.analysis.justification` | Explanation of the lead warmth and sentiment rating |

**Contact**

| Field                        | Description                                     |
| ---------------------------- | ----------------------------------------------- |
| `call.recipient.phoneNumber` | Contact's phone number                          |
| `call.recipient.firstName`   |                                                 |
| `call.recipient.lastName`    |                                                 |
| `call.recipient.email`       |                                                 |
| `call.recipient.address1`    |                                                 |
| `call.recipient.city`        |                                                 |
| `call.recipient.state`       |                                                 |
| `call.recipient.zipCode`     |                                                 |
| `call.recipient.note`        | Custom notes passed when the call was triggered |

**Campaign**

| Field           | Description          |
| --------------- | -------------------- |
| `campaign.id`   | Source campaign ID   |
| `campaign.name` | Source campaign name |

**Event metadata**

| Field       | Description                                        |
| ----------- | -------------------------------------------------- |
| `type`      | Always `call.finished`                             |
| `timestamp` | Unix epoch in milliseconds when the event was sent |

## Popular workflows

**Update CRM with Call Results**\
Trigger: Call Finished → Action: Update Contact in HubSpot/Salesforce\
Map: `call.summary`, `call.analysis.lead_warmth`, `call.recording`

**Create Follow-up Tasks**\
Trigger: Call Finished (filtered by `call.analysis.lead_warmth` = `hot`) → Action: Create Task in Asana/ClickUp\
Map: `call.recipient.firstName`, `call.summary`

**Log to Spreadsheet**\
Trigger: Call Finished → Action: Add Row to Google Sheets\
Map: All call data for reporting and analysis

## Filter results

Use Zapier's Filter step to route different call outcomes to different actions:

* **Hot leads** → Create high-priority task
* **Warm leads** → Add to nurture sequence
* **Cold / Dead leads** → Update CRM status only
* **Missed calls** → Schedule retry

## Tips

* Use filters to handle different call outcomes differently
* Set up error notifications in Zapier to catch integration issues
* Test with a few completed calls before scaling up
* Consider multi-step Zaps for complex workflows
