This guide covers the choice, the callback gap that catches most builds, and the phone settings that stop inbound calls from ever reaching the agent.
What HighLevel actually allows
HighLevel's flow builder documentation lists inbound and outbound calling for the same agent, and inbound and outbound welcome messages as separate settings. Nothing on the platform forces you to build two agents.
Numbers are flexible too. A Number Pool can route several phone numbers to one agent, so an agent that answers your main line and your ad tracking line doesn't need a copy for each.
So the question is not what HighLevel permits. It is how you want the two directions written, tested and changed later.
Why we plan inbound and outbound as two prompts
In our builds we write the two directions as two prompts, even when they live on one agent. They do different jobs. An outbound call opens with a reason for calling and has to earn the person's attention. An inbound call starts with the caller's question and has to answer it.
Writing them apart also keeps changes contained. A new outbound offer gets edited, approved and tested on the outbound side without touching how the agent greets people who ring in. That is our convention, not a HighLevel requirement.
The callback gap
Here is what goes wrong. The outbound side calls a contact about a specific offer. They miss it, see the number and call back. That call is inbound, so the inbound side picks up, and if its prompt knows nothing about the outbound offer, it greets them like a stranger and asks what they need.
HighLevel does not join the two up for you. The fix is in the inbound prompt: for every outbound campaign, a short note on what was offered and how to pick the conversation up when someone says they're returning a call. Remove the note when the campaign ends.
Every outbound campaign needs a line in the inbound prompt, because that's where the callbacks land.
Getting inbound calls to the agent
Assigning a number to the agent doesn't guarantee that every inbound call reaches Voice AI. When the agent stays silent on its own number, work through these in order.
- Open the agent's Deploy settings, go to Phone, and assign the inbound number or the Number Pool.
- Under Call Routing, choose Answer Calls Directly if the agent should pick up first, or Use as Backup if your team rings first and the agent takes what they miss.
- Check Working Hours. An agent limited to certain hours won't answer outside them.
- Go to Settings, Phone System, Phone Numbers, open the number with Edit Configuration and review Call Forwarding. A call that reaches local voicemail can end there before Voice AI ever answers.
Testing both directions
HighLevel's Test Your Agent panel has Inbound and Outbound scenarios and a Phone Call option. A browser test is useful for wording, but it doesn't run the full phone path, so it can't tell you whether a real call reaches the agent or what caller ID the other side sees. A phone test checks both.
If the outbound scenario is unavailable, the account may not be eligible to place calls yet. HighLevel ties outbound testing to calling eligibility and any verification the account still needs.
For a callback, test it the way it happens: let the agent call your own phone, don't answer, then call the number back and listen to how the inbound side opens.
Rather have it set up for you?
We'd set up both sides of your voice agent, including what it says when a callback comes in, starting with a 30-minute 1:1 with Rob.
