The complete path from a new company to reps making calls, in order, with the check that proves each step worked.
This is the runbook our team follows to take a client from signup to reps dialing. Work top to bottom. Every step has a check — do not move on until the check passes, because a skipped step surfaces later as a rep saying “it isn’t working” with no obvious cause.
Time required: about 45 minutes for a straightforward client, plus 1–3 business days of waiting if they need new numbers registered for A2P 10DLC.
GoHighLevel is the booking authority. AI Sync displays the confirmed booking and its sync status; it never creates a competing calendar.
1
Open Settings → Integrations
Start the GoHighLevel connection and sign in as the client’s admin.
2
Choose the correct sub-account
Pick the location where their contacts and calendar already live. Connecting the agency account instead of the client’s sub-account is the single most common setup error, and every later step will look fine while writing to the wrong place.
3
Approve the permissions
Accept the requested scopes. If the client’s admin declines any, booking or contact sync will fail later with an authorization error.
Check: open any contact in AI Sync that also exists in GoHighLevel. The GoHighLevel contact ID should be populated. If it is blank, the connection is pointing at the wrong location.
Buy numbers in the client’s calling area codes, or import their existing Twilio numbers. See Phone Numbers.
2
Register for A2P 10DLC
Required before numbers can carry traffic reliably. Start this first — approval takes 1–3 business days and it is the usual reason a go-live slips. See 10DLC.
3
Assign the numbers to the dialer
An unassigned number will not appear in the rep’s From Number list.
4
Turn on Local Presence if they have area coverage
Matches caller ID to the lead’s area code. Only useful if they own numbers in those area codes.
Numbers on retired carriers will not dial. If a rep reports “Selected caller number is unavailable”, the number is on a deprecated carrier or is not verified — move them to a Twilio-backed number.
Check: open the dialer as a rep and confirm the number appears in the From Number dropdown.
Every pipeline gets one automatically. Confirm it is there and positioned where the client expects it.
2
Match disposition names to stage names
When a disposition and a stage share a name, a saved call moves the lead automatically. Mismatched names mean the lead stays put and someone has to move it by hand.
AI Sync pipelines and GoHighLevel pipelines are separate. Adding a stage in GoHighLevel does not create it in AI Sync, and the automatic move reads the AI Sync pipeline.
Check: save a test contact with the appointment disposition and confirm it lands in the Appointment Set stage.
Reps book onto the client’s existing GoHighLevel calendars.
1
Confirm each bookable calendar has a user assigned
A calendar with no team member assigned returns no available times, and the rep sees an empty slot list with no explanation. This is the most common booking complaint and it is always a configuration issue, never a bug.
2
Check the calendar's availability rules
Business hours, slot duration and buffers all come from GoHighLevel.
Check: on a live or test call, open the booking picker, choose each calendar the client intends to use, and confirm times appear.
3 is the right starting point. Higher numbers reach more leads per hour but increase the chance a second lead answers while the rep is already talking. Those leads go to Callbacks and must be called back.
3
Assign the reps
Only assigned reps see the list.
Check: the list shows the number of contacts you expect. A large drop means rows were rejected for invalid phone numbers.
Never share logins. Reporting, recordings and call attribution are all per user.
2
Assign roles
Roles control what each person can do in the platform. See Roles.Be straight with the client about visibility: anyone with dialer access can currently see company-wide statistics, not only their own. If they need reps walled off from each other’s numbers, raise it before handover rather than after a rep notices.
3
Have each rep test their headset
Audio Settings, select the correct microphone, place one test call to their own phone.
Check: each rep can log in, shows Ready, and their name appears in the team view.
Do not hand the client over until you have done this yourself, on a real number you control.
1
Dial your own phone from the list
Confirm it rings, connects, and the contact card appears with the right name.
2
Book an appointment
Pick a calendar and a time. Watch for “Booking with GoHighLevel…” then “Confirmed by GoHighLevel” with the correct date.
3
Verify in GoHighLevel
Open the contact there. The appointment must be on the right calendar at the right time.
4
Confirm the lead moved and left the list
They should be in the Appointment Set stage and no longer eligible for redial.
5
Check the recording
In History, play the call back and use Download to confirm the file saves. If the client also has GoHighLevel delivery enabled, check the recording there too.
If the booking status shows Needs review instead of Confirmed, stop. It means GoHighLevel’s answer was unclear and the appointment may or may not exist. Do not rebook — check GoHighLevel directly first, or you will double-book the customer.
Plus the reminder to hard refresh on the first load after any update.
Tell them two things in plain language:
Only “Confirmed by GoHighLevel” means the appointment exists. Anything else needs a human to check.
A lead who answers but does not reach the rep goes to Callbacks. The banner says which of four reasons applied. All are real pickups and someone must call them back.
An incoming call may ring and then stop. If the rep is already on a call, a second caller is passed to an AI agent or voicemail rather than interrupting. That is deliberate. Check Callbacks and voicemail.