by AOE Agent Lab
This n8n template demonstrates how to audit your brand’s visibility across multiple AI systems and automatically log the results to Google Sheets. It sends the same prompt to OpenAI, Perplexity, and (optionally) a ChatGPT web actor, then runs sentiment and brand-hierarchy analysis on the responses. Use cases are many: benchmark how often (and how positively) your brand appears in AI answers, compare responses across models, and build a repeatable “AI visibility” report for marketing and comms teams. 💡 Good to know You’ll bring your own API keys for OpenAI and Perplexity. Usage costs depend on your providers’ pricing. The optional APIfy actor automates the ChatGPT web UI and may violate terms of service. Use strictly at your own risk. ⁉ How it works A Manual Trigger starts the workflow (you can replace it with any trigger). Input prompts are read from a Google Sheet (or you can use the included “manual input” node). The prompt is sent to three tools: -- OpenAI (via API) to check baseline LLM knowledge. -- Perplexity (API) to retrieve an answer with citations. -- Optionally, an APIfy actor that scrapes a ChatGPT response (web interface). Responses are normalized and mapped (including citations where available). An LLM-powered sentiment pass classifies each response into: -- Basic Polarity: Positive, Neutral, or Negative -- Emotion Category: Joy, Sadness, Anger, Fear, Disgust, or Surprise -- Brand Hierarchy: ordered list such as Nike>Adidas>Puma The consolidated record (Prompt, LLM, Response, Brand mentioned flag, Brand Hierarchy, Basic Polarity, Emotion Category, Source 1–3/4) is appended to your “Output many models” Google Sheet. A simplified branch shows how to take a single response and push it to a separate sheet. 🗺️ How to use Connect your Google Sheets OAuth and create two tabs: -- Input: a single “Prompt” column -- Output: columns for Prompt, LLM, Response, Brand mentioned, Brand Hierarchy, Basic Polarity, Emotion Category, Source 1, Source 2, Source 3, Source 4 Add your OpenAI and Perplexity credentials. (Optional) Add an APIfy credential (Query Auth with token) if you want the ChatGPT web actor path. Run the Manual Trigger to process prompts in batches and write results to Sheets. Adjust the included “Limit for testing” node or remove it to process more rows. ⚒️ Requirements OpenAI API access (e.g., GPT-4.1-mini / GPT-5 as configured in the template) Perplexity API access (model: sonar) Google Sheets account with OAuth connected in n8n (Optional) APIfy account/token for the ChatGPT web actor 🎨 Customising this workflow Swap the Manual Trigger for a webhook or schedule to run audits automatically. Extend the sentiment analyzer instructions to include brand-specific rules or compliance checks. Track more sources (e.g., additional models or vertical search tools) by duplicating the request→map→append pattern. Add scoring (e.g., “visibility score” per prompt) and charts by pointing the output sheet into Looker Studio or a BI tool.
by Yang
📄 What this workflow does This workflow automatically turns any uploaded video into structured blog research using AI tools. It transcribes the video, extracts keywords, runs research based on those keywords, and saves the final result to a Google Sheet. It uses Dumpling AI for transcription and research, OpenAI for keyword extraction, and Google Sheets for organizing the output. 👤 Who is this for This workflow is perfect for: Content creators who repurpose video content into blog posts SEO and marketing teams looking to extract topics and keyword insights from video materials Anyone who wants to automate video-to-text and research workflows without doing it manually ✅ Requirements Google Drive** account with a folder to watch for video uploads Dumpling AI** API access for transcription and agent research OpenAI (GPT-4o)** credentials for keyword extraction Google Sheets** document with the following column headers: Keywords topicsFromPerplexity blogPostsFromGoogle ⚙️ How to set up Connect your Google Drive and choose the folder where videos will be uploaded. Set up your Dumpling AI and OpenAI GPT-4o API credentials. Create a Google Sheet with the required columns. Replace the default folder ID and spreadsheet ID in the workflow with your own. Activate the workflow to start watching for new videos. 🔁 How it works (Workflow Steps) Watch Uploaded Videos: Triggers when a new video is added to your selected Google Drive folder. Download Video: Downloads the uploaded video file. Convert Video to Base64: Prepares the video for API submission by converting it to base64. Transcribe with Dumpling AI: Sends the video to Dumpling AI to get a full transcript. Extract Keywords with OpenAI: Analyzes the transcript and extracts five key SEO keywords. Run Competitor Research via Dumpling AI: Uses those keywords to fetch related topics and blog examples from Perplexity and Google. Format Results for Google Sheets: Formats the research results into clean text blocks. Append to Google Sheets: Saves the data into your specified Google Sheet. 🛠️ Customization Ideas Add a translation step after transcription to support multilingual content research. Modify the GPT prompt to extract summaries or titles instead of keywords. Change the Google Sheet structure to log video filenames and timestamps. Add email or Slack notifications to alert you when research is complete.
by Stephan Koning
Who’s it for This template is for small business owners like contractors, consultants, and agency owners who close deals via email. How it works Think of this as a 24/7 personal assistant for your inbox. Every five minutes, the workflow "reads" your new emails. It instantly filters out the junk (like newsletters or internal notifications). The AI then analyzes the email to figure out what the customer wants. Then automatically puts a label on the email in Gmail (like "Action Required" or "Urgent"). Most importantly, it saves a "memory" of that email. How to set up Gmail: Connect your Gmail account using OAuth2 credentials. AI Models: Add your OpenAI API key to the GPT-4o node. JigsawStack: Provide API keys for JigsawStack (the optional fallback classifier) and Mem0.ai in the respective HTTP Header Auth credentials. Domain Filter: In the [Router]: Triage Streams node, update the second rule to match your company's domain (e.g., your-sme-domain.com) to filter out internal emails. Requirements n8n version 1.0+ Gmail OAuth2 Credentials OpenAI API Key Mem0.ai Account JigsawStack API Key (Optional but recommended for fallback) This template as a foundation You can easily extend it with other worklfows like: AI Email Drafting:** Automatically generate draft replies based on the "LABELS" powered by Mem0. Weekly Intelligence Summaries:** Use the Mem0 database to generate a Friday afternoon digest of all deals closed or pending. Risk Assessment:** Flag emails containing specific liability keywords or "Cold Outreach" for immediate archiving.
by Trung Tran
Automated SSL/TLS Certificate Expiry Report for AWS > Automatically generates a weekly report of all AWS ACM certificates, including status, expiry dates, and renewal eligibility. The workflow formats the data into both Markdown (for PDF export to Slack) and HTML (for email summary), helping teams stay on top of certificate compliance and expiration risks. Who’s it for This workflow is designed for DevOps engineers, cloud administrators, and compliance teams who manage AWS infrastructure and need automated weekly visibility into the status of their SSL/TLS certificates in AWS Certificate Manager (ACM). It's ideal for teams that want to reduce the risk of expired certs, track renewal eligibility, and maintain reporting for audit or operational purposes. How it works / What it does This n8n workflow performs the following actions on a weekly schedule: Trigger: Automatically runs once a week using the Weekly schedule trigger. Fetch Certificates: Uses Get many certificates action from AWS Certificate Manager to retrieve all certificate records. Parse Data: Processes and reformats certificate data (dates, booleans, SANs, etc.) into a clean JSON object. Generate Reports: 📄 Markdown Report: Uses the Certificate Summary Markdown Agent (OpenAI) to generate a Markdown report for PDF export. 🌐 HTML Report: Uses the Certificate Summary HTML Agent to generate a styled HTML report for email. Deliver Reports: Converts Markdown to PDF and sends it to Slack as a file. Sends HTML content as a formatted email. How to set up Configure AWS Credentials in n8n to allow access to AWS ACM. Create a new workflow and use the following nodes in sequence: Schedule Trigger: Weekly (e.g., every Monday at 08:00 UTC) AWS ACM → Get many certificates Function Node → Parse ACM Data: Converts and summarizes certificate metadata OpenAI Chat Node (Markdown Agent) with a system/user prompt to generate Markdown Configure Metadata → Define file name and MIME type (.md) Create document file → Converts Markdown to document stream Convert to PDF Slack Node → Upload the PDF to a channel (Optional) Add a second OpenAI Chat Node for generating HTML and sending it via email Connect Output: Markdown report → Slack file upload HTML report → Email node with embedded HTML Requirements 🟩 n8n instance (self-hosted or cloud) 🟦 AWS account with access to ACM 🟨 OpenAI API key (for ChatGPT Agent) 🟥 Slack webhook or OAuth credentials (for file upload) 📧 Email integration (e.g., SMTP or SendGrid) 📝 Permissions to write documents (Google Drive / file node) How to customize the workflow Change report frequency**: Adjust the Weekly schedule trigger to daily or monthly as needed. Filter certificates**: Modify the function node to only include EXPIRED, IN_USE, or INELIGIBLE certs. Add tags or domains to include/exclude. Add visuals**: Enhance the HTML version with colored rows, icons, or company branding. Change delivery channels**: Replace Slack with Microsoft Teams, Discord, or Telegram. Send Markdown as email attachment instead of PDF. Integrate ticketing**: Create a JIRA/GitHub issue for each certificate that is EXPIRED or INELIGIBLE.
by Raymond Camden
How It Works This N8N template demonstrates using Foxit's Extraction API to get information from an incoming document and then using Diffbot's APIs to turn the text into a list of organizations mentioned in the document and create a summary. How it works Listen for a new file added to a Google Drive folder. When executed, the bits are downloaded. Upload the bits to Foxit. Call the Extract API to get the text contents of the document. Poll the API to see if it's done, and when it is, grab the text. Send the text to Diffbot API to get a list of entities mentioned in the doc as well as the summary. Use a code step to filter the entities returned from Diffbot to ones that are organizations, as well as filtering to a high confidence score. Use another code step to make an HTML string from the previous data. Email it using the GMail node. Requirements A Google account for Google Drive and GMail Foxit developer account (https://developer-api.foxit.com) Diffbot developer account (https://app.diffbot.com/get-started) Next Steps This workflow assumes PDF input, but Foxit has APIs to convert Office docs to PDF and that flow could be added before the Extract API is called. Diffbot returns an incredible set of information and more could be used in the email. Instead of emailing, you could sort documents by organizations into new folders.
by Yassin Zehar
Description This workflow is designed for B2B/SaaS teams who want to secure renewals before it’s too late. It runs every day, identifies all accounts whose licenses are up for renewal in J–30, enriches them with CRM, product usage and support data, computes an internal churn risk level, and then triggers the appropriate playbook: HIGH risk** → full escalation (tasks, alerts, emails) MEDIUM risk** → proactive follow-up by Customer Success LOW risk** → light renewal touchpoint / monitoring Everything is logged into a database table so that you can build dashboards, run analysis, or plug additional automations on top. How it works Daily detection (J–30 renewals) A scheduled trigger runs every morning and queries your database (Postgres / Supabase) to fetch all active subscriptions expiring in 30 days. Each row includes the account identifier, name, renewal date and basic commercial data. Data enrichment across tools For each account, the workflow calls several business systems to collect context: HubSpot → engagement history Salesforce → account profile and segment Pipedrive → deal activities and associated products Analytics API → product feature usage and activity trends Zendesk → recent support tickets and potential friction signals All of this is merged into a single, unified item. Churn scoring & routing An internal scoring step evaluates the risk for each account based on multiple signals (engagement, usage, support, timing). The workflow then categorizes each account into one of three risk levels: HIGH – strong churn signals → needs immediate attention MEDIUM – some warning signs → needs proactive follow-up LOW – looks healthy → light renewal reminder A Switch node routes each account to the relevant playbook. Automated playbooks 🔴 HIGH risk Create a Trello card on a dedicated “High-Risk Renewals” board/list Create a Jira ticket for the CS / AM team Send a Slack alert in a designated channel Send a detailed email to the CSM and/or account manager 🟠 MEDIUM risk Create a Trello card in a “Renewals – Follow-up” list Send a contextual email to the CSM to recommend a proactive check-in 🟢 LOW risk Send a soft renewal email / internal note to keep the account on the radar Logging & daily reporting For every processed account, the workflow prepares a structured log record (account, renewal date, risk level, basic context). A Postgres node is used to insert the data into a churn_logs table. At the end of each run, all processed accounts are aggregated and a daily summary email is sent (for example to the Customer Success leadership team), listing the renewals and their risk levels. Requirements Database A table named churn_logs (or equivalent) to store workflow decisions and history. Example fields: account_id, account_name, end_date, riskScore, riskLevel, playbook, trello_link, jira_link, timestamp. External APIs HubSpot (engagement data) Salesforce (account profile) Pipedrive (deals & products) Zendesk (support tickets) Optional: product analytics API for usage metrics Communication & task tools Gmail (emails to CSM / AM / summary recipients) Slack (alert channel for high-risk cases) Trello (task creation for CS follow-up) Jira (escalation tickets for high-risk renewals) Configuration variables Thresholds are configured in the Init config & thresholds node: days_before_renewal churn_threshold_high churn_threshold_medium These parameters let you adapt the detection window and risk sensitivity to your own business rules. Typical use cases Customer Success teams who want a daily churn watchlist without exporting spreadsheets. RevOps teams looking to standardize renewal playbooks across tools. SaaS companies who need to prioritize renewals based on real risk signals rather than gut feeling. Product-led organizations that want to combine usage data + CRM + support into one automated process. Tutorial video Watch the Youtube Tutorial video About me : I’m Yassin a Project & Product Manager Scaling tech products with data-driven project management. 📬 Feel free to connect with me on Linkedin
by Alex
This workflow contains community nodes that are only compatible with the self-hosted version of n8n. This n8n template automatically parses bank transaction emails (HDFC, Indian Bank, Indian Overseas Bank, UPI apps like Google pay, Paytm, etc.) - The from email(bank name/UPI apps) is changable, classifies them using Gemini AI, and logs them into a structured Google Sheets budget tracker. It helps you consolidate expenses, compare against monthly budgets, and get real-time alerts when limits are exceeded. 📝 Problem Statement Tracking expenses manually from different bank emails and UPI apps is frustrating, time-consuming, and error-prone. Small transactions often slip through, making budget control difficult. This workflow solves that by: Automatically extracting financial data from Gmail. Categorizing expenses using AI parsing. Saving all data into Google Sheets in a structured way. Comparing with monthly budgets and raising alerts. Target Audience: Individuals who want personal budget automation. Families managing shared household spending. Small teams looking for a lightweight financial log. ⚙️ Setup Prerequisites An n8n instance (self-hosted or cloud). A Google account with Gmail + Google Sheets enabled. Pre-created Google Sheets file with 2 tabs: Expenses Budgets A configured Gemini API connection in n8n. 📊 Google Sheets Template Expenses Tab (columns in order): Timestamp | Date | Account | From | To | Type | Category | Description | Amount | Currency | Source | MessageId | Status Budget Tab (columns in order): Month | Category | Budget Amount | Notes | UpdatedAt Yearly Summary Tab (auto-calculated): Year | Month | Category | Total Expense | Budget | Variance | Alert Variance = Budget - Total Expense Alert = ⚠️ Over Budget when spending > budget 🚀 How It Works Gmail: Gmail Trigger captures new bank/UPI emails. Gemini AI Parser extracts structured details (date, amount, category, etc.). Filter Node ensures only valid financial transactions are logged. Information extractor will extract the information like Date, account, transaction type(Credit/Debit), description, currency, status, messageId, from email, to email, category -> checks if the transaction is 'Credit' or 'Debit' then appends the details to the respective google sheet Budget Validator checks against monthly allocations. If the expense is above the budget is raises an alert and will send a email to the connected account. For sending email I wrote a Google Sheet App script: var ss = SpreadsheetApp.getActiveSpreadsheet(); var monthly = ss.getSheetByName("MonthlySummary"); var yearly = ss.getSheetByName("YearlySummary"); // Get values from Monthly Summary var totalExpense = monthly.getRange("D2").getValue(); var budget = monthly.getRange("E2").getValue(); // Get current date info var now = new Date(); var month = Utilities.formatDate(now, "GMT+5:30", "MM"); var year = Utilities.formatDate(now, "GMT+5:30", "yyyy"); var status = (totalExpense > budget) ? "Alert" : ""; // Append to Yearly Summary yearly.appendRow([year, month, totalExpense, status]); // If budget exceeded, send alert email if (status === "Alert") { var emailAddress = "YOUR EMAIL"; var subject = "⚠️ Budget Exceeded - " + month + "/" + year; var body = "Your total expenses this month (" + totalExpense + ") have exceeded your budget of " + budget + ".\n\n" + "Please review your spending."; MailApp.sendEmail(emailAddress, subject, body); } // 🔄 Reset Monthly Summary var lastRow = monthly.getLastRow(); if (lastRow > 3) { // assuming headers in first 2-3 rows monthly.getRange("A4:C" + lastRow).clearContent(); } // Reset total in D2 monthly.getRange("D2").setValue(0); } Monthly summary auto-calculates the expense and updates the expense for every month and budgets(sum all budgets if there are more than 1 budgets). Yearly Summary auto-updates and raises over-budget alerts. Telegram: Takes input from a telegram bot which is connected to the n8n workflow telegram trigger. Gemini AI Parser extracts structured details (date, amount, category, etc.). Then it checks, whether the manually specified details is 'budget' or 'expense', then splits the data -> parse the data -> then again check whether it is 'Budget' or 'Expense' then appends the structured data to the respective google sheet. Monthly summary auto-calculates the expense and updates the expense for every month and budgets(sum all budgets if there are more than 1 budgets). Yearly Summary auto-updates and raises over-budget alerts. 🔧 Customization Add support for more banks/UPI apps by extending the parser schema. const senderEmail = $input.first().json.From || ""; // Account detection let account = ""; // you can modify the bank names and UPI names here if (/alerts@hdfcbank\.net/i.test(senderEmail)) account = "HDFC Bank"; // you can modify the bank names and UPI names here else if (/ealerts@iobnet\.co\.in/i.test(senderEmail)) account = "Indian Overseas Bank"; else if (/alerts@indianbank\.in/i.test(senderEmail)) account = "Indian Bank"; else if (/@upi|@okhdfcbank|@okaxis|@okicici/i.test(emailBody)) { if (/gpay|google pay/i.test(emailBody)) account = "Google Pay"; else if (/phonepe/i.test(emailBody)) account = "PhonePe"; else if (/paytm/i.test(emailBody)) account = "Paytm"; else account = "UPI"; } else { account = "Other"; } // If account is "Other", skip output if (account === "Other") { return []; } // Output return [{ account, from: senderEmail, // exact Gmail "From" metadata snippet: emailBody, messageId: $input.first().json.id || "" }]; Create custom categories (e.g., Travel, Groceries, Subscriptions). Send real-time alerts via Telegram/Slack/Email using n8n nodes. Share the Google Sheet with family or team for collaborative use. 📌 Usage The workflow runs automatically on every new Gmail transaction email and financial input on the telegram bot. At the end of each month, totals are calculated in the Yearly Summary tab. Users only need to maintain the Budget tab with updated monthly allocations.
by Avkash Kakdiya
How it works The workflow detects incoming job-application emails, extracts resumes, and parses them for AI analysis. It evaluates each candidate against three open roles and assigns a fit score with structured reasoning. Low-scoring applicants are stored for review, while strong candidates move into an automated scheduling flow. The system checks availability on the next business day, books the slot, sends a confirmation email, and records all details in Airtable. Step-by-step Detect and collect job-application data Gmail Trigger** – Monitors inbox for all new emails. Message a model** – Classifies whether the email is a job application. If** – Continues only when the AI result is YES. Get a message** – Fetches the full message and attachments. Upload file** – Uploads the resume to Google Drive. Extract from File** – Converts the PDF resume into text. Analyze the resume and evaluate fit Available Positions** – Defines the three open roles. Message a model1** – Produces recommended role, fit score, strengths, gaps, skills, and reasoning. If1** – Routes candidates based on fit_score ≥ 8. Create a record1** – Stores lower-scoring applicants in Airtable. Get Next Business Day** – Calculates the schedule window for qualified candidates. Check availability on the next business day AI Agent** – Orchestrates availability search using calendar nodes. Get Events** – Retrieves events for the target day. Check Availability** – Evaluates free 1-hour slots. OpenAI Chat Model** – Reasoning engine for the agent. Structured Output Parser** – Returns clean JSON with start_time and end_time. OpenAI Chat Model1** – Supports structured parsing. Schedule the interview and notify the candidate Create an event** – Books the interview in Google Calendar. Send a message** – Sends an HTML confirmation email to the candidate. Create a record** – Saves shortlisted candidate and interview data in Airtable. Why use this? Removes manual screening by automating email intake and resume parsing. Ensures consistent AI-based role matching and scoring. Books interviews automatically using real calendar availability. Keeps all applicant and scheduling data organized in Airtable. Provides a fully hands-off, end-to-end hiring pipeline.
by Rahul Joshi
📊 Description Automatically analyze your Instagram posts’ engagement and audience sentiment using GPT-4 to uncover top-performing content and improvement opportunities. 💬📈 This workflow fetches your latest Instagram posts using the Facebook Graph API, evaluates likes, comments, and tone, then generates structured performance insights. The results are logged into Google Sheets, shared via Slack alerts, and emailed through Outlook — empowering your social media team with daily, AI-powered engagement intelligence. 🚀 What This Template Does 1️⃣ Trigger – Runs daily at 10 AM to fetch the latest Instagram posts. ⏰ 2️⃣ Data Fetching – Uses the Facebook Graph API to extract post data, captions, likes, and comments. 📲 3️⃣ Formatting – Cleans and structures post and comment data for analysis. 🧩 4️⃣ AI Evaluation – GPT-4 analyzes engagement metrics and comment sentiment to score post performance. 🤖 5️⃣ Decision Routing – Flags high- and low-performing posts for separate processing. ⚙️ 6️⃣ Notifications – Sends positive performance summaries or negative alerts to Slack. 💬 7️⃣ Logging – Records engagement metrics, sentiment labels, and AI recommendations in Google Sheets. 📊 8️⃣ Reporting – Emails detailed performance summaries to the marketing team via Outlook. 💌 Key Benefits ✅ Automates social performance tracking across Instagram posts ✅ Provides AI-driven sentiment and engagement insights ✅ Flags top or underperforming content for immediate action ✅ Delivers Slack and email reports for team visibility ✅ Centralizes analytics in Google Sheets for trend tracking Features Facebook Graph API integration for Instagram post and comment retrieval GPT-4 sentiment and engagement evaluation Structured JSON insights and recommendations Slack alerts for both positive and negative performance Google Sheets data logging with trend metrics Outlook email reporting for management visibility Customizable scheduling and thresholds Requirements Facebook Graph API credentials connected to your Instagram Business account OpenAI API key for GPT-4 or GPT-4o-mini Slack Bot token with chat:write permissions Google Sheets OAuth2 credentials with edit rights Microsoft Outlook OAuth2 credentials for email delivery Optional environment variables for IDs: SHEET_ID, SLACK_CHANNEL_ID, OUTLOOK_EMAIL Target Audience Marketing and social media teams optimizing engagement 📣 Agencies managing multiple Instagram accounts 🧑💼 Analysts tracking performance metrics and audience tone 📊 Brands automating daily performance reports 📅 Step-by-Step Setup Instructions 1️⃣ Connect your Facebook Graph API to your Instagram Business Account. 2️⃣ Add OpenAI API credentials (use GPT-4 model for best results). 3️⃣ Configure Slack for team notifications and specify the channel ID. 4️⃣ Link Google Sheets and set your sheet ID for data logging. 5️⃣ Connect Microsoft Outlook for daily performance email reports. 6️⃣ Adjust the schedule (default: 10 AM daily) to suit your workflow. 7️⃣ Run a test once, verify data mapping, and enable automation. ✅
by WeblineIndia
Zoho CRM → AI‑Generated Competitive Battle Card This workflow automatically analyzes competitor websites, which inseted in description field and generates a clean, structured AI‑powered Battle Card for every new Zoho CRM deal. It reads the competitor URL from the deal Description, scrapes the site, runs an AI analysis pipeline and updates the deal with pricing, differentiators, pros/cons and a concise sales battle summary — all fully automated. Quick Implementation Steps Add Zoho CRM + Gmail OAuth2 + AI API credentials. Import workflow into n8n. create a new deal in zoho CRM. While creating Deal,Add a competitor URL inside the Zoho deal Description. Activate the workflow. Wait 5 minutes → Deal updates with AI‑generated Battle Card. What It Does This workflow removes the manual effort of researching competitors during a sales cycle. Every time a new deal is created, it checks the Description field for a competitor name and website. After validating both, it automatically fetches the competitor webpage and feeds the content into an AI analysis pipeline powered by LangChain. The AI transforms the messy, unstructured webpage HTML into a readable, structured and ready‑to‑use Battle Card — including pricing overview, differentiating features, advantages, disadvantages and a compact sales battle summary. This data is pushed directly into the Deal Description and emailed to the sales team. No web research, no copy‑pasting, no manual formatting — the AI does everything. Who’s It For Sales teams wanting fast competitor intelligence. SDR/BDR teams prepping before first calls. Pre‑sales engineers making pitch notes. Founders/Product teams monitoring competitor positioning. Agencies building automation for CRM users. Requirements n8n instance Zoho CRM OAuth2 credentials Gmail OAuth2 credentials AI model provider API key (Gemini / OpenAI / Claude — interchangeable) Deals containing a competitor name + competitor URL [Must Have] How It Works & Setup Step 1 — Cron Trigger Runs every 5 minutes → pulls newly created deals and last run time. Step 2 — Fetch Deals Retrieves deals sorted by Created_Time. Step 3 — Identify New Deals Filters deals created after the last workflow run. Step 4 — Validate Deal Description Ensures the Description has: Competitor name Competitor website URL Step 5 — Extract Competitor Info Regex identifies and extracts the name + first valid URL in the Description. Step 6 — Scrape Competitor Website HTTP Request downloads the competitor webpage’s HTML. Step 7 — AI‑Generated Battle Card Creation The AI pipeline (LangChain + your chosen LLM) transforms HTML into a structured JSON output containing: Pricing Summary Key Features Pros Cons Battle Summary Competitor Name Step 8 — Update Zoho Deal The script saves the formatted AI Battle Card directly into the Deal Description. Step 9 — Notify Sales Gmail node sends a summary email to the sales team. How to Customize Nodes Change the AI Output Edit LangChain prompt to: Add SWOT Include pricing tiers Include objections Add competitor positioning Add risk scoring Change Where Battle Card Is Stored Modify the Zoho Update node to store data in: Notes Custom fields Attachments Tags Tasks Email Customization Update subject, body, recipients, etc. Filtering Logic Modify filters to: Only process specific deal stages Only process certain pipelines Ignore internal test deals Add‑Ons (Optional Enhancements) Auto‑generate a PDF Battle Card and attach it to the deal. Send Battle Cards to Slack, Teams, or a WhatsApp bot. Store all Battle Cards in Notion, Airtable, or Google Sheets. Add a competitor scoring system (price, features, risk level). Build a weekly digest of all competitors analyzed. Use Case Examples Instant competitor breakdown when a new lead or deal is created. Rapid sales call preparation with AI summarizing the competition. Automated enrichment of CRM records with meaningful intelligence. Internal competitive intelligence dashboards fed by AI outputs. Pitch deck automation where Battle Cards update slides automatically. There are many more possible use cases depending on your CRM setup and AI strategy. Troubleshooting Guide | Issue | Possible Cause | Solution | |-------|----------------|----------| | No Battle Card generated | No URL found in Description | Add valid http/https competitor URL | | Deal skipped | Time filtering excluded it | Adjust lookback window in code | | AI output incomplete | HTML unreadable or blocked | Try different competitor URL | | Zoho update fails | OAuth scope missing | Reconnect Zoho with full CRM access | | Email not sent | Gmail OAuth expired | Reconnect Gmail | | AI output wrong format | Prompt mismatched | Update output schema and prompt | Need Help? If you need help customizing prompts, enhancing automations or building full‑scale AI workflows, then our n8n automation developers at WeblineIndia can support: AI automations LangChain pipelines CRM integrations n8n workflow development Competitive intelligence tooling And so much more.
by Ruth Aju
Who it's for SaaS founders and developers who want to automate their customer onboarding experience from payment to welcome email, without any manual work. How it works A Stripe Trigger listens for successful payment events. The payment amount is converted and used to identify the subscription tier. Customer details are extracted from the Stripe payload. The AI Agent queries Pinecone to retrieve the correct plan details and generates a personalised HTML welcome email with the renewal date calculated automatically. The email is parsed and sent via Gmail. Customer details and subscription info are logged to Google Sheets for renewal tracking. Set up steps Connect your Stripe account and point it to listen for checkout.session.completed events. Store your tier information as chunks in Pinecone. Add your OpenAI credentials for the AI Agent and Embeddings nodes. Connect Gmail as your sending account. Create a Google Sheet with columns: Name, Email, Amount, Tier, Renewal Date, Status. Requirements Stripe account Pinecone account with tier knowledge base uploaded OpenAI account Gmail account Google Sheets
by Trung Tran
Multi-agent RAG system for smarter BRD (Business Requirement Document) writing Who’s it for This workflow is designed for Business Analysts, Project Managers, and Operations Teams who need to automate the creation, tracking, and delivery of Business Requirements Documents (BRDs) from submitted forms and supporting materials. It’s ideal for organizations handling multiple BRD requests and looking to streamline document generation, archiving, and communication. How it works / What it does Trigger: The process begins when a BRD request form is submitted along with any supporting files. Sample supporting document PDF: Download URL Data Recording: Creates a BRD request record and appends it to a tracking Google Sheet. Handles multiple uploaded files, saving them to Google Drive. Creates supporting document records and updates the supporting documents tracking sheet. Content Extraction & Storage: Extracts text from uploaded PDF files. Inserts extracted content into a vector store for contextual retrieval by AI agents. Document Generation: Uses two specialized AI agents: General BRD Writer Agent for the overall document structure. Business Requirement Writer Agent for detailed business requirement sections. Both agents query the stored data and produce content, which is then merged. Metadata & File Creation: Configures metadata for the document. Creates a final document file (Google Docs). Finalization: Converts the document to PDF Sample output Archives the PDF in Google Drive. Sends a BRD response email to the requester with the completed document. Updates the request status in the Google Sheet as completed. How to set up Prepare Google Sheets: Create a BRD tracking sheet. Create a supporting document tracking sheet. Configure Google Drive: Set up folders for supporting documents and archived PDFs. Ensure the workflow has API access to upload and retrieve files. Form Integration: Connect your BRD request form to trigger the workflow. Vector Store: Configure a vector database or embedding store for extracted document text. AI Agents: Configure the General BRD Writer Agent and Business Requirement Writer Agent with your preferred OpenAI model. Link both agents to the Query Data Tool for retrieving embedded content. Email Setup: Configure email sending credentials to deliver final BRDs to requesters. Requirements Google Sheets API credentials. Google Drive API credentials. An OpenAI API key with access to the desired models. A form submission trigger (e.g., Google Forms, Typeform). Vector store or embedding database for contextual AI queries. Permissions for file uploads, downloads, and updates in Google Drive. How to customize the workflow Custom Templates**: Modify the AI agents’ system prompts to match your organization’s BRD format and tone. Metadata Fields**: Add custom fields (e.g., department, priority level) during metadata configuration. File Storage Paths**: Adjust Google Drive folder structure for project-specific storage. Approval Steps**: Insert an approval workflow between draft document creation and final archiving. Notification Channels**: Add Slack, Microsoft Teams, or other notification integrations in addition to email. AI Model Selection**: Swap the OpenAI model for another LLM or fine-tuned variant to improve BRD quality for your domain.