- Automation 1 — On event publish: Checks each connected Zoom account for scheduling conflicts, creates a meeting on the first free account, and stores the join URL.
- Automation 2 — On registration: Retrieves the stored join URL and calls the Tightknit API to set a
personal_join_linkon the attendee. Members then see a native “Join Event” button in their event reminders and events list.
Create two webhook endpoints in Tightknit
In the Tightknit webhooks admin portal, create two endpoints:
You’ll fill in the URLs from your automation tool in the next steps.
| Endpoint | Event types to subscribe |
|---|---|
| Endpoint 1 (Automation 1) | calendar_event.published |
| Endpoint 2 (Automation 2) | calendar_event.user_registered |
Enable webhooks on each event
When creating or editing a Tightknit event, open Registration Settings and check Enable Webhooks. No other configuration is needed — the automation detects the right Zoom account automatically.
Build Automation 1 — Auto-detect a free Zoom account and create the meeting
This automation fires when a Tightknit event is published. It checks each Zoom account for a scheduling conflict, creates a meeting on the first free account, and stores the join URL.
- Zapier
- Make
Create a new Zap with a Webhooks by Zapier > Catch Hook trigger. Copy the URL and paste it into Endpoint 1 in Tightknit.Click Test trigger, then publish a test event to capture sample data. Confirm you can see Add a Paths step to route based on the result:
event.id, event.start_date, and event.end_date.Add a Webhooks by Zapier > GET action to call https://api.zoom.us/v2/users/me/meetings?type=scheduled connected to Account A, then add a Code by Zapier step to check for conflicts:- Path A:
Has Conflictexactly matchesfalse→ create meeting on Account A - Path B:
Has Conflictexactly matchestrue→ create meeting on Account B
Event Title, Event Start Date, and duration from the trigger). Then add a Storage by Zapier > Set Value action:- Key:
zoom_meeting_{{event.id}} - Value:
Join URLfrom the Create Meeting step
To support three or more accounts, add a second conflict check inside Path B before creating the meeting, following the same pattern.
Build Automation 2 — Deliver the join link on registration
This automation fires when a member registers. It retrieves the stored join URL and sets it on the attendee record so they receive a native “Join Event” button.
- Zapier
- Make
Create a new Zap with a Webhooks by Zapier > Catch Hook trigger. Copy the URL and paste it into Endpoint 2 in Tightknit.Click Test trigger, then register for the test event in Slack. Confirm the payload includes
event.id and user.slack_user_id.Add a Storage by Zapier > Get Value action with Key: zoom_meeting_{{event.id}}.Add a Webhooks by Zapier > POST action:- URL:
https://api.tightknit.ai/admin/v0/calendar_events/{{event.id}}/attendees - Payload Type: JSON
- Data:
- Headers:
Authorization: Bearer YOUR_TIGHTKNIT_API_KEY
You can create a Tightknit API key in your API settings.
Test end to end
- Create a test event in Tightknit with Enable Webhooks checked.
- Publish the event. Confirm Automation 1 ran — check your storage for a join URL and verify the meeting was created on the expected Zoom account.
- Publish a second event at the same time. Confirm it was assigned to a different Zoom account.
- Register for one of the events in Slack as a test user.
- Confirm Automation 2 ran — the member should see a “Join Event” button in their Tightknit event reminder.

