The outcome: what happened
The agent sorts each call into one clear result. Did they book? Ask for a callback? Ask you to stop calling? This one word summary is called the outcome, and it’s how the campaign knows what to do next. See Campaign workflows. Some outcomes are decided for you and always work the same way. Four are yours to describe in your own words, so the agent knows exactly what each one means for your business:
For each of these, you write a short line telling the agent when it applies. Plain
language is best: “Opt out means the person clearly asked us to stop calling.”
In the API these lines are
analysis.outcomes on the agent.
Get campaign shows them under
outcomes beside the defaults, and
Update campaign changes one at a
time with outcomes.<key>.prompt.
Describe what the person actually said or agreed to. Editing this wording changes
how an existing result is recognised; it does not create a new outcome. Change
one prompt, save it, and review a test call before refining it further.
Your capabilities decide which outcomes exist
Not every outcome is available to every agent. The ones that describe something the agent did only exist when the agent can actually do it:
The rest describe the call rather than the agent’s action, so they are always
available.
Add a capability and its outcome appears. Remove it and the outcome goes with
it, along with whatever your campaign had routed off it. So it is worth settling
the capabilities before you build out the follow-up.
How the campaign groups them
On the campaign’s outcome cards, every result sits under one of three fixed groups:
The routes under Nurture:
Inbound campaigns do support callbacks: someone who calls your business can
still ask to be called back later. “No outcome” and “no answer” describe
different situations but share one route. Someone may answer and have a
conversation without agreeing to a next step; that call still belongs here.
You cannot add, rename or remove the standard groups and routes. You can adjust
the four detection prompts above and choose the follow-up actions attached to
each result.
Every outcome, by name
The same outcome shows up under three names depending on where you read it: the constant a workflow branches on, thetype on a
contact’s disposition, and, on a GoHighLevel sub-account,
the
automatic tag applied in the
CRM.
On a call record the outcome is the
disposition object:
its type, a human label, a color, and the tag when one was applied.
The details: your AI-generated fields
Beyond the outcome, the agent can pull specific facts out of the call. These are your AI-generated fields: the agent generates each one from what was actually said. It always saves the basics, like a short summary, and on top of that you can ask it to grab whatever else you care about. You add an AI-generated field by describing it in plain English:- A name for it (like “roof age”).
- What kind of answer it is: text, a number, yes/no, or one from a list.
- What the agent should listen for (“the age of the roof in years”).
analysis.fields[] on the agent:
Each call’s values come back as
fields on the call detail.
The same fields also travel in the flat postCallFields form on
Update agent, which replaces the whole
list, so read it first. There type is string, number, boolean or enum
with choices, and system-presets addresses the wording of the built-in
call_summary, call_successful and user_sentiment.
Signals: the yes/no ones
A yes/no field has its own name: a signal. Signals are the ones your campaign can act on. “Wants a callback” flips to yes, and a follow up fires. Think of a signal as a switch the rest of your campaign can wire into, so a plain fact from the call turns into an action. In the API a signal is a field withtype: boolean, and a workflow if node tests it with is_true.
When you update your agent later, your own signals and AI-generated fields are
the only ones that change. The standard, system managed ones are always kept
safe, even if you don’t mention them. They are listed as
platformFieldNames
on the agent.A few fields belong to a capability rather than to you:
the booking time and the booked signal come with Appointment Booking, the
failed-transfer signal with Live Transfer. They are listed under
analysis.locked. You can reword what the agent listens for, but you cannot
delete one or change its type while the capability is installed, and trying
to will come back as an error. Remove the capability and its fields go with it.Add your business’s own conditions with detectors
The standard outcomes handle the common calling situations. Your business may also need to notice something specific, such as an urgent deadline or interest in a particular service. That is what detectors are for. A detector answers an additional yes-or-no question about the conversation. A call can have one main outcome and several detectors that are true. For example, a call may end in Asked for info while also detecting Needs help this week. The information request can send the usual details, while the detector can trigger an extra follow-up for your team. Detectors extend the campaign’s follow-up logic without replacing its standard outcomes. See Detectors to create one.Choose what happens next
Attach follow-up workflows to the relevant outcome or detector: send a message, add a tag, write a note or move a pipeline stage. The outcome chooses the route; the configured workflow determines the actions. Not every result needs an extra action of your own. The Subscribe to notes switch controls whether that result adds a summary note to the contact. It does not change how the result is detected.Older campaigns may share one agent’s detection wording. Campaign outcome
edits are blocked when that agent is shared with unrelated campaigns, until
this campaign has its own agent. Explicit Master agent families intentionally
share their wording; split test variants share their campaign’s outcome settings.
Why this matters
The record is the bridge between the call and everything after it. A clean outcome plus a few good fields means your follow up can be sharp: text the people who asked for info, leave alone the ones who opted out, and flag the ones who need a human. Garbage in, garbage out, so it’s worth describing your outcomes and fields clearly.In the API
- Get agent and
Update agent read and write
config.analysis - Get campaign and
Update campaign read and write
the wording under
outcomes - Get call returns
dispositionandfields - Get the campaign workflow branches on the constants above
- Every field above is defined in the Glossary
