AutomationFlowsEmail & Gmail › Kick Off Client Projects After Stripe Payment with Google Drive, Clickup,…

Kick Off Client Projects After Stripe Payment with Google Drive, Clickup,…

Original n8n title: Kick Off Client Projects After Stripe Payment with Google Drive, Clickup, Gmail, Sheets, and Slack

ByChris Zhang @clissz on n8n.io

Categories: Payments, Project Operations, Client Onboarding

Event trigger★★★★★ complexity35 nodesStripe TriggerGoogle DriveClickUpGmailSlackGoogle SheetsStop And Error
Email & Gmail Trigger: Event Nodes: 35 Complexity: ★★★★★ Added:
Kick Off Client Projects After Stripe Payment with Google Drive, Clickup,… — n8n workflow card showing Stripe Trigger, Google Drive, ClickUp integration

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

This workflow follows the Gmail → Google Drive 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": "PCh79hpLqqEP7tDN",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Payment to Project Kickoff Automation",
  "tags": [],
  "nodes": [
    {
      "id": "fda571a7-7e63-4414-9dbd-9258ce4ee217",
      "name": "Payment Received",
      "type": "n8n-nodes-base.stripeTrigger",
      "position": [
        1088,
        4224
      ],
      "parameters": {
        "events": [
          "checkout.session.completed",
          "invoice.payment_succeeded"
        ]
      },
      "credentials": {
        "stripeApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "825aada4-6cf6-44ac-b2c3-24d91fd19ffc",
      "name": "Workflow Configuration",
      "type": "n8n-nodes-base.set",
      "position": [
        1312,
        4224
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "id-1",
              "name": "intakeFormUrl",
              "type": "string",
              "value": "https://tally.so/r/YOUR_FORM_ID"
            },
            {
              "id": "id-2",
              "name": "parentFolderId",
              "type": "string",
              "value": "Your Parent Folder ID"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "651a06b9-9405-4ba9-8142-fa38869ead00",
      "name": "Create Client Root Folder",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        2432,
        3968
      ],
      "parameters": {
        "name": "={{ $now.format('yyyy-MM') }} \u2014 {{ $('Get row(s) in sheet').item.json['Company Legal Name'] }} \u2014 {{ $json.package }}",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Workflow Configuration').item.json.parentFolderId }}"
        },
        "resource": "folder"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "23673846-d09f-4abb-9dd8-d29319727a3c",
      "name": "Create 01-Intake Folder",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        2880,
        3392
      ],
      "parameters": {
        "name": "01-Intake",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Create Client Root Folder').item.json.id }}"
        },
        "resource": "folder"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "1b5dc479-d929-4778-a9a8-63382ece7c9f",
      "name": "Create 02-Logo Folder",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        2880,
        3776
      ],
      "parameters": {
        "name": "02-Logo",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Create Client Root Folder').item.json.id }}"
        },
        "resource": "folder"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "373f5138-f160-4970-8e06-d1615724016f",
      "name": "Create 03-Brand Kit Folder",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        2880,
        3968
      ],
      "parameters": {
        "name": "03-Brand Kit",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Create Client Root Folder').item.json.id }}"
        },
        "resource": "folder"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "5e9dab2b-c226-4676-9774-b11a002004a4",
      "name": "Create 04-Website Folder",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        2880,
        4160
      ],
      "parameters": {
        "name": "04-Website",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Create Client Root Folder').item.json.id }}"
        },
        "resource": "folder"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "884c9120-1718-4018-8b95-eff07cb1062a",
      "name": "Create 05-Final Delivery Folder",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        2880,
        4352
      ],
      "parameters": {
        "name": "05-Final Delivery",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Create Client Root Folder').item.json.id }}"
        },
        "resource": "folder"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "7c69158e-c53b-459b-bb4d-a004727b7df1",
      "name": "Create Task: Brand Questionnaire Review",
      "type": "n8n-nodes-base.clickUp",
      "position": [
        2656,
        5072
      ],
      "parameters": {
        "list": "={{ $json.id }}",
        "name": "=Brand Questionnaire Review",
        "team": "9017591357",
        "space": "90173166703",
        "folderless": true,
        "additionalFields": {
          "status": "to do",
          "content": "Review client intake form responses and brand questionnaire",
          "priority": 3
        }
      },
      "credentials": {
        "clickUpApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "21f68d34-a53e-44a5-950f-feedfd93d472",
      "name": "Create Task: Logo Concepts",
      "type": "n8n-nodes-base.clickUp",
      "position": [
        2656,
        4880
      ],
      "parameters": {
        "list": "={{ $('Create a list').item.json.id }}",
        "name": "=Logo Concepts",
        "team": "9017591357",
        "space": "90173166703",
        "folderless": true,
        "additionalFields": {
          "status": "to do",
          "content": "Create initial logo concepts based on brand questionnaire",
          "priority": 3
        }
      },
      "credentials": {
        "clickUpApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "c5a79fc8-8f2c-44ca-a6de-9fa1da9b6c5d",
      "name": "Create Task: Brand Kit",
      "type": "n8n-nodes-base.clickUp",
      "position": [
        2656,
        4688
      ],
      "parameters": {
        "list": "={{ $('Create a list').item.json.id }}",
        "name": "=Brand Kit",
        "team": "9017591357",
        "space": "90173166703",
        "folderless": true,
        "additionalFields": {
          "status": "to do",
          "content": "Develop complete brand kit including colors, typography, and guidelines",
          "priority": 2
        }
      },
      "credentials": {
        "clickUpApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "c4aef55f-0a69-4f18-9958-e426161f1668",
      "name": "Create Task: Website Build",
      "type": "n8n-nodes-base.clickUp",
      "position": [
        2656,
        4496
      ],
      "parameters": {
        "list": "={{ $('Create a list').item.json.id }}",
        "name": "=Website Build",
        "team": "9017591357",
        "space": "90173166703",
        "folderless": true,
        "additionalFields": {
          "status": "to do",
          "content": "Build website using approved brand kit and content",
          "priority": 2
        }
      },
      "credentials": {
        "clickUpApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "bd56b9ac-cd62-4462-9ea5-df7f12b10c4a",
      "name": "Send Welcome Email with Intake Form",
      "type": "n8n-nodes-base.gmail",
      "position": [
        3328,
        4160
      ],
      "parameters": {
        "sendTo": "={{ $('Payment Received').item.json.data.object.customer_details.email }}",
        "message": "=<h2>Welcome {{ $('Payment Received').item.json.data.object.customer_details.name }}!</h2><p>Thank you for your payment. We're excited to start working on your {{ $('Payment Received').item.json.data.object.metadata.package }}!</p><p><strong>Next Steps:</strong></p><ol><li>Complete our intake form: <a href=\"{{ $('Workflow Configuration').item.json.intakeFormUrl }}\">Click here to fill out your brand questionnaire</a></li><li>Our team will review your responses within 24 hours</li><li>We'll schedule a kickoff call to discuss your vision</li></ol><p>Your project folder has been created and our team has been notified. We'll be in touch soon!</p><p>Best regards,<br>Your Project Team</p>",
        "options": {},
        "subject": "Welcome! Let's Get Started on Your Project \ud83c\udf89"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "101b2a0f-4e4d-43a4-83a7-7c210445be72",
      "name": "Notify Team in Slack",
      "type": "n8n-nodes-base.slack",
      "position": [
        4000,
        4160
      ],
      "parameters": {
        "text": "=\ud83c\udf89 *New Project Kickoff!*\n\n*Client:* {{ $('Payment Received').item.json.data.object.customer_details.name }}\n*Package:* {{ $('Payment Received').item.json.data.object.metadata.package }}\n*Amount:* ${{ $('Payment Received').item.json.data.object.amount_subtotal }}\n*Paid At:* {{ $now }}\n\n\u2705 Order record created\n\u2705 Project record created\n\u2705 Google Drive folders created\n\u2705 ClickUp tasks created\n\u2705 Welcome email sent\n\n*Next:* Client will complete intake form, then we begin!",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "name",
          "value": "=# new-channel"
        },
        "otherOptions": {},
        "authentication": "oAuth2"
      },
      "credentials": {
        "slackOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.4
    },
    {
      "id": "9c89ec74-0b2b-4396-8ace-01e2ddb19b6c",
      "name": "Append row in sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2208,
        4416
      ],
      "parameters": {
        "columns": {
          "value": {
            "price": "={{ $('Payment Received').item.json.data.object.amount_total }}",
            "leadId": "={{ $('Payment Received').item.json.data.object.metadata.lead_id }}",
            "paidAt": "={{ $now }}",
            "dueDate": "={{ $json['How soon?'] }}",
            "orderId": "={{ $('Payment Received').item.json.id }}",
            "package": "={{ $('Payment Received').item.json.data.object.metadata.package }}",
            "status: In Production / QA / Delivered": "Production"
          },
          "schema": [
            {
              "id": "orderId",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "orderId",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "leadId",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "leadId",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "package",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "package",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "price",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "price",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "paidAt",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "paidAt",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "dueDate",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "dueDate",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "status: In Production / QA / Delivered",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "status: In Production / QA / Delivered",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1nttPA4qQHho0cRoXQy0UYmDDtBzvR3GZbCgQcDza7jw/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1nttPA4qQHho0cRoXQy0UYmDDtBzvR3GZbCgQcDza7jw",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1nttPA4qQHho0cRoXQy0UYmDDtBzvR3GZbCgQcDza7jw/edit?usp=drivesdk",
          "cachedResultName": "Opportunities / Orders"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "2f5f58cf-01c4-4d0e-966b-a2b5d66849d8",
      "name": "Get row(s) in sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1760,
        4320
      ],
      "parameters": {
        "options": {},
        "filtersUI": {
          "values": [
            {
              "lookupValue": "={{ $('Payment Received').item.json.data.object.customer_details.email }}",
              "lookupColumn": "Email"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1ROLrrdi9qCrbt80dpn27UrnXydCRH_oGKbW61_G_liw/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1ROLrrdi9qCrbt80dpn27UrnXydCRH_oGKbW61_G_liw",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1ROLrrdi9qCrbt80dpn27UrnXydCRH_oGKbW61_G_liw/edit?usp=drivesdk",
          "cachedResultName": "CRM"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "67566d95-063a-4be1-b649-605fc6fe35ea",
      "name": "Create a list",
      "type": "n8n-nodes-base.clickUp",
      "position": [
        2432,
        4880
      ],
      "parameters": {
        "name": "={{ $now.format('yyyy-MM') }} \u2014 {{ $('Get row(s) in sheet').item.json['Company Legal Name'] }} \u2014 {{ $('Payment Received').item.json.data.object.metadata.package }}",
        "team": "9017591357",
        "space": "90173166703",
        "resource": "list",
        "operation": "create",
        "folderless": true,
        "additionalFields": {}
      },
      "credentials": {
        "clickUpApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "4ac0fd74-ca8b-4367-83de-dcefea220e6e",
      "name": "Workflow Overview",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1040,
        6608
      ],
      "parameters": {
        "color": 4,
        "width": 400,
        "height": 416,
        "content": "# Payment to Project Kickoff Automation\n\n**Purpose:** Automatically set up new client projects when payment is received via Stripe.\n\n**What it does:**\n\u2705 Captures payment from Stripe\n\u2705 Looks up client in CRM\n\u2705 Creates order record\n\u2705 Sets up Google Drive folders\n\u2705 Creates ClickUp project & tasks\n\u2705 Sends welcome email\n\u2705 Notifies team in Slack\n\n**Trigger:** Stripe checkout.session.completed or invoice.payment_succeeded"
      },
      "typeVersion": 1
    },
    {
      "id": "652f238a-9453-4a5b-884d-3fd023bdf9d4",
      "name": "Payment Processing",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1008,
        3728
      ],
      "parameters": {
        "width": 264,
        "height": 664,
        "content": "# \ud83d\udcb3 Payment Processing\n\n**Nodes:**\n- Payment Received (Stripe Trigger)\n- Workflow Configuration\n- Extract Payment Data\n- Get row(s) in sheet (CRM lookup)\n- Append row in sheet (Orders)\n\n**Key Data:**\n- Client name & email\n- Package purchased\n- Amount paid\n- Lead ID from metadata"
      },
      "typeVersion": 1
    },
    {
      "id": "0f93be20-ae40-490b-839c-50251a8eb328",
      "name": "Google Drive Setup",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2272,
        3376
      ],
      "parameters": {
        "color": 3,
        "width": 424,
        "height": 784,
        "content": "# \ud83d\udcc1 Google Drive Setup\n\n**Creates folder structure:**\n\n\ud83d\udcc2 [YYYY-MM] \u2014 [Company] \u2014 [Package]\n  \u251c\u2500\u2500 01-Intake\n  \u251c\u2500\u2500 02-Logo\n  \u251c\u2500\u2500 03-Brand Kit\n  \u251c\u2500\u2500 04-Website\n  \u2514\u2500\u2500 05-Final Delivery\n\n**Parent Folder ID:**\nConfigured in Workflow Configuration node\n\n**Folder naming:**\nFormat: 2025-01 \u2014 Acme Corp \u2014 Premium Package"
      },
      "typeVersion": 1
    },
    {
      "id": "aedf9725-1442-49f1-9351-a6c255ebd068",
      "name": "ClickUp Task Creation",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2368,
        4592
      ],
      "parameters": {
        "color": 4,
        "width": 440,
        "height": 996,
        "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n# \u2705 ClickUp Task Creation\n\n**Creates project list with tasks:**\n\n1. Brand Questionnaire Review (Priority: High)\n2. Logo Concepts (Priority: High)\n3. Brand Kit (Priority: Normal)\n4. Website Build (Priority: Normal)\n\n**List naming:**\nFormat: [YYYY-MM] \u2014 [Company] \u2014 [Package]\n\n**All tasks start in \"to do\" status**"
      },
      "typeVersion": 1
    },
    {
      "id": "0081b713-9737-487d-9d40-5795c3947684",
      "name": "Client Communication",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3264,
        3744
      ],
      "parameters": {
        "color": 5,
        "width": 456,
        "height": 608,
        "content": "# \ud83d\udce7 Client Communication\n\n**Welcome Email:**\n- Sent to client email from Stripe\n- Includes intake form link\n- Explains next steps\n- Confirms project setup\n\n**Slack Notification:**\n- Posts to team channel\n- Includes client details\n- Lists completed setup steps\n- Prompts team to begin work\n\n**Note:** Update intake form URL in Workflow Configuration"
      },
      "typeVersion": 1
    },
    {
      "id": "f87975df-7c51-4e0b-aa07-16dc66979210",
      "name": "CRM Lookup Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1744,
        3600
      ],
      "parameters": {
        "color": 2,
        "width": 368,
        "height": 908,
        "content": "# \ud83d\udcca CRM Create Client Order\n\n**Google Sheets Integration (feel free to swap to any CRM of your choice):**\n\n**Get row(s) in sheet:**\n- Looks up client information in CRM\n- Searches by customer email from Stripe\n- Retrieves company details and project info\n\n**Append row in sheet:**\n- Creates new order record\n- Logs payment details\n- Tracks project status\n- Links to lead ID from metadata\n\n**Data Flow:**\nStripe payment \u2192 CRM lookup \u2192 Order creation \u2192 Project setup"
      },
      "typeVersion": 1
    },
    {
      "id": "90d13b7b-b3dc-4324-b1e6-c3f0af516a1a",
      "name": "Validate Payment Data",
      "type": "n8n-nodes-base.if",
      "position": [
        1536,
        4224
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "leftValue": "",
            "caseSensitive": false,
            "typeValidation": "loose"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "id-1",
              "operator": {
                "type": "string",
                "operation": "notEmpty"
              },
              "leftValue": "={{ $('Payment Received').item.json.data.object.customer_details.email }}"
            },
            {
              "id": "id-2",
              "operator": {
                "type": "string",
                "operation": "notEmpty"
              },
              "leftValue": "={{ $('Payment Received').item.json.data.object.metadata.package }}"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "584bd889-b645-45de-8238-4a6245d530c8",
      "name": "Check CRM Lookup Success",
      "type": "n8n-nodes-base.if",
      "position": [
        1984,
        4320
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "leftValue": "",
            "caseSensitive": false,
            "typeValidation": "loose"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "id-1",
              "operator": {
                "type": "string",
                "operation": "notEmpty"
              },
              "leftValue": "={{ $('Get row(s) in sheet').item.json['Company Legal Name'] }}"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "a24c30dc-acdd-4a19-a358-d3f2404e4c6b",
      "name": "Check Folder Creation Success",
      "type": "n8n-nodes-base.if",
      "position": [
        2656,
        3584
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "id-1",
              "operator": {
                "type": "string",
                "operation": "notEmpty"
              },
              "leftValue": "={{ $('Create Client Root Folder').item.json.id }}"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "f1f94260-608e-4833-9b46-22368ea70a22",
      "name": "Alert Team - Payment Data Error",
      "type": "n8n-nodes-base.slack",
      "position": [
        1760,
        4128
      ],
      "parameters": {
        "text": "=\u26a0\ufe0f *Payment Data Error*\n\n*Issue:* Missing required payment data from Stripe\n*Payment ID:* {{ $('Payment Received').item.json.id }}\n*Customer Email:* {{ $('Payment Received').item.json.data.object.customer_details.email || 'MISSING' }}\n*Package:* {{ $('Payment Received').item.json.data.object.metadata.package || 'MISSING' }}\n\n*Action Required:* Manual review needed - workflow stopped",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "name",
          "value": "# new-channel"
        },
        "otherOptions": {},
        "authentication": "oAuth2"
      },
      "credentials": {
        "slackOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.4
    },
    {
      "id": "eb726ad9-8a6a-4d94-acf1-2aa3401d1f26",
      "name": "Alert Team - CRM Lookup Failed",
      "type": "n8n-nodes-base.slack",
      "position": [
        2208,
        3776
      ],
      "parameters": {
        "text": "=\u26a0\ufe0f *CRM Lookup Failed*\n\n*Issue:* Client not found in CRM\n*Email Searched:* {{ $('Payment Received').item.json.data.object.customer_details.email }}\n*Customer Name:* {{ $('Payment Received').item.json.data.object.customer_details.name }}\n*Package:* {{ $('Payment Received').item.json.data.object.metadata.package }}\n\n*Action Required:* Add client to CRM manually and retry workflow",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "name",
          "value": "# new-channel"
        },
        "otherOptions": {},
        "authentication": "oAuth2"
      },
      "credentials": {
        "slackOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.4
    },
    {
      "id": "bbccd2bb-b5bd-46ab-bc4d-2f892107f919",
      "name": "Alert Team - Folder Creation Failed",
      "type": "n8n-nodes-base.slack",
      "position": [
        2880,
        3584
      ],
      "parameters": {
        "text": "=\u26a0\ufe0f *Google Drive Folder Creation Failed*\n\n*Issue:* Could not create root folder in Google Drive\n*Client:* {{ $('Get row(s) in sheet').item.json['Company Legal Name'] }}\n*Package:* {{ $('Payment Received').item.json.data.object.metadata.package }}\n\n*Fallback:* Workflow will continue without folder structure - manual folder creation needed",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "name",
          "value": "# new-channel"
        },
        "otherOptions": {},
        "authentication": "oAuth2"
      },
      "credentials": {
        "slackOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.4
    },
    {
      "id": "9d7eb3c1-1b94-4a39-b4a2-9086d681d563",
      "name": "Stop - Invalid Payment Data",
      "type": "n8n-nodes-base.stopAndError",
      "position": [
        1984,
        4128
      ],
      "parameters": {
        "errorMessage": "=Invalid payment data received from Stripe. Missing required fields: customer email or package metadata. Payment ID: {{ $('Payment Received').item.json.id }}"
      },
      "typeVersion": 1
    },
    {
      "id": "12f430dd-f535-42d4-95b7-f12b3d3e69c8",
      "name": "Stop - CRM Lookup Failed",
      "type": "n8n-nodes-base.stopAndError",
      "position": [
        2432,
        3776
      ],
      "parameters": {
        "errorMessage": "=Client not found in CRM. Email: {{ $('Payment Received').item.json.data.object.customer_details.email }}. Please add client to CRM and retry."
      },
      "typeVersion": 1
    },
    {
      "id": "1c112031-efbe-43a0-a1a8-ecc308383814",
      "name": "Check Email Send Success",
      "type": "n8n-nodes-base.if",
      "position": [
        3552,
        4160
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "id-1",
              "operator": {
                "type": "string",
                "operation": "notEmpty"
              },
              "leftValue": "={{ $('Send Welcome Email with Intake Form').item.json.id }}"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "d388a66a-73bb-456d-aa43-e5918ea6d6db",
      "name": "Alert Team - Email Send Failed",
      "type": "n8n-nodes-base.slack",
      "position": [
        3776,
        4016
      ],
      "parameters": {
        "text": "=\u26a0\ufe0f *Welcome Email Send Failed*\n\n*Issue:* Could not send welcome email to client\n*Client:* {{ $('Payment Received').item.json.data.object.customer_details.name }}\n*Email:* {{ $('Payment Received').item.json.data.object.customer_details.email }}\n*Package:* {{ $('Payment Received').item.json.data.object.metadata.package }}\n\n*Fallback:* Workflow will continue - manual email needed",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "name",
          "value": "# new-channel"
        },
        "otherOptions": {},
        "authentication": "oAuth2"
      },
      "credentials": {
        "slackOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.4
    },
    {
      "id": "4a1f0480-0b47-47bb-ab54-869b5f5b0b2d",
      "name": "Waits until all folders are created",
      "type": "n8n-nodes-base.merge",
      "position": [
        3104,
        4112
      ],
      "parameters": {
        "mode": "chooseBranch",
        "numberInputs": 5
      },
      "typeVersion": 3.2
    },
    {
      "id": "8c4d5508-8d9f-4d9a-af7d-258786ef8fef",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        992,
        4592
      ],
      "parameters": {
        "width": 624,
        "height": 560,
        "content": "# How it works\n\nThis workflow automatically kicks off a new client project as soon as a payment is received in Stripe.\n\nWhen a checkout session or invoice payment succeeds, the workflow validates the payment data, looks up the client in a CRM (Google Sheets by default), and creates an order record. It then provisions a standardized Google Drive folder structure, creates a ClickUp project with predefined tasks, sends a welcome email with an intake form to the client, and notifies the internal team in Slack.\n\nBuilt-in validation and error handling ensure missing data, CRM mismatches, or setup failures are flagged immediately so teams can intervene manually if needed. Each system (CRM, Drive, ClickUp, Email, Slack) can be swapped independently.\n\n## Setup steps\n\n1. Connect your Stripe account and ensure customer email and package metadata are present.\n2. Configure the **Workflow Configuration** node with your intake form URL and Google Drive parent folder ID.\n3. Connect your CRM (Google Sheets by default) or replace it with another system.\n4. Connect ClickUp, Gmail, and Slack credentials.\n5. Activate the workflow and test using a Stripe test payment."
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "availableInMCP": false,
    "executionOrder": "v1"
  },
  "versionId": "562ba2a1-a2f7-402c-a6c2-2d1a277b16aa",
  "connections": {
    "Create a list": {
      "main": [
        [
          {
            "node": "Create Task: Brand Questionnaire Review",
            "type": "main",
            "index": 0
          },
          {
            "node": "Create Task: Logo Concepts",
            "type": "main",
            "index": 0
          },
          {
            "node": "Create Task: Brand Kit",
            "type": "main",
            "index": 0
          },
          {
            "node": "Create Task: Website Build",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Payment Received": {
      "main": [
        [
          {
            "node": "Workflow Configuration",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Append row in sheet": {
      "main": [
        [
          {
            "node": "Create Client Root Folder",
            "type": "main",
            "index": 0
          },
          {
            "node": "Create a list",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get row(s) in sheet": {
      "main": [
        [
          {
            "node": "Check CRM Lookup Success",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create 02-Logo Folder": {
      "main": [
        [
          {
            "node": "Waits until all folders are created",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Validate Payment Data": {
      "main": [
        [
          {
            "node": "Get row(s) in sheet",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Alert Team - Payment Data Error",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Workflow Configuration": {
      "main": [
        [
          {
            "node": "Validate Payment Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create 01-Intake Folder": {
      "main": [
        [
          {
            "node": "Waits until all folders are created",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check CRM Lookup Success": {
      "main": [
        [
          {
            "node": "Append row in sheet",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Alert Team - CRM Lookup Failed",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Email Send Success": {
      "main": [
        [
          {
            "node": "Notify Team in Slack",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Alert Team - Email Send Failed",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create 04-Website Folder": {
      "main": [
        [
          {
            "node": "Waits until all folders are created",
            "type": "main",
            "index": 3
          }
        ]
      ]
    },
    "Create Client Root Folder": {
      "main": [
        [
          {
            "node": "Create 02-Logo Folder",
            "type": "main",
            "index": 0
          },
          {
            "node": "Create 03-Brand Kit Folder",
            "type": "main",
            "index": 0
          },
          {
            "node": "Create 04-Website Folder",
            "type": "main",
            "index": 0
          },
          {
            "node": "Create 05-Final Delivery Folder",
            "type": "main",
            "index": 0
          },
          {
            "node": "Check Folder Creation Success",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create 03-Brand Kit Folder": {
      "main": [
        [
          {
            "node": "Waits until all folders are created",
            "type": "main",
            "index": 2
          }
        ]
      ]
    },
    "Check Folder Creation Success": {
      "main": [
        [
          {
            "node": "Create 01-Intake Folder",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Alert Team - Folder Creation Failed",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Alert Team - CRM Lookup Failed": {
      "main": [
        [
          {
            "node": "Stop - CRM Lookup Failed",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Alert Team - Email Send Failed": {
      "main": [
        []
      ]
    },
    "Alert Team - Payment Data Error": {
      "main": [
        [
          {
            "node": "Stop - Invalid Payment Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create 05-Final Delivery Folder": {
      "main": [
        [
          {
            "node": "Waits until all folders are created",
            "type": "main",
            "index": 4
          }
        ]
      ]
    },
    "Send Welcome Email with Intake Form": {
      "main": [
        [
          {
            "node": "Check Email Send Success",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Waits until all folders are created": {
      "main": [
        [
          {
            "node": "Send Welcome Email with Intake Form",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

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

About this workflow

Categories: Payments, Project Operations, Client Onboarding

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

More Email & Gmail workflows → · Browse all categories →

Related workflows

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

Email & Gmail

Automate daily KPI tracking and reporting by integrating ClickUp tasks and Google Sheets lead data into a unified dashboard. This workflow computes performance metrics, analyzes sentiment, and deliver

Error Trigger, Slack, ClickUp +2
Email & Gmail

Hiring teams often struggle with document follow-ups, offer letter generation, and stakeholder communication. Manual checks, email back-and-forth, and missing files slow down hiring and create chaos d

Google Sheets Trigger, HTTP Request, Slack +3
Email & Gmail

This template is ideal for HR teams, startup founders, operations leads, remote-first companies, and freelancers managing onboarding manually or across multiple tools.

Google Sheets Trigger, Jira, HubSpot Trigger +7
Email & Gmail

Telegram Code. Uses stickyNote, telegramTrigger, telegram, googleDrive. Event-driven trigger; 37 nodes.

Telegram Trigger, Telegram, Google Drive +2
Email & Gmail

General use cases include: Property managers who manage multiple buildings or units. Building owners looking to centralize tenant repair communication. Automation builders who want to learn multi-trig

Google Sheets, Google Drive, Gmail +1