# templates

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

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"
    ]
  }


name: Automate Google Classroom with Gemini AI: Topics, Assignments & Student Tracking
author_name: Mantaka Mahir
author_username: mantakamahir
categories: []
created_at: 2025-10-05T11:52:02.880Z
updated_at: 2025-10-05T11:52:02.880Z
url: https://n8n.io/workflows/9277
scraped_at: 2025-10-27 22:15:59
description:
  Automate Google Classroom: Topics, Assignments & Student Tracking

  Automate Google Classroom via the Google Classroom API to efficiently manage courses, topics, teachers, students, announcements, and coursework.

  Use Cases

  Educational Institution Management
  Sync rosters, post weekly announcements, and generate submission reports automatically.

  Remote Learning Coordination
  Batch-create assignments, track engagement, and auto-notify teachers on new submissions.

  Training Program Automation
  Automate training modules, manage enrollments, and generate completion/compliance reports.

  Prerequisites
  n8n (cloud or self-hosted)  
  Google Cloud Console access for OAuth setup  
  Google Classroom API enabled  
  Google Gemini API key** (free) for the agent brain — or swap in any other LLM if preferred  

  Setup Instructions

  Step 1: Google Cloud Project
  Create a new project in Google Cloud Console.  
  Enable Google Classroom API.  
  Create OAuth 2.0 Client ID credentials.  
  Add your n8n OAuth callback URL as a redirect URI.  
  Note down the Client ID and Client Secret.

  Step 2: OAuth Setup in n8n
  In n8n, open HTTP Request Node → Authentication → Predefined Credential Type.  
  Select Google OAuth2 API.  
  Enter your Client ID and Client Secret.  
  Click Connect my account to complete authorization.  
  Test the connection.

  Step 3: Import & Configure Workflow
  Import this workflow template into n8n.  
  Link all Google Classroom nodes to your OAuth credential.  
  Configure the webhook if using external triggers.  
  Test each agent for API connectivity.

  Step 4: Customization
  You can customize each agent’s prompt to your liking for optimal results, or copy and modify node code to expand functionality.  
  All operations use HTTP Request nodes, so you can integrate more tools via the Google Classroom API documentation.  
  This workflow provides a strong starting point for deeper automation and integration.

  Features

  Course Topics
  List, create, update, or delete topics within a course.

  Teacher & Student Management
  List, retrieve, and manage teachers and students programmatically.

  Course Posts
  List posts, retrieve details and attachments, and access submission data.

  Announcements
  List, create, update, or delete announcements across courses.

  Courses
  List all courses, get detailed information, and view grading periods.

  Coursework
  List, retrieve, or analyze coursework within any course.

  Notes
  Once OAuth and the LLM connection are configured, this workflow automates all Google Classroom operations.  
  Its modular structure lets you activate only what you need—saving API quota and improving performance.

nodes_used:
  ["@n8n/n8n-nodes-langchain.chatTrigger","@n8n/n8n-nodes-langchain.agentTool","n8n-nodes-base.httpRequestTool","n8n-nodes-base.httpRequestTool","n8n-nodes-base.httpRequestTool","n8n-nodes-base.httpRequestTool","n8n-nodes-base.httpRequestTool","@n8n/n8n-nodes-langchain.agentTool","n8n-nodes-base.httpRequestTool","n8n-nodes-base.httpRequestTool","@n8n/n8n-nodes-langchain.agentTool","n8n-nodes-base.httpRequestTool","n8n-nodes-base.httpRequestTool","@n8n/n8n-nodes-langchain.agentTool","n8n-nodes-base.httpRequestTool","n8n-nodes-base.httpRequestTool","n8n-nodes-base.httpRequestTool","n8n-nodes-base.httpRequestTool","@n8n/n8n-nodes-langchain.agentTool","n8n-nodes-base.httpRequestTool","n8n-nodes-base.httpRequestTool","n8n-nodes-base.httpRequestTool","n8n-nodes-base.httpRequestTool","n8n-nodes-base.httpRequestTool","n8n-nodes-base.httpRequestTool","@n8n/n8n-nodes-langchain.agentTool","n8n-nodes-base.httpRequestTool","n8n-nodes-base.httpRequestTool","n8n-nodes-base.httpRequestTool","n8n-nodes-base.httpRequestTool","n8n-nodes-base.httpRequestTool","n8n-nodes-base.httpRequestTool","@n8n/n8n-nodes-langchain.agentTool","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","@n8n/n8n-nodes-langchain.memoryBufferWindow","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","@n8n/n8n-nodes-langchain.memoryBufferWindow","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","@n8n/n8n-nodes-langchain.memoryBufferWindow","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","@n8n/n8n-nodes-langchain.memoryBufferWindow","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","@n8n/n8n-nodes-langchain.memoryBufferWindow","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","@n8n/n8n-nodes-langchain.memoryBufferWindow","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","@n8n/n8n-nodes-langchain.memoryBufferWindow","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.memoryBufferWindow","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, 8348 characters]

metadata_json:
  {"categories":["education automation","integration","AI-assisted workflows"],"complexity":"complex","use_cases":["Educational institution roster & coursework management (sync rosters, post announcements, generate reports)","Remote learning coordination (batch-create assignments, track engagement, notify teachers on submissions)","Training program automation (manage courses, assignments and student progress)"],"estimated_setup_minutes":90,"required_services":["Google Classroom API (Google Workspace account & OAuth)","Google Gemini / Google Cloud AI (lmChatGoogleGemini access)","n8n instance (with webhook/HTTP endpoints configured)","Optional: Google Workspace services for attachments/reports (Drive, Sheets)"],"key_features":["Full course management: create/manage courses, topics, teachers, students","Automated announcements and batch assignment creation","Student submission tracking and automated teacher notifications","AI-assisted content generation and context-aware responses using Gemini","Webhooks-driven real-time automation and memory buffer for conversation/context persistence"],"target_audience":["school administrators / IT teams","teachers and instructional designers","training program managers / L&D teams in organizations (corporate training)   "]}


name: Auto-Summarize Blog Posts to Social Media with Gemma and Postiz
author_name: Kyriakos Papadopoulos
author_username: lzrd
categories: []
created_at: 2025-10-06T15:41:06.688Z
updated_at: 2025-10-06T15:41:06.688Z
url: https://n8n.io/workflows/9316
scraped_at: 2025-10-27 22:15:59
description:
  Auto-Summarize Blog Posts to Social Media with Gemma and Postiz

  This workflow automates fetching the latest post from a Blogspot RSS feed, summarizes it with an LLM (e.g., Gemma via Ollama), extracts and uploads an image, generates three relevant hashtags, and posts to Facebook, LinkedIn, X (Twitter), and Instagram via the Postiz API.

  It ensures content fits platform limits (e.g., 280 characters for X) and prevents duplicates using hashing.

  Pros:  
  Efficient for content creators  
  Local LLM ensures privacy  
  Customizable for any RSS/blog source  

  Cons:  
  Dependent on stable APIs (Postiz/social platforms)  
  LLM outputs may vary in quality without human review  

  Target Audience: Bloggers, content marketers, or social media managers looking to automate cross-platform posting from RSS sources, especially those focused on niches like health, tech, or personal development. Ideal for users with technical setup skills for self-hosting.

  Customization Options:  
  Adapt prompts in "Generate Summary and Hashtags with LLM" for tone/style (e.g., professional vs. casual).  
  Modify maxChars/hashtag reserve in "Calculate Summary Character Limit" for different platforms.  
  Extend for multiple RSS feeds by adjusting "Calculate Summary Character Limit" array.  
  Add error handling (e.g., IF node after "Create and Post Content via Postiz API") for API failures.

  Disclaimer: This template is designed for self-hosted n8n instances to leverage local Ollama for privacy. For cloud use, modify as follows: 1) Use an n8n cloud account, 2) Replace Ollama with a cloud API-based LLM like ChatGPT in the "Configure Local LLM Model (Ollama)" node, 3) Switch to cloud-hosted Postiz in the HTTP Request node.

  Template Image:

  How it works

  Set the RSS feed URL in "Set RSS Feed URLs".  
  Fetch the latest post via RSS.  
  Normalize fields and calculate the maximum summary length.  
  Use the LLM to summarize the text, append hashtags, and include the link.  
  Extract and process an image from the post HTML.  
  Validate inputs and post to social platforms via the Postiz API.  

  Setup Instructions

  Install n8n (self-hosted recommended for Ollama integration).  
  Set up Ollama with the Gemma (or a similar) model using "Ollama Model" credentials.  
  Add Postiz API credentials in the "Create and Post Content via Postiz API" node.  
  Replace placeholders:
     RSS URL in "Set News RSS Feeds"
     Integration IDs in the Postiz HTTP body  
  (Optional) Add error handling for API failures.  
  Activate the workflow and test with a sample post.  

  Uncertainties

  Changes in social media APIs may break posting functionality.  
  LLM output consistency depends on model choice and prompt configuration.  

  Required n8n Version

  Tested on n8n v1.107.3 (self-hosted).  
  Works with the community node n8n-nodes-langchain.  

  Resources

  n8n Docs: RSS Feed Read  
  n8n Docs: HTTP Request  
  Ollama Setup  
  Postiz Documentation   

