Your data is not hostage
Everything a workspace member can do in the app is available through a documented public API, one MCP tool per operation, and read-only SQL over your own workspace. Automate it, script it, or hand it to an agent.
A public API by default
Procedures are exposed unless there is a concrete safety reason not to. Campaigns, Unibox, dialer, inboxes, workflows, warmup, and domains are all addressable.
An MCP server for agents
One tool per documented operation, scoped to an API key's workspace and permissions, so an agent can only do what that key can do.
SQL over your workspace
Read-only queries over curated, tenant-scoped views with a powerless database role. Credential columns are never in the views.
If you can do it in the app, you can do it with a key
The public API is an explicit allowlist that defaults to public: hundreds of documented operations generated from the same schemas the app uses, so the contract cannot drift from the product. API keys carry scoped permissions that mirror workspace roles, and every request is evaluated against local RBAC.
- OpenAPI contract generated from the app's own input schemas
- Campaigns, leads, Unibox, dialer, inboxes, workflows, warmup, domains
- Scoped API keys with the same permission model as workspace roles
- Cross-tenant and credential-ingesting endpoints deliberately excluded
Give an agent the same workspace, nothing more
The remote MCP server registers one tool per documented operation. Connect it with an API key and the session is bound to that key's workspace and permissions. Interactive clients can sign in with WorkOS instead. Every request is independently authenticated and there is no hidden session to hijack.
- One MCP tool per public operation, kept in lock-step with the docs
- API-key sessions are pinned to one workspace; no cross-org keys exist
- Works with Claude Code, Cursor, and any MCP client
- Zapier and Make automations use the same API
Ask your own data a question in SQL
Run read-only SELECT queries over curated views of your workspace. Each view bakes in the tenant filter, execution runs as a database role with no access to real tables, and columns are excluded by default so secrets cannot leak by omission. Soft-deleted mail is excluded so counts match what your team sees.
- Twelve curated views: campaigns, contacts, send history, threads, calls, and more
- Queries parsed with the real Postgres grammar and validated against an allowlist
- Runs as a role with zero grants on application tables
- Available as an API endpoint and as MCP tools
Frequently asked questions
Ready to see it in action?
Join the private alpha and run a sequence whose replies are followed up by email, phone, and SMS from one lead record.