Skip to main content
Connect GoHighLevel (GHL) with CallDesk to trigger instant AI phone calls when leads submit forms. A GHL form submission fires a workflow webhook, and CallDesk calls the lead within seconds — perfect for speed-to-lead from paid ads.

What it does

  • Instant AI callbacks — GHL form fill triggers an AI call to the lead within seconds
  • Dynamic personalization — Contact name, email, and custom fields are passed to the AI agent for natural conversations
  • Booking integration — AI can book meetings directly on the call
  • Voicemail handling — Leave a personalized voicemail if the lead doesn’t pick up
  • Full call logging — Every call is logged with transcript, recording, duration, and outcome

Requirements

  • CallDesk Pro plan or higher
  • GoHighLevel account with workflow access
  • An outbound phone number configured in CallDesk
  • An AI agent configured in CallDesk

Setup

1

Create a Form-to-Call workflow in CallDesk

Go to Workflows → Create New → Form to Call and select GoHighLevel Workflow as the trigger source.
2

Configure your AI agent

Set up the AI agent that will handle the calls:
  • Greeting — The first thing the AI says (use {{customer_name}} for personalization)
  • Role & goals — What the AI should accomplish on the call
  • Booking — Optionally enable booking to let the AI schedule meetings
  • Voicemail — Set a fallback message if the lead doesn’t answer
3

Copy webhook credentials

After saving the workflow, copy the webhook URL and Bearer token from the workflow settings. You’ll need these for the GHL webhook action.
4

Create a GHL workflow

In GoHighLevel, go to Automations → Create Workflow. Set the trigger to Form Submitted and select your ad landing page form.
5

Add a Custom Webhook action

Add a Custom Webhook action to the workflow with the following configuration:
  • Method: POST
  • URL: Paste the CallDesk webhook URL
  • Authentication: Bearer Token → paste your CallDesk token
  • Headers: Content-Type: application/json
  • Body:
{
  "phone": "{{contact.phone}}",
  "name": "{{contact.first_name}}",
  "email": "{{contact.email}}"
}
6

Test the integration

Before going live, submit a test form with your own phone number. You should receive an AI call within seconds. Check the CallDesk workflow logs to confirm the call was triggered.
Add "_test": true to the webhook body during testing. This flags the call as a test in CallDesk logs without affecting your analytics.
7

Activate

Once testing is successful, publish the GHL workflow and activate your CallDesk workflow. New form submissions will trigger AI calls automatically.

GHL payload format

The webhook body should include these fields:
FieldGHL VariableRequiredDescription
phone{{contact.phone}}YesLead’s phone number (E.164 format preferred)
name{{contact.first_name}}NoLead’s name — used for {{customer_name}} in the AI greeting
email{{contact.email}}NoLead’s email — logged with the call

Full payload example

{
  "phone": "{{contact.phone}}",
  "name": "{{contact.first_name}}",
  "email": "{{contact.email}}"
}

Custom fields

Pass additional GHL contact fields or custom values to the AI agent using the customData object:
{
  "phone": "{{contact.phone}}",
  "name": "{{contact.first_name}}",
  "email": "{{contact.email}}",
  "customData": {
    "company": "{{contact.company_name}}",
    "ad_source": "google_ads",
    "campaign": "{{contact.tags}}"
  }
}
Custom data values are available as template variables in your AI agent’s prompt. For example, {{company}} would be replaced with the contact’s company name.

Use cases

  • Speed-to-lead from ads — Facebook/Google ad → GHL form → AI calls lead in under 30 seconds
  • Demo-in-action — The AI call itself demonstrates your product (great for selling AI phone solutions)
  • Lead qualification — AI qualifies the lead on the call before routing to a sales rep
  • Appointment booking — AI books a meeting directly on the call, synced to your calendar
  • After-hours follow-up — GHL captures the lead, CallDesk calls back during business hours

Troubleshooting

  • Verify the webhook URL is correct in your GHL workflow action
  • Check that the CallDesk workflow is active (not paused or draft)
  • Ensure the phone field is present in the webhook body — calls cannot be placed without a phone number
  • Check the GHL workflow execution log for HTTP errors
  • Verify the Bearer token matches exactly — copy it again from CallDesk
  • Make sure you’re using “Bearer Token” authentication, not Basic or API Key
  • Check that the token hasn’t been regenerated since you copied it
  • Ensure the name field is included in your webhook payload
  • Check that you’re using the correct GHL variable syntax: {{contact.first_name}}
  • If using custom fields, make sure they’re inside the customData object
  • The lead’s phone may have sent the call to voicemail — this is normal behavior
  • If voicemail is enabled in your workflow, the AI will leave a message
  • Try calling during business hours when leads are more likely to answer
  • Use E.164 format when possible (e.g., +14155551234)
  • GHL’s {{contact.phone}} usually includes the country code
  • If calls fail with “invalid number”, check the format in your GHL contact record

Set up GoHighLevel integration

Create your Form-to-Call workflow now

Form-to-Call overview

Learn more about form-triggered AI calls