What this automation does
Every new customer gets onboarding emails that match where they actually are, not where a timer assumes they are.
- Start on a trusted event. A HubSpot deal moves to closed-won, or Stripe creates a paid subscription. The workflow creates an onboarding record with the customer’s plan, owner and start date.
- Gather context. It pulls the deal notes, the contact’s role, the customer’s stated goals from the sales process, and the plan features they bought.
- Send a personalized welcome. A model writes two or three opening sentences grounded in those notes. The rest of the email, including setup links and the kickoff booking link, is a fixed template.
- Track setup steps. Product events (account created, data imported, integration connected, teammate invited) arrive by webhook or a scheduled query against your product database.
- Send the next email by state. Each day, the workflow checks which steps each customer has completed and sends the email for the first incomplete step, or nothing if they are moving fine.
- Alert on stalls and stop on success. Customers stuck on a step for several days trigger a Slack alert to their onboarding manager. Reaching the activation milestone ends the sequence.
When it is worth building
The payoff comes from timing and relevance. Customers who connected their integration on day one do not need the day-three reminder to connect it, and customers who have not logged in by day five need a person, not another email. If your current drip ignores product usage, you are probably sending the wrong email to a large share of new customers.
Stick with your email platform’s built-in automation if onboarding is short, linear and the same for everyone. The same is true of sales-stage nurture, covered in automating sales follow-up sequences. Build this when you have usage data, multiple plans with different setup paths, or onboarding managers who want to know who is stuck. The same product signals feed directly into churn risk alerts later, so the data work is not wasted.
Architecture
| Layer | What we use | Why |
|---|---|---|
| Start event | HubSpot deal stage change or Stripe subscription created | One unambiguous start per customer; pick one source to avoid double starts |
| Orchestration | n8n | Built-in HubSpot, Stripe, Gmail, ActiveCampaign and Slack nodes, plus scheduled checks |
| Progress data | Product database (Postgres) or product analytics events | The next email depends on what the customer did, not on the calendar |
| State | One onboarding record per customer in Postgres or the CRM | Tracks steps completed, emails sent and paused status in one place |
| Personalization | Claude Sonnet 5.5 or a comparable OpenAI GPT model | Writes short, specific openings from sales notes with a strict length limit |
| Sending | Gmail or Outlook from the onboarding manager, or ActiveCampaign for larger volumes | Personal sender for small books of customers, an email platform when volume needs deliverability tooling |
| Alerts | Slack to the onboarding manager | Stalled customers get a human quickly |
How to build it
- Define the setup steps and the activation milestone in terms of events you can actually detect. “Understands the product” is not an event. “Created first project” is.
- Write the email for each step, one clear action per email with a direct link to that screen in the product. Get them approved before building anything. If kickoff calls are recorded, pushing meeting notes into the CRM gives the workflow better context than hand-typed notes.
- Mark which sentences AI may write, usually the welcome opener and the stalled-customer check-in. Write rules for what it may reference: stated goals and use case, never pricing, discounts or internal notes about objections.
- Build the start trigger and state record, with a guard that ignores a second closed-won or subscription event for the same company.
- Build the progress check. A daily job reads product data, updates the state record and decides whether to send, wait or alert.
- Add pause controls. An onboarding manager can pause a customer’s sequence from the CRM, for example during a custom implementation.
- Run on new customers for two weeks with sending set to draft, so the onboarding team sees what would have gone out, then switch to live sending.
The downloadable starter template below covers the HubSpot closed-won trigger, the state record, AI welcome personalization and Slack stall alerts.
What breaks in production
- Emailing the wrong contact. The deal’s primary contact is the buyer or a finance person, not the admin who will set things up. Ask for the implementation contact at close and store it on the deal.
- Duplicate starts. A deal is moved to closed-won, back, then forward again, or both HubSpot and Stripe fire. One start source and an idempotency check on company ID prevent two welcome emails.
- Leaking sales notes. The model references something said in confidence on a sales call, such as budget pressure or a competitor. Pass only an approved “customer goals” field to the model, not raw call notes.
- Stale progress data. The daily job runs before the overnight data sync and nags a customer who finished yesterday. Order the jobs, and add a short grace window before sending a reminder.
- Deliverability. Gmail and Yahoo require authentication (SPF, DKIM and DMARC) from bulk senders and easy unsubscribe for marketing mail. Set these up on the sending domain before launch.
- Open-rate illusions. Mail privacy features inflate open rates, so opens are a weak signal. Measure clicks, replies and product events instead.
Timeline and cost
One start event, one product data source and a sequence of five to eight emails typically takes one to three weeks. Lumeor builds onboarding email automation in the range of $3,500 to $10,000. The low end uses CRM events and fixed templates with an AI welcome. The high end adds product usage tracking from your database, multiple plan-specific paths and the stall alert workflow. Model costs are very small, since AI writes a few sentences per customer.
How to measure success
- Time to activation milestone, median days from start, before and after
- Share of new customers activated by day 14 or 30, whichever matches your product
- Replies to onboarding emails, which signal engagement and surface questions early
- Support tickets per new customer during the first 30 days
- Early churn, cancellations or non-renewals within the first 90 days, tracked by onboarding cohort