{
  "id": "MvOuBZz9kKY28FW0",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "AI System that Onboards Clients in 30 Seconds",
  "tags": [],
  "nodes": [
    {
      "id": "a0128587-4111-4b8d-b3fd-fa282ceb15dc",
      "name": "On form submission1",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -32,
        288
      ],
      "parameters": {
        "options": {},
        "formTitle": "Client Onboarding Form",
        "formFields": {
          "values": [
            {
              "fieldLabel": "Name",
              "placeholder": "John David",
              "requiredField": true
            },
            {
              "fieldType": "email",
              "fieldLabel": "Email",
              "placeholder": "user@example.com",
              "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": ".pdf,.doc,.docx"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "367c750b-fb53-4705-9ba7-2025d00815b5",
      "name": "Extract from File1",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        176,
        288
      ],
      "parameters": {
        "options": {},
        "operation": "pdf",
        "binaryPropertyName": "Proposal_Scope_Document"
      },
      "typeVersion": 1
    },
    {
      "id": "2aa093e9-da2e-4adb-b971-20925fb45b11",
      "name": "Remane Doc",
      "type": "n8n-nodes-base.set",
      "position": [
        384,
        288
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "55c052f0-b357-4c81-bfbe-b3cb210e3f99",
              "name": "projectInformation",
              "type": "string",
              "value": "={{ $json.text }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "73414e81-a61f-4a02-a7e4-00251266c1b2",
      "name": "Create Main Client Folder",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        592,
        288
      ],
      "parameters": {
        "name": "={{ $('On form submission1').item.json['Company Name'] }} ~ Client Folder ",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "list",
          "value": "1Iv15LHLDe7vbh7omB7qilRc42EMAvBru",
          "cachedResultUrl": "https://drive.google.com/drive/folders/1Iv15LHLDe7vbh7omB7qilRc42EMAvBru",
          "cachedResultName": "Onboardings"
        },
        "resource": "folder"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "9fe4c7ac-70e3-488e-af64-fd79ff643359",
      "name": "Remane Folder ID",
      "type": "n8n-nodes-base.set",
      "position": [
        800,
        288
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "34a16250-6584-4455-b6ad-17ee13e6acea",
              "name": "DriveFolderId",
              "type": "string",
              "value": "={{ $json.id }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "2c285e19-389c-4d2b-881e-e9db9399c83b",
      "name": "Click Up~Create a folder",
      "type": "n8n-nodes-base.clickUp",
      "position": [
        1008,
        288
      ],
      "parameters": {
        "name": "={{ $('On form submission1').item.json['Company Name'] }}~Client Folder",
        "team": "90121125783",
        "space": "90124717181",
        "resource": "folder",
        "authentication": "oAuth2"
      },
      "credentials": {
        "clickUpOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "d0322304-44a2-4a1b-ba5a-80876cacd23e",
      "name": "Click Up~Create a list",
      "type": "n8n-nodes-base.clickUp",
      "position": [
        1216,
        288
      ],
      "parameters": {
        "name": "={{ $('On form submission1').item.json['Company Name'] }} Onboarding",
        "team": "90121125783",
        "space": "90124717181",
        "folder": "={{ $json.id }}",
        "resource": "list",
        "operation": "create",
        "authentication": "oAuth2",
        "additionalFields": {}
      },
      "credentials": {
        "clickUpOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "88d30b15-e09c-4970-b75c-f1b6602eae6a",
      "name": "Segment Task",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -32,
        528
      ],
      "parameters": {
        "text": "={{ $('Remane Doc').item.json.projectInformation }}",
        "options": {
          "systemMessage": "= Overview\nYou are an AI onboarding assistant tasked with reviewing a client\u2019s proposal and scoping document. Your role is to extract a detailed list of actionable tasks, give each one a clear title, estimate its duration, and set an appropriate due date. The final deliverable will be used to populate a ClickUp folder so the team can begin onboarding right away.\n\nContext\nInput will be provided as a plain text string containing the proposal and scoping document.\n\nYou operate in US Central Time.\n\nEach output must begin with the current date and time, which will be used to calculate due dates.\n\nAll due dates should follow the MM/DD/YYYY format.\n\nUse standard estimated durations unless the document specifies otherwise.\n\nThe task list should be thorough, ideally including 20\u201330 to-do items to capture both major and minor steps.\n\nInstructions\nRead and analyze the scoping document.\n\nBreak down the onboarding process into detailed subtasks.\n\nFor each task:\n\nProvide a clear, concise title.\n\nWrite a description with enough detail to guide execution.\n\nEstimate the duration starting from today\u2019s date.\n\nFormat the due date as MM/DD/YYYY.\n\nStructure the output so it can be easily transferred into ClickUp.\n\nBegin the output with the current date and time in US Central Time.\n\nTools\nInternal clock set to US Central Time\n\nText parser to extract and organize tasks\n\nPredefined duration rules (use default estimates when none are provided)\n\nExamples\nInput: \u201cInitial strategy alignment call and documentation setup expected within first 3 days.\u201d\n\nOutput:\nCurrent Date and Time: 06/20/2025 10:30 AM (US Central)\n\nTask 1\n\nTitle: Book Strategy Alignment Call\n\nDescription: Coordinate and schedule a kickoff call with the client to discuss strategy.\n\nDue Date: 06/21/2025\n\nTask 2\n\nTitle: Create Strategy Notes Document\n\nDescription: Prepare a shared document to collect notes and agreements from the alignment call.\n\nDue Date: 06/23/2025\n\nSOP (Standard Operating Procedure)\nRecord the current date and time in US Central Time.\n\nReview the document to identify all tasks, both explicit and implied.\n\nBreak down processes into granular steps, aiming for 20\u201330 tasks.\n\nAssign each task a title, detailed description, and calculated due date.\n\nFormat the output for clean ClickUp import.\n\nFinal Notes\nDefault task duration is 2 days unless stated otherwise.\n\nIf a due date falls on a weekend, move it to the next weekday.\n\nFocus on sequential, actionable items such as tool setup, access requests, documentation, meetings, integrations, QA, testing, and more.\n\nEach task should stand as an independent, actionable step in the onboarding flow."
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 2.2
    },
    {
      "id": "3008eedb-3ef8-41e0-b60c-6b12f6dacea8",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -160,
        848
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "d0059ab7-d1c0-418a-ae0a-6359bc441218",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        176,
        800
      ],
      "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.3
    },
    {
      "id": "a6988b38-2ea0-4425-a3e8-301f45055e0d",
      "name": "Send Welcome Email",
      "type": "n8n-nodes-base.gmail",
      "position": [
        1344,
        544
      ],
      "parameters": {
        "sendTo": "= {{ $('On form submission1').item.json.Email }}",
        "message": "=Hi {{ $('On form submission1').item.json.Name }} ,\n\nWelcome aboard! We\u2019re really excited to work with you and your team on growing your business with AI-powered systems.\n\nYour project workspace is ready to go, and we\u2019ve already started mapping out the first steps.\n\nYou should be recieving invites to the following:\n\nSlack \u2013 Our main communication hub\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 Main Client Folder').item.json.id }})\n\nSchedule your onboarding call:\nhttps://go.oncehub.com/AgentStackClientOnboarding\n\nSit tight\u2014we\u2019ll 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\u2019ll build together.\n\nBest,\n(Your Name)\nFounder, (Your Comapny) \n(Your Website)",
        "options": {
          "appendAttribution": false
        },
        "subject": "=Welcome to (YOUR COMPANY NAME) {{ $('On form submission1').item.json.Name }}-Your Onboarding is Complete!",
        "emailType": "text"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "634d8cf7-094c-45e5-8f3b-2c207bc70057",
      "name": "Slack | Create Channel",
      "type": "n8n-nodes-base.slack",
      "position": [
        800,
        512
      ],
      "parameters": {
        "resource": "channel",
        "channelId": "= {{ $('On form submission').item.json['Company Name'].replace(/\\s+/g, '_').toLowerCase() + '_channel' }}",
        "authentication": "oAuth2",
        "channelVisibility": "=public"
      },
      "executeOnce": true,
      "typeVersion": 2.3
    },
    {
      "id": "0305b457-da75-4b0b-9218-c272b24bb3b8",
      "name": "Slack | Post Message",
      "type": "n8n-nodes-base.slack",
      "position": [
        1040,
        512
      ],
      "parameters": {
        "text": "=Hey {{ $('On form submission1').item.json.Name }} \u2014 welcome aboard! \n\nWe\u2019re so glad to have you with us and can\u2019t wait to get started.\n\nThis will be our main spot to chat, share updates, and swap files. If you\u2019ve got questions or ideas, just drop them here \u2014 we\u2019ll be doing the same.\n\nNext up, we\u2019ll:\n\u2705 Send over your onboarding checklist\n\u2705 Book our kickoff call\n\u2705 Walk you through the next steps and deliverables\n\nAnytime you need something, just tag us. We\u2019ve got you covered.\n\nHere\u2019s to making something amazing together! \n\n- YOUR NAME ",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $json.id }}"
        },
        "otherOptions": {},
        "authentication": "oAuth2"
      },
      "typeVersion": 2.3
    },
    {
      "id": "ced4f3b6-9e89-4dbe-a238-91e7dfa255ac",
      "name": "Split Out1",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        320,
        528
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "output.tasks"
      },
      "typeVersion": 1
    },
    {
      "id": "aed084e7-5082-45f7-8e86-dd8cdf1efc14",
      "name": "Loop Over Items",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        512,
        528
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "5351d60b-b902-4f51-ba78-6be220c6541e",
      "name": "Create a task",
      "type": "n8n-nodes-base.clickUp",
      "position": [
        736,
        704
      ],
      "parameters": {
        "list": "={{ $('ClickUp | Create List').item.json.id }}",
        "name": "={{ $json.title }}",
        "team": "90131588784",
        "space": "90136661736",
        "folder": "={{ $('ClickUp | Create Folder').item.json.id }}",
        "authentication": "oAuth2",
        "additionalFields": {
          "content": "={{ $json.description }}",
          "dueDate": "={{ $json.due_date }}",
          "priority": 3,
          "assignees": [
            144201222
          ]
        }
      },
      "credentials": {
        "clickUpOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "0da84048-eca0-40fd-9b9f-fee5e806f011",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -560,
        160
      ],
      "parameters": {
        "color": 4,
        "width": 432,
        "height": 640,
        "content": " \n\n## \ud83d\udd27 Configuration Notes\n\n**Before running this workflow**:\n\n1. **Google Drive**:\n\n   * Configure OAuth2 credentials\n   * Confirm the account can create folders\n\n2. **ClickUp**:\n\n   * Retrieve API token from ClickUp settings\n   * Replace `templateId` with your actual template ID\n   * Check that workspace permissions are set correctly\n\n3. **Slack**:\n\n   * Set up a Slack app with bot permissions\n   * Include OAuth scopes: `channels:write`, `chat:write`, `users:read.email`\n\n4. **Email (SMTP)**:\n\n   * Set up SMTP credentials for internal notifications\n   * Specify the recipient email address\n\n---\n "
      },
      "typeVersion": 1
    },
    {
      "id": "76e96e9c-207b-4f7e-a43f-f9a239e07897",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1360,
        160
      ],
      "parameters": {
        "color": 7,
        "width": 752,
        "height": 560,
        "content": " \n##  AI Client Onboarding Workflow\n\n**Purpose**: Streamline and fully automate the onboarding process for new **AI automation** clients\n\n**Triggered by**: **n8n** form submission\n\n**Actions performed**:\n\n1. \u2705 **Create and configure** a Google Drive folder\n2. \u2705 **Generate** a **ClickUp** project from a template\n3. \u2705 **Set up** a dedicated **Slack** channel\n4. \u2705 **Send** confirmation notifications\n\n**Required Jotform fields**:\n\n* **client\\_name**\n* **client\\_email**\n* **project\\_name**\n* **client\\_company**\n* **scoping\\_document**\n\n**Note**: Ensure credentials for **Google Drive**, **ClickUp**, and **Slack** are updated before running this workflow.\n\nSuggested triggers include payment received, contract signed, or a change in CRM opportunity status.\n\n  "
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "a8454f2d-a86d-4266-ad1c-975bd2fc7698",
  "connections": {
    "Remane Doc": {
      "main": [
        [
          {
            "node": "Create Main Client Folder",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Out1": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Segment Task": {
      "main": [
        [
          {
            "node": "Split Out1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create a task": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [
          {
            "node": "Slack | Create Channel",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Create a task",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Remane Folder ID": {
      "main": [
        [
          {
            "node": "Click Up~Create a folder",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Segment Task",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Extract from File1": {
      "main": [
        [
          {
            "node": "Remane Doc",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "On form submission1": {
      "main": [
        [
          {
            "node": "Extract from File1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Slack | Post Message": {
      "main": [
        [
          {
            "node": "Send Welcome Email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Click Up~Create a list": {
      "main": [
        [
          {
            "node": "Segment Task",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Slack | Create Channel": {
      "main": [
        [
          {
            "node": "Slack | Post Message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Click Up~Create a folder": {
      "main": [
        [
          {
            "node": "Click Up~Create a list",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Segment Task",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Create Main Client Folder": {
      "main": [
        [
          {
            "node": "Remane Folder ID",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}