5 Automations That Power a 90-Minute Client Onboarding Pipeline
I built a client onboarding pipeline that runs on autopilot. Documenso handles contracts, Twenty populates the CRM, Outline hosts resources, all in 90 minutes.
Edward Chalupa
Founder, Whtnxt · Dallas, TX
I used to spend the first three days of every new engagement on administrative setup. Send a contract as a PDF attachment, wait for the signature, manually create a contact record in the CRM, generate an invoice from a spreadsheet template, set up a shared folder, write a welcome email. Each step took 10 to 30 minutes of context-switching between tools. The process was reliable but it consumed half my first week with a new client.
I built a five-step automation pipeline that does all of it in about 90 minutes. I spend that time on onboarding strategy instead of data entry. Here is what the pipeline does and how each piece works.
Automation 1: Contract Trigger via Documenso
The pipeline starts when I send a proposal. I use Documenso, the open source signing platform I self-host on a Synology NAS. When a client signs a contract, Documenso fires a webhook to an n8n endpoint with the document ID, signer email, and signing timestamp.
The n8n workflow takes that webhook payload and extracts the client name, company, and engagement scope from the document metadata. I store default contract terms as key-value pairs in a NocoDB table so the workflow can map the signed document to the right client profile without manual lookup.
This step used to take me 20 minutes per client. Now it takes zero. The contract sends itself.
Automation 2: CRM Record Population in Twenty
Once n8n has the client details from the signed contract, it creates a contact and a company record in my Twenty CRM instance via the GraphQL API. The workflow populates 10 fields: name, email, phone, company name, industry, engagement type, start date, contract value, primary contact method, and notes from the kickoff call.
If the client was already a lead in Twenty (from a prior inquiry), the workflow updates the existing contact record instead of creating a duplicate. The deduplication check uses email as the primary key, with a fallback to company name. I covered the n8n-Twenty integration pattern in more detail in my post about self-hosting Twenty in production.
The CRM update triggers a second workflow that moves the deal from “Negotiation” to “Onboarding” and sets a target close date based on the signed contract’s duration. This gives me a visual pipeline of all active onboardings at a glance.
Automation 3: Invoice and Billing Setup
With the deal confirmed and the client record created, the next step is billing. The n8n workflow calls the InvoiceNinja API on my NAS to generate an invoice based on the contract value and billing terms stored in NocoDB.
InvoiceNinja supports automatic invoice numbering, PDF generation, and email delivery. The workflow creates the invoice as a draft first, then sends it on a one-hour delay. This gives me time to review and adjust the line items before the client receives it. In practice I have only needed to adjust one invoice in six months.
The invoice includes a payment link that routes to a Stripe checkout page. I track payment status through InvoiceNinja’s webhook endpoint back into n8n, which updates the Twenty deal stage to “Paid” when the invoice clears.
Automation 4: Resource Space Provisioning in Outline
New clients need documentation space. I use Outline, an open source wiki platform running on the Mac Mini through a Cloudflare tunnel. The n8n workflow creates a top-level document in the “Client Onboarding” collection, pre-populated with a standard template.
The template includes six sections: account access credentials, project scope document, communication preferences, key contacts, milestone schedule, and meeting notes. Each section starts with placeholder text tailored to the engagement type from the contract metadata. A retainer engagement gets a different template structure than a fixed-scope project.
Outline’s API accepts Markdown content, so the workflow assembles the document body using n8n’s Set node to concatenate the template sections. The document gets created with the client’s company name as the title and gets a share link that I send to the client in the welcome email.
Automation 5: Welcome Sequence via Listmonk
The final automation is the welcome email. Listmonk, running on the NAS Tier 2, manages my newsletter and onboarding email sequences. When the n8n workflow finishes the previous four steps, it calls the Listmonk API to subscribe the client to a private “Client Onboarding” list and triggers an onboarding campaign.
The campaign sends three emails on a schedule: day 0 (welcome message with the Outline share link and next steps), day 2 (access credentials confirmation and tool walkthrough), and day 7 (check-in and feedback request). Each email is a template with merge tags for the client name, company, and Outline link.
The day 0 email is the most important. It includes a link to the Outline document, a calendar link to schedule the kickoff call, and a one-page summary of what happens in the first two weeks. Clients get this email within 10 minutes of signing the contract.
The Full Pipeline Architecture
All five automations share a single n8n trigger. One webhook from Documenso starts a chain of 12 connected nodes. The full workflow uses HTTP Request nodes for API calls, a Set node for data mapping, a Switch node for engagement type routing, and a Code node for the deduplication logic.
The workflow runs on my Mac Mini alongside the rest of the self-hosted stack. I use the same n8n marketing automation engine setup that I documented for lead routing and email automation. The onboarding workflow follows the same pattern: webhook in, data transform, API calls out.
Each step logs its status to a Google Sheet for auditing. If any step fails (API timeout, invalid response, missing data), the workflow sends me a Telegram alert with the error details. I have received exactly two alerts in six months, both caused by temporary DNS resolution issues on the NAS after a power outage.
Cost Comparison
| Component | Tool | Monthly Cost |
|---|---|---|
| Contract signing | Documenso (self-hosted) | $0 |
| CRM | Twenty (self-hosted) | $0 |
| Invoicing | InvoiceNinja (self-hosted) | $0 |
| Documentation | Outline (self-hosted) | $0 |
| Listmonk (self-hosted) | $0 | |
| Automation engine | n8n (self-hosted) | $0 |
| Reporting | Google Sheets | $0 |
| Total | $0 |
The infrastructure costs are the electricity to run the Mac Mini and NAS, which adds up to about $15 per month. The equivalent SaaS stack (DocuSign, HubSpot, FreshBooks, Notion, Mailchimp, Zapier) would cost around $200 to $400 per month depending on tiers.
The real savings is not the subscription cost. It is the time. Each onboarding took me about 3 hours of manual work before the pipeline. Now it takes 90 minutes of strategic work (call scheduling, account setup review, custom configuration) while the administrative layer runs itself.
Where to Start
If you are building your own onboarding pipeline, start with the trigger. Pick one tool that produces a reliable webhook event when a contract is signed, a payment is received, or a form is submitted. Connect that webhook to n8n and make it update one record in one system. That single automation will show you exactly where the next four belong.
I used Documenso as the trigger because signing a contract is the first concrete event in every engagement. Your trigger might be different. A Stripe payment confirmation, a Calendly booking, or a Typeform submission all work the same way.
The full workflow JSON is available on request. I cover the self-hosting setup for NocoDB and my programmatic outreach patterns in other posts if you want to see the infrastructure decisions behind each component.
Every automation I have built follows the same rule: if I have done the same administrative step more than three times, it gets a workflow. The onboarding pipeline was step one. The weekly reporting, lead routing, and invoice follow-ups came after. Start with the trigger that saves you the most time and build from there.