SearchOps

SearchOps + HubSpot

Keep each client's local search health on their HubSpot company record, open a renewal-risk deal when they slip, and log every piece of work you did.

WebhooksVia Zapier, Make or n8n

If your agency runs on HubSpot, that's where account health should live. A monthly Zap writes each client's Business Profile results and ChatGPT visibility to company properties, so HubSpot lists, reports and health scores can use them. Confirmed Map Pack losses open deals in a retention pipeline, and every finished SearchOps task becomes a note on the timeline your account team already reads.

Health on the company record

Calls, direction requests, action rate and ChatGPT visibility as company properties, updated monthly.

Churn risk before renewal

A confirmed Map Pack loss opens a deal in your retention pipeline with the evidence attached.

Upsell lists that build themselves

Filter companies whose ChatGPT visibility is low: that's your AI visibility campaign list.

A timeline of the work

Each completed SearchOps task lands as a note, ready for QBRs and renewals.

Recipes

What agencies build with HubSpot

Monthly local search health on the company

GET /profile/performance, /ai-visibility

Agencies that score account health in HubSpot

Schedule
Monthly
SearchOps API
Results + ChatGPT
Update Company
Custom properties
  1. 1Create company properties: SearchOps calls (month), direction requests, action rate, ChatGPT visibility.
  2. 2Zapier Schedule monthly; API by Zapier GET /locations/{id}/profile/performance?months=1 and /ai-visibility?engine=chatgpt.
  3. 3HubSpot: Find Company by the client's name or domain, then Update Company with the numbers.
  4. 4Use the properties in lists, dashboards and your health score.

Map Pack loss opens a retention deal

geo_grid.moved

Account directors protecting renewals

Confirmed loss
geo_grid.moved, down
Find Company
By business name
Create Deal
Retention pipeline
  1. 1Catch Hook fed geo_grid.moved, filtered to Data Direction equals down.
  2. 2HubSpot: Find Company by {{location.business_name}}.
  3. 3HubSpot: Create Deal "{{data.keyword}}: lost {{data.points_lost}} grid points" in the retention pipeline, associated with the company, {{data.keyword_url}} in the description.

Every task done, on the client's timeline

task.completed
Task done
task.completed
Find company
Or Zapier, n8n
Note
Company timeline
  1. 1Relay fed task.completed.
  2. 2Find the company, then create a note: "Done: {{data.title}}" with {{data.task_url}}.

Setup

Connect HubSpot, step by step

  1. 1

    Start a relay

    For events, create a Zap with Webhooks by Zapier Catch Hook (or a Make or n8n webhook). For monthly health, start with Schedule by Zapier and API by Zapier, sending your SearchOps API key as a Bearer header.

  2. 2

    Add the webhook in SearchOps

    In SearchOps, open Developers, then Webhooks, and choose Add webhook. Paste the URL from the relay, tick the events you want and, for a client-specific workflow, pick that client's locations. Save, and copy the signing secret somewhere safe: it is shown once.

  3. 3

    Send a test event

    Back in SearchOps, press Send test on the endpoint. The test event has the same envelope as real events but a short sample body. To map review or scan fields, wait for a real event of that type or replay one from Deliveries, then use that as your sample.

  4. 4

    Match the client company

    Add HubSpot, Find Company, searching by the business name from location.business_name or by domain. Keeping company names in HubSpot in line with your SearchOps locations makes this reliable.

  5. 5

    Write the record

    Add HubSpot Update Company, Create Deal or Create Engagement (note), associated with the company found in the last step.

Field reference

The fields you'll map most

From the SearchOps webhook payload. Every event also carries type, id, created_at and the location's id and business name.

FieldUse it for
typeRoute by event: geo_grid.moved, scan.completed, profile.changed, task.created, task.planned, task.completed, review.created
location.business_nameWhich client or branch it is about
data.directionup or down: a grid move beyond normal re-run swing (geo_grid.moved)
data.points_gained / data.points_lostHow many grid points entered or left the top 3 (geo_grid.moved)
data.keyword / data.engine_labelThe keyword and engine: Google Maps, Google Search or AI Mode
data.share / data.share_low / data.share_highShare of answered grid points in the top 3 (or named, for AI Mode), with its likely range
data.keyword_url / data.scan_urlOpen the keyword's grid history or the scan in SearchOps
data.field_label / data.before / data.afterWhat changed on the Business Profile (profile.changed)
data.changed_bygoogle or someone_else: who changed the profile
data.kind / data.severityverification or duplicate, and how serious the change is
data.title / data.completed_at / data.task_urlA task and when it was done: your proof of work (task.created, task.planned, task.completed)

What you need

  • SearchOps Pro, Agency or Enterprise. Webhooks and the API are included; an owner or admin sets them up.
  • A relay: Zapier (paid plan for webhooks), Make or n8n.
  • HubSpot: custom company properties and deals work on any HubSpot plan the relay can connect to.

Steps checked against the vendor's own documentation on 12 October 2026. Tools change their menus often; if a step no longer matches, the help article has the latest.

FAQ

SearchOps and HubSpot

Can SearchOps numbers feed a HubSpot health score?

Yes. Write them to custom company properties monthly through Zapier, Make or n8n, and HubSpot can use them in lists, reports and scoring like any other property.

Why not HubSpot's own webhook trigger?

It needs a Professional or Enterprise plan and only enrols records that already match a property you send, so it can't look a company up by name. A relay finds the company and updates it reliably.

Can I use Make or n8n instead of Zapier?

Yes. Both connect to HubSpot, and both can call HubSpot's API directly with a private app token if you prefer.

Start tracking your real rankings today

See where you actually rank on Google Maps, not where Google tells you. Pick the plan that fits and start tracking from day one.