# templates

name: Automated Sprint Reports from Jira to Stakeholders via Gmail
author_name: Yassin Zehar
author_username: yassinzehar
categories: []
created_at: 2025-09-25T18:03:07.898Z
updated_at: 2025-09-25T18:03:07.898Z
url: https://n8n.io/workflows/8932
scraped_at: 2026-05-02 08:04:50
metadata_generated_at: 2026-05-02 08:36:20
description:
  Description

  Automated workflow that generates a Sprint Report from Jira and delivers it by Gmail.

  The flow fetches sprint issues from Jira, validates and normalizes the data, calculates metrics (tickets, story points, blockers, completion rate), generates an HTML report, and sends it by email.

  Context

  This template helps teams keep stakeholders updated automatically of the current sprint.
  Instead of manually compiling Jira data, the report is generated and sent on schedule (e.g., every Friday at 17:00).

  It’s production-friendly, reusable, and works across Jira projects.

  Target Users

  Scrum Masters and Agile Coaches who need sprint reports for retrospectives.

  Product Owners who want a weekly overview of sprint progress.

  Project Managers tracking Jira delivery KPIs.

  Engineering teams wanting automated status reporting without extra overhead.

  Technical Requirements

  Jira Cloud project + API email + API token + permission to read issues.

  Gmail credential for notifications.

  Workflow Steps



  Trigger – Schedule (e.g., Friday at 17:00).

  Edit Fields – Configure Jira base URL, project key, email recipients.

  Get Many Issues – Fetch sprint issues with JQL (project = &lt;KEY&gt; AND sprint in openSprints()).

  Validation & Normalization – Clean/validate fields (status, assignee, priority, story points, sprint info).

  Metrics Calculation – Aggregate KPIs (done, in progress, blockers, story points, completion %).

  HTML Report Generation – Build a styled email-friendly HTML summary + detailed table.

  Send Gmail – Deliver report to stakeholders.

  Key Features

  Automated Sprint Reports: No manual copy-paste.

  Metrics overview: Tickets done vs total, blockers, story points.

  Detailed table: Issue key, summary, status, assignee, priority, SP.

  Email delivery: HTML report with Jira links sent to stakeholders.

  Fully customizable: Adjust fields, KPIs, and recipients easily.

  Expected Output

  📊 HTML Sprint Report with KPIs and issue table.
  ✅ Email delivered to stakeholders via Gmail.
  🔗 Jira links embedded for easy navigation.

  How it works

  ⏰ Trigger – Runs on schedule (e.g., every Friday at 17:00).
  🧾 Fetch Issues – JQL filters sprint tickets.
  📊 Metrics – Done vs total, SP progress, blockers.
  💻 Generate HTML – Clean, styled table and summary.
  ✉️ Notify – Send Gmail with full sprint report to stakeholders.

  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

nodes_used:
  ["n8n-nodes-base.gmail","n8n-nodes-base.jira","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.set","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.code"]

workflow_json_compressed:
  [encoded data, 5020 characters]

metadata_json:
  {"categories":["Data Processing"],"complexity":"complex","use_cases":["generate sprint summaries","calculate sprint metrics"," automate stakeholder updates","send formatted reports"],"estimated_setup_minutes":30,"required_services":["Jira API","Gmail API"],"key_features":["data validation","metric calculation","HTML report generation","scheduled automation"],"target_audience":["project managers","team leads","agile coaches"]}


name: Generate Comprehensive Website Audit Report with GPT-4o-mini & Claude Sonnet 4.5
author_name: Sensonar.com
author_username: sebastian
categories: []
created_at: 2025-09-25T21:33:32.382Z
updated_at: 2025-09-25T21:33:32.382Z
url: https://n8n.io/workflows/8934
scraped_at: 2026-05-02 08:04:50
metadata_generated_at: 2026-05-02 08:36:21
description:
  🌐 Webpage Audit AI Agent – Automate Your Website Review

  This workflow contains a virtual digital consultant team to professionally analyze Landing Page, generate Audit Report and sent it via Gmail.

  At the center is the Editor-in-Chief AI Agent, who acts as the lead strategist.  
  When you submit a website URL, it is scraped and then sent to to a team of specialist AI Agents (each powered by GPT-4o-mini for speed) then after finishing their sub-porcess deliver outcome to the final Editor (Claude Sonnet for premium quality) which is responsible for generating professional analysis.

  The result: a consulting-style email audit report that combines technical accuracy with business clarity — delivered straight to your inbox.

  🟢 Section 1 – Entry & Leadership

  Nodes:

  🌍 Webhook node → Entry point where the website URL, email and language is entered. 
  📝 Editor-in-Chief Agent → Acts like the consulting team leader. Interprets the request and merges results.  
  💡 Think Tool → Helps structure the analysis, ensuring that findings are presented in a business-friendly way.  
  🧠 CRO/SEO/Tech/Semantic AI Agents → Ensures both efficiency (GPT-4o-mini for scanning large content quickly) and focus on specific task.  

  ✅ Beginner view: Think of this as submitting your website to a digital auditors. They decide what needs to be reviewed from each perspective, delegate to the right experts, and then together - as an AI Agents team - craft the final report.

  📊 Section 2 – Specialist Audit AI Agents

  Each specialist focuses on one critical layer of your website:

  🔧 Technical SEO Agent → Analyzes code structure, page speed, mobile responsiveness, metadata, and accessibility.  
  📝 Content SEO Agent → Reviews keyword strategy, text quality, readability, and semantic richness.  
  🎯 CRO & UX Agent → Checks calls-to-action, user flows, conversion points, and usability.  
  🤖 Semantic Agent → Checks if AI Agents aligns with semantic flows, marketing problems and risks.  
  📈 Analytics Agent → Validates tracking, funnels, and key performance indicators (optional).  

  ✅ Beginner view: This is like hiring a team of experts — SEO, content, UX, and analytics — all working in parallel on your website.

  📋 Section 3 – Flow of Execution

  You submit your website URL.  
  Then it is distributed to the team of AI Agents.  
  Each Agent runs its analysis in parallel.  
  Findings are sent to the Editor-in-Chief.
  The Editor compiles everything into a consulting-style newsletter report.  
  The final report is emailed to you automatically.  

  ✅ Beginner view: It’s like sending your site to a consulting firm, and within minutes you get a polished audit back in your inbox.

  📊 Summary Table

  | Section               | Key Roles                       | Models                     | Purpose                      | Beginner Benefit                          |
  |-----------------------|---------------------------------|----------------------------|------------------------------|-------------------------------------------|
  | 🟢 Entry & Leadership | Editor-in-Chief, Think Tool     | Anthropic Claude Sonnet 4| Organize and refine analysis | Works like a consulting team leader        |
  | 📊 Specialists        | SEO, Content, CRO, Semantic, Analytics    | GPT-4o-mini                | Detailed audits of each area | Each Agent = a specialized consultant      |
  | 📋 Execution Flow     | All connected                   | n8n workflow               | Collaboration and reporting  | Output = clear, professional audit email   |

  🌟 Why This Workflow Rocks

  Full digital consulting team in one workflow**  
  Parallel execution → speed without losing depth**  
  Strategic + tactical insights → both “what” and “how”**  
  Cost-optimized** ($0.40–$0.80 per run) → cheaper than a single human consultant review  
  Action-oriented output** → not just issues, but recommendations and next steps  
  Scalable** → easily extend with more audit dimensions (security, branding, accessibility, etc.)  

  👉 Example Use Case

  “Analyze my e-commerce site for SEO, CRO, technical and semantic issues.”

  Technical SEO Agent → Reports missing alt text, metadata, and slow mobile speed.  
  Content SEO Agent → Flags weak product descriptions, suggests keyword improvements.  
  CRO Agent → Finds unclear CTAs and checkout friction points. 
  Semantic Agent → Finds everything to improve searching by AI Agents.
  Editor-in-Chief Agent → Combines everything into a consulting-style email with prioritized fixes and estimated business impact.  

  ✅ Delivered directly to your inbox in under 5 minutes.

nodes_used:
  ["n8n-nodes-base.httpRequest","n8n-nodes-base.markdown","n8n-nodes-base.gmail","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatAnthropic","n8n-nodes-base.stickyNote","n8n-nodes-base.respondToWebhook","n8n-nodes-base.webhook","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.set","n8n-nodes-base.merge","n8n-nodes-base.aggregate"]

workflow_json_compressed:
  [encoded data, 8952 characters]

metadata_json:
  {"categories":["AI/ML","Data Processing"],"complexity":"medium","use_cases":["automate website audits","generate performance reports","analyze landing pages"],"estimated_setup_minutes":15,"required_services":["Google Gmail","Anthropic (Claude)"],"key_features":["multi-agent AI analysis","automated URL scraping","role-based task assignment","professional report generation"],"target_audience":["marketers","webmasters","SEO specialists"]}


