<!-- canonical: https://opsblu.com/docs/recipes/export-to-gohighlevel/ -->
# Export a territory to GoHighLevel, HubSpot or CSV

Source: https://opsblu.com/docs/recipes/export-to-gohighlevel/

**Goal.** Move a filtered list into your CRM with phone, email, website and the OpsBlu signals as custom fields.

**For:** Any agency running outreach from a CRM (https://opsblu.com/for/web-design-agencies)

**MCP tools used:** `search_businesses`, `get_business`

**Cost.** Exports are billed per record like reveals: 500 records with 5% hot ≈ 1,675 credits ≈ $16.75. Records opened earlier in the month are free.

## REST walkthrough

### 1. Create and confirm the export

```bash
EXP=$(curl -s -X POST -H "Authorization: Bearer ob_live_YOUR_KEY" -H "Content-Type: application/json" \
  -d '{"filters":{"state":"oregon","city":"bend","cwv_fail":true,"has_email":true}}' https://opsblu.com/v1/exports | jq -r .export_id)
curl -s -X POST -H "Authorization: Bearer ob_live_YOUR_KEY" https://opsblu.com/v1/exports/$EXP/confirm
curl -s -H "Authorization: Bearer ob_live_YOUR_KEY" -o bend-cwv-fail.csv https://opsblu.com/v1/exports/$EXP/download
```

### 2. Map the CSV columns

The CSV header is stable. Map it once in your CRM importer and save the mapping.

```text
OpsBlu column          GoHighLevel field            HubSpot property
--------------------   --------------------------   -----------------------
name                   Business Name / Contact      company (or firstname)
phone                  Phone                        phone
emails (first value)   Email                        email
website                Website                      website
address, city, state,  Address, City, State, ZIP    address, city, state, zip
zip
category               Tags → "opsblu:<category>"   industry
platform               Custom field: Platform       custom: opsblu_platform
cwv_pass               Custom field: CWV pass       custom: opsblu_cwv_pass
ads_platforms          Custom field: Ads            custom: opsblu_ads
server_side_tracking   Custom field: SST            custom: opsblu_sst
hot, new_in_days       Tags → "opsblu:hot"          custom: opsblu_hot
id                     Custom field: OpsBlu ID      custom: opsblu_id (dedupe key)
```

### 3. Dedupe on the OpsBlu id

Keep `id` as a custom field and use it as the unique key on re-import. The same business is billed once per month no matter how many exports include it.

## Agent prompt

Paste into Claude, ChatGPT or Cursor with the OpsBlu MCP server connected (`https://opsblu.com/mcp`).

```text
Using OpsBlu, build a CSV of businesses in Bend, Oregon whose websites fail Core Web Vitals and that have an email on record. Tell me the credit estimate first. After I confirm, give me the download link and a GoHighLevel column mapping for the file.
```


## Gotchas

- The `emails` column is semicolon-separated; take the first value for a single-email CRM field.
- Native GoHighLevel, HubSpot, Clay and Zapier/Make/n8n integrations are Phase 3. CSV works today.
- Max 5,000 records per export. Split by category for bigger pulls.

More recipes: https://opsblu.com/docs/recipes/ · API reference: https://opsblu.com/docs/api · MCP setup: https://opsblu.com/docs/mcp · Pricing: https://opsblu.com/pricing