nodes_used:
  ["n8n-nodes-postiz.postiz","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.splitOut","n8n-nodes-base.rssFeedRead","n8n-nodes-base.set","n8n-nodes-base.code","@n8n/n8n-nodes-langchain.chainLlm","@n8n/n8n-nodes-langchain.lmOllama","n8n-nodes-base.code","n8n-nodes-base.set","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.editImage","n8n-nodes-postiz.postiz","n8n-nodes-base.code","n8n-nodes-base.splitInBatches","n8n-nodes-base.merge","n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.code","n8n-nodes-base.code"]

workflow_json_compressed:
  [encoded data, 9468 characters]

metadata_json:
  {"categories":["automation","social media","content-repurposing","integration","AI"],"complexity":"complex","use_cases":["Automatically repurpose blog posts into social posts","Maintain multi-platform social presence from a single RSS source","Generate concise summaries and hashtags via LLM","Extract and attach/post images with each social update","Prevent duplicate posts across platforms"],"estimated_setup_minutes":60,"required_services":["Ollama (local LLM host) with Gemma model","Postiz API (connected Facebook, LinkedIn, X, Instagram accounts)","Blogspot RSS feed (or any RSS source)","Optional: image hosting or CDN if not uploaded via Postiz"],"key_features":["Reads latest post from RSS feed","Summarizes content with a local LLM (Gemma via Ollama)","Extracts and uploads post image","Generates three relevant hashtags","Formats content to platform limits (e.g., 280 chars for X) per-platform customization (Facebook, LinkedIn, X, Instagram)"],"target_audience":["content creators","social media managers","digital marketers/agencies producing blog-driven social content scripts for developers/ops to deploy"]}


