The actions, one line each
These are the labels HighLevel uses in the agent's Actions. Each one fires when its trigger condition is met during the conversation.
- Call Transfer sends the caller to a human's phone number.
- Agent Transfer hands the call to a different Voice AI agent. It does not ring a person.
- Book Appointment puts the caller on a calendar while they're still on the line.
- Send SMS texts the caller during the call, handy for a link or an address they'd otherwise have to write down.
- Trigger Workflow starts one of your HighLevel workflows mid-call.
- Update Contact Field writes what the caller said into the contact record.
- Custom Action sends a real-time webhook to a system outside HighLevel.
During the call or after it
HighLevel splits actions into During the Call and After the Call, and the difference shows up most with contact updates. A field update set to run during the call applies at once, and the agent confirms it with the caller. The same update set to run after the call is applied silently once the conversation is over.
That explains a common complaint: the agent keeps stopping to read details back. If a caller hears “just to confirm, your email is…” for every field, those updates are running live. Move them to After the Call unless something later in the conversation needs the value, such as an email the booking depends on.
If nothing later in the call needs the value, write it after the call.
Adding an action
The setup is the same for every type; only the destination changes.
- Open the voice agent, go to its Actions and click + New Action.
- Pick the action type.
- Write the trigger condition: a plain description of the moment it should fire, such as the caller asking for a manager.
- Set what the action needs to run: the transfer number, the calendar, the workflow or the outside integration.
- For contact updates, choose During the Call or After the Call.
- Save, then test the action on a real phone call.
Transfers: test them on a phone, not in the browser
Call Transfer doesn't run in a Web Call test. If you click through a browser test and the transfer does nothing, that's expected, not a broken action. Use the Phone Call test, which places a real call, and confirm the person on the other end picks up.
Check the type as well. Agent Transfer passes the call to another AI agent, so if you meant to reach a person and chose it, the caller ends up talking to a bot again. Use Call Transfer whenever a human should answer.
Creating actions through the API
HighLevel's public Create Agent Action schema accepts eight actionType values, including APPOINTMENT_BOOKING and CALL_TRANSFER. Some older notes say booking and transfer can only be set up in the app; the public schema says otherwise.
The enum names are not the labels on screen, so map each one to its UI action before you write code against it. This guide doesn't cover the parameters each type takes. Read the schema for the type you're creating, then open the agent in HighLevel and check that the action looks the way you meant.
Rather have it set up for you?
We'd set up the transfers, booking, texts and webhooks your voice agent needs and test each on a real call, starting with a 30-minute 1:1 with Rob.
