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

# Tutorial: Make Webhook → Zoom

> Learn how use **Make** to connect Tightknit event registration to Zoom.

In this tutorial, we will use [Make](https://www.make.com) with Tightknit's one-click event registration so that you can forward registrations into Zoom. In other words, when a user clicks the register button in Slack, they will be marked as an attendee in the Tightknit system *and* automatically get registered for your Zoom webinar.

<Steps>
  <Step title="Create a new Scenario">
    To get started, open the scenario editor in Make and create a new scenario ([instructions](https://www.make.com/en/help/scenarios/scenario-editors)).

    Give it a name such as "Tightknit Events to Zoom".
  </Step>

  <Step title="Add the Webhook trigger">
    Add the initial trigger module and search for "Webhooks". Select "Custom webhook".

    <Frame caption="Select the Custom webhook trigger">
      <img src="https://mintcdn.com/tightknit/ce71cUnXwy7Oy4ac/assets/events/tutorials/make-webhook.png?fit=max&auto=format&n=ce71cUnXwy7Oy4ac&q=85&s=96afaa7a54f4376b5bf6b40fc2fa4fc4" alt="Select the Custom webhook trigger" width="1358" height="668" data-path="assets/events/tutorials/make-webhook.png" />
    </Frame>

    Click the `Create a webhook` button. Give the webhook a name such as "Webhook for Tightknit Events" and click Save.
  </Step>

  <Step title="Copy the Webhook URL">
    Locate the URL for your webhook and copy it. You can also click the `Copy address to clipboard` button.

    <Frame caption="Copy the webhook URL">
      <img src="https://mintcdn.com/tightknit/ce71cUnXwy7Oy4ac/assets/events/tutorials/make-webhook-url.png?fit=max&auto=format&n=ce71cUnXwy7Oy4ac&q=85&s=a7cc7ae64c0d7f5c1b31c5e424f81446" alt="Copy the webhook URL" width="1334" height="784" data-path="assets/events/tutorials/make-webhook-url.png" />
    </Frame>
  </Step>

  <Step title="Register the Webhook URL with Tightknit">
    In the Tighktnit [webhooks](/integrations/webhooks) admin portal, create a new endpoint using the webhook URL from the previous step.
  </Step>

  <Step title="Get Zoom Meeting ID">
    Log in to the Zoom online portal and navigate to your Meetings/Webinars. To work with Zoom's registration APIs, we simply need the ID of the meeting/webinar, which you can find in the details of the event.

    **Important:** Copy the Meeting ID as a continuous number **without spaces**. For example, if Zoom displays `883 3309 6147`, you should copy it as `88333096147`.

    <Frame caption="Zoom Meeting ID in the event details">
      <img src="https://mintcdn.com/tightknit/ce71cUnXwy7Oy4ac/assets/events/tutorials/zoom-id.png?fit=max&auto=format&n=ce71cUnXwy7Oy4ac&q=85&s=16b9d393aaf9a147f7358774e22584a4" alt="Zoom Meeting ID in the event details" width="567" height="261" data-path="assets/events/tutorials/zoom-id.png" />
    </Frame>
  </Step>

  <Step title="Register the Zoom ID with your Tightknit Event Webhook">
    We need to include the Zoom ID in the data sent to the Make scenario so that Make knows which specific Zoom event the user registered for.

    Open the Tightknit events list in Slack by clicking the `Events` button in the app home or by typing the `\events` command. Click the `•••` menu next to your event and select `Edit`.

    <Frame caption="Edit event from the menu">
      <img src="https://mintcdn.com/tightknit/ce71cUnXwy7Oy4ac/assets/events/tutorials/edit-event-menu.png?fit=max&auto=format&n=ce71cUnXwy7Oy4ac&q=85&s=95a36b154b155548992c08c5aa56ae0a" alt="Edit event from the menu" width="1758" height="518" data-path="assets/events/tutorials/edit-event-menu.png" />
    </Frame>

    Under the **Registration Settings** section, configure the following:

    1. Check the checkbox to **Enable Webhooks**.
    2. Paste the Zoom meeting ID into the **Webhook Custom Metadata** field, without spaces.

    Click Save.

    Tightknit is now configured to send registration data to your webhook endpoint, including the Zoom ID.
  </Step>

  <Step title="Test the Tightknit Webhook">
    It's easier to work with sample data, so let's do a test run. In the scenario editor, click the `Run once` button.

    <Frame caption="Click the Run once button">
      <img src="https://mintcdn.com/tightknit/ce71cUnXwy7Oy4ac/assets/events/tutorials/make-run-once-button.png?fit=max&auto=format&n=ce71cUnXwy7Oy4ac&q=85&s=0247edd69be3178d438cb9a1d4747427" alt="Click the Run once button" width="446" height="180" data-path="assets/events/tutorials/make-run-once-button.png" />
    </Frame>

    <Frame caption="Make is listening for webhook data">
      <img src="https://mintcdn.com/tightknit/ce71cUnXwy7Oy4ac/assets/events/tutorials/make-webhook-listening.png?fit=max&auto=format&n=ce71cUnXwy7Oy4ac&q=85&s=dc77f2146cd5ba3b08c4d8d1f2fcac9c" alt="Make is listening for webhook data" width="642" height="398" data-path="assets/events/tutorials/make-webhook-listening.png" />
    </Frame>

    Make will be listening for incoming webhook data.

    Now, back in Slack, register for your own Tightknit event. You can do this by clicking the `•••` menu next to your event and selecting the registration option.

    <Frame caption="Select the registration option">
      <img src="https://mintcdn.com/tightknit/ce71cUnXwy7Oy4ac/assets/events/tutorials/registration-menu-option.png?fit=max&auto=format&n=ce71cUnXwy7Oy4ac&q=85&s=f1aa2f3f12ce63e2eed5bff6f882d1a1" alt="Select the registration option" width="1760" height="524" data-path="assets/events/tutorials/registration-menu-option.png" />
    </Frame>

    <Info>
      The exact label of the registration option may differ depending on your
      community's configuration.
    </Info>
  </Step>

  <Step title="Verify Data Received by Make">
    In the scenario editor, you should see that the scenario run was completed. Click the `1` bubble above the webhook module. This will show you the data that the webhook received from Tightknit.

    <Frame caption="Webhook data received from Tightknit">
      <img src="https://mintcdn.com/tightknit/lTkHj4x4K-1VrzN5/assets/events/tutorials/make/make-zoom-example-data.png?fit=max&auto=format&n=lTkHj4x4K-1VrzN5&q=85&s=0f3fd4ee610bdf68b45348dc0de5e1af" alt="Webhook data received from Tightknit" width="739" height="654" data-path="assets/events/tutorials/make/make-zoom-example-data.png" />
    </Frame>

    This sample data will give us useful visual aids in Make when selecting fields from the webhook data.

    <Note>
      The shape of Tightknit's webhook data may change. Please check the [API
      docs](/events/event-registration#events-webhook) for the latest.
    </Note>
  </Step>

  <Step title="Add Zoom Module to Scenario">
    In the scenario editor, click the `+` action by hovering over the side of the webhook module. Search for "Zoom" and select the "Add a Meeting Registrant" or "Add a Webinar Registrant" action, depending on your event type.

    <Frame caption="Add the Zoom registrant action">
      <img src="https://mintcdn.com/tightknit/ce71cUnXwy7Oy4ac/assets/events/tutorials/make/make-zoom-module.png?fit=max&auto=format&n=ce71cUnXwy7Oy4ac&q=85&s=dfd7901dbca85b0faccbc36989e948ab" alt="Add the Zoom registrant action" width="1108" height="622" data-path="assets/events/tutorials/make/make-zoom-module.png" />
    </Frame>
  </Step>

  <Step title="Configure Zoom Module">
    Under **Connection**, log into your Zoom account to authenticate the Make connection.

    Configure the Zoom module as follows:

    * **User ID** - Select your user id from the list
    * **Meeting/Webinar ID** - this will be the ID of the Zoom meeting/webinar, which we've configured Tightknit to send in the *Custom Metadata* field of the webhook data. Select the `custom_metadata` option associated with the webhook trigger sample data.
    * **Email** - select `user: email`.
    * **First Name** - select `user: first_name`.

    <Frame caption="Zoom module configuration with webhook fields">
      <img src="https://mintcdn.com/tightknit/ce71cUnXwy7Oy4ac/assets/events/tutorials/make/make-zoom-config.png?fit=max&auto=format&n=ce71cUnXwy7Oy4ac&q=85&s=e96e74a7cc93b25d07780f51070f1fe0" alt="Zoom module configuration with webhook fields" width="486" height="532" data-path="assets/events/tutorials/make/make-zoom-config.png" />
    </Frame>

    <Warning>
      Do NOT hardcode the Zoom action input values. It's an easy mistake to set the
      **Meeting/Webinar ID** to a specific Zoom id. If you accidentally do this,
      users that registers for *any* event in Slack will always be forwarded to that
      one particular Zoom meeting, even if they were trying to register for a
      different event.
    </Warning>

    <Info>
      Keep in mind Tightknit will also send along any [custom profile
      fields](https://slack.com/help/articles/212281478-Customize-member-profiles)
      configured for Slack profiles in the workspace
      ([example](../event-registration#events-webhook)). Consider adding some
      profile fields if they would serve as helpful user registration info.
    </Info>
  </Step>

  <Step title="Save and Enable">
    Click the 💾 save button and switch on the toggle to enable your scenario.

    <Frame caption="Save the scenario">
      <img src="https://mintcdn.com/tightknit/ce71cUnXwy7Oy4ac/assets/events/tutorials/make-save.png?fit=max&auto=format&n=ce71cUnXwy7Oy4ac&q=85&s=be59326d5541b0005d1f10354223854a" alt="Save the scenario" width="553" height="184" data-path="assets/events/tutorials/make-save.png" />
    </Frame>

    Your Make scenario is now live and ready to forward your Tightknit event registrations to Zoom! 🎉
  </Step>

  <Step title="BONUS: Add Branching Logic for Register vs. Unregister">
    Right now, our scenario assumes that every time data is sent to the webhook it means a new user has registered for an event. Technically this is not true! Tightknit sends other kind of data too, such as a user *unregistering* for an event.

    Let's assume you want to take some sort of action, or simply ignore, an *unregister* event. We'll need to add branching logic in the scenario in order to differentiate based on the incoming data. In this case, we'll create a branch based on the `status` field of the [Tightknit webhook data](../event-registration#events-webhook).

    Click on the wrench icon in between the Webhook and the Zoom actions. Select the **Add a router** option. In order to add a new branch to the flow, click the Router module itself. On each of the branches, click on the wrench icon and select **Set up a filter**.

    * Name the first branch "Registered". Create a condition that will continue if `type` is equal to "calendar\_event.user\_registered".
    * Name the second branch "Unregistered". Create a condition that will continue if `type` is equal to "calendar\_event.user\_unregistered".

    When you're finished, the scenario should look something like this:

    <Frame caption="Scenario with router branching for register and unregister">
      <img src="https://mintcdn.com/tightknit/lTkHj4x4K-1VrzN5/assets/events/tutorials/make/make-zoom-branching.png?fit=max&auto=format&n=lTkHj4x4K-1VrzN5&q=85&s=cd4c275911c3f084914fc9afd4a78f64" alt="Scenario with router branching for register and unregister" width="1296" height="961" data-path="assets/events/tutorials/make/make-zoom-branching.png" />
    </Frame>

    If you'd rather just completely ignore *unregister* events, instead of using the Router you can simply add a filter on the path to the Zoom module with the condition the flow will continue if `status` is equal to "registered".

    <Info>Don't forget to save the scenario!</Info>
  </Step>
</Steps>

## Troubleshooting

### Meeting ID Error

If you encounter an error message like `[3001] Meeting does not exist: 875 6077 1520.` with spaces in the Meeting ID, this indicates that the Meeting ID was copied with spaces instead of as a continuous number.

**Solution:** Ensure you copy the Meeting ID without spaces. For example, `875 6077 1520` should be entered as `87560771520`.
