Skip to main content

Complete client onboarding: Form to Monday.com, Google Drive & Email

Workflow preview

Workflow preview
100%
Complete client onboarding: Form to Monday.com, Google Drive & Email preview
Open on n8n.io

Important notice

This workflow is provided as-is. Please review and test before using in production.

1. Workflow Overview

Overview Streamline your entire client onboarding process with a single workflow. When a new client submits the intake form, this automation creates a Monday.com item, generates a complete Google D...

Best for

  • CRM automation workflows
  • intermediate n8n builders looking for reusable templates

Tools used

n8n-nodes-base.stickynote, n8n-nodes-base.formtrigger, n8n-nodes-base.mondaycom, n8n-nodes-base.googledrive, n8n-nodes-base.wait, n8n-nodes-base.httprequest, n8n-nodes-base.gmail

Source and attribution

This workflow is cataloged by N8N Workflows and links back to its original n8n.io source page by Antonio Gasso.

Original n8n.io source

1.1 Workflow description

Title
Complete client onboarding: Form to Monday.com, Google Drive & Email
Workflow name
Complete client onboarding: Form to Monday.com, Google Drive & Email

Overview

Streamline your entire client onboarding process with a single workflow. When a new client submits the intake form, this automation creates a Monday.com item, generates a complete Google Drive folder structure from your template, updates the Monday item with the folder link, and sends a personalized welcome email—all automatically.

What This Workflow Does

  1. Displays a professional intake form (client name, email, project type)
  2. Creates a new item in your Monday.com board with all details
  3. Generates a Google Drive folder for the client
  4. Duplicates your template folder structure using Apps Script
  5. Updates the Monday.com item with the Google Drive folder link
  6. Sends a welcome email to the client with folder access

Key Features

  • End-to-end automation — From form submission to welcome email
  • CRM integration — All client data captured in Monday.com
  • Organized file storage — Consistent folder structure for every client
  • Professional onboarding — Clients receive immediate welcome email with resources
  • Fully customizable — Add more form fields, notifications, or integrations

Prerequisites

  • Monday.com account with API credentials
  • Google Drive account with OAuth2 credentials
  • Gmail account with OAuth2 credentials
  • Google Apps Script deployment (code below)
  • Template folder in Google Drive with {{NAME}} placeholders

Setup

Step 1: Get your Monday.com IDs

  1. Open your Monday.com board
  2. Board ID: Check the URL → monday.com/boards/BOARD_ID
  3. Group ID: Use Monday API Explorer or browser dev tools
  4. Column IDs: Found in column settings or via API

Step 2: Create your Drive template folder

📁 {{NAME}} - Client Files
├── 📁 01. Contracts & Agreements
├── 📁 02. {{NAME}} - Assets
├── 📁 03. Deliverables
├── 📁 04. Communications
└── 📄 {{NAME}} - Project Brief.gdoc

Step 3: Deploy Apps Script

  1. Go to script.google.com
  2. Create new project → Paste code below
  3. Deploy → New deployment → Web app
  4. Execute as: Me | Access: Anyone
  5. Copy the deployment URL

Step 4: Configure the workflow

Replace these placeholders:

  • YOUR_BOARD_ID — Monday.com board ID
  • YOUR_GROUP_ID — Monday.com group ID
  • DESTINATION_PARENT_FOLDER_ID — Drive folder for new client folders
  • YOUR_APPS_SCRIPT_URL — Apps Script deployment URL
  • YOUR_TEMPLATE_FOLDER_ID — Template folder to duplicate

Step 5: Connect credentials

  • Monday.com API credentials
  • Google Drive OAuth2
  • Gmail OAuth2

Apps Script Code

function doPost(e) {
  try {
    var params = e.parameter;
    var templateFolderId = params.templateFolderId;
    var name = params.name;
    var destinationFolderId = params.destinationFolderId;
    
    if (!templateFolderId || !name) {
      return jsonResponse({
        success: false,
        error: 'Missing required parameters: templateFolderId and name are required'
      });
    }
    
    var templateFolder = DriveApp.getFolderById(templateFolderId);
    
    if (destinationFolderId) {
      var destinationFolder = DriveApp.getFolderById(destinationFolderId);
      copyContentsRecursively(templateFolder, destinationFolder, name);
      
      return jsonResponse({
        success: true,
        id: destinationFolder.getId(),
        url: destinationFolder.getUrl(),
        name: destinationFolder.getName(),
        mode: 'copied_to_existing',
        timestamp: new Date().toISOString()
      });
    } else {
      var parentFolder = templateFolder.getParents().next();
      var newFolderName = replacePlaceholders(templateFolder.getName(), name);
      var newFolder = parentFolder.createFolder(newFolderName);
      copyContentsRecursively(templateFolder, newFolder, name);
      
      return jsonResponse({
        success: true,
        id: newFolder.getId(),
        url: newFolder.getUrl(),
        name: newFolder.getName(),
        mode: 'created_new',
        timestamp: new Date().toISOString()
      });
    }
  } catch (error) {
    return jsonResponse({
      success: false,
      error: error.toString()
    });
  }
}

