Fix Missed-Call Text-Back Not Triggering in GoHighLevel

by Fahim

A lead calls your tracking number, lets it ring four times, hangs up, and gets dead silence instead of an instant text back. When your missed-call text-back workflow in GoHighLevel silently fails, you’re leaking hot inbound leads straight to whichever competitor answers first.

I spent three hours troubleshooting this exact issue on a client sub-account last week. Here is how to trace where the call event gets dropped, resolve native toggle conflicts, and build a trigger that actually fires every single time.

Smartphone showing a missed call notification on a desk next to workflow diagnostic logs
Smartphone showing a missed call notification on a desk next to workflow diagnostic logs

Why Missed-Call Text-Back Workflows Fail

When an inbound call goes unanswered, HighLevel checks several layers before dispatching an SMS. If any layer fails, the sequence dies quietly without throwing an obvious error banner on your dashboard.

In practice, 90% of missed-call text-back breakdowns come down to five friction points:

  • Native toggle conflicts: The default “Missed Call Text Back” checkbox in the Business Profile clashes with custom Automation Workflows.
  • Incomplete Call Status filters: Your trigger only listens for busy or no-answer, completely skipping canceled or voicemail events.
  • Allow Re-entry is turned off: If a customer calls twice in one day, HighLevel blocks them from entering the workflow the second time.
  • A2P 10DLC carrier blocks: The workflow executed cleanly, but the carrier dropped the SMS downstream because your A2P registration is pending or rejected.
  • DND (Do Not Disturb) settings: Existing contacts that have SMS DND enabled will silently skip the outbound text step.

Step 1: Disable the Native Setting Conflict

HighLevel has a legacy, one-click missed-call text-back feature buried in the sub-account settings. If you built a custom workflow inside the Automation tab while this native toggle is active, both systems fight for the incoming webhook payload. This causes race conditions, duplicate texts, or dropped messages entirely.

Turn off the legacy setting before tweaking your workflow:

  1. Head to Settings > Business Profile in your sub-account.
  2. Scroll down to the Missed Call Text Back card.
  3. Uncheck Enable Missed Call Text Back.
  4. Hit Save at the bottom of the page.

Once disabled, your custom workflow inside Automation > Workflows gets exclusive rights to process incoming call webhooks without backend interference.

Step 2: Correct the Call Status Trigger Configuration

The standard trigger for this automation is Call Status. The most common mistake I see in agency snapshots is selecting the wrong call direction or filtering for only one status.

When an inbound caller hangs up while listening to ringing audio, carriers classify that call differently depending on whether the caller hit ‘end call’, let it ring out, or hit a carrier-level voicemail.

Open your workflow trigger and configure these exact parameters:

  • Workflow Trigger: Call Status
  • Filters:
    • Call Direction is Incoming
    • Call Status is Busy, No Answer, and Canceled

If you forward calls to a personal cell phone or an external PBX, Twilio/LeadConnector might flag a missed call as Completed if the external cell carrier picked up just to play a voicemail prompt. If you forward calls out, use HighLevel’s call connect features or an IVR so the system accurately detects missed states.

{ "event": "call_status_update", "call_direction": "inbound", "call_status": "no-answer", "duration_seconds": 0, "caller_id": "+15551234567", "forwarded_to": null
}

That is the raw incoming payload. If your trigger filter does not include no-answer and canceled, calls that drop before 15 seconds will bypass the workflow entirely.

Step 3: Enable Allow Re-entry and Check Enrollment Limits

By default, new GoHighLevel workflows prevent a contact from entering the same automation more than once. If you test the flow from your cell phone on Monday, your contact record gets marked as finished. When you test it again on Tuesday, HighLevel silently ignores your call.

To fix this, tweak the workflow engine settings:

  1. Inside your workflow builder, click the Settings tab (the gear icon at the top).
  2. Toggle Allow Re-entry to ON.
  3. Turn off Stop on Response unless you explicitly want later nurture steps to halt when the user texts back.
  4. Click Save in the top-right corner.

If you use webhooks to sync data downstream when calls happen, check out our guide on fixing GoHighLevel workflow webhooks not firing to make sure external payloads aren’t failing silently.

Step 4: Check A2P 10DLC and Carrier Filtering Status

