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

# Zoom

> Send data from Zoom to Inflection using inbound webhooks.

This guide explains how to configure an **Inbound Webhook** in Inflection and connect it to **Zoom** to ingest webinar or meeting activity data. This data can then trigger actions or target users within Inflection journeys.

<AccordionGroup>
  <Accordion title="Creating an Inbound Webhook Connection for Zoom">
    1. Navigate to:
       **Assets → Inbound Webhook**

    2. Click **"New Connection"**

    3. Select **Zoom** from the list

           <img src="https://mintcdn.com/inflection-4b2c0de4/0Fy2fPaKm7bhQlZX/images/connections/webhooks/zoom/01.png?fit=max&auto=format&n=0Fy2fPaKm7bhQlZX&q=85&s=f5d3d3ca0f92aada67d3f9c9b15a787a" alt="Selecting Zoom from the list of inbound webhook connection types" width="2880" height="1508" data-path="images/connections/webhooks/zoom/01.png" />

    4. Provide a **Connection Name** and optional **Description**

    5. Copy and paste Webhook Secret Token from Zoom app (app creation steps are detailed below)

           <img src="https://mintcdn.com/inflection-4b2c0de4/0Fy2fPaKm7bhQlZX/images/connections/webhooks/zoom/02.png?fit=max&auto=format&n=0Fy2fPaKm7bhQlZX&q=85&s=755ecbf5c07a85c22b45d82703548109" alt="Webhook Secret Token field in the Zoom connection setup" width="1654" height="792" data-path="images/connections/webhooks/zoom/02.png" />

    6. Choose an **Authentication Method**:
       * **No Auth**
       * **Basic Auth**
       * **API Key**

    7. Enable or disable **"Create New Contact"**:
       * ✅ **Enabled** – A new contact will be created when a new email is received
       * ❌ **Disabled** – Only existing contacts will be updated

    8. Click **"Generate Webhook"** to finalize setup

    9. Copy the **Webhook URL** and authentication details (if applicable) to be used in Zoom

    <Warning>
      Authentication method cannot be changed once the connection is created
    </Warning>
  </Accordion>

  <Accordion title="Zoom Webhook Setup">
    ### Step 1: Create an App

    1. **Log in to Zoom** → Go to **Zoom App Marketplace**
    2. Click **"Develop" → "Build App"**
    3. Select **Webhook Only** as the app type
    4. Fill in **App Name**, select an **Account Type**, and click **Create**
    5. In the **Feature** tab, enable **Event Subscriptions**
    6. Click **"Add Event Subscription"** → Enter a **Subscription Name**
    7. Provide your **Inflection.io** **Webhook URL**
    8. Save and **Activate the App**

    ### Step 2: Configure Event Subscriptions

    1. Navigate to your app's **Event Subscriptions** section
    2. Click **Add Event Subscription**
    3. Name your subscription (e.g., "Inflection Webhook")
    4. Paste the **Webhook URL** from Inflection

    > Zoom will immediately send a url\_validation challenge request — this is handled automatically by Inflection.

    5. Choose the events to track, such as:
       * **Webinar Events:**
         * `webinar.registration_created`
         * `webinar.participant_joined`
         * `webinar.participant_left`
       * **Meeting Events:**
         * `meeting.participant_joined`
         * `meeting.participant_left`
         * `meeting.registration_created`
    6. Save the configuration

    Inflection supports Zoom's **challenge-response** model to verify webhook URLs.

    ### Challenge-Response Support

    When Zoom sends a `url_validation` payload, Inflection will:

    * Automatically extract the `plainToken`
    * Generate the required `encryptedToken`
    * Respond with both, as required by Zoom

    > You don't need to handle this manually — Inflection's backend does it for you.
  </Accordion>

  <Accordion title="Connection Details & Field Mapping">
    ### View Submissions

    * Monitor submission counts and errors from the **Connection Details** page

    ### Step 1: Enable Submission Fields

    1. Go to the **Submission Fields** tab
    2. Click **Edit**
    3. Enable required fields (e.g., `email`, `topic`, `join_time`, etc.)

    <Warning>
      Only enabled fields can be used in dynamic lists or journeys

      Once enabled, fields cannot be disabled
    </Warning>

    ### Step 2: Map Fields to Contact Properties

    1. Open the **Connection Mapping** tab
    2. Click **Edit**
    3. Map fields from Zoom payloads to Inflection contact properties:
       * Required: **Email**
       * Optional: **Topic**, **Join Time**, **Leave Time**, **Duration**
    4. Choose mapping rules:
       * **Update if Empty**
       * **Always Overwrite**
  </Accordion>

  <Accordion title="Using Zoom Data in Journeys">
    ### Target Contacts Based on Zoom Activity

    1. Go to:
       **Journeys → Create New Journey**
    2. Add a condition:
       `Performed a Marketing Activity → Inbound Webhook Sync`
    3. Filter contacts based on:
       * **Webhook name = Zoom**
       * **Event type = joined/left**

    ### Personalise Communication with Tokens

    Use Zoom fields to personalize outreach:

    * `{{topic}}` – Topic of the webinar
    * `{{joinTime}}` – Timestamp
    * `{{duration}}` – Time spent in the session

    Examples:

    * Send follow-ups to attendees
    * Nurture leads who registered but didn't attend
    * Trigger surveys post-meeting

    ### Segment Using Branch by Filter

    * Route users differently based on:
      * Whether they joined a session
      * How long they stayed
      * Session type (internal onboarding vs customer webinar)
  </Accordion>

  <Accordion title="References">
    * [Zoom Webhook Documentation](https://developers.zoom.us/docs/api/webhooks/)
  </Accordion>
</AccordionGroup>
