Pre-call AI intro videos for Calendly bookings, with HubSpot context

When a prospect books on Calendly, send them a 25 to 45 second AI intro video within 10 minutes that previews the agenda and logs the touch in HubSpot.

Agentic Task
CalendlyHeyGenHubSpotGmailSalesMarketingMeeting WorkflowsEmail AutomationLead Enrichment

Build me an agent workflow that sends every newly booked Calendly prospect a personalized AI intro video within 10 minutes of the booking, so the meeting starts warmer and my team has shared context going in.

Trigger: a Calendly webhook subscription on the invitee.created event. The workflow should run the moment a new booking lands. Use the Calendly Create Webhook Subscription operation during setup to register the webhook against my event types.

Step 1, fetch the booking. Call the Calendly Get Event Invitee operation to pull the invitee's first name, email, the event type name, the scheduled start time, the invitee's timezone, and the full questions_and_answers list from the booking form, including any answer to questions like 'what do you want to get out of this call'.

Step 2, optional HubSpot enrichment. Try the HubSpot Get Contact operation with idProperty=email to look the prospect up. If the contact exists, pull their company, job title, and lifecycle stage, and remember the associated deal id if there is one. If the contact does not exist, continue without enrichment, this is a cold inbound and the script should rely on the Calendly booking answers alone.

Step 3, write the script. Draft a 25 to 45 second spoken script that (1) greets the invitee by their first name, (2) references at least one thing they shared in the booking form (their goal, their use case, or the company they listed), (3) previews exactly what we will cover on the call (2 to 3 short bullets that match the event type, e.g. for a sales demo: a quick intro, a live walkthrough of the part of the product that maps to their goal, and time for their questions), and (4) tells them what to bring or think about before the call. Keep the tone warm, conversational, and brief. End with a sign-off using my name.

Step 4, pick an avatar. Call HeyGen's List Avatars operation and select the configured avatar_id (default to the first matching configured handle if it exists, otherwise the first available avatar). The avatar_id and voice_id should both be exposed as configuration.

Step 5, render the video. Call HeyGen's Generate Avatar Video operation with the script, the avatar_id, and the voice_id. Then poll HeyGen's Retrieve Video Status / Details operation every 8 to 10 seconds until status is 'completed' or 'failed'. Cap the wait at 5 minutes. Once completed, call HeyGen's Retrieve Shareable Video URL operation to get a public share link (https://app.heygen.com/share/...).

Step 6, send the email. Use Gmail's Send a Message operation to email the prospect. The body should be short: a one-line warm intro from me, a clickable thumbnail or button labeled 'Watch your 30-second pre-call intro' linking to the HeyGen share URL, a one-line written agenda mirroring the bullets in the video, and a sign-off. The subject should reference the upcoming meeting (e.g. 'A quick intro before our [event type name]'). When possible, search for the Calendly confirmation email already sent to this invitee and send as a reply on that thread using Gmail's Reply to a Message operation with the matching threadId so the conversation stays together. If the thread cannot be found, send a clean new email instead.

Step 7, log to HubSpot when applicable. If step 2 found a HubSpot contact and an associated deal id, call HubSpot's Create Note operation. Associate the note with both the contact and the deal. The note body should include the full script, the HeyGen share link, the time we sent it, and a one-line header like 'Pre-call intro video sent via Geni'. If there is a contact but no deal, associate the note with the contact only. Skip this step entirely when there is no HubSpot match.

Configuration the workflow should expose: the HeyGen avatar_id, the HeyGen voice_id, the script length target in seconds (default 35), the polling timeout in seconds (default 300), the agenda bullets template per event type, the Gmail sender name and signature, and a toggle for whether to write the HubSpot deal note.

Error handling: if the Calendly invitee lookup shows the event was canceled or rescheduled, skip silently. If the meeting is less than 10 minutes away by the time the video would finish rendering, skip the video step and send a plain text intro email with the written agenda instead, so the prospect still gets context. If HeyGen returns a 403 (plan limit) or a failed render, also fall back to the plain text email. If Gmail send fails, log the error with the invitee email and HeyGen share link so I can resend manually. Never block the workflow on HubSpot, treat enrichment and note-writing as best-effort.

Additional information

What does this prompt do?
  • The moment someone books on Calendly, the agent reads their name, scheduled time, and the answers they typed into your booking form, then writes a script tailored to them.
  • It checks HubSpot for their contact record and pulls their company and lifecycle stage when available, and falls back gracefully to just the booking answers for cold inbound prospects.
  • It generates a 25 to 45 second AI avatar video in HeyGen that greets the prospect by name, previews exactly what the call will cover, and tells them what to bring, then emails the share link as a reply on the Calendly confirmation thread when possible.
  • If the prospect already exists in HubSpot, it drops a note on their open deal with the script and the share link so the rest of the team walks into the meeting already aligned.
What do I need to use this?
  • A Calendly account with permission to create webhooks on your event types.
  • A HeyGen account on a paid plan with at least one avatar and voice you want to appear on camera.
  • A Gmail account to send the intro email from.
  • Optional: a HubSpot account if you want CRM enrichment and team-visible notes on the matched deal.
How can I customize it?
  • Tune the script length and tone, from a tight 25 second tease of the agenda to a 45 second walk-through, or change the closing call to action.
  • Pick which booking-form answers the script weaves in, like the goal they typed or the use case they selected.
  • Choose the avatar and voice that represent your team, swapping between stock HeyGen avatars or a custom avatar trained on your own footage.
  • Decide whether to also drop a note on the matched HubSpot deal so reps see the intro before the meeting, or keep the delivery just between you and the prospect.

Frequently asked questions

Will this still work for prospects who are not in our CRM?
Yes. If there is no HubSpot match the agent uses what Calendly captured, so cold inbound bookings still get a personalized intro video with the agenda for the call.
How fast does the video go out after someone books?
Most HeyGen renders finish in 30 to 180 seconds, so the agent typically sends the intro email within a few minutes of the booking, well under the 10 minute target.
Can my whole team see what was sent?
When the prospect already exists in HubSpot, the agent logs the script and the share link as a note on their open deal so any teammate walking into the meeting has the same context.
Do I need to record a custom avatar for this?
No. You can use any avatar already in your HeyGen library, including stock avatars. A custom avatar trained on your own footage feels more personal but is not required.
Does the email reply on the Calendly confirmation thread, or start a new one?
The agent tries to reply on the same thread as the Calendly confirmation so the conversation stays together in the prospect inbox. If it cannot find the thread, it sends a clean new email instead.

Turn every Calendly booking into a warm pre-call moment.

Connect Calendly, HeyGen, Gmail, and HubSpot once, and Geni sends a personalized agenda video within minutes while logging the touch on the deal.