Back to Integrations
integrationGoogle Sheets node
integrationHubSpot node

Google Sheets and HubSpot integration

Save yourself the work of writing custom integrations for Google Sheets and HubSpot and use n8n instead. Build adaptable and scalable Data & Storage, Productivity, and Sales workflows that work with your technology stack. All within a building experience you will love.

How to connect Google Sheets and HubSpot

  • Step 1: Create a new workflow
  • Step 2: Add and configure nodes
  • Step 3: Connect
  • Step 4: Customize and extend your integration
  • Step 5: Test and activate your workflow

Step 1: Create a new workflow and add the first step

In n8n, click the "Add workflow" button in the Workflows tab to create a new workflow. Add the starting point – a trigger on when your workflow should run: an app event, a schedule, a webhook call, another workflow, an AI chat, or a manual trigger. Sometimes, the HTTP Request node might already serve as your starting point.

Google Sheets and HubSpot integration: Create a new workflow and add the first step

Step 2: Add and configure Google Sheets and HubSpot nodes

You can find Google Sheets and HubSpot in the nodes panel. Drag them onto your workflow canvas, selecting their actions. Click each node, choose a credential, and authenticate to grant n8n access. Configure Google Sheets and HubSpot nodes one by one: input data on the left, parameters in the middle, and output data on the right.

Google Sheets and HubSpot integration: Add and configure Google Sheets and HubSpot nodes

Step 3: Connect Google Sheets and HubSpot

A connection establishes a link between Google Sheets and HubSpot (or vice versa) to route data through the workflow. Data flows from the output of one node to the input of another. You can have single or multiple connections for each node.

Google Sheets and HubSpot integration: Connect Google Sheets and HubSpot

Step 4: Customize and extend your Google Sheets and HubSpot integration

Use n8n's core nodes such as If, Split Out, Merge, and others to transform and manipulate data. Write custom JavaScript or Python in the Code node and run it as a step in your workflow. Connect Google Sheets and HubSpot with any of n8n’s 1000+ integrations, and incorporate advanced AI logic into your workflows.

Google Sheets and HubSpot integration: Customize and extend your Google Sheets and HubSpot integration

Step 5: Test and activate your Google Sheets and HubSpot workflow

Save and run the workflow to see if everything works as expected. Based on your configuration, data should flow from Google Sheets to HubSpot or vice versa. Easily debug your workflow: you can check past executions to isolate and fix the mistake. Once you've tested everything, make sure to save your workflow and activate it.

Google Sheets and HubSpot integration: Test and activate your Google Sheets and HubSpot workflow

AI-powered lead enrichment with Bright Data MCP and Google Sheets

📌 HubSpot Lead Enrichment with Bright Data MCP

This template enables natural-language-driven automation using Bright Data's MCP tools, triggered directly by new leads in HubSpot. It dynamically extracts and executes the right tool based on lead context—powered by AI and configurable in N8N.

❓ What Problem Does This Solve?

Manual lead enrichment is slow, inconsistent, and drains valuable time. This solution automates the process using a no-code workflow that connects HubSpot, Bright Data MCP, and an AI agent—without requiring scripts or technical skills. Perfect for marketing, sales, and RevOps teams.

🧰 Prerequisites

To use this template, you’ll need:

A self-hosted or cloud instance of N8N
A Bright Data MCP API token
A valid OpenAI API key (or compatible AI model)
A HubSpot account
Either a Private App token or OAuth credentials for HubSpot
Basic familiarity with N8N workflows

⚙️ Setup Instructions

  1. Set Up Authentication in HubSpot

🔐 Option 1: Use a Private App Token (Simple Setup)
Log in to your HubSpot account.
Navigate to Settings → Integrations → Private Apps.
Create a new Private App with the following scopes:
crm.objects.contacts.read
crm.objects.contacts.write
crm.schemas.contacts.read
crm.objects.companies.read (optional)
Copy the Access Token.
In N8N, create a credential for HubSpot App Token and paste the app token in the field.
Go back to Hubspot Private App settings to setup a webhook.
Copy the url in your workflow's Webhook node and paste it here.

