Skip to content
Integration

GoHighLevel to RankUpside: won opportunities in your SEO report

GoHighLevel connects to RankUpside by webhook. A workflow that fires when an opportunity is won posts the deal's value, date, landing page and source to the client's RankUpside webhook. RankUpside matches it to the landing page and splits it across that page's searches, so the SEO report shows which searches brought paying customers.

What it doesn't do: There's no native GoHighLevel app or marketplace listing. You build one workflow per client sub-account, and RankUpside doesn't write anything back to GoHighLevel.

Updated

Won opportunity → client report

One workflow per client sub-account

Example
  1. TriggerOpportunity Status ChangedMoved to status: Won
  2. ActionCustom Webhook · POSThttps://rankupside.com/api/hooks/revenue
  3. AuthorizationBearer Tokenrk_•••• (the client site's key)
  4. In RankUpsideMatched to the landing page and its searches

The workflow, step by step.

Trigger and action names are HighLevel's, checked in its help center on Oct 22, 2026. If your account shows different names, the setup is the same: fire on a won opportunity, POST JSON with the key. Webhook

  1. Step 1: Create a workflow with the Opportunity Status Changed trigger

    In the client's sub-account, start a new workflow and add the Opportunity Status Changed trigger. Add the filter Moved to status: Won, so it fires only for won opportunities.
  2. Step 2: Add a Custom Webhook action

    Add the Custom Webhook action and set Event to CUSTOM, Method to POST and Content-Type to application/json. HighLevel bills Custom Webhook as a paid add-on action, so check how your account is billed for it.
  3. Step 3: Point it at the client's RankUpside webhook

    Set the URL to https://rankupside.com/api/hooks/revenue. Choose Bearer Token authorization and paste the client site's key from RankUpside's Client settings › Leads & revenue.
  4. Step 4: Map the fields in the raw body

    Fill the JSON body with the opportunity's ID and value, status won, and the contact's landing page and source fields. Pick each value with HighLevel's dynamic value picker. Leave the date out: the deal is dated the day it arrives.
  5. Step 5: Test, then publish

    Run a test from the workflow, then check that the deal shows under Recent deals in RankUpside. Publish the workflow once it arrives.

Field mapping.

The JSON the Custom Webhook sends. Values in angle brackets come from HighLevel's dynamic value picker.

RankUpside webhook fields and the GoHighLevel value for each
RankUpside fieldGoHighLevel valueNote
idOpportunity IDSending it again updates the deal
dateLeave it outThe deal is dated the day the workflow fires, the day it was won
amountOpportunity valueRequired
statuswonOr leave it out; blank reads as won
landing_pageThe contact field holding the landing pageFrom the form snippet
sourceThe contact's sourcePaid and Maps sources stay out of search revenue
phone, emailContact phone or emailOptional, to match calls
{
  "id": "<opportunity ID>",
  "amount": "<opportunity value>",
  "status": "won",
  "landing_page": "<your landing_page contact field>",
  "source": "<your lead_source contact field>",
  "email": "{{contact.email}}"
}
Sample body. Keep the field names exactly as shown.
Start free trialStarts with one read-only Google sign-in. No card.

Getting the landing page into GoHighLevel.

A deal without a landing page can't be tied to searches. Forms placed directly on the client's site get landing_page and lead_source from the form snippet; map them to contact custom fields. HighLevel forms embedded in an iframe can't be reached by the snippet, so pass the values into the form's URL instead.

What shows up in the report.

Each won opportunity is matched to its landing page and split across that page's searches by click share. Searches Google hides keep their own line, so no visible search is over-credited.

More on this:Revenue by searchClick-share attribution

Searches behind the revenueSample$5,390 from 3 won jobs. Sample data · fictional deals.
SearchClicksShare of page clicksAllocated
gutter repair fairview/services/gutter-repair318%$150
gutter guard installation/33%$121
fairview gutter repair/services/gutter-repair212%$100
gutter cleaning fairview/blog/gutter-cleaning-fairview-cost1225%$85
2 more buyer searches5$102
Other searches and searches Google hides$4,832

No Custom Webhook on the account?

Export won opportunities as a CSV and upload it in client settings. The importer recognizes common export headers, and re-uploading updates deals instead of doubling them. CSV import.

More on this:Webhook referenceWebhook docsRankUpside for local SEO agenciesCallRail

GoHighLevel questions.

Does RankUpside have a GoHighLevel integration?
Yes, by webhook. A GoHighLevel workflow posts each won opportunity to the client's RankUpside webhook. There's no native app to install.
What does the GoHighLevel workflow need to send?
A JSON body with the opportunity's id, amount, landing page and source, plus the header Authorization: Bearer with the client site's key. Status and date can be left out: a missing status reads as won, and a missing date as the day the deal arrives.
Where does the landing page come from?
From a contact field. The RankUpside form snippet adds landing_page to forms on the client's site; map it to a custom field in GoHighLevel. Forms embedded in an iframe need the value passed in another way.
Can I connect calls from GoHighLevel?
Calls from CallRail or WhatConverts post to the lead webhook directly. For calls tracked inside GoHighLevel, a workflow can post to the generic lead webhook with id, date, type, landing page and source.
One workflow for every client?
One per client sub-account, because each client site has its own key. The workflow itself is the same; only the key changes.

Connect a client and see their first report.

The first report builds from 13 weeks of Search Console history as soon as you connect. Start with 3 client sites.

What your client sees each weekSample data
Oxbow & Vane

Weekly search report · Copperline Gutters

Sep 14 – Oct 11, 2026 vs the 4 weeks before

Copperline Gutters got 27 clicks from named buyer searches in the last 4 weeks, up 23% from the 4 weeks before. Google hides the search terms behind 84% of all 289 search clicks. Rankings rose across the site: pages that steadily show up are up about 2.4 positions.

Buyer clicks23%
27from 22
All search clicks14%
289from 253