Back to App
Back to Contracts

GHL Tags on Contract Events

A contract goes through clear stages: it is sent, the client opens it, reads it, signs it — or the link expires, someone cancels it, it ends up abandoned. With GHL tags on events each of these stages can add or remove a tag on the GoHighLevel contact of the lead or client. And in GoHighLevel a tag can start your workflows: an SMS, a WhatsApp message, a reminder to the salesperson.

Plan required

GHL tags on events are available on the Professional plan and above. They are managed by admins and by members with the “Can edit contract templates” permission.

What it is for

A few example rules:

SalesControl only handles the tag: what happens next is up to the GoHighLevel workflows of your agency that listen for that tag.

What you need

You can prepare the rules beforehand: the section warns you with a banner and the Go to Integrations button. While something is missing the rules are saved, but no tag is written and the log marks the action as Skipped, with the reason.

Where to set it up

On the contract template, like webhooks: each template has its own rules. In Contracts › Templates, open a template and scroll to the GHL tags on events section, right after Webhooks after signing.

Save the template first

On a brand-new template that has never been saved, the section says “Save the template to add a rule.” Save once and the Add rule button lights up.

Creating a rule

Press Add rule: the New rule dialog opens.

1. When

The contract event that triggers the rule (the list is below).

2. What to do

Add the tag or Remove the tag.

3. Tag

Free text, up to 100 characters, saved in lowercase. To avoid typos, under Suggestions from the sub-account choose a sub-account and start typing: the tags it already uses appear.

Press Save. In the Rules list each row has a switch to turn it on or off, arrows to move it, Edit and Delete. The counter at the top tells you how many you have: at most 30 rules per template, and never two with the same event, the same action and the same tag.

The events

EventWhen it fires
Contract sentOnce per contract, when it is sent.
Contract openedThe first time the signing link is opened. Later openings do not repeat it.
Contract readWhen the contract has been read for the template’s reading threshold, adding up the openings, or when the client reached the last page.
Contract signedWhen the contract is signed and the post-signing steps are done, that is after the email with the signed PDF.
Signing link expiredWhen the link expires without the contract being signed.
Contract cancelledWhen someone on the team cancels the contract.
Contract abandonedWhen the contract is marked as abandoned. A Restore does not undo an event that already fired.

Each event fires only once per contract. The tag usually reaches GoHighLevel within a couple of minutes of the event.

The reading threshold

The section has a Reading threshold (seconds) field: how many seconds of active reading it takes for the contract to count as read. It goes from 10 to 3600; left empty it means 60. It is saved with the template, so press Save on the template after changing it. Active reading means with the page in front of the reader: a tab forgotten open in the background does not count.

From when a rule applies

A rule applies to contracts sent while it is on. Creating it today puts no tags on contracts sent yesterday, not even on the ones the client opens tomorrow: no retroactive tags.

Which contact gets the tag

The GoHighLevel contact of the lead or client the contract was sent to, in your agency’s sub-account (never in one of your clients’ sub-accounts). If a client has several contracts they are still one person, and the tag goes on their single contact.

SalesControl learns which sub-account the contact is in when it comes from GoHighLevel (leads from workflows, calendar appointments, events). If the agency has a single sub-account, it uses that one. When it cannot know, the log says “It is not known which GoHighLevel sub-account the contact is in.”

A tag that is already a “tag → event” rule

If a tag is used by a GoHighLevel tag events rule on the agency sub-account, it cannot be used here: when SalesControl set it, that rule would record an extra event in the client’s Timeline. Saving is refused with an explanation: choose another tag.

The “Automations” log

To see what happened on a specific contract, open the lead’s or client’s record: on the Contracts card, next to the contract, the Automations link opens the log. The link appears as soon as at least one action has been recorded.

For each action the log shows the event that triggered it, what it does (Add the tag or Remove the tag) with the tag, the outcome, and the day and time in your agency’s time zone (for example 24/10/2026 15:42).

OutcomeWhat it means
DoneThe tag was added or removed in GoHighLevel.
In progressThe action is queued (“Queued since …”) or waiting for another attempt (“Next attempt on …”).
SkippedSomething needed was missing: the contact, the sub-account, the app or its permission. The reason is written underneath.
FailedGoHighLevel rejected the tag or did not answer even after the retries. The reason is written underneath.

When GoHighLevel does not answer or asks to slow down, SalesControl retries by itself after 2 minutes, 10 minutes, 30 minutes and 2 hours; then the action is marked as failed. A skipped action is not repeated: once the reason is fixed (for example the app reconnected), it applies to the events that come after.

Duplicating the template

Duplicate copies the rules too, but turned off: that way the copy sets no tags until you decide which ones to turn on. If the rules cannot be copied a warning says so: the template is created anyway and you add them back from the section.

Good to know