🔓 Unlock all 10,000+ workflows & prompts free Join Newsletter →
✅ Full access unlocked — explore all 10,000 AI workflow and prompt templates Browse Templates →
Home n8n Workflow
January 22, 2026

GoHighLevel + Google Drive: onboarding runs itself

Lisa Granqvist Partner Workflow Automation Expert

Your deal closes. Everyone’s excited. Then the messy part starts: folders, contracts, kickoff decks, task lists, and that “did anyone email them yet?” scramble. It’s not hard work, it’s just a lot of tiny work.

Agency owners feel it when clients pile up. A sales lead feels it the moment they hand off to delivery. And ops managers usually end up policing the process. This onboarding automation takes the manual steps off your plate so every “Won” deal turns into a clean, consistent onboarding.

You’ll set up an n8n workflow that reacts to a GoHighLevel win, builds the client’s Google Drive structure, copies templates, schedules kickoff, emails the client, creates tasks, and posts updates in Slack. Then you can tweak it to match your own process.

How This Automation Works

Here’s the complete workflow you’ll be setting up:

n8n Workflow Template: GoHighLevel + Google Drive: onboarding runs itself

Why This Matters: Onboarding Falls Apart After “Won”

The moment an opportunity flips to “Won,” your team has to switch contexts. Sales is done, delivery begins, and now someone has to create folders, find the right templates, rename files, schedule a kickoff call, send a welcome email, and log tasks so nothing gets missed. Usually that “someone” is whoever noticed first. It works… until it doesn’t. A missed contract template becomes an awkward follow-up. A kickoff deck copied late delays momentum. And inconsistent folder structures make every future handoff slower.

The friction compounds. Here’s where it breaks down.

  • Each onboarding has 8–12 little steps, and the “little” steps are the ones people forget.
  • Client info arrives messy (company name variations, missing email), so your Drive naming and docs get sloppy fast.
  • Templates get copied inconsistently, which means account managers start from different starting lines.
  • Slack updates rely on someone remembering to post, so visibility becomes luck instead of process.

What You’ll Build: “Won” Deal → Full Onboarding Package

This workflow starts the second a GoHighLevel opportunity is marked “Won.” n8n pulls the won opportunity details, checks that the key client fields are actually present, and then cleans up the payload so names, emails, and identifiers are consistent. With that normalized client data, it creates a dedicated Google Drive location for the new customer, then duplicates your contract and kickoff deck templates into that space with client-specific naming. From there, it alerts your team in Slack, schedules the kickoff meeting in Google Calendar, sends a branded welcome email through Gmail, and generates onboarding tasks back inside GoHighLevel so the account manager has a clear checklist. If something goes wrong, it routes an alert to a Slack error channel so you know immediately.

The workflow begins with a win event in GoHighLevel. Then Google Drive handles the folder and document setup while Slack keeps everyone in the loop. Finally, Calendar and Gmail finish the “first-touch” steps so the client feels taken care of right away.

What You’re Building

Expected Results

Say you onboard 5 new clients a week. Manually, a pretty standard flow is about 10 minutes to create folders and subfolders, 10 minutes to copy/rename templates, 10 minutes to schedule kickoff, 10 minutes to send a welcome email, and another 10 minutes to create tasks and post updates. Call it about 50 minutes per client. With this workflow, your “work” is marking the deal as Won (or having it marked). The rest runs in the background, and your team gets a Slack message when it’s ready.

Before You Start

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • GoHighLevel for opportunity events and task creation.
  • Google Drive to create folders and copy templates.
  • Google Workspace access (Gmail + Calendar credentials inside n8n).
  • Slack Bot Token (create it in Slack API apps).

Skill level: Intermediate. You won’t code much, but you will map fields, connect OAuth credentials, and paste a few IDs for Drive templates.

Want someone to build this for you? Talk to an automation expert (free 15-minute consultation).

Step by Step

GoHighLevel triggers when a deal is marked Won. A webhook fires and n8n pulls the won opportunity record so you’re not relying on manual exports or “someone tell ops.”

Client data gets checked and cleaned. The workflow verifies key fields (like client name and email), then normalizes the payload so folder names and document titles don’t end up with weird formatting or missing info.

