Onboarding guide
A serverless guide that walks every new customer through the right first steps automatically. When someone signs up, it starts a friendly sequence of timed messages and tasks — welcome, setup help, a check-in — watches whether each step gets done, nudges gently if someone stalls, and tells the owner who is stuck so a human can step in. It adapts the pace to each customer and never spams. Seven posts on the same system — one diagram at a time — with an engineering reference at the end.
-
01
An onboarding guide on AWS for a few dollars a month
The whole system on one page — a signup intake, a guide, and a sender piece, plus the four moves they share for every customer.
-
02
How a new customer gets enrolled
Three lanes start a sequence — a signup webhook from your app, a Drive sheet you fill in by hand, and an inbox-forwarding lane that reads a welcome email and proposes a row for one-tap approval.
-
03
How an onboarding step comes due
A daily tick reads the customer list, computes days-since-signup per customer, compares against the per-plan step plan in the rules doc, and picks one of four moves: on track, next step due, gentle nudge, flag to owner. No model on the tick.
-
04
How a nudge reaches a customer
Channel resolution per customer, quiet hours, weekends, an email with the next step and a one-click done link, and the four guardrails between the guide’s chosen move and the message landing.
-
05
How an onboarding finishes
Three ways a sequence ends: finish (all steps done, send a wrap-up), pause (the owner holds the sequence without dropping the customer), and hand off (a human takes over). Every action is logged.
-
06
What the onboarding guide costs
Pennies a month at SMB volume. The guide runs once a day, calls no models on the tick, and only fires Bedrock on the rare personalized rewrite and the monthly summary.
-
07
Engineering reference: the onboarding guide architecture
Same system, drawn purely for engineers. Service names, resource identifiers, region, Bedrock model IDs, Lambda inventory, IAM scopes, the SES inbound rule set, EventBridge Scheduler config, and the DynamoDB schemas.
Frequently asked questions
- What is an onboarding guide?
- A small serverless system that walks every new customer through the right first steps automatically. When someone signs up, it starts a friendly sequence of timed messages and tasks — welcome, setup help, a check-in — watches whether each step gets done, nudges gently if someone stalls, and tells the owner who is stuck so a human can step in. The owner can pause a customer’s sequence, skip a step, or hand off to a person directly from the daily review.
- How much does it cost to run?
- About $2.10/month at typical small-business volume (around 150 customers onboarding at once). The fixed cost is essentially zero. The variable cost is dominated by the daily Lambda tick that reads every active onboarding; Bedrock fires only on the rare personalized rewrite and the monthly summary, so it’s a small sliver. At 2,000 active onboardings the bill lands around $12.
- Which AWS services does it use?
- Lambda (Python 3.14, arm64) with Function URLs for the signup webhook and the step-done endpoint, EventBridge Scheduler for the daily tick and deferred-send one-offs, DynamoDB on-demand, S3 (with versioning), SES inbound + outbound, Secrets Manager, CloudWatch Logs (7-day retention), AWS Budgets, and Bedrock (Claude Haiku 4.5 via Global cross-Region inference) for the occasional personalized rewrite and monthly summary. No API Gateway, no NAT Gateway, no always-on compute, no Knowledge Base.
- Where does the customer list live?
- In a Google Sheet in a Drive folder. One row per customer with name, email, plan, signup date, the current step, and which steps are done. A small
drive-syncLambda mirrors the sheet to S3 every 15 minutes; the guide reads from S3 to keep Drive API calls predictable and to get S3 versioning for free. - Does the guide use AI?
- Sparingly. The daily tick uses no AI — it’s plain Python that reads dates and step state and decides on a move. Bedrock Haiku 4.5 fires only when a step message needs a small personalized rewrite (and only when the rules doc asks for it) and once a month for the owner summary. Most of the system is deterministic by design.
- How does the guide stay friendly and not spam?
- Each plan has its own step plan in the rules doc — a starter plan gets welcome / setup / check-in over 7 days, a pro plan gets a longer plan. Messages respect quiet hours and weekends. The pace adapts: a customer moving fast skips ahead and gets fewer messages; one who stalls gets a gentle nudge, then a flag to the owner — never an endless drip. A finished or paused customer stops getting messages entirely.
- What happens when a customer gets stuck?
- When a step stays undone past its window, the guide sends one gentle nudge. If it’s still undone after the final window, the guide flags the customer to the owner in Slack with the full picture — name, plan, the step they’re stuck on, and how long it’s been. A human can then reach out, pause the sequence, skip the step, or hand off. Every nudge and every owner action is recorded in the
og-auditDynamoDB table so the trail is auditable.