Key takeaways
- The trigger is Customer Booked Appointment on the calendar linked to your booking form; the form’s Website field feeds the video’s background personalization.
- Use a Custom Webhook action (not the standard one) pointing at Sendspark’s Add Single Prospect endpoint, with
accept,key, andsecretheaders taken from Menu → API Credentials in Sendspark. - The payload maps
firstName,email, and the booking form’s website URL. Required fields must be present or the webhook fails — leave unused fields like job title or company empty, and remove a background URL field entirely rather than leaving it blank. - Use
#{{contact.website}}for the background, not#{{contact.website_Url}}. Test in Incognito mode and check the webhook execution log if no video appears.
🔄 Automatically Generate Videos in Sendspark When Someone Books a Meeting in GoHighLevel
Hi there! Dan from Tech Support here 👋 This guide will walk you through how to automatically generate a personalized Sendspark video whenever someone books a meeting in GoHighLevel. We’ll cover every step in detail, from workflow setup to webhook integration and dynamic video creation.🔧 Step-by-Step: Setting Up the Trigger
1. Create a New Workflow in GoHighLevel
- Go to Automations → click on Workflows → then Start from Scratch.
- Name your workflow (e.g.,
May 22nd). - Save it.
2. Create a Calendar and a Form
To capture all necessary data:Create a Form:
- Go to Sites → Forms → Builder.
- Click Create New.
- Add fields: First Name (mandatory), Email, and optionally others.
- Drag in the Website field (used for video background personalization).
- Save the form.
Create a Calendar:
- Go to Calendars under Settings.
- Click Create New.
- Select Personal Booking.
- Link your previously created form under Forms and Payments.
- Save and publish.
🔗 Step 3: Create the Trigger in Workflow
- Add a trigger: Customer Booked Appointment.
- Select your calendar (e.g.,
Sunspark 2). - Click Save Trigger.
🌐 Step 4: Configure the Webhook to Sendspark
- Add a new action → choose Custom Webhook (not standard one).
- In the URL field, use the Sendspark API endpoint (found in your Help Center).
- Go to Help Center → search for “API” → use the Add Single Prospect endpoint.
- This works for bulk requests too.
Use Headers:
acceptkeysecret
- Menu → API Credentials in Sendspark.
🧠 Step 5: Set Up Dynamic Video in Sendspark
- Go to Dynamic Videos in Sendspark.
- Click Create New.
- Choose GoHighLevel – Meetings as the use case.
- Select a sample video.
- Choose a template.
- Continue to setup.
Find and Use:
- Campaign ID → located via the 3-dot menu in the campaign list.
- Paste into your webhook payload.
- Remove any curly braces
{}or unnecessary default data.
🔄 Step 6: Map Correct Variables
Make sure to:- Use
firstNameandemailin payload. - Include the right website URL from the booking form for personalization.
- Leave fields like job title or company empty if not in use — required fields must be present to avoid webhook failure.
✅ Final Checks & Testing
- Save all settings.
- Click Save Action in GoHighLevel.
- Publish the workflow.
- Test in Incognito Mode:
- Make a booking.
- Check Sendspark for video generation status.
- If needed, refresh enrollment or logs to verify workflow execution.
🎁 Bonus
If you are coming from the video (above), here’s the information I promised: URL:🎉 That’s It!
Once everything is set up and tested:- Your personalized video will generate automatically.
- You’ll see the video linked to the booking.
💬 Need Help?
If anything’s unclear or doesn’t work as expected, reach out — we’re happy to assist.Thanks for following along!
Frequently asked questions
Which trigger and action do I use in GoHighLevel?
Which trigger and action do I use in GoHighLevel?
Use the Customer Booked Appointment trigger on your booking calendar, then add a Custom Webhook action (not the standard webhook). The custom webhook is what calls Sendspark to generate the video.
What URL and headers does the webhook need?
What URL and headers does the webhook need?
Point the webhook at Sendspark’s Add Single Prospect endpoint (found in the Help Center). Add the
accept, key, and secret headers, which you get from Menu → API Credentials in Sendspark. This also works for bulk requests.Why is my video not generating?
Why is my video not generating?
Required fields must be present or the webhook fails. Confirm
firstName and email are mapped, that the website URL comes from the booking form, and that unused fields (like a background URL you’re not using) are removed rather than left empty. Then check the webhook execution log in GoHighLevel to confirm the payload was accepted.Which website merge field should I use for the background?
Which website merge field should I use for the background?
Use
#{{contact.website}} only. Do not select #{{contact.website_Url}} — it won’t personalize the background correctly.How do I test the setup?
How do I test the setup?
Save all settings, save the action in GoHighLevel, and publish the workflow. Then test in Incognito mode: make a booking and check Sendspark for the video generation status, refreshing enrollment or logs if needed.
Related articles
- GHL - Create video on meeting booking
- HighLevel (GHL) - Generate a video with any trigger
- Go High Level - Send dynamic videos
- Webhook payload for GHL