Generate live sales demo briefings from HubSpot, web research, Slack and Sheets with Gemini

Go to Workflow
0 views
Built by iamvaar iamvaar
Created on October 18, 2026

Description

Quick overview
Youtube Video: https://youtu.be/ZiZEtSxSFoY

This workflow receives demo booking webhooks, validates and deduplicates them, enriches the request with HubSpot history and lightweight web research, generates a sales briefing with Google Gemini, posts it to Slack, and logs the briefing status and AI output to Google Sheets.

How it works
Receives a POST webhook request containing demo booking details.
Validates required fields, optionally checks a shared secret header, and deduplicates repeat bookings within a time window before deciding whether to proceed.
Upserts the booking into a Google Sheets “Bookings” sheet and waits briefly before looking up the contact in HubSpot by email.
Retrieves HubSpot deals, tickets, and recent engagements and creates a new HubSpot contact if none exists.
Builds a briefing context and runs several HTTP requests for web research snippets (DuckDuckGo results and optionally the company website via r.jina.ai).
Sends the compiled booking, HubSpot data, and research snippets to a Google Gemini model to generate a Slack-formatted sales briefing.
Posts the briefing to a Slack channel, logs briefing status and AI output back to Google Sheets, and returns a JSON success response to the original webhook call.

Setup
Configure the webhook URL (POST /demo-booking) in your booking form or scheduling tool to send fields like name, email, company, stated_problem, booking_time, and optional website/job_title/phone.
Add HubSpot OAuth2 credentials with access to contacts, deals, tickets, and engagements.
Add a Google Gemini (PaLM) API credential for the models/gemini-3.1-flash-lite chat model.
Add a Slack OAuth credential and set the target channel where briefings should be posted.
Add a Google Sheets service account credential and ensure the target spreadsheet contains a “Bookings” sheet with columns matching the workflow’s upsert fields (including BookingKey).
(Optional) Set a shared secret value in the validation step and send it as the x-webhook-secret header from the source system.

This workflow was created by iamvaar and shared publicly on the n8n community template library. n8nFind indexes it for discovery — the workflow remains the property of its original creator.

Nodes Used (7)

AI Agent
@n8n/n8n-nodes-langchain.agent
Code
n8n-nodes-base.code
Google Gemini Chat Model
@n8n/n8n-nodes-langchain.lmChatGoogleGemini
Google Sheets
n8n-nodes-base.googleSheets
HTTP Request
n8n-nodes-base.httpRequest
HubSpot
n8n-nodes-base.hubspot
Slack
n8n-nodes-base.slack