by Avkash Kakdiya
How it works This workflow automatically handles every resolved Jira bug by verifying the fix, notifying the customer, updating HubSpot, commenting on the Jira issue, alerting the team on Slack, and logging everything to Google Sheets — all without any manual effort. If customer contact details are missing, it routes to a manual follow-up alert instead. Step-by-step Trigger & filter** Jira Trigger – Listens for jira:issue_updated events on your Jira project. Filter: Bug Resolved? – Checks that the issue type is Bug, the status moved to Done, and the changelog contains a status change before proceeding. Normalize & deduplicate** Normalize & Enrich Payload – Extracts and enriches all issue data including summary, priority, components, fix versions, labels, sprint, assignee, reporter, resolution comment, customer email, days open, and a direct Jira issue URL. Deduplication Check – Uses workflow static data to check if this issue key has already been processed, preventing duplicate notifications. Already Processed? – Stops the workflow if the issue was previously handled; continues only for first-time resolutions. Customer contact check** Has Customer Email? – Routes to the full notification path if a customer email is found, or to the manual follow-up path if not. Data enrichment (parallel)** Get Jira Issue Details – Fetches the full Jira issue including comments, attachments, and worklogs to extract the latest resolution comment. Search HubSpot Contact – Searches HubSpot by customer email to retrieve existing contact details including name and company. Merge Jira + HubSpot Data – Combines both parallel fetch results into a single data object. Merge Data & Build Templates – Builds the complete HTML customer email, HubSpot note body, and email subject line using all enriched data. Notifications & CRM updates** Send Gmail to Customer – Sends a polished HTML resolution email to the customer with issue summary, fix details, resolution notes, assignee, days to resolve, and a link to the Jira issue. Add Jira Comment – Posts a resolution summary comment directly on the Jira issue confirming the customer was notified. Create/Update HubSpot Contact – Creates or updates the HubSpot contact record with the customer's details. Log HubSpot Note – Logs a full resolution note on the HubSpot contact linked to their record. Slack Team Notification – Posts a detailed resolution summary to the team Slack channel including issue details, assignee, days open, HubSpot status, and resolution notes. Log to Google Sheets – Appends or updates the resolution record in Google Sheets with issue key, priority, component, fix version, customer details, assignee, days open, sprint, HubSpot status, and email status. Missing email fallback** Log: No Email Found – Flags the issue for manual follow-up and logs a warning when no customer email is available on the Jira ticket. Alert: Manual Follow-Up – Sends a Slack alert to the team requesting manual customer outreach for issues where no email could be found. Why use this? Instantly notifies customers the moment a bug is resolved with a professional HTML email including full resolution details Built-in deduplication prevents customers from receiving the same resolution notification twice Automatically handles missing contact info by routing to a manual follow-up Slack alert so no resolved issue goes uncommunicated Keeps HubSpot fully in sync with resolution notes logged directly on the customer contact record Gives the engineering team a real-time Slack summary and a permanent Google Sheets audit trail of every resolved bug
by AK Pasnoor
AI-Powered Lead Qualification & Enrichment Pipeline 🎯 Who is this for? This template is perfect for: Marketing Teams** looking to automatically qualify inbound leads from campaigns Sales Teams** wanting to prioritize high-value prospects instantly Agencies** offering lead qualification as a service to clients SaaS Companies** routing trial signups to appropriate nurture sequences B2B Service Providers** scoring and enriching leads from multiple sources 💡 What problem does it solve? Manual lead qualification is slow, inconsistent, and expensive. Sales teams waste hours on unqualified leads while hot prospects go cold. This workflow: Eliminates manual research** - Automatically enriches company data via LinkedIn Scores leads instantly** - AI analyzes 15+ data points to score 0-100 Routes intelligently** - Hot leads get instant alerts, warm leads enter nurture Personalizes outreach** - AI generates custom emails based on company context ⚡ What this workflow does 1. Lead Capture & Validation Captures leads via built-in n8n Form (embeddable on any website) Validates email format and detects business vs personal emails Normalizes data from various field naming conventions 2. Company Enrichment via Apify Uses Google Search to find company's LinkedIn profile Scrapes LinkedIn for industry, size, description, specialties, and more Gracefully skips enrichment for personal emails (Gmail, Yahoo, etc.) 3. AI Lead Qualification (GPT-4.1) Scores leads 0-100 based on buying signals Assigns tier: Hot (80+), Warm (60-79), Cold (40-59), Disqualified (<40) Identifies buyer persona (Decision Maker, Influencer, Champion, etc.) Generates personalized talking points and risk factors 4. Intelligent Routing & Actions Hot Leads**: Instant Slack alert + AI-generated personalized email + HubSpot contact Warm Leads**: Slack notification for nurture sequence Cold Leads**: Logged for future reference All Leads**: Recorded to Google Sheets with full qualification data 🔧 Setup Required Credentials | Service | Purpose | |---------|---------| | OpenAI | AI qualification & email generation | | Apify | Google Search + LinkedIn scraping | Optional Credentials | Service | Purpose | |---------|---------| | Slack | Lead alerts and notifications | | HubSpot | CRM contact creation | | Gmail | Sending personalized emails | | Google Sheets | Lead database logging | Apify Setup Create account at apify.com Get API token from Settings → Integrations Open the Apify HTTP nodes and replace YOUR_API_KEY with the API token obtained in the above step Apify Actors Used Google Search Scraper PPR** (Actor ID: G9PR1B1upfS0mRvp0) - ~$0.004/search LinkedIn Company Scraper PPR** (Actor ID: G9y3V8J1hXYJTf1Ho) - ~$0.02/company Total cost: ~$0.02-0.03 per enriched lead 📊 Lead Scoring Criteria | Score | Tier | What it means | |-------|------|---------------| | 80-100 | 🔥 Hot | Strong buying signals, budget confirmed, urgent timeline | | 60-79 | 🌡️ Warm | Good fit, some buying signals, needs nurturing | | 40-59 | ❄️ Cold | Potential fit but unclear intent | | 0-39 | ⛔ Disqualified | Poor fit, spam, or invalid | 🎨 Customization Modify Form Fields Edit the "Lead Capture Form" node to add/remove fields for your use case. Adjust AI Scoring Edit the system prompt in "AI Lead Qualification" to customize: Score thresholds for your industry Buyer persona definitions Custom qualification criteria Add Integrations Easily extend with: Pipedrive, Salesforce, or other CRMs Email sequences (Mailchimp, ActiveCampaign) SMS notifications (Twilio) Calendar booking (Calendly) 📈 Example Output { "qualification": { "score": 85, "tier": "Hot", "buyerPersona": "Decision Maker", "urgencyLevel": "High" }, "insights": { "keyInsights": [ "VP-level with direct budget authority", "Company in growth phase (51-200 employees)", "Industry aligned with our ICP" ], "talkingPoints": [ "Reference their sustainability focus", "Highlight ROI for mid-market companies" ] } } 🙋 Need Help? Check the sticky notes in the workflow for section-by-section guidance Ensure Apify credentials are properly configured Test with a business email (not Gmail/Yahoo) to see full enrichment Created by Agentical AI - AI Automation Agency specializing in workflow automation and AI solutions.
by isaWOW
Description Submit any video URL — podcast, webinar, interview, or YouTube video — along with the title, creator name, niche, target audience, and tone and the workflow transcribes the full recording automatically. WayinVideo's Transcription API returns a speaker-labeled, timestamped transcript which is sent to GPT-4o-mini in one call to produce all three content pieces simultaneously: a 10-tweet Twitter thread, a 200–300 word LinkedIn post, and a 600–800 word SEO blog post with HTML structure, meta description, and focus keyword. Word counts are tracked for all three pieces and everything is saved as one row in Google Sheets with Status set to Draft. Built for content marketers, solo creators, agencies, and social media managers who want to repurpose every video into three platform-specific pieces without writing anything manually. What This Workflow Does Transcribes the full video with speaker labels and timestamps** — WayinVideo's Transcription API returns every word spoken in the video with the speaker name and timestamp so GPT has full context to work from Generates all three content pieces in one GPT call** — The Twitter thread, LinkedIn post, and blog post are all produced together — saving API cost and keeping the voice consistent across platforms Produces a 10-tweet Twitter thread with a hook and CTA** — Tweet 1 is a scroll-stopping hook, tweets 2–9 cover one insight each from the transcript, and tweet 10 is a CTA with the video reference and hashtags Writes a platform-appropriate LinkedIn post** — A 200–300 word thought leadership post with a strong first line, numbered insights, a closing question, and professional hashtags Creates a full SEO blog post with HTML structure** — A 600–800 word post with an SEO title, meta description, focus keyword, and HTML H2 headings ready to paste into any CMS Tracks word counts for all three pieces** — The Twitter thread, LinkedIn post, and blog content each have their own word count column in the sheet so you can verify length at a glance Saves 18 fields to Google Sheets in one row** — All three pieces, their word counts, the focus keyword, meta description, hashtags, video metadata, and generation timestamp are all in one Draft row Setup Requirements Tools Needed n8n instance (self-hosted or cloud) WayinVideo account with API access OpenAI account with GPT-4o-mini API access Google Sheets (one sheet with a tab named Content Engine) Credentials Required WayinVideo API key (pasted into 2. WayinVideo — Submit Transcription and 4. WayinVideo — Get Transcript Results) OpenAI API key Google Sheets OAuth2 > ⚠️ WayinVideo API key appears in 2 steps — replace YOUR_WAYINVIDEO_API_KEY in both 2. WayinVideo — Submit Transcription and 4. WayinVideo — Get Transcript Results. Missing either one will cause the workflow to fail. Estimated Setup Time: 15–20 minutes Step-by-Step Setup Import the workflow — Open n8n → Workflows → Import from JSON → paste the workflow JSON → click Import Get your WayinVideo API key — Log in to your WayinVideo account → go to Account Settings → copy your API key Add your WayinVideo API key to node 2 — Open node 2. WayinVideo — Submit Transcription → find the Authorization header value Bearer YOUR_WAYINVIDEO_API_KEY → replace YOUR_WAYINVIDEO_API_KEY with your actual key Add your WayinVideo API key to node 4 — Open node 4. WayinVideo — Get Transcript Results → find the same Authorization header → replace YOUR_WAYINVIDEO_API_KEY with the same key Connect OpenAI — Open node 9. OpenAI — GPT-4o-mini Model → click the credential dropdown → add your OpenAI API key → test the connection Create your Google Sheet tab — Open your Google Sheet → add a tab named exactly Content Engine → add these 18 column headers in row 1: Video URL, Video Title, Creator Name, Niche, Target Audience, Duration (min), Twitter Thread, Twitter Word Count, LinkedIn Post, LinkedIn Word Count, Blog Title, Blog Meta Description, Focus Keyword, Blog Content, Blog Word Count, Hashtags, Generated On, Status Get your Google Sheet ID — Open your Google Sheet in a browser → copy the string between /d/ and /edit in the URL — this is your Sheet ID Connect Google Sheets — Open node 11. Google Sheets — Save Content Engine → click the document field → replace YOUR_GOOGLE_SHEET_ID by selecting your spreadsheet or entering the Sheet ID manually → click the credential dropdown → add Google Sheets OAuth2 → authorize access Activate the workflow — Toggle the workflow to Active → copy the Form URL from node 1. Form — Video URL + Content Details → open it in a browser to submit your first video How It Works (Step by Step) Step 1 — Form: Video URL + Content Details You open the form URL and fill in six fields: the video URL (YouTube, Zoom, Vimeo, Loom, or any direct link), the video or episode title, the creator or brand name, the content niche (e.g. Digital Marketing, SaaS, Finance), the target audience, and the content tone (e.g. Professional, Casual and friendly, Inspirational). Submitting the form starts the pipeline. Step 2 — HTTP: WayinVideo — Submit Transcription The video URL is sent to WayinVideo's Transcription API — note this is a different API endpoint from Summarization, using /v2/transcripts. WayinVideo accepts the job and returns a task ID. The transcription returns speaker-labeled segments with timestamps and the full spoken text. Step 3 — Wait: 90 Seconds The workflow pauses 90 seconds before the first status check, giving WayinVideo time to transcribe the full video. Step 4 — HTTP: WayinVideo — Get Transcript Results A GET request checks the transcripts results endpoint using the task ID from step 2. It returns the current status and, once complete, the full transcript array where each segment includes the speaker label, start time in milliseconds, end time, and spoken text. Step 5 — IF: Transcription Complete? This is the polling gate. If the status equals SUCCEEDED (YES path), the transcript is ready and the workflow moves forward to formatting. If still processing (NO path), the workflow routes to 6. Wait — 30 Seconds Retry which pauses 30 seconds then loops back to step 4. This repeats until SUCCEEDED. Step 6 — Wait: 30 Seconds Retry When the transcript is not yet ready, the workflow waits 30 seconds then returns to step 4 for another check. Step 7 — Code: Format Transcript Each transcript segment is formatted as [Speaker | MM:SS] Spoken text and all segments are joined into a single readable text block. Total duration is calculated from the last segment's end time. A word count of the transcript and the list of unique speakers are also extracted. All six form inputs are packaged alongside the formatted transcript for the GPT prompt. Step 8 — AI Agent: Generate All 3 Content Pieces GPT-4o-mini receives the full formatted transcript as the main input and the video context (title, creator, niche, audience, tone, duration, URL) in the system prompt. It generates all three pieces in one call using eight labeled output sections. For the Twitter thread: 10 numbered tweets (1/ to 10/), hook first, CTA last, each under 280 characters, no hashtags in the thread body, hashtags added separately as THREAD_HASHTAGS. For LinkedIn: a strong first line, short paragraphs, 3–5 numbered insights, a closing question, and professional hashtags. For the blog: an SEO title at 55–60 characters, a meta description at 150–155 characters, 600–800 words with HTML H2 headings, the focus keyword used naturally in the title, first paragraph, and at least one heading, and a concluding paragraph. Step 9 — OpenAI: GPT-4o-mini Model This is the language model powering the three-platform content generation. Step 10 — Code: Parse All Content Outputs All eight labeled sections are extracted from the AI output using regex: TWITTER_THREAD, THREAD_HASHTAGS, LINKEDIN_POST, BLOG_TITLE, BLOG_META_DESCRIPTION, BLOG_CONTENT, FOCUS_KEYWORD, and HASHTAGS. The Twitter thread and thread hashtags are combined into one field. Word counts are calculated for all three pieces — HTML tags are stripped from the LinkedIn and blog text before counting. If the Twitter thread, LinkedIn post, or blog content are missing, the step throws a clear error. All video metadata from step 7 is also packaged for the sheet row. Step 11 — Google Sheets: Save Content Engine One row is appended to your Content Engine tab with all 18 columns: video URL, video title, creator name, niche, target audience, estimated duration, Twitter thread with hashtags, Twitter word count, LinkedIn post, LinkedIn word count, blog title, blog meta description, focus keyword, blog content, blog word count, universal hashtags, generation timestamp, and Status set to Draft. Key Features ✅ Transcription API with speaker labels — WayinVideo returns each segment with the speaker's name and timestamp — giving GPT much richer context than a plain text dump ✅ Three platforms in one GPT call — All content is generated together in a single request so the voice and insights stay consistent across Twitter, LinkedIn, and the blog ✅ Twitter thread hashtags kept separate from body — The thread body follows Twitter best practice with no inline hashtags — hashtags are appended at the end as a separate section ✅ HTML-ready blog post — The blog content uses HTML H2 tags for headings so you can paste directly into WordPress, Webflow, or any CMS without additional formatting ✅ SEO meta description and focus keyword generated — Every blog post comes with a 150–155 character meta description and a primary keyword — ready to paste into your SEO plugin ✅ Word counts tracked for all three pieces — Twitter thread, LinkedIn post, and blog content each have their own count column so you can verify length before publishing ✅ Duration calculated from transcript — The estimated video duration in minutes is logged in the sheet so you can track which recordings produced the most content Customisation Options Add a retry limit to stop infinite polling — Before node 6. Wait — 30 Seconds Retry, add a Set step that increments a poll counter, then add a second IF check to stop after 15 polls and send a Gmail error notification instead of looping indefinitely. Send all three pieces to Gmail for review — After node 11. Google Sheets — Save Content Engine, add a Gmail step that sends the Twitter thread, LinkedIn post, and blog title in a plain-text email to the creator so they can review everything in their inbox before publishing. Add a Slack notification when content is ready — After node 11. Google Sheets — Save Content Engine, add a Slack step that posts the video title, niche, and a link to the Content Engine sheet to a #content-team channel so your team knows new content is ready to review. Change the blog post length — In the system prompt of node 8. AI Agent — Generate All 3 Content Pieces, change 600-800 words to a different range — for example 800-1000 words for more detailed posts or 400-600 words for shorter content. Change the Twitter thread length — In the system prompt of node 8. AI Agent — Generate All 3 Content Pieces, change Exactly 10 tweets to a different number — for example 8 tweets for shorter videos or 12 tweets for longer recordings with more insights. Troubleshooting Form submission not starting the workflow: Confirm the workflow is Active — inactive workflows do not receive form submissions Copy the Form URL fresh from node 1. Form — Video URL + Content Details after activating — URLs copied before activation will not work Make sure all six fields are filled in — all are marked required WayinVideo returning an error on submission: Confirm YOUR_WAYINVIDEO_API_KEY in node 2. WayinVideo — Submit Transcription is replaced with your actual API key — not the placeholder Confirm the same replacement was made in node 4. WayinVideo — Get Transcript Results — both steps require the key Check the execution log of node 2 for the raw error — note this workflow uses the /v2/transcripts endpoint, not /v2/summaries — confirm the URL is correct Workflow stuck in the polling loop: Check that the video URL is publicly accessible — private YouTube videos, unlisted videos requiring login, or expired Zoom links will not be transcribed Open the execution log of node 4. WayinVideo — Get Transcript Results and inspect the raw response — WayinVideo may have returned FAILED with a specific reason Transcription typically takes longer than summarization for longer recordings — if the video is over 60 minutes, the loop may run many cycles before completing; this is expected GPT not generating all three content pieces: Confirm the API key is connected in node 9. OpenAI — GPT-4o-mini Model and your account has available credits All three pieces must be present for step 10 to succeed — if any section is missing from the GPT output, node 10. Code — Parse All Content Outputs throws an error with a message indicating which piece was not found For very long videos with large transcripts, the combined prompt may approach GPT's input token limit — try using a shorter video or truncating the transcript in step 7 by limiting the number of segments Google Sheets not saving the row: Confirm YOUR_GOOGLE_SHEET_ID in node 11. Google Sheets — Save Content Engine is replaced with your actual Sheet ID from the URL Confirm the tab is named Content Engine exactly and all 18 column headers in row 1 match exactly Check that the Google Sheets OAuth2 credential is connected and not expired — re-authorize if needed Support Need help setting this up or want a custom version built for your team or agency? 📧 Email:info@isawow.com 🌐 Website:https://isawow.com
by Yurie Ino
Contract Template Generator with E-Signature Integration What this workflow does This workflow automates the full contract lifecycle—from request intake to document generation and electronic signature completion. It receives contract requests via webhook, generates customized contract documents using AI, converts them into professionally formatted HTML, and sends them to an e-signature service for execution. The workflow pauses until signatures are completed, then records outcomes and notifies all parties accordingly. This template is designed to reduce legal and operational overhead while ensuring consistent, trackable, and scalable contract management. How it works Contract request intake Triggered by a webhook or external form. Validates required fields such as contract type and signatories. Generates a unique contract ID for tracking. Contract data preparation Normalizes contract metadata (dates, value, currency). Stores party and term information for downstream processing. Template routing Routes requests based on contract type (e.g., NDA, Service Agreement, Employment). Applies predefined base terms for each contract category. Falls back to a generic template if no specific type is matched. AI-powered contract generation An AI agent generates a complete contract in Markdown format. Suggests additional clauses and provides a brief risk assessment. Ensures a consistent contract structure across types. Document processing Converts Markdown into HTML for professional presentation. Prepares signer metadata, signing order, and deadlines. E-signature request Sends the document to an e-signature service (e.g., DocuSign, HelloSign). Emails all signatories with signing instructions. Uses a Wait node to pause execution until a signature webhook is received. Signature result handling Processes webhook callbacks for completed, pending, or expired signatures. Updates contract status accordingly. Completion & notifications Logs signed or expired contracts to Google Sheets. Sends confirmation, reminder, or expiration emails to all parties. Responds to the original webhook with a structured status message. Setup requirements Before activating this workflow, make sure to: Connect the contract request webhook to your intake form or system. Configure contract types and base terms as needed. Set up your e-signature provider webhook callback URL. Prepare Google Sheets for contract logging. Customize email me
by Yurie Ino
Competitor Price Monitoring with AI-Powered Alerts What this workflow does This workflow automatically monitors competitor product prices on a scheduled basis, detects meaningful price changes, and delivers actionable alerts enriched with AI-powered competitive analysis. It compares current and historical price datasets, identifies increases, decreases, new products, and removals, and uses AI to assess market impact and recommend strategic actions. Alerts are intelligently routed to Slack or Email based on urgency, while all results are logged for auditing and trend analysis. This template is ideal for pricing teams, product managers, and competitive intelligence workflows that require timely, data-driven insights without manual monitoring. How it works Scheduled execution Runs on a configurable cron schedule (default: every 6 hours). Initializes a monitoring session with timestamps and tracking IDs. Price data collection Fetches current competitor pricing via HTTP APIs. Retrieves previous price snapshots from Google Sheets. Data normalization & comparison Normalizes current and historical data into a unified schema. Uses the Compare Datasets node to detect: New products Removed products Price increases or decreases Unchanged prices Change evaluation Calculates percentage price changes. Classifies severity: Urgent: ≥ 10% change Routine: 5–10% change No alert: < 5% or unchanged AI-powered analysis An AI agent evaluates competitive impact. Generates concise recommendations (match, hold, differentiate). Justifies urgency based on market implications. Smart alert routing Urgent changes are sent to Slack. Routine updates are sent via Email. All alerts and runs are logged in Google Sheets. Historical storage Updates price history for future comparisons. Maintains a complete monitoring audit trail. Setup requirements Before activating the workflow, configure the following: Replace the competitor price API endpoint with your own data source. Define product identifiers consistently (SKU, product ID, etc.). Configure Google Sheets documents and sheet names for: Price history Alert logs Monitoring logs Adjust alert thresholds or schedules as needed. Required credentials This workflow requires the following credentials to be set up in n8n: HTTP Header Auth** (for competitor price APIs) OpenAI** (for AI-based price analysis) Slack** (urgent alerts) Gmail** (routine email notifications) Google Sheets** (price history and logging) Customization ideas Add additional alert channels (Microsoft Teams, Discord, Webhooks). Extend AI analysis with competitor positioning or elasticity insights. Monitor multiple regions or currencies. Add dashboards using BI tools connected to Google Sheets. Trigger downstream pricing or promotion workflows automatically. Who this is for Pricing & revenue operations teams E-commerce and SaaS product managers Competitive intelligence analysts Growth and strategy teams needing real-time market awareness This template provides an end-to-end, scalable foundation for AI-assisted competitive price monitoring—turning raw price changes into actionable business decisions.
by Mohan Lal Dhanwani
Quick overview This workflow automates customer chat with Chatwoot & n8n AI agent that handles incoming chats, qualifies leads, answers FAQs from Pinecone knowledge base, and escalates to a live human agent when one is online. Works with any Chatwoot inbox: web widget, WhatsApp, Telegram, and more. How it works Receives a POST webhook from Chatwoot when a message is created in a conversation. Extracts message and sender fields into a clean structure, then ignores outgoing messages to prevent the bot from replying to its own messages in an infinite loop. Stops processing if the Chatwoot conversation already has a human assignee (or is escalated to a human during chat) to avoid interrupting live support. Fetches available Chatwoot agents, selects a random online agent (if any), and passes the availability status to the AI assistant. Generates a response using Groq (chat model) with Postgres (Superbase) chat history, optionally retrieving answers from a Pinecone knowledge base using Google Gemini embeddings and chat completions. When escalation is required, assigns the selected Chatwoot agent to the conversation or sends an internal summary email via Gmail. Splits the AI output into short chunks and posts them back to the Chatwoot conversation for human-like short replies Setup Chatwoot Agent Bot: In Chatwoot SuperAdmin Console → Agent Bots, create a new bot, and paste the n8n Webhook URL as Outgoing URL. Assign the bot to your inbox(es) in Bot Configuration settings of those inboxes. Credentials: Add credentials for Groq API, PostgreSQL (Superbase), Pinecone API, Google AI Studio (Gemini embeddings/chat), and Gmail OAuth2. Chatwoot config: Update the Chatwoot base URL and API access token in Chatwoot HTTP requests and the reply-sending code, and set your internal notification email address in the Gmail step. Knowledge base: Create and populate a Pinecone index (and namespace) for your FAQs/knowledge documents, then update the index/namespace values in the Pinecone vector store configuration. Requirements Chatwoot instance (self-hosted or Chatwoot Cloud) with at least one active inbox. Groq API key, or feel free to use any other AI Provider PostgreSQL database for conversation memory (Supabase free tier works well) Pinecone account with an index populated with your FAQ documents Google AI Studio API key for Gemini embeddings Gmail account with OAuth2 configured for internal lead notifications Customization Swap the LLM: Replace the Groq Chat Model node with any LangChain-compatible model — OpenAI, Anthropic Claude, Google Gemini, or a local Ollama model Swap the memory store: Replace Postgres Chat Memory with Redis or n8n's In-Memory store for lighter setups Swap the vector store: Replace Pinecone with Supabase Vector, or if you prefer a different provider Add or edit tools to the agent: Extend with a Google Calendar node for appointment booking, a HubSpot/CRM node for automatic lead creation, or any HTTP Request tool for custom APIs Adjust reply chunking: Change the 300ms delay in the Send Reply node or the split pattern to control message pacing Additional info This template is production-tested and was built to solve a real problem: most Chatbot AI integrations are basic single-node setups that break when including multiple sources like Whatsapp, Live Chat, Telegram etc. for a seamless experience, and have long answers that don't feel human-like. This workflow handles these — through Chatwoot as a medium to connect multiple inboxes and using n8n to power those with Back-end automation, this workflow can help users handle incoming chats across multiple platforms. Plus, it handles human handovers, and only replies when there's no human assigned to the chat.
by Mohamad Sasa
Qualify website leads with OpenAI in HubSpot Who’s it for This workflow is for agencies, consultants, SaaS teams, and service-based businesses that receive inbound leads through a website form and want to qualify them before following up. It helps you automatically score leads, understand fit and urgency, create or reuse HubSpot contacts, create HubSpot deals, and send an internal Gmail notification with the AI analysis. How it works A webhook receives a website form submission with the lead’s name, email, service, budget, and message. The workflow prepares the lead data, sends it to OpenAI, and asks the model to return structured JSON with a lead score, fit level, urgency, service category, summary, reason for the score, recommended next step, and suggested follow-up email. The workflow then checks HubSpot to see if a contact already exists with the submitted email address. If the contact already exists, it reuses that HubSpot contact. If no contact is found, it creates a new HubSpot contact. After that, the workflow creates a HubSpot deal, associates it with the contact, sends an internal Gmail notification with the AI qualification summary, optionally applies a Gmail label to the notification email, and returns a success response to the original webhook request. How to set up 1. Add the required environment variables This workflow uses environment variables so sensitive values are not hardcoded inside the public workflow JSON. Add these variables to your n8n environment: N8N_BLOCK_ENV_ACCESS_IN_NODE=false HUBSPOT_ACCESS_TOKEN=your_hubspot_private_app_access_token GMAIL_CLIENT_ID=your_google_oauth_client_id GMAIL_CLIENT_SECRET=your_google_oauth_client_secret N8N_BLOCK_ENV_ACCESS_IN_NODE=false allows this workflow to access environment variables inside nodes. HUBSPOT_ACCESS_TOKEN is your HubSpot private app access token. The workflow uses it in the HubSpot HTTP Request nodes. GMAIL_CLIENT_ID and GMAIL_CLIENT_SECRET are used when creating the Gmail OAuth2 credential in n8n. If you are running n8n with Docker, add these values to your .env file or Docker Compose environment config, then restart your n8n container. 2. Create a HubSpot private app In HubSpot, create a private app and give it the required CRM permissions for contacts and deals. The workflow needs permission to: search contacts create contacts create deals associate deals with contacts After creating the private app, copy the access token and add it to your n8n environment as: HUBSPOT_ACCESS_TOKEN=your_hubspot_private_app_access_token Do not paste the real token directly into the HTTP Request nodes. 3. Connect your OpenAI credential Open the node named: Message a model Then select your own OpenAI credential in n8n. The workflow uses n8n’s OpenAI credential system, so the actual OpenAI API key is not stored directly inside the workflow JSON. The template uses: gpt-4o-mini You can keep this model or change it to another supported OpenAI model. 4. Create and connect your Gmail OAuth2 credential The Gmail nodes use n8n’s Gmail OAuth2 credential system. To connect Gmail, create a Google OAuth client in Google Cloud Console, then use the client ID and client secret to create a Gmail OAuth2 credential in n8n. Use these environment variables for your Google OAuth values: GMAIL_CLIENT_ID=your_google_oauth_client_id GMAIL_CLIENT_SECRET=your_google_oauth_client_secret Then connect the Gmail OAuth2 credential to these workflow nodes: Send a message Add label to message The workflow uses n8n credentials, so Gmail OAuth tokens are not stored directly inside the workflow JSON. 5. Update the Gmail notification recipient Open the node named: Send a message Replace the recipient email with the email address that should receive the internal lead notification. The email includes the HubSpot deal summary, AI lead score, fit level, urgency, project details, recommended next step, and suggested follow-up email. 6. Update or remove the Gmail label step The workflow includes an optional Gmail label step. Open the node named: Add label to message Select the Gmail label you want to apply to the notification email. The original template is designed around a label named: Deals You can create a Gmail label named Deals, choose a different label, or remove the label step entirely. If you do not want to use Gmail labels, delete the Add label to message node and connect Send a message directly to Respond to Webhook. 7. Update the HubSpot deal stage Open the node named: Prepare HUBSPOT deal payload Find this field in the code: dealstage: "5030000846" Replace the value with a valid deal stage ID from your own HubSpot pipeline. This value is account-specific, so the sample value may not work in your HubSpot account. 8. Create or rename the HubSpot custom properties The workflow creates a HubSpot deal with AI qualification data. It uses these HubSpot deal property names: ai_fit_level ai_followup_email_draft ai_lead_score ai_summary ai_urgency service_interested_in recommended_next_step You have two options: Option 1: Create these custom deal properties in HubSpot. Option 2: Rename the property names inside the workflow to match custom properties you already have in HubSpot. These fields are used in the node named: Create HUBSPOT deal If these properties do not exist in your HubSpot account, the deal creation request may fail or HubSpot may reject the unknown fields. 9. Connect your website form to the webhook The workflow starts with a webhook. Send a POST request to the webhook URL with this body format: { "name": "Jane Doe", "email": "jane@example.com", "service": "AI Automations", "budget": "$10-20K", "message": "We want to automate lead qualification and CRM updates for our sales team." } The workflow expects these field names: name email service budget message If your website form uses different names, update the node named: Edit Fields For example, if your form sends full_name instead of name, update the fullName field mapping in the Edit Fields node. 10. Test the workflow Before activating the workflow, test it with a sample webhook request. Confirm that: OpenAI returns valid JSON HubSpot finds or creates the contact HubSpot creates the deal the deal is associated with the correct contact Gmail sends the internal notification the optional Gmail label works, or the label node is removed the webhook returns a success response Values you must update after import After importing the workflow, review and update these values for your own account: OpenAI credential Gmail credential Gmail notification recipient Gmail label HubSpot deal stage ID HubSpot custom deal properties Website form webhook URL Website form field mappings Some exported n8n workflows include internal IDs, credential references, webhook IDs, label IDs, and instance metadata so the workflow remains structurally valid when imported. These are not the same as API keys or access tokens, but you should still update the account-specific values after import. Environment variables you must add N8N_BLOCK_ENV_ACCESS_IN_NODE=false HUBSPOT_ACCESS_TOKEN=your_hubspot_private_app_access_token GMAIL_CLIENT_ID=your_google_oauth_client_id GMAIL_CLIENT_SECRET=your_google_oauth_client_secret Requirements n8n OpenAI account OpenAI credential connected in n8n HubSpot account HubSpot private app access token HubSpot CRM contacts and deals enabled Gmail account Google OAuth client ID and client secret Gmail OAuth2 credential connected in n8n Website form or app that can send POST requests to the n8n webhook Security notes This workflow is designed so sensitive API values are not hardcoded directly into the public workflow JSON. The HubSpot private app token should be stored as an environment variable: HUBSPOT_ACCESS_TOKEN=your_hubspot_private_app_access_token The Google OAuth client ID and client secret should be stored as environment variables: GMAIL_CLIENT_ID=your_google_oauth_client_id GMAIL_CLIENT_SECRET=your_google_oauth_client_secret The OpenAI API key and Gmail OAuth tokens should be stored inside n8n credentials, not pasted directly into workflow nodes. Before publishing or sharing your own modified version, search the JSON for private values such as: token secret apikey api_key client_secret Authorization Bearer refresh_token access_token password private_key Account-specific references like credential IDs, webhook IDs, label IDs, deal stage IDs, and instance IDs may appear in exported n8n workflows. These are generally not direct secrets, but users importing the workflow should replace the relevant credentials, labels, recipients, and HubSpot stage values with their own. How to customize the workflow You can customize the AI prompt, scoring rules, service categories, budget ranges, fit level definitions, urgency rules, HubSpot pipeline, HubSpot deal stage, HubSpot custom properties, Gmail notification recipient, and Gmail label behavior. You can also extend the workflow by adding Slack alerts, sales team task creation, lead routing rules, or automated follow-up sequences for qualified leads.
by isaWOW
Quick overview This workflow checks the US Department of Labour RSS feed every hour, filters for HR-relevant updates, uses OpenAI GPT-4o-mini to assess whether each item requires action, and logs actionable compliance tasks with summaries and checklists to a Google Sheets tracker. How it works Runs every hour and reads the latest items from the US Department of Labor RSS feed. Filters the feed items for HR-related keywords (for example wage, overtime, FMLA, discrimination, and compliance) while excluding settlement and back-pay style announcements. Processes the remaining articles one at a time to avoid rate limits. Sends each article’s title, date, excerpt, and link to OpenAI (GPT-4o-mini) to return strict JSON with actionability, summary, priority, checklist, owner team, and due timeline. Cleans and parses the AI JSON output, formats the checklist as bullet points, and defaults to non-actionable if parsing fails. Appends actionable items to a Google Sheets “Compliance Tracker” tab and waits 30 seconds before continuing to the next article. Setup Add an OpenAI credential for the GPT-4o-mini model. This workflow polls the US Department of Labor RSS feed every hour, filters articles for HR-relevant keywords, uses GPT-4o-mini to analyze each update for actionability, and saves only items requiring real HR action to a Google Sheets compliance tracker. 1 The workflow polls the US Department of Labor RSS feed automatically every hour to check for new employment law releases and regulatory updates. 2 A filter step checks each article's title and description against an HR keyword list — keeping items about labor, wage, safety, overtime, FMLA, discrimination, and compliance — while dropping settlement verdicts and back-pay award announcements. 3 Each filtered article is processed one at a time through a batch loop to avoid sending too many requests to the OpenAI API at once. 4 GPT-4o-mini analyzes each article and returns a structured JSON object containing: whether the update is actionable for HR, a 2-sentence summary, priority level (High, Medium, or Low), a specific action checklist, the owner team responsible, and a due timeline. 5 A parse step cleans the GPT output, strips any formatting, and converts the checklist array into bullet points ready for the sheet. 6 An actionability check routes each article: if GPT marked it actionable (Yes), it is saved to Google Sheets. If not actionable (No), it skips the sheet and goes directly to the wait step. 7 A 30-second wait runs after every article — whether saved or skipped — before the loop moves to the next article. This prevents rate limit errors and keeps the workflow stable. Requirements Active n8n instance (self-hosted or cloud) OpenAI account with GPT-4o-mini API access Google Sheets with a tab named Compliance Tracker Google Sheets OAuth2 credential connected in n8n No RSS account needed — the DOL feed is publicly accessible Customization Monitor a different agency — in node 1. RSS — US Dept of Labor Feed, replace the feedUrl value with any public compliance RSS feed: OSHA uses https://www.osha.gov/news/newsreleases/national/rss.xml, EEOC uses https://www.eeoc.gov/rss.xml, and NLRB uses https://www.nlrb.gov/news-outreach/rss Add more HR keywords — in node 2. Code — Filter HR Relevant Articles, add terms to the includeKeywords array such as ada, cobra, erisa, or pay transparency to catch additional regulation types Add email alerts for High Priority items — after node 7. Sheets — Save to Compliance Tracker, add a Gmail step with an IF check that sends an immediate email notification when the Priority field equals High Change the polling frequency — in node 1. RSS — US Dept of Labor Feed, change the poll interval from every hour to every 6 hours or daily to reduce API usage for lower-priority monitoring Add a Slack notification — after node 7. Sheets — Save to Compliance Tracker, add a Slack step to post the article title, priority, and due timeline to a compliance channel so the team is notified without checking the sheet Additional info The 30-second wait in node 8. Wait — 30s Before Next Article is intentional rate-limit protection. Both the actionable (YES) and non-actionable (NO) paths from the IF check merge at this wait step before looping back to process the next article. Do not remove or bypass this step — doing so may cause OpenAI API rate limit errors when many articles are processed in one run. The batch loop in node 3. Split — Process One by One processes all filtered articles from the current hourly poll in sequence. If 10 articles pass the keyword filter in one hour, the loop runs 10 times — each taking approximately 30 seconds minimum. Large batches may take several minutes to complete. GPT-4o-mini is instructed to only mark an article as actionable if it requires a real HR policy or process change. Informational updates, research reports, and court verdicts are typically marked as non-actionable and skipped without saving to the sheet.
by Cheng Siong Chin
How It Works Automates daily real estate market opportunity analysis by aggregating MLS listings, public property records, demographic information, and macroeconomic indicators, applying GPT-4 for investment evaluation, assessing investment thresholds, and notifying investors of high-potential properties. Simultaneously collects MLS data, public records, demographic profiles, and economic metrics, consolidates the datasets, applies GPT-4 to perform comprehensive investment analysis including ROI projections and risk assessment, calculates key financial metrics via an investment calculator, validates opportunities against predefined thresholds, and sends alerts to acquisition teams and investors through email and Slack. Designed for real estate investors and property acquisition firms seeking automated, data-driven investment insights. Setup Steps Connect MLS data provider, public records database, and demographic data source APIs. Configure OpenAI GPT-4 API for investment analysis and opportunity scoring. Set up investment calculator integration and ROI calculation parameters. Connect Gmail and Slack for team notifications; define investment thresholds. Prerequisites MLS data access; public records database; demographic data provider; macroeconomic data source Use Cases Real estate investment firms automating deal sourcing across markets; Customization Adjust investment analysis criteria and thresholds Benefits Identifies investment opportunities automatically
by franck fambou
Overview This comprehensive workflow transforms Excel spreadsheets into professional, AI-generated reports with automated analysis and insights. Whether you're dealing with financial data, customer tracking, sales metrics, inventory management, or any structured data in Excel format, this template leverages artificial intelligence to create detailed, actionable reports with visualizations and key findings. How It Works Automated Report Generation Pipeline: File Processing Trigger**: Workflow initiates when Excel files are uploaded through a web form or file system Data Extraction & Validation**: Automatically reads Excel sheets, validates data structure, and identifies key metrics AI-Powered Analysis**: Uses advanced language models to analyze data patterns, trends, and anomalies Report Generation**: Creates comprehensive reports with executive summaries, detailed analysis, and actionable recommendations Multi-Format Output**: Generates reports in various formats (PDF, HTML, Word) with embedded charts and visualizations Automated Distribution**: Sends completed reports via email or saves to designated cloud storage locations Setup Instructions Estimated Setup Time: 10-15 minutes Prerequisites n8n instance (v0.200.0 or higher) OpenAI/Claude API key for AI analysis Email service credentials (for report distribution) Cloud storage access (Google Drive, Dropbox, etc.) - optional Configuration Steps Configure File Input Trigger Set up webhook or file system trigger for Excel file uploads Configure accepted file formats (.xlsx, .xls, .csv) Add file size and validation checks Setup Data Processing Nodes Configure Excel file reader with sheet selection options Set up data validation and cleaning processes Define column mapping and data type recognition Configure AI Analysis Engine Add your AI service API credentials (OpenAI, Anthropic, etc.) Customize analysis prompts based on your data types Set up context-aware report generation parameters Setup Report Generation Configure report templates for different data types Set up chart generation and data visualization options Define output formats and styling preferences Configure Distribution Channels Set up email service for automated report delivery Configure cloud storage integration for report archiving Add notification systems for completion alerts Use Cases Financial Reporting Budget Analysis**: Analyze spending patterns and budget variance reports P&L Statements**: Generate profit and loss summaries with trend analysis Cash Flow Reports**: Create comprehensive cash flow analysis with forecasting Expense Tracking**: Automated expense categorization and spending insights Sales & CRM Analytics Sales Performance**: Generate sales team performance reports with KPIs Customer Analysis**: Create customer segmentation and lifetime value reports Lead Tracking**: Analyze conversion funnels and lead quality metrics Territory Management**: Regional sales analysis and market penetration reports Operations Management Inventory Reports**: Stock level analysis with reorder recommendations Project Tracking**: Progress reports with timeline and resource analysis Quality Metrics**: Performance dashboards with trend identification Resource Planning**: Capacity utilization and allocation reports HR & Administrative Employee Performance**: Generate comprehensive performance review reports Attendance Tracking**: Analyze attendance patterns and productivity metrics Training Records**: Skills gap analysis and training effectiveness reports Compliance Reporting**: Regulatory compliance status and audit reports Key Features Intelligent Data Recognition**: Automatically identifies data types and relationships Contextual Analysis**: AI provides industry-specific insights and recommendations Professional Formatting**: Clean, corporate-ready report layouts Interactive Visualizations**: Embedded charts, graphs, and data visualizations Executive Summaries**: AI-generated executive summaries highlighting key findings Trend Analysis**: Historical data comparison and future projections Anomaly Detection**: Automatically flags unusual patterns or outliers Multi-Language Support**: Generate reports in multiple languages Batch Processing**: Handle multiple files simultaneously Error Handling**: Robust error management with detailed logging Technical Requirements n8n instance with sufficient memory for Excel processing (minimum 2GB RAM recommended) AI service API access (OpenAI GPT-4, Claude, or similar) Email service (Gmail, Outlook, SendGrid, etc.) Optional: Cloud storage service credentials Stable internet connectivity for AI API calls Supported Data Types Financial Data**: Revenue, expenses, budgets, forecasts Sales Data**: Transactions, leads, customer information, pipeline data Operational Data**: Inventory, production metrics, quality scores HR Data**: Employee records, performance metrics, attendance Marketing Data**: Campaign metrics, conversion rates, ROI analysis Custom Data**: Any structured Excel data with clear column headers Output Options PDF Reports**: Professional PDF documents with embedded charts HTML Dashboards**: Interactive web-based reports Word Documents**: Editable Word reports with tables and charts Excel Summaries**: Enhanced Excel files with analysis sheets PowerPoint Presentations**: Executive presentation slides Advanced Features Custom Branding**: Add your company logo and branding to reports Scheduled Processing**: Set up automated report generation schedules Template Customization**: Create custom report templates for different data types Integration Ready**: Easy integration with existing business systems Audit Trail**: Complete logging of all processing steps and data changes Support & Troubleshooting For optimal performance, ensure your Excel files have clear column headers and consistent data formatting. The AI analysis works best with clean, well-structured data. For complex financial calculations, verify results against your existing systems during initial setup.
by Cheng Siong Chin
How It Works Automates financial risk evaluation by intelligently consolidating information from five critical sources: financial, operational, legal, insurance, and regulatory systems. Hourly triggers enable continuous, AI-driven risk assessment using the OpenRouter Chat Model, producing dynamic risk scores while simultaneously identifying emerging compliance gaps and potential exposure areas. High-risk findings automatically initiate corrective actions, trigger secondary investigations, and send real-time alerts through Slack notifications as well as investor email updates. Designed for financial institutions, compliance teams, risk managers, and investment firms, it provides continuous, scalable, and fully data-driven monitoring of risk across complex regulatory and operational environments. Setup Steps Configure hourly/daily schedule trigger. Authenticate all five data APIs. Set OpenRouter credentials. Configure Slack webhook. Set Gmail for email distribution. Define risk thresholds and compliance rules. Prerequisites OpenRouter API key, five data source APIs, Slack access, Gmail account, investor contacts Use Cases Banking risk audits, insurance compliance monitoring, portfolio risk tracking Customization Swap AI models, modify data sources, adjust thresholds Benefits 90% faster risk assessment, eliminates manual aggregation
by Albert Ho
How it works This workflow will trigger upon new mail in your gmail inbox and will automatically apply existing labels OR identify, create, then apply up to 5 new labels. This is currently set up to run using a OpenAI endpoint which I have set up connected to my local llama.cpp server running. After your email is done labeling, the workflow will send you a nice notification in your discord channel! Set up Instructions This workflow requires a Gmail OAuth account credential with the ability to create labels and label messages [OPTIONAL] You can create a Discord Bot Account which connects with a Bot Token which will summarize the email and show you which labels were created and added in the workflow. You might want to tweak the prompts a bit based on how detailed you want your labels. I've found after running it for a bit that the labels that get created mostly encompass everything I want. Workflow Hints The workflow works in 5 phases Phase 1:** Find existing Gmail labels as options for the LLM to choose from. Phase 2:** LLM chooses labels or defines new ones Phase 3:** Create additional Gmail labels if needed Phase 4:** Label the message with newly created and existing labels Phase 5:** Rewrite and send a message notification via Discord. Screenshot 1: Note: colors are my own Screenshot of notification sent via discord Model Tips I set this up to run completely using offline models. I had good success with Llama.cpp server with gpt-oss-20B and with a bit more tweaking could get it to work with a smaller gemma3-4b model mostly likely as well. The whole workflow runs in about 5-10 seconds on my Blackwell Nvidia GPU. Probably would be a few seconds slower on an older piece of hardware.