Turn a chat conversation into a booked meeting, and keep the booking on the contact record where support can see it.
The useful thing to say first is what this integration is not. Bookafy does not have a Messenger app inside Intercom. There is no Bookafy card that renders inline in the chat window, and we are not going to pretend otherwise. What you can do is genuinely useful anyway, and it splits into two halves.
This is the part that makes money, and it needs no Zap at all.
Here you do need Zapier (or Make, or our webhooks). Bookafy publishes four triggers and two actions:
| Triggers | Actions |
|---|---|
| New Appointment New Customer New Appointment Type New User |
Create Appointment Create Customer |
The build:
| Step | What it does |
|---|---|
| Trigger: Bookafy New Appointment | Fires when someone books. |
| Intercom: Create or Update Contact (match on email) | Matching on email is what keeps you from ending up with two records for the same human. Never lead with a plain Create. |
| Intercom: Add Note to Contact or update a custom attribute | Write the appointment type and start time, plus a last_booking_at custom attribute. Now a support agent opening the conversation can see “demo booked, Thursday 3pm” without leaving Intercom. |
| Optional: Add Tag | Tag “booked-demo” and you can segment on it, hold back the nurture messages, or trigger a different bot for people who already have a call scheduled. |
Bookafy’s Zapier trigger fires only when an appointment is created. Nothing fires when it is cancelled or moved. So the last_booking_at attribute and the “booked-demo” tag will happily stay on a contact who cancelled ten minutes later — and if you are using that tag to suppress marketing messages, you have just gone quiet on someone who is no longer talking to you.
Fix it with a webhook: point Bookafy at Zapier’s “Catch Hook”, and on a cancellation, remove the tag and clear the attribute. If you are not going to build that, do not build the tag-based suppression either. A stale tag is worse than no tag.
Worth repeating, because it is the thing people expect. The visitor gets a link and books on your Bookafy page — a clean, mobile-friendly page you can brand — not a calendar embedded inside the chat bubble.
On Zapier’s free plan, triggers are checked every 15 minutes. The contact record can lag the booking by a quarter of an hour. Do not build a “notify the agent instantly” workflow on top of it — Bookafy’s own notification is immediate.
If you are a small team, be honest about the value. The saved reply with a booking link takes two minutes to set up and captures the revenue. The Zap that keeps Intercom tidy is a nice-to-have and only starts to matter when someone other than the person who took the chat needs to know a call is booked. Do the first one today. Do the second one when it hurts.
Stop trading “what time works?” messages. Send a link, get a booking.
Not inline. Bookafy has no Messenger app, so there is no booking calendar rendered inside the chat window. The standard approach is to send your Bookafy booking link as a saved reply or from a bot flow, and the visitor books on your Bookafy page.
With Zapier: trigger on Bookafy New Appointment, then use Intercom Create or Update Contact matched on the email address, followed by Add Note or a custom attribute such as last_booking_at.
Not through Zapier — Bookafy has no cancellation trigger. Use a Bookafy webhook into Zapier’s Catch Hook to remove the tag or clear the attribute when an appointment is cancelled.
Yes — tag the Intercom contact when the booking comes in and exclude that tag from your outbound messages. Just make sure you also clear the tag on cancellation, or you will go silent on people who cancelled.
Yes, in the practical sense: put your Bookafy booking link in the bot flow. Out-of-hours conversations can then end in a booked call instead of an unanswered ticket.
Bookafy also connects to 3,000+ apps through Zapier and Make, and offers an open API and webhooks for anything custom.
If you’re weighing up appointment scheduling software, these go deeper: