Connection settings & stage mapping
Every connection has its own settings, on the Settings tab of the connection. They decide who the imported leads belong to, what happens when a lead already exists, and which Booked55 pipeline stage each GoHighLevel stage lands on.
Settings reference
| Setting | What it does |
|---|---|
| Label | The connection's name in the Integrations list. |
| Active | Switches the connection on or off. While it is off, Booked55 answers 404 to GoHighLevel and stores nothing. |
| Acting user | The Booked55 user that everything the connection creates is recorded as created by. Defaults to whoever created the connection. |
| Assignee | Who the imported contact, its pipeline item, and its note tasks are assigned to. Defaults to the acting user. |
| Product/Service type | Optional. Set on every new contact the connection creates. |
| Tags to add | Added to every imported contact, on top of the tags carried over from GoHighLevel. |
| When a contact already exists | Update and append (default), Skip, or Always create. See below. |
| Notes | Create note tasks (default) or Don't import notes. |
| Contact already on a pipeline | Move to the mapped stage (default) or Leave where it is. See below. |
| Default pipeline and stage | Optional. Used when no stage mapping row matches the incoming event. |
| Stage mapping | Rows that translate a GoHighLevel pipeline and stage into a Booked55 pipeline and stage. See below. |
| Credentials | The optional Private Integration Token. |
When a contact already exists
Before it creates anything, Booked55 looks for a matching contact in your workspace, in this order:
- The GoHighLevel contact id, which Booked55 remembers on the contact after the first import.
- The email address, compared lower-cased.
- The phone number, compared by digits in a few common formats.
The phone rule cuts both ways: two GoHighLevel contacts that share a number, such as an office line, are one contact to Booked55. Give them different numbers in GoHighLevel, or set the connection to Always create, if they must stay separate.
What happens next depends on the setting:
- Update and append (default) — Fills in fields that are empty, adds new tags and phone numbers, appends notes, and moves the pipeline stage if a mapping applies. It never overwrites a field that already has a value, and never changes the contact's email or assignee.
- Skip — Records the event and changes nothing. The event is marked
skippedwith the reasonduplicate_contact. - Always create — Creates a new contact every time, even when one matches. Use it only if every GoHighLevel opportunity should be its own Booked55 contact.
Stage mapping
GoHighLevel tells Booked55 which pipeline and stage the opportunity is in. Stage mapping translates that into a Booked55 pipeline and stage. Each row has four fields:
| Field | Notes |
|---|---|
| GoHighLevel pipeline name | Optional. Leave it blank to match the stage name in any GoHighLevel pipeline. |
| GoHighLevel stage name | Required. |
| Booked55 pipeline | The pipeline the contact is placed on. |
| Booked55 stage | The stage within that pipeline. |
Names are matched case-insensitively after trimming whitespace, so “Appointment Booked” and “appointment booked” are the same stage. Beyond that, the names must match what GoHighLevel sends exactly.
How a stage is resolved
- If a mapping row matches the incoming pipeline and stage, the contact goes to that row's Booked55 pipeline and stage.
- Otherwise, if a default pipeline and stage is set, the contact goes there.
- Otherwise the contact is imported with no pipeline item. It exists in Contacts but is not on any pipeline.
Contact already on a pipeline
A contact can be on only one pipeline at a time in Booked55. When a matched contact already has a pipeline item, this setting decides what the incoming event does with it:
- Move to the mapped stage (default) — The contact is moved to the stage the mapping resolved to.
- Leave where it is — The contact keeps its current pipeline and stage. The rest of the update still applies.
This only comes into play under Update and append. Skip never touches an existing contact, and Always create makes a new one.
Suggested names
Once the connection has received real events, the mapping editor suggests the GoHighLevel pipeline and stage names it has seen in them, so you can pick a name instead of typing it. The suggestions only reflect what has actually arrived: send a lead through the workflow first, then map it. Test events are not used for suggestions.
Worked example
Your GoHighLevel pipeline is called Sales and the stage that should hand a lead to sales is Appointment Booked. In Booked55 those leads belong on the Sales Process pipeline at the Appointment Set stage. The mapping row is:
| GoHighLevel pipeline | GoHighLevel stage | Booked55 pipeline | Booked55 stage |
|---|---|---|---|
| Sales | Appointment Booked | Sales Process | Appointment Set |
When an opportunity in the Sales pipeline reaches Appointment Booked, the workflow fires and the contact appears on Sales Process at Appointment Set, assigned to the connection's assignee. If you later add a second GoHighLevel pipeline with its own Appointment Booked stage, either add a row for it or blank the pipeline name on this row so it matches both.
Private Integration Token
The webhook carries at most one note. If you want a lead's full note history from GoHighLevel to come across too, give the connection a Private Integration Token. With it, Booked55 pulls every note on the contact from GoHighLevel and adds each one as a completed note task. Without it, only the note carried in the webhook itself is imported, and often there is none.
- 1
Open Private Integrations in GoHighLevel
In the GoHighLevel sub-account (location) the workflow belongs to, go to Settings → Private Integrations and click New.
- 2
Name it and pick the scope
Give the integration a name such as "Booked55". Under scopes, select View Contacts (contacts.readonly). Nothing else is needed: Booked55 only reads contacts and their notes.
- 3
Copy the token
GoHighLevel shows the token when the integration is created. Copy it.
- 4
Paste it into the connection
In Booked55, open the connection, go to the Settings tab, and paste the token under Credentials → Private Integration Token. Save.
The token is stored encrypted and is never shown again once saved. Booked55 uses it for one thing only: reading contacts and their notes. To change it, replace it with a new one.
For what happens to each event after these settings are applied, see Event log & troubleshooting.
Ready to get started?
Create your free Booked55 account and start managing your sales pipeline in minutes.