Google Drive builds the onboarding workspace. n8n creates the client folder, duplicates your contract template, and clones your kickoff deck template with a client-specific name so it’s instantly usable.

Slack, Calendar, Gmail, and GoHighLevel finish the handoff. Slack posts the “welcome/onboarding created” message, Calendar schedules the kickoff meeting, Gmail sends the welcome email, and GoHighLevel gets the onboarding tasks so the account manager has a clear next-action list.

You can easily modify the folder structure and which templates get duplicated based on your needs. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Webhook Trigger

Set up the inbound webhook that starts the onboarding flow when a deal is marked as won in GHL.

  1. Add and open GHL Deal Won Trigger.
  2. Set Path to ghl-deal-won.
  3. Set Response Mode to responseNode.
  4. Copy the generated webhook URL and add it to your GHL “Deal Won” webhook configuration.

Step 2: Connect HighLevel and Validate Deal Data

Retrieve won opportunities and ensure core identifiers are present before processing.

  1. Open Retrieve Won Opportunities and set Resource to opportunity and Operation to getAll.
  2. Confirm Filters → Status is set to won and Return All is enabled.
  3. Credential Required: Connect your HighLevel credentials in Retrieve Won Opportunities.
  4. Open Verify Client Details and ensure the conditions check id and name with isNotEmpty using {{ $json.id }} and {{ $json.name }}.

⚠️ Common Pitfall: If Verify Client Details fails, the workflow routes to Slack Error Alert. Make sure your HighLevel webhook payload includes id and name.

Step 3: Set Up the Data Normalization Script

Transform the GHL opportunity data into a consistent structure for downstream nodes.

  1. Open Normalize Client Payload and review the JavaScript Code to ensure it matches your data model.
  2. Keep the output fields such as clientName, clientEmail, folderName, and contractName intact, as they are referenced later.
  3. Verify that default fallbacks like 'Unknown Client' and empty strings are acceptable for your process.

Tip: If your GHL data structure differs, update the references in Normalize Client Payload rather than editing multiple downstream nodes.

Step 4: Configure Google Drive Assets and Parallel Branching

Create a client information file and duplicate onboarding documents. This step includes parallel execution.

  1. Open Create Client Drive File and set Operation to createFromText.
  2. Set Drive to My Drive and Folder to YOUR_PARENT_FOLDER_ID_HERE.
  3. Keep the Content field as the multi-line template provided (it includes {{ $json.clientName }}, {{ $json.dealValue }}, and {{ $json.timestamp }}).
  4. Credential Required: Connect your Google Drive credentials in Create Client Drive File, Duplicate Contract Template, and Clone Kickoff Deck.
  5. In Duplicate Contract Template, set Operation to copy and Name to {{ $('Normalize Client Payload').item.json.contractName }}, with File ID set to YOUR_CONTRACT_TEMPLATE_FILE_ID_HERE.
  6. In Clone Kickoff Deck, set Operation to copy and Name to {{ $('Normalize Client Payload').item.json.contractName }}, with File ID set to YOUR_KICKOFF_DECK_TEMPLATE_FILE_ID_HERE.

Create Client Drive File outputs to both Duplicate Contract Template and Clone Kickoff Deck in parallel, so ensure both templates are available before testing.

Step 5: Configure Slack, Calendar, GHL Task, and Gmail Actions

Post the internal Slack message, create a kickoff meeting, generate a GHL task, and send the welcome email.

  1. Open Post Slack Welcome and set Channel to YOUR_SLACK_CHANNEL_ID_HERE with the message template intact.
  2. Credential Required: Connect your Slack credentials in Post Slack Welcome.
  3. Open Schedule Kickoff Meeting and select Calendar as YOUR_CALENDAR_EMAIL_HERE.
  4. Set Additional Fields → Description to {{ $json.message.blocks[0].elements[0].elements[2].text }}.
  5. Credential Required: Connect your Google Calendar credentials in Schedule Kickoff Meeting.
  6. Open Generate GHL Task and set Title to Onboard {{ $('Normalize Client Payload').item.json.clientName }} and Due Date to {{ $now.plus(7, 'days').toISO() }}.
  7. Set Contact ID to {{ $('Normalize Client Payload').item.json.contactId }} and connect HighLevel credentials.
  8. Open Dispatch Welcome Email and keep Send To as {{ $('Normalize Client Payload').item.json.clientEmail }} and Subject as Welcome to [Your Company Name] - Let's Get Started! 🚀.
  9. Ensure the HTML message includes {{ $json.htmlLink }} and {{ $node['Create Client Drive File'].json.id }} for booking and folder links.
  10. Credential Required: Connect your Gmail credentials in Dispatch Welcome Email.

