A customer calls your tracking number, lets it ring, hangs up, and gets dead silence instead of an auto-reply. You jump into your workflow execution history expecting an error, but there are zero records. The trigger never even fired.
I ran into this exact headache across four client sub-accounts last month. Here is why GoHighLevel drops missed call events silently, and how to configure your triggers, carrier settings, and routing so your automated SMS replies actually land within seconds of a dropped call.

The Real Reason Your Missed Call Text Back Fails
HighLevel handles missed calls through two competing systems: the legacy native toggle inside sub-account settings and modern automation workflows. If both are running at the same time, or if your workflow trigger is missing key status filters, the platform drops execution silently without logging any errors.
Under the hood, HighLevel’s telephony service (LC Phone or Twilio) listens for inbound webhook events emitted by the carrier. When an incoming call ends without hitting a completed status, the platform checks three distinct things before doing anything:
- Did the call status return
no-answer,busy, orcanceled? - Did the native Missed Call Text Back setting in Sub-Account Settings intercept the event first?
- Is your outbound messaging cleared by carrier registration, like A2P 10DLC campaign registration or toll-free verification?
Check the Sub-Account Native Setting First
Before you touch the workflow builder, check your sub-account’s native configuration. HighLevel still includes an out-of-the-box Missed Call Text Back toggle under Settings > Business Profile.
If this native toggle is turned on while you’re also running a custom workflow triggered by call status, they will clash. The native toggle fires a basic SMS immediately and frequently swallows the event, preventing your custom workflow from executing its branching logic, tagging, or internal alerts.
- Go to Settings > Business Profile in your sub-account.
- Scroll down to the Missed Call Text Back card.
- If you want full control over delays, conditional branches, and message copy inside workflows, uncheck Enable Missed Call Text Back.
- Hit Save at the bottom of the page.
Disabling the native toggle clears the webhook pipeline so your custom automation workflow can handle 100% of missed call events without interference.
Diagnose the Workflow Trigger: Call Status vs Inbound Call
The single most common mistake in custom builds is picking the wrong workflow trigger. HighLevel gives you two triggers that sound almost identical: Call Status and Inbound Call.
The Inbound Call trigger fires the millisecond a call starts ringing. It has no idea whether the call will be answered, sent to voicemail, or abandoned. If you drop an SMS action right behind an Inbound Call trigger, you will literally text people while their phone is still ringing in their hand.
You need the Call Status trigger. Here is the exact filter combination to use inside the workflow builder:
- Workflow Trigger: Call Status
- Filter 1:
Call DirectionisIncoming - Filter 2:
Call Statusisbusy,no-answer,canceled
Here is what the raw webhook payload looks like when a call terminates without being answered by an agent:
{ "event": "call_status", "call_direction": "inbound", "call_status": "no-answer", "call_duration": 0, "from": "+15551234567", "to": "+15559876543", "location_id": "loc_abc123xyz", "contact_id": "cont_987654321"
}If your trigger filter only listens for no-answer, you will miss every caller who hangs up before the carrier timeout threshold (which returns canceled) or callers whose lines hit congestion (which returns busy). You need all three statuses.
A2P 10DLC and LC Phone Carrier Filtering Issues
Sometimes your workflow triggers properly, the execution log shows all green checkmarks, but the caller never gets the text. That is not a workflow trigger failure—it is an outbound SMS delivery block at the carrier level.
U.S. carriers aggressively filter unregistered local 10-digit phone numbers. If your sub-account runs LC Phone or Twilio without an approved A2P 10DLC Brand and Campaign, mobile operators will drop outbound SMS automatically with error code 30007 or 30008.
To check if carrier blocks are stopping your messages after the workflow fires:
- Head to Settings > Phone Numbers.
- Check your A2P 10DLC tab and make sure your Campaign Status reads Approved.
- Open Conversations, find the test caller’s thread, and inspect the SMS bubble.
- If you see a red warning icon, click it to see the carrier rejection code.
If you run into issues where webhooks or notifications are also failing alongside SMS, take a look at our guide on troubleshooting HighLevel workflow webhooks to rule out broader routing issues.
Handling Timeouts, Forwarding Numbers, and Voicemail Drops
If you forward your HighLevel tracking numbers to a mobile phone or office desk line, call routing settings can easily trick HighLevel into thinking a missed call was answered.
When an incoming call forwards to your cell phone and your personal carrier voicemail picks up, HighLevel considers that call completed (status: completed) because the line connected and audio passed through. The platform cannot natively tell the difference between a real human saying hello and your personal voicemail greeting.
To fix this, tighten your forwarding ring timeout in HighLevel:
- Go to Settings > Phone Numbers and click the pencil icon next to your tracking number.
- Find the Timeout (Seconds) setting.
- Set the timeout to 18–20 seconds. Most cell carriers take 25–30 seconds before routing to personal voicemail.
- Turn on Call Whisper or Connect Call via Press Key (like “Press 1 to connect”).
Requiring a keypress guarantees that if your personal voicemail answers, no key is pressed, the call is marked as no-answer, and your missed call text back workflow fires reliably every time.
Build the Fail-Safe Missed Call Text Back Workflow
Here is a clean workflow structure that handles missed calls, prevents spam loops if someone calls multiple times in a row, and leaves an audit trail:
- Trigger: Call Status
- Direction:
Incoming - Call Status:
busy,no-answer,canceled
- Direction:
- Action 1: If/Else Condition (Check for recent texts to avoid spamming repeat callers).
- Condition: Contact Tag does not include
mctb-sent-today
- Condition: Contact Tag does not include
- Action 2: Add Tag (
mctb-sent-today). - Action 3: Wait (Wait 1 minute so the reply feels human and gives the caller time to put their phone down).
- Action 4: Send SMS.
- Message copy: “Hey {{contact.first_name | default: ‘there’}}, saw we just missed your call! How can we help you out today?”
- Action 5: Internal Notification (Send an SMS or Slack alert to your team with caller info).
- Action 6: Wait 24 Hours, then Remove Tag (
mctb-sent-today).
If your business operates strictly during business hours, pair this logic with our tutorial on SMS quiet hours and sending windows in GoHighLevel to stay compliant with TCPA regulations on late-night calls.
For more edge cases on workflow logic design, check our companion guide on the missed call text back workflow build and fix guide.
Testing with Real Payloads and Execution Logs
Do not rely on the “Test Workflow” button inside the builder for telephony triggers. That test runner just feeds mock contact fields—it does not simulate live carrier webhooks or call statuses.
Here is how to test it properly:
- Use a separate phone number (one that is NOT set as the forwarding number or assigned to any user in that sub-account).
- Dial the HighLevel tracking number.
- Let it ring twice (about 6–8 seconds) and hang up.
- Wait 60–90 seconds.
- In HighLevel, open Automation > Workflows, open your missed call workflow, and click Execution Logs.
For more details on raw carrier status codes like ringing, in-progress, and failed, check the official HighLevel Help Center documentation and Twilio’s Voice Call Status documentation.
If the log shows your contact entered the workflow with green checkmarks across every step, your call routing, trigger filters, and outbound SMS configurations are working as they should.
Frequently Asked Questions
Why does my workflow trigger when I answer the phone?
Your Call Status trigger is missing the status filter. Without a filter, the trigger fires on every terminated call—even answered calls with a completed status. Add the filter Call Status is no-answer, busy, canceled.
Can I trigger different text messages for after-hours missed calls?
Yes. Add an If/Else step directly after the trigger. Use Date/Time > Current Day/Time to see if the call arrived outside your business hours, then route them to an after-hours SMS letting them know your team will reach out first thing in the morning.
Does Missed Call Text Back work with Toll-Free numbers?
Yes, but the toll-free number must have an approved verification status. Unverified toll-free numbers get their outbound SMS rejected automatically. Complete the verification under Settings > Phone Numbers > Toll-Free Verification first.
Why did the contact not receive an SMS even though the log says executed?
Usually carrier filtering or DND status. Check if the contact has the DND (Do Not Disturb) toggle enabled on their record, or inspect the conversation thread in HighLevel to see if LC Phone flagged an A2P registration rejection.
Next Steps
Now that your missed call triggers are running properly, make sure the rest of your inbound lead flow is covered. If you handle external form submissions or third-party leads alongside phone calls, check out our guide on triggering HighLevel workflows with inbound webhooks.

