Skip to content

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.

  1. 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.
  2. Checks a registry so the same client is never onboarded twice by accident: a duplicate returns 409; send "force": true to run it again.
  3. Creates a Google Drive folder, a private Slack channel and one ClickUp task per checklist item, then sends the Gmail welcome email.
  4. 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 partial so 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 → repeat 409 → force runs again; dry runs are always allowed.
  • Not run with real Drive, Slack, ClickUp or Gmail credentials. WITH_CREDS=1 TEST_EMAIL=… ./test/test.sh does 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