How we run truly personal outbound
Writing to every prospect as if you'd done your homework takes far too long by hand. So most teams quietly drop the homework. They load a template, drop in a first name and hit send on the whole list. It's quick, and it goes straight to the bin. Mail that actually lands needs someone to look into each account and write about what's really going on there, and that is the part nobody has time for.
We gave that part to an agent on Machine, and put a person in front of every send. For each lead it gathers background, writes a first email and a follow-up based on what is really happening at that account, saves every draft in the CRM, and sends nothing until someone approves it, with a cap on how many go out each day. It's how our own outbound runs.
The problem
Outbound forces a choice, and most teams pick the wrong side. Personal messages get answers, but researching and writing them one at a time can't keep up, so the list takes over: one template, one merge field, one big button. You get plenty of volume and very little relevance, and your reply rate says so.
The usual tools don't help much. Sequencers fire the same template out on a timer. AI writing tools turn out smooth prose with no real knowledge of the account, so it sounds personal without being personal. And anything that can bulk-send sits one bad filter away from dropping unchecked email into thousands of inboxes.
What we built
A regular sweep wakes the agent on Machine inside a new session: a fresh cloud computer, or sandbox, with limited access to enrichment, the CRM and email. It takes the batch of new contacts one at a time, digs into each account, drafts a first email and a follow-up sequence based on what it learned, and saves every draft to the CRM. Nothing goes out by itself. Each batch waits for a person to approve it, and a daily cap still applies.
How it works
Let a new lead list start the run
The trigger is a new segment or lead list in the CRM. On a schedule, the agent starts a new session, its own clean sandbox, and works through every contact on that list. Each contact stands on its own: if research or drafting fails for one person, that failure is logged and skipped, and the rest of the batch carries on. Every run is capped, so a sweep never grows past what one person can comfortably review.
Hand it the outreach playbook
What real personalization means to us is kept as skills and memory, the playbook the agent brings to every run. It covers our angles, the proof points that land, the things to steer clear of, and which signals at an account are worth writing about. When a message style works, we write it down and the next batch uses it.
Connect enrichment, the CRM and email
The agent reaches each tool through a connector, a narrow link whose keys stay on our servers, so the model never handles a raw token. With those, it can:
- Fill in each contact. Role, company, recent news and the real details that make an email about them rather than about anyone.
- Write a sequence worth reading. A first email and follow-ups built on the account's situation, not a template with the name changed.
- Save every draft in the CRM. Each message is recorded against the contact, so the history is all there.
- Send once approved. An email leaves only after a person signs off on the batch.
Set the limits
No email goes out without a person's approval, and nothing unchecked is ever sent in bulk. Every batch halts at a human approval gate, and a daily cap limits how many messages can leave even after they're approved. Pick the wrong segment and you still won't flood thousands of inboxes, because sending is gated and capped no matter how long the list is. Credentials are stored encrypted in the Secrets Manager and only handed to the agents you grant them to.
Send personal outbound at a safe pace
Once that's in place, loading a segment gives you a batch of researched drafts, each written for one specific account, saved in the CRM and ready to review. A person reads through, approves what's good, and the daily cap paces the sends. The emails are personal because every one is written about an account that was actually researched, and none of them leave until a person says yes.
The pattern
A trigger on a new list starts a clean session with limited connectors into enrichment, the CRM and email. Our outreach approach lives as skills and memory. A person approves every batch and the daily cap paces the sends, so nothing unchecked goes out in bulk.
Guardrails
The agent can write and send email, so sending is the step we hold tightest:
- Isolation. Each sweep gets a brand-new sandbox that is thrown away afterwards. It can reach enrichment, the CRM and email and nothing else. Only drafts come out, and nothing is sent from inside the sandbox. If one contact fails, it's logged and skipped, and the rest of the batch is left untouched.
- Scoped secrets. The enrichment, CRM and email keys are stored encrypted in the Secrets Manager and only handed to the agents you grant them to, when the sandbox starts.
- Human approval gate. Nothing is sent until a person approves it. Each batch is reviewed first, and a daily cap limits volume even after approval, so a bad list can never blast out unchecked mail.
- Everything is code. Configuration, skills and permissions are versioned files in the repo, changed only through a reviewed change request, never a dashboard toggle.
The outcome
Our outbound is now written for each account and sent at a pace we're comfortable with. Every contact gets researched, every email is written around what was found and saved in the CRM, and every batch is approved by a person under a daily cap. Personal outreach can grow because the research grows with it, and nothing unchecked ever goes out in bulk.
More use cases
How we answer GDPR data-subject requests before the deadline
Our Machine agent checks each GDPR access or deletion request, finds the person's data across our product database, builds the report well within the SLA and hands it to legal before anything is sent.

How we keep our docs matching what the code does
Once a day a Machine agent reads every commit merged since its last pass, finds the doc pages those changes made wrong, rewrites them and sends you one pull request to review.

How we test every pull request without lifting a finger
Our Machine QA agent works with GitHub and our test environment. For each pull request it checks out the branch, runs the tests, tries the change for real, and posts what it found.
Put your first agentto work today.
- SSO
- RBAC
- Governed agents
- Full audit trail