Signed webhooks, a Claude connector and a REST API (early access) over the same functions the app uses, with safety limits enforced underneath all of them.
Sound familiar?
- “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.”
Webhooks you can build on.
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.
A Claude connector that isn’t a toy.
Connect Claude and it gets the same tools the app uses: inbox triage, sequence building with a draft and an impact preview, sender health, “why isn’t this sending?”, reports and failed-lead recovery. 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 can’t raise limits, connect senders, or send an AI-written line nobody approved.
- Reports come from the same calculations as the dashboard and the Reports page (early access, until our parity test passes on the live connector).
The rest of the toolkit.
Items marked early access are built and documented, and not yet run on live accounts.
Same functions, three surfaces
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 moreYour script can’t push a sender past its limits. The budgets are enforced below the API.
Daily caps, warm-up, working hours, sender health, reply-stop and blacklists live in the database, under the app, the API and Claude alike. There is no flag to turn a cap off, and enrolling always goes preview, then commit, so a suppressed or recently replied lead is caught before anything sends.
Safety you don’t have to build yourself.
New senders start at 4 invites a day and earn more after 14 healthy days in a row. Every sender has daily limits that nobody can switch off: not your team, not your scripts, not Claude, not us. Activity runs only in working hours, spaced like a person, and slows down on its own if health drops.
See the exact limits we useRead 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 Agency Plus: $550 / month$55 per sender, billed monthly. About 20% less on annual.
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.
Frequently asked questions
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 Agency Plus. 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.