🔁 Option 2: Use OAuth (Advanced + Secure)
In HubSpot, go to Settings → Integrations → Apps → Create App.
Set your Redirect URL to match your N8N OAuth2 redirect path.
Choose scopes like:
crm.objects.companies.read
crm.objects.contacts.read
crm.objects.deals.read
crm.schemas.companies.read
crm.schemas.contacts.read
crm.schemas.deals.read
crm.objects.contacts.write (conditionally required)
Note the Client ID and Client Secret.
Copy the App ID and the developer API key
In N8N, create a credential for HubSpot Developer API and paste those info from previous step.
Attach these credentials to the HubSpot node in N8N.

  1. Setup and obtain API token and other necessary information from Bright Data

    In your Bright Data account, obtain the following information:
    API token
    Web Unlocker zone name (optional)
    Browser API username and password string separated by colon (optional)

  2. Host SSE server from STDIO command
    The methods below will allow you to receive SSE (Server-Sent Events) from Bright Data MCP via a local Supergateway or Smithery

    **

    Method 1: Run Supergateway in a separate web service (Recommended)

    This method will work for both cloud version and self-hosted N8N.

    Signup to any cloud services of your choice (DigitalOcean, Heroku, Hetzner, Render, etc.).

For NPM based installation:

Create a new web service.
Choose Node.js as runtime environment and setup a custom server without repository.
In your server’s settings to define environment variables or .env file, add:
API_TOKEN=your_brightdata_api_token WEB_UNLOCKER_ZONE=optional_zone_name BROWSER_AUTH=optional_browser_auth
Paste the following text as a start command: npx -y supergateway --stdio "npx -y @brightdata/mcp" --port 8000 --baseUrl http://localhost:8000 --ssePath /sse --messagePath /message
Deploy it and copy the web server URL, then append /sse into it.
Your SSE server should now be accessible at: https://your_server_url/sse

For Docker based installation:
Create a new web service.
Choose Docker as the runtime environment.
Set up your Docker environment by pulling the necessary images or creating a custom Dockerfile.
In your server’s settings to define environment variables or .env file, add:
API_TOKEN=your_brightdata_api_token WEB_UNLOCKER_ZONE=optional_zone_name BROWSER_ZONE=optional_browser_zone_name
Use the following Docker command to run Supergateway: docker run -it --rm -p 8000:8000 supercorp/supergateway \ --stdio "npx -y @brightdata/mcp /" \ --port 8000
Deploy it and copy the web server URL, then append /sse into it.
Your SSE server should now be accessible at: https://your_server_url/sse

For more installation guides, please refer to https://github.com/supercorp-ai/supergateway.git.
**

Method 2: Run Supergateway in the same web service as the N8N instance

This method will only work for self-hosted N8N.

a. Set Required Environment Variables

In your server's settings to define environment variables or .env file, add:

  API_TOKEN=your_brightdata_api_token

WEB_UNLOCKER_ZONE=optional_zone_name
BROWSER_ZONE=optional_browser_zone_name
b. Run Supergateway in Background

  npx -y supergateway --stdio "npx -y @brightdata/mcp" --port 8000 --baseUrl http://localhost:8000 --ssePath /sse --messagePath /message
  Use the command above to execute it through the cloud shell or set it as a pre-deploy command.

Your SSE server should now be accessible at:
http://localhost:8000/sse

For more installation guides, please refer to https://github.com/supercorp-ai/supergateway.git.

Method 3: Configure via Smithery.ai (Easiest)
If you don't want additional setup and want to test it right away, follow these instructions:

Visit https://smithery.ai/server/@luminati-io/brightdata-mcp/tools to:
Signup (if you are new to Smithery)
Create an API key
Define environment variables via a profile
Retrieve your SSE server HTTP URL

  1. Connect Google Sheets to N8N

Ensure your Google Sheet:
Contains columns like row_id, first_name, last_name, email, and status.
Is shared with your N8N service account (or connected via OAuth)

In N8N:
Add a Google Sheets Trigger node
Set it to watch for new rows in your lead sheet

  1. Import and Configure the N8N Workflow

Import the provided JSON workflow into N8N
Update nodes with your credentials:
Hubspot: Add your API key or connect it via OAuth.
Google Sheets Trigger: Link to your actual sheet
OpenAI Node: Add your API key
Bright Data Tool Execution: Add Bright Data token and SSE URL

🔄 How It Works
New contact in Hubspot or a new row is added to the Google Sheet
N8N triggers the workflow
AI agent classifies the task (e.g., “Find LinkedIn”, “Get company info”)
The relevant MCP tool is called
Results are appended back to the sheet or routed to another destination
Rerun the specific record by specifying status "needs more enrichment", or leaving it blank.

🧩 Use Cases

B2B Lead Enrichment** – Add missing fields (title, domain, social profiles)
Email Intelligence** – Validate and enrich based on email
Market Research** – Pull company or contact data on demand
CRM Auto-fill** – Push enriched leads to tools like HubSpot or Salesforce

🛠️ Customization

