All Templates
Revenue Operations • Intermediate • 1 n8n workflow

Client Onboarding & Project Handoff Automation

Turn a signed deal into a Google Sheets handoff record, an assigned kickoff checklist, and an optional Gmail welcome draft. The workflow validates intake, flags incomplete details for review, and imports inactive with a safe sample path.

By Luka Salagishvili at Uptune

Last updated:

0

One system, 1 connected workflow

Start with the complete package and setup directions. The preview below shows the entry workflow. Import every listed workflow separately, then connect their references in your n8n instance.

Get the workflow Read the setup directions

Entry workflow preview

Powered by n8n.io

Read the architecture, decision rules, and exception handling in the source blueprint .

Start with the fillable handoff kit →

Continue with the related architecture guide .

How it works

What this workflow does

Turn an approved deal into a delivery handoff the project owner can act on. One authenticated webhook accepts the signed deal details, validates the intake, and upserts two Google Sheets records: a handoff summary and a kickoff checklist. When enabled, it also reserves and saves a Gmail welcome draft for the owner to review and send.

The workflow imports inactive and starts with a manual sample path. dryRun is enabled by default, so the preview uses fictional data and does not contact Google Sheets or Gmail.

This is the executable handoff layer described in the Commercial-to-Delivery Project Handoff blueprint; the Project Delivery QA & Completion blueprint covers the work that follows kickoff.

Validate before writing

Build handoff checks a stable handoff ID, client name and email, company, service, agreed scope, delivery owner, and a real calendar date. Missing or invalid values do not crash the run. They set the row to needs_review and list the reasons in Review Reasons, so incomplete intake stays visible in the same delivery queue.

The handoff and checklist use the same Handoff ID as the upsert key. A replay updates the existing rows instead of creating another handoff. A recorded Gmail draft ID prevents a second draft, and a draft_pending state blocks an unsafe retry until the owner checks Gmail.

Draft only after a ready handoff

The optional Gmail step runs only when createWelcomeDraft is true and the handoff is ready. The workflow writes a draft_pending reservation before calling Gmail, saves the draft, verifies the returned draft ID, and records it with a ready status. The owner reviews the greeting, kickoff date, and delivery contact in Gmail before sending. No email is sent automatically.

Validation scope

The supplied report confirms import into an isolated n8n 2.47.4 database, the inactive import, and the sample path. It also records structural checks, unique node IDs, intact connections, and Code-node syntax. Connected-account authentication, public webhooks, and live Google Sheets or Gmail calls require a staging test with your own accounts.

How to use

Before you start

  • A current n8n instance.
  • A Google spreadsheet with two tabs and the exact row-one headers below.
  • A Google Sheets OAuth credential for both Sheets nodes.
  • A Gmail OAuth credential only if you enable the welcome draft.
  • A trusted server that can send the authenticated intake payload.

1. Import and run the sample

Download the complete package, extract the ZIP, and read the full setup guide. Import client-onboarding-handoff.n8n.json into n8n and save it. Keep the workflow inactive.

Open Run with sample data and choose Test workflow. The Handoff preview branch should return a ready handoff for DEAL-1042, with a delivery owner, kickoff checklist, and welcome copy.

2. Create the spreadsheet

Create one spreadsheet with these two tabs and the exact headers. Format the ID and date columns as plain text so retries can find the same deal.

TabHeaders
Handoffs
Handoff ID, Client Name, Client Email, Company, Service, Agreed Scope, Delivery Owner, Kickoff Date, Status, Review Reasons, Welcome Draft, Draft ID
Checklist
Handoff ID, Delivery Owner, Kickoff Date, Checklist

3. Configure Setup and credentials

Open Setup and set spreadsheetId and an optional fallbackOwnerEmail. Leave createWelcomeDraft false until the handoff rows are correct. Set dryRun to false only when you are ready to write to the spreadsheet.

Select the Google Sheets OAuth credential on Find existing handoff, Save handoff, Save kickoff checklist, Reserve draft creation, and Record draft ID. For Gmail drafts, select the owner Gmail credential on Create welcome draft and set createWelcomeDraft to true.

Create a Header Auth credential on Receive event, such as X-Uptune-Webhook-Key with a randomly generated value. Forward the key from a trusted server together with handoffId, clientName, clientEmail, company, service, scope, kickoffDate (YYYY-MM-DD), and ownerEmail. The HTTP response acknowledges receipt; the n8n execution shows the actual outcome.

4. Test the failure paths

Use the supplied test payloads for a complete deal, a missing scope, and an impossible date. A complete deal produces one ready handoff and one checklist. Incomplete or invalid values produce a needs_review row with the reasons listed. Resend the same handoff ID and confirm the rows update instead of duplicating.

5. Go live

Set dryRun to false for a staging run with a fictional deal. Confirm the two rows and, if enabled, the Gmail draft. Then activate the workflow for the signed-deal event. Process events for the same handoff ID serially. Sheets lookups and writes are separate operations, so use an upstream queue or a database with a unique key if concurrent delivery is possible.

Use the Proposal Draft & Slack Approval System to approve the commercial terms before this handoff starts. Use the Sales-Call Follow-Up Draft System to capture the next step from the sales call, and the Calendly Booking Sync System to keep the kickoff meeting visible in Airtable. Read the Commercial-to-Delivery Project Handoff blueprint for the wider process and ownership model.

Use the HubSpot Ghosted Proposal Follow-Up & Recovery System for the pre-close follow-up that precedes this handoff.

By Luka Salagishvili at Uptune

Luka shares practical workflow templates and automation guides at Uptune, covering connected business tools, implementation steps, and testing before launch.

Luka on LinkedIn · Book a consultation

Get the complete automation system

Download the workflow and the supporting files together. Extract the ZIP, then import the workflow JSON listed below separately. Configuration, source code, and other supporting files are not n8n workflow imports.

Download complete package (ZIP)

1 connected n8n workflow

It imports inactive. Follow the package setup directions before activating schedules or delivery.

  1. Client onboarding and project handoff workflow

    One authenticated webhook validates a signed deal, upserts the handoff and kickoff checklist in Google Sheets, and optionally saves a reviewed Gmail welcome draft.

    client-onboarding-handoff.n8n.json
    Download workflow 01

Setup, integration, and validation files

  • Complete setup guide

    Handoff states, spreadsheet tabs and headers, credential binding, intake fields, test scenarios, and replay guidance.

    README.md
  • Test payloads

    Complete, missing-scope, and invalid-kickoff payloads for the sample path and failure cases.

    test-payloads.json
  • Supplied validation report

    Isolated n8n 2.47.4 import, sample-path result, structural checks, and file hashes. Live provider authentication and calls were not executed.

    validation-report.txt