Signed webhooks, a Claude connector and a REST API (early access) over the same functions the app uses, so every number and rule matches the app.
The problems we fix for GTM engineers.
- “The MCP numbers don’t match the dashboard.”
- “There’s no public API, so we automate around the UI.”
- “Our CRM sync is a pile of Make templates.”
- “One bad loop in a script could push a client’s account way past its limits.”
Claude gets the same tools the app uses, with your permissions.
Connect Claude and it can triage the inbox, build sequences with a draft and an impact preview, check sender health, answer “why isn’t this sending?”, pull reports and recover failed leads. It works with exactly your role and client scope.
- It asks before acting. Anything that sends, enrols, suppresses, imports or exports shows a summary first, and your yes is valid for 10 minutes for that exact action.
- It triages the inbox for you. Claude reads the AI intent tags, lists the interested replies and questions, and drafts answers for you to approve.
- Reports come from the same calculations as the dashboard and the Reports page (early access).
Signed webhooks for every reply, meeting and stalled campaign.
Send outreach events to any HTTPS endpoint: invites accepted, replies classified, meetings booked, campaigns stalling, senders running dry.
- Signed: every delivery carries an HMAC-SHA256 signature of the raw body, plus an event name and a delivery id to drop duplicates.
- Retried: up to 5 attempts with the wait doubling each time, and switched off after 50 failures in a row so a dead endpoint doesn’t pile up.
- Replayable: replay any recent delivery, in the app or through the API, after your endpoint was down or you fixed a bug.
Tasks, keys, API steps and recipes for Clay, n8n, Make and Zapier.
Items marked early access are built and documented, and not yet run on live accounts.
A task queue Claude can work
tasks_list, task_create and task_complete are in the connector: ask Claude for everything waiting, have it draft the reply or log the call outcome, and close the task from the chat. task.created and task.completed webhooks keep your own tooling in step.
Learn moreThe app, the API and Claude follow the same rules
Every API call and every Claude tool runs the same database function the app runs for that action. It adds nothing on top and skips nothing, so the rules match everywhere.
Learn moreKeys, scopes and idempotency
A key carries a role (manager, member or client viewer) and an optional client scope, and never does more than the teammate who made it. Idempotency-Key on every write; an OpenAPI spec for Postman or Swagger.
Learn moreSteps that call your stack
A Call webhook step sends a signed event mid-sequence; a Call API step makes an HTTP request with lead variables and branches on errors. Auto-enrol rules top up a campaign from a list or filter, with a daily cap and a run log.
Learn moreRecipes for Clay, n8n, Make and Zapier
Interested reply to Slack or your CRM, new sheet row to enrolment, found email to lead, meeting booked to deal. All plain HTTP over the API and webhooks, no native app needed.
Learn moreBring your own dashboard Early access
Build internal dashboards that never disagree with the app.
GET /reports/overview, /funnel, /intents, /cost, /sequences, /senders and /clients return what the Reports page shows, from the same functions, so a Grafana, Metabase or Retool board shows the same numbers. GET /metrics/definitions gives you every metric’s definition. 600 reads an hour per key, and a client-scoped read-only key for anything client-facing.
Every reply reaches your webhook already classified, with intent, confidence and a one-line summary.
The message.classified event can open a CRM deal or ping Slack without you writing a classifier.
Pacing and account health, handled for you under every call.
Warm-up, working hours, human-like spacing and health-based slow-downs run under the app, the API and Claude, so your scripts only decide who to reach.
How we keep accounts healthyRead it before you trust it
Every event, route and tool is documented.
The API guide, the OpenAPI file, the webhook event list and the full Claude tool reference are public. Payloads carry ids, not full records; fetch the detail with the lead or thread routes.
10 senders on Enterprise: $550 / month$55 per sender, billed monthly. 10% less billed quarterly, 20% less billed yearly. Up to 50% off lifetime deal, limited seats.
Signed webhooks, the public API (early access) and the Claude connector included. No per-user fees.
Switching from another tool?
Honest, dated comparisons, and help moving your campaigns.
Questions people ask before they start.
What are the rate limits?
API: per key per hour, 600 reads, 300 writes and 60 spend calls (enrol, recover, enrich, activate). Claude: per person per hour, 600 reads, 120 changes, 60 bulk and 20 confirmed actions. These protect the service; sending limits are separate and can’t be raised by any number of calls.
Which plan includes the API?
The public API (early access) and signed webhooks are on Enterprise. The Claude connector is on every plan.
Does the connector cost extra?
No. The Claude connector is included on every plan and works with exactly your role and client scope.
Is the API complete, or a subset?
It covers leads, enrolments, sequences (activate, pause, stats, why-not-sending), inbox, senders, reports and webhooks. Building and publishing sequences, connecting senders and changing caps are not in the API; do those in the app or through Claude.
Can a script or an agent get around the limits?
No. Caps, warm-up, working hours, health, reply-stop and blacklists are enforced in the database under the app, the API and Claude alike. There is no flag to turn a cap off.
Can I self-host anything?
There’s no self-hosted edition: campaigns run in our cloud so the limits are enforced in one place. What you host is your side: webhook endpoints, n8n, Clay tables and scripts that call the API.
Which events can I subscribe to?
Lead, invite, message, email, enrolment, task and meeting, sequence and sender events, including message.classified for new interested replies and sequence.stalled and sender.running_dry for alerts. The full list is in the webhooks guide.
GrowthxAI Outreach