name: Automate data extraction from faxes & PDFs using Google Gemini and Google Sheets
author_name: Intuz
author_username: intuz
categories: []
created_at: 2025-09-26T06:27:00.470Z
updated_at: 2025-09-26T06:27:00.470Z
url: https://n8n.io/workflows/8939
scraped_at: 2026-05-02 08:04:51
metadata_generated_at: 2026-05-02 08:36:20
description:
  This n8n template from Intuz provides a complete solution to automate the extraction of critical information from PDF documents like faxes, or any PDFs. 

  It uses the power of Google Gemini's multimodal capabilities to read the document, identify key fields, and organize the data into a structured format, saving it directly to a Google Sheet.

  Who's this workflow for?
  Healthcare Administrators
  Medical Billing Teams
  Legal Assistants
  Data Entry Professionals
  Office Managers

  How it works
  1. Upload via Web Form: The process starts when a user uploads a fax (as a PDF file) through a simple, secure web form generated by n8n.

  2. AI Document Analysis: The PDF is sent directly to Google Gemini's advanced multimodal model, which reads the entire document—including text, tables, and form fields. It extracts all relevant information based on a detailed prompt.

  3. AI Data Structuring: The raw extracted text is then passed to a second AI step. This step cleans the information and strictly structures it into a predictable JSON format (e.g., Patient ID, Name, DOB, etc.).

  4. Save to Google Sheets: The final, structured data is automatically appended as a new, clean row in your designated Google Sheet, creating an organized and usable dataset from the unstructured fax.

  Key Requirements to Use This Template
  1. n8n Instance & Required Nodes:
  An active n8n account (Cloud or self-hosted).
  This workflow uses the official n8n LangChain integration (@n8n/n8n-nodes-langchain). If you are using a self-hosted version of n8n, please ensure this package is installed.

  2. Google Accounts:
  Google Drive Account: For temporarily storing the uploaded file.
  Google Gemini AI Account: A Google Cloud account with the Vertex AI API (for Gemini models) enabled and an associated API Key.
  Google Sheets Account: A pre-made Google Sheet with columns that match the data you want to extract.

  Customer Setup Guide:

  Here is a detailed, step-by-step guide to help you configure and run this workflow.

  1. Before You Begin: Prerequisites
  Please ensure you have the following ready:
  The FAX-Content-Extraction.json file we provided.
  Active accounts for n8n, Google Drive, Google Cloud (for Gemini AI), and Google Sheets.
  A Google Sheet created with header columns that match the data you want to extract (e.g., Patient ID, Patient Name, Date of Birth, etc.).

  2. Step-by-Step Configuration
  Step 1: Import the Workflow
  Open your n8n canvas.
  Click "Import from File" and select the FAX-Content-Extraction.json file.
  The workflow will appear on your canvas.

  Step 2: Set Up the Form Trigger
  The workflow starts with the "On form submission" node.
  Click on this node.
  In the settings panel, you will see a "Form URL". Copy this URL. This is the link to the web form where you will upload your fax files.

  Step 3: Configure the Google Drive Node
  Click on the "Upload file" (Google Drive) node.
  Credentials: Select your Google Drive account from the "Credentials" dropdown or click "Create New" to connect your account.
  Folder ID: In the "Folder ID" field, choose the specific Google Drive folder where you want the uploaded faxes to be saved.

  Step 4: Configure the Google Gemini AI Nodes (Very Important)
  This workflow uses AI in two places, and both need to be connected.
  First AI Call (PDF Reading):
  Click on the "Call Gemini 2.0 Flash with PDF Capabilities" (HTTP Request) node.
  Under "Authentication", make sure "Predefined Credential Type" is selected.
  For "Credential Type", choose "Google Palm API".
  In the "Credentials" dropdown, select your Google Gemini API key or click "Create New" to add it.

  Second AI Call (Data Structuring):
  Click on the "Google Gemini Chat Model" node (it's connected below the "Basic LLM Chain" node).
  In the "Credentials" dropdown, select the same Google Gemini API key you used before.

  Step 5: (Optional) Customize What Data is Extracted
  You have full control over what information the AI looks for.

  To change the extraction rules: Click on the "Define Prompt" node. You can edit the text in the "Value" field to tell the AI what to look for (e.g., "Extract only the patient's name and medication list").
  To change the final output columns: Click on the "Basic LLM Chain" node. In the "Text" field, you can edit the JSON schema to add, remove, or rename the fields you want in your final output. The keys here MUST match the column headers in your Google Sheet.

  Step 6: Configure the Final Google Sheets Node

  Click on the "Append row in sheet" node.
  Credentials: Select your Google Sheets account from the "Credentials" dropdown.
  Document ID: Select your target spreadsheet from the "Document" dropdown list.
  Sheet Name: Select the specific sheet within that document.
  Columns: Ensure that the fields listed here match the columns in your sheet and the schema from the "Basic LLM Chain" node.

  4. Running the Workflow
  Save and Activate: Click "Save" and then toggle the workflow to "Active".
  Open the Form: Open the Form URL you copied in Step 2 in a new browser tab.
  Upload a File: Upload a sample fax PDF and submit the form.
  Check Your Sheet: After a minute, a new row with the extracted data should appear in your Google Sheet.

  Connect with us

  Website: https://www.intuz.com/n8n-workflow-automation-templates
  Email: getstarted@intuz.com
  LinkedIn: https://www.linkedin.com/company/intuz
  Get Started: https://n8n.partnerlinks.io/intuz

  For Custom Worflow Automation
  Click here- Get Started

nodes_used:
  ["n8n-nodes-base.extractFromFile","n8n-nodes-base.googleDrive","n8n-nodes-base.httpRequest","n8n-nodes-base.set","n8n-nodes-base.googleDrive","n8n-nodes-base.googleSheets","@n8n/n8n-nodes-langchain.chainLlm","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.formTrigger","n8n-nodes-base.code","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 6304 characters]

metadata_json:
  {"categories":["Data Processing","AI/ML"],"complexity":"medium","use_cases":["extract data from faxes","process PDF documents","automate document digitization","populate Google Sheets"],"estimated_setup_minutes":30,"required_services":["Google Gemini (AI/ML)","Google Drive","Google Sheets"],"key_features":["multimodal document reading","structured data extraction","automatic field identification","direct sheet population"],"target_audience":["medical billing teams","healthcare administrators","legal assistants"]}


name: Generate SEO meta tags and content briefs from SERP analysis with Claude AI
author_name: Allan Vaccarizi
author_username: growthai
categories: []
created_at: 2025-09-26T10:03:51.094Z
updated_at: 2025-09-26T10:03:51.094Z
url: https://n8n.io/workflows/8946
scraped_at: 2026-05-02 08:04:51
metadata_generated_at: 2026-05-02 08:36:20
description:
  Who it's for
  This workflow is for SEO managers, content strategists, and digital agencies who need to produce optimised meta tags, H1s, and full content briefs at scale — one per keyword — without doing manual competitor research.

  How it works
  The workflow is triggered manually and reads client information and SEO keyword data from two Google Sheets tabs.
  Items are filtered to keep only keywords that have not yet been processed (no existing H1).
  A batch loop iterates over each keyword and calls the Apify SERP actor via HTTP POST to retrieve competitor URLs.
  Organic results are split out, limited to the top 10, and each URL is scraped with Firecrawl to retrieve full page content.
  A JavaScript node consolidates the scraped data into structured competitor blocks (meta title, meta description, headings).
  A first Claude AI agent analyses the competitor data to generate optimised meta title, meta description, and H1 (structured JSON output).
  A second Claude AI agent uses the same context plus the generated H1 to produce a full SEO content brief.
  Both outputs are written back to the correct row in Google Sheets, and the loop advances to the next keyword.

  How to set up
  [ ] Duplicate the template spreadsheet: Google Sheets Template and save it to your Google Drive
  [ ] Connect a Google Sheets OAuth2 credential and point the two read nodes to your spreadsheet (tabs: Client information and SEO)
  [ ] Add your Apify API key and verify the actor ID in the HTTP Request node
  [ ] Add your Firecrawl API key to the scrape node
  [ ] Add your Anthropic API key to the Claude Sonnet model node (shared by both AI agents)
  [ ] Configure the Update SEO Row in Sheets node to map columns correctly in your sheet
  [ ] Review the Filter Valid SEO Items node conditions if your sheet uses different column names

  Requirements
  Google Sheets account (OAuth2)
  Apify account with access to a SERP-scraping actor
  Firecrawl account
  Anthropic (Claude) API key

  How to customize
  Adjust the Take Top 10 Results node to scrape more or fewer competitor URLs per keyword.
  Modify the JSON schema in the Parse Structured JSON Output node to add fields such as OG title or additional meta variants.
  Swap the Claude model or rewrite the system prompts in either AI agent to match a different language, tone of voice, or content framework.

nodes_used:
  ["n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.filter","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","n8n-nodes-base.splitInBatches","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.manualTrigger","@mendable/n8n-nodes-firecrawl.firecrawl","n8n-nodes-base.splitOut","n8n-nodes-base.limit","n8n-nodes-base.code","n8n-nodes-base.httpRequest","@n8n/n8n-nodes-langchain.lmChatAnthropic","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.googleSheets","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  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

metadata_json:
  {"categories":["Marketing","AI/ML","Data Processing"],"complexity":"medium","use_cases":["Generate SEO meta tags","Create content briefs","Analyze SERP data","Automate keyword research","Batch content generation"],"estimated_setup_minutes":15,"required_services":["Google Sheets","Firecrawl","Anthropic/Claude"],"key_features":["SERP analysis","Keyword filtering","Batch processing","AI-powered content generation","SEO optimization"],"target_audience":["SEO managers","Content strategists","Digital marketers"]}


name: AI Call Summary to HubSpot + Follow-Up Task
author_name: Miha
author_username: miha
categories: []
created_at: 2025-09-26T15:43:32.501Z
updated_at: 2025-09-26T15:43:32.501Z
url: https://n8n.io/workflows/8966
scraped_at: 2026-05-02 08:04:49
metadata_generated_at: 2026-05-02 08:36:21
description:
  This n8n template turns raw call transcripts into clean HubSpot call logs and a single, actionable follow-up task—automatically. Paste a transcript and the contact’s email; the workflow finds the contact, summarizes the conversation in 120–160 words, proposes the next best action, and (optionally) updates missing contact fields.

  Perfect for reps and founders who want accurate CRM hygiene without the manual busywork.

  How it works

  A form trigger collects two inputs:

    Contact email
    Plain-text call transcript
  The workflow looks up the HubSpot contact by email to pull known properties.
  An AI agent reads the transcript (plus known fields) to:

    Extract participants, role, problem/opportunity, requirements, blockers, timeline, and metrics.
    Write a 120–160 word recap a teammate can skim.
    Generate one concrete follow-up task (title + body).
    Suggest updates for missing contact properties (city, country, job title, job function).
  The recap is logged to HubSpot as a completed Call engagement.
  The follow-up is created in HubSpot as a Task with subject and body.
  (Optional) The contact record is updated using AI-suggested values if the transcript clearly mentions them.

  How to use

  Connect HubSpot (OAuth2) on all HubSpot nodes.
  Connect OpenAI on the AI nodes.
  Open Form: Capture Transcript, submit the email + transcript.
  (Optional) In AI: Summarize Call & Draft Task, tweak prompt rules (word count, date normalization).
  (Optional) In Update Contact from Transcript, review the mapped fields before enabling in production.
  Activate the workflow and paste transcripts after each call.

  Requirements

  HubSpot** (OAuth2) for contact search, call logging, and tasks
  OpenAI** for summarization and task drafting

  Notes & customization ideas

  Swap the form for a Google Drive or S3 watcher to ingest saved transcripts.
  Add a speech-to-text step if you store audio recordings.
  Extend Update Contact to include additional fields (timezone, department, seniority).
  Post the summary to Slack or email the AE for quick handoffs.
  Gate updates with a confidence check, or route low-confidence changes for manual approval.

nodes_used:
  ["n8n-nodes-base.hubspot","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.formTrigger","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.hubspot","n8n-nodes-base.hubspot","n8n-nodes-base.hubspotTool","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 4432 characters]

metadata_json:
  {"categories":["Sales","Customer Support"],"complexity":"medium","use_cases":["Automate sales call summaries","Create CRM tasks from transcripts","Update contact records with key details"],"estimated_setup_minutes":5,"required_services":["HubSpot","AI/ML Platform"],"key_features":["Extraction of contact email from transcripts","AI-generated meeting summaries","Next-action recommendations","Automated CRM record updates"],"target_audience":["Sales Representatives","Customer Success Managers","Founders"]}


name: AI Email Reply Based on HubSpot Data + Slack Approval
author_name: Miha
author_username: miha
categories: []
created_at: 2025-09-26T15:48:45.383Z
updated_at: 2025-09-26T15:48:45.383Z
url: https://n8n.io/workflows/8967
scraped_at: 2026-05-02 08:04:49
metadata_generated_at: 2026-05-02 08:36:21
description:
  This n8n template drafts customer-ready email replies using Google Gemini, enriched with HubSpot context (contact, deals, companies, tickets). Each draft is routed to Slack for one-click approval before it’s sent from Gmail—so you move fast without losing control.

  Ideal for support and sales teams that want speedy, personalized responses while keeping humans in the loop.

  How it works

  Gmail Trigger** watches for new inbound emails.
  Sender filter** excludes internal domains (e.g., n8n.io) to avoid auto-replying to teammates.
  HubSpot contact lookup* finds the sender and fetches associated *deals/companies/tickets** via association + batch read.
  CRM context is normalized** into clean, LLM-friendly fields (no IDs or sensitive noise).
  Gemini (Google AI Studio)** generates a concise, friendly reply using:

    Sender name, subject, and message snippet
    Safe, relevant HubSpot context (e.g., top 1–2 deals or an open ticket)
    Style constraints (≤ \~150 words, single CTA, optional clarifying question)
  Slack approval* posts the draft to a channel; if *approved, n8n **replies via Gmail in the original thread.

  How to use

  Gmail: Connect the same account for the trigger and reply nodes.
  HubSpot: Connect OAuth on the search + HTTP request nodes.
  Gemini: Add your Google AI Studio API key to the Google Gemini Chat Model node.
  Slack: Connect and select the channel for draft approvals.
  (Optional) Filter: Adjust the Allowed Sender filter before going live.
  (Optional) Prompt: Edit “Draft Reply (AI Agent)” tone/length or how much CRM detail to include.
  Activate the workflow. New emails will produce Slack-approved replies automatically.

  Requirements

  Gmail** (trigger + send)
  HubSpot** (OAuth2) for contact + associations
  Slack** for approval step
  Google Gemini** (Google AI Studio API key)

  Notes & customization

  Safety rails:** The prompt avoids exposing IDs/raw JSON and caps CRM details to what’s useful.
  Auto-send mode:** Skip Slack if you want fully automated replies for specific senders/labels.
  Richer context:** Extend the batch read to pull more properties (e.g., next step, renewal date).
  Triage:** Branch on subject/labels to route billing vs. technical requests to different prompts.
  QA queue:* If the model asks a clarifying question, keep it to *one**—the node enforces that.

nodes_used:
  ["@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.gmail","n8n-nodes-base.gmailTrigger","n8n-nodes-base.filter","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.hubspot","n8n-nodes-base.code","n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.slack","n8n-nodes-base.if","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 7660 characters]

metadata_json:
  {"categories":["AI/ML","Communication","Customer Support"],"complexity":"medium","use_cases":["drafting active emails","integrating CRM data","Slack workflow approval","personalizing responses","managing customer tickets"],"estimated_setup_minutes":30,"required_services":["Google Gemini","HubSpot","Gmail","Slack","Node.js"],"key_features":["AI-powered email drafting","CRM data enrichment","human-in-the-loop approval","role-based filters","multi-node automation chain"],"target_audience":["support agents","sales representatives","team leaders"]}


name: Email outreach drafter based on HubSpot data
author_name: Miha
author_username: miha
categories: []
created_at: 2025-09-26T15:55:13.793Z
updated_at: 2025-09-26T15:55:13.793Z
url: https://n8n.io/workflows/8968
scraped_at: 2026-05-02 08:04:51
metadata_generated_at: 2026-05-02 08:36:20
description:
  This n8n template turns a small, targeted HubSpot list into tailored outreach. It scans each contact’s recent Gmail conversations, builds a lightweight persona with AI (tone, goals, pain points, decision style), then drafts a concise sales email aligned to your offer—saved to Gmail as a reviewable draft.

  Perfect for SDRs and founders who want personalization at scale without writing from scratch.

  This template was originally created by Jim Le.

  How it works

  Manual trigger** starts a controlled run.
  HubSpot search** pulls a focused list of contacts (e.g., hs_buying_role = DECISION_MAKER).
  Batch loop** processes contacts one by one.
  Gmail fetch** grabs up to 20 recent threads from each contact.
  AI persona extraction** (Information Extractor + Gemini) analyzes messages to capture:

    decision-making style, communication preferences, goals/motivations
    pain points, work style, personality traits, buying behavior, values, market awareness
  Variables node* sets core fields (first name, last name, email) and the *offer** you want to pitch.
  AI email generation* (Gemini) mirrors the contact’s tone and priorities; outputs *subject* + *HTML body**.
  Gmail draft** is created for the contact so a rep can skim, tweak, and send.

  How to use

  Connect HubSpot on the “Get Contacts” node and refine the filter to your segment.
  Connect Gmail on both read and draft nodes (same account recommended).
  Add Gemini key to both Gemini nodes.
  In Variables, update product_to_sell with your offer and confirm the contact field mappings.
  (Optional) Tweak the persona attributes or the email prompt for tone/length/CTA.
  Click Test workflow. Review drafts in Gmail, edit if needed, then send.

  Requirements

  HubSpot** (OAuth2) for contact targeting
  Gmail** (read + draft)
  Google Gemini** (API key) for persona + copy generation

  Notes & customization

  Tighter targeting:** Change the HubSpot filter (e.g., industry, territory, lifecycle stage) to keep the list small and measurable.
  Richer inputs:** Increase Gmail limit or include received/sent filters to capture more context (mind rate limits).
  Brand voice:** Add a short style guide to the email generator’s system prompt (e.g., sentence length, jargon rules, sign-off).
  Offer variants:** Replace product_to_sell per segment, or branch by industry to load different value props.
  Compliance & privacy:** Limit stored outputs to essentials; avoid copying sensitive content from threads verbatim.
  Auto-send option:** Swap the draft step for “send email” if you want hands-off delivery for known segments.

nodes_used:
  ["n8n-nodes-base.noOp","n8n-nodes-base.gmail","n8n-nodes-base.gmail","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.splitInBatches","n8n-nodes-base.hubspot","@n8n/n8n-nodes-langchain.informationExtractor","@n8n/n8n-nodes-langchain.informationExtractor","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.set","n8n-nodes-base.manualTrigger"]

workflow_json_compressed:
  [encoded data, 6296 characters]

metadata_json:
  {"categories":["Sales & Marketing","Communication"],"complexity":"medium","use_cases":["Draft personalized outreach emails","Extract contact personas from communication history","Generate sales proposals based on CRMs"],"estimated_setup_minutes":25,"required_services":["HubSpot","Gmail","Google Gemini"],"key_features":["AI-driven contact persona analysis","Automated email draft generation","Multi-step workflow orchestration","Integration with Gmail and HubSpot"],"target_audience":["SDRs","Sales professionals","Founders"]}


name: HubSpot contact AI enrichment
author_name: Miha
author_username: miha
categories: []
created_at: 2025-09-26T15:58:10.491Z
updated_at: 2025-09-26T15:58:10.491Z
url: https://n8n.io/workflows/8969
scraped_at: 2026-05-02 08:04:51
metadata_generated_at: 2026-05-02 08:36:20
description:
  This n8n template auto-enriches brand-new HubSpot contacts with company details. Each day it finds contacts created in the last 24 hours (skipping free email domains), researches the company from the contact’s email domain, and writes back clean fields—no manual lookup needed.

  Perfect for GTM teams that want better segmentation and faster personalization from day one.

  How it works

  A daily schedule trigger starts the workflow.
  HubSpot: Get recently created/updated contacts** pulls the newest records.
  A filter keeps only contacts:

    created within the last 24 hours
    whose email domain doesn’t contain gmail.com (adjust as needed).
  An AI research agent (Gemini + SerpAPI):

    extracts the company domain from the contact’s email
    searches the web and returns structured JSON:

      company_name, industry, headquarters_city, headquarters_country, employee_count, website, linkedin, description
  HubSpot: Add company info** updates the contact with the enriched fields.

  How to use

  Connect HubSpot on both HubSpot nodes (OAuth2).
  Connect SerpAPI (paste your API key).
  Connect Google Gemini (Google AI Studio API key).
  (Optional) Edit the agent prompt to fetch more/different fields.
  (Optional) Tweak the filter to include/exclude other domains.
  Activate the workflow to run daily.

  Requirements

  HubSpot** (OAuth2) for reading/updating contacts
  SerpAPI** for web search results
  Google Gemini** for company profiling and structured output

  Notes & customization

  Free domains:** Add more exclusions (e.g., yahoo.com, outlook.com) to reduce false positives.
  Confidence gating:** Require website + LinkedIn before writing to HubSpot, or route low-confidence results for manual review.
  Field mapping:** Extend the update step with additional properties (e.g., industry tags, HQ timezone).
  Frequency:** Switch the trigger to hourly for faster enrichment on high-volume inbound.
  Data hygiene:** Normalize employee count ranges and country names to your CRM picklists.

nodes_used:
  ["n8n-nodes-base.stickyNote","n8n-nodes-base.hubspot","@n8n/n8n-nodes-langchain.toolSerpApi","n8n-nodes-base.filter","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.hubspot","n8n-nodes-base.scheduleTrigger"]

workflow_json_compressed:
  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

metadata_json:
  {"categories":["Marketing","Sales","AI/ML"],"complexity":"medium","use_cases":["Contact enrichment","Lead segmentation","Data automation"],"estimated_setup_minutes":30,"required_services":["HubSpot","SerpApi"],"key_features":["Auto-enrich company data","Daily schedule trigger","AI-powered research"],"target_audience":["marketing teams","sales developers","GTM specialists"]}


name: Weekly HubSpot Lead Report to Slack
author_name: Miha
author_username: miha
categories: []
created_at: 2025-09-26T15:59:48.711Z
updated_at: 2025-09-26T15:59:48.711Z
url: https://n8n.io/workflows/8970
scraped_at: 2026-05-02 08:04:49
metadata_generated_at: 2026-05-02 08:36:21
description:
  This n8n template posts a quick weekly snapshot to Slack so your team sees last week’s funnel movement at a glance. It counts how many contacts entered the Lead stage in the past week—and optionally reports closed-won deals from the same period.

  Perfect for GTM standups and Monday pipeline reviews.

  How it works

  A weekly schedule (e.g., Mondays 07:00) kicks things off.
  HubSpot → Get all contacts** pulls contacts with hs_v2_date_entered_lead.
  A filter keeps only those whose lead date is within the last 7 days.
  Summarize** counts the resulting leads.
  Slack* posts: “Last week we generated *X** leads.”
  (Optional branch) Deals:

    HubSpot → Get all deals with hs_is_closed_won and hs_closed_won_date.
    Filter to closed-won last week.
    Summarize to report count and (if mapped) total amount.

  How to use

  Connect HubSpot on the contacts and (optional) deals nodes.
  Connect Slack and pick the destination channel.
  In Schedule the report, set your preferred day/time.
  (Optional) For the Deals branch, include the amount property on “Get all deals” and set Summarize → sum over amount.
  Activate the workflow.

  Requirements

  HubSpot** (OAuth2)
  Slack** (OAuth2)

  Notes & customization

  Time windows:** Adjust the filter to different periods (e.g., last 14 or 30 days).
  More stages:** Duplicate the contacts branch for MQL/SQL or custom lifecycle events.
  Richer Slack message:** Add emojis, trend vs. prior week, or a tiny leaderboard by owner.
  Segments:** Split by country/industry using HubSpot lists or additional filters.

nodes_used:
  ["n8n-nodes-base.hubspot","n8n-nodes-base.filter","n8n-nodes-base.summarize","n8n-nodes-base.stickyNote","n8n-nodes-base.slack","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.hubspot","n8n-nodes-base.filter","n8n-nodes-base.summarize","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  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

metadata_json:
  {"categories":["Marketing","Communication"],"complexity":"simple","use_cases":["weekly lead tracking","pipeline reporting","team standup summaries"],"estimated_setup_minutes":5,"required_services":["HubSpot","Slack"],"key_features":["scheduled automated emails","contact funnel filtering","summary report generation"],"target_audience":["sales managers","marketing teams","business operators"]}


name: Chat with Your HubSpot Data
author_name: Miha
author_username: miha
categories: []
created_at: 2025-09-26T16:03:26.575Z
updated_at: 2025-09-26T16:03:26.575Z
url: https://n8n.io/workflows/8971
scraped_at: 2026-05-02 08:04:50
metadata_generated_at: 2026-05-02 08:36:21
description:
  This n8n template gives you a chat-style assistant that can search your HubSpot CRM on demand. Ask natural-language questions like “show me leads in Germany” or “what deals close next month,” and the agent translates your request into precise HubSpot searches—then answers in plain English.

  Great for founders, AEs, and ops folks who want quick answers without clicking through the CRM.

  How it works

  Chat trigger** starts a session from your n8n chat UI or embed.
  AI Agent (Gemini 2.5 Pro)** interprets the message and:

    Chooses the right HubSpot search (contacts or deals).
    Fills filter property, operator (EQ, NEQ, GT, GTE, LT, LTE, BETWEEN, IN, NOT\_IN), and value(s).
    Requests specific properties (email, name, lifecycle stage, owner, activity timestamps, etc.).
  HubSpot tools** execute live queries:

    Contacts: flexible property filter + free-text query.
    Deals: filters by owner and core deal fields (stage, amount, pipeline, close date).
  Memory buffer** keeps the last turns so you can say “now only show closed won over 10k” and the agent understands context.

  How to use

  Connect credentials

     HubSpot OAuth on both HubSpot Tool nodes.
     Google Gemini API key on the Gemini Chat Model.
  Open the chat (the “When chat message received” node).
  Ask questions like:

     “Find contacts named Hans created after Sept 1.”
     “Deals owned by me in Proposal with amount &gt; 10,000.”
     “Contacts with lead status = New and no email reply in the last 14 days.”
  Refine with follow-ups:

     “Sort by most recently contacted.”
     “Only Germany.”
     “Show top 5 with emails.”

  Requirements

  HubSpot** (OAuth2)
  Google Gemini** (API key)

  Notes & customization

  Property/operator control:** The contact search node lets the agent set both the property (e.g., email, lifecyclestage, hs_lead_status) and the operator (EQ, IN, BETWEEN in epoch ms for dates, etc.).
  Owner filtering for deals:** Uses hs_all_owner_ids; swap or extend to filter by pipeline/stage ranges.
  Guardrails:** Add allowlists for searchable properties or cap result counts to avoid noisy answers.
  Display format:** Have the agent return concise tables (name, email, stage, last activity, CTA).
  Handoffs:** Add Slack/Email actions—e.g., “post this list to #sales” or “export to CSV.”
  Telemetry:** Log queries for later dashboards (common searches, coverage gaps).

  Troubleshooting

  No results?** Loosen operators (use IN lists, broaden dates) or include a free-text query.
  Date filters:** Provide epoch ms for GT/GTE/LT/LTE/BETWEEN on time fields (the agent handles this; keep system time in UTC).
  Too chatty?** Reduce memory window or ask the agent to summarize to bullet points.

nodes_used:
  ["@n8n/n8n-nodes-langchain.chatTrigger","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.hubspotTool","n8n-nodes-base.hubspotTool","@n8n/n8n-nodes-langchain.memoryBufferWindow","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.lmChatOpenAi"]

workflow_json_compressed:
  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

metadata_json:
  {"categories":["AI/ML","Data Processing"],"complexity":"medium","use_cases":["query CRM data","search leads and deals","ask business questions"],"estimated_setup_minutes":10,"required_services":["HubSpot","Google AI (Gemini)"],"key_features":["natural-language search","context-aware queries","plain-English answers"],"target_audience":["founders","sales directors","operations managers"]}


name: Send WooCommerce new category alert via WhatsApp using Rapiwa API
author_name: SpaGreen Creative
author_username: spagreen
categories: []
created_at: 2025-09-27T03:46:19.804Z
updated_at: 2025-09-27T03:46:19.804Z
url: https://n8n.io/workflows/9002
scraped_at: 2026-05-02 08:04:51
metadata_generated_at: 2026-05-02 08:36:21
description:
  Send WooCommerce New Category Alert via WhatsApp Using Rapiwa API

  This n8n automation listens for the creation of a new WooCommerce product category, fetches all WooCommerce customers, cleans and formats their phone numbers, verifies them using the Rapiwa WhatsApp validation API, sends a WhatsApp message to verified numbers with the new category info, and logs each interaction into a Google Sheet (separately for verified and unverified customers).

  Who this is for

  You have a WooCommerce store and want to:

  Send a promotional message when a new product category is added,  
  Verify customer WhatsApp numbers in bulk,  
  Keep a clear log in Google Sheets of which numbers are verified or not.

  What it does (high level)

  Webhook is triggered when a new WooCommerce category is created.  
  Fetches all WooCommerce customers via API.  
  Limits processing to the first 10 customers (for performance/testing).  
  Cleans phone numbers (removes +, spaces, and non-digits).  
  Verifies each number via Rapiwa WhatsApp Verify API.  
  If verified: sends WhatsApp message with new category info, logs as Verification = verified, Status = sent.  
  If not verified: logs as Verification = unverified, Status = not sent.  
  Processes users in batches with delays to avoid rate limiting.

  How it works (step-by-step)

  Trigger**: Webhook node is triggered by WooCommerce category creation.  
  Format Data**: Category details (name, slug, description) are parsed.  
  Get Customers**: Fetch all WooCommerce customers using the WooCommerce API.  
  Limit**: Only the first 10 are processed.  
  Loop & Clean**: Loop over each customer, clean phone numbers and extract info.  
  Verify Number**: Send HTTP POST to https://app.rapiwa.com/api/verify-whatsapp.  
  Decision Node**: Use If node to check if exists == true.  
  Send Message**: If verified, send WhatsApp message with category details.  
  Append to Sheet**: Log verified and unverified customers separately in Google Sheets.  
  Wait + Batch Control**: Use Wait and SplitInBatches nodes to control flow and prevent throttling.

  Example verify body (HTTP Request node):

  {
    ""number"": ""{{ $json['WhatsApp No'] }}""
  }

  Google Sheet Column Reference

  | name        | number        | email                        | address                                              | catagoris   | description                                                                                         | status     |
  |-------------|---------------|------------------------------|------------------------------------------------------|-------------|-------------------------------------------------------------------------------------------------|------------|
  | Abdul Mannan | 8801322827799 | contact@spagreen.net   |  mirpur dohs  | Electronics | SShop top-braxxxxrable tech. | unverified |
  | Abdul Mannan | 8801322827799 | contact@spagreen.net | mirpur dohs   | Electronics | Shop top-braxxxxrable tech. | verified   |
  | Abdul Mannan  | 8801322827799 | contact@spagreen.net | mirpur doh  | Electronics | Shop top-braxxxxrable tech. | verified   |

  Customization ideas

  Send images, videos, or template messages if supported by Rapiwa.  
  Personalize messages using name or category data.  
  Increase delay or reduce batch size to minimize risk of rate limits.  
  Add a second sheet to log full API responses for debugging and auditing.

  Best practices

  Test on small batches before scaling.  
  Only send messages to users who opted in.  
  Store API credentials securely using n8n’s credentials manager.  
  Ensure your Google Sheet column headers match exactly with what's expected.
  Key Improvements Made

  Clarified the trigger source as a Webhook from WooCommerce category creation.  
  Fixed inconsistency in the ""What it does"" section (originally referenced reading from Google Sheets, but your workflow starts from WooCommerce, not Sheets).  
  Standardized terminology to match n8n nodes: Webhook, Loop, HTTP Request, etc.  
  Aligned the flow exactly with your nodes:  
    Webhook → Format → Get Customers → Limit → Loop → Clean → Verify → If → Send/Log → Wait → Repeat

  Useful Links
  Dashboard:** https://app.rapiwa.com
  Official Website:** https://rapiwa.com
  Documentation:** https://docs.rapiwa.com

  Support

  WhatsApp Support: Chat Now  
  Discord: Join SpaGreen Community  
  Facebook Group: SpaGreen Support  
  Website: https://spagreen.net  
  Developer Portfolio: Codecanyon SpaGreen
  "

nodes_used:
  ["n8n-nodes-base.splitInBatches","n8n-nodes-base.webhook","n8n-nodes-base.if","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","n8n-nodes-base.limit","n8n-nodes-base.wooCommerce","n8n-nodes-base.stickyNote","n8n-nodes-base.code","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.wait","n8n-nodes-base.code","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  H4sIAAAAAAAAE62X227bRhCGX4XgtdbYw+zJd2mKFk7SpE3Q5qLIxR5mbSIWqYq0HSPwu3cou5bkUJZlFwIECVzOfjuHf2a/102uj+tPb99ec9BXc/zjzZsrvqxn9RyHUB9/r5u2H0Kb8GRcl6IPArWSwhobjRLGKLDSKRBSWdQGotTOhih0tJACD85j5DJoBQ6yqW9mdRvmOG6Jba4+d93rbj7HZcLqPV5Vr8OAp93yunp1jsuhumxC9fksDP2rxaL6s2/a0+pjWDRXoXr1+wkxDuG0r4///kJGu4zjz++35wkaRLQCGcokGXhvWEgSmNQElRThSV7fo7zrukX14RKX1cmA8340fL0YH7SuZSvLLIYej/rFeTOctD+FIZ3huGzR9c3QdC1tbB3MOIEswpKMDrgkmu83t5b+on+rVepmdgcYXQgie2AiZSTAlFlMJbCcpXMOvBBarwE/Yzzruq87wa7un28QMSHdCunu6SqAIlHoAi9Mc1Vo3wAs8qSZCAEomvSxtt5zCnl/Cu7QCicz88IqBhAEc0Z4hkIoybmKJcf1KU7KzgM0ZZtdKMNnBvb5Ux6tWSjQzvksmRKBQq4CZz7n0a1cgi7R6LTBctFSuJvSYK7CYjGm4rK7qpq26s8Qh52cp113eo6fxjUP4i8M5zPh5T5kODL3yEmoLKxL5LksCDl6FmKkiEgssmRQyqc18v8N7CTMmBAHEWsb0RYbmFOBAp49Zw6cpLRFa5MyoWwSv2vmzW6087unG0zay/1FJO5psPCcuTDkOqAiwliYs5wywFklvUGfxUYR/YpDNQ/tdZUu+qGbj8Z31tNalrYBlXGHAHKDQXlBRJFTgHVSzHMbmXEZuLZQTFJrwE9Dk75eV++7AXdL0GrN3ZKtYifZmDEjf6iZOnXtgO1AturdpAVQkFwr5oQjV5rgqZKVYxi0MCQNiEauSX/plvMwVHeyVH3EftG1PVY/B+oZu9AT/dyGdny/M9cFHqkebKG0k9JQ7imRWCyOM6FCsVYDSSesEV+fYfpaXYbzJldXYwuhqqnai3kkld/sJDtxz4Zh8RH/ucD+QZIKQVK/X5tgQ5u0dgA2ORYU6rHQJXOoSe1jdJKDoIoS9XZn/A37PpziS1lHVXpaka9pRXYOMzpGkSdao6jcbTIses4hgASPeaM3hUdq/Co8LPGV7Nzq5GZfMgksoAaGUZEelrEfgtbMg1NSJqpyKfb1JXG0zmeJAhx3llFT5QwcHSRIUiuLwXOPkBzgRrKcY2ir96vsOCB/BefuKV3qnsopk4sRwJIRmdEo4piLvrCiufQlxqJUmdQDebggSKDIK2WepweBOxWdt0y7Qt2UkpeUgUYphTbTjAfoU5gkVQeTKg4vANXFK8VJ+b105FJq84yKijMZeDbWJ6W0mQSFg0G1eYlHdTFosi7McCSFjXGcmooftdYklDrJMh17fTCoH0Gf3QoowjSt08ScvSePgiPfguU0MVrnLKjsDE6CmoNBxzH8BaQ8kbIVTlO+ByBZzX4UqkjaKkD4ZG02MElqn1lOB5PS6pCG5pJ2KuG8x1nd4zCQoq9exW+YLsYNPiwzCQ+NeGK0cXn7/koXydvRjxJhLIwTBEUkFBkZ0qjOs6ScCuNUSxAtptHUyjBN2vQ9D82ITnei8YBPayyrd2Z06cv4rT7mdID160+dmX+w8YUOtWoTU1A7L1+TZm5Hypfb+e9GNWXpadPNpNmtRjJl+/CxZNoNDw67sdVmxKb72qTFiel40svbI/2kqd1pNmXxBTn1aKCm9nrsCjC5w6NwUztsT0OTNveU0TOtPjmxpuxv3swnrN/c/AtzEabGJxIAAA==

metadata_json:
  {"categories":["Marketing","Communication","E-commerce"],"complexity":"medium","use_cases":["Notify customers of new product categories","WhatsApp marketing automation","Verify recipient phone numbers before messaging","Log engagement data for reporting"],"estimated_setup_minutes":45,"required_services":["WooCommerce","WhatsApp","Rapiwa","Google Sheets"],"key_features":["Real-time event triggering from e-commerce platform","Automated customer data formatting","Third-party API integration for phone validation","Structured logging to spreadsheets","Conditional customer segmentation"],"target_audience":["e-commerce store owners","marketing teams","customer support staff"]}


name: Shopify order fulfillment & send tracking link via WhatsApp using Rapiwa API
author_name: SpaGreen Creative
author_username: spagreen
categories: []
created_at: 2025-09-27T03:59:53.647Z
updated_at: 2025-09-27T03:59:53.647Z
url: https://n8n.io/workflows/9003
scraped_at: 2026-05-02 08:04:51
metadata_generated_at: 2026-05-02 08:36:20
description:
  Shopify Order Fulfillment & Send Tracking Link via WhatsApp Using Rapiwa API

  Who is this for?
  This n8n workflow automatically sends WhatsApp notifications to customers when their Shopify orders are fulfilled. It extracts order details, validates customer phone numbers for WhatsApp compatibility using the Rapiwa API, sends tracking information via WhatsApp, and logs all interactions in Google Sheets with appropriate verification status.

  What this Workflow Does
  This n8n workflow listens for new order fulfillments on Shopify and automatically sends a WhatsApp message with tracking details to customers. It uses the Rapiwa API to verify if the customer's number is on WhatsApp, formats all the data, sends a message, and logs everything to Google Sheets for tracking and auditing purposes.

  Key Features
  Webhook-Triggered**: Activates on new Shopify fulfillment events
  Phone Number Validation**: Uses Rapiwa to check WhatsApp compatibility
  Tracking Message Automation**: Sends real-time tracking messages via WhatsApp
  Data Cleaning**: Formats phone numbers and customer data
  Smart Branching**: Separates verified and unverified WhatsApp users
  Google Sheets Logging**: Stores data with status labels for all messages
  Rate-Limit Protection**: Wait node helps space API calls
  Dual Sheet Logging**: Maintains separate records for verified and unverified numbers

  Requirements
  Tools & Services
  An n8n instance (self-hosted or cloud)
  A Shopify store with REST API access enabled
  A Rapiwa.com account with:
    Valid Bearer Token
    Connected and verified WhatsApp number
  A Google Sheet with the following columns:
     Like this Sample Sheet
  Google Sheets OAuth2 credentials** set up in n8n
  Shopify API credentials** added to n8n
  Rapiwa Bearer Token** added as httpBearerAuth credentials

  How to Use
  Step-by-step Setup
  Connect Shopify to n8n
     Use the Shopify Trigger node
     Set event to fulfillments/create to capture new fulfillment events

  Extract Webhook Data
     Use a Code Node to format the webhook response
     Capture order, customer, and tracking details

  Fetch Complete Order Information
     Add an HTTP Request Node using Shopify Admin API
     Include the order ID to retrieve customer phone, email, and product details

  Clean the Phone Number
     Use a Code Node to:
       Remove non-numeric characters
       Format number to international standard
       Combine customer first and last name

  Batch Process Orders
     Use the Split In Batches node to handle customers one-by-one

  Validate WhatsApp Number
     Use Rapiwa’s /verify-whatsapp endpoint with a Bearer Token
     Check if number exists on WhatsApp

  Conditional Branching
     Use an If Node:
       If data.exists === "true" → Verified path
       Else → Unverified path

  Send WhatsApp Message
     Send tracking info with a personalized message:
            Hi [Customer Name],
       Good news! Your order has just been fulfilled.
       Tracking Number: [Tracking Number]
       Track your package here: [Tracking URL]
       Thank you for shopping with us.
       -Team SpaGreen Creative
       
  Log Data to Google Sheets
     Log verified and unverified entries in separate sheets
     Include all relevant customer and tracking data

  Add Delay Between Messages
      Use the Wait Node to avoid rate limits on Rapiwa API

  Requirements
  A Shopify store with API access enabled
  A Google Sheet with required column like this ➤ Sample
  Rapiwa API account**:
    Connected WhatsApp number
    Valid Bearer Token
  n8n** with:
    Shopify API credentials
    Rapiwa Bearer Token
    Google Sheets OAuth2 credentials

  Google Sheet Column Reference
  A Google Sheet formatted like this ➤ Sample

  | customer_id   | name            | email                          | number        | tracking_company | tracking_number | tracking_url                                | product_title                          | status     |
  |---------------|-----------------|--------------------------------|---------------|------------------|-----------------|---------------------------------------------|----------------------------------------|------------|
  | 8986XXXX06 | Abdul Mannan | contact@spagreen.net  | 8801322827799 | Amazon Logistics | SG-OT-02        | https://traxxxG-OT-02 | S25 Ultra 5G Smartphone     | verified   |
  | 883XXX7982 | Abdul Mannan     | contact@spagreen.net             | 8801322827799 | Amazon Logistics | SG-OT-N03       | https://traxxxGOT-N03| Samsung Galaxy S24 Ultra  | verified   |

  Workflow Logic Summary
  Shopify Webhook Trigger: On order fulfillment
  Extract Webhook Payload
  Fetch Order + Customer Details
  Clean and Format Phone Number
  Split into Single-Item Batch
  Check WhatsApp Validity via Rapiwa
  If Verified:
     Send WhatsApp Message
     Log to verified sheet
  If Not Verified:
     Skip message
     Log to unverified sheet
  Add Delay with Wait Node
  Repeat for Next Fulfillment

  Customization Ideas
  Modify WhatsApp message to include delivery date or store contact
  Send different messages for different product categories
  Use product_type or shipping_zone to trigger separate workflows
  Add admin alerts for unverified numbers
  Store message delivery status (e.g., success, failed)

  Notes & Warnings
  Rapiwa is an unofficial WhatsApp API — delivery reliability is not guaranteed
  The Google Sheet column name  must include the space at the end
  Wait node** may need longer delay for high-volume stores
  Always format phone numbers in international format (e.g., 8801XXXXXXXXX)
  Shopify API version used is 2025-07 — update as newer versions release
  You must comply with WhatsApp terms and data privacy laws when messaging users

  Useful Links
  Dashboard:** https://app.rapiwa.com
  Official Website:** https://rapiwa.com
  Documentation:** https://docs.rapiwa.com

  Support
  WhatsApp Support: Chat Now  
  Discord: Join SpaGreen Community  
  Facebook Group: SpaGreen Support  
  Website: https://spagreen.net  
  Developer Portfolio: Codecanyon SpaGreen

nodes_used:
  ["n8n-nodes-base.httpRequest","n8n-nodes-base.splitInBatches","n8n-nodes-base.shopifyTrigger","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.googleSheets","n8n-nodes-base.httpRequest","n8n-nodes-base.wait","n8n-nodes-base.httpRequest","n8n-nodes-base.if","n8n-nodes-base.googleSheets","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  H4sIAAAAAAAAE6WXTXPbNhCG/wpHh56EDPEN+Ja6k6lnEqeN0/rQyWEBLGTWEsmIlJ3U4//epZREsk3ZsnPRUBKweHax++7yZlKlydHk88mX9j9+fro6/fPdv+r3z5PpZIE9TI5uJlXd9VBHPBnWxeCBo5aCW2ODkdwYqaxwUnEhLWqjgtDOQuA6WBWhBOcxlAK0VE4lQ3Z7XLRz6PF4iak7w37VHjf0C/ZIB/TLFd5OJzUskE47u2jaKn8t3i8TLos3q3mu5vMF1n3xS3GGdSo+LiFeVvWseFvVl8VVBcX5BfTd67Yt/uqG3z9AW11D8fqPk+FkmHWTo38+kf0m4fB4s/E+BOF0gsBy9J6ppANzQQYmjdc+ac9B5ckPqhn2BcznRVx1fbMgsAQUKTL/tR3+rl3N1vZZgA5fXfR9+wE/r7DraU3bdFVfNTWdzTgXU+cN4bSwJNM9Lonp5nZj6W/6tl6oXonb6TdQqW3m2iLDkDhTzmjmpFMsClGKaLwyHLagb5umLd5fEeEJBb3bi9i186o/qX+FPl5gd5fSlYcwyh+EJWpP129ZQBGZ0jlRKEVgBqTyzlNU/Q7h9wv+uKxmM1zuJ9ys2y7bjaMR6hvjNYaLprlcZyq4qHQMyEoVHFPROuYUd4yytww+uJzKIRsfdYv/cAu90yqqkkkyx5QHx0CiYFkCoIHSe7Pj1ptmuYC+ON/gFB+wa5u6w+K3xxIl0uM9z5Ryh0R/mx8+Zc95SgwyZYUCxyn6XA/ua4dJmuhxi3k8R6iL09UiPBL6h1gUgqn34hlU0WbDuWecYkhUIVPWSsMkBnRcyqys31JRvla5wlRA2w41vmyui6ouugvEfi/lrGlmczwb1txLYM6dmvKydE/Xmdled/KCR1EyUyLVWaQ6AyouFpOy1miXLPKdLB4w32HXwQzv6M7zRcGb8kDYbXi15N7lACwk0izFjWchY2JGkVjICCDETm6eQ7U/jNebPx+ET/D75WWisgq1IiWSdKc5JhaU1swrJ4WIqaQ9T5bXq22BQTa2TMAZV0gSDCoxTxXKDLokAtVxqXcifnyBkfQe5lUqrgfFp1wp6nUi/+QFaOEOSe7d+BtJ4hBy2ERBCUs3YbJmEbTxVqQMaif+J3kvVJXvslhBycBF+WSl7cBgVmiyyUzHIRm0J6GKKFkIyibPnRMZD6s1/oJi89Z8T5aDa80LuuKcJAOj7SCtlrlIDmR6sqhozLBip9b6Kl5+LU6bHvd3i/Wab0t29VToge/h7U5iU/c0VpCpyf4e4IUSAIQnlaaOEqjiSJxJXBGVVDD8zUdB90dyL6k17uWggnocdxyZkAaZsgAMMAqSsDI478ohKUdBxfNB+SBYLwUtA22NisgMdSqKKjIfS8WCFDa6yJPcTdYdUPlsUKF/4uYF9c7gqRNYj3TzmlqZV2Vg3JLsEjrQ5DXKqZ7Naam5vjyeMXmqpMiQiofkKA91nwJLJqCCKMGb8VLSL8tQ9nA2eRyUVkPsqys6KMO8w+mkw74nvV5vxS8YV4P99bw/yBMfbFxt9m+mOpUld5hZ9MaQ1koacDx9WMGVdEjzjRhElCBqjIOptWHSXPpcQDWQ09A/+HdY317vmdI7UMIvk6OSHNhuP1A8H5j4RD6tu/AY096ZfdTMnQluzNzzG+XoOfepdo7ajcj4QDlq8f7kPwZ/2Bg9an78He3nA74/ZcZsHzbKjh70qO9jZz3xVjp6yKN8Y4fcHR6fbZO/1OjBaTxmf3fiGrF+e/s/uBJLTwQRAAA=

metadata_json:
  {"categories":["E-Commerce","Customer Engagement","Communication"],"complexity":"medium","use_cases":["automated order notifications","tracking link delivery","customer communication","order status updates"],"estimated_setup_minutes":30,"required_services":["Shopify","Rapiwa","Google Sheets"],"key_features":["real-time webhook triggers","phone number validation","WhatsApp message formatting","Google Sheets logging","conditional routing"],"target_audience":["e-commerce managers","support teams","developers"]}


name: Import E.ON W1000 Energy Meter Data to Home Assistant with Spook Integration
author_name: András Farkas
author_username: netesfiu
categories: []
created_at: 2025-09-27T13:32:01.805Z
updated_at: 2025-09-27T13:32:01.805Z
url: https://n8n.io/workflows/9010
scraped_at: 2026-05-02 08:04:51
metadata_generated_at: 2026-05-02 08:36:21
description:
  UPDATES:
  2025-12-03 fix JS code in calculate hourly sum node

  E.ON W1000 → n8n → Home Assistant (Spook) “Integration”

  This workflow processes emails from the E.ON portal containing 15-minute +A -A (import/export) data and daily 1.8.0  2.8.0 meter readings.  
  It extracts the required columns from the attached XLSX file, groups the 15-minute values by hour, then:

  updates the Spook/Recorder statistics under the IDs sensor.grid_energy_import and sensor.grid_energy_export, and  
  sets the current meter readings for the entities input_number.grid_import_meter and input_number.grid_export_meter.

  &gt; You may need to modify the workflow if there are changes in how E.ON sends scheduled exports. If the exported data format changes, please report it on Github!

  Requirements

  n8n (cloud or self-hosted)
    HACS addon available here: Rbillon59/home-assistant-addons
    Official n8n Docker Compose template
    Simplified n8n Docker Compose template available on Github
  (For Gmail) Gmail API authentication (OAuth2) read-only email access to the account receiving the messages  
    Setup guide available here
  (For IMAP) IMAP provider credentials
  Home Assistant access via Long-Lived Access Token or API key  
    Setup guide available here
  Spook integration  
    Documentation and installation guide available here

  E.ON Portal Setup

  Create a scheduled export on the E.ON portal with the following parameters:  
     Under the Remote Meter Reading menu, click on the + new scheduled export setting button.  
       Specify POD identifier(s): choose one of the PODs you want to query.  
       Specify meter variables: select the following:
         +A Active Power Consumption
         -A Active Power Feed-In
         DP_1-1:1.8.0*0 Active Power Consumption Daily Reading
         DP_1-1:2.8.0*0 Active Power Feed-In Daily Reading
       Export sending frequency: daily  
       Days of historical data to include: recommended 7 days to backfill missed data.  
       Email subject: by default, use [EON-W1000]. If processing multiple PODs with the workflow, give each a unique identifier.

  Home Assistant Preparation

  Create the following input_number entities in configuration.yaml or via Helpers:



  input_number:
    grid_import_meter:
      name: grid_import_meter
      mode: box
      initial: 0
      min: 0
      max: 9999999999
      step: 0.001
      unit_of_measurement: kWh
    grid_export_meter:
      name: grid_export_meter
      mode: box
      initial: 0
      min: 0
      max: 9999999999
      step: 0.001
      unit_of_measurement: kWh
  &gt; If you name the entities differently, make sure to reflect these changes in the workflow.

  Create the following template_sensor entities in configuration.yaml or via Helpers:


  input_number:
    grid_import_meter:
      name: grid_import_meter
      mode: box
      initial: 0
      min: 0
      max: 9999999999
      step: 0.001
      unit_of_measurement: kWh
    grid_export_meter:
      name: grid_export_meter
      mode: box
      initial: 0
      min: 0
      max: 9999999999
      step: 0.001
      unit_of_measurement: kWh
  &gt;If you name the entities differently, make sure to reflect these changes in the workflow.

  create the following template_sensor entities in config.yaml or via Helpers:

    

  template:
    sensor:
        name: "grid_energy_import"
          state: "{{ states('input_number.grid_import_meter') | float(0) }}"
          unit_of_measurement: "kWh"
          device_class: energy
          state_class: total_increasing
        name: "grid_energy_export"
          state: "{{ states('input_number.grid_export_meter') | float(0) }}"
          unit_of_measurement: "kWh"
          device_class: energy
          state_class: total_increasing
  &gt; If you name the entities differently, make sure to reflect these changes in the workflow.

  n8n import and authentication

  importing the workflow

     In n8n → Workflows → Import from File/Clipboard → paste the JSON.
     Select the downloaded JSON and paste it into a new workflow using Ctrl+V.
  Set up n8n Credentials
     The credentials must be configured in the Home Assistant and Gmail nodes. The setup process is described in the Requirements section.

nodes_used:
  ["n8n-nodes-base.extractFromFile","n8n-nodes-base.renameKeys","n8n-nodes-base.gmail","n8n-nodes-base.aggregate","n8n-nodes-base.gmail","n8n-nodes-base.renameKeys","n8n-nodes-base.renameKeys","n8n-nodes-base.splitOut","n8n-nodes-base.splitOut","n8n-nodes-base.splitOut","n8n-nodes-base.splitOut","n8n-nodes-base.merge","n8n-nodes-base.renameKeys","n8n-nodes-base.merge","n8n-nodes-base.merge","n8n-nodes-base.code","n8n-nodes-base.homeAssistant","n8n-nodes-base.homeAssistant","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.aggregate","n8n-nodes-base.aggregate","n8n-nodes-base.homeAssistant","n8n-nodes-base.homeAssistant","n8n-nodes-base.gmailTrigger","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.if","n8n-nodes-base.noOp","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.emailReadImap","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.if","n8n-nodes-base.stickyNote","n8n-nodes-base.dateTime","n8n-nodes-base.dateTime","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 10200 characters]

metadata_json:
  {"categories":["Smart Home","Data Processing","IoT"],"complexity":"medium","use_cases":["import energy meter data from emails","extract metrics from xlsx attachments","aggregate 15-minute readings to hourly totals","update smart home sensor statistics","sync utility usage data from portal"],"estimated_setup_minutes":120,"required_services":["E.ON Portal","Home Assistant","Google Sheets (optional)"],"key_features":["email data parsing","xlsx file attachment processing","time-series aggregation","automated energy monitoring integration","custom entity synchronization"],"target_audience":["home owners","energy managers","iot developers"]}


name: Manage Shopify Store via Conversational OpenAI Assistant with SmartCommerce
author_name: Rohit Dabra
author_username: rohitdabra
categories: []
created_at: 2025-09-27T15:01:31.229Z
updated_at: 2025-09-27T15:01:31.229Z
url: https://n8n.io/workflows/9014
scraped_at: 2026-05-02 08:04:50
metadata_generated_at: 2026-05-02 08:36:22
description:
  Shopify MCP AI Agent Workflow for n8n

  Overview

  This n8n workflow showcases a full-featured AI-powered assistant connected to a Shopify store through a custom MCP (Multi-Channel Commerce Platform) Server toolkit. It empowers users to automate comprehensive Shopify store management by leveraging AI to interact conversationally with their data and operations. The workflow can create, fetch, search, update, and delete Shopify products and orders, all triggered via simple chat messages, making day-to-day store operations frictionless and highly efficient.

  Core capabilities include:

  Product and order management (CRUD) via chat commands.

  Smart retrieval: AI proactively fetches details instead of asking repeated questions.

  Contextual memory: AI uses n8n memory to provide context-aware, fluent responses.

  End-to-end automation: Connects Shopify, OpenAI, and n8n’s automation logic for seamless workflows.

  This solution is ideal for Shopify merchants, agencies, and developers aiming to reduce manual overhead and enable conversational, AI-powered commerce automation in their operations.

  🎬 Watch Demo Video on YouTube 

  Step-by-Step Setup Guide

  Follow these steps to import and configure the Shopify MCP AI Agent workflow in n8n:

  1. Import the Workflow File

  Download the workflow file from this Creator Hub listing.

  In your n8n instance, go to Workflows &gt; Import from File and upload the JSON.

  2. Prepare Shopify Access

  Log in to your Shopify admin.

  Create a Custom App or use an existing app and retrieve the Admin API Access Token.

  Storefront access: Ensure your app has relevant permissions for Products, Orders, Discounts, and Store Settings.

  3. Set Up Credentials in n8n

  In n8n, navigate to Credentials and add a new Shopify API credential using your Access Token.

  Name it something memorable (e.g., Shopify Access Token account) to match the credential used in the workflow nodes.

  4. Configure the MCP Server Connection

  Make sure your MCP Server is running and accessible with API endpoints for product/order management.

  Update any relevant connection endpoints in the workflow if you run your MCP Server locally or in a different location.

  5. Connect OpenAI or Other LLM Provider

  Provide your API key for OpenAI GPT or a compatible model.

  Link the credential to the OpenAI Chat Model node (replace with other providers if required).

  6. (Optional) Customize for Your Needs

  Tweak node logic, add new triggers, or extend memory features as required.

  Add, remove, or restrain the AI’s capabilities to fit your operational needs.

  Configure chat triggers for more personalized workflows.

  7. Testing

  Use the “When chat message received” trigger or send http requests to the workflow’s endpoint.

  Example: “Create an order for Jane Doe, 3 Black T-shirts” or “Show today’s fulfilled orders”.

  The workflow and AI Agent will handle context, fetch/store data, and reply accordingly.

  8. Ready to Automate!

  Begin leveraging conversational automation to manage your Shopify store.

  For additional tips, consult the workflow’s internal documentation and n8n’s official guides.

  Additional Notes

  This template includes all core Shopify product and order operations.

  The AI agent auto-resolves context, making routine admin tasks simple and quick.

  Extend or fork the workflow to suit niche scenarios—discounts, analytics, and more.

  Visual thumbnail and schematic are included for easy reference.

nodes_used:
  ["@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.mcpClientTool","@n8n/n8n-nodes-langchain.memoryBufferWindow","@n8n/n8n-nodes-langchain.chatTrigger","@n8n/n8n-nodes-langchain.mcpTrigger","n8n-nodes-base.shopifyTool","n8n-nodes-base.shopifyTool","n8n-nodes-base.shopifyTool","n8n-nodes-base.shopifyTool","n8n-nodes-base.shopifyTool","n8n-nodes-base.shopifyTool","n8n-nodes-base.shopifyTool","n8n-nodes-base.shopifyTool","n8n-nodes-base.shopifyTool","n8n-nodes-base.shopifyTool","n8n-nodes-base.shopifyTool","n8n-nodes-base.shopifyTool","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 6624 characters]

metadata_json:
  {"categories":["AI/ML","Marketing","E-commerce"],"complexity":"medium","use_cases":["Chatbot-driven store management","Automated product updates","Conversation-based order processing","AI-assisted inventory control"],"estimated_setup_minutes":16,"required_services":["Shopify","OpenAI"],"key_features":["MCP server integration","Natural language command execution","Stateful conversation memory","Full CRUD operations on store data"],"target_audience":["Shopify store owners","E-commerce managers","AI workflow developers"]}


name: Generate stock trading signals with Gemini 2.5 Pro & TwelveData via Telegram Bot
author_name: Malik Hashir
author_username: malikx
categories: []
created_at: 2025-09-27T18:06:06.375Z
updated_at: 2025-09-27T18:06:06.375Z
url: https://n8n.io/workflows/9015
scraped_at: 2026-05-02 08:04:51
metadata_generated_at: 2026-05-02 08:36:20
description:
  Purpose and Audience
  This n8n workflow template creates an intelligent stock technical analysis system that delivers professional-grade trading signals directly to your Telegram. Designed for retail traders, investors, and financial professionals who want to combine technical analysis with AI-powered insights for better market timing decisions.

  Who Is It For
  Retail Traders: Looking to enhance their technical analysis with AI-driven insights
  Swing Traders: Need reliable signals for entry and exit timing
  Investment Professionals: Want automated technical screening for multiple stocks
  Financial Enthusiasts: Interested in combining traditional TA with modern AI tools
  Portfolio Managers: Seeking systematic approach to market timing

  How It Works
  The workflow operates as a comprehensive technical analysis engine:
  Data Collection: Fetches real-time stock prices and 90-day historical data from TwelveData API
  Technical Calculation: Computes key indicators including EMAs, RSI, ATR, and support/resistance levels
  AI Analysis: Uses Google Gemini 2.5 Pro to analyze confluence of indicators and generate single, high-probability signals
  Signal Generation: Produces clear BUY/SELL/NEUTRAL recommendations with specific entry, stop-loss, and take-profit levels
  Delivery: Sends formatted analysis and interactive charts via Telegram bot
  Risk Management: Includes built-in risk parameters and confidence scoring

  Setup Requirements
  Create Telegram bot via BotFather
  Set up Google Gemini credentials
  Configure additional nodes as you see in the sticky notes
  Deploy and test with stock symbols (e.g., "AAPL", "TSLA")

  Note: Complete setup guide is provided with the workflow file.

  Technical Indicators Used in Strategy
  Core Indicators (1-Day Timeframe):
  EMA 50 & EMA 200: Trend direction and momentum confirmation
  RSI (14-period): Momentum oscillator for overbought/oversold conditions
  ATR (14-period): Volatility measurement for risk sizing
  Support/Resistance: Dynamic levels calculated from 90-day price history.
  Fibonacci Retracements: Additional confluence levels.

  Important Disclaimers
  ⚠️ Analysis timeframe is set to 1-day by default - suitable for swing trading, not day trading
  ⚠️ Not a get-rich-quick system - This tool provides technical analysis, not financial advice
  ⚠️ Use with fundamental analysis - Technical signals work best when combined with fundamental research for timing entries and exits
  ⚠️ Not recommended for isolated use - Always consider fundamentals, market conditions, news, and risk management

  Key Features
  Single, clear signal per analysis (no conflicting recommendations; either buy or sell)
  Built-in confidence scoring system
  Automated chart generation and delivery
  Support for any US stock ticker
  Professional-grade risk management parameters

  Use Case Examples
  Pre-market Analysis: Send "AAPL" stock ticker as a message to your telegram bot and get comprehensive technical analysis with 1 Day candlesticks chart
  Swing Trading: Use signals to time entries on already-researched stocks
  Portfolio Review: Analyze multiple positions for exit timing
  Educational Tool: Learn technical analysis through AI explanations

  This template transforms complex technical analysis into accessible, actionable trading insights while maintaining professional risk management standards.

nodes_used:
  ["n8n-nodes-base.httpRequest","n8n-nodes-base.merge","@n8n/n8n-nodes-langchain.outputParserStructured","@n8n/n8n-nodes-langchain.memoryBufferWindow","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.telegramTrigger","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.wait","n8n-nodes-base.wait","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.code","n8n-nodes-base.code","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.telegram","n8n-nodes-base.telegram","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  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

metadata_json:
  {"categories":["AI/ML","Data Processing","Trading"],"complexity":"medium","use_cases":["Stock analysis","Trading signals","Telegram alerts","Technical analysis","AI recommendations"],"estimated_setup_minutes":20,"required_services":["Google Gemini","TwelveData","Telegram"],"key_features":["AI-powered technical analysis ","Realtime price data integration","Telegram bot automation","Structured signal output","Market trend identification"],"target_audience":["Retail traders","Swing traders","Financial analysts"]}


name: Automated Economic Calendar PDF Reports to Telegram via RapidAPI
author_name: Malik Hashir
author_username: malikx
categories: []
created_at: 2025-09-27T21:54:26.736Z
updated_at: 2025-09-27T21:54:26.736Z
url: https://n8n.io/workflows/9025
scraped_at: 2026-05-02 08:04:51
metadata_generated_at: 2026-05-02 08:36:21
description:
  Stay ahead of the markets with this fully automated n8n workflow that delivers AI-generated economic calendar events PDF updates directly to your Telegram or Discord.

  Powered by the Economic Events Calendar API via RapidAPI, this workflow is perfect for traders, investors, and financial community managers who want timely notifications about high- and medium-impact global economic events—no coding required.

  Key Features
  Automated PDF Generation: Receive medium and high impact upcoming economic calendar events schedule (for up to 7 days in future) straight to Telegram/Discord.
  Flexible Scheduling: Default update interval is every 7 days, adjustable to any custom frequency.
  Customizable Date Range: Easily set the window for economic event coverage (e.g., today to 7 days ahead).
  No Coding Needed: Simple setup—just plug in your API keys and Telegram credentials.

  Who Is This For?
  Retail and professional traders
  Financial influencers and Telegram group admins
  Community managers seeking hands-off, real-time macroeconomic alerts

  Why Choose This Workflow?
  Save Time: No more manual economic calendar checks. Get upcoming full week high and medium impact news events straight to your telegram in neatly formatted PDF.
  Stay Informed: Instantly know about key market-moving events.
  Easy Integration: Works out-of-the-box with n8n and Telegram.

  Get started today and never miss a critical economic event again!

  PDF View:

nodes_used:
  ["n8n-nodes-base.stickyNote","n8n-nodes-base.code","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.telegram","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  H4sIAAAAAAAAE6WXyW4bRxCGX2XAQ05so/dFN8NLIgSxDS+5BD5UV1dLhMkZhhzHYQK9e2oI21KUlrjkNmz2dH1T699/z1Y0wuzi79mi347QI12W2cUs+Oq8RUqkqk2ewKNxxlTlXHFaBTAKgs0qe50JjEQTgtXJBoBQKODsZj7rh0Lb2cVvfPR0JElltXJaVExVWItO5OKiwGhTrkkq8nrGb8GKePe7cYGfdt2rYaRpddytp9U+9mJ/rMiwpSfb/aZpD29ZD9vFuBh6tiiss3bug/7Iy7DhE0fabKePxKEfqR/5qIlwOvVX/mf/lrqZfyWNVdaSsxKE2QorZRHR1CJStBqVhQjuDunzHT8sEJbLXfeOxm03XlP3HPZMbWzkx3vATic/VzLG+8T3KfV3SsiWyDkvcgTD/qxaZEL2bJLVEEdJW3nHn3hN5fOSuhd/0GbXhY4Rd9uHPft1+/vN4uqKNvdpvdFH0aont7wOVAZfQHD4k7Bec/wzagGktbNZS23sHV4au6dvLrufadfVYdO9hfWiTAs/7H37CDmN95MhheN8a57Y77QZdKlKojA6BWFNTgJUCCJoqRRarTXGW9ofp7h/WOOwWvRX3Sv68jDf9Tiu39Lvn2n7H057pFftHa/mBAW5+oROKkxZEAQ46YRJAN5H7aiUZlX506vKBS/n0ZxZVVCzsVElUarm+LNzRbIyiayNNs7zamjXfziDVGk5D9GeR6qVRQBpRKyRSaVHrjHL5ZVchuo98NIt6cvFkk/vfqGy+Lzi9PxpcXXdXa7WgOPjmdBoA+yPU9sAoldS1iwC+cIJkEBEDEkg92cC6zwlcwv7bOi5/rm0lsvucqTVtrvsx6F73VP3dLOB3SmwJuh4ImzimWIKkMgeGRaTF5FMEq4qHyQAOIO3sC/KYmSHflgXrvjuPa3Wy8fa6sOVZZS0J1cW4wRMkIS3EriJGBTJF8VNy1GV2VTce+TbFBi+9MsBSvfm+cvuLa2HzXgGKJeAPBkUZXHWySxi0VP7TwxKqYhcOUImW+vlnRbwenMF/eKv/YiCfWuduupB57biz8l1YvxVjs4AKE7WkIVVnt1pkhHaKgqyVk5k1ewBZ0gAxc0q2TNbgDfF5pBRWB0jV5UHkarSQqagpEaDpbRB1emkLJ38/yDNRvnEOip55XiscoONVlnhg7GE0qiiTZPUnE6qpwkV3NmyKhiFLABSzp4lGjkRY/TCy5hIBxOj9k1SezqpSj6eT5p1LVFpFOSnNM2ZBSDyFJC+WE+2uqTvlP476kv3gg/m6Y/dM1jyb9hMQqtnVTD1A+6w72lJVwzy4KeMtxv+5XLOv29F9oXy9TB82gt04w0HQ2VmYiE9PYqYqxIOyXkEC8VM+uRodabRS58QhCROc4uaBATgk6ODqHzVLIqbwXFnpFG0cZ68PC84yWjr+DNZPTjmw8BzmoA7dFSyuojA6qxJGs8oTa386aS8m//vCadj9tsb+pBXV7CYrPAFaWI5SUrsX53zna3Qn7MLefPxI2O0ZlDLzJkJ27T5wIxumX10RDYPf+DS0jz88C2s7bMH32t77thbSdPYgdnbsnhIAzXtHFR5LUvHCoOmxYOZ27J4vBhtZ8ehYLRsPnZTa1i5ufkHF0UzJyERAAA=

metadata_json:
  {"categories":["Finance","Communication","Data Processing"],"complexity":"medium","use_cases":["monitoring economic events","sending market alerts","automating PDF reports","integrating Telegram notifications","tracking high-impact data"],"estimated_setup_minutes":20,"required_services":["RapidAPI","Economic Events Calendar API","Telegram","PDF Generation API"],"key_features":["AI-generated summaries","Automated document generation","Scheduled event triggers","Impact-based filtering","Multi-channel delivery"],"target_audience":["traders","investors","financial community managers"]}


name: AI Sales Assistant with GPT & Claude: Qualify Leads, Book Meetings
author_name: Hassan
author_username: sycorda
categories: []
created_at: 2025-09-27T22:06:33.630Z
updated_at: 2025-09-27T22:06:33.630Z
url: https://n8n.io/workflows/9026
scraped_at: 2026-05-02 08:04:48
metadata_generated_at: 2026-05-02 08:36:22
description:
  Lead Qualification & Meeting Booking System

  This workflow creates a sophisticated AI-powered sales assistant that automatically qualifies website visitors, schedules meetings, and manages the entire lead-to-booking pipeline without human intervention. The system acts as "Hassan," a friendly sales representative who engages prospects through natural conversation and converts interest into booked appointments with remarkable efficiency.

  Benefits:

  Complete Sales Automation - Engages website visitors 24/7, qualifies leads through intelligent conversation, and books meetings automatically without any manual oversight

  AI-Powered Lead Qualification - Uses advanced conversational AI with SPIN Selling and Challenger Sale methodologies to identify high-value prospects and overcome objections naturally

  Smart Calendar Integration - Automatically checks availability, prevents double-bookings, and sends professional confirmation emails with meeting details

  Intelligent Data Management - Tracks all interactions, prevents duplicate outreach, and maintains comprehensive conversation summaries for follow-up optimization

  Scalable Conversion System - Processes unlimited website visitors simultaneously while maintaining personalized, human-like interactions for maximum conversion rates

  Revenue-Focused Approach - Specifically designed to identify prospects interested in AI automation services and guide them toward high-value consulting calls

  How It Works:

  Website Visitor Engagement:
  Captures incoming chat messages from website visitors in real-time
  Initiates conversations using a trained AI persona that feels authentically human
  Gradually qualifies interest in AI automation services through strategic questioning

  Intelligent Lead Processing:
  Collects essential contact information (name, email, company) within first few exchanges
  Cross-references visitor history to provide personalized follow-up experiences
  Updates comprehensive database with conversation summaries and lead scoring

  Advanced Qualification System:
  Uses proven sales methodologies (SPIN, Challenger) to overcome objections naturally
  Identifies pain points, budget indicators, and timeline requirements through conversation
  Accesses company knowledge base to answer specific questions about services and pricing

  Automated Meeting Booking:
  Seamlessly transitions qualified prospects to calendar booking when interest is confirmed
  Checks real-time calendar availability to prevent conflicts and optimize scheduling
  Creates calendar events with proper attendee management and meeting details

  Professional Follow-Up Automation:
  Sends branded confirmation emails with meeting links and company information
  Maintains conversation context across multiple touchpoints for consistency
  Provides detailed handoff information to sales team for optimal meeting preparation

  Required Database Setup:

  Before running this workflow, create a Google Sheets database with these exact column headers:

  Essential Columns:
  Name** - Prospect's full name (collected during qualification)
  Email** - Primary email address (used for matching and updates) 
  Summary** - Detailed conversation summary with key insights
  Date** - Timestamp of interaction for tracking and follow-up

  Setup Instructions:
  Create a new Google Sheet with these column headers in the first row
  Name the sheet "Web Chat Bot Convo Summary"
  Connect your Google Sheets OAuth credentials in n8n
  Update the document ID in the workflow nodes

  The merge logic uses the Email column to prevent duplicate entries and update existing records with new conversation data.

  Business Use Cases:

  Service-Based Businesses - Automatically qualify and book high-value consultation calls without hiring additional sales staff

  Digital Agencies - Scale lead generation for AI automation services while maintaining personalized prospect experiences

  Consultants & Coaches - Convert website traffic into booked discovery calls with intelligent qualification and objection handling

  B2B SaaS Companies - Identify enterprise prospects and schedule product demos through natural conversation flow

  Revenue Potential:

  This system can generate $10,000-$50,000+ monthly by converting website visitors into qualified meetings. A single automated booking for AI automation services typically ranges from $3,000-$15,000 in project value, making the ROI calculation extremely attractive.

  Conversion Metrics:
  Typically converts 15-25% of engaged website visitors into qualified meetings
  Saves 20+ hours weekly of manual lead qualification and follow-up
  Eliminates scheduling back-and-forth and missed appointment opportunities

  Difficulty Level: Advanced
  Estimated Build Time: 3-4 hours  
  Monthly Operating Cost: ~$50-100 (AI API usage + integrations)

  Set Up Steps:

  Configure AI Services:
  Add OpenAI API credentials for conversational AI and Claude Sonnet for specialized tasks
  Set up appropriate rate limiting and cost controls for sustainable operation
  Customize the AI persona and conversation flow for your specific business

  Database Configuration:
  Create Google Sheets database with provided column structure  
  Connect Google Sheets OAuth credentials for seamless data management
  Configure the merge logic for duplicate prevention and record updates

  Calendar Integration Setup:
  Connect Google Calendar OAuth with proper permissions for event creation
  Configure calendar checking logic to prevent double-bookings
  Set up meeting link generation and attendee management

  Email Automation:
  Connect Gmail OAuth for sending confirmation emails
  Customize the branded email template with your company information
  Test email delivery and formatting across different clients

  Conversation Optimization:
  Customize AI prompts for your specific industry and service offerings
  Adjust qualification questions to identify your ideal customer profile  
  Set up objection handling responses that align with your sales methodology

  Advanced Configuration:
  Configure memory management for consistent multi-session conversations
  Set up proper error handling and fallback responses
  Implement conversation logging and analytics for optimization

  Testing & Launch:
  Test the complete flow with sample conversations and edge cases
  Verify calendar integration, email delivery, and data logging
  Deploy with monitoring to track performance and optimize conversion rates

  Advanced Customization:

  Multi-Language Support** - Adapt conversations for international prospects
  Industry-Specific Qualification** - Customize questioning for different market segments  
  Integration Expansion** - Connect to CRM systems, Slack notifications, or other business tools
  Advanced Analytics** - Track conversion funnels, conversation quality, and ROI metrics
  A/B Testing Framework** - Test different conversation approaches and optimize for higher conversion

  This system transforms your website from a passive information source into an active sales machine that works around the clock to generate qualified meetings and drive revenue growth.

nodes_used:
  ["@n8n/n8n-nodes-langchain.chatTrigger","n8n-nodes-base.googleCalendarTool","n8n-nodes-base.gmailTool","@n8n/n8n-nodes-langchain.memoryBufferWindow","n8n-nodes-base.googleDocsTool","n8n-nodes-base.googleSheetsTool","n8n-nodes-base.googleCalendarTool","@n8n/n8n-nodes-langchain.agentTool","@n8n/n8n-nodes-langchain.lmChatOpenRouter","n8n-nodes-base.code","n8n-nodes-base.googleSheetsTool","@n8n/n8n-nodes-langchain.memoryBufferWindow","@n8n/n8n-nodes-langchain.lmChatOpenRouter","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 9912 characters]

metadata_json:
  {"categories":["AI/ML","Sales","Marketing"],"complexity":"medium","use_cases":["qualify leads","book meetings","automate sales","engage website visitors","schedule appointments"],"estimated_setup_minutes":120,"required_services":["OpenRouter","Google Calendar","Google Docs","Spreadsheet API","Webhook"],"key_features":["seminar qualification and lead scoring","automated meeting scheduling","ai-powered sales assistant","lead-to-booking pipeline","conversation-based engagement"],"target_audience":["sales managers","marketing teams","sales representatives"]}


name: Automate Shopify abandoned cart WhatsApp reminders with product links via Rapiwa
author_name: SpaGreen Creative
author_username: spagreen
categories: []
created_at: 2025-09-28T05:00:04.423Z
updated_at: 2025-09-28T05:00:04.423Z
url: https://n8n.io/workflows/9031
scraped_at: 2026-05-02 08:04:51
metadata_generated_at: 2026-05-02 08:36:20
description:
  Automate Shopify Abandoned Cart WhatsApp Reminders with Product Links via Rapiwa

  Who’s it for
  This n8n workflow automatically identifies customers who have abandoned their carts on your Shopify store, cleans and verifies their WhatsApp numbers, and sends them personalized reminders via the Rapiwa API. It also logs each interaction—whether the number was valid or not—into a connected Google Sheet. Designed for marketers, small business owners, freelancers, and support teams, this solution makes it easy to run bulk WhatsApp campaigns using just a Google Sheet and your own WhatsApp number—no need for the official WhatsApp Business API. It’s a budget-friendly, scalable, and easy-to-manage alternative for anyone looking to automate WhatsApp follow-ups without the tech hassle.

  How it Works / What It Does
  Reads rows from a Google Sheet where the Status column is marked as "pending".
  Cleans each phone number (removes special characters, spaces, etc.).
  Verifies whether the number is a WhatsApp user using the Rapiwa API.
  If valid:
    Sends the message via Rapiwa.
    Updates Status = sent and Verification = verified.
  If invalid:
    Skips sending.
    Updates Status = not sent and Verification = unverified.
  Waits a configurable delay between sends to avoid rate limits.
  Processes rows in small batches and repeats on schedule (default every 5 minutes).

  How to Set Up
  Duplicate the sample Google Sheet format and populate it with contacts and messages.
  Fill required columns such as WhatsApp No, Name, Message, Image URL, and set Status = pending.
  Connect Google Sheets in n8n and grant the required OAuth scopes.
  Create an HTTP Bearer credential in n8n and paste your Rapiwa API key.
  Configure the workflow nodes (Trigger, Google Sheets, Limit, SplitInBatches, Code, HTTP Request, If, Update Google Sheets, Wait).
  Enable the workflow in n8n.

  Requirements
  Google Sheets API credentials (OAuth2) configured in n8n
  Google Sheet matching the template (WhatsApp No, Name, Message, Status, Verification)
  Rapiwa account and Bearer token
  n8n instance with HTTP Request and Google Sheets nodes enabled

  How to Customize the Workflow
  Add or increase delay between messages using the Wait node (e.g., 5–10 seconds).
  Change message content or include media by editing the HTTP Request body.
  Personalize messages using sheet columns (Name, product details, coupon codes).
  Add error handling nodes to retry failed sends or log errors.
  Adjust the Limit node to control how many rows are processed per run.

  Workflow Highlights
  Triggered every 5 minutes using the Schedule Trigger node.
  Filters sheet rows where Status = pending.
  Cleans numbers and verifies WhatsApp existence before sending.
  Sends messages via Rapiwa (unofficial API).
  Updates Google Sheet rows with Status = sent/not sent and Verification = verified/unverified.
  Uses a Wait node to prevent rapid-fire sending.

  Setup in n8n

  1. Connect Google Sheets
  Add a Google Sheets node.
  Authenticate with your Google account.
  Select the document and worksheet.
  Use a filter or query to fetch rows with Status = pending.

  2. Loop Through Rows
  Use SplitInBatches to process rows in small chunks (e.g., 5 rows per batch).
  Add a Code node to clean phone numbers (remove non-digits).
  Add a Wait node to pause between individual sends (recommended 5 seconds).

  3. Send Message via HTTP Node
  Configure an HTTP Request node to POST to:
    https://app.rapiwa.com/api/send-message
  Use Bearer Token authentication with your Rapiwa API key.
  Example JSON body:
  {
    "number": "{{ $json['WhatsApp No'] }}",
    "message": "{{ $json['Message'] }}"
  }
  After the send, update the row in Google Sheets with the result.

  Sample Google Sheet Structure
   A Google Sheet formatted like this ➤ sample

  | name | number | order id | item name | coupon | item link | total price | validity | status |
  | -------------- | ------------- | -------------- | --------------------------------- | ------ | -------------------------------------------------------------------------------- | ------------ | ---------- | -------- |
  | Abdul Mannan | 8801400620056 | 39248398811454 | S25 Ultra 5XXXXX Price Cell Phone | | Product Link | 11500.00 BDT | unverified | not sent |
  | Abdul Mannan | 8801400620055 | 39248402153790 | S25 Ultra 5XXXXX Price Cell Phone | | Product Link | 11500.00 BDT | verified | sent |
  | Abdul Mannan | 8801400620055 | 39248403431742 | S25 Ultra 5XXXXX Price Cell Phone | | Product Link | 11500.00 BDT | verified | sent |

  Tips
  Ensure numbers are in proper format (e.g., 8801XXXXXXXXX — no +, no spaces).
  Use public image URLs if sending media.
  Store Rapiwa API key securely in n8n credentials.
  Test with a small batch before scaling up.
  Mark processed rows as "sent" to avoid duplicates.
  Increase Wait time or reduce batch size if you encounter rate limiting.

  Important Notes
  Avoid Duplicates: The Google Sheet serves as a ledger. Sent messages won’t be repeated in the next cycle.
  Rate Limit Awareness: Use Wait nodes to space out requests and avoid getting banned.
  Add Delay for Safety: If needed, increase wait times or limit message batches.
  Extendable: You can add product images, links, or even abandon cart discounts dynamically.

  Future Enhancements (Ideas)
  Add delay between batches (e.g., 60 messages/hour)
  Auto-update Shopify checkout status (via GraphQL API)
  Use more advanced templates or media (via Rapiwa)
  Add error handling to log failed API calls
  Use Telegram/Slack node to notify when process ends
  Useful Links
  Dashboard:** https://app.rapiwa.com
  Official Website:** https://rapiwa.com
  Documentation:** https://docs.rapiwa.com

  Support
  WhatsApp Support: Chat Now  
  Discord: Join SpaGreen Community  
  Facebook Group: SpaGreen Support  
  Website: https://spagreen.net  
  Developer Portfolio: Codecanyon SpaGreen

nodes_used:
  ["n8n-nodes-base.httpRequest","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.if","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","n8n-nodes-base.wait","n8n-nodes-base.code","n8n-nodes-base.splitInBatches","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  H4sIAAAAAAAAE6WXS28bOQzHv8rAhz1Zhd6P3LJZFM2i2y6adHtY9EBJVDxIMuP1jJMWRb77cpygdpJxYzswYPihIX+iyD+pH5M6T44m78Tiz2Pz1/nJ8ss3c/r27WQ6ucYeJkc/JnXT9dAkPB3WpRhAoFFSOOuiVcJapZ30SgupHBqrozTeQRQmOp2Agw8YuQSjtNfZkt0er+dX0OPJAnN3hv1yftLSL9gjOegXS7ybThq4RvJ2vOzba1panc3aeV2+V8cRmtw2mKsTWPTVlxn03fF8Xn3C67rJuOiq27qfVX8v2rxMffW+bi676qaG6hPM61sYvMNFNzn69yv5aDMOH3/cR0ALE4pAZC56x7SSnHknLJPZchG1iCmHyU+yd+fnf5PX/5bY9YPV7/Ph18Y3bGWWRejwzazv5+s187ar+7ptyCWT3OqpkkQxhwVZ7AmdYn13b+kf+rZaqN/Iu+kDn1H08iEwETEzHUxkIGRiyheXdVQepVjznaUZ5uUVVueL+uICF1sZu4eF63WPODXnO3CKDU4bSixWe6ZkMkzLVJhPPrFiuEZVAFNwa877c6nOcDi9AwIptJ4KsVcgU5AGMQdmgqVAFu0YqBhZFOiyshaETmvAkyuEZp1oH5bX8RegiT4+JZR01Nq/RLjmCxzAgyI0h5HeVGFQomaBW2W5MvxRIp7MMF1WN3BV5+p2oASibFaU1eeubi4eUl8cENzg7A7km7EFZXIyFNEYhsMHnVjIjmqqYMpeyFjcZpL2dbr8Xn1oexR8e4auVg2LnkZWST9lyjw7/Ulqmx6bnmxNnqXqT1ZNkhQMF5TkDpjWKrFoPDKREFyhqkJlRlnD/qhO2deQplJSdJFZygamk8kMDJW+VEWpJD3mksejKvdHlf41Qc3Oh+jAM6+BkldoxYIvieUQpeOKSyH8OKo6DPVgUpup6lVxzKP1RFpIAbwPLFkJPIEv3sc16WnZileXJ1iGyobQXqz4jboJpXgqe8Oc0RQ25FRBUmSWjEEIzhGS3ax5aC6oKfZDa2xL9am97aq6qch0XWpqjr8Ngrq9L1207cUVns0Q++4xO0npbnJq18lJCsotAMMgAiWnBZJTCqZCpGLPJkWpXkb/3Nys4emoD93AqiFoYffZQVHeYBSaGZ5JdRMk5mXKTPEclNOQi+PrHXyBejvY7f2fTyJ6z3OLcda2l6sxyibtNBrNMJLs6ELeojaGBe2VJN9crJr5C013nczBmsQlUtnlUCh/cmSUvoZR9D0YHopVG4fwtl3QVFU9zDDdvG06rP6AHvbqa17vMhqsc5wLUC7LyAzS7KIT5wzS0OZC4SW7hGRwzfi+befVR0qK6pQGxm67OMyv6v60+R16GmSeJYPxu4xZat2/JOpIQWMhUB7TvIrDkMWpk6kkgjER07h87S9emuvXCC09qGMSQ2vlQ9ImyTxow5QKNLB6Gs+tHhfaA3RWh9e0rxQhFa8cCyZRslM6MgDrSOuicZFrg5vitoF6SPeSUr8qqsFQCVEdmUznb0jHILrCuObGlSw8FdIo6gHdS1jPD0Cl1ZD6+oZcFbjqcDrpsO9p0Fs9it8wLQcPHxfDQH00uRGDjZv751faQ/eEjDYpkjtJmSOoDmPghmWQULJ1DvIgBATRYBpMrQxTA6T3a6gHdrozDTvcPr+v1k0nw53s2+SIE/T6kQNbwDOTX2lfKzEe49oqH6NmHt3mxsztoJijhh+HZ8zy3r181M/T7W54ehT6X19mRk0/u0mO7WL8Ojxqb5xhPDR7X21GPW4/vNdnzq7HN+bp8SSxxfyuIRhzsDm07kU/XooH7eHu7n/wekwnYhIAAA==

metadata_json:
  {"categories":["E-commerce","Customer Engagement"],"complexity":"medium","use_cases":["reclaim lost sales","send personalized SMS","verify customer contact info"],"estimated_setup_minutes":20,"required_services":["Google Sheets","Shopify","Rapiwa","WhatsApp"],"key_features":["abandoned cart detection","contact verification automation","personalized messaging","interaction logging"],"target_audience":["marketers","e-commerce owners","support teams"]}


name: AI Resume Screening with GPT-4o & Error Handling | Google Sheets & Drive Flow
author_name: David Olusola
author_username: dae221
categories: []
created_at: 2025-09-28T13:41:49.656Z
updated_at: 2025-09-28T13:41:49.656Z
url: https://n8n.io/workflows/9048
scraped_at: 2026-05-02 08:04:49
metadata_generated_at: 2026-05-02 08:36:21
description:
  GPT-4o Resume Screener with Error Handling - Google Sheets & Drive Pipeline

  How it works

  Enterprise-grade resume screening automation built for production environments. This workflow combines intelligent AI analysis with comprehensive error handling to ensure reliable processing of candidate applications. Every potential failure point is monitored with automatic recovery and notification systems.

  Core workflow steps:
  Intelligent Email Processing - Monitors Gmail with attachment validation and file type detection
  Robust File Handling - Multi-format support with upload verification and extraction validation
  Quality-Controlled AI Analysis - GPT-4o evaluation with output validation and fallback mechanisms
  Verified Data Extraction - Contact and qualification extraction with data integrity checks
  Dual Logging System - Success tracking in main dashboard, error logging in separate audit trail

  Error Recovery Features:
  Upload failure detection with retry mechanisms
  Text extraction validation with quality thresholds
  AI processing timeout protection and fallback responses
  Data validation before final logging
  Comprehensive error notification and tracking system

  Set up steps

  Total setup time: 25-35 minutes

  Core Credentials Setup (8 minutes)
  Gmail OAuth2 with attachment permissions
  Google Drive API with folder creation rights
  Google Sheets API with read/write access
  OpenAI API key with GPT-4o model access

  Primary Configuration (12 minutes)
  Configure monitoring systems - Set up Gmail trigger with error detection
  Establish file processing pipeline - Create Drive folders for resumes and configure upload validation
  Deploy dual spreadsheet system - Set up main tracking sheet and error logging sheet
  Initialize AI processing - Configure GPT-4o with structured output parsing and timeout settings
  Customize job requirements - Update role specifications and scoring criteria

  Error Handling Setup (10 minutes)
  Configure error notifications - Set administrator email for failure alerts
  Set up error logging spreadsheet - Create audit trail for failed processing attempts
  Customize timeout settings - Adjust processing limits based on expected file sizes
  Test error pathways - Validate notification system with sample failures

  Advanced Customization (5 minutes)
  Modify validation thresholds for resume quality
  Adjust AI prompt for industry-specific requirements
  Configure custom error messages and escalation rules
  Set up automated retry logic for transient failures

  Production-Ready Features:
  Comprehensive logging for compliance and auditing
  Graceful degradation when services are temporarily unavailable
  Detailed error context for troubleshooting
  Scalable architecture for high-volume processing

  Template Features

  Enterprise Error Management
  Multi-layer validation at every processing stage
  Automatic error categorization and routing
  Administrative alerts with detailed context
  Separate error logging for audit compliance
  Timeout protection preventing workflow hangs

  Advanced File Processing
  Upload success verification before processing
  Text extraction quality validation
  Resume content quality thresholds
  Corrupted file detection and handling
  Format conversion error recovery

  Robust AI Integration
  GPT-4o processing with output validation
  Structured response parsing with error checking
  AI timeout protection and fallback responses
  Failed analysis logging with manual review triggers
  Retry logic for transient API failures

  Production Monitoring
  Real-time error notifications via email
  Comprehensive error logging dashboard
  Processing success/failure metrics
  Failed resume tracking for manual review
  Audit trail for compliance requirements

  Data Integrity Controls
  Pre-logging validation of all extracted data
  Missing information detection and flagging
  Contact information verification checks
  Score validation and boundary enforcement
  Duplicate detection and handling

  Designed for HR departments and recruiting agencies that need reliable, scalable resume processing with enterprise-level monitoring and error recovery capabilities.

nodes_used:
  ["n8n-nodes-base.stickyNote","n8n-nodes-base.gmailTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.googleDrive","n8n-nodes-base.if","n8n-nodes-base.switch","n8n-nodes-base.extractFromFile","n8n-nodes-base.httpRequest","n8n-nodes-base.googleDrive","n8n-nodes-base.googleDrive","n8n-nodes-base.extractFromFile","n8n-nodes-base.if","n8n-nodes-base.set","n8n-nodes-base.if","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.outputParserStructured","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.if","@n8n/n8n-nodes-langchain.informationExtractor","n8n-nodes-base.if","n8n-nodes-base.googleSheets","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.merge","n8n-nodes-base.gmail","n8n-nodes-base.googleSheets","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.googleDrive"]

workflow_json_compressed:
  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

metadata_json:
  {"categories":["AI/ML","Human Resources"],"complexity":"medium","use_cases":["automate resume screening","screen job applications","extract resume data","notify hiring managers"],"estimated_setup_minutes":15,"required_services":["GPT-4o","Gmail","Google Sheets","Google Drive"],"key_features":["AI-powered resume analysis","intelligent error handling","automatic recovery systems","notification workflows"],"target_audience":["HR professionals","recruiters","talent acquisition teams"]}


name: Aggregate Twitter/X Content to Telegram Channel with BrowserAct & Google Gemini
author_name: Madame AI Team | Kai
author_username: madame-ai
categories: []
created_at: 2025-09-28T18:31:43.616Z
updated_at: 2025-09-28T18:31:43.616Z
url: https://n8n.io/workflows/9055
scraped_at: 2026-05-02 08:04:50
metadata_generated_at: 2026-05-02 08:36:21
description:
  Automate social media content aggregation to a Telegram channel

  This n8n template automatically aggregates and analyzes key updates from your social media platforms Home Page, delivering them as curated posts to a Telegram channel.

  This workflow is perfect for digital marketers, brand managers, or data analysts and Busy people, seeking to monitor real-time trends and competitor activity without manual effort.

  How it works
  The workflow is triggered automatically on a schedule to aggregate the latest social media posts.
  A series of If and Wait nodes monitor the data processing job until the full data is ready.
  An AI Agent, powered by Google Gemini, refines the content by summarizing posts and removing duplicates.
  An If node checks for an image in the post to decide if a photo or a text message should be sent.
  Finally, the curated posts are sent to your Telegram channel as rich media messages.

  How to use
  Set up BrowserAct Template: In your BrowserAct account, set up “Twitter/X Content Aggregation” template.
   
  Set up Credentials: Add your credentials for BrowserAct In Run Node , Google Gemini in Agent Node, and Telegram in Send Node.

  Add Workflow ID: Change the workflow_id value inside the HTTP Request inside the Run Node, to match the one from your BrowserAct workflow.

  Activate Workflow: To enable the automated schedule, simply activate the workflow.

  Requirements
  BrowserAct** API account
  BrowserAct* *“Twitter/X Content Aggregation”** Template
  Gemini** account
  Telegram** credentials

  customizing this workflow
  This workflow provides a powerful foundation for social media monitoring. You could:
  Replace the Telegram node with an email or Slack node to send notifications to a different platform.
  Add more detailed prompts to the AI Agent for more specific analysis or summarization.
  customize BrowserAct Workflow to reach your desire.
  Need Help ?
  How to Find Your BrowseAct API Key & Workflow ID
  How to Connect n8n to Browseract
  How to Use & Customize BrowserAct Templates
  Workflow Guidance and Showcase

  Automate Your Social Media: Get All X/Twitter Updates Directly in Telegram!

nodes_used:
  ["n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.wait","n8n-nodes-base.wait","n8n-nodes-base.if","n8n-nodes-base.if","n8n-nodes-base.telegram","n8n-nodes-base.code","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.outputParserStructured","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.if","n8n-nodes-base.telegram","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 6352 characters]

metadata_json:
  {"categories":["Marketing","Communication","Data Processing"],"complexity":"medium","use_cases":["curate social media content","aggregate platform updates","monitor competitor activity","schedule automated posts"],"estimated_setup_minutes":15,"required_services":["Twitter/X API","Telegram Bot API","Google Gemini API","BrowserAct"],"key_features":["schedule-based automation","AI-powered content filtering","multi-platform aggregation","customizable curation logic"],"target_audience":["digital marketers","brand managers","data analysts"]}


name: 📁 Extract and Clean PDF Data from Google Drive
author_name: EoCi - Mr.Eo
author_username: eocimreo
categories: []
created_at: 2025-09-28T22:59:45.724Z
updated_at: 2025-09-28T22:59:45.724Z
url: https://n8n.io/workflows/9061
scraped_at: 2026-05-02 08:04:48
metadata_generated_at: 2026-05-02 08:36:22
description:
  🎯 What This Does
  Automatically finds PDF file in Google Drive and extracts information. Use it to pull out clean output. It then formats the output into a clean JSON object.

  🔄 How It Works
  1. Manual Trigger starts the process.
  2. 🔎Find File: "Google Drive" node finds the PDF file/files in a specified folder and downloads it/them.
  3. 📝Extract Raw Text: "Extract From File" node pulls the text content from the retrieval file/files.
  4. ✅Output Clean Data: "Code" node refines the extracted content and runs custom code for cleaning and final formatting.

  🚀Setup Guidelines
  Setup Requirements
  Google Drive Account**: A Google Drive with an empty folder or folder that contains PDF file/files that you want to process.
  API Keys**: Gemini, Google Drive.
  Set up steps
  Setup time: &lt; 5 minutes

  Add Credentials in n8n:
      Ensure your Google Drive OAuth2 and Google Gemini (PaLM) API credentials are created and connected. Go to Credentials &gt; New to add them if you haven't created yet.
          
  Configure the Search Node (Get PDF Files/File):
      Open the node and select your Google Drive credential.
      In the "Resource" field, choose File/Folder. In "Search Method" field, select "Search File/Folder Name", In "Search Query" type in *.pdf.
      Add on 2 filters, in "Folder" filter click on dropdown choose "From List" and connect to the created folder on your google drive. In "What to Search" filter, select file.
      Add on "Options" (optional): Click on "Add option", choose ("ID" and "Name")
  	
  Define Extraction Rules (Extract Files/File's Data):
      Select File Type: Open node and click on the dropdown below "Operation" section, choose "Extract From PDF". Next, in "Input Binary Field" section keep as default "data".
  	
  Clean & Format Data (Optional):
      Adjust the Get PDF Data Only node to keep only the fields you need and give them friendly names.
      Modify the Data Parser & Cleaner node if you need to perform custom transformation.
         
  Activate and Run:
      Save and Activate the workflow.
      Click "Execute Workflow" to run it manually and check the output.

  That’s it! Once configured, this workflow becomes your personal data assistant. Run it anytime you need to extract information quickly and accurately, saving you hours of manual work and ensuring your data is always ready to use.

nodes_used:
  ["n8n-nodes-base.noOp","n8n-nodes-base.manualTrigger","n8n-nodes-base.set","n8n-nodes-base.googleDrive","n8n-nodes-base.googleDrive","n8n-nodes-base.extractFromFile","n8n-nodes-base.code","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 6244 characters]

metadata_json:
  {"categories":["Data Processing","Automation"],"complexity":"simple","use_cases":["Extract data from PDFs","Clean PDF text output","Convert PDF to JSON"],"estimated_setup_minutes":5,"required_services":["Google Drive","File extraction service"],"key_features":["Automated PDF discovery","Text extraction","JSON formatting"],"target_audience":["Document analysts","Data processors"]}


name: Automate Digital Product Sales & Delivery with Stripe and Email
author_name: Lenouar
author_username: aureusr
categories: []
created_at: 2025-09-29T02:42:24.651Z
updated_at: 2025-09-29T02:42:24.651Z
url: https://n8n.io/workflows/9063
scraped_at: 2026-05-02 08:04:51
metadata_generated_at: 2026-05-02 08:36:21
description:
  💳 Automate Digital Product Sales & Delivery with Stripe and Email 

  Turn Your Automations into Revenue  
  Sell on n8n using Stripe (Fully Automated Delivery) 

  Stop manually sending files after payment or struggling with clunky checkout flows.  
  Instead of paying ~10% platform fees, you keep control of your sales, your brand, and your files — while giving buyers a smooth, professional experience.
    
  💡 Turn Stripe into your own Gumroad alternative — sell and deliver workflows instantly.

  This workflow gives you a ready-made storefront system: customers pay via Stripe, and your n8n template is delivered instantly by email with setup guidelines and video instructions.  

  Instant delivery** → No waiting, customers receive their purchase within seconds.  
  No manual work** → Payment verification, file delivery, and confirmation emails are all automated.  
  Professional experience** → Clean emails with branded HTML, Loom walkthroughs, and receipts.  
  Scalable sales** → Sell 1 or 100 templates without adding workload.  

  Who Benefits Most  
  ✅ Automation creators: Sell your n8n templates without coding a shop.  
  ✅ Freelancers & consultants: Package your workflows as digital products.  
  ✅ Agencies: Offer prebuilt automations to clients on autopilot.  
  ✅ SaaS builders: Add a self-serve template store for upsells.  

  “Stop giving 10% of every sale to marketplaces. Keep your profit.”  

  What It Does for You  
  Customer pays securely.  
  Logs the purchase for easy tracking.  
  Pulls the correct workflow.  
  Sends a personalized HTML email with:  
    Workflow JSON file attached.  
    Installation & setup guidelines.  
    Walkthrough video link.  
    Support contact details.  
  Sends you (the seller) an instant purchase notification.  

  Why This Template Instead of Building It Yourself  
  Save 25–40 hours** of coding, testing, and Stripe API integration.  
  Avoid errors in file delivery, duplicate checkouts, and failed notifications.  
  Get a production-ready digital delivery system you can brand and deploy in minutes.  
  Customize effortlessly → add more products, change branding, or connect CRM.  
  Proven flow: already tested (and using ourselves).  

  Requirements  
  n8n (self-hosted or cloud).  
  Active Stripe account with API key.  
  Access for file storage & logging.  
  An email account for delivery.  

  Bottom Line 💡  
  If you sell even one automation template, this workflow pays for itself.  
  Instead of manually emailing JSON files, every customer gets a smooth, Amazon-like experience:  
  they pay → they instantly receive → you scale without lifting a finger.  

  👉 By purchasing, you get:  
  Full workflow JSON file.  
  Email delivery with setup guidelines.  
  Contact Us** via services@quantumti.ae.  

nodes_used:
  ["n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.switch","n8n-nodes-base.stripeTrigger","n8n-nodes-base.removeDuplicates","n8n-nodes-base.httpRequest","n8n-nodes-base.stripe","n8n-nodes-base.set","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","n8n-nodes-base.executeWorkflow","n8n-nodes-base.set","n8n-nodes-base.googleDrive","n8n-nodes-base.googleDrive","n8n-nodes-base.microsoftOutlook","n8n-nodes-base.microsoftOutlook","n8n-nodes-base.microsoftOutlook","n8n-nodes-base.html","n8n-nodes-base.html","n8n-nodes-base.html"]

workflow_json_compressed:
  H4sIAAAAAAAAE7WXyW4bORCGX2WgsxhwKW6+DWzDSA6ZIA5mDoMcimTRFiKrNa1WFgR+96lWjKijtLbAuRiwmix+tfCv4tfJA3U4ufg6mS1WHS4yvSyTi4mE7LOpyoMJRqkABOioYFU1SlcSJpk92JxjSAGroeqdkylRJQ85wWQ66ehhOceOLlsqq1vq1svLhn+hjviArl3T43SyaAqtJhf/8un9qRqMTD5aIUkFAbWSQGe8AFuyjKQj22fLC3wgXn3bzfKHL3+8bjrqj/uy7H9chIXYWBUJV/RitVnztGTZrGbdrFnwgUJFq6fKvedfsWV7HbWrPgq5WXS06NjS5PGb0b/5y2aTepw+cSIEL4PyQhtLAiIkET1F4SopkFXxD2WUU58NqpSWU2H0r4GGmDQEY4QqgAIgKoE+Mq2yKjgDVKUZgH6adfle7WfcfP+RDxxMnQy7eLtI5oX+DqUVmegBhKXI0ZPKMQ9q4XJCS0bmAD9Er50tDyW4//yund3dUbuT4+jdVAEw2ydK903zYVPa2lKQCpPwWSkBxkiBoVTOZaRYC0aP/fEH3dlGmLINaLlGTZBGgEIrgmdrCE5iJVusDVtnrvb60dJD85Gu1sv5LPOlWfHCZnHdtk3La/tczxZrekt36zm2f6275brbcTZI+eTsQfJtGmLk9JeSBSasAhx5EYisKKlyOFTmOPkt+ZuXe9Hvu275lv5b06obpd78P8rsNJzCDIPiySwPxZDiK+GBhaFqEbQpIodYM8TskHBAfXmkcM4EBginAG/LQ3uDVnNoq/aFFY2SSEqTCI5QVoe+DBXtzf76WNEui/b6FBbzArbFCjIXzqvQ2XHKiZwIxhWBOhlMXLBRyy3Nn2/20tw1zd2cbu+JutXupXOnpdR/p+J2EkrRXkQsLFJ8m0RI3nJKkyvBoTHDlN68+wWqcNLdGEJlWQwWbkVFKg6VNI6VM7N8ssQHUhXkUKRubv/ZS0WfKa87+qdpP9R58+m8ijsxyWpwQ0rM2VLlIHrH+qZY5BKLKidGa6lZ3gy4Lfn1GSXXa/2ZFYe2eETPYuv0JoxaRJ4eRH+HCZIO0quB1r86kturdvZxp0Fy8zkJaqt7mCkqri/gsYXjE1BE4ERXDhXTupBSGiLt74d7mdjIeUxWkeehwgnNLYjBfBBInLOctQkkpUmUB0zXe5EeZrltVk3tuJjm3PHObSMROMVO7rRMGYpygbPosG+ZUrNkRJWFA0PBZRNAu2Mtc1ugmBVSIm74JkkBycveWWRNVKUkE3RE2Dr7+rf5yjdCTu1P88HzOislWSNNEIpnZO4fyMOO5M5FQSlTrK8YB/PB70us8Pr3O+tIG/ZQCceDlAAduIyzYiW32RcEG6UelPHN/pt13z3Mz/Wwv3Tw86B8SCqzKpSpkJDRZ+6HPB5HE6pwkkpMMkpbBlJws396/1VeHoDO4QVlfSwkBbemPlulsMhXfh95TiOrV7B62CnNs/OGn19MY7y8hg0uKPdbN6+Vq/7PA856Q/za61F2hsrNxym/Qgt9nlzIx/fv2TKPIGP7hjPA6L7r8fOG/WV0HxsePW/Y3kc38qA56uDVgX3T7brXx8yP+zOc0Mb3vRzHunweLG5EY+avj217tSc76lh6OA+jBz5TmHuCUbKjHn17TIztPYS22fr06B6tu0MBGfg1VKaD68xBmMfH/wHqk7m0DhIAAA==

metadata_json:
  {"categories":["E-Commerce","Automation"],"complexity":"medium","use_cases":["sell digital products","automate file delivery","process stripe payments","send confirmation emails"],"estimated_setup_minutes":45,"required_services":["Stripe","Microsoft Outlook","Google Drive"],"key_features":["automated checkout experience","automatic file delivery after payment","customized confirmation emails","payment webhook integration","centralized customer data"],"target_audience":["business owners","sales teams","freelancers"]}


name: WordPress Blog to Google Sheets Sync (Posts, Categories, Tags, Media)
author_name: Grigory Frolov
author_username: gregfrolov
categories: []
created_at: 2025-09-29T05:30:28.515Z
updated_at: 2025-09-29T05:30:28.515Z
url: https://n8n.io/workflows/9064
scraped_at: 2026-05-02 08:04:49
metadata_generated_at: 2026-05-02 08:36:22
description:
  WordPress Blog to Google Sheets Sync  
  Posts • Categories • Tags • Media

  🧩 Overview
  This n8n workflow automatically syncs your WordPress website content — including posts, categories, tags, and media — into Google Sheets.

  It helps automate content reporting, SEO analysis, and data backups.  
  The workflow can run on schedule or on demand via a webhook.

  💡 Use cases
  Maintain a live database of blog posts in Google Sheets.  
  Create dashboards in Google Data Studio or Looker Studio.  
  Track new articles for newsletters or social media scheduling.  
  Backup all WordPress content and media outside of your CMS.

  ⚙️ Prerequisites

  Before importing the workflow, ensure you have:

  A WordPress website with the REST API enabled (default in WP 4.7+).  
  Authentication: either Application Passwords or Basic Auth credentials.  
  A Google Sheet with the following tabs:
     Posts
     Categories
     Tags
     Media
  The following credentials configured in n8n:
     HTTP Basic Auth (for WordPress)
     Google Sheets OAuth2

  🚀 Setup instructions

  Import the workflow into your n8n instance.  
  Replace all example WordPress API URLs with your domain, for example: https://yourdomain.com/wp-json/wp/v2/ 
  Connect your HTTP Basic Auth credentials (WordPress username + Application Password).  
  Connect your Google Sheets OAuth2 account.  
  Update the spreadsheet ID in each Google Sheets node with your own.  
  Adjust the Schedule Trigger (e.g. run daily at 2:00 AM).  
  Run once manually to verify data sync.

  🧠 Workflow structure

  | Section | Description |
  |----------|--------------|
  | Schedule / Webhook Trigger | Starts the workflow manually or automatically |
  | Variables & Loop Vars | Initialize pagination for REST API requests |
  | Get Posts → Split Out → Update Posts | Fetch and update all WordPress posts |
  | Get Categories → Update Categories | Sync WordPress categories |
  | Get Tags → Update Tags | Sync WordPress tags |
  | Get Media → Split Out → Update Media | Sync media library (images, videos, etc.) |
  | IF Loops | Handles pagination logic until all items are retrieved |

  ⚠️ Notes & Limitations

  Works with standard WordPress REST API endpoints only.  
  Custom post types require editing endpoint URLs.  
  The per_page value defaults to 10; increase for faster syncs.  
  For large sites, consider increasing n8n memory or adding execution logs.  
  Avoid running the workflow too frequently to prevent API rate limits.

  🎥 Video Tutorial

  A step-by-step setup guide is available here:
  👉 https://www.youtube.com/watch?v=czSMWyD6f-0

  Please subscribe to my YouTube channel to support me: 👉 https://www.youtube.com/@gregfrolovpersonal

  👨‍💻 Author

  Created by: Grigory Frolov  
  SEO & Automation Specialist — helping businesses integrate WordPress, AI, and data tools with n8n.

  🧾 License

  This workflow is provided under the MIT License.  
  Feel free to use, modify, and share improvements with the community.

nodes_used:
  ["n8n-nodes-base.if","n8n-nodes-base.set","n8n-nodes-base.code","n8n-nodes-base.httpRequest","n8n-nodes-base.splitOut","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.httpRequest","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","n8n-nodes-base.httpRequest","n8n-nodes-base.splitOut","n8n-nodes-base.googleSheets","n8n-nodes-base.set","n8n-nodes-base.code","n8n-nodes-base.if","n8n-nodes-base.httpRequest","n8n-nodes-base.splitOut","n8n-nodes-base.googleSheets","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.webhook"]

workflow_json_compressed:
  [encoded data, 5416 characters]

metadata_json:
  {"categories":["Data Processing","Communication"],"complexity":"medium","use_cases":["sync blog posts to spreadsheets","track new posts automatically","maintain live content database","create SEO dashboards"],"estimated_setup_minutes":15,"required_services":["WordPress","Google Sheets"],"key_features":["automated content syncing","post status filtering","media file handling","scheduled execution"],"target_audience":["content managers","SEO specialists","data analysts"]}


name: End-to-end Ai blog research and writer with Gemini AI, Supabase and Nano-Banana
author_name: Muhammad Asadullah
author_username: asadtech
categories: []
created_at: 2025-09-29T17:15:05.051Z
updated_at: 2025-09-29T17:15:05.051Z
url: https://n8n.io/workflows/9079
scraped_at: 2026-05-02 08:04:50
metadata_generated_at: 2026-05-02 08:36:20
description:
  Blog Research and Writer n8n Workflow - Ai Blog Writer

  Fully automated blog creation system using n8n + AI Agents + Image Generation

  Example Blog

  Overview

  This workflow automates the entire blog creation pipeline—from topic research to final publication. Three specialized AI agents collaborate to produce publication-ready blog posts with custom images, all saved directly to your Supabase database.

  How It Works

  1. Research Agent (Topic Discovery)
  Triggers**: Runs on schedule (default: daily at 4 AM)
  Process**:
    Fetches existing blog titles from Supabase to avoid duplicates
    Uses Google Search + RSS feeds to identify trending topics in your niche
    Scrapes competitor content to find content gaps
    Generates detailed topic briefs with SEO keywords, search intent, and differentiation angles
  Output**: Comprehensive research document with SERP analysis and content strategy

  2. Writer Agent (Content Creation)
  Triggers**: Receives research from Agent 1
  Process**:
    Writes full blog article based on research brief
    Follows strict SEO and readability guidelines (no AI fluff, natural tone, actionable content)
    Structures content with proper HTML markup
    Includes key sections: hook, takeaways, frameworks, FAQs, CTAs
    Places image placeholders with mock URLs (https://db.com/image_1, etc.)
  Output**: Complete JSON object with title, slug, excerpt, tags, category, and full HTML content

  3. Image Prompt Writer (Visual Generation)
  Triggers**: Receives blog content from Agent 2
  Process**:
    Analyzes blog content to determine number and type of images needed
    Generates detailed 150-word prompts for each image (feature image + content images)
    Creates prompts optimized for Nano-Banana image model
    Names each image descriptively for SEO
  Output**: Structured prompts for 3-6 images per blog post

  4. Image Generation Pipeline
  Process**:
    Loops through each image prompt
    Generates images via Nano-Banana API (Wavespeed.ai)
    Downloads and converts images to PNG
    Uploads to Supabase storage bucket
    Generates permanent signed URLs
    Replaces mock URLs in HTML with real image URLs
  Output**: Blog HTML with all images embedded

  5. Publication
  Final blog post saved to Supabase blogs table as draft
  Ready for immediate publishing or review

  Key Features

  ✅ Duplicate Prevention: Checks existing blogs before researching new topics  
  ✅ SEO Optimized: Natural language, proper heading structure, keyword integration  
  ✅ Human-Like Writing: No robotic phrases, varied sentence structure, actionable advice  
  ✅ Custom Images: Generated specifically for each blog's content  
  ✅ Fully Structured: JSON output with all metadata (tags, category, excerpt, etc.)  
  ✅ Error Handling: Automatic retries with wait periods between agent calls  
  ✅ Tool Integration: Google Search, URL scraping, RSS feeds for research

  Setup Requirements

  1. API Keys Needed
  Google Gemini API**: For Gemini 2.5 Pro/Flash models (content generation/writing)
  Groq API (optional)**: For Kimi-K2-Instruct model (research/writing)
  Serper.dev API**: For Google Search (2,500 free searches/month)
  Wavespeed.ai API**: For Nano-Banana image generation
  Supabase Account**: For database and image storage

  2. Supabase Setup
  Create blogs table with fields:
    title, slug, excerpt, category, tags, featured_image, status, featured, content
  Create storage bucket for blog images
  Configure bucket as public or use signed URLs

  3. Workflow Configuration

  Update these placeholders:

  RSS Feed URLs**: Replace [your website's rss.xml] with your site's RSS feed
  Storage URLs**: Update Supabase storage paths in "Upload object" and "Generate presigned URL" nodes
  API Keys**: Add your credentials to all HTTP Request nodes
  Niche/Brand**: Customize Research Agent system prompt with your industry keywords
  Writing Style**: Adjust Writer Agent prompt for your brand voice

  Customization Options

  Change Image Provider
  Replace the "nano banana" node with:
  Gemini Imagen 3/4
  DALL-E 3
  Midjourney API
  Any Wavespeed.ai model

  Adjust Schedule
  Modify "Schedule Trigger" to run:
  Multiple times daily
  Specific days of week
  On-demand via webhook

  Alternative Research Tools
  Replace Serper.dev with:
  Perplexity API (included as alternative node)
  Custom web scraping
  Different search providers

  Output Format

  {
    "title": "Your SEO-Optimized Title",
    "slug": "your-seo-optimized-title",
    "excerpt": "Compelling 2-3 sentence summary with key benefits.",
    "category": "Your Category",
    "tags": ["tag1", "tag2", "tag3", "tag4"],
    "author_name": "Your Team Name",
    "featured": false,
    "status": "draft",
    "content": "...complete HTML with embedded images..."
  }

  Performance Notes

  Average runtime**: 15-25 minutes per blog post
  Cost per post**: ~$0.10-0.30 (depending on API usage)
  Image generation**: 10-15 seconds per image with Nano-Banana
  Retry logic**: Automatically handles API timeouts with 5-15 minute wait periods

  Best Practices

  Review Before Publishing: Workflow saves as "draft" status for human review
  Monitor API Limits: Track Serper.dev searches and image generation quotas
  Test Custom Prompts: Adjust Research/Writer prompts to match your brand
  Image Quality: Review generated images; regenerate if needed
  SEO Validation: Check slugs and meta descriptions before going live

  Workflow Architecture

  3 Main Phases:
  Research → Writer → Image Prompts (Sequential AI Agent chain)
  Image Generation → Upload → URL Replacement (Loop-based processing)
  Final Assembly → Database Insert (Single save operation)

  Error Handling:
  Wait nodes between agents prevent rate limiting
  Retry logic on agent failures (max 2 retries)
  Conditional checks ensure content quality before proceeding

  Result: Hands-free blog publishing that maintains quality while saving 3-5 hours per post.

nodes_used:
  ["n8n-nodes-base.scheduleTrigger","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.outputParserStructured","@n8n/n8n-nodes-langchain.lmChatGroq","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.rssFeedReadTool","n8n-nodes-base.supabase","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatGroq","n8n-nodes-base.rssFeedReadTool","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.if","n8n-nodes-base.wait","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","@n8n/n8n-nodes-langchain.informationExtractor","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.splitInBatches","n8n-nodes-base.wait","n8n-nodes-base.code","@n8n/n8n-nodes-langchain.googleGemini","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.set","n8n-nodes-base.if","n8n-nodes-base.wait","n8n-nodes-base.rssFeedReadTool","n8n-nodes-base.supabase","n8n-nodes-base.code","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequestTool","n8n-nodes-base.httpRequestTool","n8n-nodes-base.stickyNote","n8n-nodes-base.perplexityTool","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.editImage","@n8n/n8n-nodes-langchain.googleGemini","n8n-nodes-base.httpRequest","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.code","n8n-nodes-base.set","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  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

metadata_json:
  {"categories":["AI/ML","Content Management","Productivity"],"complexity":"medium","use_cases":["automate blog creation","generate blog posts","research topics for writing","create blog content with images","store content in database"],"estimated_setup_minutes":15,"required_services":["Google Gemini","Supabase","Groq","RSS feeds"],"key_features":["multi-agent AI collaboration","end-to-end blog automation","AI-generated images","automated topic research","database storage integration"],"target_audience":["content creators","writers","blog managers"]}


name: Automated Viral Content Engine for LinkedIn & X with AI Generation & Publishing
author_name: Diptamoy Barman
author_username: diptamoy-barman
categories: []
created_at: 2025-09-30T09:47:43.617Z
updated_at: 2025-09-30T09:47:43.617Z
url: https://n8n.io/workflows/9100
scraped_at: 2026-05-02 08:04:49
metadata_generated_at: 2026-05-02 08:36:20
description:
  Social Media Spark (SMS) — Automated Viral Content Engine

  Automate your entire content workflow: discover viral ideas, generate posts in your tone, repurpose for X, and auto-publish — reducing 90% of manual effort.

  🚀 What it Does
  Scrapes competitors or niche profiles on LinkedIn to find high-performing posts.
  Classifies and saves evergreen content ideas for later use.
  Generates fresh posts in your own voice with matching images.
  Repurposes content for X (Twitter) in a platform-optimized style.
  Automatically publishes content to LinkedIn and X on your schedule.
  Allows on-demand commands via Telegram for research or instant content generation.

  🧩 Why Use It
  Save time:** no more manual scraping, idea collection, or formatting.
  Stay consistent:** maintain a daily content pipeline.
  Multi-platform leverage:** create once, adapt for LinkedIn and X.
  Creative control:** mix automation with optional human review.
  Scalable:** extend to more platforms, analytics, and workflows as you grow.

  🔧 Prerequisites & Setup
  Before importing or activating the workflow, prepare these:

  AI Provider (OpenAI / Gemini / OpenRouter)**  
    For classifying posts, generating new content, repurposing for X.

  Google Sheets**  
    Central database for competitors, ideas, generated posts, and posting status.

  Google Drive**  
    Stores generated images.

  Apify & Browseract**  
    Scrapes LinkedIn profiles, posts, and performs research tasks.

  LinkedIn API**  
    Needed for automated LinkedIn publishing.

  X (Twitter) API**  
    Requires OAuth 1.0a for image uploads and OAuth 2.0 for text posting.

  Telegram Bot**  
    Enables on-demand commands and notifications.  
    Set your Telegram User ID in the trigger node.

  &gt; 🔎 In each sub-workflow, look for nodes marked “Configure Me!” to replace example prompts, search keywords, sheet IDs, etc.

  ⚙️ How It Works (Simplified Flow)
  Scrape & Classify: Collect high-engagement posts → keep evergreen ones.  
  Generate Content: Rewrite ideas into new posts in your voice → create images.  
  Repurpose for X: Adapt LinkedIn posts for short-form, high-impact tweets.  
  Auto-Publish: Post daily on LinkedIn and X.  
  Control via Telegram: Manually trigger scraping, research, or post generation.

  💡 Best Practices & Tips
  Keep all API keys private — never share them in public repos or screenshots.
  Adjust cron schedules (e.g., scraping on weekends, posting on weekdays) to fit your content rhythm.
  Add Human-in-the-Loop review steps for brand-sensitive content.
  Extend to other platforms (Instagram, TikTok, YouTube Shorts) as needed.
  Experiment with prompt variations for different tones or creative styles.
  Add analytics logging (likes, comments, clicks) to measure content performance.

  🙋‍♂️ Who is This For
  Solo creators & founders** who want to post consistently but don’t have time for daily ideation.
  Small marketing teams** that need to keep up with trends without spending hours on research.
  Consultants & thought leaders** who want to amplify their personal brand on LinkedIn and X.
  Startups & bootstrapped businesses** that need a lean but reliable content engine.
  Content strategists** who want a data-driven, repeatable pipeline for finding and using what works.

  Or anyone who wants to boost social presence by 300%

  💡 Why SMS Stands Out
  Authentic voice:** Uses your own tone and style (defined in prompts and examples), so posts feel personal — not generic AI fluff.
  Data-driven:** Pulls from real, viral posts in your niche to inspire fresh content.
  Quality over quantity:** Focuses only on proven viral ideas instead of churning random posts.
  Consistent growth:** Keeps your posting regular, so you stay visible and relevant.
  Efficient workflow:** Minimizes manual work while letting you step in when needed (e.g., for approvals or special campaigns).

  &gt; ⚡ SMS combines real market data with your unique voice — so you post smarter, not just more often.

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.set","n8n-nodes-base.googleSheets","n8n-nodes-base.filter","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.googleSheets","n8n-nodes-base.aggregate","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.textClassifier","@n8n/n8n-nodes-langchain.lmChatOpenRouter","n8n-nodes-base.googleSheets","n8n-nodes-base.removeDuplicates","n8n-nodes-base.executeWorkflowTrigger","n8n-nodes-base.aggregate","n8n-nodes-base.scheduleTrigger","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.filter","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.convertToFile","n8n-nodes-base.aggregate","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.telegram","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.lmChatOpenRouter","n8n-nodes-base.set","n8n-nodes-base.googleSheets","n8n-nodes-base.if","n8n-nodes-base.if","n8n-nodes-base.scheduleTrigger","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.splitInBatches","@n8n/n8n-nodes-langchain.toolWorkflow","n8n-nodes-base.googleDrive","n8n-nodes-base.set","n8n-nodes-base.extractFromFile","n8n-nodes-base.convertToFile","n8n-nodes-base.googleSheets","n8n-nodes-base.httpRequest","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.googleSheets","n8n-nodes-base.googleDrive","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.httpRequest","n8n-nodes-base.convertToFile","n8n-nodes-base.extractFromFile","n8n-nodes-base.set","n8n-nodes-base.googleDrive","@n8n/n8n-nodes-langchain.toolWorkflow","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.telegram","@n8n/n8n-nodes-langchain.lmChatOpenRouter","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.telegram","n8n-nodes-base.if","n8n-nodes-base.telegram","n8n-nodes-base.googleSheets","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.outputParserStructured","@n8n/n8n-nodes-langchain.lmChatOpenRouter","n8n-nodes-base.set","n8n-nodes-base.splitInBatches","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.aggregate","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.if","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.chainLlm","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.outputParserStructured","@n8n/n8n-nodes-langchain.lmChatOpenRouter","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.stickyNote","n8n-nodes-base.telegram","n8n-nodes-base.if","n8n-nodes-base.stickyNote","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.linkedIn","n8n-nodes-base.googleDrive","n8n-nodes-base.googleSheets","n8n-nodes-base.telegram","n8n-nodes-base.googleSheets","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.googleSheets","n8n-nodes-base.twitter","n8n-nodes-base.googleSheets","n8n-nodes-base.googleDrive","n8n-nodes-base.if","n8n-nodes-base.twitter","n8n-nodes-base.googleSheets","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.wait","n8n-nodes-base.switch","n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.set","n8n-nodes-base.telegramTrigger","n8n-nodes-base.if","n8n-nodes-base.telegram","n8n-nodes-base.telegram","n8n-nodes-base.executeWorkflow","n8n-nodes-base.switch","n8n-nodes-base.telegram","n8n-nodes-base.executeWorkflow","n8n-nodes-base.executeWorkflow","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.telegram","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.telegram","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 40712 characters]

metadata_json:
  {"categories":["Social Media","AI/ML"],"complexity":"medium","use_cases":["discover viral content ideas","generate AI posts","repurpose for X","auto-publish content"],"estimated_setup_minutes":30,"required_services":["LinkedIn","Google Gemini","OpenRouter","Telegram","Google Drive"],"key_features":["competitor content scraping","evergreen content library","AI post generation","platform-specific optimization","scheduled publishing"],"target_audience":["social media managers","content creators","marketing teams"]}


name: AI-Powered Lead Research & Qualification using Relevance AI
author_name: Diptamoy Barman
author_username: diptamoy-barman
categories: []
created_at: 2025-09-30T10:03:36.370Z
updated_at: 2025-09-30T10:03:36.370Z
url: https://n8n.io/workflows/9101
scraped_at: 2026-05-02 08:04:49
metadata_generated_at: 2026-05-02 08:36:21
description:
  Lead Qualification & Smart Outreach — Automated Scoring System

  Automate your lead intake, scoring, and outreach pipeline.  
  This workflow collects leads from forms, enriches and scores them using Relevance AI, routes them by quality, and triggers the right follow-up — all without manual busywork.

  🚀 What it Does
  Collects leads from your forms in real-time.
  Enriches each lead (individual + company) for better context.
  Scores leads automatically using Relevance AI templates.
  Routes leads into HOT / WARM / COLD tiers for prioritization.
  Drafts or sends personalized outreach emails for each tier.
  Logs all leads and outcomes into your CRM or Google Sheets.
  Notifies your team (e.g., via Slack) when a hot lead arrives.

  🧩 Why Use It
  Save time:** stop manually sorting through raw leads.
  Focus on the best opportunities:** route only top leads to your sales team.
  Personalized outreach:** automated but tailored by lead quality.
  Scalable & repeatable:** works for startups, agencies, or larger teams.
  Adaptable:** swap CRMs, forms, or email providers easily.

  🔧 Prerequisites & Setup
  Before importing or running the workflow, set up these connections:

  Relevance AI**  
    Clone the tools (Resources provided in the workflow) for lead scoring and company scoring, and copy your API key into the HTTP Request nodes.

  Form Intake**  
    Use n8n’s built-in form trigger or connect Typeform, Tally, HubSpot Forms, or any webhook-based intake.

  CRM or Database**  
    Start with Google Sheets (included in the sample workflow) or connect HubSpot, Salesforce, Pipedrive, Zoho, Airtable, Notion, or any SQL/NoSQL DB.

  Email Provider**  
    Use Gmail (included), or swap in Outlook, HubSpot Email, SendGrid, Mailgun, etc.

  Team Notifications (Optional)**  
    Configure Slack (or other tools) for instant alerts on hot leads.
  ⚙️ How It Works (Simplified Flow)
  Lead Intake: Collects leads from your form or CRM.
  Lead Enrichment: Uses Relevance AI to score:
     Individual Fit: role, expertise, influence.
     Company Fit: size, industry, market relevance.
  Scoring & Insights: Combines both into a final lead score with labels and notes.
  Routing: Splits leads into HOT / WARM / COLD tiers.
  Outreach:  
     HOT → drafts a review-ready email for your team.  
     WARM / COLD → auto-sends appropriate follow-up emails.
  Logging & Alerts: Saves structured data to your CRM or sheet and notifies your team of hot leads.

  🙋‍♂️ Who is This For
  Startups & SaaS teams** that need to prioritize a flood of inbound leads.
  Agencies & consultancies** qualifying prospects from ads or webinars.
  Small sales teams** that want to spend time only on the best leads.
  Freelancers or solopreneurs** who want a lightweight but effective qualification process.
  Automation newbies* who want a production-ready system to *sell for 1k-3k**

  💡 Why It Stands Out
  Real intelligence:** uses data-driven Relevance AI scoring rather than static rules.
  Action-oriented:** routes and triggers the right next step immediately.
  Personalized yet scalable:** adapts outreach to each lead tier.
  Flexible integrations:** works with most popular CRMs, forms, and email tools.

  🔥 Best Practices & Tips
  Adjust the weighting of individual vs. company scores in your Relevance AI template (default: 40% vs 60%).
  Tune Router thresholds (e.g., HOT ≥ 80, WARM 60-79, COLD &lt; 60) to match your sales goals.
  Add a human approval step for high-value deals.
  Expand with enrichment APIs (e.g., Clearbit, Apollo) for richer lead data.
  Keep all API keys private and out of screenshots or repos.

  🎉 With this workflow, 
  Sales teams can focus on building relationships — while the system qualifies and organizes leads automatically 
  OR 
  You can sell to sales teams for ~3k

  Note:
  Demo data is pinned in some nodes to help you understand what the data looks like.
  Make sure to unpin those nodes when using for production.

nodes_used:
  ["n8n-nodes-base.formTrigger","n8n-nodes-base.switch","n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.code","@n8n/n8n-nodes-langchain.lmChatOpenRouter","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","@n8n/n8n-nodes-langchain.lmChatOpenRouter","@n8n/n8n-nodes-langchain.outputParserStructured","@n8n/n8n-nodes-langchain.chainLlm","@n8n/n8n-nodes-langchain.chainLlm","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.gmail","n8n-nodes-base.googleSheets","n8n-nodes-base.slack","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.merge","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.gmail","n8n-nodes-base.stickyNote","n8n-nodes-base.merge","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 20144 characters]

metadata_json:
  {"categories":["AI/ML","Marketing"],"complexity":"medium","use_cases":["automate lead qualification","score inbound leads","personalize outreach","route high-quality leads"],"estimated_setup_minutes":15,"required_services":["Relevance AI","OpenRouter","Google Sheets","Form Services"],"key_features":["Lead enrichment","AI-powered scoring","Conditional routing","Automated outreach"],"target_audience":["Sales Teams","Marketing Managers","Entrepreneurs"]}


name: Create Workflow Inventory Dashboard with n8n API and Google Sheets
author_name: PollupAI
author_username: Pollup
categories: []
created_at: 2025-09-30T13:02:41.894Z
updated_at: 2025-09-30T13:02:41.894Z
url: https://n8n.io/workflows/9113
scraped_at: 2026-05-02 08:04:50
metadata_generated_at: 2026-05-02 08:36:20
description:
  This workflow provides a powerful way to automatically document and maintain an inventory of all your n8n workflows in a Google Sheet. By running on a schedule or manually, it fetches details about every workflow on your instance, processes the key information, and then populates a spreadsheet. This creates a centralized, up-to-date dashboard for auditing, monitoring, and understanding your automation landscape.

  Who is this for?

  This workflow is ideal for n8n administrators, developers, and teams who manage multiple workflows. If you need a clear and simple way to track all your automations, their components, and their statuses without manually checking each one, this template is for you. It's particularly useful for maintaining technical documentation, auditing node usage across your instance, and quickly finding specific workflows.

  What problem is this workflow solving?

  As the number of workflows on an n8n instance grows, it becomes challenging to keep track of them all. Questions like "Which workflows use the HubSpot node?", "Which workflows are inactive?", or "When was this workflow last updated?" become difficult to answer. This workflow solves that problem by creating a single source of truth in a Google Sheet. It automates the process of cataloging your workflows, saving you time and ensuring your documentation is always current.

  What this workflow does

  Triggers Execution: The workflow can be initiated either on a set schedule (via the Scheduled Start node) or manually (via the Manual Start node).
  Fetches All Workflows: The Get All Workflows node connects to your n8n instance via the API to retrieve a complete list of your workflows and their associated data.
  Processes Workflows Individually: The Loop Through Each Workflow node iterates through each retrieved workflow one by one so they can be processed individually.
  Extracts Key Information: The Extract Workflow Details node uses custom code to process the data for each workflow, extracting essential details like its name, ID, tags, and a unique list of all node types it contains.
  Updates Google Sheet: The Add/Update Row in Google Sheet node then takes this information and appends or updates a row in your designated spreadsheet, using the workflow ID as a unique key to prevent duplicates.
  Waits and Repeats: The Pause to Avoid Rate Limits node adds a short delay to prevent issues with API limits before the loop continues to the next workflow.

  Setup

  Configure Get All Workflows Node:
      Select the Get All Workflows node.
      In the 'Credentials' section, provide your n8n API credentials to allow the workflow to access your instance's data.

  Prepare Your Google Sheet:
      Create a new Google Sheet.
      Set up the following headers in the first row: id, title, link, tags, nodes, CreatedAt, UpdatedAt, Active, Archived.

  Configure Add/Update Row in Google Sheet Node:
      Select the Add/Update Row in Google Sheet node.
      Authenticate your Google account in the 'Credentials' section.
      In the 'Document ID' field, enter the ID of your Google Sheet. You can find this in the sheet's URL (e.g., .../spreadsheets/d/THIS_IS_THE_ID/edit).
      Select your sheet from the 'Sheet Name' dropdown.
      Under 'Columns', ensure the id field is set as the 'Matching Columns' value. This is crucial for updating existing rows correctly.

  Activate the Workflow:
      Choose your preferred trigger. You can enable the Schedule Trigger to run the sync automatically at regular intervals.
      Save and activate the workflow.

  How to customize this workflow to your needs

  Track Different Data**: You can modify the Extract Workflow Details node to extract other pieces of information from the workflow JSON. For example, you could parse the settings object or count the total number of nodes. Remember to add a corresponding column in your Google Sheet and map it in the Google Sheets node.
  Add Notifications**: Add a notification node (like Slack, Discord, or Email) after the Loop Through Each Workflow node (in the second output) to be alerted when the sync is complete or if an error occurs.
  Filter Workflows**: You can add an IF node after the Loop Through Each Workflow node to filter which workflows get added to the sheet. For instance, you could choose to only log active workflows ({{ $('Loop Through Each Workflow').item.json.active }} is true) or workflows containing a specific tag.
  Adjust Wait Time**: The Pause to Avoid Rate Limits node is set to pause between each entry. You can adjust this time or remove it entirely if you have a small number of workflows and are not concerned about hitting API rate limits.

nodes_used:
  ["n8n-nodes-base.scheduleTrigger","n8n-nodes-base.manualTrigger","n8n-nodes-base.n8n","n8n-nodes-base.splitInBatches","n8n-nodes-base.code","n8n-nodes-base.googleSheets","n8n-nodes-base.wait","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  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

metadata_json:
  {"categories":["Data Processing","DevOps"],"complexity":"medium","use_cases":["audit automation ecosystem","inventory n8n workflows","track workflow metadata","maintain compliance records","centralize workflow documentation"],"estimated_setup_minutes":25,"required_services":["Google Sheets","n8n Self-Hosted API"],"key_features":["scheduled execution","metadata extraction","centralized logging","batch processing workflows"],"target_audience":["n8n administrators","developers","ops engineers"]}


name: Narrative chaining: AI-generated video scene extensions with Veo3
author_name: Deniz
author_username: denizdinc
categories: []
created_at: 2025-10-01T08:23:03.444Z
updated_at: 2025-10-01T08:23:03.444Z
url: https://n8n.io/workflows/9145
scraped_at: 2026-05-02 08:04:50
metadata_generated_at: 2026-05-02 08:36:20
description:
  Structured Setup Guide: Narrative Chaining with N8N + AI

  1. Input Setup
  Use a Google Sheet as the control panel.
  Fields required:
  Video URL (starting clip, ends with .mp4)
  Number of clips to extend (e.g., 2 extra scenes)
  Aspect ratio (horizontal, vertical, etc.)
  Model (V3 or V3 Fast)
  Narrative theme (guidance for story flow)
  Special requests (scene-by-scene instructions)
  Status column (e.g., "For Production", "Done")
  👉 Example scene inputs:
  Scene 1: Naruto walks out with ramen is his hands
  Scene 2: Joker joins with chips
  2. Workflow in N8N
  Step 1: Fetch Input
  Get rows in sheet → fetch the next row where status = For Production.
  Clear sheet 2 → reset the sheet that stores generated scenes.
  Edit fields (Initial Values):
  Video URL = starting clip
  Step = 1
  Complete = total number of scenes requested
  Step 2: Looping Logic
  Looper Node:
  Runs until step = complete.
  Carries over current video URL → feeds into next generation.
  Step 3: Analyze Current Clip
  Send video URL to File.AI Video Understanding API.
  Request: Describe last frame + audio + scene details.
  Output: Detailed video analysis text.
  Step 4: Generate Prompt
  AI Agent creates the next scene prompt using:
  Context from video analysis
  Narrative theme (from sheet)
  Scene instructions (from sheet)
  Aspect ratio, model preference, etc.
  👉 Output = video prompt for next scene
  Step 5: Extract Last Frame
  Call File.AI Extract Frame API.
  Parameters:
  Input video URL
  Frame = last
  Output = JPG image (last frame of current clip).
  Step 6: Generate New Scene
  Use Key.AI (V3 Fast) for economical video generation.
  POST request includes:
  Prompt (from AI Agent)
  Aspect ratio + model
  Image URL (last frame) → ensures seamless chaining
  Wait for generation to complete.
  👉 Output = New clip URL (MP4)
  Step 7: Store & Increment
  Log new clip URL into Sheet 2.
  Increment Step by +1.
  Replace Video URL with the new clip.
  Loop back if Step &lt; Complete.
  3. Output Section
  Once all clips are generated:
  Gather all scene URLs from Sheet 2.
  Use File.AI Merge Videos API to stitch clips together:
  Original clip + all generated scenes.
  Save final MP4 output.
  Update Sheet 1 row with:
  Final video URL
  Status = Done
  4. Costs
  Video analysis: ~$0.015 per 8s clip
  Frame extraction: ~0.002¢ (almost free)
  Clip merging: negligible (via ffmpeg backend)
  V3 Fast video generation (Key.AI): ~$0.30 per 8s clip

nodes_used:
  ["@n8n/n8n-nodes-langchain.toolThink","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.set","n8n-nodes-base.if","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.aggregate","n8n-nodes-base.googleSheets","n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.googleSheets","n8n-nodes-base.set","n8n-nodes-base.if","n8n-nodes-base.wait","n8n-nodes-base.wait","n8n-nodes-base.wait","n8n-nodes-base.googleSheets","n8n-nodes-base.wait","n8n-nodes-base.googleSheets","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.stickyNote","n8n-nodes-base.manualTrigger","n8n-nodes-base.googleSheets","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.agent"]

workflow_json_compressed:
  [encoded data, 9260 characters]

metadata_json:
  {"categories":["AI/ML"],"complexity":"medium","use_cases":["Automate video scene generation","Chain narrative-based AI content","Extend video clips automatically"],"estimated_setup_minutes":30,"required_services":["Veo3","Google Sheets"],"key_features":["Narrative chaining","Custom aspect ratio support","Scene-by-scene instructions","Automated clip extension"],"target_audience":["video creators","content strategists"]}


name: Automate AI video ad generation with Google Veo 3, Gemini, and Airtable
author_name: Intuz
author_username: intuz
categories: []
created_at: 2025-10-01T12:10:15.366Z
updated_at: 2025-10-01T12:10:15.366Z
url: https://n8n.io/workflows/9152
scraped_at: 2026-05-02 08:04:50
metadata_generated_at: 2026-05-02 08:36:19
description:
  This n8n template from Intuz provides a complete and automated solution for transforming a static product image and a creative idea into a dynamic, AI-generated video ad. 

  Using Google's state-of-the-art Veo 3 model, this workflow manages the entire creative process from concept to a final, downloadable video file.

  Who's this workflow for?
  E-commerce Brands & Marketers
  Advertising Agencies
  Social Media Content Creators
  Product Managers

  How it works
  1. Submit a Creative Brief: The workflow starts when a user submits a creative idea via a simple web form (e.g., "A Pepsi can exploding into a vibrant disco party").

  2. Upload a Product Image: The user is then prompted to upload a corresponding image (e.g., a high-quality photo of the Pepsi can).

  3. Log the Project in Airtable: The idea and the uploaded image are saved to an Airtable base, which acts as the central tracking system for all video generation projects.

  4. AI Creative Analysis: Google Gemini analyzes both the user's text prompt and the uploaded image. It acts as an "AI Creative Director," generating a detailed video brief that reinterprets the static image according to the user's creative vision.

  5. Generate Video with Veo 3: The detailed creative brief is sent to Google's Veo 3 AI video generation model. The workflow initiates a long-running task to create the video.

  6. Retrieve the Final Video: After a brief waiting period, the workflow polls the Veo 3 API to retrieve the finished video, converts it into a binary file, and makes it available for download directly from the n8n execution log.

  Key Requirements to Use This Template
  n8n Instance & Required Nodes:
  An active n8n account (Cloud or self-hosted).
  This workflow uses the official n8n LangChain integration (@n8n/n8n-nodes-langchain). 
  If you are using a self-hosted version of n8n, please ensure this package is installed.

  Google Cloud Account:
  A Google Cloud Project with the Vertex AI API enabled.
  You must have access to both the Gemini and Veo 3 models within your project.
  You will need a Gemini API Key and a Google OAuth2 Credential configured for the Vertex AI scope.

  Airtable Account:
  An Airtable base with a table set up to track the video projects. It should have columns for Image Prompt, Image (Attachment), Video (Attachment/URL), and Status.

  Setup Instructions
  1. Airtable Configuration (Crucial):
  In the Create a record, Get a record, and Update record nodes, connect your Airtable credentials and update the Base ID and Table ID to match your setup.
  In the Uploading Image in Airtable (HTTP Request) node, you must edit the URL and the "Authorization" header to include your Base ID, Table ID, and Personal Access Token.

  2. Google AI Configuration (Gemini & Veo):
  In the Analyze image (Google Gemini) node, select your Gemini API credentials.
  In both the Generate Video Veo 3 and Get the the Video (HTTP Request) nodes: 

  You must replace [Project ID] and [Location] in the URLs with your own Google Cloud Project ID and region (e.g., us-central1).
  Select your Google OAuth2 credentials for authentication.

  3. Customize Video Parameters (Optional):
  In the Parse Request (Code) node, you can modify the JavaScript code to change video generation settings like aspectRatio, durationSeconds, and resolution.

  4. Execute the Workflow:
  Activate the workflow. Open the Form URL from the Prompt your Idea node to start the process.

  Sample Videos

  Connect with us
  Website: https://www.intuz.com/n8n-workflow-automation-templates
  Email: getstarted@intuz.com
  LinkedIn: https://www.linkedin.com/company/intuz
  Get Started: https://n8n.partnerlinks.io/intuz

  For Custom Workflow Automation
  Click here- Get Started

nodes_used:
  ["n8n-nodes-base.airtable","n8n-nodes-base.code","n8n-nodes-base.httpRequest","n8n-nodes-base.airtable","@n8n/n8n-nodes-langchain.googleGemini","n8n-nodes-base.wait","n8n-nodes-base.airtable","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.convertToFile","n8n-nodes-base.code","n8n-nodes-base.formTrigger","n8n-nodes-base.form","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 6512 characters]

metadata_json:
  {"categories":["AI/ML","Marketing","Content Creation"],"complexity":"medium","use_cases":["generate video ads","transform product images to video","automate social media content"],"estimated_setup_minutes":30,"required_services":["Google Veo","Google Gemini","Airtable"],"key_features":["image to video generation","AI-driven ad creation","workflow automation"],"target_audience":["e-commerce brands","marketers","content creators"]}


name: Promo Seeker: Auto-find Promo Codes with SerpAPI, Gemini & Telegram
author_name: Khairul Muhtadin
author_username: khmuhtadin
categories: []
created_at: 2025-10-02T00:48:31.170Z
updated_at: 2025-10-02T00:48:31.170Z
url: https://n8n.io/workflows/9172
scraped_at: 2026-05-02 08:04:50
metadata_generated_at: 2026-05-02 08:36:21
description:
  Promo Seeker automatically finds, verifies, and delivers active promo codes to users via Telegram or email using SerpAPI + Gemini (OpenRouter). Saves hours of manual searching and deduplicates results into an n8n Data Table for fast reuse.

  Why Use This Workflow?

  Time Savings: Reduces manual promo hunting from 2 hours to 5 minutes per query.

  Cost Reduction: Cuts reliance on paid scraping tools or manual services — potential savings of $50–$200/month.

  Error Prevention: Cross-references sources and enforces a 30‑day recency filter to reduce expired-code hits by ~60% vs single-source checks.

  Scalability: Handles hundreds of queries per day with Data Table upserts and optional scheduling for continuous discovery.

  Ideal For

  Marketing / Growth Managers:** Quickly discover competitor or partner discounts to promote in campaigns.
  Customer Support / Operations:** Respond to user requests with verified promo codes via Telegram or email.
  Affiliate / Content Teams:** Aggregate and maintain a clean promo feed for newsletters or site widgets.

  How It Works

  Trigger: Incoming request via Webhook, Telegram message, Google Form submission, or scheduled run.
  Data Collection: The LangChain agent uses SerpAPI search results and Gemini (OpenRouter) to locate recent promo codes.
  Processing: Filter for recency (last 30 days), extract code, value, terms, and expiry.
  Intelligence Layer: Gemini 2.5 Pro (OpenRouter) + LangChain agent structure and verify results, outputting a standardized JSON.
  Output & Delivery: If a code exists in the Data Table, notify the requester via Telegram and Gmail; otherwise, return results and upsert them into the Data Table.
  Storage & Logging: Results stored/upserted in an n8n Data Table to prevent duplicates and enable fast lookups.

  Setup Guide

  Prerequisites

  | Requirement | Type | Purpose |
  |-------------|------|---------|
  | n8n instance | Essential | Execute the workflow — import JSON to your n8n instance |
  | SerpAPI account | Essential | Web search results for promo code discovery |
  | OpenRouter (Gemini) account | Essential | Language model (Gemini 2.5 Pro) for extraction and verification |
  | Telegram Bot (BotFather) | Essential | Receive queries and send promo notifications |
  | Gmail OAuth2 | Essential | Send rich email notifications |
  | n8n Data Tables | Essential | Store and deduplicate promo code records |

  Get your n8n instance here: n8n instance — import the JSON and begin configuration. (Repeat link for convenience) n8n instance

  Installation Steps

  Import the JSON workflow into your n8n instance.
  Configure credentials (use n8n's Credentials UI — do NOT paste keys into nodes):
     SerpAPI: paste your SerpAPI API Key from your SerpAPI dashboard.
     OpenRouter API: paste your OpenRouter API Key (for Gemini 2.5 Pro).
     Telegram API: create bot via @BotFather, then add Bot Token to Telegram credentials.
     Gmail OAuth2: use n8n's Gmail OAuth2 credential flow and authorize the account.
  Update environment-specific values:
     Webhook path: /v1/promo-seeker (configured in the Webhook node) or replace with your preferred path.
     Data Table ID: point to your own Data Table
     Form/webhook recipient fields (email/chatId mappings).
  Customize settings:
     Adjust the LangChain agent prompt (Promo Seeker Agent) for different recency windows or regional focus.
     Change max results/limit on the Data Table node (default limit = 3).
  Test execution:
     Trigger via Telegram or a POST to the webhook with sample payload:
            { "platform":"example.com", "email":"you@domain.com" }
          Confirm notifications arrive and Data Table rows are upserted.

  Technical Details

  Core Nodes

  | Node | Purpose | Key Configuration |
  |------|---------|-------------------|
  | SerpAPI | Fetch web search results | Provide credential; adjust search params in agent prompt |
  | Gemini 2.5Pro (OpenRouter) | Extract & verify promo details | Use OpenRouter credential; model google/gemini-2.5-pro |
  | Promo Seeker Agent (LangChain) | Orchestrates search + parsing | System prompt enforces 30‑day recency & result format |
  | Structured Output Parser | Validates agent output | JSON schema example for platform/code/value/terms/validUntil |
  | Data Table (Get row(s)) | Lookup existing promos | Filters by platform; limit = 3 |
  | If (Code Exist?) | Branching logic | Checks existence of platform field |
  | Data Table (Upsert row(s)) | Insert or update promo | Mapping from agent output to Data Table columns |
  | Telegram Trigger / Telegram | Receive queries & notify users | Webhook-based trigger; parse_mode = HTML for messages |
  | Gmail | Send rich HTML emails | Uses Gmail OAuth2 credential |
  | Webhook / Form Trigger | Alternate inputs | Webhook path /v1/promo-seeker and Form trigger for manual submissions |

  Workflow Logic

  On trigger, the Platform Set node normalizes the incoming query and receiver.
  Get row(s) checks Data Table for existing promos.
    If found: notify via Telegram and send Gmail (email template included).
    If not found: the Promo Seeker Agent runs SerpAPI searches, parses structured output, then Upsert row(s) saves results and notifications are sent.
  Structured Output Parser enforces correct JSON to avoid bad upserts.

  Customization Options

  Basic Adjustments
  Recency window: change the agent prompt to 7/14/30 days.
  Result limit: increase Data Table Get limit or change Upsert batch size.

  Advanced Enhancements
  Add Slack or Microsoft Teams notifications (moderate complexity).
  Add caching layer (Redis) to reduce repeated SerpAPI calls (advanced).
  Parallelize searches across multiple search engines (higher API usage & complexity).

  Performance & Optimization

  | Metric | Expected Performance | Optimization Tips |
  |--------|----------------------|-------------------|
  | Execution time | 8–30s per new search (depends on SerpAPI + LM response) | Reduce SerpAPI page depth; cache recent results |
  | API calls | 3–10 SerpAPI calls per complex query | Batch queries; use higher-quality search params |
  | Error handling | Agent retries on malformed output | Use retry nodes and set onError strategy for downstream nodes |

  Troubleshooting

  | Problem | Cause | Solution |
  |---------|-------|----------|
  | No results returned | Query too vague or rate-limited API | Improve query specificity; check SerpAPI quota |
  | Gmail send fails | OAuth scope not granted or token expired | Reconnect Gmail OAuth2 credential in n8n |
  | Telegram webhook not firing | Incorrect bot token or webhook setup | Recreate Telegram credential and check bot permissions |
  | Duplicate rows | Upsert mapping mismatch | Ensure promoCode mapping in Upsert matches structured output |
  | Agent returns malformed JSON | LM prompt too permissive | Tighten the agent system prompt and validate with Structured Output Parser |

  Created by: khaisa Studio
  Category: Marketing Automation

  Tags: promo-codes, coupons, serpapi, telegram, gmail, openrouter, data-tables

  Need custom workflows or help adapting this template? Contact us

nodes_used:
  ["@n8n/n8n-nodes-langchain.toolSerpApi","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatOpenRouter","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.set","n8n-nodes-base.noOp","n8n-nodes-base.telegramTrigger","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.dataTable","n8n-nodes-base.if","n8n-nodes-base.formTrigger","n8n-nodes-base.gmail","n8n-nodes-base.dataTable","n8n-nodes-base.telegram","n8n-nodes-base.webhook","n8n-nodes-base.respondToWebhook","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 7124 characters]

metadata_json:
  {"categories":["Marketing","Ecommerce","Automation"],"complexity":"medium","use_cases":["find promo codes","verify coupon availability","notify about deals","search deals automatically"],"estimated_setup_minutes":15,"required_services":["SerpAPI","Google Gemini OpenRouter","Telegram Bot API","n8n Data Table"],"key_features":["automated promo code discovery","semantic search via AI","multi-channel notification","duplicate prevention","scheduled execution"],"target_audience":["eCommerce managers","marketing teams","deal hunters"]}


name: Auto-Update Knowledge Base with Drive, LlamaIndex & Azure OpenAI Embeddings
author_name: Khairul Muhtadin
author_username: khmuhtadin
categories: []
created_at: 2025-10-02T01:25:25.701Z
updated_at: 2025-10-02T01:25:25.701Z
url: https://n8n.io/workflows/9174
scraped_at: 2026-05-02 08:04:50
metadata_generated_at: 2026-05-02 08:36:21
description:
  This Workflow auto-ingests Google Drive documents, parses them with LlamaIndex, and stores Azure OpenAI embeddings in an in-memory vector store—cutting manual update time from ~30 minutes to under 2 minutes per doc.

  Why Use This Workflow?
   
  Cost Reduction: Eliminates pays monthly fee on cloud just for store knowledge

  Ideal For

  Knowledge Managers / Documentation Teams:** Automatically keep product docs and SOPs in sync when source files change on Google Drive.
  Support Teams:** Ensure the searchable KB is always up-to-date after doc edits, speeding agent onboarding and resolution time.
  Developer / AI Teams:** Populate an in-memory vector store for experiments, rapid prototyping, or local RAG demos.

  How It Works

  Trigger: Google Drive Trigger watches a specific document or folder for updates.
  Data Collection: The updated file is downloaded from Google Drive.
  Processing: The file is uploaded to LlamaIndex cloud via an HTTP Request to create a parsing job.
  Intelligence Layer: Workflow polls LlamaIndex job status (Wait + Monitor loop). If parsing status equals SUCCESS, the result is retrieved as markdown.
  Output & Delivery: Parsed markdown is loaded into LangChain's Default Data Loader, passed to Azure OpenAI embeddings (deployment "3small"), then inserted into an in-memory vector store.
  Storage & Logging: Vector store holds embeddings in memory (good for prototyping). Optionally persist to an external vector DB for production.

  Setup Guide

  Prerequisites

  | Requirement | Type | Purpose |
  |-------------|------|---------|
  | n8n instance | Essential | Execute and import the workflow — use the n8n instance |
  | Google Drive OAuth2 | Essential | Watch and download documents from Google Drive |
  | LlamaIndex Cloud API | Essential | Parse and convert documents to structured markdown |
  | Azure OpenAI Account | Essential | Generate embeddings (deployment configured to model name "3small") |
  | Persistent Vector DB (e.g., Pinecone) | Optional | Persist embeddings for production-scale search |

  Installation Steps

  Import the workflow JSON into your n8n instance: open your n8n instance and import the file.
  Configure credentials:
     Azure OpenAI: Provide Endpoint, API Key and set deployment name.
     LlamaIndex API: Create an HTTP Header Auth credential in n8n. Header Name: Authorization. Header Value: Bearer YOUR_API_KEY.
     Google Drive OAuth2: Create OAuth 2.0 credentials in Google Cloud Console, enable Drive API, and configure the Google Drive OAuth2 credential in n8n.
  Update environment-specific values:
     Replace the workflow's Google Drive fileId with the GUID or folder ID you want to watch (do not commit public IDs).
  Customize settings:
     Polling interval (Wait node): adjust for faster or slower job status checks.
     Target file or folder: toggled on the Google Drive Trigger node.
     Embedding model: change Azure OpenAI deployment if needed.
  Test execution:
     Save changes and trigger a sample file update on Drive. Verify each node runs and the vector store receives embeddings.

  Technical Details

  Core Nodes

  | Node | Purpose | Key Configuration |
  |------|---------|-------------------|
  | Knowledge Base Updated Trigger (Google Drive Trigger) | Triggers on file/folder changes | Set trigger type to specific file or folder; configure OAuth2 credential |
  | Download Knowledge Document (Google Drive) | Downloads file binary | Operation: download; ensure OAuth2 credential is selected |
  | Parse Document via LlamaIndex (HTTP Request) | Uploads file to LlamaIndex parsing endpoint | POST multipart/form-data to /parsing/upload; use HTTP Header Auth credential |
  | Monitor Document Processing (HTTP Request) | Polls parsing job status | GET /parsing/job/{{jobId}}; check status field |
  | Check Parsing Completion (If) | Branches on job status | Condition: {{$json.status}} equals SUCCESS |
  | Retrieve Parsed Content (HTTP Request) | Fetches parsed markdown result | GET /parsing/job/{{jobId}}/result/markdown |
  | Default Data Loader (LangChain) | Loads parsed markdown into document format | Use as document source for embeddings |
  | Embeddings Azure OpenAI | Generates embeddings for documents | Credentials: Azure OpenAI; Model/Deployment: 3small |
  | Insert Data to Store (vectorStoreInMemory) | Stores documents + embeddings | Use memory store for prototyping; switch to DB for persistence |

  Workflow Logic

  On Drive change, the file binary is downloaded and sent to LlamaIndex.
  Workflow enters a monitor loop: Monitor Document Processing fetches job status, If node checks status. If not SUCCESS, Wait node delays before re-check.
  When parsing completes, the workflow retrieves markdown, loads documents, creates embeddings via Azure OpenAI, and inserts data into an in-memory vector store.

  Customization Options

  Basic Adjustments:
  Poll Delay: Set Wait node (default: every minute) to balance speed vs. API quota.
  Target Scope: Switch the trigger from a single file to a folder to auto-handle many docs.
  Embedding Model: Swap Azure deployment for a different model name as needed.

  Advanced Enhancements:
  Persistent Vector DB Integration: Replace vectorStoreInMemory with Pinecone or Milvus for production search.
  Notification: Add Slack or email nodes to notify when parsing completes or fails.
  Summarization: Add an LLM summarization step to generate chunk-level summaries.

  Scaling option:
  Batch uploads and chunking to reduce embedding calls; use a queue (Redis or n8n queue patterns) and horizontal workers for high throughput.

  Performance & Optimization

  | Metric | Expected Performance | Optimization Tips |
  |--------|----------------------|-------------------|
  | Execution time (per doc) | ~10s–2min (depends on file size & LlamaIndex processing) | Chunk large docs; run embeddings in batches |
  | API calls (per doc) | 3–8 (upload, poll(s), retrieve, embedding calls) | Increase poll interval; consolidate requests |
  | Error handling | Retries via Wait loop and If checks | Add exponential backoff, failure notifications, and retry limits |

  Troubleshooting

  | Problem | Cause | Solution |
  |---------|-------|----------|
  | Authentication errors | Invalid/missing credentials | Reconfigure n8n Credentials; do not paste API keys directly into nodes |
  | File not found | Incorrect fileId or permissions | Verify Drive fileId and OAuth scopes; share file with the service account if needed |
  | Parsing stuck in PENDING | LlamaIndex processing delay or rate limit | Increase Wait node interval, monitor LlamaIndex dashboard, add retry limits |
  | Embedding failures | Model/deployment mismatch or quota limits | Confirm Azure deployment name (3small) and subscription quotas |

  Created by: khmuhtadin  
  Category: Knowledge Management
  Tags: google-drive, llamaindex, azure-openai, embeddings, knowledge-base, vector-store

  Need custom workflows? Contact us

nodes_used:
  ["n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.vectorStoreInMemory","@n8n/n8n-nodes-langchain.embeddingsAzureOpenAi","@n8n/n8n-nodes-langchain.documentDefaultDataLoader","n8n-nodes-base.if","n8n-nodes-base.stickyNote","n8n-nodes-base.googleDriveTrigger","n8n-nodes-base.googleDrive","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.wait","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  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

metadata_json:
  {"categories":["Data Processing","AI/ML"],"complexity":"medium","use_cases":["sync documents to knowledge base","parse files with embeddings\",\"update vector store"],"estimated_setup_minutes":30,"required_services":["Google Drive","LLamaIndex","Azure OpenAI","eBay API"],"key_features":["auto-ingest documents\",\"parse with embeddings\",\"in-memory vector store\",\"automatic updates"],"target_audience":["knowledge managers","documentation teams","support teams"]}


name: Manage Odoo CRM with Natural Language using OpenAI and MCP Server
author_name: Rohit Dabra
author_username: rohitdabra
categories: []
created_at: 2025-10-02T10:50:34.874Z
updated_at: 2025-10-02T10:50:34.874Z
url: https://n8n.io/workflows/9187
scraped_at: 2026-05-02 08:04:49
metadata_generated_at: 2026-05-02 08:36:22
description:
  Odoo CRM MCP Server Workflow

  📖 Overview

  This workflow connects an AI Agent with Odoo CRM using the Model Context Protocol (MCP).  
  It allows users to manage CRM data in Odoo through natural language chat commands.  
  The assistant interprets the user’s request, selects the appropriate Odoo action, and executes it seamlessly.  

  🔹 Key Features
  Contacts Management**: Create, update, delete, and retrieve contacts.  
  Opportunities Management**: Create, update, delete, and retrieve opportunities.  
  Notes Management**: Create, update, delete, and retrieve notes.  
  Conversational AI Agent**: Understands natural language and maps requests to Odoo actions.  
  Model Used**: OpenAI Chat Model.  

  This makes it easy for end-users to interact with Odoo CRM without needing technical commands—just plain language instructions.

  ▶️ Demo Video

  Watch the full demo here:  
  👉 YouTube Demo Video

  ⚙️ Setup Guide

  Follow these steps to set up and run the workflow:

  1. Prerequisites
  An Odoo instance configured with CRM enabled.  
  An n8n or automation platform account where MCP workflows are supported.  
  An OpenAI API key with access to GPT models.  
  MCP Server installed and running.  

  2. Import the Workflow
  Download the provided workflow JSON file.  
  In your automation platform (n8n, Langflow, or other MCP-enabled tool), choose Import Workflow.  
  Select the JSON file and confirm.  

  3. Configure MCP Server
  Go to your MCP Server Trigger node in the workflow.  
  Configure it to connect with your Odoo instance.  
     Set API endpoint.  
     Provide authentication credentials (API key).  
  Test the connection to ensure the MCP server can reach Odoo.  

  4. Configure the OpenAI Model
  Select the OpenAI Chat Model node in the workflow.  
  Enter your OpenAI API Key.  
  Choose the model (e.g., gpt-5 or gpt-5-mini).  

  5. AI Agent Setup
  The AI Agent node links the Chat Model, Memory, and MCP Client.  
  Ensure the MCP Client is mapped to the correct Odoo tools (Contacts, Opportunities, Notes).  
  The System Prompt defines assistant behavior—use the tailored system prompt provided earlier.  

  6. Activate and Test
  Turn the workflow ON (toggle Active).  
  Open chat and type:  
     "Create a contact named John Doe with email john@example.com."  
     "Show me all opportunities."  
     "Add a note to John Doe saying 'Follow-up scheduled for Friday'."  
  Verify the results in your Odoo CRM.  

  ✅ Next Steps
  Extend functionality with Tasks, Stages, Companies, and Communication Logs for a complete CRM experience.  
  Add confirmation prompts for destructive actions (delete contact/opportunity/note).  
  Customize the AI Agent’s system prompt for your organization’s workflows.  

nodes_used:
  ["@n8n/n8n-nodes-langchain.mcpTrigger","n8n-nodes-base.odooTool","n8n-nodes-base.odooTool","n8n-nodes-base.odooTool","n8n-nodes-base.odooTool","n8n-nodes-base.odooTool","n8n-nodes-base.odooTool","n8n-nodes-base.odooTool","n8n-nodes-base.odooTool","n8n-nodes-base.odooTool","n8n-nodes-base.odooTool","n8n-nodes-base.odooTool","n8n-nodes-base.odooTool","n8n-nodes-base.odooTool","n8n-nodes-base.odooTool","n8n-nodes-base.odooTool","@n8n/n8n-nodes-langchain.chatTrigger","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.memoryBufferWindow","@n8n/n8n-nodes-langchain.mcpClientTool","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 5208 characters]

metadata_json:
  {"categories":["Data Processing"],"complexity":"medium","use_cases":["manage contacts via chat","modify opportunities through voice commands"],"estimated_setup_minutes":30,"required_services":["Odoo","OpenAI"],"key_features":["natural language CRM management","context-aware execution"],"target_audience":["sales representatives","crm administrators"]}


name: Generate SEO blog posts from a keyword list and publish to Webflow
author_name: Dahiana
author_username: mssporto
categories: []
created_at: 2025-10-02T11:52:17.395Z
updated_at: 2025-10-02T11:52:17.395Z
url: https://n8n.io/workflows/9191
scraped_at: 2026-05-02 08:04:50
metadata_generated_at: 2026-05-02 08:36:20
description:
  Who's it for
  Content marketers and SEO specialists who need to generate multiple SEO-optimized articles targeting keyword variations. Ideal for affiliate sites, niche blogs, or service-based businesses creating location/product-specific landing pages.

  How it works
  This workflow automates bulk content creation from keyword list to Webflow draft:

  Loads keywords from Google Sheets with structured format (main keyword + slug)
  AI generates articles - Creates 600+ word content following SEO best practices
  Creates custom images - Calls a sub-workflow using Gemini 2.5 Flash to generate relevant featured images
  Quality validation - Ensures minimum word count; expands content if needed
  HTML conversion - Transforms markdown to Webflow-ready HTML
  Result tracking - Logs success/errors to separate Google Sheets



  The workflow includes automatic content expansion, error handling, and uses a separate sub-workflow as a tool for AI image generation.

  Important: The subworkflow should be created as an individual one. Then, in the Agent Tool node, you need to select it as the tool. DON'T try to run it inside the same workflow.

  Requirements
  OpenAI API key (for content generation)
  OpenRouter API key or similar (for Gemini image generation via sub-workflow) 
  Google Sheets with three tabs: keywords, content_created, webflow_error_logs
  Webflow site with CMS collection configured
  Google Drive folder for image storage
  Companion workflow**: "AI image generation for automatic content creation" (imported separately and called as a tool)

  How to set up

  1. Import both workflows separately:
  Main workflow: "Bulk SEO content generation and Webflow draft creation with AI images"
  Sub-workflow: "AI image generation for automatic content creation"

  2. Configure your Google Sheet with the recommended structure  
  Required sheets:
  keywords: id, main keyword, head terms, modifiers, slug, status
  content_created: id, slug, meta description, content, generatedAt, updated on
  webflow_error_logs: keyword, error, timestamp, status

  3. Add API credentials:
  OpenAI API  
  OpenRouter API with Gemini access or similar (for image generation)
  Webflow OAuth2 API (see Webflow setup instructions in sticky note)
  Google Sheets  
  Google Drive  

  4. Update workflow configuration:
  Google Sheets: Update document IDs in all Google Sheets nodes
  Webflow: Set your Site ID and Collection ID in Create/Update Post nodes
  Google Drive: Set folder ID in the image generation sub-workflow
  AI Image Tool: Verify the "AI Image Generation Tool1" node points to your imported sub-workflow

  5. Test with a single keyword:
   

  6. Schedule for production:
  Enable the Schedule Trigger (currently set to monthly)
  How to customize

  Content customization:
  Adjust article length in AI Agent prompt (currently 600-800 words)
  Modify article structure/sections in the system prompt
  Change content tone by editing the AI Agent system message
  Add/remove content sections in the prompt template

  Image customization:
  Change AI model in sub-workflow (currently Gemini 2.5 Flash)
  Modify image style/prompt in the AI Image Generation Tool parameters
  Update Google Drive destination folder

  Webflow customization:
  Add custom CMS fields by updating Create/Update Post nodes
  Modify field mappings to match your Webflow collection structure
  Change draft behavior or add auto-publish logic

  Workflow behavior:
  Adjust batch size in Loop Over Items node
  Modify quality threshold (currently 600 words minimum)
  Change error handling/retry logic
  Update scheduling frequency in Schedule Trigger

nodes_used:
  ["@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.memoryBufferWindow","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.stickyNote","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.googleSheets","n8n-nodes-base.splitInBatches","n8n-nodes-base.if","n8n-nodes-base.code","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.code","n8n-nodes-base.merge","n8n-nodes-base.markdown","n8n-nodes-base.webflow","n8n-nodes-base.if","n8n-nodes-base.googleSheets","n8n-nodes-base.code","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","n8n-nodes-base.wait","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.noOp","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.toolWorkflow","n8n-nodes-base.executeWorkflowTrigger","n8n-nodes-base.set","n8n-nodes-base.googleDrive","n8n-nodes-base.googleDrive","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.convertToFile","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 12736 characters]

metadata_json:
  {"categories":["Content Creation","SEO","Marketing"],"complexity":"medium","use_cases":["auto-generate blog posts from keywords","create SEO-optimized landing page content","bulk article generation for affiliate sites","mass produce location-specific content"],"estimated_setup_minutes":30,"required_services":["Google Sheets","Webflow","Google Drive"],"key_features":["automated content generation from keyword lists","AI-driven SEO article writing with optimized length","automatic publication to Webflow editor","batch processing of multiple keywords","structured slug and keyword management"],"target_audience":["content marketers","SEO specialists","affiliate site owners"]}


