Connect GoHighLevel
You'll save visitors' answers to your GoHighLevel location and use their existing fields and tags to personalize your website.
Connect GoHighLevel to save visitors' answers to the location that holds your contacts. You can use those answers in your follow-up, and use an identified contact's existing fields and tags to show them relevant content on your website.
Connect GoHighLevel
You'll need permission to manage your RightMessage project's integration and authorize the intended GoHighLevel location or sub-account. The connection searches that location, not every contact across your agency.
Each RightMessage project connects to one email platform or CRM at a time. Review where you use an existing connection before replacing it.
- Open your RightMessage project settings and choose Integration.
- On Email platforms & CRMs, select GoHighLevel.
- In Overview, click Connect to GoHighLevel.
- Sign in to GoHighLevel if prompted. Choose the account or location that should supply this project's contacts and approve access.
- Return to RightMessage and check for Connected to GoHighLevel and a healthy connection.
GoHighLevel uses OAuth. Authorization saves the location details, so you don't paste an API key, access token, refresh token, or Location ID into this screen. If you see No location ID configured, reconnect and include the intended location when authorizing. There's no separate Location ID field to fill in afterward.
Prepare a test contact in that location and a page with the RightMessage snippet installed.
Recognize subscribers from email links
RightMessage reads ghl_id from a URL parameter or cookie. The value is the GoHighLevel contact ID, not the location ID.
Add it to your website links in GoHighLevel emails. For example, a link to WorkForge (opens in a new tab) could be:
Use your own page URL. GoHighLevel fills in {{contact.id}} with the recipient's contact ID at send time. Its merge-field example (opens in a new tab) uses that same field. If the URL already has a query string, append &ghl_id={{contact.id}} instead of another ?.
Send the email rather than testing the unresolved template. The delivered link needs to reach a page with RightMessage installed, and its ID must belong to the connected location.
- Give your test contact a distinctive tag or field value in GoHighLevel.
- Send them the email with the identifying link.
- Open the delivered link in a fresh browser session.
- Check the contact and their GoHighLevel data in the on-site debugger.
- Visit another page in the same browser without the parameter. RightMessage remembers that browser. Another browser or device needs its own identification.
A configured identifying Email question or RightMessage form can identify someone too. For an existing contact, the generic email parameter can look up a URL-encoded email address. Opening that link doesn't create a new GoHighLevel contact.
Choose what to sync
RightMessage reads native contact details, custom fields, and tags. Map choice answers to custom fields or a tag per answer. Typed answers can use native or custom fields in the picker, with the native-field limitation below.
Custom fields must exist in GoHighLevel's field catalog. Typing a label in another tool doesn't make it a RightMessage destination.
- Open Questions, select your question, and choose Sync with GoHighLevel.
- For a choice question, select the field or tag option in Sync mode. Single-answer questions default to a field. Multiple-answer questions prefer tags when available.
- In field mode, select Destination and fill in Answer → value. In tag mode, choose an existing tag for each answer. For a typed question, select a compatible field.
- To collect new contacts, open the Email question's Setup and enable Identify the visitor. Choose Create/Update contact in Contact action, or Add to tag and select its destination.
- Click Publish when you're ready to make the question and flow changes live.
You don't need a form or list for Create/Update contact. A tag action needs at least one destination. The connection doesn't offer a hosted-form or list signup destination. If you show a consent checkbox, leaving it unchecked keeps the response without identifying the visitor or sending data to GoHighLevel.
Pick a field that accepts your answer
The native-field catalog includes First Name, Last Name, Full Name, Email, Phone, Address, City, State, Postal Code, Website, Timezone, Company Name, Country, and Gender. Email identifies the contact. Don't use a tag action to change it.
For Name and Address questions, One field per part saves the collected parts to separate destinations. Choice questions use custom fields rather than the native-field group.
To create a text field, choose New GoHighLevel custom field, enter Field Name using letters, numbers, and underscores, then click Create. Create specialized field types in GoHighLevel first. Single-option and radio fields offer their existing options. Checkbox fields offer Yes and No. Other types appear as text, so check that numeric, date, and multiple-option fields accept your mapped values.
Follow Map answers to contact fields and tags for multiple-answer values, tag removal, and switching modes. Keep answer tags separate from unrelated workflow tags. Save an Other answer's write-in to a separate field under Save write-ins to GoHighLevel.
This connection doesn't provide outgoing event or automation-enrollment actions, event-history conditions, or purchase-history conditions.
Check fields sent with a tag action
When a tag action receives an existing contact ID, it adds the tags but doesn't apply accompanying custom or native field updates. It can still report those fields as updated. Check the fields on the GoHighLevel contact itself rather than relying on that report.
Check the connection
- On the live website, submit a mapped answer as your identified test contact.
- Open that contact in the connected GoHighLevel location and check the field value or tag.
- Submit a signup with a second email address you control.
- Check that the contact action created a new record in the same location.
Matching mapped values can put an identified visitor into RightMessage segments on later visits. Passive synchronization preserves a nonempty GoHighLevel field, while a new answer submission can change it. This doesn't import all contacts or rewrite historical answers.
If a field or tag is missing from the picker, use Clear Cache in Overview, then reopen the picker. If authorization expires, use Reconnect to GoHighLevel. If the wrong contact or no contact appears, check the location, delivered ID, and any identity already remembered by the browser before changing mappings.
When GoHighLevel data reaches your website and the submitted answer reaches the intended contact, the connection is working. Use Verify an integration change for a repeatable check of existing contacts and new signups.