Sales Intelligence has three ways to talk to the rest of your stack. Outbound webhooks fire whenever a lead is captured or a self-serve report finishes. A read-only REST API and a set of MCP tools let your own systems, AI assistants, or Zapier flows pull lead data on demand.
All of these are owner-level controls. The agency owner generates tokens, registers webhooks, and decides which events flow out. Sales agents can use Sales Intelligence inside the app, but the automations stay with you.
Webhooks at a glance
#A webhook is a URL on your side that the platform calls with JSON whenever an event happens. You decide which events you want to subscribe to and where the platform should send the data.
Steps and details · includes a table
In the Create Webhook modal these appear under the Sales Intelligence group as Lead Created and Report Ready; the JSON webhook_event values are lead-created and report-ready.
| Event | Fires when |
|---|---|
lead-created | A new lead is added to the pipeline (manual save or self-serve form submission) |
report-ready | A self-serve report finishes generating and the prospect is about to receive the report-ready email |
Event · Fires when
lead-created- A new lead is added to the pipeline (manual save or self-serve form submission)
report-ready- A self-serve report finishes generating and the prospect is about to receive the report-ready email
Both events are restricted to the agency owner because lead data is sensitive. You will not see them in the webhook manager if you are signed in as a sales agent.
Register a webhook
#Open Platform -> AI & Automation -> API & Webhooks and switch to the Webhooks tab. Click Create Webhook, paste your destination URL, choose the events you want, and save.
Steps and details
- You can have multiple webhooks for the same event
- You can route different events to different URLs
- Webhooks include a
webhook_eventfield in the JSON body so a single endpoint can dispatch internally - A failed delivery is retried with backoff so transient errors do not silently drop
Sample payload: lead-created
#The payload includes the business profile, basic contact information, and a short summary of the linked report. The full lead record with contact details is available through the REST API if you need more depth.
Steps and details
uuid: the lead UUIDbusiness_name,business_type,category,address,rating,review_countplace_id,cid,phone,website,emaildiscovery_source:self_serve_intel_formfor public-form leads, otherwise the source you usedstatus: current pipeline statusself_serve: present for self-serve leads, includesname,role,consent_at,turnstile_verified,submitted_at,localereport: short summary withuuid,preset_key,status, andpublic_urlwebhook_event: alwayslead-created
For privacy, the webhook self-serve block intentionally does not include the contact phone or email. Use the REST API or MCP tool to fetch the full lead record when you need those.
Sample payload: report-ready
#This event fires when a self-serve report finishes. Use it to add the prospect to a CRM, kick off a follow-up sequence, or send a Slack message to the sales team.
Steps and details
report:uuid,preset_key,status,public_url,estimated_cost_usd,actual_cost_usd,completed_at,processing_duration_mslead:uuid,business_name,email,phone,city,region,country_code,place_id,discovery_sourcewebhook_event: alwaysreport-ready
Connect through Zapier
#If you do not want to build your own webhook endpoint, Zapier is the easiest path. Both events can be subscribed to from Zapier. Only lead-created returns sample rows in Zapier's Test trigger step. For report-ready, generate a real report to see live data.
Steps and details
REST API at a glance
#The Sales Intelligence API is read-only and lives under the /api/agency/v1 namespace on your white-label domain. It is designed for syncing leads into a CRM, building internal dashboards, or running scheduled reports.
Steps and details · includes a table
| Endpoint | What it returns |
|---|---|
GET /api/agency/v1/leads | A paginated list of leads with optional filters |
GET /api/agency/v1/leads/{uuid} | A single lead with the full self-serve contact block and the linked report |
Endpoint · What it returns
GET /api/agency/v1/leads- A paginated list of leads with optional filters
GET /api/agency/v1/leads/{uuid}- A single lead with the full self-serve contact block and the linked report
Both endpoints require a Sanctum token belonging to the agency owner. A sales agent token cannot read the leads API.
Authenticate API requests
#API calls use a Sanctum bearer token issued to the agency owner. Generate the token from Platform -> AI & Automation -> API & Webhooks -> API Tokens, then include it in the Authorization header.
Steps and details
- Generate the token as the agency owner
- Send it as
Authorization: Bearer YOUR_TOKEN - Tokens can be revoked at any time from the same settings page
Filter the leads endpoint
#The list endpoint supports a small set of filters that are usually enough for syncing into a CRM or building a dashboard.
Steps and details · includes a table
| Query parameter | What it does |
|---|---|
date_from | ISO date, only leads created on or after this date |
date_to | ISO date, only leads created on or before this date |
business_name | Partial match on the business name |
status | Pipeline status, for example qualified |
include_outbound | Set to true to include outbound leads, otherwise only self-serve leads are returned |
per_page | Page size, 1 to 50 |
page | Page number |
Query parameter · What it does
date_from- ISO date, only leads created on or after this date
date_to- ISO date, only leads created on or before this date
business_name- Partial match on the business name
status- Pipeline status, for example
qualified include_outbound- Set to true to include outbound leads, otherwise only self-serve leads are returned
per_page- Page size, 1 to 50
page- Page number
By default the endpoint only returns self-serve leads because those are the ones automation usually cares about. Pass include_outbound=1 if you want everything.
What the leads endpoint returns
#The response is a standard Laravel paginated resource collection with data, links, and meta. Each item in data includes the full lead record.
Steps and details
- Business profile:
business_name,address,rating,review_count,phone,website,place_id - Contact:
email, plus a nestedself_serveblock withname,role,phone,email,form_slug,consent_at,submitted_at,locale,turnstile_verified - Sales context:
status,opportunity_score,discovery_source, timestamps - Linked report: present when a report exists, includes
uuid,preset_key,status, andpublic_url
API rate limits
#The API uses the standard Laravel throttle:api limiter, which is shared across all of your /api traffic. For most workflows this is comfortable and does not need tuning.
MCP tools for AI assistants
#MCP (Model Context Protocol) is how AI assistants like Claude can call your platform safely. EmbedMyReviews exposes Sales Intelligence as two MCP tools so an agent can fetch and inspect leads without you giving it broad database access.
Steps and details · includes a table
- Both tools require a token with the
mcp:accessability - Both tools require the caller to be the agency owner
- Token abilities and MCP visibility are managed from
Platform -> AI & Automation -> API & Webhooks, on theAI Hubtab. The deeper AI Hub dashboard lives atResources -> Developer -> AI Hub.
| Tool | What it does |
|---|---|
list_sales_intelligence_leads | List leads with the same filters as the REST API (the business-name filter is named search here rather than business_name) |
get_sales_intelligence_lead | Fetch a single lead by UUID |
Tool · What it does
list_sales_intelligence_leads- List leads with the same filters as the REST API (the business-name filter is named
searchhere rather thanbusiness_name) get_sales_intelligence_lead- Fetch a single lead by UUID
MCP makes it easier to wire Sales Intelligence into AI workflows without writing a custom adapter. The same data the REST API exposes is available, just shaped for an AI agent to use.
Security checklist
#Webhooks and API tokens carry real lead data. Treat them like production credentials.
Steps and details
- Only the agency owner should generate tokens or register webhooks
- Rotate tokens after staff changes or any suspected leak
- Use a secret value in your webhook URL or a verification header on your side so you can confirm the origin if you ever need to
- Keep the destination URL on HTTPS at all times