Work / Back Office / 13
Client Onboarding — Signature to Kickoff without Chasing
Agencies · Consultancies · Professional services · Coaching
Built — counted from the workflow JSON in the repository; not yet run against live accounts
The problem
Between yes and the work starting, someone chases a signature, a deposit, an intake form, a folder, a kickoff call and a welcome email.
It is the least skilled work in the business, and it is done by the most expensive person in it — because they are the one who noticed it was stuck.
How it runs
-
Contract from the deal
01 / 06 Workflow 1 of 5 · Proposal Accepted to Contract · 12 nodes
When a proposal is accepted, the contract is generated from the deal record’s real values and sent for signature — once.
-
Signed, then a link
02 / 06 Workflow 2 of 5 · Signature to Payment Link · 14 nodes
The signature webhook creates the deposit link, carrying the deal’s ID in Stripe’s metadata.
-
Claim the payment
03 / 06 Workflow 3 of 5 · Payment to Provisioning · 20 nodes
Stripe’s event ID is recorded before anything is provisioned, so a second delivery of the same event exits as already done.
-
Provision
04 / 06 Workflow 3 of 5 · Payment to Provisioning · 20 nodes
Project folder, CRM stage, kickoff invite from real availability, internal channel — and the welcome email last.
-
Chase the intake
05 / 06 Workflow 4 of 5 · Intake Chaser · 11 nodes
Each unanswered section chases itself after 2, 3, 4, 7, 7 and 7 days, and stops the moment it is answered.
six chases → a person rings them
-
One status line
06 / 06 Workflow 5 of 5 · Status Record · 11 nodes
Every client has one status line and every stage a patience budget, so the only rows anyone reads are the stuck ones.
The five workflows, as built
Every node with its icon, as on the n8n canvasstarts a runHover a node for its name and type
-
01Proposal Accepted to Contract
12 nodes · 11 connections · 2 notes
the real deal values, a send-once guard
-
02Signature to Payment Link
14 nodes · 13 connections · 2 notes
a signed webhook, the deposit link
-
03Payment to Provisioning
20 nodes · 19 connections · 3 notes
the event-ID claim, then everything
-
04Intake Chaser
11 nodes · 13 connections · 2 notes
the stop first, then the ladder
-
05Status Record
11 nodes · 9 connections · 2 notes
credit per section, a patience budget per stage
68 executing nodes, by type
The gates, 11 If nodes, decide whether anything happens next: a countable part of the system, not a claim about it. The 11 sticky notes carry the reasoning on the canvas, at the point it applies.
The guards, and what each one prevents
HoverTap a card to read what it prevents.
- The event ID is claimed before provisioning
Stripe retries, and can deliver the same event twice when nothing is wrong. Without the claim, a client’s first impression is two folders, two channels and two welcome emails.
- Signatures that survive key rotation
During a rotation Stripe sends more than one signature; any match is accepted, inside a five-minute window, and a missing secret fails closed.
- The contract is built from the deal
The figure the client signs and the figure they are billed are the same figure by construction. A deal with no amount throws rather than produce a contract for zero.
- Signature and payment are separate
They are separate events, minutes or days apart. A client who signs and never pays should not have a folder, a channel and a kickoff invite waiting.
- The stop is computed before the ladder
Suppression is not a filter further down that someone can reorder: every section answered means the record exits.
- Only the missing sections are named
Someone who filled in three of four and gets the whole form again reads it as “you did not notice”.
Limits, stated plainly
- Built, not yet deployed. Every file imports cleanly; no real signature and payment has flowed through it.
- The e-signature vendor is PandaDoc. DocuSign means rewriting the first two workflows.
- The event-ID claim is as atomic as a Google Sheet allows. On a busy account it belongs in PostgreSQL with a unique constraint — a one-node swap.
- There is no refund or chargeback path yet: a refunded payment changes nothing.
Built with
- n8n
- PandaDoc
- Stripe
- Google Drive
- Google Sheets
- Gmail
- Slack
Next system
The Weekly Number, Assembled and Sent