This workflow corresponds to n8n.io template #9138 — we link there as the canonical source.
This workflow follows the Gmail → Google Calendar 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 →
{
"id": "VaGKdfnWJI4gOfeu",
"meta": {
"templateCredsSetupCompleted": true
},
"name": "GoHighLevel Client Onboarding with Google Drive, Gmail & Slack",
"tags": [],
"nodes": [
{
"id": "0147f828-0a2e-4476-bff0-bde1962451d3",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"notes": "Workflow Overview",
"position": [
-1968,
-64
],
"parameters": {
"width": 420,
"height": 650,
"content": "## \ud83d\ude80 GoHighLevel Automated Client Onboarding\n\n**What This Workflow Does:**\n- Automatically triggers when a deal is marked as \"Won\" in GoHighLevel\n- Creates organized client folders in Google Drive\n- Duplicates contract and kickoff deck templates\n- Sends welcome email to new clients\n- Creates onboarding tasks in GHL\n- Schedules kickoff call in Google Calendar\n- Notifies team via Slack\n\n**Business Value:**\n\u2705 Saves 30-45 minutes per client onboarding\n\u2705 Eliminates manual data entry errors\n\u2705 Ensures consistent client experience\n\u2705 Automatic document generation\n\u2705 Team stays informed instantly\n\n**Prerequisites:**\n- Active GoHighLevel account with API access\n- Google Workspace (Drive, Gmail, Calendar)\n- Slack workspace\n- Contract template in Google Drive\n- Kickoff deck template in Google Drive\n\n**Setup Time:** ~15 minutes\n"
},
"typeVersion": 1
},
{
"id": "699ae091-bf52-4dd9-aaef-93d944c436c0",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"notes": "Webhook Setup Instructions",
"position": [
-1456,
368
],
"parameters": {
"width": 300,
"height": 380,
"content": "## \u2699\ufe0f Step 1: Configure GHL Webhook\n\n**Action Required:**\n1. Go to GoHighLevel \u2192 Automation \u2192 Workflows\n2. Create new automation triggered by \"Opportunity Status Changed\"\n3. Add condition: Status = \"Won\"\n4. Add webhook action\n5. Copy the production URL from this webhook node\n6. Paste it in GHL webhook URL field\n7. Test the webhook from GHL\n\n**Webhook Path:** `/ghl-deal-won`\n\n**Expected Data:**\n- Opportunity ID, name, value\n- Contact name, email, phone\n- Company information\n- Pipeline details"
},
"typeVersion": 1
},
{
"id": "4a236b6d-0daf-4205-a3cc-ad3a47af43c9",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"notes": "GHL API Configuration",
"position": [
-1264,
-320
],
"parameters": {
"width": 300,
"height": 464,
"content": "## \ud83d\udd10 Step 2: Connect GHL API\n\n**Action Required:**\n1. Get your GHL API credentials:\n - Login to GoHighLevel\n - Settings \u2192 API Access\n - Create new OAuth2 App or use API Key\n2. In this node, click \"Create New Credential\"\n3. Select \"HighLevel OAuth2 API\"\n4. Enter your credentials\n5. Authorize access\n\n**Filter:** Only fetches opportunities with status = \"Won\"\n\n**Note:** This node validates the webhook data before processing"
},
"typeVersion": 1
},
{
"id": "257c94f7-3f60-44a2-86f9-059bf4bc3be3",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"notes": "Validation Logic",
"position": [
-992,
368
],
"parameters": {
"width": 280,
"height": 408,
"content": "## \u2705 Step 3: Data Validation\n\n**What This Does:**\n- Checks if required fields are present (ID, Name)\n- If valid \u2192 Continues to formatting\n- If invalid \u2192 Triggers error notification\n\n**Prevents:**\n- Processing incomplete data\n- Workflow failures from missing info\n- Bad data reaching Google Drive/Email\n\n**No configuration needed** - works automatically"
},
"typeVersion": 1
},
{
"id": "dcc10ae5-cd60-41a8-8d4d-c358503b547e",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"notes": "Data Formatting",
"position": [
-768,
-416
],
"parameters": {
"width": 260,
"height": 508,
"content": "## \ud83d\udcca Step 4: Format Client Data\n\n**What This Does:**\n- Extracts client info from GHL opportunity\n- Standardizes naming conventions\n- Creates safe folder/file names\n- Formats dates consistently\n- Adds validation flags\n\n**Output Fields:**\n- Client name, email, phone\n- Deal value, ID, status\n- Folder naming: `ClientName_YYYY-MM-DD`\n- Document templates with client name\n\n**No configuration needed** - processes automatically"
},
"typeVersion": 1
},
{
"id": "ca90f717-217c-4a22-beb0-f24bc7c652a3",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"notes": "Google Drive Configuration",
"position": [
-464,
-560
],
"parameters": {
"width": 300,
"height": 540,
"content": "## \ud83d\udcc1 Step 5: Google Drive Setup\n\n**Action Required:**\n1. **Create Credential:**\n - Click \"Create New Credential\"\n - Select \"Google Drive OAuth2\"\n - Authorize your Google account\n\n2. **Set Parent Folder:**\n - Replace the hardcoded folder ID with your folder\n - Use the folder dropdown to select\n\n3. **Prepare Templates:**\n - Create contract template in Drive\n - Create kickoff deck template\n - Note their file IDs (from URL)\n - Update the Copy Template nodes with these IDs\n\n**This Creates:** A new folder with client info document"
},
"typeVersion": 1
},
{
"id": "149c1e02-ec1b-4b6e-bd18-1227ed34694a",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"notes": "Template Setup",
"position": [
-224,
240
],
"parameters": {
"width": 320,
"height": 540,
"content": "## \ud83d\udcc4 Step 6: Template Configuration\n\n**Action Required:**\n1. **Contract Template:**\n - Open the \"Copy Contract Template\" node\n - Click the file dropdown\n - Select your contract template\n - Or paste File ID manually\n\n2. **Kickoff Deck Template:**\n - Open the \"Copy Kickoff Deck Template\" node\n - Select your presentation template\n\n**Templates Will:**\n- Be copied to client folder\n- Auto-rename with client name\n- Preserve all formatting\n\n**Tip:** Use Google Docs/Slides with placeholder text like `{{CLIENT_NAME}}`"
},
"typeVersion": 1
},
{
"id": "9da21ac9-e091-4bba-b929-657598be858e",
"name": "Sticky Note7",
"type": "n8n-nodes-base.stickyNote",
"notes": "Slack Notifications",
"position": [
-80,
-656
],
"parameters": {
"width": 300,
"height": 636,
"content": "## \ud83d\udcac Step 7: Slack Integration\n\n**Action Required:**\n1. **Connect Slack:**\n - Click \"Create New Credential\"\n - Select \"Slack API\"\n - Authorize workspace access\n\n2. **Select Channel:**\n - Open the channel dropdown\n - Choose your team notifications channel\n - Recommended: #client-onboarding or #sales\n\n3. **Customize Message:**\n - Edit the notification text as needed\n - Add/remove fields\n - Include relevant links\n\n**Notification Includes:**\n- Client details\n- Deal value\n- Link to Drive folder\n- Confirmation of completed steps"
},
"typeVersion": 1
},
{
"id": "7946e499-ceb4-47a2-ab39-3538274c706d",
"name": "Sticky Note8",
"type": "n8n-nodes-base.stickyNote",
"notes": "Calendar & Email Setup",
"position": [
400,
-432
],
"parameters": {
"width": 340,
"height": 592,
"content": "## \ud83d\udcc5 Step 8: Calendar & Email Setup\n\n**Google Calendar:**\n1. Connect your Google Calendar credential\n2. Select the calendar for kickoff calls\n3. Customize event details/duration\n\n**Gmail Welcome Email:**\n1. Connect Gmail OAuth2 credential\n2. **IMPORTANT:** Change the hardcoded email to use:\n `={{ $('Format Client Data').item.json.clientEmail }}`\n3. Customize email template:\n - Replace `[Your Company]` with your company name\n - Update branding/colors\n - Modify welcome message\n - Update links\n\n**Email Includes:**\n- Welcome message\n- Next steps checklist\n- Calendar booking link\n- Drive folder access"
},
"typeVersion": 1
},
{
"id": "814625bd-70bb-4ca0-b811-f8b1bbbbe6f9",
"name": "Sticky Note9",
"type": "n8n-nodes-base.stickyNote",
"notes": "Task Creation Setup",
"position": [
288,
288
],
"parameters": {
"width": 300,
"height": 380,
"content": "## \u2705 Step 9: GHL Task Creation\n\n**Action Required:**\n1. **Remove Hardcoded Contact ID:**\n - Replace `9MWQz6J9ZWfZyzWiHxkG` with:\n `={{ $('Format Client Data').item.json.contactId }}`\n\n2. **Customize Task:**\n - Set appropriate due date\n - Change `completed: true` to `false` if task should be open\n - Add assignee if needed\n\n3. **Task Details:**\n - Title uses client name automatically\n - Links back to opportunity\n - Appears in GHL dashboard\n\n**Purpose:** Creates follow-up task for account manager"
},
"typeVersion": 1
},
{
"id": "da68a8dd-9e43-41e2-ab8e-2e542204821a",
"name": "Sticky Note10",
"type": "n8n-nodes-base.stickyNote",
"notes": "Error Handling",
"position": [
-624,
464
],
"parameters": {
"width": 280,
"height": 464,
"content": "## \ud83d\udea8 Error Handling\n\n**What This Does:**\n- Catches validation failures\n- Sends Slack alert if workflow fails\n- Includes error details for debugging\n\n**Configure:**\n1. Select your Slack alerts channel\n2. Customize error message format\n3. Add @mentions if needed\n\n**When Triggered:**\n- Missing required client data\n- Invalid opportunity format\n- Data validation fails\n\n**Tip:** Set up a dedicated #n8n-errors channel"
},
"typeVersion": 1
},
{
"id": "e9b7c39a-b985-4281-a203-a9d01ce2283b",
"name": "GHL Webhook - Deal Won",
"type": "n8n-nodes-base.webhook",
"notes": "Webhook trigger for GHL when deal moves to Won or Completed. Configure in GHL: Automation > Workflows > Add Webhook",
"position": [
-1344,
208
],
"parameters": {
"path": "ghl-deal-won",
"options": {},
"responseMode": "responseNode"
},
"typeVersion": 1
},
{
"id": "7ff6623b-85cc-40da-af0f-7040978f002b",
"name": "Copy Contract Template",
"type": "n8n-nodes-base.googleDrive",
"notes": "Duplicates contract template into client folder",
"position": [
-192,
16
],
"parameters": {
"name": "={{ $('Format Client Data').item.json.contractName }}",
"fileId": {
"__rl": true,
"mode": "id",
"value": "YOUR_CONTRACT_TEMPLATE_FILE_ID_HERE"
},
"options": {},
"operation": "copy"
},
"typeVersion": 3
},
{
"id": "d042203f-4455-4247-825e-8a8d1410de3a",
"name": "Copy Kickoff Deck Template",
"type": "n8n-nodes-base.googleDrive",
"notes": "Duplicates kickoff deck template into client folder",
"position": [
32,
208
],
"parameters": {
"name": "={{ $('Format Client Data').item.json.contractName }}",
"fileId": {
"__rl": true,
"mode": "id",
"value": "YOUR_KICKOFF_DECK_TEMPLATE_FILE_ID_HERE"
},
"options": {},
"operation": "copy"
},
"typeVersion": 3
},
{
"id": "cf042878-b5e2-495d-9702-2b79807ff13b",
"name": "Send Slack Welcome",
"type": "n8n-nodes-base.slack",
"notes": "Posts welcome message to team Slack channel",
"position": [
32,
16
],
"parameters": {
"text": "=\ud83c\udf89 *New Client Onboarded!*\n\n*Client:* {{ $('Format Client Data').item.json.clientName }} \n*ClientPhone:*{{ $('Format Client Data').item.json.clientPhone }}\n*Deal Value:* {{ $('Format Client Data').item.json.dealValue }} \n*Email:* {{ $('Format Client Data').item.json.clientEmail }}\n\n\ud83d\udcc1 *Client Folder:* https://drive.google.com/drive/folders/{{ $node['Create Client File'].json.id }}\n\n\u2705 Onboarding task created and welcome email sent!",
"select": "channel",
"channelId": {
"__rl": true,
"mode": "list",
"value": "YOUR_SLACK_CHANNEL_ID_HERE",
"cachedResultName": "Select your channel"
},
"otherOptions": {}
},
"typeVersion": 2.1
},
{
"id": "d539c146-6b10-4799-bc91-f41949bbee23",
"name": "Send Welcome Email",
"type": "n8n-nodes-base.gmail",
"notes": "Sends branded welcome email with onboarding details",
"position": [
480,
112
],
"parameters": {
"sendTo": "={{ $('Format Client Data').item.json.clientEmail }}",
"message": "=<html>\n<body style=\"font-family: Arial, sans-serif; line-height: 1.6; color: #333;\">\n <div style=\"max-width: 600px; margin: 0 auto; padding: 20px;\">\n <h2 style=\"color: #2563eb;\">Welcome Aboard, {{ $('Format Client Data').item.json.clientName }}! \ud83c\udf89</h2>\n \n <p>We're thrilled to have you as a client! Your success is our top priority, and we're committed to delivering exceptional results.</p>\n \n <h3 style=\"color: #2563eb;\">Next Steps:</h3>\n <ol>\n <li><strong>Review Your Welcome Kit:</strong> Attached is your comprehensive onboarding guide</li>\n <li><strong>Schedule Your Kickoff Call:</strong> <a href=\"{{ $json.htmlLink }}\">Click here to book your onboarding session</a></li>\n <li><strong>Access Your Documents:</strong> <a href=\"https://drive.google.com/drive/folders/{{ $node['Create Client File'].json.id }}\">View your client folder</a></li>\n </ol>\n \n <p>Your dedicated account manager will reach out within 24 hours to answer any questions.</p>\n \n <p style=\"margin-top: 30px;\">Looking forward to an amazing partnership!</p>\n \n <p style=\"font-weight: bold;\">The [Your Company Name] Team</p>\n </div>\n</body>\n</html>",
"options": {},
"subject": "=Welcome to [Your Company Name] - Let's Get Started! \ud83d\ude80"
},
"typeVersion": 2.1
},
{
"id": "600f53fb-8dbb-4ec2-81ad-19cf394191f9",
"name": "Validate Client Data",
"type": "n8n-nodes-base.if",
"notes": "Ensures required fields are present before processing",
"position": [
-864,
208
],
"parameters": {
"conditions": {
"string": [
{
"value1": "={{ $json.id }}",
"operation": "isNotEmpty"
},
{
"value1": "={{ $json.name }}",
"operation": "isNotEmpty"
}
]
}
},
"typeVersion": 1
},
{
"id": "2502a0c1-8d87-4296-8bea-ba63da35207f",
"name": "Format Client Data",
"type": "n8n-nodes-base.code",
"notes": "Standardizes data format for use across workflow",
"position": [
-640,
112
],
"parameters": {
"jsCode": "// Extract and format client data from GHL opportunity\nconst opportunity = $input.item.json;\nconst contact = opportunity.contact || {};\nconst relations = opportunity.relations || [];\n\n// Get primary contact relation data as fallback\nconst primaryRelation = relations.find(r => r.primary === true) || {};\n\n// Extract client information with fallbacks\nconst clientName = contact.name || primaryRelation.contactName || primaryRelation.fullName || 'Unknown Client';\nconst clientEmail = contact.email || primaryRelation.email || '';\nconst clientPhone = contact.phone || primaryRelation.phone || '';\nconst companyName = contact.companyName || primaryRelation.companyName || '';\n\n// Format date for folder name (YYYY-MM-DD)\nconst today = new Date().toISOString().split('T')[0];\n\n// Create safe folder name (remove special characters)\nconst safeFolderName = clientName.replace(/[^a-zA-Z0-9\\s-]/g, '').trim();\n\nreturn {\n // Core client info\n clientName: clientName,\n clientEmail: clientEmail,\n clientPhone: clientPhone,\n companyName: companyName,\n \n // Deal information\n dealId: opportunity.id || '',\n dealName: opportunity.name || clientName,\n dealValue: opportunity.monetaryValue || 0,\n dealStatus: opportunity.status || 'won',\n \n // Pipeline info\n pipelineId: opportunity.pipelineId || '',\n pipelineStageId: opportunity.pipelineStageId || '',\n \n // Contact & Location IDs\n contactId: opportunity.contactId || contact.id || '',\n locationId: opportunity.locationId || '',\n assignedTo: opportunity.assignedTo || '',\n \n // Folder naming for Google Drive\n folderName: `${safeFolderName}_${today}`,\n \n // Document naming templates\n contractName: `${safeFolderName} - Service Agreement`,\n kickoffDeckName: `${safeFolderName} - Onboarding Deck`,\n \n // Timestamps\n createdAt: opportunity.createdAt || '',\n updatedAt: opportunity.updatedAt || '',\n lastStageChangeAt: opportunity.lastStageChangeAt || '',\n timestamp: new Date().toISOString(),\n \n // Additional useful data\n tags: contact.tags || [],\n source: opportunity.source || 'manual',\n \n // Validation flags\n hasEmail: !!(clientEmail && clientEmail.length > 0),\n hasPhone: !!(clientPhone && clientPhone.length > 0),\n isValid: !!(clientName && clientName !== 'Unknown Client')\n};"
},
"typeVersion": 2
},
{
"id": "10fcd2a0-fe5c-4bc4-a6a0-605cb498675a",
"name": "Error Notification",
"type": "n8n-nodes-base.slack",
"notes": "Sends alert if workflow fails",
"onError": "continueErrorOutput",
"position": [
-640,
304
],
"parameters": {
"text": "=\u26a0\ufe0f *Onboarding Workflow Error*\n\n*Error Node:* {{ $json.node }}\n*Error:* {{ $json.error }}\n\n*Action Required:* Manual intervention needed for this client onboarding.",
"select": "channel",
"channelId": {
"__rl": true,
"mode": "list",
"value": "YOUR_ERROR_CHANNEL_ID_HERE",
"cachedResultName": "Select error alerts channel"
},
"otherOptions": {}
},
"typeVersion": 2.1
},
{
"id": "fcc8a75a-86fb-40c5-8814-52819f9a715c",
"name": "Schedule Kickoff Call",
"type": "n8n-nodes-base.googleCalendar",
"notes": "Creates calendar event for client kickoff meeting",
"position": [
256,
16
],
"parameters": {
"calendar": {
"__rl": true,
"mode": "list",
"value": "YOUR_CALENDAR_EMAIL_HERE",
"cachedResultName": "Select your calendar"
},
"additionalFields": {
"description": "={{ $json.message.blocks[0].elements[0].elements[2].text }}"
}
},
"typeVersion": 1.3
},
{
"id": "d92877d4-e694-4d7e-904b-0d025d2ecbf3",
"name": "Fetch Won Deals from GHL",
"type": "n8n-nodes-base.highLevel",
"notes": "Retrieves all opportunities marked as Won from GoHighLevel",
"position": [
-1088,
208
],
"parameters": {
"filters": {
"status": "won"
},
"resource": "opportunity",
"operation": "getAll",
"returnAll": true,
"requestOptions": {}
},
"typeVersion": 2,
"alwaysOutputData": true
},
{
"id": "a30a97a4-b427-4cb4-b9f1-a686f5b97338",
"name": "Create Client Folder",
"type": "n8n-nodes-base.googleDrive",
"notes": "Creates client folder with format: ClientName_YYYY-MM-DD",
"position": [
-416,
112
],
"parameters": {
"name": "New File",
"content": "=CLIENT ONBOARDING INFORMATION\n\nClient Name: {{ $json.clientName }}\nCompany: {{ $json.companyName }}\nEmail: {{ $json.clientEmail }}\nPhone: {{ $json.clientPhone }}\n\nDEAL DETAILS\nDeal Name: {{ $json.dealName }}\nDeal Value: ${{ $json.dealValue }}\nDeal Status: {{ $json.dealStatus }}\nDeal ID: {{ $json.dealId }}\n\nCONTACT INFORMATION\nContact ID: {{ $json.contactId }}\nLocation ID: {{ $json.locationId }}\nAssigned To: {{ $json.assignedTo }}\n\nTIMESTAMPS\nCreated: {{ $json.createdAt }}\nLast Updated: {{ $json.updatedAt }}\nStage Changed: {{ $json.lastStageChangeAt }}\n\nTAGS\n{{ $json.tags.join(', ') }}\n\n---\nThis file was automatically generated on {{ $json.timestamp }}",
"driveId": {
"__rl": true,
"mode": "list",
"value": "My Drive"
},
"options": {},
"folderId": {
"__rl": true,
"mode": "list",
"value": "YOUR_PARENT_FOLDER_ID_HERE",
"cachedResultName": "Select parent folder for client folders"
},
"operation": "createFromText"
},
"typeVersion": 3
},
{
"id": "1d0da858-081c-467f-9c44-8f560eb0a6c2",
"name": "Create GHL Onboarding Task",
"type": "n8n-nodes-base.highLevel",
"notes": "Creates follow-up task in GHL for account manager",
"position": [
256,
208
],
"parameters": {
"title": "=Onboard {{ $('Format Client Data').item.json.clientName }}",
"dueDate": "={{ $now.plus(7, 'days').toISO() }}",
"resource": "task",
"contactId": "={{ $('Format Client Data').item.json.contactId }}",
"requestOptions": {},
"additionalFields": {}
},
"typeVersion": 2
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "7382a7aa-a661-45b9-a09e-171d52e87296",
"connections": {
"Format Client Data": {
"main": [
[
{
"node": "Create Client Folder",
"type": "main",
"index": 0
}
]
]
},
"Send Slack Welcome": {
"main": [
[
{
"node": "Schedule Kickoff Call",
"type": "main",
"index": 0
}
]
]
},
"Create Client Folder": {
"main": [
[
{
"node": "Copy Contract Template",
"type": "main",
"index": 0
},
{
"node": "Copy Kickoff Deck Template",
"type": "main",
"index": 0
}
]
]
},
"Validate Client Data": {
"main": [
[
{
"node": "Format Client Data",
"type": "main",
"index": 0
}
],
[
{
"node": "Error Notification",
"type": "main",
"index": 0
}
]
]
},
"Schedule Kickoff Call": {
"main": [
[
{
"node": "Send Welcome Email",
"type": "main",
"index": 0
}
]
]
},
"Copy Contract Template": {
"main": [
[
{
"node": "Send Slack Welcome",
"type": "main",
"index": 0
}
]
]
},
"GHL Webhook - Deal Won": {
"main": [
[
{
"node": "Fetch Won Deals from GHL",
"type": "main",
"index": 0
}
]
]
},
"Fetch Won Deals from GHL": {
"main": [
[
{
"node": "Validate Client Data",
"type": "main",
"index": 0
}
]
]
},
"Copy Kickoff Deck Template": {
"main": [
[
{
"node": "Create GHL Onboarding Task",
"type": "main",
"index": 0
}
]
]
},
"Create GHL Onboarding Task": {
"main": [
[
{
"node": "Send Welcome Email",
"type": "main",
"index": 0
}
]
]
}
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Automate your GoHighLevel (GHL) client onboarding process from the moment a deal is marked as “Won.” This workflow seamlessly generates client folders in Google Drive, duplicates contract and kickoff templates, schedules kickoff calls, sends branded welcome emails, creates…
Source: https://n8n.io/workflows/9138/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
Complete Calendly automation that handles confirmations, cancellations and reschedules in a single workflow. WHAT IT DOES:
Streamline and standardize your entire client onboarding process with a single end-to-end automation. 🚀📋 This workflow captures detailed client intake data via webhook, automatically creates a fully s
Suspicious_login_detection. Uses postgres, httpRequest, noOp, html. Webhook trigger; 43 nodes.
This n8n workflow is designed for security monitoring and incident response when suspicious login events are detected. It can be initiated either manually from within the n8n UI for testing or automat
Recruiting agency. Uses typeformTrigger, airtable, httpRequest, googleDrive. Event-driven trigger; 36 nodes.