HighLevel (GoHighLevel): show proof when a tag is added

Already tag buyers or registrants in HighLevel? Add a Webhook action to a "Contact Tag" workflow and each tagged contact shows up in your RAVE™ cards.

7 min read · Updated Oct 6, 2026

Lots of funnel builders already tag contacts in HighLevel when something happens: "Bought VIP Ticket", "Registered - Webinar Oct", "Joined Challenge". You can turn each of those tags into social proof on your pages. When the tag is added, a HighLevel workflow sends the contact to your RAVE™ campaign, and your cards show "Sarah K. from Austin just purchased VIP Ticket".

RAVE™ doesn't connect to your HighLevel account, and it doesn't need to. The workflow sends just the one contact who was tagged.

When to use this recipe

Use it when:

  • Your order forms, calendars, webinar tool or other workflows already tag contacts in HighLevel, and
  • You want those buyers or registrants to appear on your sales page, registration page or thank-you page.

If you'd rather trigger on a form or an order directly, see Send HighLevel opt-ins and orders to RAVE™. The pixel goes on your funnel pages as usual: Install the pixel on HighLevel.

What you need

  • A RAVE™ campaign that shows on your page, with the pixel installed on your funnel or website.
  • The campaign's webhook URL. In RAVE™, open the campaign and click its Sources tab (or click Sources & integrations in the sidebar and pick the campaign). Copy the URL under Webhook URL.
  • The exact tag you want to use, for example bought vip ticket. (HighLevel usually stores tags in lowercase.)

Build your URL

Add labels to the end of your webhook URL so RAVE™ knows what the tag means:

https://rave.cxformula.com/api/ingest/YOUR_CAMPAIGN_KEY?source=ghl&event=purchase&product=VIP%20Ticket
LabelWhat to putExample
eventWhat the person did. purchase shows "just purchased"; registration and signup show "just joined".event=purchase
productThe name your cards show. Use %20 for each space. Up to 120 characters.product=VIP%20Ticket
stepOptional. A short label that keeps different products from being treated as duplicates (see below).step=vip

Some ready-made examples (tag names are examples; use your own):

Tag in HighLevelAdd to your RAVE™ URL
bought vip ticket?source=ghl&event=purchase&product=VIP%20Ticket&step=vip
bought general admission?source=ghl&event=purchase&product=General%20Admission&step=ga
registered - webinar oct?source=ghl&event=registration&product=October%20Webinar
joined challenge?source=ghl&event=signup&product=5-Day%20Challenge

Step by step

  1. Create a workflow

    In HighLevel, go to Automation → Workflows and click Create workflow. Start from scratch.

  2. Add the trigger

    Click Add Trigger and choose Contact Tag.

  3. Pick your tag

    Add a filter for Tag Added and choose your tag, for example bought vip ticket. Save the trigger.

  4. Add a Webhook action

    Click + under the trigger, search for webhook and choose Webhook. Give it a name like "Send to RAVE™".

  5. Set method and URL

    Leave Method on POST and paste your labeled URL into URL, for example https://rave.cxformula.com/api/ingest/YOUR_CAMPAIGN_KEY?source=ghl&event=purchase&product=VIP%20Ticket.

  6. Add the contact fields

    Under Custom Data, click + Add item and add the keys in the table below. Then click Save Action.

  7. Publish

    Switch the workflow from Draft to Publish (top right) and save.

That's it. From now on, every contact who gets the tag shows up in your RAVE™ cards within about a minute.

What RAVE™ shows from the contact

HighLevel's Webhook already sends the contact's standard fields. Adding them as Custom Data too makes sure the right values are used:

KeyValueWhat RAVE™ does with it
first_name{{contact.first_name}}Shown on cards ("Sarah")
last_name{{contact.last_name}}Only the first letter is kept ("Sarah K."). The full last name is never stored.
email{{contact.email}}Turned into a one-way code to spot duplicates, then never shown
city{{contact.city}}Shown as the location ("from Austin")
state{{contact.state}}Added to the location ("Austin, TX")

