# templates

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: 2025-10-27 22:15:59
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, 4444 characters]

metadata_json:
  {"categories":["automation","CRM","AI summarization","sales"],"complexity":"medium","use_cases":["Convert raw call transcripts into concise HubSpot call logs","Create a single actionable follow-up task after each call","Automatically find and update HubSpot contact records by email","Standardize CRM notes and improve data hygiene","Propose the next-best action for sales follow-up"],"estimated_setup_minutes":20,"required_services":["HubSpot","LLM/AI provider (e.g., OpenAI)","n8n instance (to host workflow and form trigger)"],"key_features":["Transcript ingestion via form trigger","Contact lookup by email in HubSpot","AI-generated 120–160 word call summary","AI-suggested next-best action","Create HubSpot call log and single follow-up task automatically」「Optional contact field enrichment/updates」「Structured output parsing for reliable fields"],"target_audience":["Sales reps","Founders/CEOs doing outreach","SDRs/Account managers」「Revenue operations/CRM admins"]}


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: 2025-10-27 22:15:59
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, 7724 characters]

metadata_json:
  {
    "categories": [
      "automation",
      "sales & support",
      "AI-assisted workflows",
      "integrations"
    ],
    "complexity": "medium",
    "use_cases": [
      "Drafting personalized customer-support replies using CRM context",
      "Speeding up sales follow-ups with HubSpot-enriched AI drafts",
      "Human-in-the-loop approval for outgoing customer emails",
      "Maintaining response quality and compliance while automating drafts"
    ],
    "estimated_setup_minutes": 45,
    "required_services": [
      "n8n instance",
      "Gmail (trigger + send) / Google Workspace account",
      "Google Gemini (Gemini API / Google Cloud credentials)",
      "HubSpot API access (contacts, deals, companies, tickets)",
      "Slack workspace (interactive message/approval integration)"
    ],
    "key_features": [
      "Gmail inbound trigger with sender filtering (exclude internal domains)",
      "Enrich AI prompt with HubSpot contact, deal, company, and ticket data",
      "Generate customer-ready drafts via Google Gemini",
      "Route drafts to Slack for one-click human approval",
      "Send approved replies from Gmail automatically (human oversight preserved)"
    ],
    "target_audience": [
      "support teams",
      "sales teams",
      "customer success managers"
    ]
  }


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: 2025-10-27 22:15:59
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, 6348 characters]

metadata_json:
  {
    "categories": [
      "automation",
      "CRM integration",
      "email outreach",
      "AI personalization"
    ],
    "complexity": "medium",
    "use_cases": [
      "Personalized outbound email campaigns at scale",
      "SDR outreach and follow-ups",
      "Founders or solo sellers creating tailored outreach quickly",
      "Turning HubSpot contact lists into reviewable Gmail drafts",
      "Extracting contact persona from recent email conversations"
    ],
    "estimated_setup_minutes": 20,
    "required_services": [
      "HubSpot (API access)",
      "Gmail / Google Workspace (API access)",
      "Google Gemini or compatible LLM (lmChatGoogleGemini node)",
      "n8n instance"
    ],
    "key_features": [
      "Imports targeted contact list from HubSpot",
      "Scans recent Gmail conversations per contact",
      "Generates lightweight persona (tone, goals, pain points, decision style) via AI",
      "Drafts concise, offer-aligned sales emails",
      "Saves output as Gmail drafts for human review and editing (non-sent drafts)"
    ],
    "target_audience": [
      "SDRs",
      "Founders / solo sellers",
      "Sales teams and reps seeking personalization at scale" 
    ]
  }


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: 2025-10-27 22:15:59
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.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.stickyNote","n8n-nodes-base.hubspot","n8n-nodes-base.scheduleTrigger"]

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

metadata_json:
  {
    "categories": [
      "automation",
      "integration",
      "data enrichment",
      "CRM"
    ],
    "complexity": "medium",
    "use_cases": [
      "Auto-enrich newly created HubSpot contacts",
      "Improve lead segmentation and personalization",
      "Speed up sales & marketing outreach",
      "Maintain CRM data hygiene and consistency",
      "Enrich contacts from email domain research"
    ],
    "estimated_setup_minutes": 20,
    "required_services": [
      "HubSpot (API access)",
      "SerpApi (or other web-search/company lookup API)",
      "Google Gemini (or another LLM provider) / AI service",
      "n8n"
    ],
    "key_features": [
      "Daily scheduled trigger to process new contacts",
      "Skips free email domains",
      "Researches company details from contact email domain",
      "Uses search API + LLM to extract and structure company fields",
      "Writes clean, structured data back to HubSpot fields"
    ],
    "target_audience": [
      "GTM teams",
      "Marketing teams",
      "Sales operations / SDRs / AEs supporting outreach personalizationes (sic) - Wait fix typo"
    ]
  }


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: 2025-10-27 22:15:59
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": [
      "integration",
      "reporting",
      "notifications",
      "sales"
    ],
    "complexity": "simple",
    "use_cases": [
      "Weekly GTM standups",
      "Monday pipeline reviews",
      "Track how many contacts entered Lead stage in the past week",
      "Optionally report closed-won deals from the same period",
      "Quick team visibility into funnel movement"
    ],
    "estimated_setup_minutes": 15,
    "required_services": [
      "HubSpot (Contacts API; optionally Deals API)",
      "Slack (Incoming Webhook or Slack App)",
      "n8n instance"
    ],
    "key_features": [
      "Scheduled weekly trigger (e.g., Monday 07:00)",
      "Fetch HubSpot contacts by hs_v2_date_entered_lead",
      "Filter contacts to the past week",
      "Optional fetch/report of closed-won deals",
      "Summarize counts and format a Slack message snapshot"
    ],
    "target_audience": [
      "Sales managers",
      "GTM teams",
      "Marketing operations / analysts"  ]
  }


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: 2025-10-27 22:15:59
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": [
      "integration",
      "automation",
      "AI/ML",
      "CRM"
    ],
    "complexity": "medium",
    "use_cases": [
      "Ad-hoc natural-language queries against HubSpot CRM",
      "Quick sales & pipeline lookups (leads, deals, close dates)",
      "Operational reporting and CRM triage without opening the UI",
      "Assist AEs/founders with contact and deal discovery"
    ],
    "estimated_setup_minutes": 20,
    "required_services": [
      "HubSpot API (HubSpot account + API key or OAuth)",
      "AI provider (e.g., Google Gemini 2.5 Pro or compatible LLM API)",
      "n8n (chat UI or embed for chat trigger)"
    ],
    "key_features": [
      "Chat-style assistant that accepts natural-language questions",
      "Translates user queries into precise HubSpot searches",
      "Returns answers in plain English",
      "Maintains short-term context via memory buffer window",
      "Uses hubspotTool nodes to query contacts, leads, and deals"
    ],
    "target_audience": [
      "Founders",
      "Account Executives (AEs)",
      "Sales operations / CRM admins"
    ]
  }


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: 2025-10-27 22:15:59
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, 6644 characters]

metadata_json:
  {
    "categories": ["e-commerce", "automation", "integration", "AI assistant"],
    "complexity": "complex",
    "use_cases": [
      "Conversational management of Shopify products and orders",
      "Automating CRUD operations on store data via chat",
      "Searching and fetching product/order information on demand",
      "Integrating Shopify with a Multi-Channel Commerce Platform (MCP)",
      "Building an AI-driven e-commerce support or ops assistant"
    ],
    "estimated_setup_minutes": 60,
    "required_services": [
      "Shopify Admin API (store credentials)",
      "MCP (Multi-Channel Commerce Platform) server/toolkit (SmartCommerce)",
      "OpenAI or compatible AI/ML API for chat/assistant",
      "n8n instance (workflow runtime)"
    ],
    "key_features": [
      "Conversational AI interface to manage Shopify store",
      "Full CRUD for products and orders (create, fetch, search, update, delete)",
      "Integration with custom MCP toolkit for multi-channel operations",
      "Memory buffer for conversational context",
      "Modular n8n workflow with multiple Shopify tool nodes"
    ],
    "target_audience": [
      "E-commerce managers and merchants",
      "Developers and integrators building commerce automations",
      "Automation engineers and ops teams managing stores at scale"
    ]
  }


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: 2025-10-07 11:38:24
metadata_generated_at: 2025-10-07 12:09:46
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, 10000 characters]

metadata_json:
  {"categories":["automation","sales","integration","ai"],"complexity":"complex","use_cases":["Automated lead qualification via conversational AI","Booking and managing meetings from website leads","Capturing and logging leads to spreadsheets/CRM","Generating follow-up materials and summaries","Maintaining conversational memory across sessions"],"estimated_setup_minutes":60,"required_services":["OpenAI (GPT) or equivalent LLM","Anthropic Claude (or Claude API)","OpenRouter / LLM routing service (lmChatOpenRouter)","Google Workspace (Google Calendar, Google Sheets, Google Docs)","Website chat widget / frontend for visitor interaction","Email/SMS provider for notifications (optional)"],"key_features":["Persona-driven conversational sales agent ('Hassan')","Multi-LLM routing (GPT + Claude) for robust responses","Automated lead qualification and scoring","Real-time calendar booking and conflict handling","Session memory (memoryBufferWindow) to keep context across messages"],"target_audience":["Sales teams and SDRs","Startups and SMBs looking to automate booking","Marketing/ops teams implementing conversational lead capture\",\"No-code/low-code automation builders and developers"]}


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: 2025-10-07 11:38:24
metadata_generated_at: 2025-10-07 12:09:46
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:
  [encoded data, 8168 characters]

