Generate live sales demo briefings from HubSpot, web research, Slack and Sheets with Gemini
Go to WorkflowDescription
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.