Skip to main content
This is the part of setup that quietly fails. Everything looks configured, reps dial happily, and a week later the client asks why nothing is moving in their pipeline. The cause is almost always the same: a disposition and a stage that do not share a name.
The rule in one line: when a rep saves a call, AI Sync looks for a pipeline stage whose name matches the disposition they chose. Match found, the lead moves. No match, the lead stays exactly where it was.

🧩 How the pieces connect

Disposition

What the rep picks at the end of a call. “Not Interested”, “App Set”, “Call Back”.

Pipeline stage

Where the lead sits in the sales process. “New Lead”, “Contacted”, “Appointment Set”.

The link

The name. Matching names move the lead automatically. Nothing else is required.

What happens when a rep saves a call

1

The rep picks a disposition and presses Save

Their notes, tags and callback time save with it.
2

AI Sync looks for a stage with that name

It searches the pipelines belonging to that company.
3

If exactly one stage matches, the lead moves

The move is recorded and visible immediately in the pipeline view.
4

If nothing matches, the lead stays put

The call still saves. Notes, disposition and recording are all kept. Only the stage move is skipped.
Two stages with the same name in different pipelines is treated as ambiguous and nothing moves. This is deliberate — guessing which pipeline the client meant would put leads in the wrong place, which is worse than leaving them alone.

✍️ Setting up dispositions

Build the disposition list first. The pipeline is shaped to match it, not the other way round.
1

Write down how the client already describes call outcomes

Use their words. If they say “DQ” rather than “Not Qualified”, call it DQ. Reps pick the right option faster when it sounds like how they talk.
2

Keep the list short

Six to ten is healthy. A rep scanning twenty options mid-call picks whatever is nearest, and your reporting becomes fiction.
3

Set exactly one Didn't Answer default

One disposition is wired to the Didn’t Answer button. It is also what feeds voicemail detection learning, so it must be set.
4

Include one appointment outcome

“App Set”, “Appointment Set”, whatever they call it. This is the one that matters most for reporting.
Full screen reference: Dispositions.

🗂️ Setting up the pipeline

1

Create the stages in the order a lead actually travels

Left to right should read like the real sales process.
2

Name the outcome stages exactly like the dispositions

This is the whole mechanism. “App Set” the disposition needs “App Set” the stage.
3

Confirm the Appointment Set stage

Every pipeline has one. Check it exists and sits where the client expects it.
Full screen reference: Pipelines.

✅ A mapping that works

Here is a setup where every meaningful outcome moves the lead.
“Didn’t Answer” should not have a stage. A lead who did not pick up has not progressed, and moving them would make the pipeline meaningless. Leave them where they are so they stay in the calling rotation.

A mapping that silently fails

Every one of these looks fine on screen. Reps dial, calls save, notes appear. The pipeline just never changes, and nobody notices for a week.

📅 Booked leads are handled separately

An appointment is important enough to have its own path, independent of disposition naming.
1

The rep books and GoHighLevel confirms

The status on their screen reads Confirmed by GoHighLevel.
2

The lead moves to the Appointment Set stage

In their own pipeline. A lead is never moved into a different pipeline.
3

The lead leaves the dial list

They will not be auto-dialed again. Calling them from the keypad to confirm does not put them back.
If GoHighLevel refuses the booking, the lead returns to the list and to their previous stage — but only if nobody has moved them since. A stage a manager set by hand is never overwritten.
AI Sync pipelines and GoHighLevel pipelines are separate systems. Creating a stage in GoHighLevel does not create it in AI Sync, and the automatic move reads the AI Sync pipeline. Set up both if the client wants both to reflect reality.

🧪 Proving it works

Do not trust the configuration screen. Test it.
1

Pick a test contact you can safely move

Note which stage they are in now.
2

Save a call against them with a mapped disposition

Use one you expect to move them.
3

Open the pipeline and confirm the move

Immediate. No refresh delay.
4

Repeat for the appointment path

Book a real appointment on a number you control, wait for Confirmed, and check both the stage and that they left the dial list.
Check: every disposition the client will actually use either moves the lead to the stage you expect, or deliberately does not — like Didn’t Answer.

If leads are not moving

Names do not match. Put the disposition list and the stage list side by side and compare them character by character. “App Set” and “App set” are different.
The ones that fail have no matching stage. Either rename the stage or rename the disposition — either works, but pick one and be consistent.
Check the booking status the rep saw. Only Confirmed by GoHighLevel triggers the move. “Needs review” means the booking is uncertain and the lead deliberately stays put.
Two stages share that name across different pipelines. Rename one so each name is unique within the company.
Someone renamed a stage or a disposition. That silently breaks the link.