Client Onboarding Pipeline
Module 16 · business · intermediate
registry-check.js
// Idempotency: never onboard the same client twice by accident (payment webhooks retry!).
// A completed onboarding blocks re-runs unless "force": true; a partial one may be re-run to finish.
const plan = $input.first().json;
const db = $getWorkflowStaticData('global');
db.onboarded = db.onboarded ?? {};
const prev = db.onboarded[plan.slug];
const blocked = !plan.dry_run && prev?.status === 'complete' && !plan.force;
return [{ json: { ...plan, already_onboarded: blocked, previous: prev ?? null } }];