Prompt Tuning** – Adjust how the AI interprets input data
Column Mapping** – Customize which fields to pull from the sheet
Tool Logic** – Add retries, fallback tools, or confidence-based routing
Destination Output** – Integrate with CRMs, Slack, or webhook endpoints

✅ Summary

This template turns a Google Sheet into an AI-powered lead enrichment engine. By combining Bright Data’s tools with a natural language AI agent, your team can automate repetitive tasks and scale lead ops—without writing code.

Just add a row, and let the workflow do the rest.

Nodes used in this workflow

Popular Google Sheets and HubSpot workflows

Create HubSpot Companies & Tasks from Jotform Submissions with Google Sheets

🛠️ Workflow: Jotform → HubSpot Company + Task Automation Automatically create or update HubSpot companies and generate follow-up tasks whenever a Jotform is submitted. All logs are stored to Google Sheets for traceability, transparency, and debugging. ✅ Use Cases Capture marketing queries from your website’s Jotform form and immediately create tasks for your sales or SDR team. Enrich HubSpot companies with submitted domains, company names, and contact data. Automatically assign tasks to owners and keep all form submissions logged and auditable. Avoid manual handoffs — full automation from form submission → CRM. 🔍 How It Works (Step-by-Step) Jotform Trigger The workflow starts when a new submission is received via the Jotform webhook. Captured fields include: name, email, LinkedIn profile, company name, marketing budget, domain, and any specific query. Create or Update Company in HubSpot + Format Data The “Create Company” node ensures the submitted company is either created in HubSpot or updated if it already exists. A Formatter (Function) node standardizes the data — names, email, LinkedIn URL, domain, marketing budget, and query text. It composes a task title, generates a follow-up timestamp, and dynamically assigns an owner. Loop & HTTP Request – Create HubSpot Task The workflow loops through each formatted item. A Wait node prevents rate limit issues. It then sends an HTTP POST request to HubSpot’s Tasks API, creating a task with: Subject and body including the submission details Task status, priority, and type Assigned owner and associated company Loop & HTTP Request – Set Company Domain After tasks are created, another loop updates each HubSpot company record with the submitted domain. This ensures all HubSpot companies have proper website data for future enrichment. Storing Logs (Google Sheets) All processed submissions, responses, errors, and metadata are appended or updated in a Google Sheets document. This provides a complete audit trail — ideal for debugging, reporting, and performance monitoring. 🧩 Node Structure Overview | Step | Node | Description | |------|------|--------------| | 1️⃣ | Jotform Trigger | Receives form submission data | | 2️⃣ | HubSpot Create Company | Ensures company record exists | | 3️⃣ | Formatter / Function Node | Cleans & structures data, assigns owner, generates task fields | | 4️⃣ | Wait / Delay Node | Controls API call frequency | | 5️⃣ | HTTP Request (Create Task) | Pushes task to HubSpot | | 6️⃣ | HTTP Request (Update Domain) | Updates company domain in HubSpot | | 7️⃣ | Google Sheets Node | Logs inputs, outputs, and status | 📋 Requirements & Setup 🔑 HubSpot Private App Token with permissions to create companies, tasks, and update records 🌐 Jotform Webhook URL pointing to this workflow 📗 Google Sheets Credentials (OAuth or service account) with write access ✅ HubSpot app must have crm.objects.companies.write and crm.objects.tasks.write scopes ⚠️ Add retry or error-handling branches for failed API calls ⚙️ Customization Tips & Variations Add contact association:** Modify the payload to also link the task with a HubSpot Contact (via email) so it appears in both company and contact timelines. Use fallback values:** In the Formatter node, provide defaults like “Unknown Company” or “No query provided.” Dynamic owner assignment:** Replace hash-based assignment with round-robin or territory logic. Conditional task creation:** Add logic to only create tasks when certain conditions are met (e.g., budget > 0). Error branches:** Capture failed HTTP responses and send Slack/Email alerts. Extended logs:** Add response codes, errors, and retry counts to your Google Sheet for more transparency. 🎯 Benefits & Why You’d Use This ⚡ Speed & Automation — eliminate manual data entry into HubSpot 📊 Data Consistency — submissions are clean, enriched, and traceable 👀 Transparency — every action logged for full visibility 🌍 Scalability — handle hundreds of submissions effortlessly 🔄 Flexibility — adaptable for other use cases (support tickets, surveys, partnerships, etc.) ✨ Example Use Case A marketing form on your website captures partnership or franchise inquiries. This workflow instantly creates a HubSpot company, logs the inquiry as a task, assigns it to a regional manager, and saves a record in Google Sheets — all within seconds. Tags: HubSpot Jotform CRM GoogleSheets Automation LeadManagement
+3

