Let your assistant send
Start, approve and resume campaigns from an assistant or a script. Every send needs a key you allowed to send, a card you saw, and a 10-minute wait you can undo.
An assistant or a script can start a campaign, approve people's emails, resume a paused campaign and send you a test. It can only do that with a key you allowed to send, and only after it shows you a card. Then nothing happens for 10 minutes, so you can change your mind.
Allow a key to send
Open Settings, then Developers, and tick Can send email on the key. A key without the tick can still build drafts, but every send answers "This key can't send email". The scope behind the tick is finder:send.
Assistants you connected with the Connect and Allow button, such as Claude.ai or ChatGPT, never send. To let an assistant send, connect it with a key instead.
A test key never sends.
The card
Every send asks twice. The first call sends nothing and returns a card: a summary of exactly what will happen. It says:
- how many people, and how many emails over how many days
- which mailbox they come from
- when the first one goes out, in your time zone
- the daily limit
- how many people your do-not-contact and removal lists left out
- what the app's review screen would show you, such as the main-domain warning
The assistant should show you the card as it is. If you say yes, it calls again with the card's preview_token.
A token works once, for 15 minutes, for the same key and the same request. If an email changes after the card, the token stops working and the assistant gets a fresh card to show you. You never approve words you didn't see.
The 10-minute wait
After your yes, nothing happens for 10 minutes. This is the hold. Until it ends, recruit_undo (or POST /agent-actions/{id}/undo) pulls it back, and nothing is sent. After the hold, pause or stop the campaign instead.
When the hold ends, the send runs through the same steps as the buttons in the app. Your sending hours, your daily limit, your do-not-contact list and anyone who asked to be removed all still apply to every email.
A test send to your own address isn't held. It goes to you alone, marked [Test].
What an assistant can send
| What | API | Assistant tool |
|---|---|---|
| Start a campaign (approves it and says yes to everyone on the card) | POST /campaigns/{id}/launch | recruit_launch_campaign |
| Approve a campaign's emails | POST /campaigns/{id}/approve | recruit_approve_campaign |
| Resume a paused campaign | POST /campaigns/{id}/resume | recruit_resume_campaign |
| Approve some people's emails | POST /campaigns/{id}/approve-people | recruit_approve_people |
| Approve everyone still waiting | POST /campaigns/{id}/approve-remaining | recruit_approve_remaining |
| Approve a weekly batch | POST /campaigns/{id}/batch/approve | recruit_approve_batch |
| Add people to a started campaign | POST /campaigns/{id}/late-add | recruit_late_add |
| Send yourself the first email | POST /campaigns/{id}/test-send | recruit_send_test |
| Finish a start that waited for a mailbox | POST /campaigns/{id}/finish-start | recruit_finish_start |
| Start campaigns held while your plan or mailbox was away | POST /campaigns/restart | recruit_restart_held |
| Undo inside the hold | POST /agent-actions/{id}/undo | recruit_undo |
| See what your assistant sent | GET /agent-actions | recruit_agent_actions |
Pause and stop only ever send less, so they need no card and no tick: Draft campaigns from your assistant.
When a send is refused
| Code | What it means |
|---|---|
send_scope_required | The key doesn't have Can send email ticked. |
card_missing | The call had no preview_token. The answer is the card. |
card_changed | Something on the card changed since you saw it. The answer has the new card. |
card_used | That card was already used. Ask for a fresh one to do it again. |
card_expired | The card is more than 15 minutes old. The answer has a fresh one. |
send_not_queued | The send couldn't be queued, so nothing will go out. Try again in a minute. |
Was this page helpful?