metadata_json:
  {"categories":["automation","e-commerce","messaging","integrations","data processing"],"complexity":"medium","use_cases":["Recover abandoned carts","Send personalized WhatsApp reminders","Clean and verify customer phone numbers","Log outreach and validation results to Google Sheets","Scheduled/batched outreach workflows"],"estimated_setup_minutes":45,"required_services":["Shopify (store or webhooks access)","Rapiwa API (WhatsApp messaging)","Google Sheets (Google Drive account)","Phone-number verification service or validation logic","n8n instance/runtime"],"key_features":["Detect abandoned Shopify carts","Normalize and validate WhatsApp numbers","Personalize message content (AI/ML node)","Send messages via Rapiwa API","Log each interaction and validation result to Google Sheets','Scheduled triggers with batch processing and conditional handling"],"target_audience":["Marketers","Small business owners","E-commerce store owners/managers」「Freelancers and agencies handling store growth」「Customer 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: 2025-10-27 22:15:59
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": [
      "automation",
      "HR / recruiting",
      "AI/ML",
      "integration",
      "data processing"
    ],
    "complexity": "complex",
    "use_cases": [
      "Automated resume screening and ranking",
      "Applicant data extraction into Google Sheets",
      "Storing and indexing resumes in Google Drive",
      "Production-grade processing with error detection, recovery and alerting",
      "Triggering downstream workflows via webhooks"
    ],
    "estimated_setup_minutes": 90,
    "required_services": [
      "Gmail (or another email provider with IMAP/API access)",
      "Google Drive",
      "Google Sheets",
      "OpenAI (GPT-4o) or compatible AI provider",
      "n8n hosting/environment",
      "Notification service (email/Slack/other) or configured communication node"
    ],
    "key_features": [
      "Monitors email for incoming applications with attachment validation",
      "Extracts resume content from files and feeds to GPT-4o for screening",
      "Writes candidate metadata and scores to Google Sheets",
      "Stores original attachments in Google Drive",
      "Comprehensive error handling nodes with automatic retry/recovery paths and notifications for failures or edge cases (missing attachments, parsing errors, API failures, etc.)"
    ],
    "target_audience": [
      "Recruiters and talent acquisition teams",
      "HR automation engineers",
      "Technical ops / integrations teams deploying hiring workflows in production"
    ]
  }


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: 2025-10-27 22:15:59
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, 6448 characters]

metadata_json:
  {"categories":["automation","integration","social media monitoring","content curation","AI/ML"],"complexity":"complex","use_cases":["Aggregate and push Twitter/X content to Telegram channels","Automated trend and competitor monitoring","Summarize and analyze social posts using an LLM (Google Gemini)","Curated content delivery for community/marketing teams","Automated alerting and reporting from social feeds"],"estimated_setup_minutes":45,"required_services":["X (Twitter) account or BrowserAct-based scraping access to X","Telegram bot (API token) and target channel","Google Gemini (Google Cloud/PaLM API) credentials","n8n instance with BrowserAct capability enabled","Optional: HTTP/Webhooks endpoints if integrating external sources"],"key_features":["Scheduled polling/aggregation of social content","BrowserAct-based content extraction from X (when API not used)","LLM analysis and summarization via Google Gemini","Conditional logic to filter/route content (IF nodes)","Structured output parsing and formatting for Telegram posts (outputParserStructured)"],"target_audience":["Digital marketers","Brand managers","Data analysts and social analysts」「Community managers and growth teams"]}


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: 2025-10-07 11:38:24
metadata_generated_at: 2025-10-07 12:09:46
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, 6280 characters]

metadata_json:
  {"categories":["automation","data extraction","document processing","integration"],"complexity":"medium","use_cases":["Extract structured data from PDFs (invoices, contracts, receipts)","Automate document ingestion and JSON output for downstream systems","Clean and normalize text extracted from PDFs for analysis or storage","Batch-processing multiple PDFs from a Drive folder"],"estimated_setup_minutes":15,"required_services":["Google Drive (account + API/credentials)"],"key_features":["Finds PDFs in a specified Google Drive folder","Downloads PDF files automatically","Extracts raw text from PDFs (Extract From File node)","Cleans and transforms extracted text into a well-formed JSON object (Code node)","Supports processing multiple files and mapping fields (Set node)"],"target_audience":["Data analysts","Automation engineers","Developers integrating document data into systems or databases\",\"Business users/knowledge workers who need automated document processing"]}


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: 2025-10-27 22:15:59
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, 5460 characters]

metadata_json:
  {
    "categories": [
      "integration",
      "automation",
      "data processing"
    ],
    "complexity": "complex",
    "use_cases": [
      "Maintain a live database of WordPress posts in Google Sheets",
      "Create dashboards in Google Data Studio / Looker Studio",
      "Automate SEO/content reporting and analysis",
      "Backup WordPress content (posts, categories, tags, media)",
      "On-demand exports via webhook or scheduled syncs"
    ],
    "estimated_setup_minutes": 45,
    "required_services": [
      "WordPress (REST API access or authentication)",
      "Google Sheets / Google Drive (Google account and API credentials)",
      "n8n instance (with public webhook access or tunneling like ngrok)"
    ],
    "key_features": [
      "Full sync of posts, categories, tags, and media into Google Sheets",
      "Supports scheduled runs and on-demand webhook-triggered syncs",
      "Handles multiple node flows for splitting, conditional logic and data mapping",
      "Suitable for reporting, SEO analysis and data backup workflows"
    ],
    "target_audience": [
      "content teams",
      "marketers",
      "SEO analysts/data analysts" 	]
  }


name: End-to-End Blog Creation Automation 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: 2025-10-07 11:38:24
metadata_generated_at: 2025-10-07 12:09:46
description:
  Daily Blog Automation Workflow

  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":["automation","content-creation","AI-integration","data-integration"],"complexity":"complex","use_cases":["Automated daily blog creation","AI-driven topic research and drafting","Automated image generation for posts","Scheduled publishing and saving to a database","Content pipeline orchestration with AI agents"],"estimated_setup_minutes":60,"required_services":["n8n","Google Gemini (lmChatGoogleGemini)","Groq (lmChatGroq)","Supabase","Nano-Banana (image generation)","HTTP/Webhook endpoint or CMS for publication","RSS feed sources (optional)"],"key_features":["Three specialized AI agents for research, drafting, and refinement","Scheduled trigger (daily) to run full pipeline","Automated custom image generation per post","Saves final posts and assets directly to Supabase","Supports webhooks/HTTP for publishing to external CMS/sites"],"target_audience":["Content teams and bloggers","Marketers and growth teams","Developers/automation engineers building content pipelines\",\"Agencies managing multi-client blogs"]}


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: 2025-10-27 22:15:59
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, 40904 characters]

metadata_json:
  {"categories":["social media","automation","content generation","AI integration"],"complexity":"complex","use_cases":["Discover viral post ideas from competitors/niche profiles","Classify and store evergreen content ideas","Generate platform-optimized posts in brand voice","Repurpose LinkedIn posts for X (Twitter)","Auto-publish and schedule posts across platforms"],"estimated_setup_minutes":120,"required_services":["LinkedIn (profile/post scraping or API)","X (Twitter) API or publishing endpoint","LLM provider (Google Gemini, OpenRouter or similar)","Google Sheets / Spreadsheets","Google Drive","Telegram (for notifications)","HTTP/Webhooks endpoints","(Optional) Image-generation API"],"key_features":["Scrapes competitor/niche LinkedIn profiles to surface high-performing posts","Classifies and saves evergreen content ideas for reuse","Generates fresh posts in your own tone using LLMs","Creates platform-optimized repurposed copy for X","Automates scheduling and auto-publishing workflows」「Multi-LLM support (Google Gemini, OpenRouter)」「Notification and status updates via Telegram"],"target_audience":["social media managers","content marketers","growth hackers and marketers/agencies handling multiple accounts"]}


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: 2025-10-27 22:15:59
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, 20332 characters]

metadata_json:
  {"categories":["automation","lead management","AI/ML","integration"],"complexity":"complex","use_cases":["Real-time lead capture from forms","Person & company enrichment","Automated lead scoring using Relevance AI templates","Routing leads by quality to CRM or teams","Triggering personalized outreach/follow-up workflows"],"estimated_setup_minutes":60,"required_services":["Relevance AI","Form provider or webhook source (Typeform, Google Forms, custom webhooks)","CRM (HubSpot, Salesforce, etc.)","Email/outreach provider (SendGrid, Mailgun, SMTP)","Person/company enrichment API (Clearbit, FullContact, etc.)","LLM/chat API (OpenAI, Anthropic, etc.)","HTTP endpoints/webhooks"],"key_features":["Real-time form intake via webhooks","Enrichment of individual and company data","Automated scoring with Relevance AI templates","Routing/segmentation by lead quality","Automated follow-up/outreach triggers based on score or segmentes (sic)"],"target_audience":["Sales teams","Marketing/growth teams","Sales/Marketing operations (ops) engineers/analysts who build automations"]}


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: 2025-10-27 22:15:59
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/services
  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, 6604 characters]

