September 4, 2026 · 6 min read
Auto dialers do not press buttons.
That single fact is the whole trick. Put a one key gate in front of your business number and the robocalls die at the door, while real customers press one and connect like normal.
On a contractor line that was getting a daily wave of spam, this stopped the bots and stopped them polluting the sales pipeline with junk missed call opportunities. Here is how it is built, including the two things that will break it if you miss them.
Why it has to be a workflow
Open your number's settings and you will find Calls Go To with three options, Team Member, External Phone Number, or Voice AI.
There is no IVR option there. Keypress menus are built as a Workflow, and publishing that workflow links it to the number automatically.
Build it
Automation, then Workflows, then Create workflow, then Start from Scratch.
- Trigger, search call and choose Start IVR trigger. Attach your business number.
- Action, Gather input on call. This plays your greeting and listens for a keypress. Set Match Conditions on, one loop.
- Branch on key 1, add a Connect Call action pointing at whoever should ring.
- Branch None, leave it ending. No press means no connection, which is exactly what you want for a dialer.
- Publish. Draft does nothing to live calls, which makes this safe to build during business hours.
For the greeting, text to speech works, and a recorded MP3 sounds better. Something like, thanks for calling the business name, here is what we do, to connect with us please press one.
Should non pressers get voicemail? No. Drop the call. Bots leave nothing behind anyway, and a voicemail box full of dead air is just another thing to check.
Trap one, who actually rings
This is where the first live test fails for most people.
In Connect Call you can add team members, which rings them through the LeadConnector app. That only works if they are logged in with the app open. If nobody is, the call has zero reachable destinations and drops instantly after about a second of hold music.
The execution log will say the connect call action completed with call status no answer, and report Event Status Success. Nothing looks broken. The customer just got hung up on.
The fix, in Connect Call, use Add custom number and enter real cell numbers. Keep the app entries too if you like, they are harmless. Now it rings actual phones, first answer wins.
And when you test it, call from a phone that is not on the ring list. If you dial in from a number that is also a ring target, your own line is busy, the leg fails, and you will spend an hour debugging a configuration that was fine.
Trap two, personal voicemail steals the call
This one is subtle and it costs you leads.
Your phones ring. Nobody grabs it. The call rolls to somebody's personal voicemail, and now two bad things happen at once, your customer is listening to an employee's personal greeting instead of your business, and GoHighLevel marks the call Completed because something answered. Completed looks like success, so your missed call text never fires.
The fix, open the Connect Call action, go to Advanced Settings, and turn on Detect Voicemail. GoHighLevel then works out whether a human or a voicemail box picked up, and does not count voicemail as answered. Your caller is not dumped into a personal mailbox, and your missed call automation fires correctly.
Also raise the timeout. The default 10 seconds is about three rings, which is not enough for someone on a ladder. 25 seconds is realistic.
Advanced Settings collapses every time the panel reopens, so reopen the node and confirm the toggle actually stuck.
Catch the ones you miss
Add this to the key 1 branch after Connect Call, an If Else condition checking that Call status is not Completed. That catches busy, cancelled, no answer, and voicemail in one clause rather than just no answer.
On the true branch, send the caller a text saying you are sorry you missed their call and asking them to reply so you can get right back to them.
Then add Create Opportunity so the lead lands on your board instead of evaporating.
Add a repeat text guard. A caller who tries you twice should not get the same apology twice. Add a second clause to the condition, Tags does not include missed call texted, and add that tag right after the SMS. The second miss skips the text and still creates the opportunity.
Note that turning re-entry off does not solve this. Re-entry only blocks while the contact is still enrolled. Calls hours apart need the tag.
Sort your callers while you are here
If you serve two kinds of customer, use two keys. For residential press one, for commercial press two. Add a Tag action on each branch.
Then tag the no press branch too, something like unscreened. Now your inbox can be filtered, your bots are labelled, and you can see at a glance what is real.
Test it properly
Call your business number from an outside phone.
- No press, the call should end. Nothing rings, nothing texts.
- Press 1, phones ring for the full timeout. Answer it and confirm the connection.
- Press 1 and decline, you should get the missed call text, and the caller should not hear anyone's personal voicemail.
- Call twice, the second miss should not send a second text.
Check the execution log afterward and confirm every branch shows green.
One thing not to do
When bot calls come in with local numbers, do not call them back. Robocallers spoof caller ID, so the number on your screen usually belongs to an uninvolved person who never contacted you. Calling them is a nuisance to a stranger and a TCPA risk to you.
The gate is the answer. Let it do its job.
This is one step in the full build. See the whole GoHighLevel setup order.
Get set up
Start your GoHighLevel trial: resourcepilot.net/gohighlevel
Want your AI to build the workflow with you? resourcepilot.net/resources
*Disclosure: Resource Pilot may earn a commission if you sign up for GoHighLevel through our link, at no extra cost to you. We run our own business and our clients' businesses on GoHighLevel, and we would recommend it either way.*
Put this to work
The Press 1 Script Builder
A written phone menu script ready to record and load into your call screening setup today.