Google Drive + Slack, client onboarding ready fast
Your client signs. You get the PDF. Then the admin spiral starts: making folders, creating a Slack channel, setting up a project page, updating your tracker, drafting a welcome email. It’s not hard work. It’s just constant.
This Drive Slack onboarding automation hits agency owners and consultants first, but ops leads and project managers feel it too. The outcome is simple: every signed contract turns into a fully prepared project workspace, with the same structure every time.
You’ll see what the workflow does, what you need to run it, and how each step connects so you can customize it without breaking anything.
How This Automation Works
Here’s the complete workflow you’ll be setting up:
n8n Workflow Template: Google Drive + Slack, client onboarding ready fast
flowchart LR
subgraph sg0["Watch Contract Folder Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "Watch Contract Folder", pos: "b", h: 48 }
n1["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Parse Filename"]
n2@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set Config Variables", pos: "b", h: 48 }
n3@{ icon: "mdi:cog", form: "rounded", label: "Create Project Folder", pos: "b", h: 48 }
n4@{ icon: "mdi:cog", form: "rounded", label: "Create Deliverables Subfolder", pos: "b", h: 48 }
n5["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/slack.svg' width='40' height='40' /></div><br/>Create Slack Channel"]
n6["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/notion.dark.svg' width='40' height='40' /></div><br/>Create Notion Project Page"]
n7["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/notion.dark.svg' width='40' height='40' /></div><br/>Add Kickoff Task"]
n8@{ icon: "mdi:database", form: "rounded", label: "Log to Master Sheet", pos: "b", h: 48 }
n9@{ icon: "mdi:robot", form: "rounded", label: "AI Draft Welcome Email", pos: "b", h: 48 }
n10@{ icon: "mdi:message-outline", form: "rounded", label: "Create Gmail Draft", pos: "b", h: 48 }
n11["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/slack.svg' width='40' height='40' /></div><br/>Notify Team on Slack"]
n12@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model", pos: "b", h: 48 }
n1 --> n2
n7 --> n8
n12 -.-> n9
n10 --> n11
n8 --> n9
n5 --> n6
n2 --> n3
n3 --> n4
n0 --> n1
n9 --> n10
n6 --> n7
n4 --> n5
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n0 trigger
class n9 ai
class n12 aiModel
class n6,n7,n8 database
class n1 code
classDef customIcon fill:none,stroke:none
class n1,n5,n6,n7,n11 customIcon
Why This Matters: Client onboarding breaks on the boring parts
Client onboarding usually doesn’t fail because you forgot the strategy. It fails because the small, repetitive steps get rushed. A folder is named slightly wrong, so files end up scattered. Someone forgets to add the Notion page link to Slack, so the team keeps asking “where’s the brief?” Meanwhile your tracker spreadsheet is out of date, and you’re hunting through email threads to confirm kickoff details. The worst part is the mental load: you’re trying to be welcoming and professional while doing the same setup tasks again and again.
It adds up fast. And once you’re onboarding more than a couple clients a month, the friction compounds.
- Every manual onboarding creates tiny inconsistencies that later turn into search-and-rescue missions for files and links.
- Creating a Drive structure, Slack channel, Notion page, and Sheet row can easily eat about 30 minutes per client.
- Team updates arrive late, so kickoff tasks slip and the first week feels chaotic instead of confident.
- Welcome emails get rushed, which makes your onboarding feel less premium than your service actually is.
What You’ll Build: Contract upload → full project setup + team alert
This workflow starts the moment a signed contract PDF lands in a specific Google Drive folder. It reads the filename, pulls out the client name, project name, and email address (using a naming convention you control), then uses that information to create a consistent project setup. A new folder structure is generated in Drive, complete with subfolders for deliverables. Then it provisions a dedicated Slack channel so the project has a clean place to communicate from day one. Next, it creates a Notion project page and drops in a kickoff task so nothing starts from a blank page. Finally, it logs the important details to a master Google Sheet, drafts a personalized welcome email using GPT-4o-mini, saves it as a Gmail draft, and posts a Slack message to your team with the links they need.
The workflow begins with Google Drive as the trigger. It uses Notion, Google Sheets, Slack, and Gmail to build the project workspace while OpenAI handles the first-pass email draft. When it finishes, your team gets a Slack update with the Drive folder, Notion page, and the new channel, so kickoff is immediately “ready” instead of “in progress.”
What You’re Building
| What Gets Automated | What You’ll Achieve |
|---|---|
|
|
Expected Results
Say you onboard 5 new clients in a week. Manually, you might spend about 10 minutes building a folder structure, 5 minutes creating a Slack channel, 10 minutes setting up Notion and kickoff tasks, and 5 minutes updating your Sheet and drafting an email. That’s about 30 minutes per client, or roughly 2.5 hours weekly. With this workflow, you upload the contract (about 2 minutes), wait for processing (a few minutes), and you’re done. You get most of that time back, and the setup is cleaner too.
Before You Start
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Google Drive to watch for uploaded contract PDFs
- Slack to create a channel and send updates
- Notion for the project page and kickoff task
- Google Sheets to log onboarding details centrally
- Gmail to generate the welcome email draft
- OpenAI API key (get it from your OpenAI API dashboard)
Skill level: Beginner. You’ll connect accounts, paste a few IDs (folder, database, sheet), and test with a sample PDF.
Want someone to build this for you? Talk to an automation expert (free 15-minute consultation).
Step by Step
A contract lands in Google Drive. The workflow monitors a specific folder (your “Signed Contracts” directory). As soon as a new PDF is uploaded, it pulls the file details and moves forward.
The filename becomes structured onboarding data. A small parsing step reads your naming convention (for example: [email protected]) and turns it into fields the rest of the workflow can use. This is what keeps everything consistent across Drive, Slack, Notion, and Sheets.
The project workspace is created automatically. Google Drive generates the main project folder and subfolders (deliverables and anything else you choose). Slack then creates a dedicated channel, and Notion creates a project page with a kickoff task already inserted.
Your tracking and communication happen without nagging. The workflow appends a new row to your master Google Sheet and drafts a personalized welcome email in Gmail using an OpenAI prompt you can tweak. Once everything is ready, Slack gets a “done” message containing the important links.
You can easily modify the folder structure to match your delivery process based on your needs. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Google Drive Trigger
Set up the workflow trigger so new or updated contracts in your Drive kick off the onboarding sequence.
- Add the Monitor Contract Directory node and set Event to
fileUpdated. - Set Trigger On to
specificFolder. - Set Folder To Watch to
[YOUR_ID]. - Keep the polling schedule at Every Minute as shown in the node’s pollTimes settings.
- Credential Required: Connect your
googleDriveOAuth2Apicredentials.
[email protected]), so keep naming consistent.Step 2: Connect Google Drive and Parse Contract Metadata
Transform the contract file name into structured onboarding fields and set your IDs for downstream systems.
- In Decode File Name, set JavaScript Code to
// 🧹 FILENAME PARSER // Naming convention: "[YOUR_EMAIL]" // 1. Get filename const inputName = $input.first().json.name; const filename = inputName ? inputName.replace(/\.pdf$/i, '') : '[YOUR_EMAIL]'; // 2. Split by underscore const parts = filename.split('_'); // 3. Assign variables const clientName = parts[0] || 'UnknownClient'; const projectName = parts[1] || 'NewProject'; const contactEmail = parts[2] || '[YOUR_EMAIL]'; const startDate = new Date().toISOString().split('T')[0]; // 4. Generate Slack channel name (alphanumeric + hyphens only) let safeName = clientName.toLowerCase() .replace(/\s+/g, '-') .replace(/[^a-z0-9\-]/g, '') .replace(/-+/g, '-') .replace(/^-|-$/g, ''); // Fallback for non-ASCII names if (!safeName || safeName.length < 2) { const randomId = Math.floor(1000 + Math.random() * 9000); safeName = `contract-${startDate.replace(/-/g, '')}-${randomId}`; } const slackChannelName = `proj-${safeName}`; const projectCode = (clientName.substring(0, 3) || 'PRJ').toUpperCase() + '-' + Date.now().toString().slice(-4); return { json: { 'Client Name': clientName, 'Project Name': projectName, 'Contact Email': contactEmail, 'Start Date': startDate, slackChannelName, projectCode, originalFileUrl: $input.first().json.webViewLink || '' } };. - In Assign Setup Parameters, set googleDriveParentFolderId to
[YOUR_ID], notionDatabaseId to[YOUR_ID], googleSheetId to[YOUR_ID], and slackNotificationChannel to[YOUR_ID]. - Confirm the execution flow goes from Monitor Contract Directory → Decode File Name → Assign Setup Parameters.
[YOUR_ID], downstream nodes will fail to create folders, pages, or records.Step 3: Configure Google Drive Folder Structure
Create the client’s project folder and a standardized deliverables subfolder.
- In Generate Project Folder, set Name to
{{ $('Decode File Name').first().json['Client Name'] }} - {{ $('Decode File Name').first().json['Project Name'] }}. - Set Drive to
My Driveand Folder ID to{{ $('Assign Setup Parameters').first().json.googleDriveParentFolderId }}. - In Build Deliverables Folder, set Name to
01_Deliverablesand Folder ID to{{ $('Generate Project Folder').first().json.id }}. - Credential Required: Connect your
googleDriveOAuth2Apicredentials to both Generate Project Folder and Build Deliverables Folder.
Step 4: Provision Slack and Notion Workspace Assets
Create a Slack channel and Notion project page, then insert a kickoff task.
- In Provision Slack Channel, set Resource to
channeland Channel ID to{{ $('Decode File Name').first().json.slackChannelName }}. - Credential Required: Connect your
slackOAuth2Apicredentials to Provision Slack Channel. - In Generate Notion Project Page, set Database ID to
{{ $('Assign Setup Parameters').first().json.notionDatabaseId }}. - Set the Notion Title property to
{{ $('Decode File Name').first().json['Client Name'] }} - {{ $('Decode File Name').first().json['Project Name'] }}and Status toNot Started. - In Insert Kickoff Task, set Block ID to
{{ $json.id }}and add a to_do block with Text set toSchedule kickoff meeting. - Credential Required: Connect your
notionApicredentials to both Generate Notion Project Page and Insert Kickoff Task.
Step 5: Append to the Master Sheet and Draft the Welcome Email
Log onboarding details in Google Sheets and generate an AI-written kickoff email.
- In Append to Master Sheet, set Operation to
appendand Sheet Name togid=0. - Set Document ID to
{{ $('Assign Setup Parameters').first().json.googleSheetId }}and map columns to the provided expressions, such as Client →{{ $('Decode File Name').first().json['Client Name'] }}and Drive Folder →{{ $('Generate Project Folder').first().json.webViewLink }}. - Credential Required: Connect your
googleSheetsOAuth2Apicredentials to Append to Master Sheet. - In Draft Welcome Email with AI, keep Prompt Type as
defineand confirm the Text includes the expressions for client name, project name, and Slack channel. - Open OpenAI Chat Engine and set Model to
gpt-4o-mini. - Credential Required: Connect your
openAiApicredentials to OpenAI Chat Engine (this is the language model powering Draft Welcome Email with AI).
Step 6: Configure Output Notifications and Draft Creation
Generate a Gmail draft from the AI output and notify the internal team in Slack.
- In Compose Gmail Draft, set Resource to
draft, Message to{{ $json.output }}, and Subject toWelcome to {{ $('Decode File Name').first().json['Project Name'] }} - Project Kickoff. - Credential Required: Connect your
gmailOAuth2credentials to Compose Gmail Draft. - In Alert Team in Slack, set Channel ID to
{{ $('Assign Setup Parameters').first().json.slackNotificationChannel }}and keep the formatted message text as configured. - Credential Required: Connect your
slackOAuth2Apicredentials to Alert Team in Slack. - Verify the execution flow is sequential: Draft Welcome Email with AI → Compose Gmail Draft → Alert Team in Slack.
Step 7: Test and Activate Your Workflow
Run a full test to confirm all assets are created, recorded, and communicated correctly.
- Manually test by uploading or updating a PDF in the folder configured in Monitor Contract Directory.
- Confirm a Drive project folder and
01_Deliverablessubfolder are created. - Verify a new Slack channel exists and a Notion project page with a kickoff task is created.
- Check the Google Sheet for a new row with the client, project, and links.
- Open Gmail drafts to ensure the AI-generated email body appears with the correct subject.
- Look for the onboarding notification in your Slack notification channel.
- Once verified, switch the workflow to Active for production use.
Troubleshooting Tips
- Google Drive credentials can expire or need specific permissions. If things break, check your n8n credential connection status and the shared-drive access first.
- If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
- Slack channel creation can fail if your bot lacks “manage channels” permissions or if the channel name already exists. Check your Slack app scopes and naming rules in the Slack workspace admin.
- Default prompts in AI nodes are generic. Add your brand voice early or you’ll be editing outputs forever.
Quick Answers
About 15 minutes if your accounts and IDs are ready.
No. You’ll mainly connect accounts and confirm the file naming format so the workflow can parse it correctly.
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 OpenAI API costs (usually pennies per onboarding email draft).
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.
Yes, and you should. Most people start by editing the “Assign Setup Parameters” values (folder IDs, database ID, Sheet ID, and Slack channel ID), then adjust “Build Deliverables Folder” to match their delivery process. You can also customize the “Draft Welcome Email with AI” prompt to reflect your voice, your kickoff process, and what you want the client to do next. If you don’t use Notion, you can remove the Notion page steps and still keep Drive + Slack + Sheets as the backbone.
Usually it’s expired OAuth access or the trigger folder isn’t the one your credentials can actually see. Reconnect Google Drive in n8n, confirm the contract folder ID, and double-check permissions if it’s in a shared drive. Also make sure you’re uploading PDFs with the expected naming convention, because a parsing failure upstream can look like a Drive issue downstream.
If you self-host, there’s no execution cap (it mostly depends on your server and API limits). On n8n Cloud, your monthly execution allowance depends on the plan, and this workflow uses one execution per onboarding run plus any retries.
Often, yes, because this onboarding flow has multiple dependent steps (Drive folders, Slack channel, Notion page, Sheet logging, then AI + Gmail) and it’s easy to need branching or retries. n8n handles that kind of “do A, then B, then C, unless D happens” logic without turning into a pile of separate zaps or scenarios. Self-hosting is also a big deal if you want predictable costs at higher volume. Zapier or Make can still be fine if you only want one or two actions, like “contract uploaded → post to Slack.” Talk to an automation expert if you want a quick recommendation based on your stack.
Once this is running, onboarding stops being a recurring project. It becomes a single action, and your team starts every client with the same clean setup.
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.