> For the complete documentation index, see [llms.txt](https://themochi-app.gitbook.io/documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://themochi-app.gitbook.io/documentation/module-6-integrations-and-tracking/connecting-iclosed.md).

# Connecting iClosed

## Connect iClosed

**What it is** — iClosed is a scheduling tool built for sales teams. Connect it so a Setter or Closer can book a call for a lead directly from inside Mochi, with cancellations and reschedules syncing back automatically — no raw-link matching step to get wrong.

**Who can use it** — Creator and Manager roles only can connect, disconnect, or refresh setter bindings. Web-only — iClosed has no iOS support at all, not for connecting the integration and not for booking a call. Once connected, any org member can book a call for a lead from the Inbox, regardless of role.

**Before you start** — An iClosed account with an admin-level API key. A setter-only key can't book on behalf of other setters, so use an admin key when you connect.

### How to connect (web)

1. Go to Settings > Integrations. An iClosed card is shown to every organization — it isn't limited to an allowlist — and is labeled Pilot.
2. Click **Connect iClosed**.
3. Paste an admin-level API key generated in iClosed's developer settings, in the format `iclosed_...`.
4. Mochi validates the key, lists your iClosed users, and automatically matches Mochi team members to iClosed users by email. This creates your "setter bindings" — re-run the match later with **Refresh setter bindings** whenever you add someone new.
5. Mochi shows you a webhook URL unique to your connection. Copy it.
6. In iClosed's own webhook settings, add that URL, subscribed to `newCallScheduled`, `callCancelled`, and `callRescheduled`.
7. Check the confirmation box that you've added the webhook. Mochi can't verify this step itself, so it relies on you to confirm it.

### Booking a call from Mochi

Once connected, open a lead's conversation and use the in-app booking wizard: pick an iClosed event and a time slot, and Mochi calls iClosed's API to create the booking with the lead's identity already attached. The lead needs an email on file — the form pre-fills from the lead's saved email or phone, or you can type one in, since iClosed requires an email to create the invitee.

### How the webhooks behave

* `newCallScheduled` is a safety check that confirms the meeting Mochi already created really exists on iClosed's side. It doesn't perform any lead lookup of its own.
* `callCancelled` and `callRescheduled` update the existing meeting. For a cancellation, Mochi tries to determine whether the host or the invitee cancelled, and moves the lead to Qualified or No Show accordingly. If it can't tell which side cancelled, the lead's stage is left alone.

### The honor-system caveat

Mochi cannot verify that you actually added the webhook inside iClosed — the checkbox in step 7 is on the honor system. Skip that step and bookings made from Mochi will still go through, but cancellations and reschedules made from iClosed's side will silently stop reflecting back in Mochi. If cancellations ever stop showing up, this is the first thing to check.

### Disconnecting

Open the iClosed card in Settings > Integrations and choose **Disconnect**. This deletes the connection, its setter bindings, and rotates the webhook token — setters immediately lose the ability to book through iClosed from Mochi. It does not delete meetings already tracked.

### Tips

* Use an admin-level API key, not a setter-only one, or bookings on behalf of other setters will fail.
* Re-run **Refresh setter bindings** any time you add a new team member so they're matched correctly.
* Make sure a lead has an email saved before trying to book them through iClosed — the wizard needs one.

### Common mistakes & fixes

| Mistake                              | Fix                                                                                                                          |
| ------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------- |
| Forgot to add the webhook in iClosed | Bookings from Mochi still work, but cancellations/reschedules stop syncing — add the webhook subscribed to all three events. |
| Used a setter-only API key           | Reconnect with an admin-level key so bookings can be made on behalf of any setter.                                           |
| Tried to book a lead with no email   | Add an email to the lead's profile first — iClosed requires one.                                                             |
| Looking for iClosed on iOS           | It isn't there. Use the web app for anything iClosed-related.                                                                |

### Limits & good to know

* Web-only — there is no iOS support for connecting or booking.
* One connection per organization — there's no per-member iClosed connection the way Calendly supports.
* Pilot-labeled, and currently shown to every organization rather than gated to a waitlist.
* Disconnecting doesn't erase meetings already tracked in Mochi.

**Related:** Connect Calendly, Tracking Links & Attribution, The Inbox, Invite your team & roles
