All modules
Module 16 · business · intermediate
Client Onboarding Pipeline
After this module you can turn "the client signed" into a fully set-up project in seconds: shared folder, Slack channel, dated task list and a welcome email, every time and the same way.
What it does
POST /webhook/onboarding/new-client with {client_name, contact_name, contact_email, package, start_date?}, sent by your payment, contract or CRM tool.
- Validates the request and builds a plan from the package template in Settings: folder and channel names, tasks with business-day due dates, and a personalized welcome email with your kickoff link.
- Checks a registry so the same client is never onboarded twice by accident: a duplicate returns
409; send"force": trueto run it again. - Creates a Google Drive folder, a private Slack channel and one ClickUp task per checklist item, then sends the Gmail welcome email.
- Every step runs with Continue on Error, and a final report says which steps succeeded (a step only counts if it returned an id). Failed steps don't stop the others, and the run returns
partialso you can fix and re-run.
?dry_run=true returns the plan without touching anything.
Flow
New Client → Settings → Validate & Build Plan → Valid? ─no→ 400
└yes→ Check Registry → Mode ─dry run──────────→ Respond Plan
├already onboarded→ Respond 409
└run→ Drive Folder → Slack Channel → Task Items → ClickUp Tasks
→ Tasks Done → Welcome Email → Onboarding Report → Respond + Any Step Failed? → Alert
Verification status (n8n 2.43.6)
- 19/19 checks without credentials: plan (slug, channel, folder, 6 tasks, weekend-skipping due dates, weekend start → Monday), personalized email, validation (all errors at once, bad date), and a real run without credentials that reports all 4 steps failed with reasons and returns
partial(200), re-runnable. - Complete-run path and duplicate guard verified on a copy with the four integrations replaced by fake successes:
complete→ repeat409→forceruns again; dry runs are always allowed. - Not run with real Drive, Slack, ClickUp or Gmail credentials.
WITH_CREDS=1 TEST_EMAIL=… ./test/test.shdoes that.
Files
| File | Tier | Purpose |
|---|---|---|
| lesson.md | Free | Step-by-step build + credential setup |
| workflow/starter.json | Free | Webhook, plan builder, registry and modes |
| workflow/learner.json | Learner | Finished pipeline |
| workflow/code/ | Learner | Readable copies of the Code nodes |
| exercises.md | Learner | Practice tasks |
| solutions.md | Learner | Exercise solutions |
| notes.md | Private | Learning log |
| sell/ | Private | Offer, video script, blog post |