Outcomes are buckets
Think of every call dropping into a labelled bucket:- Booked. They set a time.
- Transferred. They got handed to a person.
- Callback. They asked to be reached later.
- Asked for info. They wanted details, not a booking yet.
- Needs a human. A person should step in.
- Opted out. They asked you to stop.
- No answer or voicemail. Nobody picked up.
The platform already handles the basics
You don’t start from zero. On every call, the platform does the groundwork: it records what happened, keeps your dialler moving, and raises alerts when a transfer fails. On a GoHighLevel sub-account it also tags each person by the outcome: booked, opted out, transferred. So your follow-up rules are the extra touches you add on top, not a list you have to build from scratch. A brand-new campaign with no rules of your own still tags people correctly after every call.The automatic labels
On a sub-account that uses GoHighLevel these are the labels the platform applies for you, so you can trigger your own follow-up off them. On one that keeps its contacts here the same outcomes are on the contact and the call record instead:
Use these as triggers. For example, when someone gets
tfu_ai_standby, that’s
your cue to send information and check back in a few days. Not every outcome has
an automatic label: voicemail and no actionable result do not receive one.
You decide what each bucket does
For each outcome, you set the follow-up. It’s a set of “when this happens, do that” rules:- When they ask for info, text them your booking link.
- When they book, send a friendly confirmation.
- When they need a human, label them so your team picks it up.
- When it’s a voicemail, leave a note on the contact.
Campaign workflows
The graph, the node types, the conditions, and how to edit it safely while the
campaign is live.
These run after the call, and only after it
Follow-up actions fire once the call has ended. They cannot do anything while the caller is still on the line, and nothing here can stand in for something that has to happen during the call.- Transferring is not a follow-up action. The “needs a human” outcome means the call was marked for someone to pick up afterwards. It does not connect anybody. A live handoff is an ability on the agent.
- Booking here is not booking on the call. If you want the agent to offer times and book while you have them talking, that is the booking ability, not a follow-up action.
- The script can’t do any of this either. What you write in the script is only what the agent says. It cannot apply a label, send a text, move a stage, or touch your CRM, so writing “then tag them as booked” into the script does nothing at all. Wire it here instead.
In the API
- Get the campaign workflow and Add actions to an outcome
- List calls with
dispositionto see which bucket each call landed in - List contacts with
dispositionto see each person’s latest outcome - Every label above is defined in the Glossary