metadata_json:
  {
    "categories": [
      "automation",
      "ai-generated content",
      "video creation",
      "marketing"
    ],
    "complexity": "complex",
    "use_cases": [
      "Automated AI video ad generation from a static image and brief",
      "Scaling creative production for e-commerce product promotions",
      "Creating social media video ads for campaigns",
      "Agency workflow to turn client briefs into deliverables",
      "Centralizing briefs and outputs in Airtable"
    ],
    "estimated_setup_minutes": 30,
    "required_services": [
      "Google Veo 3 (Veo API) or Veo-enabled endpoint",
      "Google Gemini (Gemini API)",
      "Airtable",
      "Webhook/HTTP endpoint (to accept briefs)",
      "File storage or hosting for final video (optional)"
    ],
    "key_features": [
      "End-to-end automation from creative brief to downloadable video",
      "Uses Google Veo 3 for video generation and Gemini for AI processing",
      "Airtable integration to store/manage briefs and assets",
      "Form/webhook entry points for submitting briefs",
      "convertToFile node to produce final downloadable video file"
    ],
    "target_audience": [
      "E-commerce brands and marketers",
      "Advertising agencies",
      "Social media content creators and managers"
    ]
  }


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: 2025-10-27 22:15:59
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, 7228 characters]

metadata_json:
  {
    "categories": [
      "automation",
      "integration",
      "data processing",
      "marketing"
    ],
    "complexity": "medium",
    "use_cases": [
      "Automated discovery of active promo/coupon codes from web search results",
      "Delivering verified promo codes to users via Telegram or email",
      "Deduplicating and storing promo codes for reuse in an n8n Data Table",
      "Scheduled monitoring for new or expiring promos",
      "Reducing manual scraping and verification work for marketing/affiliate teams"
    ],
    "estimated_setup_minutes": 30,
    "required_services": [
      "SerpAPI (web search / scraping)",
      "OpenRouter / Gemini (AI model for parsing/verifying)",
      "Telegram (bot for delivery)",
      "Email provider or SMTP (for email delivery)",
      "n8n Data Table (internal storage)"
    ],
    "key_features": [
      "Automatic search and extraction of promo codes using SerpAPI",
      "AI-assisted verification and normalization of results (Gemini/OpenRouter)",
      "Deduplication and structured storage in an n8n Data Table",
      "Delivery to end users via Telegram or email",
      "Scheduled runs to keep promo list fresh and timely output parsing"
    ],
    "target_audience": [
      "marketers",
      "growth hackers",
      "affiliate managers/publishers"  ] 
  }


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: 2025-10-27 22:15:59
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": [
      "automation",
      "integration",
      "knowledge management",
      "AI/ML"
    ],
    "complexity": "medium",
    "use_cases": [
      "Automatically sync product docs and SOPs from Google Drive",
      "Keep knowledge bases up-to-date when source files change",
      "Enable semantic search / retrieval via embeddings",
      "Enrich support tickets or chatbots with fresh doc context",
      "Reduce manual ingestion/processing time for documentation teams"
    ],
    "estimated_setup_minutes": 30,
    "required_services": [
      "Google Drive API (access to source documents)",
      "Azure OpenAI (embeddings API / keys)",
      "LlamaIndex (document parsing/indexing library or service)",
      "Public webhook endpoint or n8n accessible webhook"
    ],
    "key_features": [
      "Automated ingestion of Google Drive documents on change",
      "Document parsing and indexing using LlamaIndex",
      "Embedding generation via Azure OpenAI",
      "In-memory vector store for fast retrieval",
      "Webhook-driven triggers and conditional logic for processing flows"
    ],
    "target_audience": [
      "Knowledge managers",
      "Documentation teams",
      "Support teams / helpdesk staff wanting richer search context"
    ]
  }


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: 2025-10-27 22:15:59
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, 5192 characters]

metadata_json:
  {"categories":["automation","integration","crm","ai"],"complexity":"complex","use_cases":["Manage Odoo contacts via natural language chat","Create/update/delete/retrieve opportunities via chat","Automate CRM data updates and workflows","Natural language querying of CRM data","Integrate LLM-driven assistants with Odoo via MCP"],"estimated_setup_minutes":30,"required_services":["Odoo instance with API access","OpenAI or compatible LLM API","MCP Server (Model Context Protocol) / mcpClientTool"],"key_features":["Natural language chat-to-action mapping for Odoo CRM","Create, update, delete, retrieve contacts","Create, update, delete, retrieve opportunities","AI agent selects and invokes appropriate Odoo actions","MCP-based tool invocation for structured model-context integration and execution flow control"],"target_audience":["Developers","CRM administrators","Automation engineers / DevOps specialists who manage integrations"]}


name: Generate blog posts from keywords 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: 2025-10-27 22:15:59
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.code","n8n-nodes-base.if","n8n-nodes-base.code","n8n-nodes-base.set","n8n-nodes-base.code","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.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 14168 characters]

metadata_json:
  {"categories":["automation","content creation","integration","marketing","SEO"],"complexity":"complex","use_cases":["Bulk generation of SEO-optimized blog posts from keyword lists","Create location- or product-specific landing pages at scale","Populate Webflow with draft articles for review/publishing","Automate content pipeline with scheduling and batching","Scale affiliate or niche sites with templated content"],"estimated_setup_minutes":45,"required_services":["Google Sheets","Webflow","AI text-generation provider (e.g., OpenAI)","Google Drive (optional for assets)"],"key_features":["Bulk import keywords and slugs from Google Sheets","AI-generated 600+ word, SEO-optimized articles","Creates Webflow drafts for each generated article","Batch processing and split/merge logic for large lists","Scheduling support to run at intervals or on-demand"],"target_audience":["Content marketers","SEO specialists","Affiliate/niche site owners and operators of multiple landing pages/sites geared to keywords/locations/products, marketing agencies, devs implementing content automation"]}


name: Smart Facebook Messenger Chatbot with Gemini AI, Message Batching and History
author_name: Nguyen Thieu Toan
author_username: nguyenthieutoan
categories: []
created_at: 2025-10-02T12:42:39.709Z
updated_at: 2025-10-02T12:42:39.709Z
url: https://n8n.io/workflows/9192
scraped_at: 2025-10-07 11:38:24
metadata_generated_at: 2025-10-07 12:09:46
description:
  🤖 Facebook Messenger Smart Chatbot – Batch, Format & Notify with n8n Data Table  
  by Nguyen Thieu Toan

  🌟 What Is This Workflow?

  This is a smart chatbot solution built with n8n, designed to integrate seamlessly with Facebook Messenger. It batches incoming messages, formats them for clarity, tracks conversation history, and sends natural replies using AI. Perfect for businesses, customer support, or personal AI agents.

  ⚙️ Key Features

  🔄 Smart batching: Groups consecutive user messages to process them in one go, avoiding fragmented replies.
  🧠 Context formatting: Automatically formats messages to fit Messenger’s structure and length limits.
  📋 Conversation history tracking: Stores and retrieves chat logs between user and bot using n8n Data Table.
  👀 Seen & Typing effects: Adds human-like responsiveness with Messenger’s sender actions.
  🧩 AI Agent integration: Easily connects to GPT, Gemini, or any LLM for natural replies, scheduling, or business logic.

  🚀 How It Works

  Connects to your Facebook Page via webhook to receive and send messages.
  Stores incoming messages in a Data Table called Batch_messages, including fields like user_text, bot_rep, processed, etc.
  Collects unprocessed messages, sorts them by id, and creates a merged_message and full history.
  Sends the history to an AI Agent for contextual response generation.
  Sends the AI reply back to Messenger with Seen/Typing effects.
  Updates the message status to processed = true to prevent duplicate handling.

  🛠️ Setup Guide

  Create a Facebook App and Messenger webhook, link it to your Page.
  Set up the Batch_messages Data Table in n8n with required columns.
  Import the workflow or build nodes manually using the tutorial.
  Configure your API tokens, webhook URLs, and AI Agent endpoint.
  Deploy the workflow on a public n8n server.

  📘 Full tutorial available at:  
  👉 Smart Chatbot Workflow Guide by Nguyen Thieu Toan

  💡 Pro Tips

  Customize the AI prompt and persona to match your business tone.
  Add scheduling, lead capture, or CRM integration using n8n’s flexible nodes.
  Monitor your Data Table regularly to ensure clean message flow and batching.

  👤 About the Creator

  Nguyen Thieu Toan (Nguyễn Thiệu Toàn/Jay Nguyen) is an expert in AI automation, business optimization, and chatbot development. With a background in marketing and deep knowledge of n8n workflows, Jay helps businesses harness AI to save time, boost performance, and deliver smarter customer experiences.

  Website: https://nguyenthieutoan.com

nodes_used:
  ["@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.if","n8n-nodes-base.httpRequest","n8n-nodes-base.if","n8n-nodes-base.if","n8n-nodes-base.respondToWebhook","n8n-nodes-base.webhook","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.set","n8n-nodes-base.wait","n8n-nodes-base.dataTable","n8n-nodes-base.dataTable","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.dataTable","n8n-nodes-base.dataTable","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.code","n8n-nodes-base.dataTable","n8n-nodes-base.code","@n8n/n8n-nodes-langchain.lmChatGroq"]

workflow_json_compressed:
  [encoded data, 14580 characters]

