Turn new Acuity bookings into HubSpot leads with Slack alerts

Every 15 minutes we sweep Acuity for freshly booked appointments and open a matching HubSpot contact and deal, then ping the sales channel in Slack.

Deterministic Code
Acuity SchedulingHubSpotSlackSalesLead EnrichmentData SyncNotifications & Alerts
PromptCreate

Every 15 minutes on a cron schedule, sweep Acuity Scheduling for newly booked appointments and push each one into HubSpot as a tracked lead, then notify sales in Slack. This is a deterministic pipeline: same steps for every appointment, no drafting or judgement.

Step 1. Use the Acuity Scheduling List Appointments action with minDate set to the current time and a lastModified (or created) filter covering the last 15 minutes so we only pick up appointments booked in this window. Cron is the trigger because Acuity is not a first-class poll provider on this platform and does not have a supported webhook surface here.

Step 2. For each new appointment, call the HubSpot Search Contacts action to look up the client by email. If a contact exists, reuse the returned contact id. If no contact is found, call HubSpot Create Contact with the client name, email, phone number, and lifecycleStage set to lead.

Step 3. Call HubSpot Create Deal in the intake pipeline. Use the appointment type as the deal name, the appointment price as the amount, and store the appointment datetime on a custom deal property (default name: acuity_appointment_at). Associate the deal with the HubSpot contact from Step 2.

Step 4. Post to the sales channel with the Slack Send a Message action. Include the client name, the appointment type, the appointment time formatted in the account timezone, and a direct link to the new HubSpot deal (built from the deal id returned by Create Deal).

Configuration inputs the workflow should expose: the HubSpot intake pipeline id and stage id, the custom deal property name for the appointment datetime, the Slack channel id or name, and the display timezone. Skip appointments that are missing an email address, and log any HubSpot or Slack error without failing the whole sweep so a single bad row does not block the rest.

Additional information

What does this prompt do?
  • Watches your Acuity calendar every 15 minutes for appointments booked since the last check
  • Finds each client in HubSpot by email, or creates a new contact if they are not there yet
  • Opens a new HubSpot deal in your intake pipeline tagged with the appointment type, price, and time
  • Posts a Slack message to your sales channel with the client, the appointment, and a link to the new deal
What do I need to use this?
  • An Acuity Scheduling account with the calendar you take bookings on
  • A HubSpot account with an intake or new-lead pipeline set up
  • A Slack workspace with a channel where your sales team wants to see new bookings
How can I customize it?
  • Change how often the sweep runs (default every 15 minutes) if you want faster or slower checks
  • Point deals at a different HubSpot pipeline, or map extra fields like appointment notes or the calendar name
  • Change the Slack channel, mention specific reps, or tweak the message copy

Frequently asked questions

Does this work with a free HubSpot account?
Yes. Deals and contacts are available on every HubSpot tier, so a free CRM account is enough to run this.
What happens if the client already exists in HubSpot?
We look them up by email first and reuse the existing contact, so you will not end up with duplicates. Only the new deal is added.
Will old appointments get re-posted every 15 minutes?
No. Each sweep only looks at appointments booked in the last 15 minutes, so anything already handled stays put.
Can I send the alert somewhere other than Slack?
The default is Slack. Ask the workflow author to swap in a different channel or messaging tool and it can post there instead.
What if a client reschedules or cancels their appointment?
This workflow reacts to brand new bookings. Reschedules and cancellations are not synced, so the deal will keep the original appointment time until you edit it.

Stop copy-pasting Acuity bookings into your CRM.

Route every fresh appointment straight into HubSpot and give your sales team a heads-up in Slack the moment it lands.