1

Set Up Twilio

Create Twilio Account + Buy a Number

1. Create a Twilio account at twilio.com

Free trial works. Upgrade to a paid account when you're ready to send real SMS.

2. Buy a phone number

In Twilio Console → Buy a Number. Choose any US/CA number with SMS capability. This becomes your business number.

3. Configure webhook for incoming calls

In Twilio Console → Your Number → Voice Configuration → "A call comes in" → Webhook:

https://leadpulse-ai-19.polsia.app/webhooks/call
Set the HTTP method to POST. This fires when ANY call ends on this number.

4. Configure webhook for incoming SMS

In Twilio Console → Your Number → Messaging Configuration → "A message comes in" → Webhook:

https://leadpulse-ai-19.polsia.app/webhooks/sms
Set HTTP method to POST. This handles inbound replies from leads.

5. Get your API credentials

From Twilio Console → Account Info. You'll need these three values:

  • TWILIO_ACCOUNT_SIDACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  • TWILIO_AUTH_TOKENxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  • TWILIO_PHONE_NUMBER+1XXXXXXXXXX (your purchased number)

2

Set Up GoHighLevel

Create Sub-Account + Configure Missed Call Workflow

1. Create a GoHighLevel trial account

Visit app.gohighlevel.com and sign up for a free trial. GHL's "Sub-Accounts" feature lets you create isolated workspaces per client — perfect for a demo.

2. Create a Sub-Account

Settings → Sub-Accounts → Create New. Name it something like "Missed Call Recovery Demo". This keeps demo data separate from production accounts.

Call missed GHL Trigger SMS sent in <60s Lead replies AI qualifies Booking link

3. Connect your Twilio number to GHL

In GHL → Locations → Add Phone Number → Select Twilio → Authorize with your Twilio credentials. Your purchased Twilio number will appear — assign it to your location.

4. Build the Missed Call → SMS workflow

In GHL → Automations → Workflows → Create New → Trigger: "Incoming Call Not Answered"

Important: GHL can fire an outbound SMS automatically when a call is missed. However, the AI conversation (qualifying the lead, handling back-and-forth) happens on OUR server via Twilio webhooks. Here's how they work together:

GHL's role: Call handling, basic SMS trigger, workflow management
Our server's role: AI conversations, lead qualification, booking link dispatch, demo dashboard

3

Configure This Server

Add Twilio Credentials to Environment

Your Webhook URLs (ready to use)

  • Call Webhook URLhttps://leadpulse-ai-19.polsia.app/webhooks/call
  • SMS Webhook URLhttps://leadpulse-ai-19.polsia.app/webhooks/sms
  • Status Webhook URLhttps://leadpulse-ai-19.polsia.app/webhooks/status
Copy these into your Twilio number configuration under Voice and Messaging webhooks.

Booking Link

Set the booking URL that gets sent when a lead is ready to book:

BOOKING_URL=https://calendly.com/your-business/consultation

Replace with your Calendly, Acuity, or any scheduling link. The AI includes this in the SMS when the lead signals they're ready.

Optional: GoHighLevel API Integration

Want to push qualified leads into GHL CRM automatically? Add your GHL API key:

GHL_API_KEY=pk_xxxxxxxxxxxxxxx GHL_LOCATION_ID=xxxxxxxxxxxxxxxxxx

4

Test End-to-End

Verify Everything Works

Test trigger (no real SMS in demo mode)

Visit /demo/test to simulate a missed call without using real Twilio credits. This logs a call, triggers the SMS flow, and shows you the full conversation in the dashboard.

Run Test →

Dashboard

After testing, visit /demo to see your calls, conversations, and lead stats. This dashboard is your demo asset for outreach calls.