metadata_json:
  {"categories":["chatbot","automation","AI integration","messaging"],"complexity":"medium","use_cases":["Customer support automated replies","Business messaging and lead qualification","Personal AI assistant on Messenger","Message batching and summarization","Conversation history tracking and auditing"],"estimated_setup_minutes":45,"required_services":["Facebook Messenger (Meta) API / Facebook Developer app","Google Gemini API (lmChatGoogleGemini) or equivalent Google Cloud AI access","Groq (lmChatGroq) or another LLM provider configured in n8n","Publicly reachable n8n instance or webhook tunnel (ngrok, Cloud run, etc.)","Optional: Hosting for n8n and credentials storage"],"key_features":["Batches consecutive user messages to form coherent prompts","Formats and sanitizes messages for clarity","Stores and retrieves conversation history in n8n Data Table","Generates natural replies with LLMs (Gemini/Groq)","Conditional logic and message routing (if nodes) for flow control and notifications"],"target_audience":["Developers integrating chatbots with Messenger","Customer support teams","No-code/low-code automation builders using n8n workflows"]}


name: Automate & Publish Video Ad Campaigns with NanoBanana, Seedream, GPT-4o, Veo 3
author_name: Dr. Firas
author_username: drfiras
categories: []
created_at: 2025-10-02T18:13:46.700Z
updated_at: 2025-10-02T18:13:46.700Z
url: https://n8n.io/workflows/9200
scraped_at: 2025-10-07 11:38:24
metadata_generated_at: 2025-10-07 12:09:46
description:
  💥 Automate video ads with NanoBanana, Seedream 4, ChatGPT Image and Veo 3

  Who is this for?
  This template is designed for marketers, content creators, and e-commerce brands who want to automate the creation of professional ad videos at scale. It’s ideal for teams looking to generate consistent, high-quality video ads for social media without spending hours on manual design, editing, or publishing.

  What problem is this workflow solving? / Use case
  Creating video ads usually requires multiple tools and a lot of time: writing scripts, designing product visuals, editing videos, and publishing them across platforms.  
  This workflow automates the entire pipeline — from idea to ready-to-publish ad video — ensuring brands can quickly test campaigns and boost engagement without production delays.

  What this workflow does
  Generates ad ideas from Telegram input (text + product image).  
  Creates product visuals using multiple AI image engines:  
     🌊 Seedream 4.0 (realistic visuals)  
     🍌 NanoBanana (image editing & enhancement)  
     🤖 ChatGPT Image / GPT-4o (creative variations)  
  Produces cinematic video ads with Veo 3 based on AI-generated scripts.  
  Merges multiple short clips into a polished final ad.  
  Publishes automatically to multiple platforms (TikTok, Instagram, LinkedIn, X, Threads, Facebook, Pinterest, Bluesky, YouTube) via Blotato.  
  Stores metadata and results in Google Sheets & Google Drive for easy tracking.  
  Notifies you via Telegram with the video link and copy.

  Setup
  Connect your accounts in n8n:
     Telegram API (for input and notifications)  
     Google Drive + Google Sheets (storage & tracking)  
     Kie AI API (Seedream + Veo 3)  
     Fal.ai API (NanoBanana + video merging)  
     OpenAI (for script and prompt generation)  
     Blotato API (for social publishing)  
  Prepare a Google Sheet with brand info and settings (product name, category, features, offer, website URL).  
  Deploy the workflow and connect your Telegram bot to start sending ad ideas (photo + caption).  
  Run the workflow — it will automatically generate images, create videos, and publish to your chosen channels.

  How to customize this workflow to your needs
  Brand customization**: Adjust the Google Sheet values to reflect your brand’s offers and product features.  
  Platforms**: Enable/disable specific Blotato nodes depending on which platforms you want to publish to.  
  Video style**: Edit the AI agent’s system prompt to control tone, format, and transitions (cinematic, playful, modern, etc.).  
  Notifications**: Adapt Telegram nodes to send updates to different team members or channels.  
  Storage**: Change the Google Drive folder IDs to store generated videos and images in your preferred location.  

  This workflow lets you go from idea → images → cinematic ad video → auto-published content in minutes, fully automated.

  📄 🎥 Watch This Tutorial: Step by Step

  📄 Documentation: Notion Guide

  Need help customizing?
  Contact me for consulting and support : Linkedin / Youtube

nodes_used:
  ["n8n-nodes-base.stickyNote","n8n-nodes-base.telegram","n8n-nodes-base.telegramTrigger","n8n-nodes-base.googleDrive","n8n-nodes-base.code","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.outputParserStructured","@n8n/n8n-nodes-langchain.toolThink","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.wait","n8n-nodes-base.googleDrive","n8n-nodes-base.stickyNote","n8n-nodes-base.googleSheets","n8n-nodes-base.code","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.googleSheets","n8n-nodes-base.telegram","n8n-nodes-base.telegram","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.httpRequest","n8n-nodes-base.wait","n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.toolThink","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.code","@blotato/n8n-nodes-blotato.blotato","@blotato/n8n-nodes-blotato.blotato","@blotato/n8n-nodes-blotato.blotato","n8n-nodes-base.googleSheets","@blotato/n8n-nodes-blotato.blotato","@blotato/n8n-nodes-blotato.blotato","@blotato/n8n-nodes-blotato.blotato","@blotato/n8n-nodes-blotato.blotato","@blotato/n8n-nodes-blotato.blotato","@blotato/n8n-nodes-blotato.blotato","@blotato/n8n-nodes-blotato.blotato","n8n-nodes-base.merge","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.splitInBatches","n8n-nodes-base.googleSheets","n8n-nodes-base.stickyNote","n8n-nodes-base.splitOut","n8n-nodes-base.wait","n8n-nodes-base.googleSheets","n8n-nodes-base.httpRequest","n8n-nodes-base.wait","n8n-nodes-base.googleSheets","n8n-nodes-base.merge","n8n-nodes-base.httpRequest","n8n-nodes-base.set","n8n-nodes-base.wait","n8n-nodes-base.aggregate"]

workflow_json_compressed:
  [encoded data, 18764 characters]

metadata_json:
  {"categories":["automation","marketing","content production","AI / video generation"],"complexity":"complex","use_cases":["Automate end-to-end creation of social video ads","Scale ad creative production from spreadsheet-driven templates","Generate scripts, images, and assemble videos using AI/video APIs","Store assets and notify teams (e.g., Google Drive + Telegram)","Publish or trigger campaigns via webhooks / HTTP endpoints"],"estimated_setup_minutes":90,"required_services":["NanoBanana","Seedream 4","Veo 3","OpenAI GPT-4o / ChatGPT Image","Google Drive","Google Sheets (Spreadsheets)","Telegram (optional notifications)","Webhook endpoint / HTTP receiver","blotato (used in workflow nodes)"],"key_features":["AI-driven script and creative concept generation (GPT-4o)","Automated image and visual asset generation","Video assembly and rendering with Seedream / Veo / NanoBanana","Spreadsheet-driven campaign inputs and batching","Webhook/HTTP triggers for automation and publishing flows (63-node pipeline supporting conditional logic and transformations)"],"target_audience":["Marketers","Content creators","E‑commerce brands and growth teams"]}


name: AI secretary for scheduling with WhatsApp and Telegram
author_name: Thiago Vazzoler Loureiro
author_username: thiagovazzoler
categories: []
created_at: 2025-10-02T23:06:36.380Z
updated_at: 2025-10-02T23:06:36.380Z
url: https://n8n.io/workflows/9211
scraped_at: 2025-10-27 22:15:59
description:
  🏥 AI secretary for scheduling with WhatsApp and Telegram

  &gt; ⚠️ Community Disclaimer  
  &gt; This workflow is community-maintained and self-hosted.  
  &gt; It is not officially affiliated with or supported by n8n GmbH, OpenAI, or Google.  
  &gt; Users are responsible for their own configuration, security, and data compliance (e.g., HIPAA, LGPD, GDPR).  
  &gt; Always secure API keys and ensure compliance with your local privacy regulations.

  🧠 Description

  This template deploys an AI-powered virtual medical secretary that automates appointment scheduling, rescheduling, and cancellations for clinics and healthcare professionals.  
  It seamlessly integrates OpenAI for natural language understanding, Google Calendar for real-time booking, and Evolution API (WhatsApp) or Telegram for patient communication.

  Patients can chat naturally via WhatsApp or Telegram, receiving empathetic, professional, and human-like responses — while your calendar stays automatically synchronized in real time.

  💡 What Problem Does This Solve?

  Managing appointments manually is time-consuming and error-prone, often requiring staff to handle repetitive tasks like checking availability, confirming times, or rescheduling.  
  Traditional systems lack conversational capabilities, forcing patients to call or text staff directly.

  This template solves that by creating a conversational AI assistant that interacts with patients through familiar messaging channels, reducing administrative workload and ensuring accurate real-time scheduling through Google Calendar.

  ⚙️ Key Features

  📅 Google Calendar Integration — Real-time synchronization of consultations and exams  
  🤖 AI Assistant Powered by OpenAI — Understands patient intent and replies naturally  
  💬 Multi-Channel Support — Works with WhatsApp (via Evolution API) and Telegram  
  🔄 Automated Workflow — Handles booking, rescheduling, and cancellations  
  🏥 Healthcare-Focused Design — Tailored for clinics, doctors, and medical secretaries  
  ✅ Customizable Responses — Modify prompts, message flows, and confirmation texts  
  ⏰ Reminders & Follow-ups — Reduce no-shows with automated notifications  

  🧩 Setup Instructions (Step-by-Step)

  Obtain Required Credentials:
     OpenAI API Key  
     Google Calendar API Credentials (OAuth or Service Account)  
     Evolution API Token (for WhatsApp)  
     Telegram Bot Token (if using Telegram)

  Configure n8n Environment:
     Add your credentials under Settings → Credentials.  
     Ensure your n8n instance has internet access to the APIs.

  Configure Node “Variables Config” & Update Nodes:
     Set nm_Clinic → Name of the clinic  
     Set nm_Agent → Name of the AI agent  
     Set ds_Address_Clinic → Address of the clinic  
     Set nm_Health_Plan → Name of the health insurance provider  
     Set nm_Evolution_Instance → Name of your Evolution API instance  
     Set nm_City_Clinic → City where the clinic is located  



  Customize the Conversation Flow:
     Edit OpenAI prompt nodes to match your clinic’s tone of voice.  
     Update Google Calendar event templates with your preferred titles and descriptions.

  Deploy and Test:
     Test both WhatsApp and Telegram channels.  
     Verify that appointments appear correctly in Google Calendar.  
     Review conversation logs to fine-tune the responses.

  🚀 Suggested Use Cases

  Ideal for:
  Clinics and medical offices wanting 24/7 automated appointment management  
  Healthcare professionals reducing manual scheduling and follow-ups  
  Multi-channel (WhatsApp + Telegram) patient interaction  
  Reducing no-shows with reminders and confirmations  
  Clinics seeking to modernize patient communication and optimize staff time  

  This assistant ensures every patient request is handled naturally — while Google Calendar remains the single source of truth for scheduling.

