{
  "name": "Onboarding Workflow",
  "nodes": [
    {
      "parameters": {
        "sendTo": "={{ $('On form submission').item.json.Email }}",
        "subject": "=Welcome to PRVN Digital {{ $('On form submission').item.json.Name }}- Your Onboarding is Complete!",
        "emailType": "text",
        "message": "=Hi {{ $('On form submission').item.json.Name }},\n\nWelcome aboard! We\u2019re excited to partner with you and your team to help scale your business with AI-powered systems.\n\nYour project workspace is live, and we\u2019ve already kicked off the initial project scoping.\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,\nNolan Harper\nFounder, Agent Stack\nwww.agent-stack.ai",
        "options": {
          "appendAttribution": false
        }
      },
      "id": "e7f9bc9b-0467-4149-9ff6-27a1935a1572",
      "name": "Send Welcome Email",
      "type": "n8n-nodes-base.gmail",
      "typeVersion": 2.1,
      "position": [
        -560,
        1480
      ],
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "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
            },
            {
              "fieldLabel": "Proposal/Scope Document",
              "fieldType": "file",
              "acceptFileTypes": "drop the proposal here",
              "requiredField": true
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.formTrigger",
      "typeVersion": 2.2,
      "position": [
        -2140,
        1500
      ],
      "id": "91ab9291-f0a3-4ab9-ab4a-71f744fb86dd",
      "name": "On form submission"
    },
    {
      "parameters": {
        "content": "## Suggested Triggers \n1. Payment received\n2. Contract Signed\n3. CRM Opportunity Change",
        "height": 220,
        "width": 440,
        "color": 7
      },
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -3160,
        1820
      ],
      "typeVersion": 1,
      "id": "ee50f59c-e70f-402a-bcd8-18fa72c78619",
      "name": "Sticky Note1"
    },
    {
      "parameters": {
        "authentication": "oAuth2",
        "resource": "channel",
        "channelId": "={{ $('On form submission').item.json['Company Name'].replace(/\\s+/g, '_').toLowerCase() + '_channel' }}"
      },
      "type": "n8n-nodes-base.slack",
      "typeVersion": 2.3,
      "position": [
        -1040,
        1580
      ],
      "id": "faba0e6d-339c-42b2-acee-ddd1928703ee",
      "name": "Slack | Create Channel",
      "executeOnce": true,
      "credentials": {
        "slackOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "authentication": "oAuth2",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "value": "={{ $json.id }}",
          "mode": "id"
        },
        "text": "=\ud83c\udf89 Welcome {{ $('On form submission').item.json.Name }}! \ud83c\udf89\n\nWe\u2019re excited to have you on board and can\u2019t wait to dive in!\n\nThis channel will be our main hub for communication throughout the project. Feel free to drop any questions, updates, or files here \u2014 we\u2019ll do the same on our end. We\u2019re here to support you every step of the way.\n\nTo get things rolling, we\u2019ll be:\n\u2705 Sharing your onboarding checklist\n\u2705 Setting up our kickoff call\n\u2705 Walking through next steps and deliverables\n\nIf you ever need anything, just tag us here \u2014 we\u2019ve got you covered.\n\nLet\u2019s make some magic happen! \ud83d\ude80\n\n\u2014 Lucy",
        "otherOptions": {}
      },
      "type": "n8n-nodes-base.slack",
      "typeVersion": 2.3,
      "position": [
        -800,
        1580
      ],
      "id": "f93773a3-88a4-4060-8501-387cb57d5aa9",
      "name": "Slack | Post Message",
      "credentials": {
        "slackOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "content": "## \ud83d\ude80 AI Automation Client Onboarding Workflow\n\n**Purpose**: Automate the complete onboarding process for new AI automation clients\n\n**Triggered by**: n8n Form\n\n**Actions performed**:\n1. \u2705 Create & configure Google Drive folder\n2. \u2705 Create ClickUp project from template\n3. \u2705 Create dedicated Slack channel\n4. \u2705 Send confirmation notifications\n\n**Expected Jotform fields**:\n- client_name\n- client_email\n- project_name\n- client_company\n- scoping_document\n\n**Note**: Update credentials for Google Drive, ClickUp, and Slack before using this workflow.",
        "height": 580,
        "width": 440,
        "color": 5
      },
      "id": "45612186-416a-41b6-9d6b-b8fdfa95d733",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -3160,
        1220
      ]
    },
    {
      "parameters": {
        "content": "## \ud83d\udd27 Configuration Notes\n\n**Before using this workflow**:\n\n1. **Google Drive**: \n   - Set up OAuth2 credentials\n   - Ensure account has folder creation permissions\n\n2. **ClickUp**:\n   - Get API token from ClickUp settings\n   - Update `templateId` with your actual template ID\n   - Verify workspace permissions\n\n3. **Slack**:\n   - Create Slack app with bot permissions\n   - Add OAuth scopes: channels:write, chat:write, users:read.email\n\n4. **Email (SMTP)**:\n   - Configure SMTP credentials for internal notifications\n   - Update recipient email address",
        "height": 580,
        "width": 340,
        "color": 3
      },
      "id": "aabf749b-8800-4d6d-abfa-baeca38d9f45",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -2660,
        1220
      ]
    },
    {
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "typeVersion": 1.2,
      "position": [
        -1920,
        1800
      ],
      "id": "745e82a9-e78a-4f4f-be57-ba4b1197800a",
      "name": "OpenAI Chat Model",
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "promptType": "define",
        "text": "={{ $('Rename Doc').item.json.projectInformation }}",
        "hasOutputParser": true,
        "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"
        }
      },
      "type": "@n8n/n8n-nodes-langchain.agent",
      "typeVersion": 1.9,
      "position": [
        -1880,
        1600
      ],
      "id": "35462683-ab90-4273-a861-ae45ae2f41e2",
      "name": "Segment Tasks"
    },
    {
      "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"
      },
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "typeVersion": 1.2,
      "position": [
        -1680,
        1800
      ],
      "id": "71f1c311-666b-4516-a0d7-224227b5cb13",
      "name": "Structured Output Parser"
    },
    {
      "parameters": {
        "fieldToSplitOut": "output.tasks",
        "options": {}
      },
      "type": "n8n-nodes-base.splitOut",
      "typeVersion": 1,
      "position": [
        -1520,
        1600
      ],
      "id": "9b552cd5-9618-4b10-82e1-fa5fe2f61222",
      "name": "Split Out1"
    },
    {
      "parameters": {
        "authentication": "oAuth2",
        "team": "90131588784",
        "space": "90136661736",
        "folder": "={{ $('ClickUp | Create Folder').item.json.id }}",
        "list": "={{ $('ClickUp | Create List').item.json.id }}",
        "name": "={{ $json.title }}",
        "additionalFields": {
          "assignees": [
            144201222
          ],
          "content": "={{ $json.description }}",
          "dueDate": "={{ $json.due_date }}",
          "priority": 3
        }
      },
      "type": "n8n-nodes-base.clickUp",
      "typeVersion": 1,
      "position": [
        -1100,
        1780
      ],
      "id": "597ab514-06be-4be2-99a5-2cbbf82e652c",
      "name": "ClickUp",
      "credentials": {
        "clickUpOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "options": {}
      },
      "type": "n8n-nodes-base.splitInBatches",
      "typeVersion": 3,
      "position": [
        -1320,
        1600
      ],
      "id": "4641eeaa-5a3e-4a19-86ec-b353e54369a9",
      "name": "Loop Over Items"
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "1ef9b1c6-86b6-43b4-a02d-3250a6f7ba4d",
              "name": "projectInformation",
              "value": "={{ $json.text }}",
              "type": "string"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        -1680,
        1360
      ],
      "id": "cf1ef187-8dd5-4180-a45d-8c746055f153",
      "name": "Rename Doc"
    },
    {
      "parameters": {
        "operation": "pdf",
        "binaryPropertyName": "Proposal_Scope_Document",
        "options": {}
      },
      "type": "n8n-nodes-base.extractFromFile",
      "typeVersion": 1,
      "position": [
        -1860,
        1360
      ],
      "id": "92ff2386-420d-4f60-9a02-66d7aa788c5b",
      "name": "Extract from File"
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "13bbafe7-47b1-45d5-8ea0-914de02c8e8a",
              "name": "DriveFolderID",
              "value": "={{ $json.id }}",
              "type": "string"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        -1240,
        1360
      ],
      "id": "45796222-b826-44d7-9488-586f08e5840a",
      "name": "Rename Folder ID"
    },
    {
      "parameters": {
        "authentication": "oAuth2",
        "resource": "list",
        "operation": "create",
        "team": "90131588784",
        "space": "90136661736",
        "folder": "={{ $json.id }}",
        "name": "= {{ $('On form submission').item.json['Company Name'] }} Onboarding",
        "additionalFields": {}
      },
      "type": "n8n-nodes-base.clickUp",
      "typeVersion": 1,
      "position": [
        -840,
        1360
      ],
      "id": "255db016-e14f-4528-a40a-567baf85362f",
      "name": "ClickUp | Create List",
      "credentials": {
        "clickUpOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "authentication": "oAuth2",
        "resource": "folder",
        "team": "90131588784",
        "space": "90136661736",
        "name": "={{ $('On form submission').item.json['Company Name'] }} | Client Folder"
      },
      "id": "a96deaf6-930b-48db-b450-b6c97e791f9e",
      "name": "ClickUp | Create Folder",
      "type": "n8n-nodes-base.clickUp",
      "typeVersion": 1,
      "position": [
        -1040,
        1360
      ],
      "executeOnce": true,
      "credentials": {
        "clickUpOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "onError": "continueRegularOutput"
    },
    {
      "parameters": {
        "resource": "folder",
        "name": "={{ $('On form submission').item.json['Company Name'] }} | Client Folder",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive"
        },
        "folderId": {
          "__rl": true,
          "value": "1BCmaacZxt60OFz2L02wBLJd-AGpIYPNQ",
          "mode": "list",
          "cachedResultName": "Onboardings",
          "cachedResultUrl": "https://drive.google.com/drive/folders/1BCmaacZxt60OFz2L02wBLJd-AGpIYPNQ"
        },
        "options": {}
      },
      "id": "ae99fae9-9abf-4223-938c-02e11555ceb4",
      "name": "Create Main Client Folder",
      "type": "n8n-nodes-base.googleDrive",
      "typeVersion": 3,
      "position": [
        -1460,
        1360
      ],
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      }
    }
  ],
  "connections": {
    "On form submission": {
      "main": [
        [
          {
            "node": "Extract from File",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send Welcome Email": {
      "main": [
        []
      ]
    },
    "Slack | Create Channel": {
      "main": [
        [
          {
            "node": "Slack | Post Message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Slack | Post Message": {
      "main": [
        [
          {
            "node": "Send Welcome Email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Segment Tasks",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Segment Tasks": {
      "main": [
        [
          {
            "node": "Split Out1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Segment Tasks",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Split Out1": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ClickUp": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [
          {
            "node": "Slack | Create Channel",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "ClickUp",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Rename Doc": {
      "main": [
        [
          {
            "node": "Create Main Client Folder",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract from File": {
      "main": [
        [
          {
            "node": "Rename Doc",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Rename Folder ID": {
      "main": [
        [
          {
            "node": "ClickUp | Create Folder",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ClickUp | Create List": {
      "main": [
        [
          {
            "node": "Segment Tasks",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ClickUp | Create Folder": {
      "main": [
        [
          {
            "node": "ClickUp | Create List",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Main Client Folder": {
      "main": [
        [
          {
            "node": "Rename Folder ID",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": false,
  "settings": {
    "executionOrder": "v1",
    "callerPolicy": "workflowsFromSameOwner"
  },
  "versionId": "87c7460f-6a40-4fd3-b98e-bd790aa8f77b",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "id": "9m1HtZUEF4s2tPO3",
  "tags": [
    {
      "createdAt": "2025-06-15T01:30:54.897Z",
      "updatedAt": "2025-06-15T01:30:54.897Z",
      "id": "cg9ZHVDCL4aSk5M7",
      "name": "onboarding"
    },
    {
      "createdAt": "2025-05-22T19:48:32.089Z",
      "updatedAt": "2025-05-22T19:48:32.089Z",
      "id": "jKbml9DwBRmc98rB",
      "name": "Client Onboarding"
    },
    {
      "createdAt": "2025-06-15T01:30:54.925Z",
      "updatedAt": "2025-06-15T01:30:54.925Z",
      "id": "onaU8NX65OJTUv7l",
      "name": "automation"
    }
  ]
}