function replacePlaceholders(text, name) {
  var result = text;
  result = result.replace(/\{\{NAME\}\}/g, name);
  result = result.replace(/\{\{name\}\}/g, name.toLowerCase());
  result = result.replace(/\{\{Name\}\}/g, name);
  return result;
}

function copyContentsRecursively(sourceFolder, destinationFolder, name) {
  var files = sourceFolder.getFiles();
  while (files.hasNext()) {
    try {
      var file = files.next();
      var newFileName = replacePlaceholders(file.getName(), name);
      file.makeCopy(newFileName, destinationFolder);
      Utilities.sleep(150);
    } catch (error) {
      Logger.log('Error copying file: ' + error.toString());
    }
  }
  
  var subfolders = sourceFolder.getFolders();
  while (subfolders.hasNext()) {
    try {
      var subfolder = subfolders.next();
      var newSubfolderName = replacePlaceholders(subfolder.getName(), name);
      var newSubfolder = destinationFolder.createFolder(newSubfolderName);
      Utilities.sleep(200);
      copyContentsRecursively(subfolder, newSubfolder, name);
    } catch (error) {
      Logger.log('Error copying subfolder: ' + error.toString());
    }
  }
}

function jsonResponse(data) {
  return ContentService
    .createTextOutput(JSON.stringify(data))
    .setMimeType(ContentService.MimeType.JSON);
}

Use Cases

  • Agencies — Automate client onboarding with CRM tracking
  • Freelancers — Professional intake process for new projects
  • Consulting firms — Standardized client setup workflow
  • Creative studios — Organize assets and deliverables from day one
  • Service businesses — Streamline customer setup and communication

Customization Ideas

  • Add more form fields: phone, company size, budget, deadline
  • Add Slack notification to alert your team
  • Create tasks in Monday.com sub-items
  • Add to Google Calendar for kickoff meeting
  • Integrate with invoicing (Stripe, QuickBooks)

Notes

  • Apps Script may take 30-60 seconds for large folder structures
  • Monday.com column IDs must match your board's actual columns
  • The welcome email can be customized with your branding
  • Test with a single client before full deployment

1.2 Logical Blocks

This catalog entry is organized from the workflow JSON. The node-level section below shows the executable blocks available for review before importing the template.

2. Block-by-Block Analysis

Block 1 - Main Overview

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 2 - Configuration Warning

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 3 - Section 1

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 4 - Section 2

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 5 - Section 3

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 6 - Section 4

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 7 - Client Intake Form

Type / Role
n8n-nodes-base.formTrigger - formTrigger
Config choices
Version 2.2

Block 8 - Create Client in Monday

Type / Role
n8n-nodes-base.mondayCom - mondayCom
Config choices
Version 1

Block 9 - Create Client Folder

Type / Role
n8n-nodes-base.googleDrive - googleDrive
Config choices
Version 3

Block 10 - Wait for Drive Sync

Type / Role
n8n-nodes-base.wait - wait
Config choices
Version 1.1

Block 11 - Duplicate Template Structure

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.2

Block 12 - Add Folder Link to Monday

Type / Role
n8n-nodes-base.mondayCom - mondayCom
Config choices
Version 1

Block 13 - Send Welcome Email

Type / Role
n8n-nodes-base.gmail - gmail
Config choices
Version 2.1

3. Summary Table

Workflow Complete client onboarding: Form to Monday.com, Google Drive & Email
Complexity intermediate
Nodes 13
Categories CRM
Author Antonio Gasso
Published 10 Dec 2025

4. Reproducing the Workflow from Scratch

  1. 1. Download the workflow JSON

    Use the JSON export at /data/workflows/11666/11666.json as the source template for this automation.

  2. 2. Import the template into n8n

    Open n8n, import the downloaded JSON, and review each node before activating the workflow.

  3. 3. Configure credentials and variables

    Replace placeholder credentials, API keys, webhook URLs, account IDs, and environment-specific values with your own settings.

  4. 4. Test with sample data

    Run the workflow manually or in a staging workspace, inspect node output, and confirm downstream systems receive the expected data.

  5. 5. Activate and monitor

    Enable the workflow only after testing, then monitor executions, errors, and rate limits during the first production runs.

5. General Notes & Resources

Review imported nodes carefully before activation. This catalog entry is intended to help you inspect the workflow structure, understand required services, and find related templates faster.

Node names, credentials, schedules, webhook paths, and external service limits may need adjustment for your workspace.

Frequently asked questions

What does Complete client onboarding: Form to Monday.com, Google Drive & Email do?

Overview Streamline your entire client onboarding process with a single workflow. When a new client submits the intake form, this automation creates a Monday.com item, generates a complete Google D...

What do I need before importing this workflow?

Review the workflow JSON, configure any required credentials in n8n, and test the automation in a safe workspace before using it in production.

Can I customize this workflow?

Yes. Use the block-by-block analysis and the downloadable JSON to inspect each node, then adjust credentials, prompts, schedules, filters, or destinations for your CRM use case.