Back to Guides
Online appointments

Online appointments — connecting Zoom

OAuth-connect a Zoom account so every virtual booking spawns a real Zoom meeting with a waiting room and password.

Once your platform admin has the Zoom Marketplace app configured (set ZOOM_CLIENT_ID + ZOOM_CLIENT_SECRET in the environment), connecting is a one-click flow.

Connect

  1. Settings → Booking → Online Appointments.
  2. Pick Zoom — auto-create a Zoom meeting from the provider dropdown.
  3. Click Connect Zoom Account.
  4. Sign in to Zoom in the popup and approve:
    • View your meetings + Create and manage meetings — Trimsy uses this to create scheduled meetings under users/me. We never delete or modify meetings that aren't created by Trimsy.
    • View your user information — for displaying the connected account email.
  5. The popup closes. Settings shows "Connected — [email protected]".

Works with any Zoom plan including the free tier. The free tier limits group calls to 40 minutes; that's a Zoom plan limitation, not a Trimsy one.

What gets created per booking

Every virtual booking creates a scheduled Zoom meeting (type: 2) with:

  • Topic: "Online appointment with {your salon name}"
  • Duration matching the booking duration
  • Start time in your salon's timezone
  • Waiting room: ON — your customers join the lobby and you admit them.
  • Mute upon entry: ON — politeness default.
  • Auto-recording: OFF — explicitly opt-in if you want recordings.
  • Audio: VoIP + dial-in — customers without a working microphone can call in.

The unique join URL and Zoom-generated password go into the booking record and into every email / SMS / .ics for that customer.

Disconnecting

Click Disconnect. Existing meeting links stay valid — Zoom still hosts them. Trimsy just stops creating new ones until you reconnect or switch provider.

Troubleshooting

  • "Token exchange failed" on connect — almost always the redirect URL not matching what's in the Zoom Marketplace app. Has to match exactly, including http vs https and trailing slash. Ask your platform admin.
  • Meeting create returns 401 mid-flight — Zoom rotates the refresh token on every refresh. If a refresh failed and the token wasn't persisted, future calls fail. Reconnect from settings to recover.
  • Free tier 40-minute limit — that's Zoom's plan limit, not the API. Upgrade your Zoom plan if you need longer sessions.