Cold outreach in one message
Ask the in-app assistant to run a cold-outreach campaign in a single message — it checks readiness, creates the campaign, sources prospects, drafts per-recipient bodies, and hands you a review queue. You approve; the assistant never sends.
The Tinbox assistant runs a whole cold-outreach campaign from one message. You say what you want; it does everything up to the human approval gate and hands you a populated review queue. Approval stays yours — the assistant creates, sources, and drafts, but it never approves a prospect and never launches.
The one thing that never changes: approval is human-only. The assistant fills the review queue; a person approves in the UI (or with an explicit "approve these" instruction). There is no chat, MCP, or CLI shortcut that sends cold mail without that review step — it's enforced in the engine, on every surface.
The one message
Type something like this into the assistant:
Run cold outreach to indie Shopify agencies — about 20 prospects, a 2-step sequence. Lead with a specific observation about their store work.
That's the whole ask. Here's what the assistant does with it, in order.
1. It checks readiness first
Before it creates anything, the assistant calls get_send_readiness('outreach').
Cold outreach has real prerequisites — a BYO SMTP transport (Cloudflare can't carry
cold mail), a verified cold sending subdomain, and (for personalized bodies) an
AI model. If any hard prerequisite is missing, the assistant does not create a
half-configured campaign. It tells you exactly what's missing, with a link to each fix,
and stops:
I can't start this yet — two things are missing:
- No cold sending transport. Cold outreach needs a BYO SMTP provider → Settings → Cold outreach
- No verified cold subdomain bound. → Settings → Cold outreach
Set those up and ask me again.
Set up cold sending once (see Set up cold-outreach SMTP), then re-send your message.
2. It creates the campaign
With readiness green, the assistant creates a draft campaign bound to your verified cold subdomain, with your brief and sequence. Nothing sends — a draft is inert. If it tries to bind a sending domain that doesn't exist, the create is refused with a fix-link (you can never mint a campaign bound to a domain that can't work).
3. It sources prospects
The assistant sources and qualifies prospects into the campaign. Cold strangers stay
campaign-only — a scraped stranger is added to the campaign but is not written into
your Contacts registry, and it carries no contact link, until a touch is earned (an
approved send, a reply). Someone you already have in Contacts is linked; a new stranger
is not. Every sourced person gets a sourced activity beat that credits the
assistant and the conversation — so a contact page can later show "sourced via the
assistant in Indie Shopify agencies."
4. It drafts a body per recipient
The assistant drafts a personalized body for every sourced prospect from your brief and each prospect's qualification signal. These live on the prospect rows — they never touch your inbox drafts folder.
5. It hands you the review queue
Finally, the assistant replies with the counts and a deep link:
Done — 20 sourced, 20 drafted for Indie Shopify agencies. Review and approve them here: /lists/campaigns. I've left everything in the review queue; nothing sends until you approve.
You open the review queue, read each drafted message, edit anything you want, and approve the ones you're happy with. The approved prospects send on the next scheduled tick — throttled and ramped for deliverability.
What you did
Total human actions: one message + your approvals in the queue. Everything between "run cold outreach" and "these are ready to review" was one conversation instead of a multi-screen expedition. And the safety rails held the whole way:
- Readiness first — no half-configured campaign; blockers surface up front with fixes.
- Ownership default — cold strangers never pollute your Contacts until a touch is earned.
- Human approval only — the assistant fills the queue; you approve; nothing sends behind your back.
Doing it from an external agent
The same flow works from an MCP client or the tinbox CLI — the assistant, MCP, and the
CLI all drive the same campaign tools. See
Run outreach with an external agent for the tool-by-tool
walkthrough. The approval gate is identical there: approve_prospects and
launch_outreach are flagged destructive, so an autopilot defers them to a human.