The three concerns
- Domains — the sending domains you own for outreach, kept separate from your organization’s main domain to protect its reputation. Domain data is read live from the provider; buying a new domain or changing its auto-renew setting are real, cost-bearing actions.
- Mailboxes — individual send addresses provisioned on a domain (e.g.
alex@yoursendingdomain.com). Creating or deleting one drives a background workflow and includes a warm-up period before it’s trusted to send at volume — a fresh mailbox can’t just start blasting. - Campaigns — an AnyCRM-side campaign record paired with a Salesforge sequence. A campaign has a step definition (the sequence itself), a schedule, delivery settings, a pool of sender mailboxes it rotates through, and an enrolled audience of contacts. Campaigns can be built by hand or seeded directly from a Customer Intelligence run’s output, auto-enrolling the contacts that run produced.
The connection gate
Every endpoint except the workspace-status probe (GET /outreach/workspace) first checks that the organization has all three underlying Forge workspaces connected, and returns 409 workspace_not_connected if not. There’s no partial-setup path — an org either has outreach fully wired up or none of this API is usable yet.
Scope tiers
Outreach draws a sharper line between “look” and “spend” than most of the rest of the API, because some actions here cost real money:outreach:read— view campaigns, domains, mailboxes, and enrollments.outreach:manage— create and edit campaigns and enrollments.outreach:provision— buy a domain or provision a mailbox. These are cost-bearing infrastructure actions, deliberately gated behind a scope narrower than general campaign management.
A
manage scope does not imply provision here — an integration or role that can build and launch campaigns doesn’t automatically get to spend money on domains and mailboxes.