Skip to content
Automation Squad
CaSFSMade to order

Sales & CRM hygiene

Calendly booking → Salesforce status update, logged task + Slack alert

Booked meetings land on the Salesforce record within a minute, with a task and an alert.

A booked call should change the CRM, not just the calendar. When someone books on the Calendly event types you choose, the workflow finds the matching Lead or Contact in Salesforce by email. The status moves to Meeting Booked, a Task records the time and the invitee's answers, and the record owner hears about it in Slack. Bookings with no CRM match go to Slack for a person to attach instead of creating duplicates.

How it works

  1. Ca

    Trigger

    New booking on a chosen event type (invitee.created webhook)

    Calendly

  2. if

    Step 1

    Keep bookings on the sales event types only

    The webhook carries the event type URI, and the first node keeps the ones you list at setup, such as Discovery call, and drops everything else.

  3. SF

    Step 2

    Find the Lead or Contact by the invitee's email

    A SOQL query checks Leads first, then Contacts, on the invitee's email; the match, or the absence of one, decides which branch runs next.

  4. if

    Step 3

    Branch on Lead, Contact or no match

    Leads go to the status update, Contacts go to their open Opportunity if one exists, and an unmatched booking skips to the Slack step with a no-record flag.

  5. SF

    Step 4

    Set the status or stage to Meeting Booked

    For a Lead the Status field is set to Meeting Booked; for a Contact the most recent open Opportunity has its StageName set to the stage you map, and nothing is written if neither exists.

  6. SF

    Step 5

    Log a Task on the record with the meeting details

    Its subject names the event type, its due date is the meeting date, and its description holds the meeting time, the Calendly link and the invitee's answers to your booking questions.

  7. S

    Step 6

    Alert the record owner in Slack

    The owner's email is matched to a Slack member through the mapping, and the message carries the invitee's name, the meeting time and a link to the record; an unmatched booking carries the invitee's details instead so someone can attach them.

What changes once it runs

  • The Salesforce record shows Meeting Booked within a minute of the booking, with no rep involved.
  • A Task on the record holds the meeting time and the invitee's answers, where the next person looks.
  • Owners are told in Slack, with a link straight to the record.
  • Unmatched bookings are surfaced for a human rather than turned into duplicate Leads.
  • Only the event types you name trigger it; internal and support bookings pass through untouched.

What you get

  • The n8n workflow export with the three-way branch already built
  • Make and Zapier versions of the same flow, with the branch as a Router and as Paths respectively
  • Setup guide covering the Calendly webhook, the Salesforce connected app and the status mapping
  • Field-mapping sheet: which Calendly answers land in which Task and Lead fields
  • Recorded walkthrough of a test booking moving a Lead to Meeting Booked

Before you start

  • Calendly Standard plan or above (webhooks are not on the free plan) and a personal access token for the n8n Calendly Trigger
  • Salesforce Enterprise, Unlimited or Developer edition; Professional edition needs the API access add-on
  • Connected App or integration user in Salesforce with rights to read and edit Leads, Opportunities and Tasks
  • Lead Status and Opportunity Stage values named Meeting Booked, or the names you want mapped instead
  • Slack with an app that can post to a channel or send direct messages
  • A short mapping of Salesforce owner emails to Slack member IDs, filled in once during setup

Built for

Questions before you buy

What happens when the invitee cancels?
A second, smaller workflow in the package listens for invitee.canceled. It marks the Task completed with a cancelled note and tells the owner in Slack. The status is left for the owner to decide, because a cancelled call is not always a lost lead.
Should it create a Lead when nobody matches?
It can, and the setup guide shows the one switch that turns that on. The shipped default posts unmatched bookings to Slack instead, because an unmatched booking is often an existing customer using a second email address, and a new Lead would be a duplicate.
Can it update a Contact without an Opportunity?
Yes. When a Contact matches but has no open Opportunity, the Task is still logged on the Contact and the owner is still alerted. Nothing is written to a stage field that does not exist.
Does it run on Make or Zapier?
Both versions ship in the package. Calendly, Salesforce and Slack have native modules on each platform, and the branch is a Router in Make and Paths in Zapier. Paths need a Zapier Professional plan or above.

Nearby on the shelf

Whole catalog