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

# Zapier Integration

> Start Zaps from any Orbit event, and create, update and find contacts, companies, deals, tasks and notes from thousands of apps

![Zapier](https://mintcdn.com/orbitai-d647f397/T1yKN7sdBmMTM8cv/_images/integrations/zapier.svg?fit=max\&auto=format\&n=T1yKN7sdBmMTM8cv\&q=85\&s=57b79caa02205dedaf6c8b879067976a)

## Start Here

The Orbit AI (Forms) app for Zapier connects your CRM to thousands of apps without code. Every Orbit event is an **instant trigger**: a form submission, a new contact, a deal won, a meeting booked, a call analyzed. **Actions** create and update contacts, companies, deals, tasks and notes, and **searches** find them, so a Zap can look a record up before it changes it.

* **Triggers** start a Zap the moment something happens in Orbit. Orbit sends the event to Zapier; nothing polls.
* **Actions** write to Orbit from any other app.
* **Searches** find a record by email, domain, name or title, and *Find or Create* adds one when none matches.

## Connect Orbit

**1. Add an Orbit step**

In Zapier, create a Zap and search for **Orbit AI (Forms)**. Pick a trigger (such as **New Form Submission** or **Deal Won**) or an action (such as **Create Contact**).

**2. Sign in and choose the workspace**

Click **Sign in**. Orbit asks you to sign in, choose the workspace to connect and approve what Zapier may do (listed [below](#what-zapier-can-access)). The connection is named after the workspace.

**3. Test and turn on**

Map fields, test the step and publish the Zap. Turning a Zap with an Orbit trigger on registers a webhook in Orbit; turning it off removes it.

> [!NOTE]
>
> A connection acts as the person who connected it. Triggers and actions need an editor, admin or owner (a viewer's connection can only search), and searches return only records that person can see in Orbit.

## Triggers

One trigger per event in the [webhook catalog](https://docs.useorbitcrm.ai/developers/webhooks/events.md), so a new kind of Orbit event becomes a trigger too.

| Object | Triggers |
| - | - |
| Form submissions | New Form Submission, Lead Qualified, Submission Updated, Submission Deleted. Each can be limited to one form |
| Contacts | Contact Created, Updated, Archived, Deleted, Restored, Contact Tag Added or Removed, Contact Company Link Changed, Contact Changed Jobs |
| Companies | Company Created, Updated, Deleted, Restored, Companies Merged, Company Tag Added or Removed |
| Deals | Deal Created, Updated, Stage Changed, Won, Lost, Reopened, Deleted, Restored, Deals Merged, Deal Tag Added or Removed, Deal Association Changed |
| Tasks | Task Created, Updated, Completed, Deleted, Restored |
| Meetings | Meeting Booked, Rescheduled, Cancelled |
| Calls | Call Completed, Call Transcribed, Call Analyzed |
| Comments | Comment Posted, Edited, Deleted |

**New Form Submission** gives the form's name and each answer by its field name, at the top level and under `data` (`data.email`, `data.first_name`, ...), with the referrer, device and UTM values under `metadata`, exactly as earlier versions did. Every other trigger delivers the event as Orbit sends it: `event`, `occurred_at`, `actor` and `data`, where `data` holds the record (for example `data.deal.amount`) and, for updates, `data.changes` with each field's old and new value. The [events reference](https://docs.useorbitcrm.ai/developers/webhooks/events.md) documents every payload. `actor` says who caused the event, and Zapier labels its two fields **Changed By (Team Member ID)**, the person who made the change in Orbit, and **Changed By (Connected App ID)**, the app that made it through the API, such as this Zapier connection. Forms, imports, workflows and API keys leave both empty, and so do the test records Zapier loads while you set up a trigger. To keep a Zap that writes to Orbit from triggering itself, add a filter that stops when Changed By (Connected App ID) is your Zapier connection's app. While you set up a contact, company, deal or task trigger, **Test trigger** loads your three newest records (the latest created for a Created trigger; the latest changed, won, lost or completed for the others) so you can map their fields; other triggers show a sample.

> [!TIP]
>
> To count closed deals, use **Deal Won** (and **Deal Reopened** to take a win back) rather than **Deal Updated**: it fires once per win, not on every edit.

## Actions and searches

| Object | Actions | Search |
| - | - | - |
| Contacts | Create Contact, Update Contact | Find Contact (by email, or by name, email, company or phone), Find or Create Contact |
| Companies | Create Company, Update Company | Find Company (by domain, or by name), Find or Create Company |
| Deals | Create Deal, Update Deal (including moving it to another stage) | Find Deal (by name, company or contact) |
| Tasks | Create Task, Update Task (including completing it) | Find Task (by title) |
| Notes | Create Note (on a contact, company or deal), Update Note | Find Note (the latest on a record, optionally containing some text) |

* **Owners, pipelines and stages, task types, lifecycle stages and lead statuses** are dropdowns filled from your workspace. Choosing a pipeline narrows the stages to its own; to move a deal to another pipeline, choose both.
* **Updates change only the fields you fill in.** An empty field never clears a value in Orbit.
* **Custom fields** take the field's internal name (Settings → CRM → Fields) and a value; on an update they merge into the stored values.
* **Records**: pick a contact, company, deal or task from a list, map its ID from an earlier step, or let Zapier look it up with the matching find. To update a note, pick the record it is on and then the note.

## What Zapier can access

| Scope | Used for |
| - | - |
| `team:read`, `user:read` | Naming the connection after your workspace |
| `webhooks:read`, `webhooks:write` | Registering a webhook when a Zap with an Orbit trigger turns on, and removing it when it turns off |
| `submissions:read`, `contacts:read`, `companies:read`, `deals:read`, `tasks:read`, `notes:read`, `meetings:read`, `dialer:read`, `emails:read` | Triggers for each kind of event (`emails:read` for Inbox conversations assigned, closed or reopened), and searches |
| `contacts:write`, `companies:write`, `deals:write`, `tasks:write`, `notes:write` | Actions |
| `crm:read`, `forms:read` | The owner, pipeline and stage dropdowns, and the form filter on submission triggers |

The app has no delete actions and never asks for a `:delete` scope. Remove the connection in Zapier, or in Orbit under **Settings → Integrations → Connected apps**, to revoke it.

## Common Issues and Fixes

> [accordion] A trigger doesn't fire
>
> * Make sure the Zap is on. Turning it on registers the webhook; check the Zap's history for the event.
> * Bulk imports and CRM migrations reach Zapier only once the workspace allowed it under **Settings → Integrations → Connected apps → Imports**.

> [accordion] An action fails with a message from Orbit
>
> Zapier shows Orbit's reason, such as *A contact with this email already exists* (use **Find or Create Contact**) or a required field your pipeline's rules ask for on that stage.

> [accordion] A trigger or action fails with a permission error
>
> The connection acts as the person who connected it, and a viewer can't write or register triggers. Ask an admin to raise your role, then reconnect.

> [accordion] The trigger test finds no records, or says the connection was made with an earlier version
>
> A connection made before version 2 (through the earlier **New Form Submission** sign-in) carries a token the current app can't use, so a step on the current version finds no records and asks you to connect again. On the Orbit step choose **+ Connect a new account**, sign in to Orbit, pick the workspace, select that connection for the step and test again. Zaps still on the earlier version keep working with their old connection.

> [accordion] I use New Form Submission from an earlier version
>
> Version 2 connects through Orbit's standard sign-in, so connect your Orbit account once more: open the Zap, update the Orbit step to the latest version, choose **+ Connect a new account**, sign in and pick the workspace, then publish the Zap. The trigger, its Form setting and every field you mapped stay the same, because New Form Submission sends the same fields as before. Zaps you haven't updated keep running on the earlier version.

## Related Articles

> [card] [Webhook events](https://docs.useorbitcrm.ai/developers/webhooks/events.md)
>
> Every event and its payload

> [card] [Webhooks](https://docs.useorbitcrm.ai/integrations/webhooks.md)
>
> Send events to your own endpoint


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.