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.

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

FAQs

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.

Related templates

Auto-fix your calendar when a flight slips, and flag what's at risk

When your flight moves, your calendar times get corrected automatically and you get a Slack note naming the meetings you're about to miss.

Google Calendar
AviationStack
Slack
Agentic Task
Trace phishing emails to the sending IP and report abuse

Every 15 minutes, forwarded phishing reports get traced back to the server that really sent them, with a verdict in Slack and the worst senders reported.

AbuseIPDB
Gmail
Slack
Agentic Task
Log Agorapulse social conversations to HubSpot contacts

Twice every weekday, the conversations from your social inbox land on the right HubSpot contact timelines, with a Slack recap for sales.

Agorapulse
HubSpot
Slack Bot
Agentic Task
Turn procurement portal tenders into CRM deals each morning

Every weekday at 7am, sign in to the tender portals you track, filter new notices against your bid criteria, and open a deal for the ones worth chasing.

Anchor Browser
Google Sheets
HubSpot
+1
Agentic Task
Clean up HubSpot contacts from your Amazon SES suppression list

Every morning, find the addresses that hard bounced or filed a spam complaint, update the matching HubSpot contacts, and post a short Slack recap.

Amazon SES
HubSpot
Slack Bot
Agentic Task
Provision customer entitlements in DynamoDB when a deal is won

When a HubSpot deal hits Closed Won, the customer's plan, seats and renewal dates land in your DynamoDB accounts table, with a Slack note showing what changed.

HubSpot
Amazon DynamoDB
Slack Bot
Agentic Task

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.