Your sub-account is connected. The next step is connecting a Zoom account, which is step 2 below.
The app is installed and the rest of your sub-accounts are ready to use. The ones that did not connect will be retried the first time a workflow runs in them, so this often resolves itself. If it does not, reinstall from the marketplace listing.
Nothing was connected, so there is nothing to undo. Start the install again from the marketplace listing — if it fails a second time, the app's install link may have expired.
Getting started
Install, connect Zoom, and build the workflow that creates a call when someone books. About ten minutes.
Before you begin
You need two things:
- A sub-account you can install marketplace apps into.
- A Zoom account. A free one is enough to start. Two features need more, and both are noted where they appear.
You do not need a Zoom developer account, an API key, or anything pasted between systems. The connection is made by signing in to Zoom once.
1. Install the app
Open the app’s marketplace listing and choose the sub-account to install it into. The app asks for permission to read your workflows and calendars, and to write calendar events and contacts.
That last one is the important permission and the one worth understanding: writing attendance back onto a booking requires write access to the calendar. An integration limited to reading can create Zoom calls but can never tell you whether anyone turned up.
Installing affects one sub-account. Installing into a second one is a separate install with its own Zoom connection.
2. Connect a Zoom account
After installing you land on the app’s settings page. Choose Connect Zoom and sign in.
Zoom will ask you to authorise the app. The scopes cover meetings, webinars, registrants and recordings on the account you sign in with.
A few things to know about this step:
- One Zoom account per sub-account. Whoever you sign in as becomes the host of every meeting the app creates for that sub-account. If your team round-robins calls between reps, see How it fits together.
- Sign in as the account you want meetings created on, not as an admin who happens to have access. The meetings land wherever you authenticate.
- You can disconnect at any time from the same settings page. Disconnecting stops new calls being created; it does not delete calls that already exist.
Once connected, the settings page shows the Zoom account’s email and the day’s remaining create allowance.
3. Your first workflow
The one almost everyone builds first: a call is created when an appointment is booked, and the contact gets the link.
Trigger. Use your platform’s own appointment trigger — Customer Booked Appointment or equivalent. This one is not ours; the booking happens in your calendar, and we react to it.
Step 1 — Create Meeting. Fill in:
| Field | Value |
|---|---|
topic | Something like Discovery call with {{contact.first_name}} |
startTime | {{appointment.start_time}} |
duration | The length in minutes, e.g. 30 |
appointmentId | {{appointment.id}} |
appointmentId is the field people skip, and it is the one that makes attendance reliable later. Supply it and the booking is resolved by its id. Leave it out and the app has to find the booking by searching the contact’s appointments and matching on start time — which works, but guesses.
Step 2 — Send the link. Add an email or SMS step and insert {{zwa_create_meeting.joinUrl}}.
Do not send
startUrl. It sits next tojoinUrlin the variable picker and the names look interchangeable in a dropdown, butstartUrlis a credential: whoever opens it starts the meeting as host, with the power to mute, remove, record and admit people.joinUrlis what a contact should receive.
Publish the workflow and book a test appointment. A meeting should appear in Zoom within a couple of seconds.
4. Close the loop
The first workflow creates calls. The second one tells you whether they happened.
Trigger. Meeting Ended, ours.
Step 1 — Update Attendance. Map meetingId to {{zwa_meeting_ended.meetingId}}. Leave everything else alone; the defaults are the sensible ones and every other fact is already ours.
That is the whole configuration. When a call ends, the booking is marked showed or noshow from who actually joined.
Step 2 — Branch on it. Add a condition on {{zwa_meeting_ended.attended}} and hang your no-show sequence off the false branch.
Attendance writeback covers the details: what counts as attendance, how to require a minimum duration, and what happens when the booking cannot be found.
What to read next
- How it fits together — what is tied to what, and why a call knows which booking it belongs to.
- Registration and join links — giving each attendee their own link, which is what makes attendance attributable to a person.
- Daily limits — Zoom’s cap, and the workflow pattern that quietly exhausts it.