nodes_used:
  ["n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.stickyNote","n8n-nodes-base.redis","n8n-nodes-base.redis","n8n-nodes-base.redis","n8n-nodes-base.code","n8n-nodes-base.stickyNote","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.memoryBufferWindow","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.stickyNote","n8n-nodes-base.googleCalendarTool","n8n-nodes-base.googleCalendarTool","n8n-nodes-base.googleCalendarTool","n8n-nodes-base.switch","n8n-nodes-base.stickyNote","n8n-nodes-base.switch","n8n-nodes-base.stickyNote","n8n-nodes-base.splitInBatches","n8n-nodes-base.splitInBatches","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.switch","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.set","n8n-nodes-evolution-api.evolutionApi","n8n-nodes-base.stickyNote","n8n-nodes-base.telegramTrigger","n8n-nodes-base.telegram","n8n-nodes-base.dateTime","n8n-nodes-base.wait","n8n-nodes-base.set","n8n-nodes-base.splitOut","n8n-nodes-base.webhook","n8n-nodes-base.if"]

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

metadata_json:
  {"categories":["automation","scheduling","communication","integration","AI assistants"],"complexity":"complex","use_cases":["Automated appointment scheduling and rescheduling","Multi-channel customer communication (WhatsApp & Telegram)","AI-driven conversational booking assistant","Calendar checking and event creation (Google Calendar)","Session-based conversational history and follow-up reminders"],"estimated_setup_minutes":90,"required_services":["n8n self-hosted instance","WhatsApp Business API or Twilio WhatsApp","Telegram Bot API","OpenAI or compatible AI/ML API","Google Calendar API","Redis (for session/state storage)"],"key_features":["Natural-language AI conversation for booking and inquiries","Bi-directional integration with Google Calendar (check/create events)","Multi-channel messaging support (WhatsApp & Telegram)","Session memory and context windows (Redis + memory buffer)","Conditional routing and fallback logic (switch nodes) to handle different flows and errors or confirmations"],"target_audience":["SMBs and clinics needing automated scheduling","Customer support and operations teams","Developers and DevOps setting up self-hosted automation workflows\",\"No-code/low-code automators comfortable configuring APIs and credentials"]}


name: Extract Contact Information from Business Cards with Mistral OCR and GPT-4o-mini
author_name: Wolfgang Renner
author_username: naviqo
categories: []
created_at: 2025-10-03T02:42:30.216Z
updated_at: 2025-10-03T02:42:30.216Z
url: https://n8n.io/workflows/9212
scraped_at: 2025-10-27 22:15:59
description:
  🧠 Business Card Scanner – Automate Contact Extraction

  This workflow automates the process of extracting contact details from business cards (PDF or image) and saving them directly into an n8n Data Table.  
  No more manual data entry — just upload a card and let AI do the rest.

  ⚙️ How It Works

  Upload the business card via a web form (PDF or image).  
  The uploaded file is converted to Base64 for processing.  
  The Base64 data is sent to the Mistral OCR API, which extracts text from the image.  
  The OCR output is parsed into JSON.  
  An AI Agent (OpenAI GPT-4o-mini) interprets the extracted text and converts it into structured business card information (e.g., name, company, email, phone).  
  The Structured Output Parser validates and aligns the data with a predefined schema.  
  The workflow upserts (inserts or updates) the contact details into an n8n Data Table named business cards, using the email address as the unique identifier.

  ✅ Result: Seamless digitization of business cards into structured, searchable contact data.

  🧩 Prerequisites

  Before importing the workflow, make sure you have the following:

  n8n Instance with access to the Data Table feature  
  OpenAI Platform account and API key (configured in n8n)  
  Mistral AI account and API key (configured in n8n)

  🛠️ Setup Steps

  Import the Workflow  
     Download and import the JSON file into your n8n instance.

  Create a Data Table  
     Name it business_cards (or adjust the workflow accordingly).  
     Add the following fields:  
            firstname
       name
       company
       jobdescription
       phone
       mobil
       email
       street
       postcode
       place
       web
       
  Configure API Credentials  
     Mistral OCR API → Add your API key under HTTP Bearer Auth.  
     OpenAI API → Add your API key under OpenAI Credentials.  
       Model: gpt-4o-mini (recommended for speed and low cost).

  Activate the Web Form Trigger  
     Enable the trigger node to make the business card upload form accessible via a public URL.

  Test the Workflow  
     Upload a sample business card.  
     Confirm that extracted contact data automatically appears in your Data Table.

  💡 Example JSON Output

  {
    "firstname": "Anna",
    "name": "Müller",
    "company": "NextGen Tech GmbH",
    "jobdescription": "Head of Marketing",
    "email": "anna.mueller@nextgen.tech",
    "phone": "+49 821 1234567",
    "mobil": "+49 170 9876543",
    "street": "Schillerstraße 12",
    "postcode": "86150",
    "place": "Augsburg",
    "web": "https://nextgen.tech"
  }

