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

# Zapier

> Automate identity verification workflows with the Didit Zapier app. Trigger verifications and listen to results in 6,000+ apps. Pay-per-call from $0.30.

export const VideoEmbed = ({src, title = "Video", type = "iframe"}) => <div className={type === "iframe" ? "didit-video-embed" : "didit-video-embed didit-video-native"}>
    {type === "iframe" ? <iframe src={src} title={title} style={{
  width: "100%",
  height: "100%",
  border: 0,
  borderRadius: "12px"
}} allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowFullScreen /> : <video controls autoPlay muted loop playsInline src={src} title={title} style={{
  width: "100%",
  height: "auto",
  display: "block",
  borderRadius: "12px"
}} />}
  </div>;

Connect Didit to **6,000+ apps** through Zapier — no code required. Automatically create verification sessions, react to status changes, and sync results with your CRM, database, or communication tools.

<Card title="Open Didit on Zapier" icon="bolt" href="https://zapier.com/apps/didit/integrations">
  Browse triggers, actions, and ready-made templates on the Zapier marketplace.
</Card>

<VideoEmbed src="https://www.youtube.com/embed/D7X4kNHxX0A?rel=0&playsinline=1" title="Didit Zapier Integration" />

***

## What You Get

<CardGroup cols={3}>
  <Card title="Create Sessions" icon="plus">
    Trigger verification sessions from form submissions, CRM events, or any Zapier-connected app.
  </Card>

  <Card title="Real-Time Webhooks" icon="bell">
    Receive instant status updates (Approved, Declined, In Review, etc.) as Zapier triggers.
  </Card>

  <Card title="Retrieve Results" icon="magnifying-glass">
    Fetch full session details — ID data, liveness scores, AML hits — on demand.
  </Card>
</CardGroup>

***

## Prerequisites

