by Olivier
This workflow contains community nodes that are only compatible with the self-hosted version of n8n. This template generates structured synthetic company content using live web data from the Bedrijfsdata.nl API combined with an LLM. Provide a company domain (directly or via a Bedrijfsdata.nl ID) and the workflow retrieves relevant website and search engine content, then produces ready-to-use descriptions of the company, its offerings, and its target audience. ✨ Features Create high-quality Dutch-language company descriptions on demand Automatically pull live web content via Bedrijfsdata.nl RAG Domain & RAG Search Structured JSON output for consistent downstream use (e.g., CRM updates, lead qualification) Flexible trigger: run from ProspectPro ID, domain input, or another workflow Secure, modular, and extendable structure (error handling included) 🏢 Example Output The workflow produces structured content fields you can directly use in your sales, marketing, or enrichment flows: company_description** – 1-2 paragraph summary of the company products_and_services** – detailed overview of offerings target_audience** – specific characteristics of ideal customers (e.g., industry, location, company size, software usage) Example: { "company_description": "Bedrijfsdata.nl B.V. is een Nederlands bedrijf dat uitgebreide data levert over meer dan 3,7 miljoen bedrijven in Nederland...", "products_and_services": "Het bedrijf biedt API-toegang tot bedrijfsprofielen, sectoranalyses, en SEO-gegevens...", "target_audience": "Nederlandse MKB's die behoefte hebben aan actuele bedrijfsinformatie voor marketing- of salesdoeleinden..." } ⚙ Requirements n8n instance or cloud workspace Install the Bedrijfsdata.nl n8n Verified Community Node OpenAI API credentials (tested with gpt-4.1-mini and gpt-3.5-turbo) Bedrijfsdata.nl developer account (14-day free trial, 500 credits) 🔧 Setup Instructions 1. Trigger configuration Use Bedrijfsdata.nl ID (default) or provide a domain directly Can be called from another workflow using “Execute Workflow” 2. Configure API credentials Bedrijfsdata.nl API key OpenAI API key 3. Customize Output (Optional) Adjust prompt in the LLM node to create other types of synthetic content Extend structured output schema for your use case 4. Integrate with Your Stack Example node included to update HubSpot descriptions Replace or extend to match your CRM, database, or messaging tools 🔐 Security Notes Input validation for required domain Dedicated error branches for invalid input, API errors, LLM errors, and downstream integration errors RAG content checks before running the LLM 🧪 Testing Run workflow with a Bedrijfsdata.nl ID linked to a company with a known website Review generated JSON output Verify content accuracy before production use 📌 About Bedrijfsdata.nl Bedrijfsdata.nl operates the most comprehensive company database in the Netherlands. With real-time data on 3.7M+ businesses and AI-ready APIs, we help Dutch SMEs enrich their CRM, workflows, and marketing automation. Built on 25+ years of experience in data collection and enrichment, our technology brings corporate-grade data quality to every organisation. Website: https://www.bedrijfsdata.nl Developers: https://developers.bedrijfsdata.nl API docs: https://docs.bedrijfsdata.nl 📞 Support Email: klantenservice@bedrijfsdata.nl Phone: +31 20 789 50 50 Support hours: Monday–Friday, 09:00–17:00 CET
by Abdul Matheen
Automated Invoice-Processing AI Agent for n8n Overview The Automated Invoice-Processing AI Agent in n8n is designed to streamline and optimize invoice management for finance teams and accounts payable (AP) professionals. This solution addresses the common challenge of verifying invoice data manually, cross-checking it against purchase orders (POs), and ensuring compliance before releasing payments. By intelligently fetching invoices from Google Drive, extracting key details, validating them against PO records from Google Sheets, and automating the next actions, this system reduces human intervention, minimizes errors, and accelerates the payment process. Target Audience This automation primarily serves finance and AP teams responsible for managing large volumes of vendor invoices. It also supports finance managers, procurement departments, and auditors who require accuracy in payment reconciliation, ensuring that invoices align with approved POs before processing. Business Problem Addressed Organizations frequently struggle with time-consuming manual invoice verification and data entry. Discrepancies between invoices and purchase orders can lead to payment delays, compliance risks, or duplicate payments. This n8n-based AI agent automates that process—ensuring that every invoice is validated, exceptions are flagged to the finance team promptly, and payments of smaller value (under defined thresholds) are processed automatically. Prerequisites Active n8n account or self-hosted instance Google Drive and Google Sheets connected via n8n credentials LLM (AI node) configured for document extraction (optional but recommended) A Google Sheet set up with existing PO data (including PO Number, Amount, and Date fields) Setup Instructions Connect Google Drive and Google Sheets integrations within n8n. Configure the workflow trigger to monitor a designated "Invoices" folder. Add a document-parsing node to extract invoice details such as PO Number, Invoice Date, and Amount. Implement conditional logic: If the invoice amount > 5000, the agent cross-references PO details from the Google Sheet. If it matches, it updates the PO sheet status to “Process Payment.” If not, an automated email notifies the finance team. If the amount ≤ 5000, the workflow marks it for direct payment. Test the workflow with sample invoices before full deployment. Customization Options Adjust the payment threshold value (e.g., 10,000 instead of 5,000). Customize the email notification template and recipient list. Integrate with accounting systems such as QuickBooks or SAP for end-to-end automation. Add audit logging nodes to create traceability for every action taken. This AI-driven automation brings speed, accuracy, and scalability to invoice verification—empowering finance professionals to focus on analytical and strategic tasks rather than repetitive manual work.
by n8n Team
This workflow turns a light red when an update is made to a GitHub repository. By default, updates include pull requests, issues, pushes just to name a few. Prerequisites GitHub credentials. Home Assistant credentials. How it works Triggers off on the On any update in repository node. Uses Home Assistant to turn on a light and then configure the light to turn red.
by Rahul Joshi
📊 Description Streamline sales prioritization by automatically identifying, scoring, and routing high-value leads from GoHighLevel CRM to your sales team. This workflow scores contacts daily, flags top prospects, alerts sales reps in Slack, logs data to Google Sheets, and schedules instant follow-ups in Google Calendar — ensuring no valuable lead slips through the cracks. 🚀📈 What This Template Does Triggers daily at 8:00 AM to fetch all contacts from GoHighLevel CRM. ⏰ Processes lead data and extracts key details from custom fields. 🧩 Calculates lead scores using your predefined CRM field mappings. 🔢 Filters out incomplete or invalid contacts to ensure clean data flow. 🧼 Identifies high-value leads with a score above 80 for immediate attention. 🎯 Sends real-time Slack alerts to sales teams with contact and lead score details. 💬 Logs high-priority leads into a dedicated Google Sheet for tracking and analytics. 📊 Creates automatic Google Calendar follow-up events within 1 hour of detection. 📅 Key Benefits ✅ Automatically surfaces top leads for faster follow-up ✅ Keeps sales teams aligned through instant Slack alerts ✅ Eliminates manual data review and prioritization ✅ Centralizes performance tracking via Google Sheets ✅ Ensures consistent follow-up with Google Calendar scheduling ✅ Fully customizable lead score threshold and timing Features Daily scheduled trigger (8:00 AM) GoHighLevel CRM integration for contact retrieval Smart lead scoring via custom field mapping Conditional filtering for high-value leads Slack alert system for real-time engagement Google Sheets logging for transparency and analytics Auto-created Google Calendar events for follow-ups Requirements GoHighLevel API credentials with contact read permissions Slack Bot token with chat:write access Google Sheets OAuth2 credentials Google Calendar OAuth2 credentials Defined custom fields for Lead Score and Assigned Representative in GoHighLevel Target Audience Sales and business development teams tracking high-value leads Marketing teams optimizing lead qualification and follow-up Agencies using GoHighLevel for CRM and lead management Operations teams centralizing sales activity and analytics Step-by-Step Setup Instructions Connect your GoHighLevel OAuth2 credentials and ensure contact API access. Replace placeholder custom field IDs (Lead Score & Assigned Rep) in the Code node. Add your Slack channel ID for team notifications. Connect your Google Sheets document and replace its Sheet ID in the workflow. Link Google Calendar for automatic follow-up event creation. Adjust the lead score threshold (default: 80) if needed. Run a manual test to verify data flow, then enable the daily trigger for automation.
by Rahi
Workflow: Track Email Campaign Engagement Analytics with Smartlead and Google Sheets Automatically fetch lead-level email engagement analytics (opens, clicks, replies, unsubscribes, bounces) from Smartlead and update them in Google Sheets. Use this to keep a single, always-fresh source of truth for campaign performance and sequence effectiveness. Summary Pull Smartlead campaign analytics on a schedule and write them to a Google Sheet (append or update). Works with pagination, avoids duplicates via a stable key, and is ready for dashboards, pivots, or BI tools. What This Workflow Does Collects campaign stats from Smartlead (per-lead, per-sequence). Handles pagination safely (offset/limit). Writes to Google Sheets using appendOrUpdate with a matching column to prevent duplicates. Can run on a schedule for near real-time analytics. Node Structure Overview | Step | Node | Purpose | |---|---|---| | 1️⃣ | Schedule Trigger | Starts the workflow on a cadence (e.g., hourly) | | 2️⃣ | Code (Pagination Generator) | Emits {offset, limit} pairs (e.g., 0..9900, step 100) | | 3️⃣ | Split in Batches | Sends each pagination pair to the API sequentially | | 4️⃣ | HTTP Request (Smartlead) | GET /campaigns/{campaign_id}/statistics with offset/limit | | 5️⃣ | Split Out | Turns the API data[] array into one item per lead record | | 6️⃣ | Google Sheets (appendOrUpdate) | Upserts rows by stats_id into EngagedLeads tab | | 7️⃣ | Loop Back | Continues until all batches have been processed | Step-by-Step Setup Prerequisites Smartlead account + API key with access to campaign statistics. Google account + Google Sheets OAuth connected in n8n. Create the Google Sheet Spreadsheet name: Email Analytics (can be anything). Tab name: EngagedLeads. Add these exact headers (first row): lead_name, lead_email, lead_category, sequence_number, stats_id, email_subject, sent_time, open_time, click_time, reply_time, open_count, click_count, is_unsubscribed, is_bounced Configure the Schedule Trigger Choose a frequency (e.g., every 2 hours). If you’re testing, set a single run or a short cadence. Configure the Code Node (Pagination) Emit N items like: { "offset": 0, "limit": 100 } { "offset": 100, "limit": 100 } ... 100 is a good default limit. For up to 10,000 records, generate 100 offsets. Configure the Smartlead API Node Method: GET URL: https://server.smartlead.ai/api/v1/campaigns/{campaign_id}/statistics Query parameters: api_key = <YOUR_SMARTLEAD_API_KEY> offset = {{ $json.offset }} limit = {{ $json.limit }} Map response to JSON. Split Out the Response Use a Split Out (or similar) to iterate over data[] so each lead record is one item. Google Sheets Node (Append or Update) Operation: appendOrUpdate. Document: Your Email Analytics sheet. Sheet/Tab: EngagedLeads. Matching Column: stats_id. Map fields from Smartlead response to sheet columns: lead_name ← lead name (or composed from first/last if provided) lead_email ← email lead_category ← category/type if available sequence_number ← sequence step number stats_id ← stable identifier (e.g., Smartlead stats_id or message id) email_subject ← subject sent_time, open_time, click_time, reply_time ← timestamps open_count, click_count ← integers is_unsubscribed, is_bounced ← booleans If the same stats_id arrives again, the row is updated, not appended. Test and Activate Run once manually to verify API and sheet mapping. Check the sheet for new/updated rows. Activate the workflow to run automatically. Smartlead API Reference (Used by This Workflow) Endpoint** GET https://server.smartlead.ai/api/v1/campaigns/{campaign_id}/statistics Required query parameters** api_key (string) offset (number) limit (number) Typical response (trimmed example)** { "data": [ { "lead_name": "Jane Doe", "lead_email": "jane@example.com", "sequence_number": 2, "stats_id": "15b6ff3a-...-b2b9f343c2e1", "email_subject": "Quick intro", "sent_time": "2025-10-08T10:18:55.496Z", "open_time": "2025-10-08T10:20:10.000Z", "click_time": null, "reply_time": null, "open_count": 1, "click_count": 0, "is_unsubscribed": false, "is_bounced": false } ], "total": 1234 } Google Sheets Structure (Recommended) Spreadsheet: Email Analytics Tab: EngagedLeads Columns:lead_name, lead_email, lead_category, sequence_number, stats_id, email_subject, sent_time, open_time, click_time, reply_time, open_count, click_count, is_unsubscribed, is_bounced Matching Column: stats_id (prevents duplicates and allows updates) Customization Tips Multiple Campaigns** Duplicate the workflow and set a different {campaign_id} and/or write results to a separate tab in your Google Sheet. Batch Size** Increase or decrease the limit value (e.g., 200) in your Code node if you want fewer or more API calls. Filtering** Add a Code or IF node to skip rows where is_bounced = true or is_unsubscribed = true. Dashboards** Create a new tab named Dashboard in Google Sheets and visualize your data using built-in charts or connect it to Looker Studio for advanced visualization. Enrichment** Join this dataset with your CRM data (e.g., HubSpot or Salesforce) using lead_email as a key to gain deeper customer insights. Security and Publishing Notes Do not hardcode** your Smartlead API key in the workflow export. Use n8n credentials or environment variables instead. When sharing the template publicly, replace sensitive values with placeholders like: <YOUR_SMARTLEAD_API_KEY> and <YOUR_GOOGLE_SHEET_ID>. Keep your Google Sheet private unless you intentionally want to share it publicly. Troubleshooting No rows in Sheets** Verify that the API response includes data[], confirm that the Split Out node is configured correctly, and check field mappings. Duplicates** Ensure the Google Sheets node has its matching column set to stats_id. Rate Limits** Increase the schedule interval, add a short Wait node between batches, or reduce the limit size. Mapping Errors** Ensure that column names in Sheets exactly match your field mappings — they are case-sensitive. Timezone Differences** Smartlead timestamps are in UTC. Convert them downstream if your local timezone is different. Example Use Case Run this workflow hourly to maintain a live, company-wide Email Engagement Sheet. Sales teams** can monitor replies and active leads. Marketing teams** can track open and click rates by sequence. Operations** can export monthly summaries — no Smartlead login required. Tags Smartlead EmailMarketing Automation GoogleSheets Analytics CRM MarketingOps
by Bao Duy Nguyen
Who is this for? If you hate SPAM emails or don't want to clean them up frequently. What problem is this workflow solving? It automatically deletes SPAM emails for you, so you don't have to. Save a bit of your time. What this workflow does You can specify when to execute the workflow: daily, weekly, or monthly. Setup Select the preferred execution time Configure credentials for Gmail OAuth2 How to customize this workflow to your needs There's no need. It just works!
by Avkash Kakdiya
How it works This workflow captures new subscribers from a Mailchimp list and extracts their key details. It then enriches the subscriber data using AI, predicting professional attributes and assigning a lead score. Based on the score, high-value leads are identified, and all leads are synced into HubSpot and Pipedrive. For top-priority leads, the workflow automatically creates new deals in Pipedrive for sales follow-up. Step-by-step Step-by-step 1. Capture subscriber data Mailchimp Subscriber Trigger** – Detects new signups in a Mailchimp list. Extract Subscriber Data** – Normalizes payload into clean fields like name, email, and timestamp. 2. Enrich with AI Lead Enrichment AI** – Uses AI to infer company, role, industry, intent, LinkedIn, and lead score. Parse & Merge Enrichment** – Merges AI output with subscriber info and sets defaults if parsing fails. 3. Qualify leads High-Value Lead Check** – Filters leads with a score ≥70 to flag them as priority. Create High-Value Deal** – Opens a new deal in Pipedrive for high-value leads. 4. Sync to CRMs HubSpot Contact Sync** – Updates enriched lead data in HubSpot CRM. Pipedrive Person Create** – Adds lead as a person in Pipedrive. Why use this? Automatically enrich raw Mailchimp subscribers with valuable professional insights. Score and qualify leads instantly for prioritization. Keep HubSpot and Pipedrive updated with enriched lead records. Automate deal creation for high-value opportunities, saving sales team effort. Build a seamless pipeline from marketing signups to CRM-ready opportunities.
by Karol
Who’s it for This template is designed for small and medium businesses, startups, and agencies that want to automate customer inquiries, provide instant support, and capture leads without losing valuable conversations. It’s especially useful for teams that get many repetitive questions about products, services, or locations but don’t want to miss out on collecting contact details for follow-up. What it does / How it works The workflow creates a 24/7 AI-powered chatbot that answers company-related questions and collects customer information. It uses: • GPT-4o for natural conversations • Pinecone Vector Store for Retrieval-Augmented Generation (RAG) with your company knowledge base • Google Sheets to store structured lead data • Telegram to instantly notify your team When a customer asks about products, services, or hours, the AI answers using the Pinecone database. Afterwards, it politely asks for their name, email, phone number, and interest. The details are saved to Google Sheets and your team receives a Telegram message with a summary. How to set up Connect your OpenAI account. Create a Pinecone index with company FAQs, documents, or policies. Link your Google Sheet with columns: Name, Email, Phone, Interested in. Add your Telegram bot token and chat/group ID. Replace [INSERT_YOUR_COMPANY_NAME_HERE] in the system prompt with your company name. Requirements • OpenAI API key • Pinecone account • Google Sheets access • Telegram bot & chat ID How to customize • Change the system prompt to match your brand’s tone. • Update the Pinecone namespace and embeddings model if needed. • Add extra fields in Google Sheets (e.g., “Budget” or “Preferred product”). • Extend the flow with CRM integrations or automated email follow-ups. With this setup, you get a smart, RAG-powered chatbot that not only answers questions but also turns every conversation into a potential lead.
by Rahul Joshi
Description Automate B2B order invoicing by fetching orders from Airtable, validating paid B2B entries, creating Stripe customers and invoices, finalizing invoices, and logging structured invoice data into Google Sheets. This workflow ensures seamless B2B billing, centralized record-keeping, and reduces manual errors in financial operations. ⚡💳📊 What This Template Does Triggers hourly to check for new B2B orders. ⏱️ Fetches order data from Airtable (Orders table). 📥 Filters only paid orders with “B2B” tag. ✅ Creates a corresponding Stripe customer from order details. 👤 Processes order line items for invoicing. 📦 Creates a Stripe invoice with due date and payment terms. 🧾 Finalizes the invoice automatically. ✔️ Formats invoice details (totals, due dates, customer info, links). 🔄 Logs structured invoice data into Google Sheets for tracking. 📊 Key Benefits Fully automates B2B invoicing workflow from orders to finalized invoices. 🔄 Ensures all invoices are linked, structured, and logged in Sheets. 🧾 Reduces manual effort and eliminates data entry errors. ⚡ Maintains centralized invoice tracking for finance teams. 📂 Creates a consistent billing flow integrated with Stripe. 💳 Features Hourly Trigger – Continuously monitors Airtable for new/updated orders. Airtable Integration – Fetches order details automatically. Conditional Filter – Processes only “B2B” paid orders. Stripe Customer Creation – Automatically creates customers in Stripe. Line Item Processor – Handles Shopify/Order line items or test data. Stripe Invoice Creation – Generates draft invoices with due dates. Invoice Finalization – Auto-finalizes and prepares invoices for payment. Data Formatter – Structures invoice info (totals, links, dates, status). Google Sheets Integration – Logs all invoice data for reporting. Requirements n8n instance (cloud or self-hosted). Airtable Personal Access Token with read access to Orders table. Stripe API credentials with customer + invoice permissions. Google Sheets OAuth2 credentials with read/write access. Target Audience Finance/ops teams handling B2B customer invoicing. 💼 SaaS or eCommerce businesses with B2B order flows. 🛍️ Startups needing automated billing + centralized reporting. 🚀 Teams tracking Stripe invoices inside Google Sheets. 📊 Step-by-Step Setup Instructions Connect Airtable credentials and replace with your base/table IDs. 🔑 Configure Stripe API credentials for invoice + customer creation. 💳 Link Google Sheets credentials and update the target sheet ID. 📊 Adjust order filtering conditions (tags, payment status) as needed. ⚙️ Test with sample data to validate invoices are created + logged. ✅
by Grace Gbadamosi
This workflow contains community nodes that are only compatible with the self-hosted version of n8n. How it works This workflow automatically synchronizes contact data from multiple CRM systems (HubSpot, Pipedrive, and Salesforce) into a unified Google Sheets database. The system runs on a daily schedule or can be triggered manually via webhook. It uses AI-powered data processing to intelligently deduplicate records, calculate data quality scores, and merge similar contacts. The workflow generates comprehensive quality reports and sends notifications via Slack, ensuring your master database stays clean and up-to-date. Who is this for This template is designed for revenue operations teams, data managers, and business analysts who need to consolidate customer data from multiple CRM platforms. It's particularly valuable for organizations using multiple sales tools simultaneously or during CRM migration projects. The workflow helps maintain data integrity while providing insights into data quality across different systems. Requirements Google Sheets Account**: For storing master database and quality reports CRM Platform Access**: API credentials for HubSpot, Pipedrive, and/or Salesforce OpenAI API Key**: For AI-powered data processing and deduplication MCP Server**: Github:marlonluo2018/pandas-mcp-server (optional - can be replaced with Code node) Slack Webhook**: For receiving sync completion and error notifications How to set up Configure Environment Variables - Set up secure credential storage for all API keys: HUBSPOT_API_KEY, PIPEDRIVE_API_KEY, SALESFORCE_ACCESS_TOKEN, OPENAI_API_KEY, and SLACK_WEBHOOK_URL Create Google Sheets Structure - Create a master Google Sheet with two tabs: "Master_CRM_Data" for the unified contact database and "Quality_Reports" for tracking sync statistics and data quality metrics Set Up MCP Server - Install and configure "marlonluo2018/pandas-mcp-server" Update Configuration Center - Modify all placeholder values in the Configuration Center node with your actual Google Sheet IDs, quality thresholds, deduplication keys, and batch processing settings
by Nikan Noorafkan
🛍️ Google Shopping Feed Optimization with Channable + Relevance AI + Google Merchant API 🚀 Automate, Optimize & Sync Your Product Feeds at Scale 🧩 Overview This workflow automates Google Shopping Feed Optimization using Channable, Relevance AI, and the Google Merchant API. It runs daily, enhancing product titles and descriptions, validating feed quality, assigning custom campaign labels, and syncing the optimized feed with Google Merchant Center. The system ensures every product listing meets Google’s content standards, is SEO-friendly, and ready for high-performance Shopping campaigns. 🧠 Key Benefits ✅ Automated daily product feed optimization ✅ AI-enhanced titles and descriptions (via Relevance AI) ✅ Google Merchant API integration (latest version) ✅ Quality scoring and error detection before sync ✅ Custom campaign labels for segmented bidding ✅ Slack alerts for issues and daily summaries ✅ 100% no-code deployment with scalable batch processing ⚙️ System Architecture | Component | Purpose | | ----------------------------- | -------------------------------------------------------- | | n8n | Workflow automation and orchestration | | Channable | Product feed source (can replace with any eCommerce API) | | Relevance AI | AI title and description optimization | | Google Merchant API (NEW) | Product publishing and validation | | Slack | Alerts and reporting | | Cron Trigger | Daily schedule (6 AM sync) | 🧭 Workflow Logic (Visual Summary) Daily Trigger (06:00 AM) ⬇️ 1️⃣ Get Product Feed (Channable) Fetches product data for optimization. ⬇️ 2️⃣ Data Quality Checks Validates titles, GTINs, pricing, categories, and descriptions. Assigns quality scores. ⬇️ 3️⃣ Split Products Breaks the all_products array into single items for AI processing. ⬇️ 4️⃣ Optimize Title (Relevance AI Tool) Enhances product titles for SEO, clarity, and Google compliance. ⬇️ 5️⃣ Generate Description (Relevance AI Tool) Creates 300–400 character, benefit-focused product descriptions. ⬇️ 6️⃣ Assign Custom Labels Adds five segmentation labels: margin, performance, seasonality, stock level, and category. ⬇️ 7️⃣ Aggregate Products Combines optimized items into one unified dataset. ⬇️ 8️⃣ Upload to Merchant Center (NEW Merchant API) Publishes products via Google’s latest /products endpoint. ⬇️ 9️⃣ Check Product Status Verifies successful uploads and identifies disapprovals. ⬇️ 🔍 Analyze Product Issues Summarizes errors and warnings from Merchant API results. ⬇️ ⚖️ IF Disapprovals Found → 🚨 Send Slack alert for issues → ✅ Otherwise, post success summary 🧩 Environment Variables Set these under n8n → Settings → Variables → Add Variable | Variable | Example | Purpose | | ----------------------------------- | -------------------------------------------------- | -------------------------------- | | CHANNABLE_API_URL | https://api.channable.com/v1 | Channable API base | | CHANNABLE_COMPANY_ID | 12345 | Company ID in Channable | | CHANNABLE_PROJECT_ID | abcd | Project ID | | FEED_ID | shopping-feed | Feed endpoint | | RELEVANCE_AI_API_URL | https://api-f1db6c.stack.tryrelevance.com/latest | Relevance AI API base | | RELEVANCE_TOOL_TITLE_OPTIMIZER_ID | tQy48Ld8n0zp | Relevance AI Title Tool ID | | RELEVANCE_TOOL_DESCRIPTION_ID | hJ9bT01r8Lqf | Relevance AI Description Tool ID | | MERCHANT_API_URL | https://merchantapi.googleapis.com/content/v2.1 | Google Merchant API base | | MERCHANT_ACCOUNT_ID | 123456789 | Merchant Center account ID | | SLACK_CHANNEL | #shopping-feed-automation | Slack channel for reports | 🔑 Credential Setup | Service | Type | Setup | | ------------------- | ---------------- | -------------------------------------------------------------- | | Relevance AI | HTTP Header Auth | Header → Authorization: Bearer {{$env.RELEVANCE_AI_API_KEY}} | | Channable | HTTP Header Auth | Header → Authorization: Bearer {{$env.CHANNABLE_API_TOKEN}} | | Google Merchant | Google OAuth2 | Scopes: • https://www.googleapis.com/auth/content | | Slack | Slack API | Add chat:write Bot Token Scope | 🧱 Node-by-Node Breakdown | Node | Description | Key Action | | ----------------------------- | ---------------------------------------- | ----------------------------------------------------------- | | Daily Trigger (6 AM) | Starts workflow every morning | cron: 0 6 * * * | | Get Product Feed | Fetches products from Channable | GET {{$env.CHANNABLE_API_URL}}/.../feeds/{{$env.FEED_ID}} | | Data Quality Checks | Validates GTINs, titles, pricing, images | Returns quality_score + all_products | | Split Products | Splits array into individual products | Operation: splitOut, Field: all_products | | Optimize Title | Calls Relevance AI title tool | /tools/{{$env.RELEVANCE_TOOL_TITLE_OPTIMIZER_ID}}/trigger | | Generate Description | Calls Relevance AI description tool | /tools/{{$env.RELEVANCE_TOOL_DESCRIPTION_ID}}/trigger | | Assign Custom Labels | Adds 5 Smart Bidding Labels | Margin, performance, seasonality, stock, category | | Aggregate Products | Combines optimized product data | For batch upload | | Upload to Merchant Center | Posts via NEW Merchant API | /accounts/{id}/products | | Check Product Status | Retrieves upload results | Lists disapproved or pending items | | Analyze Product Issues | Summarizes product disapprovals | Returns disapproval_count and warnings | | IF Disapprovals Found | Conditional routing | Sends alert or success message | | Slack - Alert | Sends error summary to Slack | Includes product name and issue detail | | Slack - Success Summary | Posts daily completion message | Includes counts and optimizations applied | 🧰 Testing Procedure 1️⃣ Temporarily disable the cron schedule 2️⃣ Run manually using “Execute Workflow” 3️⃣ Start with 3–5 products 4️⃣ Check: Slack → Success message Google Merchant → Updated products n8n Execution logs → No failed nodes Once validated → Re-enable the 6 AM trigger 🧾 Example Output Slack Success Message ✅ Shopping Feed Optimization Complete 📊 Summary: • Total Products Processed: 135 • Products with Quality Issues: 12 • Disapprovals: 0 • Warnings: 3 🎯 Optimizations Applied: • Titles optimized for SEO • Descriptions enhanced • Custom labels added API: NEW Merchant API (merchantapi.googleapis.com) Next Run: Tomorrow 6 AM Timestamp: 2025-10-22T06:00:00Z Slack Alert Message 🚨 Merchant Center Disapprovals Alert Total Disapprovals: 5 Total Warnings: 2 Critical Issues: • Product: Wireless Headphones (ID: 4829) Issue: Missing GTIN • Product: Yoga Mat Eco (ID: 7350) Issue: Invalid price Action Required: Review disapproved products in Merchant Center. Timestamp: 2025-10-22T06:00:00Z 📊 Success Metrics | Metric | Goal | | ---------------------------- | ------------------- | | Feed approval rate | ≥ 90% | | AI optimization success rate | ≥ 95% | | Manual review reduction | 80% | | Daily automation uptime | 99.9% | | Scalable throughput | 5,000+ products/day | 🧩 Maintenance Schedule | Frequency | Task | | ------------- | ------------------------------ | | Daily | Monitor Slack alerts | | Weekly | Check disapproval logs | | Monthly | Refresh API tokens | | Quarterly | Tune AI prompts and thresholds | 🪜 Next Steps ✅ Deploy workflow in production 📈 Connect to your performance dashboard 🌍 Extend to multi-language feeds (Relevance AI translations) 💡 Add conversion optimization loop in Google Ads 🔗 References n8n Documentation Relevance AI Documentation Google Merchant API Docs Channable Help Center 🎉 Conclusion You now have a production-grade, AI-driven Shopping Feed Optimization workflow built on: Channable** for structured data ingestion Relevance AI** for content intelligence Google Merchant API** for publishing n8n** as the automation engine 💡 Result: A fully autonomous product feed system that self-improves daily, keeping your listings compliant, optimized, and performing at scale.
by Rahul Joshi
Description Never miss a lead again with this SLA Breach Alert automation powered by n8n! This workflow continuously monitors your Google Sheets for un-replied leads and automatically triggers instant Telegram alerts, ensuring your team takes immediate action. By running frequent SLA checks, enriching alerts with direct Google Sheet links, and sending real-time notifications, this automation helps prevent unattended leads, reduce response delays, and boost customer engagement. What This Template Does 📅 Runs every 5 minutes to monitor SLA breaches 📋 Fetches lead data (status, contact, timestamps) from Google Sheets 🕒 Identifies leads marked “Un-replied” beyond the 15-minute SLA 🔗 Enriches alerts with direct Google Sheet row links for quick action 📲 Sends Telegram alerts with lead details for immediate response Step-by-Step Setup Prepare Your Google Sheet Create a sheet with the following columns (minimum required): Lead Name Email Phone Status (values: Replied, Un-replied) Timestamp (time of last update/reply) Set Up Google Sheets in n8n Connect your Google account in n8n. Point the workflow to your sheet (remove any hardcoded document IDs before sharing). Configure SLA Check Use the IF node to filter leads where: Status = Un-replied Time since timestamp > 15 minutes Enrich Alerts with Links Add a Code node to generate direct row links to the sheet. Set Up Telegram Bot Create a Telegram bot via @BotFather. Add the bot to your team chat. Store the botToken securely (remove chatId before sharing templates). Send Alerts Configure the Telegram node in n8n to send lead details + direct Google Sheet link. Customization Guidance Adjust the SLA window (e.g., 30 minutes or 1 hour) by modifying the IF node condition. Add more fields from Google Sheets (e.g., Company, Owner) to enrich the alert. Replace Telegram with Slack or Email if your team prefers a different channel. Extend the workflow to auto-assign leads in your CRM once alerted. Perfect For Sales teams that need to respond to leads within strict SLAs Support teams ensuring no customer request is ignored Businesses aiming to keep lead response times sharp and consistent