TimelinesAI
How-to Guide

How to Connect WhatsApp to GoHighLevel: Step-by-Step Setup Guide

Install TimelinesAI in GoHighLevel, sync inbound WhatsApp activity, send from workflows, and test the integration before a full rollout.

September 1, 202610 min read
How to connect WhatsApp to GoHighLevel in four steps

GoHighLevel can run WhatsApp follow-ups without forcing your team to copy phone numbers between tools. Install the TimelinesAI app in a GHL sub-account, connect the right TimelinesAI workspace, and the integration can log inbound WhatsApp activity on contact records and send outbound messages from workflows.[1]

The setup is short. The testing matters more. A workflow that looks correct can still fail because the contact number is not in international format, the sender was disconnected, or a merge field is empty. This guide covers the install, one working workflow, and the checks to run before you enable it for a full pipeline.

This guide follows the current GoHighLevel Marketplace listing and deliberately avoids undocumented UI details. GoHighLevel can change labels, so confirm the TimelinesAI publisher name and workflow-action name before rolling the app out.

For the product overview, supported use cases, and plan options, see the GoHighLevel WhatsApp integration page.[2]

What is available in the current integration

The implementation has two GoHighLevel surfaces: contact notes for new WhatsApp activity and a Workflow Builder action for outbound text. The full shared inbox remains in TimelinesAI.

Available now

  • One location-scoped installation connects a GoHighLevel sub-account to one TimelinesAI workspace. If an agency has multiple sub-accounts, install the app on the specific sub-account you want to connect.
  • New inbound and outbound 1:1 WhatsApp messages are logged as contact notes. Each note records direction, contact, time, message text, attachment count, and a link to the full TimelinesAI thread.[1]
  • The integration matches contacts by normalized E.164 phone number. If no exact contact exists, it creates one with the source TimelinesAI WhatsApp.[1]
  • The Send WhatsApp via TimelinesAI workflow action sends text to the contact phone. You can choose a connected WhatsApp account and add an optional label; GHL resolves merge values before the action runs.[1]

Not available in the current integration

  • It does not add a shared inbox to GoHighLevel Conversations. Users open TimelinesAI for the complete thread and manual team collaboration.
  • It does not add a manual Send WhatsApp button to a GHL contact record. Native outbound sending is through the workflow action.
  • Attachment files are not copied into GHL notes. A media-only event is represented by an attachment count and a TimelinesAI link.
  • Group chats are not an advertised supported surface. Validate any group-chat use case separately rather than assuming contact-note sync.
  • The integration does not update opportunities, pipelines, tags, calendars, or custom fields, and it does not bulk-install itself across every agency sub-account.
Diagram of WhatsApp message flow through TimelinesAI to GoHighLevel contacts and workflows
Verified inbound and outbound message flow for the TimelinesAI GoHighLevel integration.

What you need before you start

Have these ready before installing the app:

  • A GoHighLevel sub-account where you can install Marketplace apps.
  • A TimelinesAI workspace with the WhatsApp number you want to use already connected.
  • One internal or test contact with a real WhatsApp number. Store it in international format, including the country code.
  • A simple workflow trigger you can fire on demand, such as adding a test tag.
  • A short test message that does not depend on custom fields you have not populated.

Use a test contact rather than a live lead. You want to see both sides of the integration before a real automation can contact customers.

Step 1: install TimelinesAI from the GoHighLevel Marketplace

Open the target GoHighLevel sub-account, then go to the Marketplace and find WhatsApp Integration by TimelinesAI. Check that the listing is published by TimelinesAI before you install it.[1]

Complete the Marketplace install flow for that sub-account.[1] The connection is location-scoped. If an agency-level install detects more than one sub-account, reinstall and choose one specific sub-account; there is no one-click bulk install across all locations.

The Marketplace listing describes the connection as a one-click authorization flow, so you should not need to copy API tokens between GoHighLevel and TimelinesAI.[1]

Step 2: connect the correct TimelinesAI workspace

After installation, follow the sign-in and connection prompts. Use the TimelinesAI account that has access to the workspace and WhatsApp number intended for this GHL sub-account.[1]

Do not rush past the account choice. Agencies often have several workspaces, client numbers, and GHL sub-accounts open in the same browser. Write down the pair you are connecting:

  • GoHighLevel sub-account
  • TimelinesAI workspace
  • WhatsApp sender number
  • Person responsible for the test

That small record makes troubleshooting much faster. It also prevents someone from testing a client workflow with the wrong WhatsApp number.

Once connected, keep the settings page open while you run the first inbound test.

Step 3: test an inbound WhatsApp message

Send a WhatsApp message to the connected number from the phone stored on your test contact.

The integration looks for a GHL contact with a matching phone number. When it finds one, it adds a note to that contact. The note should identify the sender, show the time, and include a link to the conversation in TimelinesAI.[1]

Check all four items:

  1. The note appeared on the correct contact.
  2. The phone number on the contact is in E.164 format, for example +14155550123 rather than a local format.
  3. The note contains a working conversation link.
  4. The link opens the expected WhatsApp thread in TimelinesAI.

Run a second inbound test from a number that is not in GHL. The Marketplace listing says the integration creates a new contact in E.164 format and sets the source to TimelinesAI WhatsApp.[1]

If the new contact does not appear, stop here. There is no point building outbound workflows until the account connection and phone matching work.

Step 4: create your first GoHighLevel WhatsApp workflow

Start with a workflow you can trigger manually. A test tag is safer than a pipeline-stage trigger because you can control exactly when it runs.

