docs outreach

Enrollments

Enroll a run, a list, or profile ids; preview, confirm, pause or stop.

POST /v1/outreach/enrollments puts people in a sequence. Name them in any mix, up to 500, de-duplicated:

FieldEnrolls
run_idThe run's delivered candidates
list_idThe list's people
profile_idsPeople you fetched or found in search
candidatesPeople you name: profile_id or profile_url, plus full_name, first_name, company for the message

limit (default 100) caps how many come from a run or a list.

{ "sequence_id": "seq_…", "run_id": "run_…", "limit": 25 }

Preview, then enroll

With ?dry_run=true nothing is written. Each person gets a row: decision (schedule or skip), the reason for a skip, the rendered steps, scheduled_at for the first step, next_available_at when a cap pushes it out, and warnings (for example a first message without {{privacy_notice}}).

Without dry_run, send an Idempotency-Key. The response (201) has enrolled, skipped with reasons, and the enrollments. Each scheduled person is marked contacted in the seen register. The same key replays the same answer and enrolls nobody twice.

Skip reasonMeaning
suppressedThe person opted out or is on your suppression list
do_not_contactMarked in your seen register, for example after a negative reply
already_contactedContacted from this workspace before
A cap reasonNo slot inside the safety caps within 14 days. next_available_at says when

Manage

CallEffectScope
GET /v1/outreach/enrollmentsFilter by status, sequence_id, account_id, profile_idoutreach:read
POST …/{enrollment_id}/pauseHolds the next stepsoutreach:write
POST …/{enrollment_id}/resumeReschedules from now. ?dry_run=true shows when the next step goes outoutreach:send
POST …/{enrollment_id}/stopFinal. Nothing more is sent from this enrollmentoutreach:write

Pause and stop need no preview. Stopping keeps the person marked contacted. Resuming into a cap or a paused account is 409 outreach_cap_reached or 409 account_paused with next_available_at.

GET /v1/outreach/actions lists every scheduled, sent, skipped, refused, failed, or held step; outcome=awaiting_approval lists messages waiting for your approval.

One action outside a sequence

POST /v1/outreach/sends queues one invite, message, profile visit, or invite withdrawal for one person, under the same caps, hours, and suppression checks. ?dry_run=true previews it.

The examples script previews, enrolls, and pauses a fictional profile.

What it costs

0 credits. The account's monthly price is €49.

Ask Claude

Preview the shortlist from this run on the Backend Ghent sequence. Show me the note, the scheduled time, and anyone skipped. Do not enroll until I say yes.

API reference