Hi, Skin July Sprint

GHL Missed Call Text-Back Setup

Build this as a demo workflow in GoHighLevel. The dashboard only needs the webhook event; GHL handles the SMS, tags, opportunity, and callback task.

No real secrets belong in the repo. Put the webhook secret in .env.local or Vercel environment variables.

Workflow

Workflow name: DEMO | Missed Call Text Back | GrowthDesk

Trigger

Inbound call missed / no answer / voicemail / busy / not answered.

Action 1

Create or update contact.

Action 2

Add tag: demo_missed_call.

Action 3

Send SMS: Hi {{contact.first_name}}, this is Hi, Skin {{custom_values.studio_name}}. Sorry we missed your call. You can book your visit here: {{custom_values.booking_link}} Reply CALL and we'll call you back. Reply STOP to opt out.

Action 4

Add tag: demo_text_sent.

Action 5

Create opportunity in pipeline: Pipeline: Missed Call Recovery. Stage: Text Sent.

Action 6

Create task: Title: Call back missed lead.

Action 7

Send internal notification.

Action 8

Send webhook to: {{custom_values.demo_webhook_url}}.

Webhook

Send the webhook after the contact, SMS, tag, opportunity, and callback task actions.

URL

{{custom_values.demo_webhook_url}}

Local path: /api/ghl/missed-call

Header

x-demo-secret: value from GHL_WEBHOOK_SECRET

Payload

Use this JSON body in the GHL webhook action.

{
  "event_type": "missed_call_text_back",
  "studio_name": "{{custom_values.studio_name}}",
  "contact_name": "{{contact.name}}",
  "contact_phone": "{{contact.phone}}",
  "booking_link": "{{custom_values.booking_link}}",
  "ghl_contact_id": "{{contact.id}}",
  "timestamp": "{{right_now}}",
  "sms_template": "Sorry we missed your call. You can book here."
}

Runbook

Use the simulator if GHL or the phone route is not ready during the live demo.

Before demo

  1. Confirm GHL demo phone number is active.
  2. Confirm the phone routes to a test user.
  3. Confirm missed-call workflow is published.
  4. Confirm booking link custom value is set.
  5. Confirm webhook URL is set.
  6. Confirm webhook secret matches .env.
  7. Confirm dashboard loads.
  8. Run simulator once.
  9. Clear or mark test data if needed.

Live demo steps

  1. Call the GHL demo number.
  2. Do not answer.
  3. Show the SMS arriving with booking link.
  4. Show the contact/opportunity/task in GHL.
  5. Refresh dashboard.
  6. Show the missed-call event logged.
  7. Explain: "The studio did not need new software. The workflow recovered demand automatically."

Fallback demo

  1. Click "Simulate Missed Call."
  2. Show dashboard update.
  3. Explain that the simulator mirrors the same payload GHL sends.