Technical handover / 03 of 06 · Sales & Booking System

Sales Calls (Calendly) make · scn 4754545

The automation that turns every Calendly consult event — booked, rescheduled, or cancelled — into a logged call, an updated lead, and a Slack ping.

Watch Full walkthrough (9 min) Map Full system breakdown For AI Point Claude here
System
Sales & Booking
Unit
3 of 6
Platform
Make.com
Built by
Icarus Growth

▸ The full walkthrough — every branch shown live against Airtable

What this does

Every time someone books, moves, or cancels a "Consultation and Package Customization Virtual Meeting" on Calendly, this scenario catches it. It finds the lead by email, gets the record current, logs the call in your Sales Calls table, works out which team member owns it, and drops a note in Slack. Nobody re-types a booking by hand.

The one thing to remember: who gets assigned is decided by whose email is on the Calendly event — not a name typed anywhere. Change the team's Calendly emails and this step stops finding anyone.

Where it sits

This is the middle of the funnel: a lead comes in warm from First Message, gets a call logged here, and once they're ready, moves on to Sip & See Tours.

How it works

Calendly sends a "watch invitees" event, and the scenario reads the event's status to decide which of three paths to run.

  1. Calendly fires and a filter checks the event name is "Consultation and Package Customization Virtual Meeting." Anything else is ignored — a router then splits on whether the event is a new booking, a reschedule, or a cancellation.
  2. New booking:
    1. Search the Leads table by the invitee's email, lowercased first — so Tim.Kerry@gmail.com matches a lead stored as tim.kerry@gmail.com regardless of capitalization.
    2. Lead found → update it with the cleaned first and last name from the booking. Lead not found → create a new one.
    3. Look up the Team Members table by the email on the Calendly event's "Scheduled Event" membership — that's who booked the call on the calendar side, not a name typed anywhere.
    4. Whether or not a team member was found, pull every question-and-answer pair the invitee filled in on the Calendly form and aggregate them into one block of text.
    5. Create the record in Sales Calls: invitee name, email, call date, status set to Scheduled, the Calendly event name, the assigned team member (if one was found), time zone, and the Q&A block.
    6. Notify your team's Slack channel: a new consult has been booked, with name, email, date, and a link to the record.
  3. Rescheduled or cancelled: Calendly's "watch invitees" trigger actually sends two event types — invitee created and invitee canceled. A reschedule fires both (cancel the old time, create the new one); a straight cancellation fires only the cancel, with no follow-up booking.
    1. Search Leads by email again, and upsert — update if found, create if not.
    2. Search the Sales Calls table for the existing call tied to this event.
    3. Call found → update its status to Rescheduled or Cancelled, matching the branch.
    4. Notify your team's Slack channel that the client rescheduled or cancelled.
  4. End state: the Lead is current, the Sales Calls record reflects reality, and the team already knows — before anyone opens Airtable.

The moving parts

What this automation touches, at a glance. 46 modules across the three branches.

Starts from
Calendly "watch invitees" trigger, filtered to the consult event type
Creates / updates in
Sales Calls, Leads
Reads from
Team Members — matched by the Calendly scheduler's email
Posts updates to
Your team's Slack channel
Q&A handling
Every question the invitee answered on the Calendly booking form is iterated and aggregated into one text block before it's written to the call record.
Good to know
• Email matching is lowercased on both sides, so capitalization in a lead's name or email never causes a missed match.
• Team-member assignment depends entirely on the email attached to the Calendly event membership. Today that means emails like services.jd@virtualsolutions... map to specific people. Move everyone to a shared inbox like info@themakenziehouse.com and this step can't tell people apart — the call still logs, just with no assignee.
• If the team-member lookup comes up empty, the call is still created — it just has no one assigned. Nothing is dropped.

What you can safely change

Green = go ahead. Amber = fine, but test a dummy booking after. Red = leave it, call us.

GreenSlack notification wording — reword any of the three messages (booked / rescheduled / cancelled) freely.
GreenWhich Slack channel the notifications post to.
AmberTeam member emails in the Team Members table — keep these matched exactly to each person's Calendly login email, or assignment silently stops working for that person.
AmberWhich Sales Calls fields get filled from the Calendly payload — editable, but check a real booking flows through cleanly after.
RedThe event-name filter ("Consultation and Package Customization Virtual Meeting") — rename the Calendly event type without updating this, and bookings stop triggering the scenario entirely.
RedThe Calendly trigger connection — reconnect or delete it and every booking, reschedule, and cancellation goes unrecorded until it's fixed.
RedThe lowercase email search logic — this is what makes matching case-insensitive. Touch it and duplicate leads start piling up.

What connects to this

Each breakdown is one piece of a chain. Here's what feeds this one and what it feeds.

◀ Comes in from

  • First Message
    Not a direct handoff — a lead texted there is who ends up booking the Calendly event this scenario watches.

Goes out to ▶

  • Sip & See Tours — not a direct handoff either; a client who's had their consult is who then books a tour.

Not covered in this breakdown: how Calendly gets configured with new event types, and the Sip & See tour matching logic — that lives in the Sip & See Tours breakdown.

If something looks wrong

Someone booked a consult, but no Sales Calls record appeared.
Check the event name matches "Consultation and Package Customization Virtual Meeting" exactly, and that the Calendly connection is still live.
Call logged, but no one's assigned.
Check the email on the Calendly event membership against the Team Members table — they need to match exactly.
A reschedule or cancellation didn't update the existing call.
Check the original call record still exists in Sales Calls — the update only fires if it can find one to update.
Duplicate leads showing up for the same person.
Check for an email typo or extra whitespace — the lowercase match handles case, not spelling.
You can't permanently break this. A full restore copy of the automation is saved alongside this page. If anything gets misconfigured, we rebuild it exactly as it is today from that file.

Call us if: the Calendly trigger stops firing, team-member assignment stays broken after checking emails, or reschedules/cancellations stop finding their original call. Those are past the safe-to-touch line.
Jargon buster
Watch invitees
Calendly's way of telling this automation "something happened to a booking" — a new one, a reschedule, or a cancellation.
Router
A fork in the road — it decides which path an event takes based on what happened.
Upsert
Update the record if it exists, create it if it doesn't. One step, either outcome.
Aggregate
Combine several pieces of text (here, each Q&A pair) into one block.
Event membership
Calendly's record of who on the team owns a given scheduled event.