In GoHighLevel:

  1. Create a new workflow in the same sub-account where you installed TimelinesAI.
  2. Add a trigger such as Contact tag added and choose a tag reserved for testing.
  3. Add the action Send WhatsApp via TimelinesAI.[1]
  4. Choose the connected sender number shown in the action.
  5. Map the recipient to the contact's phone field.
  6. Write a short message. Add one reliable merge field, such as the contact's first name, only after a plain-text test succeeds.
  7. Save and publish the workflow.

A useful first message is deliberately boring:

Hi {{contact.first_name}}, this is a test message from our GoHighLevel workflow. No action is needed.

Add the test tag to your contact and watch the workflow execution. The message should arrive on WhatsApp, and the outbound activity should appear as a note on the same GHL contact.[1]

Do not start with a long sequence. Prove that one trigger and one action work. Then add delays, branches, and additional messages one change at a time.

How inbound and outbound messages appear in GHL

The integration stores message activity as contact notes.[1] That gives sales and support teams a visible CRM trail without pretending that a note is the whole conversation.

For inbound messages, the note links back to TimelinesAI. For outbound workflow messages, the sent text is mirrored to the contact record.[1]

This split is useful in practice:

  • A rep can see that a WhatsApp conversation happened while reviewing the contact.
  • A workflow owner can confirm which automated message was sent.
  • A teammate can open TimelinesAI when they need the complete thread or want to continue the conversation.

It also sets the right expectation for reporting. Build workflow reporting around GHL execution history and contact activity. Use TimelinesAI for the WhatsApp conversation itself.

Test checklist before you enable a live workflow

Run this checklist on one existing contact and one unknown number:

  • The app is installed in the intended GHL sub-account.
  • The intended TimelinesAI workspace is connected.
  • The sender number is online and available in the workflow action.
  • The existing contact's phone number uses E.164 format.
  • An inbound message creates a note on the correct contact.
  • The conversation link opens the correct thread.
  • For media-only messages, the GHL note shows an attachment count and TimelinesAI link; it does not contain a copied file.
  • An unknown number creates a new contact with the expected source.
  • The workflow sends a plain-text message.
  • The outbound message appears as a note on the contact.
  • Every merge field used in the final message has a value on the test contact.

Take a screenshot of the successful workflow execution and record the test contact, sender number, and date. That becomes the baseline when someone changes the workflow later.

Troubleshooting common setup problems

The inbound message did not appear on the contact

Check the integration connection first. Then compare the WhatsApp sender number with the contact phone field. The Marketplace listing specifies E.164 formatting for matched and newly created contacts.[1]

If the sender was unknown, search GHL for a newly created contact using the full international number. Recheck the app connection, the connected WhatsApp number, and the full E.164 value before retrying.

The workflow ran but no WhatsApp message arrived

Open the workflow execution history and confirm that the TimelinesAI action ran. Check that the selected sender is still connected, the recipient phone field is populated, and the value includes the country code.[1]

Test again with plain text and no merge fields. If that works, add fields back one at a time.

The message contains an empty or incorrect value

Open the test contact and inspect the field used by the merge value. The action can only insert data that exists on the record. Use preview or test data before publishing a message that depends on custom fields.[1]

The activity landed on the wrong contact

Compare phone fields across duplicate records and normalize inconsistent values before rerunning the test. The Marketplace listing says inbound activity is matched by phone number and new contacts use E.164 format.[1]

A media file did not appear in GHL

The current integration does not copy attachment files into a GHL note. The note records the attachment count and links to the TimelinesAI thread, where the file remains available. Test the media types your team uses in TimelinesAI before launch.

A safe rollout for sales and support teams

Once the test workflow passes, release it in stages:

  1. Enable it for an internal list or a small lead segment.
  2. Review workflow execution and contact notes after the first sends.
  3. Confirm that replies are landing on the right contacts.
  4. Give the team one rule for handoff: open the TimelinesAI conversation before sending a manual follow-up.
  5. Expand the audience only after the first batch behaves as expected.

Keep the first production workflow narrow. Appointment confirmations, lead acknowledgements, and internal test sequences are easier to verify than multi-step nurture campaigns. The integration supports merge tags and custom values, but every extra field gives you another point to test.[1]

Frequently asked questions

Can I connect an existing WhatsApp number to GoHighLevel?

The Marketplace listing requires a TimelinesAI workspace with at least one connected WhatsApp number.[1] Connect the number to the intended TimelinesAI workspace first, then install and authorize the GHL app.

Do inbound WhatsApp messages create GoHighLevel contacts?

Yes. If no contact matches the incoming phone number, the documented behavior is to create a contact with the number in E.164 format and set the source to TimelinesAI WhatsApp.[1]

Can a GoHighLevel workflow send a WhatsApp message?

Yes. Add the Send WhatsApp via TimelinesAI action, choose the sender, map the recipient phone field, and write the message. The action supports GHL merge values.[1]

Do sent workflow messages appear on the contact record?

Yes. The current Marketplace listing says outbound workflow messages are mirrored as notes on the contact record.[1]

Do I need to copy an API token into GoHighLevel?

The current Marketplace listing describes a one-click connection without manual token copying.[1]

Start with one contact and one workflow

A reliable GoHighLevel WhatsApp setup has three proofs: an inbound note on the right contact, an outbound workflow message on the right number, and a working link back to the full conversation.

Get those three working on a test contact before adding branches or larger audiences. When the setup is stable, use the GoHighLevel WhatsApp integration page to review broader product features and plan options.[2]

Sources

[1] WhatsApp Integration by TimelinesAI — GoHighLevel Marketplace

[2] GoHighLevel WhatsApp Integration — TimelinesAI