AI-Powered Lead Enrichment with Bright Data MCP and Google Sheets

📌 HubSpot Lead Enrichment with Bright Data MCP This template enables natural-language-driven automation using Bright Data's MCP tools, triggered directly by new leads in HubSpot. It dynamically extracts and executes the right tool based on lead context—powered by AI and configurable in N8N. ❓ What Problem Does This Solve? Manual lead enrichment is slow, inconsistent, and drains valuable time. This solution automates the process using a no-code workflow that connects HubSpot, Bright Data MCP, and an AI agent—without requiring scripts or technical skills. Perfect for marketing, sales, and RevOps teams. 🧰 Prerequisites To use this template, you’ll need: A self-hosted or cloud instance of N8N A Bright Data MCP API token A valid OpenAI API key (or compatible AI model) A HubSpot account Either a Private App token or OAuth credentials for HubSpot Basic familiarity with N8N workflows ⚙️ Setup Instructions Set Up Authentication in HubSpot 🔐 Option 1: Use a Private App Token (Simple Setup) Log in to your HubSpot account. Navigate to Settings → Integrations → Private Apps. Create a new Private App with the following scopes: crm.objects.contacts.read crm.objects.contacts.write crm.schemas.contacts.read crm.objects.companies.read (optional) Copy the Access Token. In N8N, create a credential for HubSpot App Token and paste the app token in the field. Go back to Hubspot Private App settings to setup a webhook. Copy the url in your workflow's Webhook node and paste it here. 🔁 Option 2: Use OAuth (Advanced + Secure) In HubSpot, go to Settings → Integrations → Apps → Create App. Set your Redirect URL to match your N8N OAuth2 redirect path. Choose scopes like: crm.objects.companies.read crm.objects.contacts.read crm.objects.deals.read crm.schemas.companies.read crm.schemas.contacts.read crm.schemas.deals.read crm.objects.contacts.write (conditionally required) Note the Client ID and Client Secret. Copy the App ID and the developer API key In N8N, create a credential for HubSpot Developer API and paste those info from previous step. Attach these credentials to the HubSpot node in N8N. Setup and obtain API token and other necessary information from Bright Data In your Bright Data account, obtain the following information: API token Web Unlocker zone name (optional) Browser API username and password string separated by colon (optional) Host SSE server from STDIO command The methods below will allow you to receive SSE (Server-Sent Events) from Bright Data MCP via a local Supergateway or Smithery ** Method 1: Run Supergateway in a separate web service (Recommended) This method will work for both cloud version and self-hosted N8N. Signup to any cloud services of your choice (DigitalOcean, Heroku, Hetzner, Render, etc.). For NPM based installation: Create a new web service. Choose Node.js as runtime environment and setup a custom server without repository. In your server’s settings to define environment variables or .env file, add: `API_TOKEN=your_brightdata_api_token WEB_UNLOCKER_ZONE=optional_zone_name BROWSER_AUTH=optional_browser_auth` Paste the following text as a start command: npx -y supergateway --stdio "npx -y @brightdata/mcp" --port 8000 --baseUrl http://localhost:8000 --ssePath /sse --messagePath /message Deploy it and copy the web server URL, then append /sse into it. Your SSE server should now be accessible at: https://your_server_url/sse For Docker based installation: Create a new web service. Choose Docker as the runtime environment. Set up your Docker environment by pulling the necessary images or creating a custom Dockerfile. In your server’s settings to define environment variables or .env file, add: `API_TOKEN=your_brightdata_api_token WEB_UNLOCKER_ZONE=optional_zone_name BROWSER_ZONE=optional_browser_zone_name` Use the following Docker command to run Supergateway: `docker run -it --rm -p 8000:8000 supercorp/supergateway \ --stdio "npx -y @brightdata/mcp /" \ --port 8000` Deploy it and copy the web server URL, then append /sse into it. Your SSE server should now be accessible at: https://your_server_url/sse For more installation guides, please refer to https://github.com/supercorp-ai/supergateway.git. ** Method 2: Run Supergateway in the same web service as the N8N instance This method will only work for self-hosted N8N. a. Set Required Environment Variables In your server's settings to define environment variables or .env file, add: API_TOKEN=your_brightdata_api_token WEB_UNLOCKER_ZONE=optional_zone_name BROWSER_ZONE=optional_browser_zone_name b. Run Supergateway in Background npx -y supergateway --stdio "npx -y @brightdata/mcp" --port 8000 --baseUrl http://localhost:8000 --ssePath /sse --messagePath /message Use the command above to execute it through the cloud shell or set it as a pre-deploy command. Your SSE server should now be accessible at: http://localhost:8000/sse For more installation guides, please refer to https://github.com/supercorp-ai/supergateway.git. Method 3: Configure via Smithery.ai (Easiest) If you don't want additional setup and want to test it right away, follow these instructions: Visit https://smithery.ai/server/@luminati-io/brightdata-mcp/tools to: Signup (if you are new to Smithery) Create an API key Define environment variables via a profile Retrieve your SSE server HTTP URL Connect Google Sheets to N8N Ensure your Google Sheet: Contains columns like row_id, first_name, last_name, email, and status. Is shared with your N8N service account (or connected via OAuth) In N8N: Add a Google Sheets Trigger node Set it to watch for new rows in your lead sheet Import and Configure the N8N Workflow Import the provided JSON workflow into N8N Update nodes with your credentials: Hubspot: Add your API key or connect it via OAuth. Google Sheets Trigger: Link to your actual sheet OpenAI Node: Add your API key Bright Data Tool Execution: Add Bright Data token and SSE URL 🔄 How It Works New contact in Hubspot or a new row is added to the Google Sheet N8N triggers the workflow AI agent classifies the task (e.g., “Find LinkedIn”, “Get company info”) The relevant MCP tool is called Results are appended back to the sheet or routed to another destination Rerun the specific record by specifying status "needs more enrichment", or leaving it blank. 🧩 Use Cases B2B Lead Enrichment** – Add missing fields (title, domain, social profiles) Email Intelligence** – Validate and enrich based on email Market Research** – Pull company or contact data on demand CRM Auto-fill** – Push enriched leads to tools like HubSpot or Salesforce 🛠️ Customization Prompt Tuning** – Adjust how the AI interprets input data Column Mapping** – Customize which fields to pull from the sheet Tool Logic** – Add retries, fallback tools, or confidence-based routing Destination Output** – Integrate with CRMs, Slack, or webhook endpoints ✅ Summary This template turns a Google Sheet into an AI-powered lead enrichment engine. By combining Bright Data’s tools with a natural language AI agent, your team can automate repetitive tasks and scale lead ops—without writing code. Just add a row, and let the workflow do the rest.