HighLevel's Webhook also includes your own business details (your sub-account's name and address). RAVE™ ignores those, so a contact without a city never shows your business's city.

If a contact has no first name, RAVE™ still records the event using the email, and cards show "Someone". If a contact has neither a first name nor an email, RAVE™ skips it.

One URL per product, or one for everything

One workflow per tag (recommended). Each tag gets its own workflow and its own URL with its own product=. It's the easiest to read later and the hardest to get wrong.

One workflow, a product field. If you'd rather run one workflow for several tags, leave product= out of the URL and add a product key under Custom Data instead, filled from a contact field that holds the product name. You can also add an If/Else step that checks which tag the contact has and put a separate Webhook action, each with its own URL, on each branch.

Test it

  1. Use a test contact

    Create a contact with your own email (or a plus address like you+vip@example.com), a first name, last name and city.

  2. Add the tag

    Open the contact in HighLevel and add the tag, for example bought vip ticket. Make sure the workflow is published first.

  3. Check the workflow

    In the workflow's execution history, confirm the contact passed the Webhook step.

  4. Check RAVE™

    Open the campaign's Analytics. Events received and Events by type go up by one. The site's page also shows Events, last 7 days.

  5. See the alert

    Open your page. If the campaign is live, the test person appears in your cards within about a minute.

RAVE™ doesn't have a per-event log yet, so the Analytics counters are the place to confirm an event arrived. To check how the card looks without touching HighLevel, use Send test event on the campaign page.

Troubleshooting

  • Nothing shows up. Check the workflow is published (not a draft) and that the trigger filter is Tag Added with the right tag. A contact who already went through the workflow may not enter again unless re-entry is allowed in the workflow's settings; to retest, use a new contact or remove and re-add the tag.
  • Still nothing. Make sure the method is POST, you pasted the whole URL including the long campaign key, and the campaign isn't paused. A paused campaign skips webhooks.
  • The wrong product name shows. Check the product= label in that workflow's URL. Use %20 for spaces. If you send a product key in the data, remember a product= in the URL wins.
  • Names look odd, like {{contact.first_name}}. A merge field is misspelled. Copy the keys and values from the table above exactly. RAVE™ ignores unfilled merge fields.
  • Everything says "just joined". Add event=purchase to the URL.
  • The second product a person buys doesn't show. RAVE™ counts the same email doing the same thing once within the campaign's Duplicate window (minutes) (24 hours by default, on the Privacy tab). Give each product its own step=, such as step=vip and step=ga, so they count separately.
  • Staff or test contacts show on your page. Add an If/Else step before the Webhook action that skips contacts with a tag like staff or an email at your own domain. To remove someone who already went through, delete their entries by email with the RAVE™ API (see Privacy and data deletion).
  • The same person shows twice. Usually two workflows fire for the same tag, or the tag was removed and added again. Check that only one workflow sends that tag to RAVE™.
  • Agencies. Use the webhook URL from the client's own RAVE™ workspace so their events land in their campaigns.

Privacy

RAVE™ keeps only what the cards need: first name, the first letter of the last name, city and state, and the product. The email is stored only as a one-way code to spot duplicates and is never shown to visitors. Your campaign's Privacy tab can show first names only, or no names at all. More: Privacy and data deletion.

Common questions

Can RAVE™ read my HighLevel tags directly?

Not directly yet. Use a tag-triggered webhook like the one above. The upside: RAVE™ never needs access to your HighLevel account or your contact list. Only the contact who just got the tag is sent.

Is the webhook URL secret?

Treat it like a password. Anyone with the URL can send events to that campaign. If it leaks, contact RAVE™ support.

More detail on labels and event types: How webhooks work. Using ActiveCampaign too? See ActiveCampaign: show proof when a tag is added.

Was this helpful?

Can't find it?

Send us a question, a bug or an idea. It goes straight to the RAVE™ team, and you can follow its status.

Send feedback