Onboarding email that notices when someone is stuck
The standard onboarding sequence sends five messages on days one, three, seven, fourteen, and thirty, regardless of whether the customer set everything up on day one or gave up on day two. Both of those people get message three, which is why onboarding email has such a reputation for being ignored.
4 min read
An agent can do the thing the sequence cannot: read the reply, look at what the account has actually done, and change what happens next.
Sequences fail in two directions
They keep going when they should stop. A customer who finished setup on day one still receives "here is how to get started" on day three. It is a small insult that costs a little credibility each time.
They stop when they should keep going. A customer stuck on step two gets the same five messages as everyone else, none of which address the thing blocking them, and then silence. Nobody notices until renewal.
Both are the same root cause: the sequence has no idea what state the customer is in, and no way to process the reply that would have told it.
What the agent does differently
Three inputs before each message, rather than a date.
- Account state, from your own systems. Has the workspace been created, the key issued, the first message sent. The agent should read this rather than infer it, and it should treat your systems as the source of truth.
- The thread. Anything the customer already said, including in earlier onboarding messages.
get_threadrather than the last message. - The contact record. Role, time zone, what previous conversations established, per giving an email agent memory.
Then one decision: does this customer need a nudge, an answer, a person, or nothing at all. "Nothing at all" is a legitimate and underused outcome.
| State | What to send |
|---|---|
| Set up and using it | Nothing. Maybe one message at the end offering help |
| Started, then stalled at a specific step | A message about that step, not the generic next one |
| Never started | One check-in asking what got in the way, then stop |
| Replied with a question | An answer, immediately, in thread |
| Replied with a problem | A person, quickly |
The reply is the whole opportunity
An onboarding message that gets a reply has done something no dashboard metric captures: it found a customer willing to tell you why they are stuck. Sequences waste this, because the reply lands in a no-reply mailbox or in a marketing inbox nobody works.
Give the agent a real address so replies come back to something that can act. Answer the question, fix the blocker if it is fixable, and escalate if it is not. That single change turns onboarding email from broadcast into support, and it is why the whole thing belongs on a conversational stack rather than a campaign one, per what an MCP email server is.
send_email { to: ["new@customer.com"], subject: "Getting your first agent sending" }
wait_for_reply { thread_id: "thr_...", timeout_seconds: 259200 }
reply_all { message_id: "msg_...", body: "That error means the domain is still pending DKIM. It usually clears within..." }
Renewals are the same shape at the other end of the lifecycle, in renewals, lapses, and the members who meant to come back. Donor acknowledgement has the same structure and a different relationship, covered in thanking donors properly.
Where the boundary sits
Onboarding sits close to sales, and the temptation is to let the agent sell. Keep them separate.
The onboarding agent's job is getting the customer working. Pricing conversations, upgrades, contract questions, and anything involving a discount belong to a person or to the sales agent, and the handover should be explicit rather than a slow drift in tone. A customer who asked for help and received a pitch remembers it.
Similarly, this is not a place for volume. These are messages to people who signed up, so they are welcome, but the same discipline applies as anywhere: one message per state change, stop when they are up and running, and never chase past the point of usefulness. The controls are in keeping an autonomous agent from becoming a spam problem.
What it changes
Two things move. Activation rate rises, mostly because the stuck customers get a message about the thing they are stuck on rather than the next slide in a deck. And support load drops slightly at the same time, because a question answered on day two is a ticket that never opens.
The third effect is harder to measure and more valuable: you learn where people actually get stuck, in their own words, at the moment it happens. That is product research nobody has to schedule, and it arrives as ordinary email you can read.
Starting shape: one narrow segment, one state to watch, and a fortnight of reading every thread, as in the first week with an email agent.
Questions
- Can an AI agent run customer onboarding email?
- Yes, and it differs from a sequence in the way that matters: it reads account state and the customer's replies before each message, so it stops when someone is set up and adapts when they are stuck.
- How is this different from a drip campaign?
- A campaign sends on a schedule and ignores the answer. An agent checks what the customer has done, reads what they said, and can decide to send nothing at all.
- What should it do when someone replies?
- Answer immediately in thread. That reply is the most valuable event in onboarding, because it identifies a real blocker from a real customer at the moment it happens.
- Should the onboarding agent handle pricing questions?
- No. Getting the customer working is its job. Pricing, upgrades, and contract questions go to a person or to a sales agent, with an explicit handover.
- How many messages should it send?
- One per meaningful state change, and none once the customer is up and running. Chasing beyond usefulness costs credibility and generates complaints.
- What does it need from my systems?
- Read access to whatever tells it the customer's actual state: account created, key issued, first action completed. It should read that rather than infer it from silence.
Give your agent an address it can answer from.
Create an inbox