Execution flow note: Post Slack Welcome outputs to Schedule Kickoff Meeting, while Generate GHL Task also outputs to Dispatch Welcome Email—both must succeed for a complete onboarding experience.

Step 6: Add Error Handling

Route failed validation or execution errors to Slack for manual intervention.

  1. Open Slack Error Alert and set Channel to YOUR_ERROR_CHANNEL_ID_HERE.
  2. Keep the message template so it outputs {{ $json.node }} and {{ $json.error }}.
  3. Credential Required: Connect your Slack credentials in Slack Error Alert.

Step 7: Test and Activate Your Workflow

Verify the workflow end-to-end before enabling it in production.

  1. Click Execute Workflow and send a test payload to GHL Deal Won Trigger.
  2. Confirm Create Client Drive File creates a file and that Duplicate Contract Template and Clone Kickoff Deck both run in parallel.
  3. Check that Post Slack Welcome posts the message and Schedule Kickoff Meeting creates a calendar event.
  4. Verify Generate GHL Task creates a task and Dispatch Welcome Email sends the email with working links.
  5. If any validation fails, confirm Slack Error Alert receives the error message.
  6. When everything works, toggle the workflow to Active for production use.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Troubleshooting Tips

  • GoHighLevel API access can be limited by account permissions. If the workflow can’t “retrieve won opportunities,” confirm your GHL API key/OAuth scope and that the pipeline/opportunity endpoints are allowed.
  • If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
  • Google Drive template IDs are easy to mix up, especially if you’re copying links from the browser. Double-check the template file IDs in the two “duplicate/clone” steps before blaming Slack or Gmail.

Quick Answers

What’s the setup time for this onboarding automation automation?

About an hour if your GoHighLevel, Google, and Slack accounts are ready.

Is coding required for this onboarding automation?

No. You’ll mostly connect accounts and map fields like client name, email, and company.

Is n8n free to use for this onboarding automation workflow?

Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in Google Workspace and GoHighLevel costs (no per-email fee from n8n itself).

Where can I host n8n to run this automation?

Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.

Can I modify this onboarding automation workflow for different use cases?

Yes, and you probably should. You can change the Google Drive “Create Client Drive File” step to build your exact folder tree, swap which templates get duplicated in “Duplicate Contract Template” and “Clone Kickoff Deck,” and adjust the Slack message to tag the right owner. Some teams also tweak the “Verify Client Details” check to block onboarding unless a billing email and legal business name are present. Small changes here save a lot of cleanup later.

Why is my GoHighLevel connection failing in this workflow?

Usually it’s expired or incorrect API credentials, so regenerate your GoHighLevel API key (or re-auth OAuth) and update the credential in n8n. If the trigger fires but “Retrieve Won Opportunities” fails, it can also be missing permissions to read that pipeline. And if you’re onboarding many deals at once, you may hit rate limits, which shows up as intermittent HTTP errors.

What volume can this onboarding automation workflow process?

In practice, plenty for most small teams: dozens of onboardings a day is fine as long as your Google and GoHighLevel APIs aren’t being hammered by other systems.

Is this onboarding automation automation better than using Zapier or Make?

Often, yes, because this flow benefits from branching, validation, and error handling in one place. n8n makes it easier to stop the workflow when required client fields are missing, then route errors to a dedicated Slack channel without duct-taping extra Zaps together. It also plays nicely with more complex “do X, then Y, but only if Z” onboarding rules. Zapier or Make can still be fine for a simple “Won → Slack message” style automation. If you’re unsure, Talk to an automation expert and get a quick recommendation.

Once this is live, a “Won” deal stops being a scramble and starts being a system. Your onboarding stays consistent, even when you’re busy.

Need Help Setting This Up?

Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.

Lisa Granqvist

Workflow Automation Expert

Expert in workflow automation and no-code tools.

×

Use template

Get instant access to this n8n workflow Json file

💬
Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Launch login modal Launch register modal