| Requirement        | Where to get it                                                                                                      |
| ------------------ | -------------------------------------------------------------------------------------------------------------------- |
| **Didit account**  | Sign up at [business.didit.me](https://business.didit.me) — Free KYC plan is enough to test.                         |
| **API Key**        | Console → **API & Webhooks** → copy the production key. The Zapier app authenticates with this key for every action. |
| **Workflow ID**    | Console → **Workflows** → pick the workflow you want to launch (or [create one](/console/workflows)).                |
| **Zapier account** | Free or paid — [zapier.com](https://zapier.com). The free plan handles 100 tasks / month, enough for small pilots.   |

***

## How It Works

<Steps>
  <Step title="Connect Didit to Zapier" icon="plug">
    In Zapier, search for **Didit** in the app directory (or open the [marketplace listing](https://zapier.com/apps/didit/integrations) directly) and connect your account using the **API Key** from Console → **API & Webhooks**.

    <Tip>
      Your API Key authenticates all Didit actions in Zapier. You only need to connect once — all your Zaps share the same connection, and rotating the key in Console invalidates the Zapier connection until you reconnect.
    </Tip>
  </Step>

  <Step title="Set Up a Trigger" icon="bolt">
    Choose what starts your Zap. This can be a **Didit trigger** or any other app:

    | Trigger Source    | Example                                             |
    | ----------------- | --------------------------------------------------- |
    | **Didit webhook** | Session status changes to "Approved"                |
    | **Google Forms**  | New form submission → create a verification session |
    | **HubSpot**       | New contact created → trigger KYC                   |
    | **Stripe**        | New customer → verify identity before payout        |
    | **Typeform**      | Onboarding form completed → start verification      |
  </Step>

  <Step title="Add a Didit Action" icon="play">
    Use one of the available Didit actions (names match the [Zapier marketplace listing](https://zapier.com/apps/didit/integrations)):

    **Create Verification Session** — wraps `POST /v3/session/`

    * Provide the **Workflow ID** of the verification flow to execute.
    * Optionally set a **Callback URL** for the post-verification redirect.
    * Pass **Vendor Data** (e.g. user email or your internal ID) to link the session back to your records.
    * The action returns the new `session_id`, the user-facing `url`, and the initial `status` — use the `url` to send the user to the verification flow.

    **Retrieve Verification Session** — wraps `GET /v3/session/{sessionId}/decision/`

    * Pass a `session_id` to fetch the full verification result.
    * Access ID data, liveness scores, AML results, the final `status`, and any uploaded media URLs.
  </Step>

  <Step title="React to Results" icon="arrows-split-up-and-left">
    Add downstream actions based on the verification outcome:

    | Status        | Suggested Action                                          |
    | ------------- | --------------------------------------------------------- |
    | `"Approved"`  | Update CRM, grant platform access, send welcome email     |
    | `"Declined"`  | Flag in database, notify compliance, send rejection email |
    | `"In Review"` | Create task for compliance team, send Slack notification  |
    | `"Abandoned"` | Send reminder email with a fresh verification link        |
  </Step>
</Steps>

<Frame caption="Creating a Didit verification session from a Zapier action.">
  <img src="https://mintcdn.com/didit-0f962782/DSfxHq_ggIpqiQSG/images/zapier-create-session.png?fit=max&auto=format&n=DSfxHq_ggIpqiQSG&q=85&s=f847a30aa1e0b600543ae4dec6229cdd" alt="Creating a Didit identity verification session from a Zapier action step" width="1655" height="1117" data-path="images/zapier-create-session.png" />
</Frame>

***

## Popular Zap Templates

<CardGroup cols={2}>
  <Card title="Google Forms → Didit → Gmail" icon="envelope">
    User fills onboarding form → verification session created → result emailed to user and admin.
  </Card>

  <Card title="HubSpot → Didit → HubSpot" icon="address-book">
    New contact → trigger KYC → update contact properties with verification status and ID data.
  </Card>

  <Card title="Stripe → Didit → Slack" icon="credit-card">
    New customer → verify identity → notify your team on Slack with the result.
  </Card>

  <Card title="Webhook → Didit → Airtable" icon="table">
    Custom trigger → verify user → log session results in Airtable for compliance records.
  </Card>
</CardGroup>

***

## Available Triggers & Actions

The names below match the current Didit Zapier app on the [marketplace](https://zapier.com/apps/didit/integrations). If you ever see a label that differs slightly inside Zapier itself, trust the Zapier UI — the underlying behavior is the same.

### Triggers (start a Zap)

| Trigger                    | Underlying event                                  | Description                                                                                                                                    |
| -------------------------- | ------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| **Session Status Updated** | [`status.updated` webhook](/integration/webhooks) | Fires every time a verification session changes status (`Approved`, `Declined`, `In Review`, `Resubmitted`, `Abandoned`, `Kyc Expired`, etc.). |

### Actions (do something)

| Action                            | Underlying endpoint                     | Description                                                                                                                        |
| --------------------------------- | --------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| **Create Verification Session**   | `POST /v3/session/`                     | Starts a new session with your workflow, optional callback URL, and `vendor_data`. Returns the session URL to share with the user. |
| **Retrieve Verification Session** | `GET /v3/session/{sessionId}/decision/` | Fetches the full decision payload — ID data, liveness, AML hits, and final status — for a given `session_id`.                      |

***

## Things to know

<Warning>
  The Didit Zapier app is intentionally scoped to the **highest-value automation surface**: launching sessions and reacting to status updates. The following are **not** currently exposed through Zapier and require a direct API call:

  * Uploading a document image, video, or POA asset from a Zap step.
  * Decision overrides via [`PATCH /v3/session/{sessionId}/update-status/`](/sessions-api/update-status).
  * KYB-specific endpoints (registries, key people).
  * Webhook event types other than session-level status changes (e.g. `transaction.status.updated`, `user.status.updated`).

  If you need any of these from a no-code tool, drop into the [Sessions API](/sessions-api/create-session) via a Zapier **Webhooks by Zapier** step with your API Key.
</Warning>

***

## Tips & Best Practices

<AccordionGroup>
  <Accordion title="Use Vendor Data to link sessions" icon="link">
    Always pass a unique identifier (email, user ID, or UUID) in the **Vendor Data** field when creating sessions. This lets you match verification results back to the correct user in your system.
  </Accordion>

  <Accordion title="Handle all status outcomes" icon="list-check">
    Build Zap paths (using Zapier's Paths feature) to handle different statuses differently — Approved, Declined, In Review, Resubmitted, Abandoned, and Expired each deserve a tailored response.
  </Accordion>

  <Accordion title="Use Filters to reduce noise" icon="filter">
    Add Zapier Filters to only trigger downstream actions for specific statuses. For example, only send a welcome email when status is `"Approved"`.
  </Accordion>

  <Accordion title="Test before going live" icon="flask">
    Use Zapier's test feature along with Didit's **Try Webhook** button (in Console → API & Webhooks) to validate your Zap end-to-end before processing real users.
  </Accordion>
</AccordionGroup>

***

## Next Steps

<CardGroup cols={2}>
  <Card title="Quick Start Guide" icon="rocket" href="/getting-started/quick-start">
    Set up your Didit account, create a workflow, and get your API key.
  </Card>

  <Card title="Webhooks" icon="webhook" href="/integration/webhooks">
    Learn about webhook payloads and signature verification for server-side integrations.
  </Card>
</CardGroup>
