Personalized iMessage confirmations for Calendly bookings

When a prospect books on Calendly, send a warm, CRM-aware iMessage confirmation through Linq that references who they are and logs the touch in HubSpot.

Agentic Task
CalendlyLinqHubSpotSalesOperationsMeeting WorkflowsNotifications & AlertsLead Enrichment

Build me an agent workflow that sends a personalized iMessage confirmation to every prospect who books a meeting on my Calendly, using context from my HubSpot CRM. The goal is to replace Calendly's generic SMS reminder with a warm, on-brand iMessage that references something specific to the prospect, so they feel seen instead of templated.

Trigger: a Calendly webhook on the invitee.created event. On first run, set up the webhook subscription on Calendly so this fires whenever someone books.

When a booking comes in, the agent should:

1. Pull the booking details. Call Get Scheduled Event and Get Event Invitee on Calendly to get the meeting start time, location, event type name, the invitee's name, email, phone number, timezone, and any answers they gave on the booking form.

2. Look up the invitee in HubSpot. Use Search Contacts on HubSpot, filtered by the invitee's email. If a contact is found, also pull useful context fields like company, lifecycle stage, the most recent deal and its stage, and the most recent note on the contact, so the message can reference real history.

3. Draft the confirmation. Write a 2 to 3 sentence iMessage that confirms the meeting time in the invitee's timezone, calls out one specific thing relevant to them (the referenced deal, a prior touchpoint, or a topic they wrote in their Calendly booking form), and ends with "reply here if anything changes." Keep the whole message under 300 characters so iMessage does not split it into multiple bubbles. Tone is warm and human, not corporate. No emojis unless the form answers were playful.

4. Send the message via Linq. Use Create Chat on Linq, with the from field set to my Linq number and the to field set to the invitee's phone number from Calendly. Send the drafted text as the first message in the chat.

5. Log it in HubSpot. Use Create Note on HubSpot to log a note on the matched contact recording that the confirmation iMessage went out, including the meeting time, the event type, and the message that was sent. Associate the note with the contact (and the related deal if there is one).

If no HubSpot contact exists for the invitee's email, skip steps 2's personalization and step 5 entirely. Instead, send a generic but friendly confirmation that still includes their first name, the meeting time in their timezone, the event type, and the same "reply here if anything changes" closing. Do not invent context that is not in HubSpot.

If the invitee did not provide a phone number on the Calendly booking form, do not send anything and just log a note in HubSpot (when the contact exists) saying confirmation was skipped because no phone number was on file.

Additional information

What does this prompt do?
  • Watches Calendly for new bookings and reacts the moment a meeting is confirmed.
  • Looks the invitee up in HubSpot and pulls company, deal stage, lifecycle stage, and the most recent note for context.
  • Sends a 2 to 3 sentence iMessage from your business number through Linq that references something specific to the prospect, not a templated reminder.
  • Logs the confirmation as a note on the HubSpot contact so the rep sees the touch in the timeline.
  • Falls back to a friendly generic confirmation if the invitee is not yet in HubSpot.
What do I need to use this?
  • A Calendly account on a paid plan with at least one active event type.
  • A Linq account with at least one phone number provisioned for sending iMessage.
  • A HubSpot login with access to contacts and notes.
  • The invitee phone number question turned on in your Calendly booking form so Linq has a destination.
How can I customize it?
  • Choose which Calendly event types this runs for, so it only fires for sales calls, not internal meetings.
  • Edit the tone and length of the message, for example more formal for enterprise event types and casual for discovery calls.
  • Change what counts as personalization context, like swapping last note for last deal stage change or last email subject.
  • Pick a different Linq number per event type if you want demo bookings to come from a different line than support calls.

Frequently asked questions

Will the message actually be a blue iMessage and not a green SMS?
Linq routes automatically. If the invitee's number supports iMessage, it goes through as iMessage (blue bubble). If it falls back, Linq sends RCS or SMS so the message still gets there.
What happens if the prospect is not in HubSpot yet?
The workflow sends a friendly generic confirmation that still includes the meeting time and event name, and it skips writing a HubSpot note because there is no contact to attach it to.
Will this work on HubSpot Free?
Yes. Searching contacts and creating notes are available on every HubSpot tier, including Free.
How does the prospect's phone number get into the message?
It comes from the Calendly booking form. Make sure the phone number question is enabled on your event type so every invitee provides one at booking time.
Can I keep the message under iMessage's character limit so it does not split?
Yes, the prompt tells the agent to keep the confirmation under 300 characters so iMessage delivers it as one bubble, not a fragmented thread.

Replace Calendly's stock SMS with a real, personal text.

Connect Calendly, HubSpot, and Linq once, and Geni sends a context-aware iMessage every time a prospect books.