AutomationFlowsAI & RAG › Google Forms → ClickUp + Gmail Onboarding

Google Forms → ClickUp + Gmail Onboarding

Original n8n title: Automate Client Onboarding with Google Forms, Gpt‑4o, Clickup and Gmail

ByMilo Bravo @milobravo1 on n8n.io

Who is this for?

Event trigger★★★★☆ complexityAI-powered21 nodesGmailForm TriggerOpenAI ChatAgentOutput Parser StructuredClickUpGoogle Drive
AI & RAG Trigger: Event Nodes: 21 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow corresponds to n8n.io template #13658 — we link there as the canonical source.

This workflow follows the Agent → Form Trigger recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "id": "OeLbgYOzSNDWea3A",
  "name": "Client Onboarding Automation TEMPLATE",
  "tags": [],
  "nodes": [
    {
      "id": "02a553f6-1a24-48f6-93b8-f93d7390933f",
      "name": "Send Welcome Email",
      "type": "n8n-nodes-base.gmail",
      "position": [
        -144,
        224
      ],
      "parameters": {
        "sendTo": "={{ $('Receive Onboarding Form').item.json.Email }}",
        "message": "=Hi {{ $('Receive Onboarding Form').item.json.Name }},\n\nWelcome aboard! We're excited to partner with you and your team.\n\nYour project workspace is live, and we've already kicked off the initial project scoping.\n\nYou should be receiving invites to the following:\n\nClickUp \u2013 For tracking project tasks and progress\n\nGoogle Drive \u2013 For sharing and accessing all related assets\n\nNext Steps\nUpload any relevant documentation here:\n[Google Drive Folder](https://drive.google.com/drive/u/0/folders/{{ $('Create Google Drive Folder').item.json.id }})\n\nSchedule your onboarding call:\nYOUR_CALENDLY_LINK\n\nSit tight\u2014we'll review your uploads before the call and come prepared with next-step recommendations.\n\nIf you need anything or have questions in the meantime, feel free to reach out anytime.\n\nLooking forward to what we'll build together.\n\nBest,\nYOUR_NAME\nYOUR_COMPANY",
        "options": {
          "appendAttribution": false
        },
        "subject": "=Welcome {{ $('Receive Onboarding Form').item.json.Name }} \u2014 Your Onboarding is Complete!",
        "emailType": "text"
      },
      "typeVersion": 2.1
    },
    {
      "id": "6a997c93-ea96-4acb-a6c1-63abc85d15e2",
      "name": "Receive Onboarding Form",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -2368,
        208
      ],
      "parameters": {
        "options": {},
        "formTitle": "Client Onboarding Form",
        "formFields": {
          "values": [
            {
              "fieldLabel": "Name",
              "placeholder": "Your Name",
              "requiredField": true
            },
            {
              "fieldLabel": "Email",
              "placeholder": "Your Email",
              "requiredField": true
            },
            {
              "fieldLabel": "Company Name",
              "placeholder": "Company Name",
              "requiredField": true
            },
            {
              "fieldLabel": "Website",
              "placeholder": "Website url",
              "requiredField": true
            },
            {
              "fieldType": "file",
              "fieldLabel": "Proposal/Scope Document",
              "requiredField": true,
              "acceptFileTypes": "drop the proposal here"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "8f58dd65-b841-40d3-920f-4c9319c30d78",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -1024,
        336
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "typeVersion": 1.2
    },
    {
      "id": "c83e4dc0-938d-4262-b362-c9b17461e9f0",
      "name": "Generate Onboarding Tasks",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -1024,
        208
      ],
      "parameters": {
        "text": "={{ $('Set Project Information').item.json.projectInformation }}",
        "options": {
          "systemMessage": "=# Overview  \nYou are an AI onboarding agent responsible for reviewing a proposal and scoping document for a new client. Your job is to extract a comprehensive list of actionable tasks, assign appropriate task titles, estimate durations, and generate due dates accordingly. The final output will be used to populate a ClickUp folder for the team to begin onboarding activities.\n\n## Context  \n- Input is provided as a plain text string containing the proposal and scoping document.  \n- You are operating in US Central Time.  \n- The current date and time must be noted in each output to calculate due dates.  \n- All due dates should be in MM/DD/YYYY format.  \n- Tasks should be based on standard estimated durations unless otherwise specified in the document.  \n- The task list should be detailed, ideally including 20 to 30 to-do items to cover every minor and major step involved.  \n\n## Instructions  \n1. Read and analyze the scoping document contents.  \n2. Break down the onboarding process into detailed subtasks.  \n3. For each task:\n   - Create a clear, concise title.  \n   - Write a description with enough detail to guide execution.  \n   - Estimate and apply a duration from today\u2019s date.  \n   - Format the due date as MM/DD/YYYY.  \n4. Structure the output to be easily transferable into ClickUp.  \n5. Begin the output with the current date and time in US Central Time.  \n\n## Tools  \n- Internal clock set to US Central Time  \n- Text parser to extract and organize tasks  \n- Predefined duration rules (if not provided, use default estimates per task type)  \n\n## Examples  \n- Input: \"Initial strategy alignment call and documentation setup expected within first 3 days.\"  \n- Output:\n  - **Current Date and Time:** 06/20/2025 10:30 AM (US Central)  \n  - **Task 1**  \n    - Title: \"Book Strategy Alignment Call\"  \n    - Description: Coordinate and schedule a kickoff call with the client to discuss strategy.  \n    - Due Date: 06/21/2025  \n  - **Task 2**  \n    - Title: \"Create Strategy Notes Document\"  \n    - Description: Prepare a shared document to collect notes and agreements from the alignment call.  \n    - Due Date: 06/23/2025  \n\n## SOP (Standard Operating Procedure)  \n1. Capture the current date and time in US Central Time.  \n2. Parse the document and extract all major and minor tasks implied or directly mentioned.  \n3. Expand each process into granular to-dos (20\u201330 items).  \n4. Assign a title, detailed description, and calculated due date for each task.  \n5. Ensure output is formatted cleanly for ClickUp import.\n\n## Final Notes  \n- Default duration is 2 days unless otherwise indicated.  \n- If a task's due date falls on a weekend, roll it forward to the next weekday.  \n- Focus on actionable and sequential items: tool setup, access requests, documentation, meetings, integrations, QA, testing, etc.  \n- Each task should represent a unique and independent step in the onboarding flow.  \n---\n"
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 1.9
    },
    {
      "id": "f416e34b-4dd4-43ba-9334-03a11784a6ca",
      "name": "Parse Task JSON Output",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        -864,
        336
      ],
      "parameters": {
        "jsonSchemaExample": "{\n  \"current_datetime\": \"06/20/2025 10:30 AM\",\n  \"timezone\": \"US Central\",\n  \"tasks\": [\n    {\n      \"title\": \"Client Workspace Setup\",\n      \"description\": \"Set up client workspace including email, Slack, and Google Drive access.\",\n      \"due_date\": \"06/22/2025\"\n    },\n    {\n      \"title\": \"Kickoff Call Scheduling\",\n      \"description\": \"Schedule and confirm kickoff call with the client and internal team.\",\n      \"due_date\": \"06/23/2025\"\n    },\n    {\n      \"title\": \"Access Credentials Request\",\n      \"description\": \"Request all necessary credentials from the client (CRM, website, analytics, etc.).\",\n      \"due_date\": \"06/21/2025\"\n    }\n  ]\n}\n"
      },
      "typeVersion": 1.2
    },
    {
      "id": "358748ae-67e5-41e2-a005-b24f6d3c7149",
      "name": "Split Tasks Array",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        -720,
        208
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "output.tasks"
      },
      "typeVersion": 1
    },
    {
      "id": "166165b5-d060-42cf-8231-5dcd31fffe4f",
      "name": "Create ClickUp Task",
      "type": "n8n-nodes-base.clickUp",
      "position": [
        -384,
        208
      ],
      "parameters": {
        "list": "={{ $('Create ClickUp List').item.json.id }}",
        "name": "={{ $json.title }}",
        "team": "90131253945",
        "space": "90135217093",
        "folder": "={{ $('Create ClickUp Folder').item.json.id }}",
        "additionalFields": {
          "content": "={{ $json.description }}",
          "dueDate": "={{ $json.due_date }}",
          "priority": 3,
          "assignees": [
            138170684
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "317d970f-f2ba-486e-884b-4a9dfb6a930b",
      "name": "Loop Through Tasks",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -544,
        208
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "3baac784-1a8c-4299-a74d-fe68d14163a2",
      "name": "Set Project Information",
      "type": "n8n-nodes-base.set",
      "position": [
        -2064,
        208
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "1ef9b1c6-86b6-43b4-a02d-3250a6f7ba4d",
              "name": "projectInformation",
              "type": "string",
              "value": "={{ $json.text }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "224ade98-6194-41cc-b683-90c28f0f63ae",
      "name": "Extract PDF Content",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        -2224,
        208
      ],
      "parameters": {
        "options": {},
        "operation": "pdf",
        "binaryPropertyName": "Proposal_Scope_Document"
      },
      "typeVersion": 1
    },
    {
      "id": "7325b43e-5a96-4eb1-8349-f3b0d9fba921",
      "name": "Set Drive Folder ID",
      "type": "n8n-nodes-base.set",
      "position": [
        -1728,
        208
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "13bbafe7-47b1-45d5-8ea0-914de02c8e8a",
              "name": "DriveFolderID",
              "type": "string",
              "value": "={{ $json.id }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "615d2100-fd7f-4384-a09c-3a36436ba4a1",
      "name": "Create ClickUp List",
      "type": "n8n-nodes-base.clickUp",
      "position": [
        -1312,
        208
      ],
      "parameters": {
        "name": "={{ $('Receive Onboarding Form').item.json['Company Name'] }} Onboarding",
        "team": "90131253945",
        "space": "90135217093",
        "folder": "={{ $json.id }}",
        "resource": "list",
        "operation": "create",
        "additionalFields": {}
      },
      "typeVersion": 1
    },
    {
      "id": "548a513a-57c0-4ff8-8d58-89a6f1f1ff95",
      "name": "Create ClickUp Folder",
      "type": "n8n-nodes-base.clickUp",
      "onError": "continueRegularOutput",
      "position": [
        -1472,
        208
      ],
      "parameters": {
        "name": "={{ $('Receive Onboarding Form').item.json['Company Name'] }} |  Client Folder",
        "team": "90131253945",
        "space": "90135217093",
        "resource": "folder"
      },
      "executeOnce": true,
      "typeVersion": 1
    },
    {
      "id": "750f6e0d-a152-40bf-aa98-3027c922d5bc",
      "name": "Create Google Drive Folder",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        -1888,
        208
      ],
      "parameters": {
        "name": "={{ $('Receive Onboarding Form').item.json['Company Name'] }} | Client Folder",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive",
          "cachedResultUrl": "https://drive.google.com/drive/my-drive",
          "cachedResultName": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "list",
          "value": "1jsIxf7spwYXaWW8ZR02gtABWpq_8qwx7",
          "cachedResultUrl": "https://drive.google.com/drive/folders/1jsIxf7spwYXaWW8ZR02gtABWpq_8qwx7",
          "cachedResultName": "Lead Magnets"
        },
        "resource": "folder"
      },
      "typeVersion": 3
    },
    {
      "id": "39c5ed7c-6bd9-41a9-9536-e57b1c44bfd6",
      "name": "Contact & Attribution",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        272,
        -64
      ],
      "parameters": {
        "width": 700,
        "height": 1268,
        "content": "## Was this helpful? Get in touch!\n\n[![clic](https://vptkuqoipqbebipqjnqw.supabase.co/storage/v1/object/public/Milo%20Bravo/seeAxWUupcOOXY5tntexZ_video.gif)](https://tally.so/r/EkKGgB)\n\nI really hope this automation helped you. Your feedback is incredibly valuable and helps me create better resources for business and the n8n community.\n\n### **Have Feedback, a Question, or a Project Idea?**\n\nI've streamlined the way we connect. It all starts with one simple form that takes less than 10 seconds. After that, you'll chat with my AI assistant who will gather the key details and pass them directly on to me.\n\n####  **[Start the conversation here](https://tally.so/r/EkKGgB)**\n\n*   **Give Feedback:** Share your thoughts on this template\u2014whether you found a typo, encountered an unexpected error, have a suggestion, or just want to say thanks!\n\n*   **n8n Consulting:** Have a complex business challenge or need a custom workflow built from scratch? Let's partner on a powerful automation solution tailored to your specific needs.\n\n*   **Join your team:** We can work together to get you launched with confidence.\n\n---\n\nHappy Automating!\n[Milo Bravo](https://linkedin.com/in/MiloBravo/) | BRaiA Labs | Automation & BI Systems + AI Integration\n"
      },
      "typeVersion": 1
    },
    {
      "id": "a9cb01cb-7755-4230-94e0-56b43a3457f3",
      "name": "Workflow Overview",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -3440,
        0
      ],
      "parameters": {
        "width": 920,
        "height": 660,
        "content": "## Client Onboarding Automation\n\n### **What it does:**\nAutomates the entire client onboarding process \u2014 from form submission to workspace setup, AI-generated task lists, and a personalized welcome email.\n\n### **Why it matters:**\nEliminates hours of manual setup per new client. Ensures every onboarding follows the same high-quality process with Google Drive folders, ClickUp project boards, and AI-scoped task lists created automatically.\n\n### **How it works:**\n1. Client submits an onboarding form with their details and proposal/scope document\n2. The PDF is extracted and parsed into plain text\n3. A Google Drive folder is created for the client\n4. A ClickUp folder and list are created for project management\n5. An AI agent analyzes the proposal and generates 20\u201330 detailed onboarding tasks\n6. Each task is created in ClickUp with titles, descriptions, and due dates\n7. A personalized welcome email is sent with workspace links and next steps\n\n### **Setup steps:**\n1. Connect your **Gmail OAuth2** credential\n2. Connect your **OpenAI API** credential (GPT-4o-mini)\n3. Connect your **ClickUp API** credential and update Team/Space IDs\n4. Connect your **Google Drive OAuth2** credential and set the parent folder\n5. Update the welcome email template with your name, company, and Calendly link\n6. Test with a manual form submission before going live"
      },
      "typeVersion": 1
    },
    {
      "id": "28b4e751-66c7-4c6a-a979-b62940c18670",
      "name": "Setup Guide",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -3440,
        720
      ],
      "parameters": {
        "color": 6,
        "width": 920,
        "height": 680,
        "content": "## Setup Guide\n\nFollow these steps to get started:\n\n1. **Connect Gmail**\n   Add your Gmail OAuth2 credentials in the **Send Welcome Email** node. Update the email body with your company name, Calendly link, and signature.\n\n2. **Connect OpenAI**\n   Add your OpenAI API key in the **OpenAI Chat Model** node. The workflow uses `gpt-4o-mini` by default \u2014 you can swap to any compatible model.\n\n3. **Configure ClickUp**\n   - Add your ClickUp API credentials in all three ClickUp nodes\n   - Replace the `team` and `space` IDs with your own (find these in ClickUp Settings > Spaces)\n   - Update the `assignees` array in **Create ClickUp Task** with your team member IDs\n\n4. **Configure Google Drive**\n   - Connect your Google Drive OAuth2 credentials in **Create Google Drive Folder**\n   - Update the `folderId` to point to your desired parent folder\n\n5. **Customize the AI Prompt**\n   The system prompt in **Generate Onboarding Tasks** defines how tasks are scoped. Adjust the SOP, default durations, and task categories to match your onboarding process.\n\n6. **Update Placeholders**\n   Search for `YOUR_CALENDLY_LINK`, `YOUR_NAME`, and `YOUR_COMPANY` in the welcome email and replace with your values.\n\n7. **Test the Flow**\n   Run a manual execution with a sample PDF to verify all connections work before activating."
      },
      "typeVersion": 1
    },
    {
      "id": "sect-1-trigger-intake",
      "name": "Section 1 \u2014 Trigger & Intake",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2496,
        80
      ],
      "parameters": {
        "color": 4,
        "width": 896,
        "height": 260,
        "content": "## 1. Trigger & Document Intake\n\nClient submits the onboarding form with their name, email, company, website, and proposal PDF. The document is extracted to plain text for AI processing."
      },
      "typeVersion": 1
    },
    {
      "id": "sect-2-workspace-setup",
      "name": "Section 2 \u2014 Workspace Setup",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1568,
        80
      ],
      "parameters": {
        "color": 5,
        "width": 464,
        "height": 260,
        "content": "## 2. Workspace Setup\n\nCreates a dedicated Google Drive folder and ClickUp project folder + list for the new client. All named automatically using the company name from the form."
      },
      "typeVersion": 1
    },
    {
      "id": "sect-3-ai-tasks",
      "name": "Section 3 \u2014 AI Task Generation",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1072,
        80
      ],
      "parameters": {
        "color": 2,
        "width": 832,
        "height": 360,
        "content": "## 3. AI Task Generation\n\nAn AI agent analyzes the proposal document and generates 20\u201330 detailed onboarding tasks with titles, descriptions, and due dates. Tasks are created individually in ClickUp via a batch loop."
      },
      "typeVersion": 1
    },
    {
      "id": "sect-4-notification",
      "name": "Section 4 \u2014 Client Notification",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -176,
        80
      ],
      "parameters": {
        "color": 4,
        "width": 420,
        "height": 360,
        "content": "## 4. Client Notification\n\nSends a personalized welcome email with links to the Google Drive folder, Calendly scheduling, and next steps."
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "callerPolicy": "workflowsFromSameOwner",
    "availableInMCP": false,
    "executionOrder": "v1"
  },
  "versionId": "c5081692-d32c-4152-a8a2-bc25c508952d",
  "connections": {
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Generate Onboarding Tasks",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Split Tasks Array": {
      "main": [
        [
          {
            "node": "Loop Through Tasks",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Through Tasks": {
      "main": [
        [
          {
            "node": "Send Welcome Email",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Create ClickUp Task",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create ClickUp List": {
      "main": [
        [
          {
            "node": "Generate Onboarding Tasks",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create ClickUp Task": {
      "main": [
        [
          {
            "node": "Loop Through Tasks",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract PDF Content": {
      "main": [
        [
          {
            "node": "Set Project Information",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Drive Folder ID": {
      "main": [
        [
          {
            "node": "Create ClickUp Folder",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create ClickUp Folder": {
      "main": [
        [
          {
            "node": "Create ClickUp List",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse Task JSON Output": {
      "ai_outputParser": [
        [
          {
            "node": "Generate Onboarding Tasks",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Receive Onboarding Form": {
      "main": [
        [
          {
            "node": "Extract PDF Content",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Project Information": {
      "main": [
        [
          {
            "node": "Create Google Drive Folder",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Onboarding Tasks": {
      "main": [
        [
          {
            "node": "Split Tasks Array",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Google Drive Folder": {
      "main": [
        [
          {
            "node": "Set Drive Folder ID",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Who is this for?

Source: https://n8n.io/workflows/13658/ — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

Transform your manual hiring process into an intelligent evaluation system that saves 15-20 minutes per candidate! This workflow automates the entire candidate assessment pipeline - from CSV/XLSX uplo

Form Trigger, Google Sheets, Google Drive +8
AI & RAG

This n8n workflow is designed for e-commerce businesses, digital marketers, and content creators who want to automatically generate professional 3D product videos from product images. It's perfect for

Form Trigger, Google Drive, HTTP Request +9
AI & RAG

Agente_Creador_de_Freebies. Uses formTrigger, agent, lmChatGoogleGemini, lmChatOpenAi. Event-driven trigger; 26 nodes.

Form Trigger, Agent, Google Gemini Chat +6
AI & RAG

This workflow is ideal for:

Airtable, OpenAI Chat, Output Parser Structured +4
AI & RAG

Onboarding Workflow. Uses gmail, formTrigger, stickyNote, slack. Event-driven trigger; 19 nodes.

Gmail, Form Trigger, Slack +5