name: Automated Law Firm Lead Management & Scheduling with AI, Jotform & Calendar
author_name: iamvaar
author_username: iamvaar
categories: []
created_at: 2025-10-08T17:13:30.017Z
updated_at: 2025-10-08T17:13:30.017Z
url: https://n8n.io/workflows/9383
scraped_at: 2025-10-27 22:15:59
description:
  Youtube Explanation: [https://youtu.be/KgmNiV7SwkU](https://youtu.be/KgmNiV7SwkU
  )

  This n8n workflow is designed to automate the initial intake and scheduling for a law firm. It's split into two main parts:

  New Inquiry Handling: Kicks off when a potential client fills out a JotForm, saves their data, and sends them an initial welcome message on WhatsApp.
  Appointment Scheduling: Activates when the client replies on WhatsApp, allowing an AI agent to chat with them to schedule a consultation.

  Here’s a detailed breakdown of the prerequisites and each node.

  Prerequisites

  Before building this workflow, you'll need accounts and some setup for each of the following services:

  JotForm
  JotForm Account**: You need an active JotForm account.
  A Published Form**: Create a form with the exact fields used in the workflow: Full Name, Email Address, Phone Number, I am a..., Legal Service of Interest, Brief Message, and How Did You Hear About Us?.
  API Credentials**: Generate API keys from your JotForm account settings to connect it with n8n.

  Google
  Google Account**: To use Google Sheets and Google Calendar.
  Google Sheet**: Create a new sheet named "Law Client Enquiries". The first row must have these exact headers: Full Name, Email Address, Phone Number, client type, Legal Service of Interest, Brief Message, How Did You Hear About Us?.
  Google Calendar**: An active calendar to manage appointments.
  Google Cloud Project**:
      Service Account Credentials (for Sheets): In the Google Cloud Console, create a service account, generate JSON key credentials, and enable the Google Sheets API. You must then share your Google Sheet with the service account's email address (e.g., automation-bot@your-project.iam.gserviceaccount.com).
      OAuth Credentials (for Calendar): Create OAuth 2.0 Client ID credentials to allow n8n to access your calendar on your behalf. You'll need to enable the Google Calendar API.
      Gemini API Key: Enable the Vertex AI API in your Google Cloud project and generate an API key to use the Google Gemini models.

  WhatsApp
  Meta Business Account**: Required to use the WhatsApp Business Platform.
  WhatsApp Business Platform Account: You need to set up a business account and connect a phone number to it. This is **different from the regular WhatsApp or WhatsApp Business app.
  API Credentials**: Get the necessary access tokens and IDs from your Meta for Developers dashboard to connect your business number to n8n.

  PostgreSQL Database
  A running PostgreSQL instance**: This can be hosted anywhere (e.g., AWS, DigitalOcean, Supabase). The AI agent needs it to store and retrieve conversation history.
  Database Credentials**: You'll need the host, port, user, password, and database name to connect n8n to it.

  Node-by-Node Explanation

  The workflow is divided into two distinct logical flows.

  Flow 1: New Client Intake from JotForm

  This part triggers when a new client submits your form.



  JotForm Trigger
      What it does: This is the starting point. It automatically runs the workflow whenever a new submission is received for the specified JotForm (Form ID: 252801824783057).
      Prerequisites: A JotForm account and a created form.

  Append or update row in sheet (Google Sheets)
      What it does: It takes the data from the JotForm submission and adds it to your "Law Client Enquiries" Google Sheet.
      How it works: It uses the appendOrUpdate operation. It tries to find a row where the "Email Address" column matches the email from the form. If it finds a match, it updates that row; otherwise, it appends a new row at the bottom.
      Prerequisites: A Google Sheet with the correct headers, shared with your service account.

  AI Agent
      What it does: This node crafts the initial welcome message to be sent to the client.
      How it works: It uses a detailed prompt that defines a persona ("Alex," a legal intake assistant) and instructs the AI to generate a professional WhatsApp message. It dynamically inserts the client's name and service of interest from the Google Sheet data into the prompt.
      Connected Node: It's powered by the Google Gemini Chat Model.

  Send message (WhatsApp)
      What it does: It sends the message generated by the AI Agent to the client.
      How it works: It takes the client's phone number from the data (Phone Number column) and the AI-generated text (output from the AI Agent node) to send the message via the WhatsApp Business API.
      Prerequisites: A configured WhatsApp Business Platform account.

  Flow 2: AI-Powered Scheduling via WhatsApp

  This part triggers when the client replies to the initial message.



  WhatsApp Trigger
      What it does: This node listens for incoming messages on your business's WhatsApp number. When a client replies, it starts this part of the workflow.
      Prerequisites: A configured WhatsApp Business Platform account.

  If node
      What it does: It acts as a simple filter. It checks if the incoming message text is empty. If it is (e.g., a status update), the workflow stops. If it contains text, it proceeds to the AI agent.

  AI Agent1
      What it does: This is the main conversational brain for scheduling. It handles the back-and-forth chat with the client.
      How it works: Its prompt is highly detailed, instructing it to act as "Alex" and follow a strict procedure for scheduling. It has access to several "tools" to perform actions.
      Connected Nodes:
          Google Gemini Chat Model1: The language model that does the thinking.
          Postgres Chat Memory: Remembers the conversation history with a specific user (keyed by their WhatsApp ID), so the user doesn't have to repeat themselves.
          Tools: Know about the user enquiry, GET MANY EVENTS..., and Create an event.

  AI Agent Tools (What the AI can *do*)
      Know about the user enquiry (Google Sheets Tool): When the AI needs to know who it's talking to, it uses this tool. It takes the user's phone number and looks up their original enquiry details in the "Law Client Enquiries" sheet.
      GET MANY EVENTS... (Google Calendar Tool): When a client suggests a date, the AI uses this tool to check your Google Calendar for any existing events on that day to see if you're free.
      Create an event (Google Calendar Tool): Once a time is agreed upon, the AI uses this tool to create the event in your Google Calendar, adding the client as an attendee.

  Send message1 (WhatsApp)
      What it does: Sends the AI's response back to the client. This could be a confirmation that the meeting is booked, a question asking for their email, or a suggestion for a different time if the requested slot is busy.
      How it works: It sends the output text from AI Agent1 to the client's WhatsApp ID, continuing the conversation.

