THE SHORT VERSION
- There are two implementations — the native toggle and a workflow — and running both at once is the most common cause of duplicate texts.
- If Voice AI answers the call, it was not missed, and nothing missed-call-triggered will fire.
- Externally forwarded numbers do not reliably register a missed call. Provision the number inside GoHighLevel.
- A text back is a holding message, not a recovery system. The recovery is what happens in the following hour.
Missed call text back is the most-installed automation in GoHighLevel and the most frequently broken, and those two facts are related: it is easy enough to switch on that nobody treats it as a system, so nobody notices when it quietly stops.
Two implementations exist, they can conflict, and six things break them.
The two implementations
The native toggle. Settings → Business Profile → Missed Call Text Back. Switch on, write a message, save. Five minutes, no workflow, one static message.
A workflow. Trigger on a call event with a missed status, then do whatever you want: branch on time of day, send a different message to a known contact than to a new number, move the contact into a pipeline stage, notify the owner, follow up again in twenty minutes if nobody replies.
The rule is simple and it is broken constantly: use one, per number. Running the toggle and a missed-call workflow simultaneously is the single most common cause of a customer receiving two texts for one missed call, and because each is configured in a different part of the interface, the person who set up the second one usually does not know the first exists.
Setting up the workflow version properly
If you are doing anything beyond one static line, use the workflow. This is what a version worth shipping looks like.
Trigger. A call event filtered to missed status. Be specific about the status filter — a trigger set too broadly fires on completed calls too, and a trigger set too narrowly never fires at all. This is the second most common misconfiguration after the number not being registered.
Immediate response, and mean immediate. No wait step at the front. The value of this automation is entirely in arriving while the caller still has their phone in their hand. Ninety seconds later, they have called your competitor.
Say who you are and give them one thing to do. Business name from a custom value, an apology for missing them, and a single action — usually a booking link, occasionally a question they can answer by text. Two options halves the reply rate.
Branch on whether they reply. Replied goes into a conversation and out of automation. No reply gets one more touch — twenty to sixty minutes later, different wording, and then stop. A third unanswered text is a complaint waiting to happen.
Move the pipeline. A missed call is a lead. If it does not create or move an opportunity, it is invisible in reporting and it will not be followed up by a human either.
Notify the owner for the ones that matter. Not every missed call, or the notification becomes noise and gets muted. In most verticals: outside opening hours, or repeat callers.
The six reasons it stops working
1. The number is not A2P registered
This is the first thing to check and the answer more often than everything else combined. Unregistered application-to-person traffic to US numbers is rejected at the carrier edge — the message does not arrive, and every layer you can see reports success. The workflow history will show the SMS step executing. Nothing arrived.
Check the campaign status in the Trust Center before debugging anything else. The A2P guide covers what gets campaigns rejected.
2. Voice AI answered the call
If Voice AI is set to answer some or all incoming calls and it successfully answers, the call is not a missed call. Neither the native toggle nor a missed-call-triggered workflow will fire.
That is correct behaviour — the AI handled it — but it surprises people who switch on an AI receptionist and then report that their text back “broke”. It did not break; there is nothing left to recover. Decide deliberately which calls the AI takes and reserve the text back for calls that reach neither a human nor the AI.
3. The number is forwarded from an external carrier
Calls forwarded in from a Verizon, AT&T or other external number do not reliably register a missed-call event, because the event belongs to the carrier that received the call and not to GoHighLevel.
The fix is structural: provision the number inside GoHighLevel and forward out to the business’s existing phone rather than forwarding in. Then the platform sees the call, sees that nobody answered, and has an event to trigger on. Route the call through the system you want to automate.
4. The workflow is unpublished
Draft workflows do not run. It is embarrassing and it is common, particularly after somebody edits a live workflow and saves without republishing.
5. A conflicting workflow is still active
The old missed-call workflow somebody built in month one, disabled but not deleted, then re-enabled during unrelated debugging. Prefixed asset naming makes this visible at a glance instead of archaeological, which is one of several reasons every asset in our snapshots carries one.
6. The number has no SMS capability
Some provisioned numbers are voice-only. It is rare and it is instant to check, so check it before rebuilding anything.
What a text back is not
Here is the part that gets missed. A missed call text back is a holding message. It buys attention for a few minutes. It is not a recovery system.
The recovery is what happens next, and in most verticals it is worth considerably more than the text:
- An outbound call attempt, within the hour, if there is no reply. A caller who did not reply to a text will very often answer a call back.
- A second channel — email if you have an address for them.
- A path into the nurture sequence if neither lands, so a missed call becomes a lead rather than a lost one.
- A no-show branch, if the missed call related to a booking. That is a different automation and the highest-value one in most snapshots; ours target a 70% no-show recovery rate as the system’s design target, with the actual rate depending on your niche, timing and reschedule offer.
The strongest version of this is not really a text-back at all — it is not missing the call. An AI receptionist answers, qualifies and books while the caller is still on the line, and the text back becomes a fallback for the small remainder rather than the primary mechanism. That is how the nine components are arranged in every snapshot in our library: the receptionist takes the call, the appointment system prevents the no-show, and the outbound caller works whatever falls through.
A ten-minute audit
Run this on any account where the text back is suspect:
- Trust Center — is the A2P campaign approved?
- Is Voice AI answering these calls?
- Is the number provisioned in GoHighLevel, or forwarded in from outside?
- Is the native toggle on and a workflow published? Turn one off.
- Is the workflow published, and does its status filter match a genuinely missed call?
- Does the number have SMS capability?
- Call it from a phone that is not in the account, do not answer, and watch.
Step 7 is the only one that proves anything. Do it after every change, and do it again after any account switches on Voice AI — that change breaks more missed-call automations than any other.