Monitor CRM hiring spikes and send Slack alerts with HubSpot and PredictLeads

Monitor CRM accounts for hiring spikes by enriching HubSpot companies with PredictLeads job data and alerting your team via Slack. This workflow pulls all companies from your HubSpot CRM, checks each one against the PredictLeads Job Openings API for target roles (sales, engineering, marketing, product, data), compares the current count to historical data stored in Google Sheets, and flags any company where hiring jumped more than 50%. Flagged companies get updated in HubSpot with a hiring signal and trigger a Slack alert so your sales team can act fast. How it works: Schedule trigger runs the workflow daily at 9 AM. Retrieves all companies from HubSpot CRM (domain, name, ID). Loops through each company and fetches job openings from PredictLeads. Filters jobs to target roles (sales, engineering, marketing, product, data). Reads the previous job count for that company from Google Sheets. Calculates percentage change between current and historical counts. If hiring increased more than 50%, flags it as a spike. Updates the HubSpot company record with a hiring signal property. Sends a Slack alert with the company name, role count, and percentage change. Updates Google Sheets with the latest count regardless of spike status. Setup: Connect your HubSpot CRM (OAuth2) with company read/write access. Create a Google Sheet with a "HistoricalCounts" tab containing columns: domain, company_name, job_count, previous_count, percent_change, check_date. Connect a Slack bot to the channel where you want hiring alerts. Add your PredictLeads API credentials (X-Api-Key and X-Api-Token headers). Requirements: HubSpot CRM account with OAuth2 credentials. Google Sheets OAuth2 credentials. Slack OAuth2 credentials (bot with chat:write permission). PredictLeads API account (https://docs.predictleads.com). Notes: The 50% spike threshold can be adjusted in the IF node. Target roles are configured in the Filter Target Roles code node -- add or remove roles as needed. The workflow updates historical data on every run, so spike detection improves over time. PredictLeads Job Openings API docs: https://docs.predictleads.com
+6

Automate Lead Intelligence & Outreach with GPT-4o, LinkedIn, HubSpot & Outlook

AI Lead Intelligence & Outreach: Verified Emails, HubSpot Sync & Outlook Drafts Who is this for? This workflow is designed for sales/RevOps teams, B2B founders, SDR/AE teams, and agencies who live in HubSpot and need consistent, compliant first-touch outreach at scale. If you regularly build reusable, multi-client n8n automations, this template will save you hours of manual work. What problem is this workflow solving? / Use case Manual lead handling is slow and inconsistent: Leads arrive messy across forms, lists, and imports; ownership and priority are unclear. Finding the right decision-maker and a deliverable email takes too long. Outreach copy drifts from brand guidelines, and CRM updates get missed. This workflow solves the problem by creating a reliable pipeline from capture → enrichment → verification → CRM sync → Outlook draft, cutting handoffs and preserving auditability. What this workflow does Capture and batching - Triggers on new/updated leads in HubSpot or pulls "ready" rows from Google Sheets; processes items sequentially to stay rate-safe. Normalize and score (ICP) - Cleans names, company, and domains; applies configurable ICP rules and writes score plus reasoning back to HubSpot/Sheets. Enrich contacts - Confirms official company details and identifies likely decision-makers via focused people searches; dedupes and role-normalizes. Verify emails - Finds work emails, checks deliverability, and logs confidence and timestamps to a tracking sheet immediately after each result. Compose outreach - Calls the approved template in Email content; personalizes only the first name; validates structure via Structured Output Parser. Draft in Outlook - Uses Microsoft Graph to create an HTML draft; embeds an inline signature image fetched from Google Drive. CRM sync and tasks - Creates/updates HubSpot contacts and associations, stores the composed email in properties, and opens a next-day follow-up task for the owner. Safety and observability - Deterministic prompts, strict parsing, idempotent writes, and clear flags prevent duplicates; optional Slack/Teams alerts for failures. Setup Connect your accounts: HubSpot (app token) Microsoft Graph (OAuth2) Google Sheets Google Drive Your LLM provider (for Level 2 Orchestrator and Email content) Set your credentials in the respective nodes. Adjust the Google Sheet IDs to match your own sheet structure. Map HubSpot properties (owner, contact/company IDs, custom fields for score, reasoning, and email content). Paste your approved HTML in Email content and upload your signature image to Drive. Configure schedule, batch size, and any Slack/Teams webhooks for notifications. How to customize this workflow to your needs ICP logic**: Edit scoring weights and required qualifiers (industry, region, size, tech stack). Personas**: Change role detection and caps (e.g., Ops, Finance, Procurement). Copy control**: Swap the template in Email content or add A/B variants while keeping structure validation. Triggers**: Use webhook capture from forms, list-based pulls, or time-based recrawls. Delivery**: Switch the mail node to Gmail API if preferred; keep the same compose/verify/track sequence. Governance**: Add holdouts, opt-out checks, and rate limits per domain or owner; expand logs for export to a data warehouse. ✨ With this workflow, you go from messy inbound leads → verified contacts → synchronized HubSpot records → ready-to-send Outlook drafts in just minutes, with almost no manual work. Need help customizing? Contact me for consulting and support: click here
+3

AI-powered Client Onboarding with Jotform, Asana, Slack, and HubSpot

Streamline client onboarding and project setup from hours to minutes with AI-driven automation. This intelligent workflow eliminates manual coordination, builds proposals, creates projects in Asana, welcomes clients on Slack, and logs everything — ensuring 90% faster onboarding and zero dropped steps. What This Workflow Does Transforms your client onboarding from scattered tools and emails into one seamless automation: 📝 Capture Client Details – Jotform intake form collects client, company, and project information. 🧠 AI-Powered Analysis – LangChain AI Agent analyzes the project scope, estimates effort, and recommends team composition. 📄 Generate Proposal – Automatically builds a professional HTML proposal summarizing goals, timeline, and estimated hours. 🗂️ Create Asana Project – Generates a new project with all key details, milestones, and assigned team members. 💬 Slack Collaboration – Creates a dedicated Slack channel, sends welcome messages, and introduces the project team. 📧 Welcome Email – Sends a personalized onboarding email to the client with project summary and next steps. 💼 CRM Sync – Creates or updates a HubSpot contact with complete project and client information. 📊 Audit Logging – Logs all onboarding activity to Google Sheets for centralized record-keeping. Key Features 🤖 AI Proposal Generation – Uses LangChain AI to generate smart project summaries and resource plans. ⚙️ End-to-End Automation – From form submission to project creation, communication, and CRM logging. 💬 Smart Slack Setup – Automatic channel creation and messaging for internal coordination. 📧 Personalized Client Emails – Beautifully formatted, professional onboarding emails. 🗂️ Asana Integration – Project creation with dynamic task templates and priorities. 📊 Google Sheets Logging – Instant audit trail for every client submission and generated proposal. 💼 CRM Integration – Automatically syncs client data with HubSpot for sales and account tracking. Perfect For 🚀 Agencies & Service Providers – Automate client onboarding, proposal creation, and task setup. 🏢 Consultancies – Quickly turn client requests into structured projects with assigned resources. 💻 Freelancers & Creators – Impress clients with AI-built proposals and instant communication. 📈 Growing Teams – Scale onboarding without extra admin or coordination time. 🧠 Operations Teams – Ensure consistency and transparency across all onboarding activities. What You’ll Need Required Integrations 🧾 Jotform – Client intake form (project details, budget, company info). Create your form for free on Jotform using this link 🤖 AI Agent – For analyzing project scope and building proposals. 🗂️ Asana – Project creation and task assignment. 💬 Slack – For automated client channel creation and internal communication. 📧 Gmail – For onboarding and proposal emails. 💼 HubSpot – CRM contact creation and project linkage. 📊 Google Sheets – For logging all onboarding and AI results. Optional Enhancements 📄 PDF Generation (PDF Munk) – Convert AI-generated proposals into downloadable PDFs. 💬 Slack Interactive Approvals – Add buttons for internal review before client communication. 📈 Performance Dashboard – Connect Google Sheets data to Looker Studio for tracking onboarding times. 🌍 Multilingual Support – Add translation nodes for international clients. 🔐 File Attachments – Send proposal PDFs or onboarding kits automatically via Gmail. Quick Start 1️⃣ Import Template – Copy and import the JSON file into your n8n workspace. 2️⃣ Set Up Jotform – Create a form with fields for client name, company, project name, budget, and requirements. 3️⃣ Add Credentials – Connect Jotform, AI Agent, Asana, Slack, Gmail, HubSpot, and Google Sheets. 4️⃣ Configure Sheet ID – Replace YOUR_SHEET_ID in the Google Sheets node. 5️⃣ Customize Proposal HTML – Edit AI prompt and branding to reflect your company’s style. 6️⃣ Test Workflow – Submit a test form and verify Slack, Asana, Gmail, and Sheets outputs. 7️⃣ Deploy – Activate workflow and share the Jotform link with your sales or operations team. Customization Options 1️⃣ Proposal Branding – Customize proposal HTML with logos, brand colors, and formatting. 2️⃣ AI Prompt Tuning – Refine the LangChain AI prompt to match your tone or project style. 3️⃣ Task Templates – Adjust task names, assignees, and due dates in the Asana creation node. 4️⃣ Slack Messaging – Update welcome message formatting and team introduction details. 5️⃣ CRM Fields – Map additional HubSpot properties for better data tracking. 6️⃣ Sheet Logging – Add more columns for tracking team recommendations or proposal scores. Expected Results ⚡ 90% Faster Onboarding – Reduce manual setup from hours to minutes. 🤖 AI Precision – Intelligent proposals and team allocations that impress clients instantly. 📈 Zero Missed Steps – Every project automatically created, communicated, and logged. 💬 Seamless Collaboration – Slack, Gmail, and Asana in perfect sync. 🗂️ Complete Transparency – Every onboarding step logged for accountability and improvement. 🏆 Use Cases 🧑‍💼 Marketing & Creative Agencies – Automate creative project scoping and proposal creation. 💻 Software Development Teams – Rapidly assess client tech requirements and allocate developers. 🧾 Consulting Firms – Build data-backed, AI-enhanced proposals for client engagements. 🏢 Corporate PMOs – Standardize project setup and approvals across multiple departments. Pro Tips 💡 Refine AI Prompt – Include examples of past projects to improve proposal quality. 💬 Add Slack Approvals – Insert “manager approval” logic before sending proposals. 📄 Attach PDFs – Use PDF Munk for branded, downloadable proposals. 📊 Track Conversion – Link HubSpot deal stage changes based on Asana progress. 📅 Monitor Efficiency – Use Sheet timestamps to calculate average onboarding time. Learning Resources This workflow demonstrates: AI integration using Agents Multi-app orchestration and data syncing Advanced HTML and email template customization Real-world Asana and Slack API usage CRM syncing and Google Sheets logging Modular, scalable n8n workflow design Workflow Structure Visualization 📝 Jotform Submission ↓ 🧠 AI Project Analysis (Agent) ↓ 📄 Proposal Generation (HTML) ↓ 🗂️ Asana Project Creation ↓ 💬 Slack Channel Setup & Message ↓ 📧 Gmail Welcome Email ↓ 💼 HubSpot Contact Creation ↓ 📊 Google Sheets Log Ready to Revolutionize Client Onboarding? Import this template today and let AI handle the heavy lifting. Your team saves hours, your clients get instant engagement — and your entire process runs flawlessly. ✨
+3

Score and nurture HubSpot leads with Clearbit and Gemini AI

Who is this for SMB sales teams and SaaS companies who want to automatically prioritize and nurture new leads without manual qualification. Perfect for businesses getting 50+ leads per month who need to identify high-value prospects quickly. How it works When a new contact is created in HubSpot, the workflow automatically enriches their data using Clearbit's company database. A scoring algorithm evaluates company size, industry fit, and job title relevance, then Gemini AI analyzes the enriched data to provide additional insights and generate personalized outreach content. Hot leads (score 80+) receive immediate personalized emails and trigger Slack notifications to the sales team. Warm leads (50-79) are added to nurturing sequences. Cold leads are simply scored for future reference. All scoring data and reasoning are logged to Google Sheets for analysis and optimization. How to set up Configure credentials for HubSpot, Clearbit API, Gemini AI, Gmail, Slack, and Google Sheets. Create a Google Sheet for scoring history with the column headers shown in the workflow. Update the Slack channel name in the notification node and customize the Gmail sender settings. Requirements HubSpot with contact creation access Clearbit Enrichment API account Google Gemini AI API key Gmail account for sending emails Slack workspace for notifications Google Sheets for tracking How to customize Adjust scoring criteria in the Set node including target industries, company size weights, and role priorities. Modify hot/warm score thresholds (default 80/50). Customize email templates and Slack message format within the Gemini AI prompt. Add additional scoring factors in the Code node calculation.

Build your own Google Sheets and HubSpot integration

Create custom Google Sheets and HubSpot workflows by choosing triggers and actions. Nodes come with global operations and settings, as well as app-specific parameters that can be configured. You can also use the HTTP Request node to query data from any app or service with a REST API.

Google Sheets supported actions

Create
Create a spreadsheet
Delete
Delete a spreadsheet
Append or Update Row
Append a new row or update an existing one (upsert)
Append Row
Create a new row in a sheet
Clear
Delete all the contents or a part of a sheet
Create
Create a new sheet
Delete
Permanently delete a sheet
Delete Rows or Columns
Delete columns or rows from a sheet
Get Row(s)
Retrieve one or more rows from a sheet
Update Row
Update an existing row in a sheet

HubSpot supported actions

Create
Create a company
Delete
Delete a company
Get
Get a company
Get Many
Get many companies
Get Recently Created/Updated
Get recently created/updated companies
Search
Search companies by their website domain
Update
Update a company
Create or Update
Create a new contact, or update the current one if it already exists (upsert)
Delete
Delete a contact
Get
Get a contact
Get Many
Get many contacts
Get Recently Created/Updated
Get recently created/updated contacts
Search
Search contacts
Add
Add contact to a list
Remove
Remove a contact from a list
Create
Create a deal
Delete
Delete a deal
Get
Get a deal
Get Many
Get many deals
Get Recently Created/Updated
Get recently created/updated deals
Search
Search deals
Update
Update a deal
Create
Create an engagement
Delete
Delete an engagement
Get
Get an engagement
Get Many
Get many engagements
Create
Create a ticket
Delete
Delete a ticket
Get
Get a ticket
Get Many
Get many tickets
Update
Update a ticket

FAQs

  • Can Google Sheets connect with HubSpot?

  • Can I use Google Sheets’s API with n8n?

  • Can I use HubSpot’s API with n8n?

  • Is n8n secure for integrating Google Sheets and HubSpot?

  • How to get started with Google Sheets and HubSpot integration in n8n.io?

Need help setting up your Google Sheets and HubSpot integration?

Discover our latest community's recommendations and join the discussions about Google Sheets and HubSpot integration.
Sergey Komardenkov
sérgio eduardo floresta filho
Julian
therealJMT
Guilherme

Looking to integrate Google Sheets and HubSpot in your company?

Over 3000 companies switch to n8n every single week

Why use n8n to integrate Google Sheets with HubSpot

Build complex workflows, really fast

Build complex workflows, really fast

Handle branching, merging and iteration easily.
Pause your workflow to wait for external events.

Code when you need it, UI when you don't

Simple debugging

Your data is displayed alongside your settings, making edge cases easy to track down.

Use templates to get started fast

Use 1000+ workflow templates available from our core team and our community.

Reuse your work

Copy and paste, easily import and export workflows.

Implement complex processes faster with n8n

red iconyellow iconred iconyellow icon