nodes_used:
  ["n8n-nodes-base.jotFormTrigger","n8n-nodes-base.googleSheets","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.whatsAppTrigger","n8n-nodes-base.if","n8n-nodes-base.googleCalendarTool","n8n-nodes-base.googleCalendarTool","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.memoryPostgresChat","n8n-nodes-base.googleSheetsTool","n8n-nodes-base.whatsApp","n8n-nodes-base.whatsApp","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 8020 characters]

metadata_json:
  {"categories":["automation","integration","scheduling","CRM","legal intake','ai-assistant"],"complexity":"medium","use_cases":["Automated client intake","Lead capture from forms","Welcome / follow‑up messaging via WhatsApp","AI‑assisted scheduling of consultations","Persisting leads to spreadsheet/DB and creating calendar events"],"estimated_setup_minutes":60,"required_services":["JotForm","WhatsApp API (e.g., Twilio or Meta/WhatsApp Cloud)","Google Calendar","Google Sheets or other spreadsheet service","Google Gemini or other AI/ML provider","Postgres (for chat memory)","n8n"],"key_features":["Triggers on JotForm submissions","Sends initial WhatsApp welcome message","AI chat agent handles scheduling via WhatsApp replies","Creates calendar events in Google Calendar","Stores lead data in spreadsheet and Postgres memory for conversation context (memoryPostgresChat)"],"target_audience":["Law firms / legal intake teams","Solo attorneys and small practices","Legal operations managers and office administrators"]}


name: AI-Powered Social Media Ad Creation With Website Scraping for FB, IG & Pinterest
author_name: Malik Hashir
author_username: malikx
categories: []
created_at: 2025-10-08T20:21:57.334Z
updated_at: 2025-10-08T20:21:57.334Z
url: https://n8n.io/workflows/9388
scraped_at: 2025-10-27 22:15:59
description:
  Purpose & Audience
  This workflow empowers marketing teams, agencies and solopreneurs to instantly generate on-brand, platform-optimized social media ads — without designers or complex setup.

  Perfect for:
  Running performance marketing campaigns
  A/B testing ad creatives
  Scaling content for multiple platforms
  Non-technical users who want AI-powered design

  Key Features
  Smart Prompt Engineering:
   – Scrapes your provided landing page to auto-extract brand voice, offers, and content
   – Use Gemini AI to craft Ideogram-optimized prompts

  Multi-Platform Ad Generation:
  Facebook, Instagram & Pinterest.
   – Supports 7 formats:
    • Facebook Feed (1200x630)
    • Facebook Story (1080x1920)
    • Instagram Feed (1080x1080)
    • Instagram Story & Reel (1080x1920)
    • Pinterest Pin (1000x1500)
    • Pinterest Story (1080x1920)

  Powered by Ideogram v3 Turbo (Replicate):
   – Public, affordable, around 33 images for $1
   – Understands layout, branding, and text placement
   – ~$0.03/image with $1 free credit

  Delivers Directly to Slack:
   – Get all generated ads in your team channel with auto-captions (platform, offer, context)

  How It Works (Step-by-Step)
  User fills out a simple form with:
   – Business context, offer, brand colors, platform, and desired ad sizes
   – Additional Features: Landing page URL + toggle to scrape & enhance prompt with AI

  If enabled, the workflow:
   – Scrapes your website using Firecrawl
   – Sends content + form data to Gemini to generate a professional Ideogram prompt

  For each selected dimension, the workflow:
   – Calls Ideogram v3 Turbo on Replicate with the correct aspect ratio
   – Downloads the image from the response URL

  All ads are uploaded to Slack with rich captions for easy review & sharing

  How to Set Up
  Get a Replicate API Token
  Sign up at replicate.com
  Replace YOUR_REPLICATE_API_TOKEN in all 7 HTTP Request nodes

  Create a Slack App
  Go to api.slack.com/apps → “Create New App”
  Add files:write scope → Install to workspace
  Add as OAuth2 credential in n8n

  Set Up Firecrawl
  Get API key at firecrawl.dev
  Create a Header Auth credential with: Authorization: Bearer YOUR_FIRECRAWL_TOKEN

  Activate the workflow and share the Form Trigger URL with your team! 

  Value Proposition
  Go from idea to ad in 60 seconds — no design skills, no designers, no information sharing, no hassle.
  This workflow saves hours of manual design work, ensures brand consistency, and leverages cutting-edge AI — all while costing less than $5 for 100 ads. 
  Ideal for agile marketing teams who need speed, quality, and scalability. 

  Available Models: Customization Option
  If you’re comfortable with low-code tools and want to use any other model from the hundreds available at Replicate (https://replicate.com/explore), you’re welcome to do so. Simply update your "POST" request to match the specific schema of the chosen model, and you’re all set. Don’t worry about the schema details—Replicate provides clear, easy-to-follow documentation for each model. Some models are free with limited quotas, while others require payment. Overall, it offers the most comprehensive library of image models available.

nodes_used:
  ["n8n-nodes-base.formTrigger","n8n-nodes-base.switch","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.slack","n8n-nodes-base.slack","n8n-nodes-base.slack","n8n-nodes-base.slack","n8n-nodes-base.slack","n8n-nodes-base.slack","n8n-nodes-base.slack","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.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","@n8n/n8n-nodes-langchain.googleGemini","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

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

metadata_json:
  {
    "categories": [
      "marketing automation",
      "social media",
      "content generation",
      "AI integration"
    ],
    "complexity": "medium",
    "use_cases": [
      "Generate platform-optimized social ads for Facebook, Instagram, Pinterest",
      "Scale ad creatives across multiple platforms",
      "A/B test ad copy and creative variants",
      "Quickly produce on-brand ad assets from a landing page",
      "Enable non-technical users to create ads without designers"
    ],
    "estimated_setup_minutes": 45,
    "required_services": [
      "Google Gemini (Gemini API)",
      "Meta / Facebook Ads & Instagram API access",
      "Pinterest API access",
      "Public landing page or website URL to scrape",
      "n8n instance with reachable HTTP/webhook endpoints"
    ],
    "key_features": [
      "Automated landing-page scraping to extract brand voice, offers, and content",
      "Smart prompt engineering using Gemini to generate ad copy and creative guidance",
      "Platform-optimized outputs for Facebook, Instagram, and Pinterest",
      "Automated generation of A/B variations",
      "No-designer workflow for non-technical users (rapid ad creation and scaling)"
    ],
    "target_audience": [
      "marketing teams",
      "agencies",
      "solopreneurs / small business owners doing their own ads"  ]
  }


name: Automated AI Video Creation for Multi-Platform Content using NanoBanana & VEO3
author_name: DevCode Journey
author_username: devcodejourney
categories: []
created_at: 2025-10-09T15:11:35.907Z
updated_at: 2025-10-09T15:11:35.907Z
url: https://n8n.io/workflows/9420
scraped_at: 2025-10-27 22:15:59
description:
  Who is this for?
  This workflow is designed for content creators, marketers, and entrepreneurs who want to automate their video production and social media publishing process.  
  If you regularly post promotional or viral-style content on platforms like TikTok, YouTube Shorts, Instagram Reels, LinkedIn, and more, this template will save you hours of manual work.

  What problem is this workflow solving? / Use case
  Creating viral short-form videos is often time-consuming:
  You need to generate visuals, write scripts, edit videos, and then manually upload them to multiple platforms.  
  Staying consistent across TikTok, YouTube Shorts, Instagram Reels, LinkedIn, Twitter/X, and others requires constant effort.  
  This workflow solves the problem by automating the entire pipeline from idea → video creation → multi-platform publishing.

  What this workflow does
  Collects an idea and image from Telegram  
  Enhances visuals with NanoBanana for user-generated content style  
  Generates a complete video script with AI (OpenAI + structured prompts)  
  Creates the final video with VEO3 using your custom prompt and visuals  
  Rewrites captions with GPT to be short, catchy, and optimized for social platforms  
  Saves metadata in Google Sheets for tracking and management  
  Auto-uploads the video to all major platforms via Blotato  
    TikTok  
    YouTube  
    Instagram  
    LinkedIn  
    Threads  
    Pinterest  
    X/Twitter  
    Bluesky  
    Facebook  
  Notifies you on Telegram with a preview link once publishing is complete  

  Setup
  Connect your accounts:
  Google Sheets** (for video tracking)  
  Telegram** (to receive and send media)  
  Blotato** (for multi-platform publishing)  
  OpenAI API** (for captions, prompts, and image analysis)  
  VEO3 API** (for video rendering)  
  Fal.ai** (for NanoBanana image editing)  
  Google Drive** (to store processed images)  

  Set your credentials in the respective nodes.  
  Adjust the Google Sheet IDs to match your own sheet structure.  
  Insert your Telegram bot token in the Set: Bot Token (Placeholder) node.

  🙋 For Help & Community
  🌐 Website: devcodejourney.com
  🔗 LinkedIn: Connect with Shakil
  📱 WhatsApp Channel: Join Now
  💬 Direct Chat: Message Now

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

workflow_json_compressed:
  H4sIAAAAAAAAE7VZ244bRw79FaEf9kl06sK6zdM6drJrIIkNXxJgE2PBqmKNBWu6Z6UeO4bhf1+UNDO6tTStye6bMFPNPmSRh4fsr80sNxfN1afun1/0m7579hFf/uvP62baXHFPzcXXZtYue2oTv6jnUgwk2WglnXXRammtRqe8Rqm0Y2MxKuMdRWmiw0SCfOAoFBmNHrNtpk3PV9dz6vnZgvPyDfc318+6q+s595ybi35xw9+mTUtX3Fw0T2/67op6zpOnLya/zjJ3k2cLpn7WtZPSLSY/38z7GbyaU1+6xdXkWdf23PaTm+WsvZz8Qm33PbXU0uRvk19/eKnru+ly2Vz8/n7atF3m+vPr2n9VlA5ZSVA2a0AjMlAuBYpxJgkmERU197heXnP79MXk2QfqJz93mefV9Jfr+q+/t779rvUtrF4Ac2ov0weatU/mV/X46slZM22uu+Ws+tFc/C61FdOg/Ptpc00LuuKeF8vm4uu3tdFfebFcHZRP1LfpLd6igyiiWMjFRMAkGLyIEqKP3qCSviTc4H37YdZ+HIGx77r53dltgEbgKID38LKXkSQVUJgSYPAJQs4BlE6qeO+cpLiB96Zf3KT+ZsF58vKmv77pJ69oseTFCMTd6vz6+MbMHnyLflx89b0DPmtlUkiQk0mAWggIItdfpFJCn5Fp24FZ+vhl8kvXs9qA3uCNtOQny9WhemYXnhV+aoLaR9ekdTY3F01zPNBOiyhdjbFJErCC9Y48eO+FF0V4WtXcIU58FE4p/EEYxwG1RiYpowCF3gNmU4BK8KAJrWKrrRV5EOijcAI+EqbyWhlBApSKEdDlCIEkAWWXJaFM0ZpBmPJsnNKjeDzQErMV2hmIOjvAiBoo5QQakwrOumTlVoX99NPPF5P/c5kpE9RUezynzKx3ORqvwHH1wmuGaJEgZO9MCsYlOZy+5uxwg3LqL+SFpIQme3BaF8CUI3jnGMjozFkWk0Le41v5FwgXUUylPiSFE/XlnTfWBsBaZOiyBY8ygPFKolDFZz1cX/oRiavw8YyFMhWtYwBSolZYMkAuaMhZaW2iJi38BuhrTjz7xLfN/0Vese4w3J7nfLmgq7eL2eXlKqu3MDvrpxJrbn7m+KHrPq7UjLI5si0GjAy1iFSEwFqBF1YUJWWwvqbf6K4sqzbKyUCI2QNGx+CVN8A5+Kgla41q49s/uJ+8uKJLnvw4mx/nuTu/dh0KQU1Xybztj7CJo5YZcsoBkAJBjJGBXCyOWFBGOscfdpiU1QYUIgEa8hCy0BCsEFSECNKVLX/qRX3f9ZO33Uduj6cV9wP6Z305J5HpJ7jJomSFECUBF42AWUoI2VhIXBKx8iZqsRvpGuPJu9c/HcX1oe+vX/N/bni5j88YNQYfbuszqRyi0KCsk4AqJaDIanUxQidR0KQteu4ubzPhb5NndL167zGYl113Oec3H5j75R5Oaf1UGfswTnePM1KQwhoCJMqA3hagYC0Uj8qmHAvZLR357nreUV5DfQDg88Xs0x5vBGfHwNt0B46spSirSkJAkzVEKzJg1LYYTibxDlVQvuWJZVrMrvtHhDBINXVixE3bTWdAa2xxElLxEVAJAqLgwEcSXHLQMW0rRe4nrxbd1XX/3ewUmR0WiVRiDLTtIinORelZgGRBgKwykEQGTaEYx96E6LaLpOUF9Xdce71COaKH0WXl/MP+NQLspl4EWs0mFpDShSoPBficM2SnOTEji7Slu37sFlfUT05GMHV5L/+cEtMgH+ypW3QekTk4CRprccSIEL3SoAoZUQyy97wBtZpM76L3edZ/uB86z6ObClMqOaKMN0h9YO9DrHRYYh1fC4RYPDgUNhiVlHBbdPgbzY4Xx+f1P7eLQvk7QNvNptjsJRYNyNEDWhWAghIgNaZCyCR0fLjZbAuDonWSBthX6V2kBAqYwFvHQTnyvmxR5vPuc7sio1W8H0HqUtuzwyyCzrZgAqrzC6JP4BPVrNApSFLFl61a/20x6/mQz4+L7KHdgArjYMonfkNJ5D0Vo6H4LADZSfAsPSTD2kqknHemb/p0j/I2e7t2cs+OZ3chK8bm74ZEyaMs1hEwrvi9OIg6eGCjS9IkjUHcJtH2junfvf5p8m617nl7K5OqAjlTSymBdbQV+3KKybIJDkEGLQCjdUBGRpBWYaDA2cd8jpzy0jsZkwGRAgH6qCFKr4AlWuOEQ5vKnpc/zlqa3/r6asGfZvz5f+BvHYUG/EXUJaPMQMJIwErHlK0H6bQMLkdSdkRFb/zVuVBQJUNt14BV/0RdGEQQ2ZDDwmy2xUWu/Pmmp/5meZ+Ckz+a5y9/+eGP5hGpqLAWz9rPB1LRbFIRqWQnCDybOpJmVTc/BMnFIAUZZ2n/ktqun5VZWu8lu3ZyF/VJPP9qVux/eDWqIGFMEkLIDMhBgzeqTk0+WQwh+qDPuRrM1nqvHeiSDGDd0gWlFLDWuSSMhEkPkO1p5XeUbOtGYqrtiHvYQig8By9SlaKmbjgRyEsJopByUntKZHZb2vEVzGFPWyE6HAhzMSqHOguahIBaFoi5WPAhZ2WEctGc1dOITKZKHiFSAbQ6gSeFUBAteWOKUv5AQTw2yJsZd3SQk7Ix5YKgRPU3Fg2BrYBgiy4lJSOJBhTiWsGuVvB7YM9RiQr1qLlKbXdgjqqYuueyMQGKEIFKDGAiJyMwOm+3RMLBnn7MTub4ol5pj+M2XBvASqmI2WSQWkjAQgw+yQDRZxUzGmuTP+DA9Sz4nNdzzC2rrBjuMSyoxMi82IyFOsripPNgVnqyUJVhqYCxLpiitfC4VXxPW5p/6WdpOTobBqVOGJe/Vem8nzaU+jphXhSaL3naLLnvZ+3lag/Ff3K6qVZfLjIvmovmk6wLqU9rC6tC10kWr7METVznXswQ6jqasirCCovGVv5LXdtyqqZWhlfC+eJrc0Wzivj3r6vPSCfU6OrgtJm1mf9sLsS39++/TW+/xlx8bWj277oA3LH0wBR298i+zTX/nYS2dzfHoclj2I4I2mOYtqe0IWQPDUyDCHc4csjqXicYNLKzDxoycjSjB83trEWGzJ3c7wya3A31kM1xsn3Q+F5KDFk/sUw5bXJdAIMXM5w9Ry9oazU6ZG54FzVsbXcxOWRteEM4aG0/N4bBjebxwXfsr4mGIZ9kikG7hx+u16VemfmGLvn2b2fx0e6z+288TKTBZD62FhvnhRzvxnHpMsKVg28Rg/dyZA2+78p0J/mGPgQMOj/EJX8Fxm29Dd3ykNnB1dsppt6n92Oc/VBFHPt4ub757Q+UZ+bvzqNHA3OQNyc62hhOOknfwyUyeukxnDcnPwGPjeLJ8jkZyYfG+6M+j5uuj9DoQzE7+tZzFy9HhMFDbeAksR8P9nFvR+I+0bQeXsAMvP3bt/8C2kjcc0kmAAA=

metadata_json:
  {"categories":["automation","content creation","social media","AI/ML integration"],"complexity":"complex","use_cases":["Automated short-form video generation","Multi-platform publishing (TikTok, YouTube Shorts, Instagram Reels, LinkedIn)","Generating hooks/captions/hashtags and formatting for each platform","Asset storage and cataloging (Google Drive/Sheets)","Notifications and review workflow via Telegram or webhooks"],"estimated_setup_minutes":60,"required_services":["NanoBanana (AI video generation)","VEO3 (AI video/vision tools)","Google Drive","Google Sheets","Telegram (notifications/review)","Social platform APIs or publishing services (TikTok, YouTube Shorts, Instagram, LinkedIn)","Webhook endpoint / HTTP service"],"key_features":["End-to-end AI-driven video creation pipeline","Multi-platform formatting and repurposing of the same asset","Automated caption, hook and hashtag generation","Integration with Google Sheets/Drive for asset management","Notifications and manual-review callbacks via Telegram/webhooks"],"target_audience":["Content creators","Social media marketers","Entrepreneurs and small business owners producing short-form video content (TikTok/Shorts/Reels)"]}


name: Automated Phone Receptionist for Scheduling with Twilio, ElevenLabs & Claude AI
author_name: Connor Provines
author_username: connorprovines
categories: []
created_at: 2025-10-09T17:50:11.715Z
updated_at: 2025-10-09T17:50:11.715Z
url: https://n8n.io/workflows/9429
scraped_at: 2025-10-27 22:15:59
description:
  Schedule appointments from phone calls with AI using Twilio and ElevenLabs

  This n8n template creates an intelligent phone receptionist that handles incoming calls, answers FAQs, and schedules appointments to Google Calendar. The system uses Twilio for phone handling, ElevenLabs for voice AI and basic conversations, and n8n for complex scheduling logic—keeping responses snappy by only invoking the workflow when calendar operations are needed.

  Who's it for

  Businesses that need automated phone scheduling: service companies, clinics, consultants, or any business that takes appointments by phone. Perfect for reducing administrative overhead while maintaining a professional caller experience.

  Good to know

  Redis memory is essential—without it, the AI must reparse entire conversations causing severe lag in voice responses

  Claude 3.5 Sonnet is recommended for best scheduling results

  Typical response times: ElevenLabs-only responses &lt;1s, n8n tool calls 2-4s

  All placeholder values must be customized or scheduling will fail

  How it works

  Twilio receives incoming calls and forwards to ElevenLabs voice AI

  ElevenLabs handles casual conversation and FAQ responses instantly

  When calendar operations are needed, ElevenLabs calls your n8n webhook

  n8n checks Google Calendar availability using your business rules

  Claude AI agent processes the request, collects required information, and schedules appointments
  Redis maintains conversation context across the call

  Calendar invites are automatically sent to customers

  How to set up

  Connect Twilio to ElevenLabs: In Twilio Console, set your phone number webhook to your ElevenLabs agent URL

  Configure ElevenLabs tools: Add "Client Tools" in ElevenLabs that point to your n8n webhook for checking availability, creating appointments, and updating appointments

  Set n8n webhook path: Replace REPLACE ME in the "Webhook: Receive User Request" node with a secure endpoint (e.g., /elevenlabs-voice-scheduler)

  Configure Google Calendar: Replace all REPLACE ME instances with your Calendar ID in the three calendar nodes (Check Availability, Create Appointment, Update Event)

  Set up Redis: Configure connection details in the "Redis Chat Memory" node

  Customize scheduling prompt: In the "Voice AI Agent" node, replace all bracketed placeholders with your business details:

  [TIMEZONE], [START_TIME], [END_TIME], [OPERATING_DAYS], [BLOCKED_DAYS]
  [MINIMUM_LEAD_TIME], [APPOINTMENT_DURATION], [SERVICE_TYPE]
  [REQUIRED_FIELDS], [REQUIRED_NOTES_FIELDS]


  Test: Make a test call to verify availability checking, information collection, and appointment creation

  Requirements

  Twilio account with phone number
  ElevenLabs Conversational AI account
  Google Calendar with OAuth2 credentials
  Redis instance (for session management)
  Anthropic API key (for Claude AI)

nodes_used:
  ["n8n-nodes-base.webhook","n8n-nodes-base.respondToWebhook","n8n-nodes-base.googleCalendarTool","n8n-nodes-base.googleCalendarTool","@n8n/n8n-nodes-langchain.toolThink","@n8n/n8n-nodes-langchain.lmChatAnthropic","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.googleCalendarTool","@n8n/n8n-nodes-langchain.memoryRedisChat","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, 6216 characters]

metadata_json:
  {
    "categories": [
      "automation",
      "telephony",
      "AI-assistant",
      "scheduling",
      "calendar-integration"
    ],
    "complexity": "medium",
    "use_cases": [
      "Automated appointment booking from inbound phone calls",
      "Voice-based FAQ and call triage",
      "Reducing receptionist workload and missed bookings",
      "Context-aware follow-ups using conversational memory",
      "Integrating voice interactions with Google Calendar"
    ],
    "estimated_setup_minutes": 60,
    "required_services": [
      "n8n",
      "Twilio (Programmable Voice / phone number)",
      "ElevenLabs (voice synthesis / conversation)",
      "Anthropic / Claude (LM chat node)",
      "Google Calendar API (OAuth-enabled calendar)",
      "Redis (for conversational memory)",
      "Public webhook endpoint (or tunneling like ngrok)"
    ],
    "key_features": [
      "Inbound call handling via Twilio",
      "Voice AI responses and synthesis with ElevenLabs",
      "Conversational AI (Claude/Anthropic) for dialogue and FAQs",
      "Smart scheduling logic with Google Calendar integration",
      "Persistent conversation memory via Redis to maintain context between calls/turns, and selective workflow invocation to keep responses snappy"
    ],
    "target_audience": [
      "Small-to-medium businesses needing phone-based booking",
      "Medical/dental/appointment-driven practices",
      "Customer support teams implementing IVR automation with AI capabilities"
    ]
  }


name: Resume Screening & Candidate Routing with OpenAI, Jotform, and Google Sheets
author_name: Jitesh Dugar
author_username: jiteshdugar
categories: []
created_at: 2025-10-09T18:42:54.388Z
updated_at: 2025-10-09T18:42:54.388Z
url: https://n8n.io/workflows/9435
scraped_at: 2025-10-27 22:15:59
description:
  Revolutionize your recruitment process with intelligent AI-driven candidate screening that evaluates resumes, scores applicants, and automatically routes them based on fit - saving 10-15 hours per week on initial screening.

  🎯 What This Workflow Does

  Transforms your hiring pipeline from manual resume review to intelligent automation:

  📝 Captures Applications - Jotform intake with resume upload
  🤖 AI Resume Analysis - OpenAI parses skills, experience, education, and red flags
  🎯 Intelligent Scoring - Evaluates candidates against job requirements with structured scoring (0-100)
  🚦 Smart Routing - Automatically routes based on AI recommendation:
     Strong Yes (85-100): Instant Slack alert → Interview invitation
     Maybe/Yes (60-84): Manager review → Approval workflow
     No (&lt;60): Polite rejection email
  📊 Analytics Tracking - All data logged to Google Sheets for hiring insights

  ✨ Key Features

  AI Resume Parsing**: Extracts structured data from any resume format
  Intelligent Scoring System**: Multi-dimensional evaluation (skills match, experience quality, cultural fit)
  Structured Output**: Consistent JSON schema ensures reliable data for decision-making
  Automated Communication**: Personalized emails for every candidate outcome
  Human-in-the-Loop**: Manager approval for borderline candidates
  Comprehensive Analytics**: Track conversion rates, average scores, and hiring metrics
  Customizable Job Requirements**: Easy prompt editing to match any role

  💼 Perfect For

  Startups & Scale-ups**: Processing 50+ applications per week
  HR Teams**: Wanting to reduce time-to-hire by 40-60%
  Technical Recruiters**: Screening engineering, product, or design roles
  Growing Companies**: Scaling hiring without scaling headcount

  🔧 What You'll Need

  Required Integrations
  Jotform** - Application intake form (free tier works)
  Create your form for free on Jotform using this link
  OpenAI API** - GPT-4o-mini for cost-effective AI analysis (~$0.15 per candidate)
  Gmail** - Automated candidate communication
  Google Sheets** - Hiring database and analytics

  Optional Integrations
  Slack** - Instant alerts for hot candidates
  Linear/Asana** - Task creation for interview scheduling
  Calendar APIs** - Automated interview booking

  🚀 Quick Start

  Import Template - Copy JSON and import into n8n
  Create Jotform - Use provided field structure (name, email, resume upload, etc.)
  Add API Keys - OpenAI, Jotform, Gmail, Google Sheets
  Customize Job Requirements - Edit AI screening prompt with your role details
  Personalize Emails - Update templates with your company branding
  Test & Deploy - Submit test application and verify all nodes

  🎨 Customization Options

  Adjust Scoring Thresholds**: Change routing logic based on your needs
  Multiple Positions**: Clone workflow for different roles with unique requirements
  Add Technical Assessments**: Integrate HackerRank, CodeSignal, or custom tests
  Interview Scheduling**: Connect Calendly or Google Calendar for auto-booking
  ATS Integration**: Push data to Lever, Greenhouse, or BambooHR
  Diversity Tracking**: Add demographic fields and analytics
  Reference Checking**: Automate reference request emails

  📈 Expected Results

  90% reduction** in manual resume review time
  24-hour response time** to all candidates
  Zero missed applications** - every candidate gets feedback
  Data-driven hiring** - track what works with comprehensive analytics
  Better candidate experience** - fast, professional communication
  Consistent evaluation** - eliminate unconscious bias with structured AI scoring

  🏆 Use Cases

  Technology Companies
  Screen 100+ engineering applications per week, identify top 10% instantly, schedule interviews same-day.

  Agencies & Consultancies
  Evaluate consultant candidates across multiple skill dimensions, route to appropriate practice areas.

  High-Volume Hiring
  Process retail, customer service, or sales applications at scale with consistent quality.

  Remote-First Teams
  Evaluate global candidates 24/7, respond instantly regardless of timezone.

  💡 Pro Tips

  Train Your AI**: After 50+ applications, refine prompts based on false positives/negatives
  A/B Test Thresholds**: Experiment with score cutoffs to optimize for your needs
  Build Talent Pipeline**: Keep "maybe" candidates in CRM for future roles
  Track Source Effectiveness**: Add UTM parameters to measure which job boards deliver best candidates
  Continuous Improvement**: Weekly review of AI assessments to calibrate accuracy

  🎓 Learning Resources

  This workflow demonstrates:
  AI Agents with structured output
  Multi-stage conditional routing
  Human-in-the-loop automation
  Binary data processing (resume files)
  Email automation with HTML templates
  Real-time notifications
  Analytics and data logging

  Perfect for learning advanced n8n automation patterns!

  Ready to transform your hiring process? Import this template and start screening candidates intelligently in under 30 minutes.

  Questions or customization needs? The workflow includes detailed sticky notes explaining each section.

nodes_used:
  ["n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.code","@n8n/n8n-nodes-langchain.openAi","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.if","n8n-nodes-base.if","n8n-nodes-base.gmail","n8n-nodes-base.gmail","n8n-nodes-base.gmail","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.slack","n8n-nodes-base.jotFormTrigger"]

workflow_json_compressed:
  [encoded data, 11652 characters]

metadata_json:
  {
    "categories": [
      "automation",
      "recruitment",
      "HR",
      "AI integration",
      "data processing"
    ],
    "complexity": "medium",
    "use_cases": [
      "Automated resume screening",
      "Candidate scoring and ranking",
      "Routing applicants to next steps based on fit",
      "Collecting applicant data via form submissions",
      "Maintaining applicant log in a spreadsheet"
    ],
    "estimated_setup_minutes": 45,
    "required_services": [
      "OpenAI (or compatible LLM)",
      "Jotform",
      "Google Sheets",
      "HTTP/Webhooks (for form submission or integrations)"
    ],
    "key_features": [
      "AI-driven resume parsing (skills, experience, education, red flags)",
      "Automated applicant scoring and fit evaluation",
      "Conditional routing based on score/criteria",
      "Jotform intake with resume upload",
      "Logging and tracking in Google Sheets / spreadsheet output parser"
    ],
    "target_audience": [
      "Recruiters",
      "Talent acquisition teams",
      "HR managers / small HR teams / startups automating hiring ops"
    ]
  }


name: Course Recommendation System for Surveys with Data Tables and GPT-4.1-Mini
author_name: Robert Breen
author_username: rbreen
categories: []
created_at: 2025-10-09T18:58:45.739Z
updated_at: 2025-10-09T18:58:45.739Z
url: https://n8n.io/workflows/9437
scraped_at: 2025-10-27 22:15:59
description:
  Use the n8n Data Tables feature to store, retrieve, and analyze survey results — then let OpenAI automatically recommend the most relevant course for each respondent.

  🧠 What this workflow does
  This workflow demonstrates how to use n8n’s built-in Data Tables to create an internal recommendation system powered by AI.

  It:
  Collects survey responses through a Form Trigger  
  Saves responses to a Data Table called Survey Responses  
  Fetches a list of available courses from another Data Table called Courses  
  Passes both Data Tables into an OpenAI Chat Agent, which selects the most relevant course  
  Returns a structured recommendation with:
    course: the course title  
    reasoning: why it was selected  

  &gt; Trigger: Form submission (manual or public link)

  👥 Who it’s for
  Perfect for educators, training managers, or anyone wanting to use n8n Data Tables as a lightweight internal database — ideal for AI-driven recommendations, onboarding workflows, or content personalization.

  ⚙️ How to set it up
  1️⃣ Create your n8n Data Tables
  This workflow uses two Data Tables — both created directly inside n8n.

  🧾 Table 1: Survey Responses
  Columns:
  Name
  Q1 — Where did you learn about n8n?
  Q2 — What is your experience with n8n?
  Q3 — What kind of automations do you need help with?

  To create:
  Add a Data Table node to your workflow.  
  From the list, click “Create New Data Table.”  
  Name it Survey Responses and add the columns above.

  📚 Table 2: Courses
  Columns:
  Course
  Description

  To create:
  Add another Data Table node.  
  Click “Create New Data Table.”  
  Name it Courses and create the columns above.  
  Copy course data from this Google Sheet:  
     👉 https://docs.google.com/spreadsheets/d/1Y0Q0CnqN0w47c5nCpbA1O3sn0mQaKXPhql2Bc1UeiFY/edit?usp=sharing

  This Courses Data Table is where you’ll store all available learning paths or programs for the AI to compare against survey inputs.

  2️⃣ Connect OpenAI
  Go to OpenAI Platform  
  Create an API key  
  In n8n, open Credentials → OpenAI API and paste your key  
  The workflow uses the gpt-4.1-mini model via the LangChain integration

  🧩 Key Nodes Used
  | Node | Purpose | n8n Feature |
  |------|----------|-------------|
  | Form Trigger | Collect survey responses | Forms |
  | Data Table (Upsert) | Stores results in Survey Responses | Data Tables |
  | Data Table (Get) | Retrieves Courses | Data Tables |
  | Aggregate + Set | Combines and formats table data | Core nodes |
  | OpenAI Chat Model (LangChain Agent) | Analyzes responses and courses | AI |
  | Structured Output Parser | Returns structured JSON output | LangChain |

  💡 Tips for customization
  Add more Data Table columns (e.g., email, department, experience years)  
  Use another Data Table to store AI recommendations or performance results  
  Modify the Agent system message to customize how AI chooses courses  
  Send recommendations via Email, Slack, or Google Sheets

  🧾 Why Data Tables?
  This workflow shows how n8n’s Data Tables can act as your internal database:
  Create and manage tables directly inside n8n  
  No external integrations needed  
  Store structured data for AI prompts  
  Share tables across multiple workflows  

  All user data and course content are stored securely and natively in n8n Cloud or Self-Hosted environments.

  📬 Contact  
  Need help customizing this (e.g., expanding Data Tables, connecting multiple surveys, or automating follow-ups)?  

  📧 robert@ynteractive.com  
  🔗 Robert Breen  
  🌐 ynteractive.com

nodes_used:
  ["@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.formTrigger","n8n-nodes-base.dataTable","n8n-nodes-base.dataTable","n8n-nodes-base.aggregate","n8n-nodes-base.set","n8n-nodes-base.merge","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.stickyNote","n8n-nodes-base.form"]

workflow_json_compressed:
  [encoded data, 5180 characters]

metadata_json:
  {
    "categories": [
      "automation",
      "data processing",
      "integration",
      "ai/ml",
      "recommendation systems"
    ],
    "complexity": "medium",
    "use_cases": [
      "Personalized course recommendations from survey responses",
      "Internal training assignment and routing",
      "Building an AI-powered recommendation engine using internal data tables",
      "Analyzing survey responses to surface trends and gaps",
      "Automating course suggestion workflows for learners or leads"
    ],
    "estimated_setup_minutes": 30,
    "required_services": [
      "n8n (Form Trigger, Data Tables)",
      "OpenAI API (GPT-4.1-Mini)"
    ],
    "key_features": [
      "Collect survey responses via n8n Form Trigger",
      "Persist and query responses in n8n Data Tables",
      "Fetch course catalog from a Data Table and match via AI",
      "Use GPT-4.1-Mini to generate recommended course per respondent",
      "Structured output parsing for predictable recommendation data fields (outputParserStructured node)"
    ],
    "target_audience": [
      "Learning & Development teams",
      "Instructional designers and course creators",
      "Product managers and growth teams creating education flows"  ]
  }


