Skip to main content
12 min readSales Tools

Sales Intelligence API and Webhooks

Automate Sales Intelligence with outbound webhooks, the read-only REST API, MCP tools for AI assistants, and Zapier integration.

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.

EventFires 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
Worth knowing

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 `Manage -> Settings -> Application Settings` and switch to the `Webhooks` tab. Click `Create Webhook`, paste your destination URL, choose the events you want, and save.

  • You can have multiple webhooks for the same event
  • You can route different events to different URLs
  • Webhooks include a `webhook_event` field 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.

  • `uuid`: the lead UUID
  • `business_name`, `business_type`, `category`, `address`, `rating`, `review_count`
  • `place_id`, `cid`, `phone`, `website`, `email`
  • `discovery_source`: `self_serve_intel_form` for public-form leads, otherwise the source you used
  • `status`: current pipeline status
  • `self_serve`: present for self-serve leads, includes `name`, `role`, `consent_at`, `turnstile_verified`, `submitted_at`, `locale`
  • `report`: short summary with `uuid`, `preset_key`, `status`, and `public_url`
  • `webhook_event`: always `lead-created`
Worth knowing

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.

  • `report`: `uuid`, `preset_key`, `status`, `public_url`, `estimated_cost_usd`, `actual_cost_usd`, `completed_at`, `processing_duration_ms`
  • `lead`: `uuid`, `business_name`, `email`, `phone`, `city`, `region`, `country_code`, `place_id`, `discovery_source`
  • `webhook_event`: always `report-ready`

Connect through Zapier

If you do not want to build your own webhook endpoint, Zapier is the easiest path. The same `lead-created` and `report-ready` events are available as Zapier triggers, with sample payloads ready to use during the Zap setup.

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.

EndpointWhat 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
Worth knowing

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 `Manage -> Settings -> Application Settings -> API Tokens`, then include it in the `Authorization` header.

  • 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.

Query parameterWhat 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
Worth knowing

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.

  • Business profile: `business_name`, `address`, `rating`, `review_count`, `phone`, `website`, `place_id`
  • Contact: `email`, plus a nested `self_serve` block with `name`, `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`, and `public_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.

  • Both tools require a token with the `mcp:access` ability
  • Both tools require the caller to be the agency owner
  • Token abilities and visibility are managed from the `AI Hub` tab in Application Settings
ToolWhat it does
`list_sales_intelligence_leads`List leads with the same filters as the REST API
`get_sales_intelligence_lead`Fetch a single lead by UUID
Worth knowing

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.

  • 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

Common questions