AutomationFlowsEmail & Gmail › JotForm to HubSpot Client Onboarding

JotForm to HubSpot Client Onboarding

Original n8n title: AI Client Onboarding Automation

AI Client Onboarding Automation. Uses jotFormTrigger, telegram, hubspot, gmail. Event-driven trigger; 16 nodes.

Event trigger★★★★☆ complexity16 nodesJot Form TriggerTelegramHubSpotGmailGoogle Drive
Email & Gmail Trigger: Event Nodes: 16 Complexity: ★★★★☆ Added:

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
{
  "name": "AI Client Onboarding Automation",
  "nodes": [
    {
      "parameters": {
        "form": "REDACTED_JOTFORM_FORM_ID"
      },
      "type": "n8n-nodes-base.jotFormTrigger",
      "typeVersion": 1,
      "position": [
        0,
        80
      ],
      "id": "REDACTED",
      "name": "Form Submission Trigger",
      "credentials": {
        "jotFormApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "loose",
            "version": 3
          },
          "conditions": [
            {
              "id": "17c93a59-fdd0-48f7-aa91-972717f7b513",
              "leftValue": "={{ $json.Name.first }}",
              "rightValue": "",
              "operator": {
                "type": "string",
                "operation": "notEmpty",
                "singleValue": true
              }
            },
            {
              "id": "dcd6139d-2d12-4c24-9436-a10d0fbf9a4b",
              "leftValue": "={{ $json.Email }}",
              "rightValue": "",
              "operator": {
                "type": "string",
                "operation": "notEmpty",
                "singleValue": true
              }
            }
          ],
          "combinator": "and"
        },
        "looseTypeValidation": true,
        "options": {}
      },
      "type": "n8n-nodes-base.if",
      "typeVersion": 2.3,
      "position": [
        224,
        80
      ],
      "id": "REDACTED",
      "name": "If"
    },
    {
      "parameters": {
        "chatId": "REDACTED_TELEGRAM_CHAT_ID",
        "text": "=\u26a0\ufe0f Validation Error Detected!\nThe incoming data is missing one or more required fields: \n- Customer's first mame: {{ $('Jotform Trigger').item.json.Name.first }}\n- Email: {{ $('Jotform Trigger').item.json.Email }}\nPlease review the submitted data and take action.  \n\n\ud83d\udcc5 Timestamp: {{ new Date().toLocaleString() }}\n",
        "additionalFields": {
          "appendAttribution": false
        }
      },
      "type": "n8n-nodes-base.telegram",
      "typeVersion": 1.2,
      "position": [
        448,
        176
      ],
      "id": "REDACTED",
      "name": "Validation Error Notification",
      "credentials": {
        "telegramApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "authentication": "oAuth2",
        "email": "={{ $('Jotform Trigger').item.json.Email }}",
        "additionalFields": {
          "firstName": "={{ $('Jotform Trigger').item.json.Name.first }}",
          "lastName": "={{ $('Jotform Trigger').item.json.Name.last }}"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.hubspot",
      "typeVersion": 2.2,
      "position": [
        448,
        -16
      ],
      "id": "REDACTED",
      "name": "Create CRM Contact",
      "credentials": {
        "hubspotOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "chatId": "REDACTED_TELEGRAM_CHAT_ID",
        "text": "=\ud83d\udea8 New customer onboarded:\nFull name: {{ $('Jotform Trigger').item.json.Name.first }} {{ $('Jotform Trigger').item.json.Name.last }}\nEmail: {{ $('Jotform Trigger').item.json.Email }}\n",
        "additionalFields": {
          "appendAttribution": false
        }
      },
      "type": "n8n-nodes-base.telegram",
      "typeVersion": 1.2,
      "position": [
        672,
        -112
      ],
      "id": "REDACTED",
      "name": "Send Team Alert",
      "credentials": {
        "telegramApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "sendTo": "={{ $('Jotform Trigger').item.json.Email }}",
        "subject": "Welcome to Our VIP Program!",
        "message": "\ud83d\udc4b Welcome to Our VIP Program! You\u2019re officially in.<br><br> As a member, you\u2019ll get: <ul> <li>Priority reservations</li><li>Exclusive offers</li> <li>VIP-only surprises</li></ul>\ud83c\udf81 Your first reward is unlocked already - we\u2019ll show you how to use it soon.",
        "options": {
          "appendAttribution": false
        }
      },
      "type": "n8n-nodes-base.gmail",
      "typeVersion": 2.2,
      "position": [
        672,
        80
      ],
      "id": "REDACTED",
      "name": "Send Welcome Email",
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "amount": 2
      },
      "type": "n8n-nodes-base.wait",
      "typeVersion": 1.1,
      "position": [
        896,
        80
      ],
      "id": "REDACTED",
      "name": "Wait 2 hours"
    },
    {
      "parameters": {
        "operation": "download",
        "fileId": {
          "__rl": true,
          "value": "REDACTED_GOOGLE_DRIVE_FILE_URL",
          "mode": "url"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.googleDrive",
      "typeVersion": 3,
      "position": [
        1120,
        80
      ],
      "id": "REDACTED",
      "name": "Download Onboarding Guide",
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "sendTo": "={{ $('Jotform Trigger').item.json.Email }}",
        "subject": "How Our Loyalty Program Works \ud83c\udf7d\ufe0f",
        "message": "Hi! Welcome to our VIP program - we\u2019re happy to have you with us.<br><br>|We\u2019ve attached a short PDF guide that explains how the VIP program works, how rewards are earned, and what benefits you can expect as a loyal guest.<br><br>\ud83d\udcce Please see the attached file: \u201cHow Our Loyalty Program Works\u201d.<br><br>If you have any questions after reading the guide, simply reply to this email - we\u2019re always happy to help.<br><br>See you soon,<br>Our Brand",
        "options": {}
      },
      "type": "n8n-nodes-base.gmail",
      "typeVersion": 2.2,
      "position": [
        1344,
        80
      ],
      "id": "REDACTED",
      "name": "Send Program Guide Email",
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "amount": 1
      },
      "type": "n8n-nodes-base.wait",
      "typeVersion": 1.1,
      "position": [
        1568,
        80
      ],
      "id": "REDACTED",
      "name": "Wait 1 day"
    },
    {
      "parameters": {
        "sendTo": "={{ $('Jotform Trigger').item.json.Email }}",
        "subject": "Special Offer Just For You - From Our Team",
        "message": "Hi \ud83d\udc4b,<br><br>|As one of our VIP guests, we\u2019ve unlocked a special offer for you.<br><br>\ud83c\udf79 <b>Unlimited complimentary drinks</b><br>Available for a limited time during your visit.<br><br>Simply book using your priority access and mention your VIP status when you arrive.<br><br>We\u2019ll take care of the rest.<br><br>- <b>Our Team</b> \u2615\u2728",
        "options": {
          "appendAttribution": false
        }
      },
      "type": "n8n-nodes-base.gmail",
      "typeVersion": 2.2,
      "position": [
        1792,
        -16
      ],
      "id": "REDACTED",
      "name": "Send Special Offer Email",
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "authentication": "oAuth2",
        "email": "={{ $('Jotform Trigger').item.json.Email }}",
        "additionalFields": {
          "leadStatus": "IN_PROGRESS"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.hubspot",
      "typeVersion": 2.2,
      "position": [
        1792,
        176
      ],
      "id": "REDACTED",
      "name": "Update CRM Status In Progress",
      "credentials": {
        "hubspotOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "amount": 2
      },
      "type": "n8n-nodes-base.wait",
      "typeVersion": 1.1,
      "position": [
        2016,
        176
      ],
      "id": "REDACTED",
      "name": "Wait"
    },
    {
      "parameters": {
        "sendTo": "={{ $('Jotform Trigger').item.json.Email }}",
        "subject": "Your VIP onboarding is complete!",
        "message": "=Hi {{ $('Jotform Trigger').item.json.Name.first }}\ud83d\udc4b,<br><br> Congratulations - your VIP onboarding is complete.<br><br>You\u2019re officially one of our <b>VIP guests</b>.<br>You can now book a table using <b>priority access</b> at any time.<br><br>\ud83c\udf81 We\u2019ve prepared a special gift for you.<br>It will be available within the next <b>7 days</b>, so we\u2019d love to welcome you back soon.<br><br>Just mention your VIP status when booking or show this email on arrival.<br><br>See you soon,<br><b>Our Team</b> \u2615\u2728",
        "options": {
          "appendAttribution": false
        }
      },
      "type": "n8n-nodes-base.gmail",
      "typeVersion": 2.2,
      "position": [
        2240,
        176
      ],
      "id": "REDACTED",
      "name": "Send Onboarding Complete Email",
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "authentication": "oAuth2",
        "email": "={{ $('Jotform Trigger').item.json.Email }}",
        "additionalFields": {
          "leadStatus": "CONNECTED"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.hubspot",
      "typeVersion": 2.2,
      "position": [
        2464,
        80
      ],
      "id": "REDACTED",
      "name": "Update CRM Status Connected",
      "credentials": {
        "hubspotOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "chatId": "REDACTED_TELEGRAM_CHAT_ID",
        "text": "=Onboarding for  {{ $('Jotform Trigger').item.json.Name.first }} has finshed. Please prepare a gift.\nEmail: {{ $('Jotform Trigger').item.json.Email }}\n",
        "additionalFields": {
          "appendAttribution": false
        }
      },
      "type": "n8n-nodes-base.telegram",
      "typeVersion": 1.2,
      "position": [
        2464,
        272
      ],
      "id": "REDACTED",
      "name": "Send Final Team Alert",
      "credentials": {
        "telegramApi": {
          "name": "<your credential>"
        }
      }
    }
  ],
  "connections": {
    "Form Submission Trigger": {
      "main": [
        [
          {
            "node": "If",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If": {
      "main": [
        [
          {
            "node": "Create CRM Contact",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Validation Error Notification",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create CRM Contact": {
      "main": [
        [
          {
            "node": "Send Team Alert",
            "type": "main",
            "index": 0
          },
          {
            "node": "Send Welcome Email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send Welcome Email": {
      "main": [
        [
          {
            "node": "Wait 2 hours",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait 2 hours": {
      "main": [
        [
          {
            "node": "Download Onboarding Guide",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download Onboarding Guide": {
      "main": [
        [
          {
            "node": "Send Program Guide Email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send Program Guide Email": {
      "main": [
        [
          {
            "node": "Wait 1 day",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait 1 day": {
      "main": [
        [
          {
            "node": "Send Special Offer Email",
            "type": "main",
            "index": 0
          },
          {
            "node": "Update CRM Status In Progress",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update CRM Status In Progress": {
      "main": [
        [
          {
            "node": "Wait",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait": {
      "main": [
        [
          {
            "node": "Send Onboarding Complete Email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send Onboarding Complete Email": {
      "main": [
        [
          {
            "node": "Update CRM Status Connected",
            "type": "main",
            "index": 0
          },
          {
            "node": "Send Final Team Alert",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": true,
  "settings": {
    "executionOrder": "v1",
    "binaryMode": "separate",
    "availableInMCP": false
  },
  "versionId": "REDACTED",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "id": "REDACTED",
  "tags": []
}

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

AI Client Onboarding Automation. Uses jotFormTrigger, telegram, hubspot, gmail. Event-driven trigger; 16 nodes.

Source: https://github.com/faythwong/ai-client-onboarding-automation/blob/main/client_onboarding_workflow.json — 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

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

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

Client Form → Draft → Approve → Sign → Deliver, fully automated

Jot Form Trigger, Gmail, Google Drive +4
Email & Gmail

🦜✨Use OpenAI to Transcribe Audio + Summarize with AI + Save to Google Drive. Uses gmail, stickyNote, openAi, limit. Event-driven trigger; 33 nodes.

Gmail, OpenAI, Google Drive +2
Email & Gmail

AICARE Email Blast System. Uses googleDrive, httpRequest, googleSheets, gmail. Event-driven trigger; 39 nodes.

Google Drive, HTTP Request, Google Sheets +2
Email & Gmail

Recruiting agency. Uses typeformTrigger, airtable, httpRequest, googleDrive. Event-driven trigger; 36 nodes.

Typeform Trigger, Airtable, HTTP Request +4