nodes_used:
  ["n8n-nodes-base.httpRequest","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.outputParserStructured","@n8n/n8n-nodes-langchain.memoryBufferWindow","n8n-nodes-base.dataTable","n8n-nodes-base.formTrigger","n8n-nodes-base.extractFromFile","n8n-nodes-base.extractFromFile","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  H4sIAAAAAAAAE71Z6W4bORJ+FYIZYDJAU+770GKAdXxkkkxiry3P7ExkGGyyWuq4r+lmW1YM/dy3WGD3377XPsE+woLsltSSWkqChfefVF1kFb86WFV8wjHHQxy4x6F3OXkwzt7Wo/TxHdZwCoLi4ROOs0rQjMEbycf8MHDADJjhGaYXmoYZ6TZEzKaRDr4PoQ/ci4IopCyIdMewGGWmHtke+OC7PMQaFpAWCRVwUgKvrkHUxUmeFgkI4HgoyhoWGs5oCniIX9VVnEFVIUZLjipGswxKuQWdVHj48anRPZpms9R8NLM4sWYnp5/xan3mZ4hTQUNaAdYwK4EK4McCD7Gpmw4xdKJbI90cGsHQ8Qa65fyONVwX/MtsC62V/tnR73/74P5+8mp2Ij5BsJb+Pq5ESRN0cXJ1ULjpDJ1g4BneYeEdtpXwN3T2blJ/yCa/Xv1hJzewFn5RQHb8Zp9cV25oWUPHHwSeuVfuNtviVsNZzqEDPrMsi4UuJ77lusQ2AkbCCICwwAps3+GBYZq9kKDjS6memBetpYjamUhbDaZCFFfwRw2VwBou8ioWcZ7h4UfHczUnMG81XNCSpiCgrKST1mWCh1guq4ZHR7SIB2kjakDjowfjKGdl49LTXGp9eXE9whrOC7mt2qCEqsizCvb9Ps/LlEpwojiRMOe1KGpxWeYFlGL+oTlezsq75sPgU5VneLFYaFj+epXzOR7iH5/GGUJjnOYckjEeyp+NmiRnJZFRUYkx1hounrM6hUxIRrVQEiVezcrl57u6TNo1aIesGKmgQ1oUScyoPO9RwaM/SZhdW3t6Qt9JBQeSCS0WYyz3WbQaxBlLag53cUoncNcskXvKKB1nC6zhCjLeHE7SNFwVwOJo3p5XgaBhWospZKIVj4d4AhmUMZMZQNJpMpJeoC3px7WYjhq/kBZ9BbSEUhLxQvlzu0jZbYth2Lrl+V+vPr+9OL8+D9+6QT5/3e+CBDVL0W8XN1d3o4t3Zx/ufjq7OkOUsbzOBJb2k4j/AmWlVLcH5ir4PNMOXN3nJALTJbbNPBJaFiUuo0bkWrYZsmgt9/gNOp5AJtY+/+fMz47Wjp/QbMKmNM4GtOXr+L2h+36v4wt4lF754ypVntCSD9GGXQcFnUD1Ub8dpLS85/ksQ4vFpvtX80pA+h6qik6kbr/lNaIlIIrCjRxcAuVQIjGlQv2ukJiCyrEoKvNU/ZOMA2mqoszTQrSW5BDFmTTylFYXTfDQsoJylfM3cDY7OFMIWEBtl0QW2MQ29JD4QF1CXdswDWo4kW5tJz50IjV8L+PsKwBPUsmuVsbbuOu+5hvuDu4qhOWPuzuZehrvl0Q8xEms0tYDTWr5d1IIYuckjTO5OaNsCvwKqjoRbdroMiy6Zlns+nuulDwu4pWrF7/rf2V/SdLEvDTO6M10C4p4vzMbHZAdz5Np3CBm4OjEZi4lYeB6xAbd9kPPdV23A/K1KGsm6hI4amyJWmN+Geu8Y/v1NluoW2Y/6tKlr9kUUnr2SGXRgIf4aZyNxRhHcVkJqV6T9FRGlPQtUpMkWZ4WNJvv0GcQ7tAgpXGyQ61ECSB2yEVeCZbzXYlFQlkPdZpnu9Q0D+Nkl/wpDzlUrIyVfyw/yzy8a1hrZVjbsgIXTIdQ36LSsIz4XkgJj4CHUWCZvuN3DBtLVNF7SPNy/hXWTBXjqzqKoPw1zng+27KkYbm9lqygkrq+g+ZefELfvfz+VKYRkaPmovn+h0EsIFU36aCqwzQWqkBpcle7/g1v0wurK5GncrtDYDDHcu2QmcQHnRI7smxCA9cmnudaOot8k+t0DcZNUUEpUJnPXlY/7K1VZPIb0VBVBd2T23syNsuTOm2ybpshnpYCf1yl7baKkPTmvMoL+1jUh4ZHeVMfj/rQ8kg/7OWRHxqexv/6mJovrQVUBPRxNV8arjbS+tjaT61ebeD0qtZ+azhXgd7HuvrY8G6GTN+CFYdkkIsWGq5Uhuk0GCuJKx+oRBlnE6xhHldFQlf1Twlp/iAbmYgmlfpP+UWWzDuEP+q47HC0G7RXQVcUh4jWiXhPBZu27CtH/v9o8xWKLO377LqsBR1SZ8vgz67VjrxDyjUx/Ow6LcUcUqVJFc+uylLMIVXabPPsuqzkHFKmTWrPrsxKzkEjLXPi89tpLemgQuryeH5tWjF9qtxqOKVFEWeT981t0fQVryBRpUcqeeNscrK8ZD/eapgKOXMSo/wkzx6gVB1JtZLNGuJ5DAmvRvl1c6jlyWW/v765Mx63tfnHJ3wP2xF3D/Nf2qJ//z29uFU1PpTLbrhWZYY877KSkKO2r+ksfh29K4x8cvP6g36vF6fuVntxo4YiR0WZfwImqqPH+mdrfvpavPduysvs7OpIChRSYHX0ha3ag240g1VPR7FyFT10g0APGHFsJyI2symhfhQQ39YdSzc8sKA7rcpQlJcpUmWeKuz2lluSb1TGk4nqNroFl7mst2YQTvP8Xg0sKY2i0DJsApYRENtnFvEp1YnhWDRyODN9n+HtEq3TgWlYCYxFcmggKXkaB1qVdY2PRJLYlqjt5EiRfqahbB9XgN7JDaX/1omIiwTO46Tjost4USLahvm2Ve10o765KZKc8p22/eXl6TnKS6QGOT/slMhmp0TmzIu4HXlE15lHbNu2SBD5nHiuaTjUMcHozjg3S/a9RoNHUVImzss8PY+3K2XLMXsL5c544h6guM7rUpWuYd5MgroxFMYZLeejvBnIySqhoWwN6Dbh3vFeDdNkRuftfEKebTsD+rpvOKAbxNctTmzLcAh1dZ/4wCMbQsvizFij8/b64sNOZ/wt0PhG/7hzw0G7OMghzNtm6tYLwM6Ecm8AczD9CBydhJbnEjs0KAlczogehuA7rmHZDLoDgZjdz9GHXMDek1aKp2Xp2t/ULN/u65PyEg89DU8hnkwFHtq6rtK1kOOxIX6B6sbbH2KKKJpBqJLIOCt4pKFPxURDg8FgcOCMjh75FCyXOJzLdtClxHcjm5hAHR4ZLIio03tG45sPafr+F045i7kcYLqOe+DEcmopj7s1SB9nL16gj6c5q25fLofgnQF4BrPqqDNp3s0Aa0xccF1qMJuwiOvE5iwkvmNGxOPU0Q0fbIvzXkzMb8YkcPWvw8QOOpjIJ4ANTM6aCGomkaoa4Kj93uCiHpkQzVDezAaPL9+ge5jfvpwusZIPUtJ3BpKDxrI1lY8I5B7m1SGwQityTN/kJKShQ2zTNQl1DYM43HCpabm6pZ68dsGyvhksw/b+hzhRg4zlqFbKGWcyFU4UrSlNKOelvDBoJcFBsiWGMqbjQ0nCB8e0OXWIZ3MgdkgpCZjnkQCMyHApo5au955//1Wx7/zE1Q9GkLOOIN3fj8UL9J9//OufaGNcjq6bi3ycjbPRNK7QLC/voySfIVqLPKXy5SJJ5qhN1ZXyLulxHASNk6oZfTfJCPjW1auu3Epevpen5xVqUO+GL804aofWry9Hy0GwJi2ToYo+QDNjr9YjVzVujzORS5+Wb5zqFlaV40CeQfn7UI4/jcFYHHOO5nldroS27o9e/jQaXe55AflBbiTM7vKLjeBBL5eD9vV8ullkDcbiRD06ItrRDEknWIOjbuAKzWIxRaoiqmTyVkwaant9rfFMDak2UkMgmJJgD8biLFObSmTk0xxqS0JZi7S3wmatqmCWz2tqydLACq5///1vqKlyhzuLSkDN+7dI5ojHk1jEn4E34FdASzZVaqwcQr629MSLbEKYiB9gVdJVIEScTZQHwyOwWrr5Rcnlgwh+MOQeD816Vcb6jq5TGpkksEKT2KYJJHQ8m/iWHVryJd6wPDVtyzJgq7Jp9eYkHyxoLMPo45N6wd0/3VR8Go4zDo94qC9uZaHZLWT69tp93OrdZnO6PHzCNL5L2z8Hd1vzbW+5VYD2Kbf30blXx23uvh1767re3XZfo5pTywl6TSfQ0r50+E32HSG73VOf1vtq9X5T7XvhafTPN17wvqT+BvempMXiv1dVu4KCIgAA

metadata_json:
  {"categories":["automation","data processing","AI/ML","OCR","integration"],"complexity":"medium","use_cases":["Extract contact details from business cards (PDF/image)","Automate CRM / contact list population","Reduce manual data entry for events/trade shows","Digitize paper contacts for analytics/search"],"estimated_setup_minutes":20,"required_services":["Mistral OCR API","GPT-4o-mini (OpenAI)","n8n (Data Tables, Webhook/Form hosting)"],"key_features":["Upload via web form (PDF or image)","Base64 conversion of uploaded file","Text extraction using Mistral OCR","Structured information extraction/parsing with GPT-4o-mini","Save parsed contacts directly into an n8n Data Table (no manual entry)"],
  "target_audience":["sales teams","marketing teams","office administrators/operations staff`,`developers/integration engineers"]}


name: Generate Exam Question Papers with GPT-4 and Email Delivery
author_name: Gracewell
author_username: gracewellai
categories: []
created_at: 2025-10-03T18:06:46.625Z
updated_at: 2025-10-03T18:06:46.625Z
url: https://n8n.io/workflows/9248
scraped_at: 2025-10-27 22:15:59
description:
  Who Is This For?

  This workflow is designed for educators, universities, examination departments, and EdTech institutions that need a faster, smarter, and standardized way to prepare exam question papers.

  What Problem Does This Solve?

  Creating balanced, outcome-based question papers can take hours or even days of manual effort. Faculty often struggle to:

  Ensure syllabus coverage across units
  Maintain Bloom’s Taxonomy alignment
  Keep a consistent difficulty balance
  Format papers in institution-specific templates

  How it works

  This workflow automatically generates an exam question paper based on syllabus topics submitted via a form and sends it to the entered email address.

  Here’s the flow in simple steps:

  Form Submission – A student or faculty fills out a form with subject code, syllabus topics, and their email.

  AI Question Generation – The workflow passes the syllabus to AI agents (Part A with 2 Marks, Part B with 13 Marks, and Part C with 14 Marks) to create question sets. The marks and the no. of question generated can be customized according to the convenience. 

  Merging Questions – All AI-generated questions are combined into a single structured document.

  Format into HTML – The questions are formatted into a clean HTML exam paper (can also be extended to PDF).

  Send by Email– The formatted exam paper is sent to the user’s email (with option to CC/BCC).

  Set up steps

  Connect Accounts 

  Connect your OpenAI (or LLM) credentials for AI-powered question generation.
  Connect your Gmail (or preferred email service) to send emails.

  Prepare Form

  Create an n8n form trigger with required fields:
     Subject with Code
     Syllabus for Unit 1, 2, 3…
     Email to receive the paper

  Customize Question Generation

  Modify the AI prompts for Parts A, B, and C to fit your syllabus style (e.g., 2-mark, 13-mark, 14-mark).

  Format the Exam Paper

  Adjust the HTML template to match your institution’s exam paper layout.

  Test & Deploy

  Submit a test form entry.
  Check the received email to ensure formatting looks good.
  Deploy the workflow to production for real usage.

  Need help customizing?

    
       ✉️ Contact Me
    
    
       💼 LinkedIn
    

nodes_used:
  ["n8n-nodes-base.formTrigger","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.outputParserStructured","@n8n/n8n-nodes-langchain.outputParserStructured","@n8n/n8n-nodes-langchain.outputParserStructured","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.merge","n8n-nodes-base.merge","n8n-nodes-base.code","n8n-nodes-base.gmail","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.html","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 5528 characters]

metadata_json:
  {"categories":["education","automation","content generation","document delivery"],"complexity":"complex","use_cases":["Automated exam paper generation","Standardizing assessments across syllabus units","Creating Bloom’s Taxonomy–aligned question sets","Balancing difficulty levels across papers","Emailing formatted papers to stakeholders"],"estimated_setup_minutes":45,"required_services":["OpenAI (GPT-4) or compatible LLM API","Email provider (SMTP/Gmail/SendGrid)","n8n instance"],"key_features":["Generate exam questions using GPT-4","Ensure syllabus/unit coverage","Align questions to Bloom’s Taxonomy and difficulty levels","Structured output parsing for consistent formatting","HTML/email templating and delivery to recipients','Form-based input for exam parameters','Merge and code nodes for customization and paper assembly"],"target_audience":["Educators","Universities and examination departments","EdTech companies and instructional designers"]}


name: Automate Telegram Message Processing - Separate Text and Files 💬📁
author_name: EoCi - Mr.Eo
author_username: eocimreo
categories: []
created_at: 2025-10-03T20:35:17.472Z
updated_at: 2025-10-03T20:35:17.472Z
url: https://n8n.io/workflows/9254
scraped_at: 2025-10-27 22:15:59
description:
  Introduction
  Tired of manually downloading a file through different Telegram messages? This workflow acts as a smart receptionist for your Telegram bot, automatically processing incoming messages to cleanly separate text from file attachments, getting them ready for any automation you can dream up! 📥

  🎯 What This Does
  This workflow solves the challenge of handling varied Telegram messages within a single automation workflow. Incoming messages can be just text, just a file, or a file with a caption. This template intelligently identifies the message type and routes it down the correct path, isolating the text content and downloading the file attachment. It's perfect for community managers, support teams, or anyone building a Telegram-powered chatbot.

  🔄 How It Works
  Listens for New Messages: The workflow starts the moment a new message is sent to your connected Telegram bot.
  Checks Message Content: A Switch node instantly determines if the message contains:
      Text only
      Attachment only
      Attachment with a message (text caption)
  Separates Message and File: Based on the content, the workflow isolates the text (from the message or caption) and the file's metadata (file_id, file_name).
  Downloads the Attachment: For any message containing a file, the workflow automatically downloads it, making the binary data available for the next steps in your automation.
  🧩 Nodes Used
  Telegram Trigger
  Telegram
  Switch
  Set
  Split Out
  No Operation - NoOp (as a placeholder for your next steps)
  🚀 Setup Requirements
  Credentials:** You'll need a Telegram Bot API Token (Key) and Chat ID.
  Accounts:** A Telegram account.
  Setup Time:** Less than 5 minutes.
  Set up steps
  Create a Telegram Bot: 
  	First, you need a bot. Open Telegram and send a message to the official @BotFather.
      Send the command /newbot.
      Follow the prompts to choose a name and username for your bot.
      BotFather will provide you with a unique API Token. Copy this token, it's what you'll need for the next step.
  Add Credentials to n8n:
      In your n8n workflow, navigate to the Credentials section in the left panel.
      Click Add credential, search for "Telegram," and select it.
      Paste the API Token you copied from BotFather into the Access Token field.
      Click Save to create your credential.
  Connect Your Bot to the Workflow:
      Back on the canvas, open the Waiting For Message (Telegram Trigger) node.
      In the Credential for Telegram API dropdown, select the credential you just created.
      Open the Get & Download Attachment (Telegram) node and select the same credential.
  Activate and Test!
      Click the Activate toggle in the top right corner of your screen.
      Now, send a few different messages to your new bot on Telegram to test all the paths:
          A simple text message (e.g., "Hello!").
          A file (like a PDF or Notepad) with no text.
          A file with a caption(message).
      You can check the Executions tab in n8n to see each test run successfully! The NoOp nodes at the end of each path show you the final, cleanly separated data.
  💎 Benefits / Why It Matters
  This template provides a robust and reliable foundation for any Telegram automation. By neatly separating text from files, you can seamlessly connect Telegram to any other service whether you're archiving documents to Google Drive, analyzing feedback with Gemini, or logging support requests in a database. It saves development time and ensures your automations run smoothly

nodes_used:
  ["n8n-nodes-base.telegramTrigger","n8n-nodes-base.set","n8n-nodes-base.switch","n8n-nodes-base.splitOut","n8n-nodes-base.set","n8n-nodes-base.telegram","n8n-nodes-base.set","n8n-nodes-base.noOp","n8n-nodes-base.noOp","n8n-nodes-base.noOp","n8n-nodes-base.set","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, 6144 characters]

metadata_json:
  {
    "categories": [
      "automation",
      "messaging",
      "integration",
      "data processing"
    ],
    "complexity": "medium",
    "use_cases": [
      "Automatically process incoming Telegram messages and attachments",
      "Save or route file attachments to storage/workflows without manual download",
      "Extract and forward message text to NLP, CRM, ticketing, or notification systems",
      "Support workflows for customer support, community management, or content ingestion",
      "Pre-process mixed messages (text + file) for downstream automations"
    ],
    "estimated_setup_minutes": 15,
    "required_services": [
      "Telegram Bot API (bot token)"
    ],
    "key_features": [
      "Automatically separates plain text from file attachments",
      "Handles messages with text only, file only, or file + text",
      "Routing logic using switch/split to direct different message types",
      "Prepares files and text for downstream automations (storage, processing, notifications)",
      "Visual notes and simple transformations to make the flow clear and extensible"
    ],
    "target_audience": [
      "n8n users / automation builders",
      "Developers and automation engineers",
      "Customer support and community managers integrating Telegram workflows"
    ]
  }


name: YouTube Channel Monitor with Gemini AI Transcription & Summarization
author_name: Muhammad Asadullah
author_username: asadtech
categories: []
created_at: 2025-10-04T21:06:10.585Z
updated_at: 2025-10-04T21:06:10.585Z
url: https://n8n.io/workflows/9268
scraped_at: 2025-10-27 22:15:59
description:
  This n8n workflow monitors YouTube channels 24/7, transcribes new videos with AI, and scores them by relevance—all automatically saved to Google Sheets.

  About

  This n8n workflow automatically monitors YouTube channels, transcribes new videos, and generates AI-powered summaries with relevance scoring. It pulls channel URLs from a Google Sheet, fetches recent videos (last 14 days), transcribes them using Google Gemini, and saves detailed summaries back to your spreadsheet with relevance scores based on custom criteria.

  How It Works

  Schedule Trigger: Runs weekly (every 7 days at 7:05 AM)
  Fetch Channels: Reads channel URLs and filter criteria from Google Sheets
  Process Channels: Loops through each channel and fetches recent videos via YouTube RSS feeds
  Filter Videos: Only processes videos from the last 14 days that don't already exist in the database
  Transcribe: Uses Google Gemini API to transcribe video content
  Summarize & Score: AI agent analyzes transcripts against your criteria and generates:
     Full 500-word summary in markdown
     Short bullet-point summary
     Topic classification
     Relevance score (1-10)
     Relevance reasoning
  Save Results: Appends or updates video data in Google Sheets

  Setup Instructions

  Prerequisites
  n8n instance (cloud or self-hosted)
  Google account with Sheets API access
  Google Gemini API key

  Step 1: Google Sheets Setup

  Create a new Google Spreadsheet with two sheets:

  Google Sheet Template: Click here to access
     Make a copy to your Google Drive
     Configure the two sheets as described below

  Sheet 1: "channels"
  Column A: category (e.g., "AI Tools", "Marketing")
  Column B: channels (comma-separated YouTube channel URLs)
  Column C: video filter criteria (describe what makes videos relevant)

  Sheet 2: "videos"
  Columns: id, title, video url, date, channel, category, topic, summary, short sumary, transcript, relevance score, relevance reason

  Step 2: Configure n8n Workflow

  Import the workflow JSON into n8n
  Google Sheets Authentication:
     Connect your Google account in both "Get row(s) in sheet" nodes
     Update the document ID to match your spreadsheet
  Gemini API Key:
     In the "set channel" node, replace the placeholder API key with your own Gemini API key
     Get your key from: https://makersuite.google.com/app/apikey

  Step 3: Adjust Settings (Optional)

  Video lookback period**: Edit line 6 in "Videos Posted in Last X days" node (default: 14 days)
  Videos per channel**: Modify the "Limit" node (default: 4 videos)
  Schedule**: Change the "Schedule Trigger5" node timing as needed
  Wait times**: Adjust wait nodes to respect API rate limits

  Step 4: Test & Activate

  Add a test channel URL to your "channels" sheet
  Run the workflow manually to verify it works
  Activate the workflow to run on schedule

  Notes

  The workflow includes rate limiting (wait nodes) to avoid API throttling
  Videos are checked for duplicates before processing
  Failed transcriptions continue to the next video without stopping the workflow
  Results are automatically saved to Google Sheets after each video processes

nodes_used:
  ["@n8n/n8n-nodes-langchain.outputParserStructured","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.if","n8n-nodes-base.splitInBatches","n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.googleSheets","n8n-nodes-base.if","n8n-nodes-base.code","n8n-nodes-base.splitInBatches","n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.rssFeedRead","n8n-nodes-base.code","n8n-nodes-base.set","n8n-nodes-base.if","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.googleSheets","n8n-nodes-base.if","n8n-nodes-base.if","n8n-nodes-base.googleSheets","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.wait","n8n-nodes-base.wait","n8n-nodes-base.wait","n8n-nodes-base.stickyNote"]

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

metadata_json:
  {
    "categories": [
      "automation",
      "content monitoring",
      "AI transcription & summarization",
      "data integration"
    ],
    "complexity": "complex",
    "use_cases": [
      "Monitor competitor or industry YouTube channels for new content",
      "Automatically create summaries and transcripts for research or knowledge bases",
      "Content curation for newsletters or social media",
      "Lead generation and outreach based on relevant video content",
      "Monitoring brand mentions or product reviews"
    ],
    "estimated_setup_minutes": 45,
    "required_services": [
      "YouTube Data API (or public YouTube endpoints)",
      "Google Gemini (Google Cloud AI) or equivalent LLM/AI transcription service",
      "Google Sheets (or another spreadsheet service)",
      "n8n (self-hosted or n8n cloud) with credentials configured"
    ],
    "key_features": [
      "Continuous monitoring of multiple YouTube channels",
      "Fetches only recent videos (configurable window, default 14 days)",
      "AI-powered transcription of video audio",
      "Automated AI summaries and relevance scoring",
      "Batch processing and conditional filtering to avoid duplicates or irrelevant items (splitInBatches, if checks, set nodes, etc.)"
    ],
    "target_audience": [
      "content marketers",
      "community managers",
      "researchers and analysts monitoring video content trends"  ]
  }


name: GPT 4.1 - Freelancer.com Job Alert System with Auto Proposal Generator
author_name: Sulieman Said
author_username: sulieman-said
categories: []
created_at: 2025-10-04T21:57:40.400Z
updated_at: 2025-10-04T21:57:40.400Z
url: https://n8n.io/workflows/9270
scraped_at: 2025-10-27 22:15:59
description:
  Be first. Be relevant. Get hired.  
  This ready-to-import n8n workflow automates your entire Freelancer.com job search:  
  it scans new listings, filters the best ones with AI, writes proposal drafts, and sends them to Telegram instantly — all while logging every opportunity into Google Sheets.

  💡 Why Freelancers Love It

  ⚡ Instant Alerts: Get notified within minutes of new high-quality jobs.  
  🧠 AI-Powered Scoring: Filters scams, vague clients, and low-value gigs automatically.  
  ✍️ Smart Proposal Drafts: GPT-4.1 crafts 150–200 word personalized proposals for you.  
  📱 Telegram Integration: See job details + AI proposal in one alert message.  
  📊 Auto Tracking: Logs every lead in Google Sheets with scores, notes, and timestamps.  

  Spend less time searching — and more time winning projects.

  🧩 What’s Included

  ✅ n8n Workflow (.json) — ready to import and launch  
  ✅ Setup Guide (Markdown) — complete 5-step configuration walkthrough  
  🧰 Requirements

  Free n8n Cloud account (or self-hosted instance)  
  OpenAI API key** (GPT-4.1 or GPT-4-mini)  
  Telegram bot** + Chat ID (takes 2 minutes to create)  
  Google Sheets** account  

  🪜 5-Step Setup Guide (Detailed)

  1️⃣ Prepare Your Tools
  Get your OpenAI key → platform.openai.com  
  Create a Telegram bot via @BotFather → copy your token  
  Use @userinfobot to get your Chat ID  
  Create a Google Sheet with headers:  
    Timestamp | Job | Description | Link | AI Score | Reasoning | Red Flags | Client Type | AI Proposal | Alert Timestamp  
  Keep all keys and URLs ready.

  2️⃣ Import the Workflow in n8n
  Open n8n → + Workflow → Import from File → choose the .json provided below.  
  Once imported, open these nodes and connect your credentials:
    OpenAI nodes → add your API key  
    Google Sheets nodes → sign in with Google  
    Telegram node → paste your bot token + chat ID  
  Confirm the Schedule Trigger runs every 5 minutes (default).  

  3️⃣ Personalize Your Keywords & Filters
  Open Settings (Keyword & Wishlist):
    Job Keyword: e.g., react, seo, logo design, automation
    Wishlist: e.g., Budget &gt; $500, clear brief, long-term clients
  The RSS node auto-fetches new jobs from Freelancer.com:
      https://www.freelancer.com/rss.xml?keyword={{$json['Job Keyword']}}
      Optional filters:  
    &min_price=500 → only projects $500+  
    &max_price=5000 → skip mega-projects  
  Adjust Filter Job Quality:
    Description &gt; 100 chars  
    Posted within the last 2 hours  
  Tune AI Score Threshold (Gate Node) to &gt;= 7 for balanced alerts.

  4️⃣ Test Your Automation
  Click Execute Workflow once.
  If everything is set:
    🟢 Nodes turn green (success)
    📩 Telegram shows your first job alert
    📊 Google Sheet updates with a new job entry
  If empty, try:
    Broader keyword (e.g., python instead of python scraper)
    Increase freshness (2 → 6 hours)

  5️⃣ Go Live & Expand
  Activate your workflow.
  Let it run for 24–48 hours, then refine:
    Raise score threshold to 8–9 for higher quality
    Add RSS nodes for new categories (design, dev, content)
    Extend alerts to Slack, Discord, or Email
    Replace Google Sheets with Airtable or Notion
  Pro Tip:* Use *Apify** to scrape Upwork, Fiverr, or niche job boards → feed results into the same analyzer chain.

  ⚙️ How It Works (Behind the Scenes)

  Schedule → Fetch RSS → Filter → AI Analyze (score 1–10)
          → If score ≥ 7 → AI Proposal → Log to Sheets → Send Telegram Alert

  You still review and apply manually (TOS-safe), but you’ll always be among the first 5 applicants.

  🔌 Future-Proof Extensions

  | Extension | Description |
  |------------|--------------|
  | Apify Integration | Scrape Upwork, Fiverr, or niche boards with structured data |
  | Multi-Channel Alerts | Add Slack, Discord, or email digests |
  | Team Routing | Send design jobs to one chat, dev jobs to another |
  | Advanced Scoring | Add client history or location weighting |
  | Database Sync | Replace Sheets with Notion, Airtable, or PostgreSQL |

  🧾 Terms & Notes

  Manual review required (no auto-apply)  
  API costs: OpenAI ~$5–10/month  
  Respects Freelancer.com Terms of Service  
  All keys stored securely inside n8n credentials  

  🏁 Summary

  Automate your freelancing workflow.  
  This system finds, filters, and drafts proposals for you while you sleep.  
  ⚙️ Plug it into n8n → 🔑 Add keys → 🎯 Go live → 💰 Start winning faster.

nodes_used:
  ["n8n-nodes-base.rssFeedRead","n8n-nodes-base.filter","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.outputParserStructured","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.googleSheets","n8n-nodes-base.telegram","n8n-nodes-base.stickyNote","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.set","n8n-nodes-base.googleSheets","n8n-nodes-base.aggregate","n8n-nodes-base.filter","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.if","n8n-nodes-base.googleSheetsTool"]

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

metadata_json:
  {
    "categories": [
      "automation",
      "job-search",
      "integration",
      "AI-assisted workflows"
    ],
    "complexity": "medium",
    "use_cases": [
      "Monitor Freelancer.com for new job listings",
      "AI-score and filter high-quality gigs and filter out scams",
      "Auto-generate tailored proposal drafts with GPT-4.1",
      "Instant Telegram alerts for matched opportunities",
      "Log and track opportunities in Google Sheets"
    ],
    "estimated_setup_minutes": 25,
    "required_services": [
      "Freelancer.com RSS feed or API access",
      "OpenAI (GPT-4.1) or compatible AI provider",
      "Telegram Bot API (bot token & chat ID)",
      "Google Sheets (Google account + API/credentials)",
      "n8n instance (to import and run the workflow)"
    ],
    "key_features": [
      "Scheduled scanning of new listings (rssFeedRead + schedule)",
      "AI-powered scoring and scam/vague-client detection",
      "Automated proposal draft generation using GPT-4.1",
      "Instant push notifications to Telegram",
      "Structured output parsing and aggregation for consistent data capture into Google Sheets"
    ],
    "target_audience": [
      "Freelancers",
      "Independent contractors",
      "Small agencies / solopreneurs looking to scale outreach"
    ]
  }