Sometimes your workflow triggers, runs all actions, hits the end node with green checkmarks, and the caller still never gets a text. That is almost always carrier filtering.

US mobile carriers aggressively block unregistered A2P 10DLC traffic. Unregistered messaging campaigns get hit with Twilio error 30007 (Carrier Violation) or 30008 (Unknown error / Carrier Block).

To check if the message actually left HighLevel:

  1. Go to Conversations and search for the caller’s phone number.
  2. Look at the outgoing text bubble. A red exclamation mark means it failed downstream.
  3. Hover over the red icon to see the carrier error code.
  4. Go to Settings > Phone Numbers > Trust Center and confirm your A2P Brand and Campaign registration status is Approved.

If your campaign is still pending or rejected, review our walkthrough on fixing GoHighLevel SMS not sending due to A2P 10DLC to get your registration approved.

Step 5: Build a Resilient Missed-Call Workflow

Here is the exact workflow structure I deploy across client accounts. It prevents race conditions, introduces a brief humanized pause, and uses fallback merge tags so you don’t send awkward blank greetings.

1. Trigger Setup

Set the trigger to Call Status with Direction = Incoming and Status = Busy, No Answer, Canceled.

2. Add a Small Wait Step

Never send an automated text 0.1 seconds after someone hangs up. It feels robotic and occasionally triggers before HighLevel finishes indexing the incoming caller ID.

Add a Wait action set to 15 to 30 seconds. This creates a natural delay and gives the caller time to take the phone away from their ear before getting your message.

3. Tag and Send the SMS Action

Add a Send SMS action with clean copy and fallback values:

Hi { { contact.first_name | default: 'there' }
}, saw we just missed your call! How can our team help you today?

Using liquid filter syntax like | default: 'there' prevents awkward greetings like “Hi , saw we just missed…” when the caller is a brand new lead without a first name on file. Read our guide on GoHighLevel merge fields and fallback values for more formatting options.

Step 6: Inspect Execution Logs and Execution History

If you test a call and nothing happens, do not guess. Look at the real-time execution logs:

  1. Inside the workflow, click the Execution Logs tab in the top navigation bar.
  2. Find the execution timestamp matching your test call.
  3. Click the contact entry to open the step-by-step trace.

HighLevel will show you one of four diagnostic outcomes:

  • No entry in logs: The trigger didn’t match. Check your number routing under Settings > Phone Numbers to ensure the number is assigned to the correct sub-account.
  • Failed at Wait Step: The contact has an existing wait condition active from an earlier uncompleted run.
  • Skipped Action: The contact has DND enabled for SMS channels.
  • Completed with Error: The phone number format was invalid. Make sure incoming numbers are formatted in standard E.164 notation (e.g., +1XXXXXXXXXX).

For custom API setups or third-party integrations, you can also inspect your account parameters by referencing our tutorial on how to find your sub-account location ID.

Frequently Asked Questions

Why does the missed-call text-back send when I test internally but not for live callers?

Internal tests usually use existing contacts with known first and last names. Live callers come in as raw phone numbers without contact records. If your workflow relies on custom fields that are blank for new contacts, actions downstream might fail. Always test using a fresh number that doesn’t exist in your CRM yet.

Will missed-call text-back trigger during business hours if I answer the phone?

No. When you answer, the call status updates to completed. Because your workflow trigger only listens for busy, no-answer, and canceled, answered calls bypass the automation entirely.

Can I restrict the auto-reply to fire only during specific business hours?

Yes. Add an If/Else condition right after the trigger that checks Date/Time > Current Day/Time against your operating hours, or use the Time Window setting on the Wait action so you don’t ping people at 3 AM.

What happens if a customer calls from a landline?

If an inbound call comes from a landline, the workflow will trigger, but the SMS delivery will fail at the carrier level with an undelivered or landline not supported status (Twilio error code 30006 / 30007). You can add an internal notification step via email or Slack so your team knows to manually call them back.

What to Check Next

Once your missed-call workflow is triggering reliably, make sure the rest of your inbound funnel works smoothly. Check our guide on fixing GoHighLevel calendar available slots so your auto-responder can link directly to a functioning booking page without scheduling bugs.

all_in_one_marketing_tool