Downloads
Download the n8n workflow (JSON)
client-onboarding-n8n.json · n8n workflow · 21 steps · starts with Deal marked Won · uses Google Sheets, Google Drive, Anthropic, Gmail, Google Calendar, Click Up, Slack · 33 KB
Import into n8n: Create Workflow, then the menu, then Import from File.
How to import it into n8n
- In n8n, create a new workflow.
- Open the ⋯ menu at the top right and choose Import from File, then pick the downloaded .json. (Or open the file, copy everything and paste it on the canvas.)
- Open each node with a warning and connect your own account: the file carries no passwords or keys.
- Run it once with Test workflow, check the result, then switch it to Active.
What it does
When you change a deal's Status to Won in your Deals sheet, onboarding starts on its own. n8n picks the documents to ask for based on the service, sets a kickoff for the next working day at 11 AM, and creates a client folder in Drive with five subfolders. Only the 'Client uploads' subfolder is shared with the client. Claude writes a warm welcome email (account manager, first week, kickoff, documents, upload link), a WhatsApp group intro and a first-week plan. The account manager gets the welcome by email with Send welcome and Hold buttons. On approval, the client gets the welcome and a Google Meet kickoff invite, your checklist for that service becomes ClickUp tasks, the team gets a Slack summary, and the deal row is marked Onboarded.
Who it is for
Agencies, consultants, CA and CS firms, and any service business that signs a few clients a month and does the same ten onboarding steps by hand each time.
What you need
- An n8n account (n8n Cloud or self-hosted)
- A Google Sheet with Deals and Checklist tabs
- Google Drive with a Clients folder, Gmail and Google Calendar
- An Anthropic API key for Claude
- ClickUp (or swap for Notion or Asana)
- Slack with an #onboarding channel
How the workflow runs, node by node
The slides show the same steps. Open the workflow in n8n and you will see a sticky note over each one.
Step 1 · A deal turns Won
When you change a deal's Status to Won in your Deals sheet, n8n picks it up. Deals already onboarded are skipped. The documents to ask for are picked by service, and the kickoff is set for the next working day at 11.
- Deal marked Won: Checks your Deals tab every minute and fires when a row's Status column changes.
- Won deals only: Keeps rows whose Status is now Won, that have a contact email and an empty Onboarded column. Already onboarded deals never run twice.
- Clean client details: Tidies the deal row, picks the documents to ask for based on the service, and sets the kickoff for the next working day at 11 AM.
- One client at a time: Handles one new client per loop, so two deals won in the same minute each get their own folder, email and tasks.
Step 2 · The client folder builds itself
A client folder is created in Drive with five subfolders, from contracts to invoices. Only '02 Client uploads' is shared with the client, so they can drop documents in without seeing anything else.
- Create client folder: Creates 'Client (Service)' inside your Clients folder in Drive.
- Subfolder list: Lists the five subfolders every client gets. Edit the names here.
- Create subfolders: Creates the five subfolders inside the client folder.
- Share uploads folder: Shares only '02 Client uploads' with the client's email, so they can drop documents in without seeing your internal folders. Runs once.
Step 3 · Claude writes the welcome, you approve
Claude writes a warm welcome with who their account manager is, the first week, the kickoff time, the documents needed and the upload link. It lands in the manager's inbox with Send welcome and Hold buttons.
- Write welcome with Claude: Writes the welcome email (account manager, first week, kickoff time, documents and upload link), a WhatsApp group intro and a first-week plan, using only the facts given.
- Claude: Claude (claude-sonnet-5-5) at temperature 0.4, so answers stay consistent from run to run.
- Welcome schema: Forces fixed fields (subject, body, whatsapp_intro, first_week).
- Approve welcome email: Emails the account manager the full welcome with Send welcome and Hold buttons, and waits up to 24 hours.
- Approved?: True only when the manager clicked Send welcome.
- Mark as held: Marks the deal 'Held' when the manager clicks Hold or does not answer. Clear the cell and set Status to Won again to rerun.
Step 4 · Welcome, kickoff and tasks
Click Send welcome and the client gets the email and a Google Meet kickoff invite. Your onboarding checklist for that service becomes ClickUp tasks with owners and due dates.
- Send welcome email: Sends the approved welcome to the client, with replies going to the account manager. Its error output goes to the alert.
- Book kickoff call: Creates a 30 minute Google Meet kickoff on the next working day at 11 AM, invites the client and the manager, and puts the first-week plan in the agenda.
- Load service checklist: Reads your onboarding checklist for that service: Task, Days after start, Owner, ClickUp ID.
- Create ClickUp task: Creates one ClickUp task per checklist row, named 'Client: Task', with the owner and a due date counted from the start date.
- Alert owner: Tells the team in Slack if the welcome email failed, then lets the rest of onboarding carry on.
Step 5 · Team told, deal marked done
Slack gets one summary: client, manager, kickoff time, folder link, tasks created and a ready-to-paste WhatsApp group intro. The deal row is marked Onboarded, so it never runs twice.
- Post onboarding summary: Posts one summary to #onboarding: client, manager, kickoff, folder link, number of tasks and a ready-to-paste WhatsApp group intro. Runs once.
- Mark onboarded: Writes the onboarding time and folder link into the deal row, so the deal never runs again. Runs once.
Setup
- In n8n, create a new workflow, open the menu and choose Import from File, then pick the JSON file.
- Make a Google Sheet with a
Dealstab (Deal ID, Client, Contact name, Contact email, Contact phone, Service, Deal value, Account manager, Manager email, Status, Onboarded, Folder) and aChecklisttab (Service, Task, Days after start, Owner, ClickUp ID). Paste its URL in the trigger and the sheet nodes. - Edit the DOCS list at the top of Clean client details so each service asks for the right documents. Edit the folder names in Subfolder list if you like.
- Connect Google Drive and put your Clients folder id in Create client folder (replace
YOUR_CLIENTS_FOLDER_ID). - Create an Anthropic credential on Claude and replace
YOUR_COMPANY. - Connect Gmail on Approve welcome email and Send welcome email, and Google Calendar on Book kickoff call. Replace
YOUR_EMAILas the fallback approver. - Connect ClickUp and pick your team, space and list in Create ClickUp task. Connect Slack on the two Slack nodes.
- Add a test deal with your own email, set Status to Won, and check the folder, the approval email, the invite and the tasks. Then activate.
How to customise it
- Use HubSpot instead of a sheet: trigger on a deal stage change with a HubSpot webhook and keep the rest.
- Send the engagement letter for e-signature from a Google Docs template before the welcome.
- Add a Razorpay payment link for the first invoice to the welcome email.
- Create the WhatsApp group intro as a message to the client's number with an approved template.
- Book the kickoff with the manager's free slots from Google Calendar instead of a fixed 11 AM.
Guardrails
The welcome email only goes out after the account manager clicks Send welcome. Hold stops it.
- The welcome email is never sent without the account manager's click. Hold, or no answer in 24 hours, marks the deal 'Held'.
- Only the uploads subfolder is shared with the client. Contracts, work in progress and invoices stay internal.
- Claude is told to use only the facts given: no prices, no promised results, no dates other than the kickoff.
- The Onboarded column stops a deal from ever running twice.
- A failed welcome email raises a Slack alert and the rest of onboarding still happens.
Troubleshooting
- Nothing happens when I set Won. The Sheets trigger polls every minute and only sees changes to the Status column. The row also needs a contact email and an empty Onboarded cell.
- Folders are created but sharing fails. The client email must be a Google account or Google will need them to verify. Check the address, or share the folder by hand.
- No ClickUp tasks are created. The Service name in the Checklist tab must match the Deals tab exactly.
- The kickoff lands on a holiday. The code skips only Saturdays and Sundays. Move the event, or add your holiday dates to Clean client details.
- Approval email buttons do nothing. Send-and-wait needs n8n to be reachable from the internet and the workflow must be active.
Want the members-only resources too?
A free account unlocks them all, including the ones shared in DMs.

