# templates

name: Get Scaleway Server Info with Dynamic Filtering
author_name: Pablo
author_username: pablobarrier
categories: []
created_at: 2025-04-16T11:20:04.714Z
updated_at: 2025-04-16T11:20:04.714Z
url: https://n8n.io/workflows/3571
scraped_at: 2025-09-14 19:11:03
metadata_generated_at: 2025-09-14 21:18:33
description:
  Get Scaleway Server Info with Dynamic Filtering

  Description

  This workflow is designed for developers, system administrators, and DevOps engineers who need to retrieve and filter Scaleway server information quickly and efficiently. It gathers data from Scaleway instances and baremetal servers across multiple zones and is ideal for:
  Quickly identifying servers by tags, names, public IPs, or zones.
  Automating server status checks in production, staging, or test environments.
  Integrating Scaleway data into broader monitoring or inventory systems.

  High-Level Steps

  Webhook Trigger:**
    Receives an HTTP POST request (with basic authentication) containing the search criteria (search_by and search).

  Server Data Collection:**
    Fetches server data from Scaleway’s API endpoints for both instances and baremetal servers across defined zones.

  Data Processing:**
    Aggregates and normalizes the fetched data using a Code node with helper functions.

  Dynamic Filtering:**
    Routes data to dedicated filtering routines (by tags, name, public_ip, or zone) based on the input criteria.

  Response:**
    Returns the filtered data (or an error message) via a webhook response.

  Set Up Steps

  Insert Your Scaleway Token:
     In the “Edit Fields” node, replace the placeholder Your personal Scaleway X Auth Token with your Scaleway API token.

  Configure Zones:
     Review or update the zone lists (ZONE_INSTANCE and ZONE_BAREMETAL) to suit your environment.

  Send a Request:
     Make a POST request to the workflow’s webhook endpoint with a JSON payload, for example:
        {
       "search_by": "tags",
       "search": "Apiv1"
     }
     
  View the Results:
     The workflow returns a JSON array of servers matching your criteria, including details like name, tags, public IP, type, state, zone, and user.

nodes_used:
  ["n8n-nodes-base.code","n8n-nodes-base.set","n8n-nodes-base.switch","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.webhook","n8n-nodes-base.respondToWebhook","n8n-nodes-base.respondToWebhook","n8n-nodes-base.respondToWebhook","n8n-nodes-base.respondToWebhook","n8n-nodes-base.respondToWebhook","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.splitInBatches","n8n-nodes-base.respondToWebhook","n8n-nodes-base.httpRequest","n8n-nodes-base.splitInBatches","n8n-nodes-base.httpRequest","n8n-nodes-base.splitOut","n8n-nodes-base.if","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 8312 characters]

metadata_json:
  {"categories":["integration","infrastructure","monitoring","inventory"],"complexity":"medium","use_cases":["Find Scaleway servers by tags, name, public IP, or zone","Automate periodic server status or inventory checks","Feed Scaleway instance/baremetal data into monitoring or CMDB systems","Filter and normalize multi-zone server data for reporting or alerting"],"estimated_setup_minutes":10,"required_services":["Scaleway API (Instances & Baremetal)","HTTP-accessible webhook endpoint (n8n)","Basic authentication credentials for the webhook (optional)"],"key_features":["Fetches instances and baremetal servers across multiple zones","Aggregates and normalizes server data via a Code node","Dynamic filtering routes for tags, name, public_ip, or zone","Returns filtered results as JSON via webhook response","Configurable zone lists and Scaleway API token insertion"],"target_audience":["Developers","System administrators","DevOps engineers / SREs"]}


name: Create a RAG System with Paul Essays, Milvus, and OpenAI for Cited Answers
author_name: Cheney Zhang
author_username: zc277584121
categories: []
created_at: 2025-04-16T12:54:47.941Z
updated_at: 2025-04-16T12:54:47.941Z
url: https://n8n.io/workflows/3573
scraped_at: 2025-09-14 19:11:02
metadata_generated_at: 2025-09-14 21:18:32
description:
  Create a RAG System with Paul Essays, Milvus, and OpenAI for Cited Answers

  This workflow automates the process of creating a document-based AI retrieval system using Milvus, an open-source vector database. It consists of two main steps:

  Data collection/processing
  Retrieval/response generation

  The system scrapes Paul Graham essays, processes them, and loads them into a Milvus vector store. When users ask questions, it retrieves relevant information and generates responses with citations.

  Step 1: Data Collection and Processing

  Set up a Milvus server using the official guide
  Create a collection named "my_collection"
  Execute the workflow to scrape Paul Graham essays:
     Fetch essay lists
     Extract names
     Split content into manageable items
     Limit results (if needed)
     Fetch texts
     Extract content
     Load everything into Milvus Vector Store

  This step uses OpenAI embeddings for vectorization.

  Step 2: Retrieval and Response Generation

  When a chat message is received, the system:

  Sets chunks to send to the model
  Retrieves relevant information from the Milvus Vector Store
  Prepares chunks
  Answers the query based on those chunks
  Composes citations
  Generates a comprehensive response

  This process uses OpenAI embeddings and models to ensure accurate and relevant answers with proper citations.

  For more information on vector databases and similarity search, visit Milvus documentation.

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.httpRequest","n8n-nodes-base.html","n8n-nodes-base.splitOut","n8n-nodes-base.httpRequest","n8n-nodes-base.limit","n8n-nodes-base.html","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter","n8n-nodes-base.set","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.informationExtractor","n8n-nodes-base.code","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.embeddingsOpenAi","@n8n/n8n-nodes-langchain.chatTrigger","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.vectorStoreMilvus","@n8n/n8n-nodes-langchain.vectorStoreMilvus","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.embeddingsOpenAi","@n8n/n8n-nodes-langchain.documentDefaultDataLoader","@n8n/n8n-nodes-langchain.lmChatOpenAi"]

workflow_json_compressed:
  [encoded data, 4568 characters]

metadata_json:
  {"categories":["automation","data processing","knowledge retrieval","AI/ML"],"complexity":"medium","use_cases":["Build a searchable knowledge base from public essays","Retrieval-Augmented Generation (RAG) for cited answers","Research assistant that returns source-cited responses","Internal documentation / content search and summarization","Prototype semantic search using vector DB and embeddings"],"estimated_setup_minutes":90,"required_services":["Milvus (vector database) - self-hosted or managed","OpenAI API (embeddings and language models)","Internet access to scrape Paul Graham essays (HTTP)","n8n (workflow execution environment)"],"key_features":["Scrapes Paul Graham essays and extracts content","Text splitting/chunking for manageable embedding units","Generates OpenAI embeddings and stores vectors in Milvus","Performs vector similarity search to retrieve relevant chunks","Generates answers with citations using OpenAI models (RAG flow)"],"target_audience":["developers","data scientists","ML engineers', 'knowledge managers'"]}


name: Create a Paul Graham Essay Q&A System with OpenAI and Milvus Vector Database
author_name: Cheney Zhang
author_username: zc277584121
categories: []
created_at: 2025-04-16T13:00:23.190Z
updated_at: 2025-04-16T13:00:23.190Z
url: https://n8n.io/workflows/3574
scraped_at: 2025-09-14 19:11:02
metadata_generated_at: 2025-09-14 21:18:32
description:
  Create a Paul Graham Essay Q&A System with OpenAI and Milvus Vector Database
  How It Works

  This workflow creates a question-answering system based on Paul Graham essays. It has two main steps:

  Data Collection & Processing: 
     Scrapes Paul Graham essays
     Extracts text content
     Loads them into a Milvus vector store

  Chat Interaction:
     Provides a question-answering interface using the stored vector embeddings
     Utilizes OpenAI embeddings for semantic search

  Set Up Steps

  Set up a Milvus server following the official guide
  Create a collection named "my_collection"
  Run the workflow to scrape and load Paul Graham essays
  Start chatting with the QA system

  The workflow handles the entire process from fetching essays, extracting content, generating embeddings via OpenAI, storing vectors in Milvus, and providing retrieval for question answering.

nodes_used:
  ["@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.manualTrigger","n8n-nodes-base.httpRequest","n8n-nodes-base.html","n8n-nodes-base.splitOut","n8n-nodes-base.httpRequest","n8n-nodes-base.limit","n8n-nodes-base.html","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.chatTrigger","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.vectorStoreMilvus","@n8n/n8n-nodes-langchain.documentDefaultDataLoader","@n8n/n8n-nodes-langchain.embeddingsOpenAi","@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.embeddingsOpenAi","@n8n/n8n-nodes-langchain.vectorStoreMilvus","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.chainRetrievalQa","@n8n/n8n-nodes-langchain.retrieverVectorStore"]

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

metadata_json:
  {"categories":["data processing","integration","conversational AI","vector search"],"complexity":"complex","use_cases":["Question-answering over Paul Graham essays","Research assistant for essay exploration","Building a domain-specific knowledge base","Retrieval-augmented chatbots for educational content"],"estimated_setup_minutes":45,"required_services":["Milvus vector database (self-hosted or managed)","OpenAI API (embeddings and chat/completions)","Public web access to scrape Paul Graham essays","n8n instance to run the workflow"],"key_features":["Scrapes and extracts text from Paul Graham essays","Splits and preprocesses text for embedding","Generates OpenAI embeddings and stores vectors in Milvus","Semantic retrieval from Milvus to support QA","Chat-based question-answering interface (RAG pattern)"],"target_audience":["Developers","Data engineers","ML/NLP practitioners building RAG systems"]}


name: Paul Graham Essay Search & Chat with Milvus Vector Database
author_name: Cheney Zhang
author_username: zc277584121
categories: []
created_at: 2025-04-16T13:04:56.892Z
updated_at: 2025-04-16T13:04:56.892Z
url: https://n8n.io/workflows/3576
scraped_at: 2025-09-14 19:11:02
metadata_generated_at: 2025-09-14 21:18:32
description:
  Paul Graham Essay Search & Chat with Milvus Vector Database
  How It Works

  This workflow creates a RAG (Retrieval-Augmented Generation) system using Milvus vector database to search Paul Graham essays:

  Scrape & Load: Fetches Paul Graham essays, extracts text, and stores them as vector embeddings in Milvus
  Chat Interface: Enables semantic search and AI-powered conversations about the essays

  Set Up Steps

  Set up Milvus server following the official installation guide, then create a collection
  Execute the workflow to scrape essays and load them into your Milvus collection
  Chat with the AI agent using the Milvus tool to query and discuss essay content

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.httpRequest","n8n-nodes-base.html","n8n-nodes-base.splitOut","n8n-nodes-base.httpRequest","n8n-nodes-base.limit","n8n-nodes-base.html","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter","@n8n/n8n-nodes-langchain.vectorStoreMilvus","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.chatTrigger","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.documentDefaultDataLoader","@n8n/n8n-nodes-langchain.vectorStoreMilvus","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.embeddingsOpenAi","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.embeddingsOpenAi","n8n-nodes-base.stickyNote"]

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

metadata_json:
  {"categories":["AI/ML","Search & Retrieval","Data Ingestion","Chatbot/Conversational AI"],"complexity":"medium","use_cases":["Semantic search over Paul Graham essays","Chat-based Q&A (RAG) on essay content","Building a small document knowledge base","Research assistant for idea exploration","Educational tool for studying essays"],"estimated_setup_minutes":45,"required_services":["Milvus vector database (self-hosted or managed)","OpenAI API (embeddings and/or LLM)","Public web access to Paul Graham essays (HTTP scraping)","n8n workflow runner"],"key_features":["Scrape and extract essay text from the web","Chunking/text-splitting with recursive character splitter","Generate embeddings and store vectors in Milvus","Semantic nearest-neighbor search against Milvus","Retrieval-augmented generation (RAG) chat interface via agent node"],"target_audience":["Developers","Data engineers","NLP practitioners / researchers experimenting with RAG setups"]}


name: Travel Planning Assistant with MongoDB Atlas, Gemini LLM and Vector Search
author_name: Pavel Duchovny
author_username: pash
categories: []
created_at: 2025-04-16T15:14:03.770Z
updated_at: 2025-04-16T15:14:03.770Z
url: https://n8n.io/workflows/3577
scraped_at: 2025-09-14 19:11:01
metadata_generated_at: 2025-09-14 21:18:32
description:
  Building agentic AI workflows often requires multiple moving parts: memory management, document retrieval, vector similarity, and orchestration. 

  Until now, these pieces had to be custom-wired. 

  But with the new native n8n nodes for MongoDB Atlas, we reduce that overhead dramatically.


  With just a few clicks:

  Store and recall long-term memory from MongoDB

  Query vector embeddings stored in Atlas Vector Search

  Use these results in your LLM chains and automation logic

  In this example we present an ingestion and AI Agent flows that focus around Travel Planning. The different interest points that we want the agent to know about can be ingested into the vector store.

  The AI Agent will use the vector store tool to get relevant context about those points of interest if it needs to. 

  Prerequisites
  MongoDB Atlas project and Cluster
  OpenAI Valid API Key for embeddings (can be other provider)
  Gemini API Key for the LLM (can be other provider)

  How it works:

  There are 2 main flows. 

  One is ingesting flow:
  Gets a document from a webhook and use MongoDB Vector Atlas to embed the document title and description into points_of_interest collection.
  Embeddings are stored in a field named embedding
  Embeddings used are OpenAI's but it can be any type of supported embedders.

  Second flow is an AI Agent node with Chat Memory Stored in MongoDB Atlas and a Vector Search node as a tool:
  Chat Message Trigger**: Chatting with the AI Agent will trigger the conversation store in the MongoDB Chat Memory node.
  When data is necessary like a location search or details it will go to the "Vector Search" tool.
  Vector Search Tool** - uses Atlas Vector Search index created on the points_of_interest collection:

  // index name : "vector_index"
  // If you change an embedding provider make sure the numDimensions correspond to the model.
  {
    "fields": [
      {
        "type": "vector",
        "path": "embedding",
        "numDimensions": 1536,
        "similarity": "cosine"
      }
    ]
  }

  Additional Resources
  MongoDB Atlas Vector Search
  n8n Atlas Vector Search docs

nodes_used:
  ["@n8n/n8n-nodes-langchain.chatTrigger","@n8n/n8n-nodes-langchain.memoryMongoDbChat","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","@n8n/n8n-nodes-langchain.vectorStoreMongoDBAtlas","@n8n/n8n-nodes-langchain.embeddingsOpenAi","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.webhook","@n8n/n8n-nodes-langchain.documentDefaultDataLoader","@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter","@n8n/n8n-nodes-langchain.vectorStoreMongoDBAtlas","@n8n/n8n-nodes-langchain.embeddingsOpenAi","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 4196 characters]

metadata_json:
  {"categories":["integration","automation","ai/ml","data processing"],"complexity":"medium","use_cases":["Travel planning conversational assistant","Retrieval-augmented generation with vector search","Long-term chat memory and context recall","Ingesting and indexing points-of-interest documents","Building agentic LLM workflows with tool use"],"estimated_setup_minutes":45,"required_services":["MongoDB Atlas (cluster + Vector Search index)","OpenAI (embeddings) or other embedding provider","Google Gemini (LLM) or other LLM provider","n8n instance (to run the workflow)"],"key_features":["Ingest documents via webhook and store embeddings in Atlas vector store","Atlas Vector Search queries for context retrieval","Chat memory persisted in MongoDB for long-term conversation state","Agent node orchestration combining tools (vector search + LLM)","Uses OpenAI embeddings and Gemini LLM out of the box (provider-agnostic)"],"target_audience":["Developers","ML engineers","Data engineers building RAG systems or assistants,"]}


name: Generate Dynamic Line Chart from JSON Data to Upload to Google Drive
author_name: Lucas Correia
author_username: lucascorrei4
categories: []
created_at: 2025-04-16T16:57:21.009Z
updated_at: 2025-04-16T16:57:21.009Z
url: https://n8n.io/workflows/3578
scraped_at: 2025-09-14 19:11:02
metadata_generated_at: 2025-09-14 21:18:32
description:
  What Does This Flow Do?

  This workflow demonstrates how to dynamically generate a line chart using the QuickChart node based on data provided in a JSON object and then upload the resulting chart image to Google Drive. 

  Use Cases

  You can use it in presentations or requesting for chart generation from a software with HTTP requests.
  Automated report generation (e.g., daily sales charts).
  Visualizing data fetched from APIs or databases.
  Simple monitoring dashboards.
  Adding charts to internal tools or notifications.

  How it Works

  Trigger: The workflow starts manually when you click 'Test workflow'.
  Set Sample Data: A Set node (Edit Fields: Set JSON data to test) defines a sample JSON object named jsonData. This object contains:
      reportTitle: A title (not used in the chart generation in this example, but useful for context).
      labels: An array of strings representing the labels for the chart's X-axis (e.g., ["Q1", "Q2", "Q3", "Q4"]).
      salesData: An array of numbers representing the data points for the chart's Y-axis (e.g., [1250, 1800, 1550, 2100]).
  Generate Chart: The QuickChart node is configured to:
      Create a line chart.
      Dynamically read labels from the jsonData.labels array (Labels Mode: From Array).
      Use the jsonData.salesData array as the input data (Note: This configuration places data in the top-level 'Data' field. For more complex charts with multiple datasets or specific dataset options, configure datasets under 'Dataset Options' instead).
      The node outputs the generated chart image as binary data in a field named data.
  Upload to Google Drive: The Google Drive node (Google Drive: Upload File):
      Takes the binary data (data) from the QuickChart node.
      Uploads the image to your specified Google Drive folder.
      Dynamically names the file based on its extension (e.g., chart.png).

  Setup Steps

  Import: Import this template into your n8n instance.
  Configure Google Drive Credentials:
      Select the Google Drive: Upload File node.
      You MUST configure your own Google Drive credentials. Click on the 'Credentials' dropdown and either select existing credentials or create new ones by following the authentication prompts.
  (Optional) Customize Google Drive Folder: In the Google Drive: Upload File node, you can change the Drive ID and Folder ID to specify exactly where the chart should be uploaded.
  Activate: Activate the workflow if you want it to run automatically based on a different trigger.

  How to Use & Customize

  Change Input Data:** Modify the labels and salesData arrays within the Edit Fields: Set JSON data to test node to use your own data. Ensure the number of labels matches the number of data points.
  Use Real Data Sources:** Replace the Edit Fields: Set JSON data to test node with nodes that fetch data from real sources like:
      HTTP Request (APIs)
      Postgres / MongoDB nodes (Databases)
      Google Sheets node
      Ensure the output data from your source node is formatted similarly (providing labels and salesData arrays). You might need another Set node to structure the data correctly before the QuickChart node.
  Change Chart Type:** In the QuickChart node, modify the Chart Type parameter (e.g., change from line to bar, pie, doughnut, etc.).
  Customize Chart Appearance:** Explore the Chart Options parameter within the QuickChart node to add titles, change colors, modify axes, etc., using QuickChart's standard JSON configuration options.
  Use Datasets (Recommended for Complex Charts):** For multiple lines/bars or more control, configure datasets explicitly in the QuickChart node:
      Remove the expression from the top-level Data field.
      Go to Dataset Options -&gt; Add option -&gt; Add dataset.
      Set the Data field within the dataset using an expression like {{ $json.jsonData.salesData }}.
      You can add multiple datasets this way.
  Change Output Destination:** Replace the Google Drive: Upload File node with other nodes to handle the chart image differently:
      Write Binary File: Save the chart to the local filesystem where n8n is running.
      Slack / Discord / Telegram: Send the chart to messaging platforms.
      Move Binary Data: Convert the image to Base64 to embed in HTML or return via webhook response.

  Nodes Used

  Manual Trigger
  Set
  QuickChart
  Google Drive



  Tags: (Suggestions for tags field)

  QuickChart, Chart, Visualization, Line Chart, Google Drive, Reporting, Automation

nodes_used:
  ["n8n-nodes-base.quickChart","n8n-nodes-base.set","n8n-nodes-base.googleDrive","n8n-nodes-base.stickyNote","n8n-nodes-base.manualTrigger"]

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

metadata_json:
  {"categories":["automation","visualization","reporting","integration"],"complexity":"simple","use_cases":["Generate charts for presentations or reports on demand","Automated report generation (daily/weekly sales charts)","Visualizing data fetched from APIs or databases","Simple monitoring dashboards and alerts","Attaching generated charts to messages or drive storage"],"estimated_setup_minutes":10,"required_services":["Google Drive (for file upload)","QuickChart API (used by the QuickChart node)","Optional data sources: APIs, Google Sheets, Postgres/MongoDB (if replacing sample Set node)"],"key_features":["Dynamically generate line charts from JSON data","Read labels and data arrays from JSON payloads","Output chart as binary image","Upload generated chart image to Google Drive with dynamic filename","Easy to swap input nodes (HTTP request, DB, Google Sheets) or output nodes (Slack, local file)"],"target_audience":["Marketers producing visual reports","Data analysts creating quick visualizations","Developers automating chart generation and storage workflows\",\"Operations / BI teams automating monitoring visuals"]}


name: Automated Research Report Generation with AI, Wiki, Search & Gmail/Telegram
author_name: Immanuel
author_username: spectrabit
categories: []
created_at: 2025-04-16T16:59:02.174Z
updated_at: 2025-04-16T16:59:02.174Z
url: https://n8n.io/workflows/3579
scraped_at: 2025-09-14 19:11:00
metadata_generated_at: 2025-09-14 21:18:31
description:
  Automated Research Report Generation with OpenAI, Wikipedia, Google Search, Gmail/Telegram and PDF Output
  Description

  What Problem Does This Solve? 🛠️
  This workflow automates the process of generating professional research reports for researchers, students, and professionals. It eliminates manual research and report formatting by aggregating data, generating content with AI, and delivering the report as a PDF via Gmail or Telegram. Target audience: Researchers, students, educators, and professionals needing quick, formatted research reports.

  What Does It Do? 🌟
  Aggregates research data from Wikipedia, Google Search, and SerpApi.
  Refines user queries and generates structured content using OpenAI.
  Converts the content into a professional HTML report, then to PDF.
  Sends the PDF report via Gmail or Telegram.

  Key Features 📋
  Real-time data aggregation from multiple sources.
  AI-driven content generation with OpenAI.
  Automated HTML-to-PDF conversion for professional reports.
  Flexible delivery via Gmail or Telegram.
  Error handling for robust execution.

  Setup Instructions

  Prerequisites ⚙️
  n8n Instance**: Self-hosted or cloud n8n instance.
  API Credentials**:
    OpenAI API: API key with GPT model access, stored in n8n credentials.
    SerpApi (Google Search): API key from SerpApi, stored in n8n credentials (do not hardcode in nodes).
    Gmail API: Credentials from Google Cloud Console with Gmail scope.
    Telegram API: Bot token from BotFather on Telegram.

  Installation Steps 📦
  Import the Workflow:
     Copy the workflow JSON from the "Template Code" section below.
     Import it into n8n via "Import from File" or "Import from URL".
  Configure Credentials:
     Add API credentials in n8n’s Credentials section for OpenAI, SerpApi, Gmail, and Telegram.
     Assign credentials to respective nodes. For example:
       In the SerpApi Google Search node, use n8n credentials for SerpApi: api_key={{ $credentials.SerpApiKey }}.
       In the Send Research PDF on Gmail node, use Gmail credentials.
       In the Send PDF to Telegram node, use Telegram bot credentials.
  Set Up Nodes:
     OpenAI Nodes (Research AI Agent, OpenAI Chat Model, OpenAI Chat Middle Memory): Update the model (e.g., gpt-4o) and prompt as needed.
     Input Validation (Input Validation node): Ensure your input query format matches the expected structure (e.g., topic: "AI ethics").
     Delivery Options (Send Research PDF on Gmail, Send PDF to Telegram): Configure recipient email or Telegram chat ID.
  Test the Workflow:
     Run the workflow by clicking the "Test Workflow" node.
     Verify that the research report PDF is generated and sent via Gmail or Telegram.

  How It Works

  High-Level Steps 🔍
  Query Refinement**: Refines the input query for better research.
  Aggregate Data**: Fetches data from Wikipedia, Google Search, and SerpApi.
  Generate Report**: Uses OpenAI to create a structured report.
  Convert to PDF**: Converts the report to HTML, then PDF.
  Deliver Report**: Sends the PDF via Gmail or Telegram.

  Detailed descriptions are available in the sticky notes within the workflow screenshot above.

  Node Names and Actions

  Research and Report Generation
  Test Workflow: Triggers the workflow for testing.
  Input Validation: Validates the input query.
  Query Refiner: Refines the query for better results.
  Research AI Agent: Coordinates research using OpenAI.
  OpenAI Chat Model: Generates content for the report.
  Structured Output Parser: Parses OpenAI output into structured data.
  OpenAI Chat Middle Memory: Retains context during research.
  Wikipedia Google Search: Fetches data from Wikipedia.
  SerpApi Google Search: Fetches data via SerpApi.
  Merge Split Items: Merges data from multiple sources.
  Aggregate: Aggregates all research data.
  Generate PDF HTML: Creates an HTML report.
  Convert HTML to PDF: Converts HTML to PDF.
  Download PDF: Downloads the PDF file.
  Send PDF to Telegram: Sends the PDF via Telegram.
  Send Research PDF on Gmail: Sends the PDF via Gmail.

  Customization Tips

  Expand Data Sources** 📡: Add more sources (e.g., academic databases) by adding nodes to Merge Split Items.
  Change Report Style** ✍️: Update the Generate PDF HTML node to modify the HTML template (e.g., adjust styling or sections).
  Alternative Delivery** 📧: Add nodes to send the PDF via other platforms (e.g., Slack).
  Adjust AI Model** 🧠: Modify the OpenAI Chat Model node to use a different model (e.g., gpt-3.5-turbo).

nodes_used:
  ["@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.memoryBufferWindow","@n8n/n8n-nodes-langchain.toolHttpRequest","@n8n/n8n-nodes-langchain.toolHttpRequest","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.toolHttpRequest","@n8n/n8n-nodes-langchain.toolHttpRequest","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.splitOut","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.googleSheets","n8n-nodes-base.stickyNote","n8n-nodes-base.code","n8n-nodes-base.httpRequest","n8n-nodes-base.aggregate","n8n-nodes-base.httpRequest","n8n-nodes-base.gmail","n8n-nodes-base.manualTrigger","n8n-nodes-base.telegram","n8n-nodes-base.executeWorkflowTrigger","n8n-nodes-base.googleDrive","n8n-nodes-base.if"]

workflow_json_compressed:
  [encoded data, 13632 characters]

metadata_json:
  {"categories":["automation","integration","data processing","reporting","ai"],"complexity":"complex","use_cases":["Automated research report generation","Literature reviews and summaries","Student assignments and study aids","Executive briefings and whitepapers","Competitive/market research"],"estimated_setup_minutes":30,"required_services":["n8n instance (self-hosted or cloud)","OpenAI API","SerpApi (Google Search)","Wikipedia (public data)","Gmail API (Google Cloud credentials)","Telegram Bot API"],"key_features":["Aggregates data from Wikipedia, Google Search/SerpApi","Query refinement for focused research","AI-driven structured content generation with OpenAI","HTML-to-PDF conversion for professional reports","Delivery via Gmail or Telegram (PDF)"],"target_audience":["Researchers","Students","Educators and academics\",\"Professionals and analysts\",\"Developers/automation engineers"]}


name: Scrape LinkedIn Job Listings for Hiring Signals & Prospecting with Bright Data
author_name: Yaron Been
author_username: yaron-nofluff
categories: []
created_at: 2025-04-16T18:34:57.146Z
updated_at: 2025-04-16T18:34:57.146Z
url: https://n8n.io/workflows/3580
scraped_at: 2025-09-14 19:10:59
metadata_generated_at: 2025-09-14 21:18:31
description:
  LinkedIn Hiring Signal Scraper — Jobs & Prospecting Using Bright Data

  Purpose:
  Discover recent job posts from LinkedIn using Bright Data's Dataset API, clean the results, and log them into Google Sheets — for both job hunting and identifying high-intent B2B leads based on hiring activity.

  Use Cases:
  Job Seekers** – Spot relevant openings filtered by role, city, and country.  
  Sales & Prospecting** – Use job posts as buying signals.  
    If a company is hiring for a role you support (e.g. marketers, developers, ops) —  
    it's the perfect time to reach out and offer your services.

  Tools Needed:
  n8n Nodes:**
    Form Trigger  
    HTTP Request  
    Wait  
    If  
    Code  
    Google Sheets  
    Sticky Notes (for embedded guidance)
  External Services:**
    Bright Data (Dataset API)  
    Google Sheets

  API Keys & Authentication Required:
  Bright Data API Key**  
    → Add in the HTTP Request headers:  
    Authorization: Bearer YOUR_BRIGHTDATA_API_KEY

  Google Sheets OAuth2**  
    → Connect your account in n8n to allow read/write access to the spreadsheet.

  General Guidelines:
  Use descriptive names for all nodes.  
  Include retry logic in polling to avoid infinite loops.  
  Flatten nested fields (like job_poster and base_salary).  
  Strip out HTML tags from job descriptions for clean output.

  Things to be Aware Of:
  Bright Data snapshots take ~1–3 minutes — use a Wait node and polling.  
  Form filters affect output significantly:  
    🔍 We recommend filtering by "Last 7 days" or "Past 24 hours" for fresher data.  
  Avoid hardcoding values in the form — leave optional filters empty if unsure.

  Post-Processing & Outreach:
  After data lands in Google Sheets, you can use it to:  
    Personalize cold emails based on job titles, locations, and hiring signals.  
    Send thoughtful LinkedIn messages (e.g., "Saw you're hiring a CMO...")  
    Prioritize outreach to companies actively growing in your niche.

  Additional Notes:
  📄 Copy the Google Sheet Template:  
    Click here to make your copy  
    → Rename for each campaign or client.

  Form fields include:  
    Job Location (city or region)  
    Keyword (e.g., CMO, Backend Developer)  
    Country (2-letter code, e.g., US, UK)

  This workflow gives you a competitive edge —  
  📌 For candidates: Be first to apply.  
  📌 For sellers: Be first to pitch.  
  All based on live hiring signals from LinkedIn.

  STEP-BY-STEP WALKTHROUGH

  Step 1: Set up your Google Sheet
  Open this template
  Go to File → Make a copy
  You'll use this copy as the destination for the scraped job posts

  Step 2: Fill out the Input Form in n8n
  The form allows you to define what kind of job posts you want to scrape.

  Fields:
  Job Location** → e.g. New York, Berlin, Remote  
  Keyword** → e.g. CMO, AI Architect, Ecommerce Manager  
  Country Code (2-letter)** → e.g. US, UK, IL

  💡 Pro Tip:  
  For best results, set the filter inside the workflow to:  
  time_range = "Past 24 hours" or "Last 7 days"  
  This keeps results relevant and fresh.

  Step 3: Trigger Bright Data Snapshot
  The workflow sends a request to Bright Data with your input.

  Example API Call Body:
  [
    {
      "location": "New York",
      "keyword": "Marketing Manager",
      "country": "US",
      "time_range": "Past 24 hours",
      "job_type": "Part-time",
      "experience_level": "",
      "remote": "",
      "company": ""
    }
  ]

  Bright Data will start preparing the dataset in the background.

  Step 4: Wait for the Snapshot to Complete
  The workflow includes a Wait Node and Polling Loop that checks every few minutes until the data is ready.

  You don't need to do anything here — it's all automated.

  Step 5: Clean Up the Results
  Once Bright Data responds with the full job post list:

  ✔️ Nested fields like job_poster and base_salary are flattened  
  ✔️ HTML in job descriptions is removed  
  ✔️ Final data is formatted for export

  Step 6: Export to Google Sheets
  The final cleaned list is added to your Google Sheet (first tab).

  Each row = one job post, with columns like:

  job_title, company_name, location, salary_min, apply_link, job_description_plain

  Step 7: Use the Data for Outreach or Research
  Example for Job Seekers:
  You search for:

  Location: Berlin
  Keyword: Product Designer
  Country: DE
  Time range: Past 7 days

  Now you've got a live list of roles — with salary, recruiter info, and apply links.
  → Use it to apply faster than others.

  Example for Prospecting (Sales / SDR):
  You search for:

  Location: London
  Keyword: Growth Marketing
  Country: UK

  And find companies hiring growth marketers.
  → That's your signal to offer help with media buying, SEO, CRO, or your relevant service.

  Use the data to:
  Write personalized cold emails ("Saw you're hiring a Growth Marketer…")
  Start warm LinkedIn outreach
  Build lead lists of companies actively expanding in your niche

  API Credentials Required:
  Bright Data API Key**  
    Used in HTTP headers: Authorization: Bearer YOUR_BRIGHTDATA_API_KEY

  Google Sheets OAuth2**  
    Allows n8n to read/write to your spreadsheet

  Adjustments & Customization Tips:
  Modify the HTTP Request body to add more filters (e.g. job_type, remote, company)
  Increase or reduce polling wait time depending on Bright Data speed
  Add scoring logic to prioritize listings based on title or location

  Final Notes:
  📄 Google Sheet Template:  
    Make your copy here

  ⚙️ Bright Data Dataset API:  
    Visit BrightData.com

  📬 Personalization works best when you act quickly.  
    Use the freshest data to reach out with context — not generic pitches.

  This workflow turns LinkedIn job posts into sales insights and job leads.
  All in one click. Fully automated. Ready for your next move.

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

workflow_json_compressed:
  [encoded data, 8052 characters]

metadata_json:
  {"categories":["automation","integration","data processing","web scraping","lead generation"],"complexity":"medium","use_cases":["Find recent job openings by role/location for job seeking","Identify high-intent B2B leads from hiring activity for sales/prospecting","Populate and maintain lead/job lists in Google Sheets","Drive personalized outreach (cold email/LinkedIn) based on live hiring signals"],"estimated_setup_minutes":15,"required_services":["Bright Data (Dataset API)","Google Sheets (OAuth2)","n8n platform"],"key_features":["Form-triggered inputs for location, keyword, country and time range","Triggers Bright Data snapshot and polls until dataset is ready (wait + retry logic)","Cleans and flattens nested fields (e.g., job_poster, base_salary)","Strips HTML from job descriptions","Writes structured rows to Google Sheets (one job post per row)"],"target_audience":["Job seekers","Sales/BD/SDR teams and prospectors","Recruiters and talent sourcers seeking hiring signals for research/outreach','Marketing/growth teams monitoring hiring trends"]}


name: Domain to Email Extraction using Apollo API
author_name: Hueston
author_username: hueston
categories: []
created_at: 2025-04-16T19:03:08.744Z
updated_at: 2025-04-16T19:03:08.744Z
url: https://n8n.io/workflows/3581
scraped_at: 2025-09-14 19:11:02
metadata_generated_at: 2025-09-30 08:33:37
description:
  Who is this for?
  Sales professionals looking to build lead lists from target company domains
  Business development teams conducting outreach campaigns
  Marketers building contact databases for account-based marketing
  Recruiters searching for potential candidates at specific companies
  Anyone needing to transform a list of company domains into actionable contact information

  What problem is this workflow solving?
  Finding business email addresses for outreach is a time-consuming process. The Apollo API doesn't provide a direct way to extract email contacts from domains in a single call. This workflow bridges that gap by:

  Automating the two-step process required by Apollo's API
  Processing multiple domains in batches without manual intervention
  Extracting, enriching, and storing contact information in a structured format
  Eliminating hours of manual data entry and API interaction

  What this workflow does
  This workflow creates an automated pipeline between Google Sheets and Apollo's API to:

  Pull a list of target domains from a Google Sheet
  Submit each domain to Apollo's search API to find associated people
  Loop through each person found and enrich their profile data
  Extract key information: name, title, email address, and LinkedIn URL
  Write the enriched contact information back to a results sheet
  Process the next domain automatically until all are complete

  Setup

  Prerequisites:
  An n8n instance (cloud or self-hosted)
  Apollo.io account with API access
  Google account with access to Google Sheets

  Google Sheets Setup:
  Create a new Google Sheet with two tabs:
     Tab 1: "Target Domains" with a column named "Domain To Enrich"
     Tab 2: "Results" with columns: Company, First Name, Last Name, Title, Email, LinkedIn

  n8n Setup:
  Import the workflow JSON into your n8n instance
  Set up Google Sheets credentials in n8n
  Update the Google Sheets document ID in both Google Sheets nodes
  Add your Apollo API key to both HTTP Request nodes
  Review and adjust API rate limits if needed

  Testing:
  Add a few test domains to your "Target Domains" sheet
  Run the workflow manually to verify it's working correctly
  Check the "Results" sheet to confirm data is being properly populated

  How to customize this workflow to your needs

  Adding More Contact Fields:
  Modify the "Clean Up" node to extract additional fields from the Apollo API response
  Add corresponding columns to your "Results" sheet
  Update the "Results To Results Sheet" node mapping to include the new fields

  Filtering Results:
  Add a Filter node after "Clean Up" to include only contacts with specific roles
  Create conditions based on title, seniority, or other fields returned by Apollo

  Automating Workflow Execution:
  Replace the manual trigger with a Schedule Trigger to run daily/weekly
  Add a Filter node to process only domains with "Not Processed" status
  Update the status field in Google Sheets after processing

  Additional Notes
  This workflow respects Apollo's API rate limits by processing one contact at a time
  The Apollo API may not return contact information for all domains or all employees
  Consider legal and privacy implications when collecting and storing contact information

  Made with ❤️ by Hueston

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.splitInBatches","n8n-nodes-base.googleSheets","n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.splitInBatches","n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.googleSheets"]

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

metadata_json:
  {"categories":["integration","data enrichment","lead generation","automation"],"complexity":"medium","use_cases":["Build lead lists from company domains","Enrich contact databases for account-based marketing","Support sales outreach and business development","Recruiter sourcing from company domains","Automate domain-to-email lookup and export to spreadsheets"],"estimated_setup_minutes":20,"required_services":["Apollo API (Apollo.io) - API key","Spreadsheet service (e.g., Google Sheets or Excel)","n8n instance"],"key_features":["Bulk domain processing with splitInBatches","Apollo API lookups via HTTP requests","Data transformation with code nodes","Input and output to spreadsheets","Supports manual trigger or webhook input"],"target_audience":["Sales professionals","Business development teams","Marketers (ABM-focused)"]}


name: High-Level Service Page SEO Blueprint Report Generator
author_name: Custom Workflows AI
author_username: customworkflowsai
categories: []
created_at: 2025-04-17T10:36:18.449Z
updated_at: 2025-04-17T10:36:18.449Z
url: https://n8n.io/workflows/3583
scraped_at: 2025-09-14 19:11:00
metadata_generated_at: 2025-09-14 21:18:31
description:
  Introduction
  The "High-Level Service Page SEO Blueprint Report" workflow is a powerful, AI-driven solution designed to generate comprehensive SEO content strategies for service-based businesses.

  By analyzing competitor websites and user intent, this workflow creates a detailed blueprint that outlines the optimal structure, content, and conversion elements for a service page. The workflow leverages the JINA Reader API to extract content from competitor websites and uses Google Gemini AI to perform deep analysis across multiple dimensions: competitor content structure, user intent, strategic opportunities, and conversion optimization.

  The final output is a professionally formatted Markdown document that provides actionable guidance for creating a high-performing service page that satisfies both user needs and search engine requirements. This workflow eliminates the time-consuming process of manually analyzing competitors and developing content strategies, providing a data-driven foundation for service page creation that would typically require hours of expert analysis.

  Who is this for?
  This workflow is designed for digital marketers, SEO specialists, content strategists, and web developers who need to create or optimize service pages for businesses. It's particularly valuable for marketing agencies and freelancers who regularly develop content strategies for clients across various industries. 

  Users should have a basic understanding of SEO concepts, content marketing, and website structure. While technical SEO knowledge is beneficial, the workflow is designed to provide comprehensive guidance even for those with intermediate-level expertise. 

  The ideal user is someone who wants to streamline their content planning process and ensure their service pages are built on data-driven insights rather than guesswork.

  What problem is this workflow solving?
  Creating effective service pages that rank well in search engines while converting visitors is a complex challenge that typically requires extensive competitive research, content planning, and conversion optimization expertise. This workflow addresses several key pain points:

  Time-consuming competitor analysis: Manually analyzing multiple competitor websites to identify content patterns, heading structures, and meta tag strategies can take hours.

  Difficulty identifying content gaps: Determining what topics competitors are missing that could provide a competitive advantage requires deep analysis and industry knowledge.

  Balancing SEO and conversion elements: Creating content that satisfies both search engines and user needs while driving conversions is a delicate balance that many struggle to achieve.

  Lack of structured approach: Many content creators work without a comprehensive blueprint, leading to inconsistent results and missed opportunities.

  Difficulty translating analysis into actionable recommendations: Even when analysis is performed, turning those insights into a concrete content plan can be challenging.

  This workflow automates these processes, providing a structured, data-driven approach to service page creation that saves hours of research and planning time.

  What this workflow does
  Overview
  The workflow takes a list of competitor URLs and a target keyword as input, then performs a multi-stage analysis to generate a comprehensive service page blueprint. It extracts and analyzes competitor content, evaluates user intent, identifies strategic opportunities, and creates detailed recommendations for page structure, content, and conversion elements. 

  The final output is a professionally formatted Markdown document that serves as a complete roadmap for creating an effective service page.

  Process
  Data Collection: The workflow begins with a form that collects essential information: competitor URLs, target keyword, services offered, brand name, and whether the page is a homepage.

  Competitor Content Extraction: The workflow processes each competitor URL, using the JINA Reader API to extract the HTML content from each site.

  Content Structure Analysis: For each competitor site, the workflow extracts and analyzes heading structures, meta tags, schema markup, and recurring phrases (n-grams).

  Competitor Analysis Report: The AI synthesizes the competitive data to identify patterns in meta titles/descriptions, common outline sections, key heading concepts, and structural elements.

  User Intent Analysis: The workflow analyzes the target keyword to determine primary and secondary user intents, user personas, and their position in the buyer's journey.

  Gap Analysis: The AI identifies content overlaps ("table stakes"), content gaps (opportunities), SEO keyword priorities, and potential UX/conversion advantages.

  Page Outline Generation: Based on the previous analyses, the workflow creates an optimal page structure with H1, H2s, H3s, and potentially H4s, with justifications for each section.

  UX & Conversion Recommendations: The workflow adds detailed recommendations for calls-to-action, trust signals, copywriting tone, visual elements, and risk reversal strategies.

  Final Blueprint Creation: All analyses and recommendations are compiled into a comprehensive, well-structured Markdown document that serves as a complete service page blueprint.

  Setup
  Download or import the "High-Level Service Page SEO Blueprint Report" workflow JSON file into your n8n instance.

  Create a JINA Reader API key by visiting https://jina.ai/api-dashboard/key-manager. You can claim a free API key that allows up to 1 million tokens.

  Set up Google Gemini (PaLM) credentials by following the guide at https://docs.n8n.io/integrations/builtin/credentials/googleai/#using-geminipalm-api-key.

  Update the "Edit Fields" node with:
     Your JINA Reader API Key
     Adjust the "Waiting Time" to 20 seconds if using the free Google Gemini API tier (which limits to 5 requests per minute)
     Optionally change the Gemini model if needed

  Activate the workflow and start the form trigger.

  Complete the form with:
     Competitors (up to 5 direct competitor URLs)
     Target Keyword (the query related to your service)
     Services Offered (details of your complete service offerings)
     Brand Name (your company name)
     Whether the page is a homepage

  After processing, download the generated .txt file, which contains the blueprint in Markdown format.

  How to customize this workflow to your needs
  Adjust AI parameters: Modify the temperature settings in the Google Gemini Chat Model nodes to control creativity vs. precision in the AI outputs.

  Customize extraction logic: Edit the "Extract HTML Elements" code node to focus on specific HTML elements that are most relevant to your industry or content type.

  Modify analysis prompts: Customize the prompts in the various analysis nodes to focus on specific aspects of SEO or content strategy that are most important for your use case.

  Add industry-specific guidance: Enhance the prompts with industry-specific instructions or examples to make the output more relevant to particular sectors.

  Integrate with content management systems: Extend the workflow to automatically send the blueprint to content management systems, project management tools, or document storage platforms.

  Add competitor scoring: Implement a scoring system to evaluate and rank competitors based on specific criteria relevant to your strategy.

  Expand the analysis: Add additional analysis nodes to evaluate other aspects of competitor websites, such as page speed, mobile-friendliness, or backlink profiles.

nodes_used:
  ["n8n-nodes-base.code","n8n-nodes-base.formTrigger","n8n-nodes-base.splitInBatches","n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.set","n8n-nodes-base.code","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.wait","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.wait","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","@n8n/n8n-nodes-langchain.chainLlm","@n8n/n8n-nodes-langchain.chainLlm","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.set","n8n-nodes-base.wait","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.set","n8n-nodes-base.wait","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.set","n8n-nodes-base.convertToFile","n8n-nodes-base.set","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 17664 characters]

metadata_json:
  {"categories":["automation","SEO","content strategy","AI-driven analysis","integration"],"complexity":"complex","use_cases":["Generate data-driven service page blueprints","Competitor content and structure analysis","Identify content gaps and SEO opportunities","Create SEO-friendly page outlines and meta guidance","Produce conversion and UX recommendations for service pages"],"estimated_setup_minutes":30,"required_services":["n8n instance","JINA Reader API (jina.ai)","Google Gemini (PaLM) API / Google AI credentials","Public access to competitor URLs (web scraping)","Optional: CMS or project management tool for downstream integration"],"key_features":["Extract HTML and content from competitor URLs via JINA Reader","Analyze heading structure, meta tags, schema, and n-grams","AI-driven user intent and persona analysis using Google Gemini","Gap analysis highlighting table-stakes vs opportunities","Auto-generated H1–H4 page outlines with section-level justifications"],"target_audience":["Digital marketers","SEO specialists","Content strategists and copywriters」「Web developers and site owners」「Marketing agencies and freelancers"]}


name: Create AI-Powered YouTube Shorts with OpenAI, ElevenLabs, 0CodeKit!
author_name: dada
author_username: lin
categories: []
created_at: 2025-04-17T11:00:05.102Z
updated_at: 2025-04-17T11:00:05.102Z
url: https://n8n.io/workflows/3584
scraped_at: 2025-09-14 19:11:02
metadata_generated_at: 2025-09-14 21:18:32
description:
  YouTube Shorts Automation with AI-Powered Video Generation

  Overview

  This workflow automates the creation of engaging YouTube Shorts by leveraging AI tools to generate scripts, audio, images, and videos, then compiles them into a final video ready for upload. It uses OpenAI for script and image prompt generation, ElevenLabs for text-to-speech, Replicate for image and video generation, Cloudinary for audio storage, and Creatomate for final video rendering. The workflow segments the script into 6-second clips, creates corresponding visuals, and combines them with audio, adding smooth transitions for a polished result.

  Why is this workflow useful?

  Creating YouTube Shorts manually is time-consuming, requiring scriptwriting, voiceovers, and video editing. This workflow automates the entire process, enabling creators to produce high-quality, engaging Shorts in minutes. It’s ideal for content creators, marketers, or businesses looking to maintain a consistent social media presence with minimal effort.

  Who is this workflow for?

  Content Creators**: YouTubers or TikTok creators aiming to produce viral Shorts quickly.
  Digital Marketers**: Businesses promoting products or services through short-form video content.
  Hobbyists**: Individuals experimenting with AI-driven video production without advanced editing skills.

  What will you need to use this workflow?

  n8n Account**: Free or paid, hosted on n8n Cloud or self-hosted.
  OpenAI API Key**: For generating scripts and image prompts (GPT-4o-mini model).
  ElevenLabs API Key**: For text-to-speech conversion.
  Replicate API Key**: For generating images and videos.
  Cloudinary Account**: For storing audio files.
  Creatomate API Key**: For rendering the final video.
  Basic JSON Knowledge**: To understand and tweak the workflow output if needed.

  How does this workflow work?

  Trigger: The workflow starts manually via the "Test Workflow" button.
  Script Generation: OpenAI (GPT-4o-mini) generates a script with an intro (40-70 chars), base (280-350 chars), and CTA (55 chars), plus a title and description with hashtags.
  Text-to-Speech: ElevenLabs converts the script into an MP3 audio file with timestamps.
  Audio Upload: The audio is uploaded to Cloudinary for storage.
  Script Segmentation: A Python script segments the audio into 6-second clips, creating transcription chunks.
  Image Prompt Generation: OpenAI generates a visual prompt for each segment in the style of CNSTLL, ensuring simple, animatable visuals.
  Image Generation: Replicate creates a 9:16 image for each segment based on the prompt.
  Video Generation: Replicate’s Minimax model generates 5-second video clips from the images.
  Video Compilation: Creatomate combines the video clips with the audio, adding fade transitions and a final black shape for a smooth close.
  Final Output: The rendered video is retrieved from Creatomate, ready for YouTube Shorts.

  Setup instructions

  Import the Workflow: Copy the provided JSON into n8n and import it as a new workflow.
  Add Credentials:
     Configure OpenAI API credentials for the "Ideator" and "Image Prompter" nodes.
     Set up ElevenLabs API key in the "Script Generator" node.
     Add Replicate API key for the "Request Image," "Request Video," and "Get Video" nodes.
     Configure Cloudinary credentials for the "Upload to Cloudinary" node.
     Set Creatomate API key for the "Editor" and "Get Final Video" nodes.
  Test the Workflow:
     Click "Test Workflow" to run it manually.
     Replace &lt;user-query&gt; in the "Ideator" node with your video topic (e.g., "Fitness tips for beginners").
  Verify Outputs: Check each node’s output, ensuring audio, images, and videos are generated correctly.
  Customize (Optional):
     Adjust segment duration in the "HTTP Request" node’s Python code (default: 6 seconds).
     Modify fade duration or video resolution in the "Create Editor JSON" node.
  Save and Activate: Save the workflow and activate it for regular use.

  Tips for getting the most out of this workflow

  Optimize Prompts**: Use specific, concise queries in the "Ideator" node for better script quality (e.g., "Minimalist home decor ideas").
  Check API Limits**: Ensure your API accounts (OpenAI, ElevenLabs, Replicate, Creatomate) have sufficient credits.
  Experiment with Styles**: Tweak the CNSTLL style in the "Image Prompter" node for unique visuals, but keep prompts simple to avoid AI generation errors.
  Monitor Rendering Time**: Video rendering in Creatomate may take up to 70 seconds; adjust the "Rendering" node’s wait time if needed.
  Add Hashtags**: Enhance the generated description with trending hashtags like #YouTubeShorts, #AI, or niche-specific tags.

  Troubleshooting

  Error in Script Generation**: Verify your OpenAI API key and ensure the query is clear.
  Audio Issues**: Check ElevenLabs API key and confirm the script length fits within API limits.
  Image/Video Failures**: Ensure Replicate API key is valid and prompts are simple (avoid complex scenes or humans).
  Rendering Errors**: Confirm Creatomate API key and check JSON structure in the "Create Editor JSON" node.
  Contact Support**: Reach out to n8n Community Forum or respective API providers for persistent issues.

  Built with

  n8n Nodes**: Manual Trigger, OpenAI, HTTP Request, Set, Split Out, Aggregate, Merge, Wait.
  External Services**: OpenAI (GPT-4o-mini), ElevenLabs (Multilingual v2), Replicate (Flux-Cinestill, Minimax Video-01), Cloudinary, Creatomate.
  Custom Code**: Python for audio segmentation and JSON rendering.

  Example output

  For a query like "Morning routine hacks":

  Script**:
    Intro: "Struggling to start your day right?"
    Base: "Try these 3 morning hacks: 5-min meditation to clear your mind, a quick stretch routine to boost energy, and a cold shower to stay alert. Set your day up for success!"
    CTA: "Save this and try it tomorrow!"
  Title**: "3 Morning Hacks You NEED to Try!"
  Description**: "Kickstart your day with these easy hacks! 🧘‍♀️🚿 #MorningRoutine #Productivity #YouTubeShorts"
  Video**: A 15-second Short with three 5-second clips (meditation scene, stretching POV, cold shower close-up), synced with audio and fade transitions.

nodes_used:
  ["n8n-nodes-base.manualTrigger","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.splitOut","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.httpRequest","n8n-nodes-base.wait","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.wait","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.aggregate","n8n-nodes-base.merge","n8n-nodes-base.httpRequest","n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.wait","n8n-nodes-base.httpRequest"]

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

metadata_json:
  {"categories":["automation","content creation","video production","AI/ML integration","social media"],"complexity":"complex","use_cases":["Automated YouTube Shorts creation","Repurposing long-form content into short-form video","Rapid social media content production for marketing","Generating voiceover, visuals, and final rendered videos programmatically","A/B testing short video variations"],"estimated_setup_minutes":45,"required_services":["n8n (Cloud or self-hosted)","OpenAI (GPT-4o-mini)","ElevenLabs (text-to-speech)","Replicate (image & video models)","Cloudinary (audio storage)","Creatomate (video rendering)"],"key_features":["AI script and title/description generation","Text-to-speech conversion with timestamps","Automatic audio segmentation into short clips","AI image prompt generation and 9:16 image creation","AI-driven short video clip generation from images (Replicate) ￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼"],"target_audience":["Content creators (YouTubers, TikTokers)","Digital marketers and social media managers","Small businesses and agencies producing short-form video ads/content for clients」「Hobbyists experimenting with AI video production"]}


name: 🤖 AI Restaurant Assistant for WhatsApp, Instagram & Messenger
author_name: Amanda Benks
author_username: amanda
categories: []
created_at: 2025-04-17T11:46:33.900Z
updated_at: 2025-04-17T11:46:33.900Z
url: https://n8n.io/workflows/3585
scraped_at: 2025-09-14 19:11:00
metadata_generated_at: 2025-09-30 08:33:37
description:
  Hi, I’m Amanda! 💌

  This workflow was created with so much love, care, and attention… especially for you, who runs a restaurant, a cozy little burger place, or a delivery business full of heart. 🥰

  I know how busy your days can be, so I made this sweet AI assistant to help you take care of your customers on WhatsApp, Instagram, Messenger (or Evolution API). It sends your beautiful menu, checks ZIP codes, creates payment links, and even notifies the kitchen when the order is ready. All gentle, all automatic, all with love. 💛

  💡 What this workflow does

  Replies to customers via WhatsApp API, Instagram Direct, Messenger, and Evolution API  
  Checks ZIP codes to see if delivery is available using Google Maps  
  Sends your menu as images, because food should look as good as it tastes 🍕  
  Collects item selections and offers lovely upsells like drinks or extras  
  Creates payment links with the Asaas API  
  Confirms when the payment is complete and sends the order to the kitchen  
  Stores all messages and session data safely in Supabase  
  Uses OpenAI GPT-4o to talk naturally and kindly with your customers

  ⚙️ How to set it up (I’ll guide you with care 🧸)

  Connect your webhook from WhatsApp, Instagram, Messenger, or Evolution API  
  Create a Supabase table called n8n_workflow_followup  
     You can use this ready-made template here:  
       👉 Supabase Sheet Template  
  Add your API keys (OpenAI, Supabase, Google Maps, and Asaas) securely in n8n  
  Customize the AI prompt with your brand’s voice and sweet style 💫  
  Set your delivery radius (default is 10km, but you can change it!)  
  Upload your menu images (from Google Drive, your website, or any link)  
  That’s it! Your assistant is now ready to serve with kindness and automation 💕

  🍯 Works with:

  ✅ n8n Cloud and Self-Hosted n8n  
  🔐 All API credentials are safely stored using n8n’s secure credential manager

  Want something customized just for you?
  Chat with me, I’d love to help 💻💛 Chat via WhatsApp (+55 17 99155-7874)
  .
  .
  .
  Tradução em Português:
  Oi, eu sou a Amanda! 💌
  Esse workflow foi feito com muito carinho, dedicação e cuidado... pensando especialmente em você, que tem um restaurante, lanchonete ou delivery cheio de amor pelo que faz. 🥰

  Eu sei como o dia a dia pode ser corrido, e foi por isso que eu criei esse atendente com IA: pra te ajudar a responder clientes no WhatsApp, Instagram, Messenger (ou Evolution API), enviar cardápio com imagens lindas, calcular entregas, gerar links de pagamento e até avisar a cozinha. Tudo com jeitinho, sem complicação, e com muito coração. 💛

  💡 O que esse fluxo faz

  Atende clientes pelo WhatsApp API, Instagram Direct, Messenger e Evolution API  
  Valida CEP e calcula se o cliente está dentro da área de entrega (usando Google Maps)  
  Envia cardápio com imagens, porque comer começa pelos olhos 🍕  
  Coleta os pedidos e também oferece bebidas e adicionais  
  Gera link de pagamento automaticamente com a API do Asaas  
  Confirma o pagamento e avisa a cozinha quando estiver tudo certo  
  Armazena mensagens, horários e histórico no Supabase  
  Usa o GPT-4o da OpenAI pra conversar de forma educada e natural com seus clientes

  ⚙️ Como configurar (com meu passo a passo cheio de cuidado 🧸)

  Conecte seu webhook do WhatsApp, Instagram, Messenger ou Evolution API  
  Crie uma tabela no Supabase chamada n8n_workflow_followup  
     Você pode usar esse modelo aqui:  
       👉 Planilha modelo Supabase  
  Adicione suas chaves de API do OpenAI, Google Maps, Supabase e Asaas no gerenciador do n8n  
  Personalize o prompt da IA com o nome do seu restaurante, estilo de fala e sua magia 💫  
  Defina a distância máxima de entrega (padrão: 10km)  
  Coloque seus próprios links de imagens do cardápio (pode ser do Drive, site ou CDN)  
  Prontinho! Agora o seu restaurante tem um atendente inteligente, gentil e muito eficiente 💕

  🍯 Funciona com:

  ✅ n8n Cloud e n8n auto-hospedado  
  🔐 E suas credenciais ficam guardadinhas com segurança no próprio n8n, tá bom?

  Quer algo feito especialmente pra você?
  Fala comigo com todo carinho 💻💛 Falar no WhatsApp (+55 17 99155-7874)

nodes_used:
  ["n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.code","n8n-nodes-base.convertToFile","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.switch","n8n-nodes-base.wait","n8n-nodes-base.set","n8n-nodes-base.code","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.convertToFile","n8n-nodes-base.extractFromFile","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.toolCalculator","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.splitOut","n8n-nodes-base.wait","n8n-nodes-base.splitInBatches","n8n-nodes-base.noOp","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.stickyNote","n8n-nodes-base.code","n8n-nodes-base.filter","n8n-nodes-base.code","n8n-nodes-base.filter","n8n-nodes-base.if","n8n-nodes-base.stickyNote","n8n-nodes-base.supabase","n8n-nodes-base.supabase","n8n-nodes-base.supabase","n8n-nodes-base.supabase","n8n-nodes-base.supabase","n8n-nodes-base.supabase","@n8n/n8n-nodes-langchain.memoryPostgresChat","n8n-nodes-base.webhook","n8n-nodes-base.respondToWebhook","n8n-nodes-base.supabaseTool","n8n-nodes-base.supabaseTool","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.supabase","@splainez/n8n-nodes-phonenumber-parser.phoneNumberParser","n8n-nodes-base.stickyNote","n8n-nodes-base.if","n8n-nodes-base.respondToWebhook","n8n-nodes-base.respondToWebhook","n8n-nodes-base.respondToWebhook","@n8n/n8n-nodes-langchain.toolHttpRequest","n8n-nodes-base.webhook","n8n-nodes-base.supabaseTool","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.openAi","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.convertToFile","n8n-nodes-base.stickyNote","n8n-nodes-base.aggregate","n8n-nodes-base.stickyNote","n8n-nodes-base.filter","n8n-nodes-base.if","n8n-nodes-base.if","n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.aggregate","n8n-nodes-base.filter","n8n-nodes-base.httpRequest","n8n-nodes-base.switch","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.if","n8n-nodes-base.set","n8n-nodes-base.supabase","n8n-nodes-base.if","n8n-nodes-base.wait","n8n-nodes-base.supabase","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.filter","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.respondToWebhook","n8n-nodes-base.filter","n8n-nodes-base.filter","n8n-nodes-base.filter","n8n-nodes-base.filter","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.toolHttpRequest","n8n-nodes-base.code","n8n-nodes-base.filter","n8n-nodes-base.filter","n8n-nodes-base.filter","@n8n/n8n-nodes-langchain.toolHttpRequest","n8n-nodes-base.supabaseTool","@n8n/n8n-nodes-langchain.toolHttpRequest","n8n-nodes-base.n8n","n8n-nodes-base.n8n","n8n-nodes-base.noOp","n8n-nodes-base.stickyNote","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.if","n8n-nodes-base.respondToWebhook","n8n-nodes-base.respondToWebhook","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.set","n8n-nodes-base.webhook","@n8n/n8n-nodes-langchain.toolHttpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.if","n8n-nodes-base.stickyNote","n8n-nodes-base.respondToWebhook","n8n-nodes-base.respondToWebhook","@n8n/n8n-nodes-langchain.toolHttpRequest","@n8n/n8n-nodes-langchain.toolHttpRequest","@n8n/n8n-nodes-langchain.toolHttpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.webhook","n8n-nodes-evolution-api.evolutionApi","n8n-nodes-base.set","n8n-nodes-base.respondToWebhook","n8n-nodes-base.respondToWebhook","n8n-nodes-base.wait","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.toolCalculator","n8n-nodes-base.webhook","@n8n/n8n-nodes-langchain.toolHttpRequest","n8n-nodes-base.respondToWebhook","n8n-nodes-base.stickyNote","n8n-nodes-base.function","n8n-nodes-base.webhook","n8n-nodes-base.webhook","n8n-nodes-base.respondToWebhook","n8n-nodes-base.if","n8n-nodes-base.function","n8n-nodes-base.if","n8n-nodes-base.stickyNote","n8n-nodes-base.respondToWebhook","n8n-nodes-base.if","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.wait","n8n-nodes-base.respondToWebhook","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.toolHttpRequest","n8n-nodes-base.webhook","n8n-nodes-base.supabase","n8n-nodes-base.googleDrive","n8n-nodes-base.if","n8n-nodes-base.aggregate","n8n-nodes-base.summarize","n8n-nodes-base.googleDrive","n8n-nodes-base.googleDriveTrigger","n8n-nodes-base.limit","n8n-nodes-base.splitInBatches","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.filter","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.if","n8n-nodes-base.splitInBatches","n8n-nodes-base.supabase","n8n-nodes-base.filter","n8n-nodes-base.filter","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.switch","n8n-nodes-base.extractFromFile","n8n-nodes-base.extractFromFile","n8n-nodes-base.extractFromFile","n8n-nodes-base.httpRequest","@n8n/n8n-nodes-langchain.embeddingsOpenAi","@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter","@n8n/n8n-nodes-langchain.vectorStoreSupabase","@n8n/n8n-nodes-langchain.documentDefaultDataLoader","@n8n/n8n-nodes-langchain.openAi","@n8n/n8n-nodes-langchain.toolCalculator","@n8n/n8n-nodes-langchain.toolVectorStore","@n8n/n8n-nodes-langchain.toolVectorStore","@n8n/n8n-nodes-langchain.vectorStoreSupabase","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.embeddingsOpenAi","@n8n/n8n-nodes-langchain.embeddingsOpenAi","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.vectorStoreSupabase","n8n-nodes-base.supabase","n8n-nodes-base.supabase","n8n-nodes-base.set","n8n-nodes-base.code","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.filter","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.toolCalculator","@n8n/n8n-nodes-langchain.memoryPostgresChat","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.filter","n8n-nodes-base.filter","n8n-nodes-base.filter","n8n-nodes-base.filter","n8n-nodes-base.filter","n8n-nodes-base.supabaseTool","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.code","n8n-nodes-base.noOp","n8n-nodes-base.noOp"]

workflow_json_compressed:
  [encoded data, 16540 characters]

metadata_json:
  {"categories":["automation","chatbot","customer support","food & beverage","messaging/integration"],"complexity":"complex","use_cases":["Automated order taking via WhatsApp, Instagram Direct, and Messenger","Sending menus and handling menu-driven conversations","ZIP/postal code validation for delivery availability","Creating and sending payment links to customers","Notifying kitchen/staff when orders are placed or ready (ops integration)"],"estimated_setup_minutes":180,"required_services":["WhatsApp Business API or Meta Cloud (Evolution API)","Instagram Messaging API","Facebook Messenger API","OpenAI or another AI/ML provider","Supabase (or other database)","Payment provider (Stripe/PayPal or link generator)","Webhook/HTTP endpoint hosting (for webhooks and integrations)","Optional: Slack/Email/webhook for kitchen notifications"],"key_features":["Multi-channel AI assistant (WhatsApp, Instagram, Messenger)","Natural language understanding to handle customer queries and ordering","Menu delivery and interactive menu flows","ZIP code/delivery eligibility checks","Automated payment link creation and delivery to customers"],"target_audience":["Restaurant owners and managers","Small food/delivery businesses (cafés, burger shops, pizzerias)","Operations teams/kitchen staff needing order notifications"]}


name: AI-Powered WhatsApp Chatbot 🤖📲 for Text, Voice, Images & PDFs with memory 🧠
author_name: Davide
author_username: n3witalia
categories: []
created_at: 2025-04-17T14:22:12.162Z
updated_at: 2025-04-17T14:22:12.162Z
url: https://n8n.io/workflows/3586
scraped_at: 2025-09-14 19:10:59
metadata_generated_at: 2025-09-14 19:34:30
description:
  This workflow is a highly advanced multimodal AI assistant designed to operate through WhatsApp. It can understand and respond to text, images, voice messages, and PDF documents by combining OpenAI models with smart logic to adapt to the content received.

  🎯 Core Features

  📥 1. Automatic Message Type Detection
  Using the Input type node, the bot detects whether the user has sent:
  Text
  Voice messages
  Images
  Files (PDF)
  Other unsupported content

  💬 2. Smart Text Message Handling
  Text messages are processed by an OpenAI GPT-4o-mini agent with a customized system prompt.
  Replies are concise, accurate, and formatted for mobile readability.

  🖼️ 3. Image Analysis & Description
  Images are downloaded, converted to base64, and analyzed by an image-aware AI model.
  The output is a rich, structured description, designed for visually impaired users or visual content interpretation.

  🎙️ 4. Voice Message Transcription & Reply
  Audio messages are downloaded and transcribed using OpenAI Whisper.
  The transcribed text is analyzed and answered by the AI.
  Optionally, the AI reply can be converted back to voice using OpenAI's text-to-speech, and sent as an audio message.

  📄 5. PDF Document Extraction & Summary
  Only PDFs are allowed (filtered via MIME type).
  The document’s content is extracted and combined with the user's message.
  The AI then provides a relevant summary or answer.

  🧠 6. Contextual Memory
  Each user has a personalized session ID with a memory window of 10 interactions.
  This ensures a more natural and contextual conversation flow.

  How It Works  

  Thisworkflow is designed to handle incoming WhatsApp messages and process different types of inputs (text, audio, images, and PDF documents) using AI-powered analysis. Here’s how it functions:  

  Trigger: The workflow starts with the **WhatsApp Trigger node, which listens for incoming messages (text, audio, images, or documents).  
  Input Routing: The **Input type (Switch node) checks the message type and routes it to the appropriate processing branch:  
    Text: Directly forwards the message to the AI agent for response generation.  
    Audio: Downloads the audio file, transcribes it using OpenAI, and sends the transcription to the AI agent.  
    Image: Downloads the image, analyzes it with OpenAI’s GPT-4 model, and generates a detailed description.  
    PDF Document: Downloads the file, extracts text, and processes it with the AI agent.  
    Unsupported Formats: Sends an error message if the input is not supported.  
  AI Processing: The **AI Agent1 node, powered by OpenAI, processes the input (text, transcribed audio, image description, or PDF content) and generates a response.  
  Response Handling**:  
    For audio inputs, the AI’s response is converted back into speech (using OpenAI’s TTS) and sent as a voice message.  
    For other inputs, the response is sent as a text message via WhatsApp.  
  Memory: The **Simple Memory node maintains conversation context for follow-up interactions.  

  Setup Steps  
  To deploy this workflow in n8n, follow these steps:  

  Configure WhatsApp API Credentials:  
     Set up WhatsApp Business API credentials (Meta Developer Account).  
     Add the credentials in the WhatsApp Trigger, Get Image/Audio/File URL, and Send Message nodes.  

  Set Up OpenAI Integration:  
     Provide an OpenAI API key in the Analyze Image, Transcribe Audio, Generate Audio Response, and AI Agent1 nodes.  

   Adjust Input Handling (Optional):  
     Modify the Switch node ("Input type") to handle additional message types if needed.  
     Update the "Only PDF File" IF node to support other document formats.  

  Test & Deploy:  
     Activate the workflow and test with different message types (text, audio, image, PDF).  
     Ensure responses are correctly generated and sent back via WhatsApp.  

  Need help customizing?  
  Contact me for consulting and support or add me on Linkedin. 

nodes_used:
  ["n8n-nodes-base.whatsAppTrigger","n8n-nodes-base.httpRequest","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.httpRequest","@n8n/n8n-nodes-langchain.openAi","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.httpRequest","n8n-nodes-base.extractFromFile","@n8n/n8n-nodes-langchain.memoryBufferWindow","n8n-nodes-base.whatsApp","n8n-nodes-base.if","n8n-nodes-base.code","n8n-nodes-base.whatsApp","n8n-nodes-base.whatsApp","n8n-nodes-base.whatsApp","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.whatsApp","n8n-nodes-base.whatsApp","n8n-nodes-base.whatsApp","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.if","n8n-nodes-base.switch","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 9028 characters]

metadata_json:
  {"categories":["automation","chatbot","AI","messaging","document processing"],"complexity":"complex","use_cases":["WhatsApp-based customer support and conversational automation","Document Q&A and knowledge base retrieval from PDFs","Voice message transcription and automated replies","Image understanding and response (e.g., receipts, photos)","Lead qualification, routing and escalation with context memory"],"estimated_setup_minutes":60,"required_services":["WhatsApp Business API (or Twilio/WhatsApp Cloud API) for messaging/webhooks","OpenAI API (GPT + audio models such as Whisper) or compatible LLM provider","n8n with LangChain nodes (installed/openAi, lmChatOpenAi, agent, memory nodes)","Publicly reachable webhook / hosting for n8n (or tunneling service)","Optional: file storage/hosting (S3, Google Drive) and OCR service for images"],"key_features":["Multimodal input handling: text, voice, images, PDFs","LLM-powered conversational responses (OpenAI via LangChain nodes)","Memory buffer to retain conversational context","Agent node to orchestrate tools and dynamic actions","File extraction and PDF parsing to surface document content into chat flow (extractFromFile node usage and HTTP requests for file fetching/processing)"],"target_audience":["Developers building chatbots/integrations","Automation engineers implementing messaging workflows","Customer support teams wanting WhatsApp automation with context memory"]}


name: Track Daily Product Hunt Launches with Website Verification in Google Sheets
author_name: Ifeoluwa Ajetomobi
author_username: vickylove
categories: []
created_at: 2025-04-17T14:43:40.711Z
updated_at: 2025-04-17T14:43:40.711Z
url: https://n8n.io/workflows/3588
scraped_at: 2025-09-14 19:11:02
metadata_generated_at: 2025-09-14 21:18:32
description:
  This workflow helps you stay updated with daily launches on Product Hunt. It automatically fetches product details (name, tagline, description, and website), checks if the website redirects to another URL, and logs the final information into a Google Sheet.  

  Perfect for indie hackers, product managers, content curators, and anyone tracking daily launches.

  How It Works  

  Schedule Trigger – Runs the workflow daily.
  Set Date – Captures today’s date in ISO format for filtering Product Hunt posts.
  HTTP Request (Product Hunt API) – Retrieves Product Hunt posts for the day using GraphQL.
  Extract Product Info (Code Node) – Parses the response to pull key details:  
     Name  
     Tagline  
     Description  
     Website URL  
  HTTP Request (URL Check) – Follows each website URL to detect if it redirects.
  Merge Data – Combines product info with the final destination URL.
  Google Sheets Node – Appends all processed product info to your sheet.

  Pre-conditions  

  A valid Product Hunt API token
  A Google account with access to Google Sheets
  A Google Sheet already created with the correct columns (see below)
  Connected Google Sheets and HTTP credentials in n8n

  Google Sheets Setup  

  Your spreadsheet should include the following columns (in order):  
  Name  
  Tagline  
  Description  
  Original URL  
  Final URL (after redirect)  

  Ensure your Google Sheets node uses the correct Spreadsheet ID and Sheet Name.

  Setup Instructions  

  Product Hunt API Auth:  
     Replace {{YOUR_PRODUCT_HUNT_API_KEY}} in the HTTP Request headers:
        {
       "Authorization": "Bearer {{YOUR_PRODUCT_HUNT_API_KEY}}"
     }
     
  Google Sheets Node:  
     Connect your Google account.  
     Insert your Spreadsheet ID in the settings.  
     Specify the sheet name (e.g., Daily Launches).  
     Use the “Append” operation and map the 5 data fields accordingly.

  Notes  

  Only fetches the first 10 posts for the day (can be extended).
  Consider adding Slack, Discord, or Email nodes to notify you of new entries.
  Useful for building launch databases, research, or content inspiration.

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

workflow_json_compressed:
  [encoded data, 4100 characters]

metadata_json:
  {"categories":["automation","integration","data collection"],"complexity":"medium","use_cases":["Track daily Product Hunt launches","Build a launch database for research","Content curation and inspiration","Competitive/product discovery","Monitor redirects and verify product websites"],"estimated_setup_minutes":15,"required_services":["Product Hunt API (GraphQL) with API token","Google Sheets (Google account and Spreadsheet)"],"key_features":["Daily scheduled run","Fetches Product Hunt posts via GraphQL","Parses name, tagline, description, and website","Follows website URLs to detect final redirected URL","Appends results to a Google Sheet (append operation)"],"target_audience":["Indie hackers","Product managers","Content curators and researchers`,`Growth marketers"]}


name: MCP AI Agent Google Calendar - Create, Update & Manage Events
author_name: Amanda Benks
author_username: amanda
categories: []
created_at: 2025-04-17T14:53:38.759Z
updated_at: 2025-04-17T14:53:38.759Z
url: https://n8n.io/workflows/3589
scraped_at: 2025-09-14 19:11:02
metadata_generated_at: 2025-09-14 21:18:32
description:
  Hi! I’m Amanda :) 💖 
  I created this sweet little workflow with lots of love and care, just for you who wants to manage your Google Calendar in a smart and gentle way 💌

  This AI-powered agent connects with MCP (Multi-Channel Protocol) and understands natural language like “book a meeting tomorrow at 3pm”, “reschedule my call to Monday”, or “what events do I have on Wednesday?” — and it does everything quietly and beautifully in your calendar 🧸

  💡 What this lovely agent does

  🗓️ Creates new events in your Google Calendar (with or without guests)  
  ✏️ Updates existing events with new times or details  
  🧹 Deletes events you no longer need  
  🔍 Retrieves scheduled events by date  
  🤖 Works through GPT-4o or any AI via MCP Agent

  ⚙️ How to set it up (gently and step-by-step)

  Webhook is ready for MCP messages at POST /mcp/calendar  
  Connect your Google Calendar account using OAuth2 inside n8n  
  Link it to your favorite AI tool (like LangChain, Typebot, etc.) that can talk to the MCP agent  
  All details like title, time, date, and guests are parsed automatically from natural language 💫

  ✨ Requirements

  Google Calendar connected to n8n  
  n8n instance (Cloud or Self-hosted — both are supported!)  
  An AI interface that talks to the MCP agent (like LangChain or Typebot)  
  MCP Trigger API set up in your n8n environment

  This agent is perfect for therapists, consultants, coaches, small teams, or anyone who wants to keep their calendar flowing naturally and peacefully with a little help from AI 💆‍♀️🧠

  Want something customized just for you?
  Chat with me 💻💛 Chat via WhatsApp (+55 17 99155-7874)
  .
  .
  Tradução para Português:
  💖 Oi! Eu sou a Amanda :)

  Esse fluxinho aqui foi feito com muito cuidado pra você que quer automatizar sua agenda do Google Calendar de forma inteligente, simples e com muito carinho 💌

  Ele funciona como um agente que conversa com outro sistema de IA (via MCP) e consegue entender pedidos como “agende uma consulta amanhã às 15h”, “remarque a reunião para segunda”, ou “quais eventos tenho na quarta?” — tudo isso feito direto no seu calendário, sem você precisar abrir nada 🧸

  💡 O que ele faz com amor

  🗓️ Cria eventos no seu Google Calendar (com ou sem convidados)  
  ✏️ Atualiza eventos já existentes com novos horários  
  🧹 Exclui eventos que você não precisa mais  
  🔍 Busca seus compromissos com base em datas específicas  
  ❤️ Tudo isso com suporte ao modelo GPT-4o via agente MCP

  ⚙️ Como configurar (bem facinho, prometo!)

  Conecte o webhook: o endpoint do MCP já vem prontinho com o caminho mcp/calendar  
  Conecte sua conta do Google Calendar usando o OAuth2 no n8n  
  Adicione a integração do MCP Trigger com seu sistema de IA (LangChain, Typebot, etc.)  
  Todos os campos como título, data, hora e convidados são extraídos automaticamente via IA 💫

  ✨ Requisitos

  Conta Google Calendar integrada ao n8n  
  Instância n8n (Cloud ou Self-hosted)  
  Integração com uma IA que converse com o MCP Agent (como LangChain)  
  Acesso à API MCP ativado no n8n

  Esse agente é ideal pra psicólogos, consultores, times de atendimento, terapeutas — ou qualquer pessoa fofa que quer deixar sua agenda fluindo sozinha, com a ajuda de um toque de inteligência 💆‍♀️🧠

  Quer algo feito só pra você?
  Fala comigo com carinho 💻💛 Falar no WhatsApp (+55 17 99155-7874)

nodes_used:
  ["@n8n/n8n-nodes-langchain.mcpTrigger","n8n-nodes-base.googleCalendarTool","n8n-nodes-base.googleCalendarTool","n8n-nodes-base.googleCalendarTool","n8n-nodes-base.googleCalendarTool","n8n-nodes-base.googleCalendarTool"]

workflow_json_compressed:
  H4sIAAAAAAAAE7WU0Y8bNRCH/5XIzzuH7bW9430CBVTxgKBq6QOnExrb49yqiTfa9aWHovzvaHMtIQgB1x5vK+3o8/cbe+YohiR64cte7uJUH1/jL+99fi0aseNKoj+KocyVSuTvlzpHVmfpqEXnXcyEqSUbOpnRoFeZgtTRaCQbdTIGU+Tc+qCy6ihlpYNoROXdfkuV1xOn+Q3Xh/163O23XDmJvk4PfGpEoR2LXvyw/mn1ahw3W16tacsl0bQAaDOL/vauEWVMvHweP4ZIlpCSB4ccwYQYwGtkSFK50GG0yFFcwd/wdOBp9XYaNhs+s3/bL/++Lli+KljgfAJsqWziPQ3lZhf3l+L9OA91GIvob1E24ORdIz5wuB/H9+dm6Za8jboDS16B8UEBJu9BZWdSZmmCTguGJtpx5WkW/fH05PCOp/lMVqfmYzr2QbYBFUSNBCYnCQFzhmyViaiN8Yku6dYTU+XVdwcudfVhqPerb2rlkpgvKS8BA818szl3+lOj347j9jqjQdlovYT8Z+Ob9g/nQLZlZz1IaTMYJA0UsYWoXcs6ow0p/L3zZ1u27tmW5GyUHbbgA3dgPCZAGTQEdoQqZEaVL5avuD4pzp/tqM2zHaWjZJzMEBwhGBMYMNoIDinKtpNdp/ji+C0v8/SFnVT62ZZJUo6RPcjIDCZ0BrzRBsibxB65w5Qulj/v05ff9392vGsExTocWPSZtjM3YuZah7Isk6PgR44PC/LHKfEkenFQ4tSIwxPhPM4UOyeVsuB9l8GQsUCdI8gtcbDGZJWtaEQcS+G4oM7gPz2X/iho+LUuEfrb2+N5ff3LIvpU34ihJH4UvTzd3Z2a61F5Qe7Vw3lB7tVV/099+Muae7FTTqffAcSH+FwlBwAA

metadata_json:
  {"categories":["automation","calendar","AI integration","scheduling","productivity"],"complexity":"medium","use_cases":["Create events from natural language","Update/reschedule existing calendar events","Delete unwanted events","Retrieve events by date or range","Manage guests and event details via AI"],"estimated_setup_minutes":20,"required_services":["Google Calendar (OAuth2)","n8n (Cloud or self-hosted)","MCP (Multi-Channel Protocol) / MCP Trigger","AI provider compatible with MCP (e.g., GPT-4o via LangChain, Typebot)","Public webhook endpoint for MCP (POST /mcp/calendar)"],"key_features":["Natural-language parsing of scheduling requests via MCP AI agent","Create, update, and delete Google Calendar events","Fetch scheduled events by date or range","Support for event guests and details extraction","Prebuilt webhook endpoint and MCP trigger integration"],"target_audience":["therapists","consultants","coaches and solo professionals','small teams and office admins','appointment-based businesses','developers/technical integrators"]}


name: ✨ Meta Ads Campaign Report by Period – Auto-Send via WhatsApp & Email
author_name: Amanda Benks
author_username: amanda
categories: []
created_at: 2025-04-17T15:51:47.721Z
updated_at: 2025-04-17T15:51:47.721Z
url: https://n8n.io/workflows/3591
scraped_at: 2025-09-14 19:11:02
metadata_generated_at: 2025-09-14 21:18:32
description:
  Hi, I’m Amanda 🌷
  I created this workflow with great care to help you simplify your daily reporting routine. If you manage Meta Ads campaigns, you know how time-consuming it can be to open Ads Manager, filter data, and build client reports.

  This automation does all that for you — pulling campaign data by period, calculating key metrics, filtering only what matters, and sending everything via WhatsApp or Email, fully formatted and ready to share.

  What it does

  Collects ad performance data from multiple accounts  
  Filters campaigns and creatives with real results  
  Calculates metrics like CPC, CTR, CPV, conversions, and spend  
  Formats the report clearly and professionally  
  Sends the report via WhatsApp (Evolution API) or Gmail  
  Runs automatically every morning (optional schedule)

  Setup Guide

  Use this Google Sheet template to manage your accounts  
  Connect Google Sheets, Gmail, and Meta Ads to n8n  
  Set your action_type filters (lead, purchase, etc.)  
  Customize your message and delivery time

  Requirements

  Google account connected to n8n  
  Facebook Graph API access  
  WhatsApp via Evolution API (optional)  
  Basic n8n knowledge

  Want it customized for your business?
  Let’s chat → WhatsApp me (+55 17 99155-7874)

nodes_used:
  ["n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.aggregate","n8n-nodes-base.filter","n8n-nodes-base.stickyNote","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.googleSheets","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.splitInBatches","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.facebookGraphApi","n8n-nodes-base.if","n8n-nodes-base.googleSheets","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.if","n8n-nodes-base.set","n8n-nodes-base.switch","n8n-nodes-base.gmail","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.noOp","n8n-nodes-base.stickyNote","n8n-nodes-base.code","n8n-nodes-base.code"]

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

metadata_json:
  {"categories":["automation","integration","reporting","marketing","data processing"],"complexity":"medium","use_cases":["Daily Meta Ads performance reports","Automated client reporting via WhatsApp or Email","Campaign and creative performance monitoring","Aggregating metrics across multiple ad accounts","Scheduled delivery of formatted reports"],"estimated_setup_minutes":30,"required_services":["Google Sheets","Gmail","Facebook/Meta Graph API (Meta Ads)","WhatsApp via Evolution API (optional)","n8n (connected instance)"],"key_features":["Pulls ad performance data by period from multiple accounts","Filters campaigns and creatives with real results","Calculates key metrics (CPC, CTR, CPV, conversions, spend)","Formats professional, ready-to-share reports","Sends reports via WhatsApp (Evolution API) or Gmail email delivery"],"target_audience":["Digital marketers","Performance marketing teams","Marketing agencies handling clients' Meta Ads accounts`,`Growth teams and analysts"]}


name: Automate Web Interactions with Claude 3.5 Haiku and Airtop Browser Agent
author_name: Airtop
author_username: cesar-at-airtop
categories: []
created_at: 2025-04-17T19:32:52.649Z
updated_at: 2025-04-17T19:32:52.649Z
url: https://n8n.io/workflows/3592
scraped_at: 2025-09-14 19:11:00
metadata_generated_at: 2025-09-14 21:18:31
description:
  About this AI Agent

  This workflow is designed to automate web interactions by simulating a human user, using a combination of the Agent node and AI tools powered by Airtop.

  How does this workflow works?

  Form Submission Trigger: The workflow starts with a form submission trigger node named "On form submission". This node collects user instructions for the web AI agent, including a prompt and an optional Airtop profile name for sites requiring authentication.

  AI Agent: The core of the workflow is the "AI Agent" node, which uses a smart web agent to manage a remote web browser. It is designed to fulfill user requests by interacting with the browser through various tools.

  Browser Session Management

  Start Browser: The "Start browser" node initiates a new browser session and window. It is essential for obtaining the sessionId and windowId required for subsequent operations.
  Session and Window Management: The workflow includes nodes for creating and managing browser sessions and windows, such as "Session" and "Window".
  Web Interaction Tools:

  Load URL: This node loads a specified URL into the browser window.
  Query: The "Query" node allows the agent to ask questions and extract information from the current web page.
  Click: This node simulates clicking on elements within the web page.
  Type: The "Type" node types text into specified elements on the page.
  Session Termination: The "End session" node is used to terminate the browser session once the tasks are completed.

  Output Handling

  Structured Output Parser: This node processes the agent's results into a structured format.

  Output: The final results are set and prepared for output.
  Slack Integration: Although currently disabled, there is a "Slack" node intended to send messages to a Slack channel, potentially for notifications or live view URLs.

  Seting up your agent

  Airtop API Credentials:
  Users must have valid Airtop API credentials to interact with the web browser tools. This includes nodes like "Click", "Query", "Load URL", "End session", "Type", "Session", and "Window".
  Slack API Credentials (Optional):

  If users want to enable Slack notifications, they need to configure Slack OAuth2 credentials. The Slack node is currently disabled but can be used to send messages to a Slack channel.
  Anthropic API Credentials:

  The "Claude 3.5 Haiku" node requires Anthropic API credentials. Users need to have access to this API to utilize the language model features.

nodes_used:
  ["@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.airtopTool","n8n-nodes-base.airtopTool","n8n-nodes-base.airtopTool","n8n-nodes-base.airtopTool","n8n-nodes-base.airtopTool","@n8n/n8n-nodes-langchain.toolWorkflow","@n8n/n8n-nodes-langchain.lmChatAnthropic","n8n-nodes-base.formTrigger","n8n-nodes-base.slack","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.set","n8n-nodes-base.airtop","n8n-nodes-base.airtop","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.executeWorkflowTrigger","n8n-nodes-base.slack"]

workflow_json_compressed:
  [encoded data, 5588 characters]

metadata_json:
  {"categories":["automation","integration","web-automation","AI-agent"],"complexity":"complex","use_cases":["Automate web form submissions and multi-step site interactions","Web data extraction / scraping with contextual queries","Automated UI testing and end-to-end interaction flows","Perform authenticated actions using stored Airtop profiles","Orchestrate complex web workflows via an AI agent and parse structured outputs"],"estimated_setup_minutes":30,"required_services":["Airtop API (remote browser tools and profiles)","Anthropic (Claude 3.5 Haiku) API","Slack OAuth2 (optional, for notifications)","n8n instance"],"key_features":["AI-driven agent (Claude 3.5 Haiku) controlling a remote browser","Browser session & window management (start, session, window, end)","Web interaction tools: Load URL, Query, Click, Type","Support for authenticated Airtop profiles for sites requiring login","Structured output parsing to produce machine-readable results from agent output, form-triggered execution, optional Slack notifications"],"target_audience":["Developers","Automation engineers / RPA practitioners","QA / Test engineers doing end-to-end UI testing or scripted interactions with sites requiring auths/flows used by products/clients"]}


name: Extract Business Leads from Google Maps with Dumpling AI to Google Sheets
author_name: Yang
author_username: yang
categories: []
created_at: 2025-04-17T20:51:09.545Z
updated_at: 2025-04-17T20:51:09.545Z
url: https://n8n.io/workflows/3593
scraped_at: 2025-09-14 19:10:59
metadata_generated_at: 2025-09-14 21:18:31
description:
  Who is this for?

  This workflow is built for marketers, sales teams, agencies, virtual assistants, and anyone who regularly researches or contacts local businesses. It's ideal for building lead lists, tracking competitors, or creating location-specific outreach campaigns.

  What problem is this workflow solving?

  Instead of manually searching Google Maps and copying business info into spreadsheets, this automation pulls structured business data (e.g. restaurants, gyms, service providers) and logs it directly into Google Sheets. It saves hours of work and ensures cleaner, more usable data.

  What this workflow does

  The workflow takes a Google Maps search query (like "best restaurants in New York") and sends it to Dumpling AI. It returns a list of places including their name, address, website, phone number, rating, and more. Each result is split into a row and automatically added to a Google Sheet.

  Setup

  Dumpling AI  
     Sign up at Dumpling AI  
     Generate your API key  
     In the HTTP Request node, select Header Auth and paste your key in the Authorization field

  Google Sheets  
     Create a sheet with tab name Leads  
     Add the following column headers to row 1:  
       Name, Address, Phone number, Website, Rating, Price Level, Type, Booking Link, Position  
     Connect your Google Sheets account and link this sheet in the node

  Customize the Query  
     In the HTTP node, replace the query string (e.g., "best+restaurants+in+New+York") with your own search term

  Run It  
     Use the manual trigger to test  
     Optionally swap in a Schedule or Webhook node to run it automatically

  How to customize this workflow to your needs

  Change the search query to target different cities or business types  
  Use filters to only save leads with a minimum rating or price level  
  Add GPT to summarize listings or qualify leads  
  Swap Google Sheets for Airtable or a CRM system for deeper integration

nodes_used:
  ["n8n-nodes-base.stickyNote","n8n-nodes-base.manualTrigger","n8n-nodes-base.httpRequest","n8n-nodes-base.splitOut","n8n-nodes-base.googleSheets"]

workflow_json_compressed:
  H4sIAAAAAAAAE81YS3PcuBH+K11wDrZMSiSHw3lUuVKS47W1pVesURxbo1pjgOYMdkiAAsCRZ1VTtZccc8slqVQlt/yv/QX5CSmQnJcsr9eyD7nNAI3urx/o/sBbIjjpk7fviu9mxZ9PB2+nB4W4uCAeydFS0r8lQhpLJcNDJ0dDim3W5SxhSRuTTpz2WKsXd3jQbdERY524h2nUjhOepr00TtMg5BjzhLYSHKWYkIVHJM2R9MmLD1ZTZuGgNEKiMXCElBtItcrhpVLjDOGYFgZuhJ3AH8q8yIQcw/4hWLXcP58gWkM8YunYkP7lbe3MIGMn03zUS9KL9F2E+2Rlc1BapQXN3BmmkVrk+5b0SRREbT+I/bA9CDv9IOoHwW4U994Rj5QF/7zY4sojUnHcANGicQ/bvdhPWBL5cRh1/W7URr/XYzzlHUyQt9fAzq1g0zmcKIvOnXnhFmVX+pVWf0QN7ppKphEplBFWKEn6l36SBJ4fBcGVRwqqaY4WtXGpuxHcTkg/CQKPTFCMJ5b0O+4PU9KidC49evToEfz3X3/7K7xReppm6gZeKpoN5X5pVU6tYDTL5mCQajbZyotL23grMQ4lByWBwhTnN0pzeIy7410PRmgsaDSWlppKa0BIOMEbeKv09IkH2JSCRlNm1nhAJYdMjcFOMAchrQIKxuqS2VIj30r/7lAOZeXDP35e+3BusTBDGe7Czs4xlSXNYKDFeIx6Z2coAcCHc0u1Nc4E3CyP3UxQgkVjnUd5dS6bVxYip2nT2SWGKjBrpSi5AQpnp+cD0HhdOsetulu/TThTpSFTjLpEGhe4zfiuojlXpYbrEnWNpOWQnBeZsHBaWjhRHFfmDzTSae3T+yKjDM3l1XugWtN5HUYhuZgJ7uIhLOYGjAKkbNKEHhiVMEKYUMkz5GDQFZTFJgixM71197bN7xdF5X+lsbL/y89/N8CppfDYVboHlHONxnhQTJRED25wZIRFDzR1QfcALdt9ssp5gUykgoGlI1BpHYotAE366yr+z7+rG2SG0ofBBJdhrmIHwgArtUZpq3p2aenD+yFxtfl0ozafCvn0BG+eutockvdO12lpi9ICU1mZS1e8LCs5riAXWjCEDGeYbTjUODhSauoSnwk5NbV7TuWLKuilBKakKXM0WyXCNHJhDRS4zrwPb1VZJYiVxqpc/LRysLltBjbqyV0xVwevBoMzeN1U4kjx+Spi8Ms//wIDUQzlQAGtrzuCnQgDGsdlRnU294BNqBxjpcrWNwhcT4IqPzs752yCvMxwfb2qy0s5Bz6XNBdsGX7pQlg3jeog2p0dB3hn5w2OJkpNd3YqzRU+NydcF/wTalN1uXDhNY01oDFiEFA/7LHUj3mIPg3jtj9qs3YS9hgmrWSj49ew+rDsAi4Mr0v5yS5b3/rm2HajDbww+qjJfhpolKR8lMSB32vRwI9bYeSPkKZ+zIJOmqbdTqcdbkyAjzvsTNDNqvgk5Im1RZPhbcBRdC9kUuqM9Ik7Zvp7e7QodnljhopdpvI9Woi9WbhXl5ef08LUhGCinGOuuRGPqKLqW3UMfjRKHig+J33y7Na1gyGp8j4kffjcHfOgPpBROS7pGOszKIdkKBfEIwYlr3VbXaJH6q4wb8w5y8QjtLQTlG5e1c6TMUrUgj3XyN06zQYueN5yfb+0k0EdTheIV0g5arfoSo+tDlXxuiPQbxL8gebz4+vnxT6ySfsAB+tk1sLgpIEypkppyeJupcS70apWeCulKYuYH4x63I+x2/K7LUp9jlHMwzBlAW7WStX9z6oGD0fC2GqSnGnF0LgL9mkK4Q6elnfKJI7vL5OtBKcCMz5Q50sNfVIPmF+5qd3WKO62W5E/CtORH9NRy++1e4mfYC9pR8ko5XFvwyk6Q3hdM4C7HA8eV87CoUzVk096N65OrEjhhoeOId3nYdPR3c8ZzUp0Pxrdz25v4XeutnbdAixcIZ7QHGF7T9is2aynwdZuvVRv79eDb2u/GYa1wJt6cGwJNMOkFjhb+bMhsXSyFqkm0ZEbRNtCq+Va7KCZSUdCTrcEm2Hl1s1lcNXYdYMMZJmPUG+rdRsn1bqTXHjEsAnmdE2C64Ct8mWsrquTC1NkdHWhHVESGjnppzQzuNo/qStjqYVjSsvMHlPLJitRRuUBXhjkA9VsOJ2rGlyG/WsxrPU8BEVTG18LYqXmIRg2auNrcWypeggWW7fir0PRKHmI/UMoDQKVNTta8nQhQXalB4eg0ZZaIoeycK0oDH4L2FzNNrB+BvxDEDzE062r/rURv6PsIXiWXe5bx3Ot9yGotlrct4Z2R/mD8C1b/zfHtlb8JbiuPJLTohByfKy408MxFRIPMFM3jik6USHHz5fj9fLKI9RazAs7UM+VnKG2jnyZtaF68TvHMsxAndfu1buLO1xTFaiXLI9WT05HEt3Yr726JT/84BhuHZG8RpiJih03Y564D0DUvV1qxnGxxYi5YqZhExUdNoV236YqYrHH98JiFL85up5FL3R5dBz+1PNLixN2eKKy8x+DWXZx/U4oOT9Sry/MnnvIPRoL/iwMkl4naUed3h3bTSo2mL8bpVyxMkdp3We3/zuHfl+a4hnXYoaGT+9356xhhx+z6U2aduoocrRfiBWpfkm/v/7+VXnezv/4gRad6zVB3P7w8Cu0uu3qkzIrZriqL4PWzc4KAH5AVrr6OdW8ojSz0EV8VmuovnOGnRDTOGj7I8oSP45Y4NMWa/ks6rJR3EvTKKSkqlqJbFman35s9m9JToVjope31YfCL3zwVYc9IiTHD6QfLK6uFt7nXwH3Wv1yln2/8c+jv9f8b3653GN1sfgfGSRv8K4WAAA=

metadata_json:
  {"categories":["automation","integration","data extraction","lead generation"],"complexity":"simple","use_cases":["Build local business lead lists","Competitor or market research","Location-specific outreach campaigns","Automating data entry into Google Sheets","Qualifying or enriching prospect data"],"estimated_setup_minutes":10,"required_services":["Dumpling AI (API key)","Google Sheets (Google account)"],"key_features":["Send Google Maps-style queries to Dumpling AI and receive structured place data","Extract fields: name, address, phone, website, rating, price level, type, booking link, position","Split results into individual rows and append to a Google Sheet","Easy query customization and scheduling via webhook/scheduler","Optional enrichment/filters (e.g., minimum rating) or swap Google Sheets for CRM/Airtable"],"target_audience":["Marketers","Sales teams","Agencies and consultants doing local outreach or research"]}


name: 🧠 FloWatch 👁️ Analyze and Diagnose n8n Workflow Errors via OpenAI and Email
author_name: RealSimple Solutions
author_username: joeperes
categories: []
created_at: 2025-04-17T23:41:56.986Z
updated_at: 2025-04-17T23:41:56.986Z
url: https://n8n.io/workflows/3595
scraped_at: 2025-09-14 19:11:02
metadata_generated_at: 2025-09-14 21:18:32
description:
  🧠 Analyze and Diagnose n8n Workflow Errors Automatically via OpenAI and Email



  &gt; ⚠️ This template is available on ☁️ Cloud & 🖥️ self-hosted n8n instances with the OpenAI node enabled.

  👤 Who is this for?

  This workflow is designed for n8n developers, automation engineers, and DevOps teams who want to automatically capture and analyze workflow errors, and receive professional HTML-styled diagnostics directly in their inbox.

  💥 What problem does this solve?

  Manually troubleshooting failed workflows in n8n can be time-consuming. This template streamlines error detection by:

  Capturing workflow failures using the Error Trigger node
  Diagnosing root causes with the help of OpenAI
  Sending a fully-formatted, human-readable HTML error report via email
  Including practical resolutions and next-step suggestions

  This helps you or your team resolve issues faster and avoid repeated manual debugging.

  ⚙️ What this workflow does

  ⚡ Triggers on any n8n workflow error
  📦 Extracts relevant error metadata including node, execution ID, and timestamps
  🧠 Sends error content to OpenAI for analysis and recommendations
  💌 Generates an HTML email report with inline styles and clear formatting
  📥 Emails the result to a system administrator or support email

  🛠️ Setup

  Install the OpenAI node in your self-hosted n8n instance.
  Add your OpenAI API Key securely in credentials.
  Configure the SMTP Email node with your email credentials.
  Adjust the Error Trigger to monitor specific workflows or all workflows.
  Set your preferred admin or dev email address in the final node.

  🔧 How to customize this workflow to your needs

  🧩 Use a [Set node] to define your variables, such as:
    Default admin email
    Workflow filter (optional)
  ✍️ Customize the prompt sent to OpenAI if you want deeper or more specific analysis
  🎨 Modify the email HTML styles to match your brand or internal format
  💾 Add additional logging (e.g., to Airtable, Google Sheets, or Notion) for long-term error tracking

  📌 Sticky Note

  Title: Automated Error Reporter with AI-Powered Diagnosis  
  Description: Captures any n8n error, sends it to OpenAI, and emails a beautiful HTML report to the administrator with steps to resolve the issue. Requires OpenAI credentials and SMTP configured.

nodes_used:
  ["n8n-nodes-base.errorTrigger","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.if","n8n-nodes-base.n8n","n8n-nodes-base.code","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.set","n8n-nodes-base.gmail","n8n-nodes-base.code"]

workflow_json_compressed:
  [encoded data, 6260 characters]

metadata_json:
  {"categories":["automation","monitoring & alerting","error handling","integration"],"complexity":"medium","use_cases":["Automated capture of n8n workflow failures","AI-powered root-cause analysis of errors","Send formatted HTML diagnostic emails to admins/support","Streamline incident triage and reduce manual debugging time","Optional logging of errors to external systems"],"estimated_setup_minutes":20,"required_services":["n8n Cloud or self-hosted n8n with OpenAI node enabled","OpenAI API (OpenAI key)","SMTP/email provider (e.g., Gmail, SendGrid)"],"key_features":["Triggers on any n8n workflow error using Error Trigger node","Extracts error metadata (node, execution ID, timestamps)","Sends error details to OpenAI for analysis and remediation suggestions","Generates a styled HTML email report with actionable steps","Configurable admin email and workflow filters via Set node(s)"],"target_audience":["n8n developers","Automation engineers","DevOps/SRE teams responsible for n8n workflows」「Support/ops teams receiving error reports"]}


name: Daily AI News Translation & Summary with GPT-4 and Telegram Delivery
author_name: SamirLiu
author_username: samir
categories: []
created_at: 2025-04-18T07:05:41.418Z
updated_at: 2025-04-18T07:05:41.418Z
url: https://n8n.io/workflows/3596
scraped_at: 2025-09-14 19:11:00
metadata_generated_at: 2025-09-14 21:18:31
description:
  📝 What this workflow does

  Every morning at 8 a.m., this workflow fetches the latest AI-related articles from both GNews and NewsAPI. It merges up to 40 new articles daily, selects the 15 most relevant ones on AI technology and applications, and uses GPT-4.1 to generate concise summaries in accurate Traditional Chinese (while preserving essential English technical terms). Each summary also includes the article link for easy referral. The compiled digest is then posted to your designated Telegram account or group.

  👥 Who is this for?

  AI enthusiasts, professionals, and anyone interested in artificial intelligence news
  Individuals and teams wanting a concise daily digest of AI developments in Traditional Chinese
  Telegram users who prefer automated information delivery

  🎯 What problem does this workflow solve?

  With the rapid evolution of AI technology, it can be overwhelming to keep up with new developments. This workflow addresses information overload by automatically collecting, summarizing, and translating the most important AI news each morning — all delivered conveniently to your chosen Telegram channel or group.

  ⚙️ Setup

  🔑 Add NewsAPI and GNews API Keys
      Register for accounts on NewsAPI.org and GNews to obtain your API keys.
      Input your NewsAPI key directly into the Fetch NewsAPI articles node.
      Input your GNews API key into the Fetch GNews articles node.
  🤖 Set up your Telegram Bot
      Create a Telegram Bot via BotFather and copy the generated Bot Token.
      In n8n, create Telegram Bot credentials using this token.
      In the Send summary to Telegram node, enter the chat ID of your target user, group, or channel to receive the messages.
  🧠 Configure OpenAI Credentials
      In n8n, create a new credential using your OpenAI API key.
      Assign this credential to the GPT-4.1 Model node (or equivalent OpenAI/AI nodes).

  After completing these steps, your workflow is fully configured to fetch, summarize, and deliver daily AI news to your selected Telegram chat automatically.

  🛠️ How to customize this workflow

  🔍 Change the topic:** Update the keywords in the NewsAPI and GNews nodes for other subjects (e.g., "blockchain", "quantum computing").
  ⏰ Adjust delivery time:** Modify the scheduled trigger to your preferred hour.
  ✍️ Tweak summary style or language:** Refine the prompt in the AI summarizer node for different tones or translate into other languages as needed.

  📦 Dependencies

  NewsAPI account
  GNews account
  Telegram Bot
  OpenAI API access (for GPT-4.1) or compatible AI model for Langchain agent

nodes_used:
  ["n8n-nodes-base.stickyNote","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.merge","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.stickyNote","n8n-nodes-base.telegram"]

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

metadata_json:
  {"categories":["automation","integration","news aggregation","summarization","translation"],"complexity":"medium","use_cases":["Daily AI news digest","Automated translation of news into Traditional Chinese","Curating and distributing relevant AI articles to teams or communities","Monitoring AI developments for research or product teams","Content curation for newsletters or social channels"],"estimated_setup_minutes":20,"required_services":["NewsAPI (NewsAPI.org)","GNews API","OpenAI (GPT-4.1) or compatible AI model","Telegram Bot / Telegram API"],"key_features":["Scheduled daily fetch of AI articles (configurable time)","Merge and deduplicate articles from NewsAPI and GNews","Selects top ~15 most relevant AI articles","Generates concise summaries in Traditional Chinese while preserving key English technical terms","Includes article links in each summary for reference and citation supportsends compiled digest to a Telegram chat or channel"],"target_audience":["AI enthusiasts","Developers and engineers","Product managers and researchers tracking AI news','Community managers and marketers who distribute updates"]}


name: Log meal nutrients from Telegram to Google Sheets using an AI agent
author_name: PollupAI
author_username: zeerobug
categories: []
created_at: 2025-04-18T08:53:18.483Z
updated_at: 2025-04-18T08:53:18.483Z
url: https://n8n.io/workflows/3599
scraped_at: 2025-09-14 19:11:01
metadata_generated_at: 2025-09-30 08:33:37
description:
  Who is this for?

  This workflow is ideal for individuals focused on nutrition tracking, meal planning, or diet optimization—whether you’re a health-conscious individual, fitness coach, or developer working on a healthtech app. It also fits well for anyone who wants to capture their meal data via voice or text, without manually entering everything into a spreadsheet.

  What problem is this workflow solving?

  Manually logging meals and breaking down their nutritional content is time-consuming and often skipped. This workflow automates that process using Telegram for input, OpenAI for natural language understanding, and Google Sheets for structured tracking. It enables users to record meals by typing or sending voice messages, which are transcribed, analyzed for nutrients, and automatically stored for tracking and review.

  What this workflow does
  This n8n automation lets users send either a text or voice message to a Telegram bot describing their meal. The workflow then:
  Receives the Telegram message
  Checks if it’s a voice message
  	•	If yes: Downloads the audio file and transcribes it using OpenAI
  	•	If no: Uses the text input directly
  Sends the meal description to OpenAI to extract a structured list of ingredients and nutritional details
  Parses and stores the results in Google Sheets
  Responds via Telegram with a personalized confirmation message

  A testing interface also allows you to simulate prompts and view structured outputs for development or debugging.

  Setup
  Create a Telegram bot via BotFather and note the API token.
  Create an empty Google Sheet and store the sheet ID in the environment.
  Set up your OpenAI credentials in the n8n credential manager.
  Customize the “List of Ingredients and Nutrients” node with your prompt if needed.
  (Optional) Use the “Testing” section to simulate messages and refine outputs before going live.

  How to customize this workflow to your needs
  • Enhance prompts in the OpenAI node to improve the structure and accuracy of responses.
  • Add new fields in the Google Sheet and corresponding logic in the parser if you want more detail.
  • Adjust the Telegram response to provide motivational feedback, dietary tips, or summaries.
  • Upgrade to the “Pro” version mentioned in the contact section for USDA database integration and complete nutrient breakdowns.

  This is a lightweight, AI-powered meal logging automation that transforms voice or text into actionable nutrition data—perfect for making healthy eating easier and more data-driven.

  See my other workflows here

nodes_used:
  ["@n8n/n8n-nodes-langchain.chatTrigger","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.telegram","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.limit","n8n-nodes-base.telegramTrigger","n8n-nodes-base.if","n8n-nodes-base.set","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.splitOut","n8n-nodes-base.code","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.telegram","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 5048 characters]

metadata_json:
  {"categories":["automation","health & fitness","data logging","AI integration"],"complexity":"medium","use_cases":["Log meals via chat or voice into a spreadsheet","Automatically extract nutritional info from free-text meal descriptions","Build meal tracking for clients or personal use","Feed structured nutrition data into dashboards or analytics","Enable voice-to-entry meal logging via Telegram messages"],"estimated_setup_minutes":30,"required_services":["Telegram Bot (Telegram API)","Google Sheets (Google account with a target sheet)","AI provider for NLP (e.g., OpenAI/GPT)","Optional: Speech-to-text service (e.g., Whisper) for voice messages"],"key_features":["Capture meal input via Telegram (text or voice)","AI agent parses free-text into structured nutrition data","Output parsing to a structured format for reliable sheet writes","Writes parsed nutrient entries to Google Sheets","Handles multi-item meals and conditional logic (split/limit/if) via workflow nodes and code nodes for validation/cleanup"],"target_audience":["Health-conscious individuals tracking nutrition","Fitness coaches and personal trainers","Nutritionists and dietitians wanting simplified logging workflows"]}


name: LINE Chatbot with Google Sheets Memory and Gemini AI
author_name: Jakkrapat Ampring
author_username: guitarpmacc
categories: []
created_at: 2025-04-18T09:18:31.925Z
updated_at: 2025-04-18T09:18:31.925Z
url: https://n8n.io/workflows/3600
scraped_at: 2025-09-14 19:11:01
metadata_generated_at: 2025-09-14 21:18:32
description:
  Main Use Case
  This workflow enables automated, AI-assisted replies to users messaging a LINE Official Account, while storing and referencing chat history from Google Sheets to maintain context. Ideal for businesses or support teams that want to provide smart, personalized customer interactions using AI with memory.

  How It Works (Step-by-Step)
  Connect to LINE Official Account's API
  A Webhook listens for incoming messages from users on LINE.
  When a message is received, it triggers the workflow.

  Prepare the Data
  An Edit Fields module structures incoming data (e.g. extracts user ID, message content).
  This ensures data is clean and usable downstream.

  Retrieve Chat History
  The user’s previous conversations are fetched from a Google Sheet.
  This ensures the AI has memory and can continue conversations contextually.

  Prepare Prompt
  The retrieved chat history is combined with the new message to form a complete prompt for the AI.
  Example format: “User previously said X. Now they said Y. How should we respond?”

  AI Agent: Google Gemini
  The formatted prompt is passed to an AI Agent (Google Gemini Chat Model).
  The AI generates a response based on the message + history.
  Tools used: Chat ModeMemory, ToolOutputParser for accurate replies.

  Split & Clean History
  The conversation history is split into smaller chunks for cleaning and storage.
  This ensures the Google Sheet remains readable and manageable over time.

  Save Chat History
  The cleaned new message and AI reply are saved to Google Sheets.
  This updates the chat history for future context.

  Send Reply to LINE
  The AI-generated reply is sent back to the user via a POST HTTP Request to the LINE Messaging API.

  How to Set Up
  Prerequisites:
  LINE Official Account
  Google Sheet to store chat history
  Google Gemini API or AI agent with context memory
  Automation platform (e.g., n8n, as this seems visually similar)

  Step-by-Step:
  Create a Webhook on LINE:
  Set the webhook URL to your automation service.
  Enable webhook events.

  Design Your Google Sheet:
  Create a sheet with columns: User ID, Timestamp, Message, AI Reply.

  Set Up Modules in Automation Platform:
  Webhook: receives user messages.
  Edit Fields: extract user ID and message.
  Google Sheets Read: fetch message history.
  Prompt Composer: format prompt using past history + new message.
  AI Agent: connect to Google Gemini for smart replies.
  Split & Clean: clean and chunk history if needed.
  Google Sheets Write: save the updated conversation.
  HTTP Request: send reply to LINE via Messaging API.

  Test Your Workflow:
  Send a message from LINE.
  Watch the full loop: receive → process → AI → store → reply.

  Deploy & Monitor:
  Ensure error handling is in place (e.g., for blank messages or failed API calls).
  Regularly check your Google Sheets for storage limits. (If limits reached, you can increase the history row.)

  📦 Benefits
  Maintains context in conversations
  Personalized, AI-driven responses
  Easy history tracking via Google Sheets
  Fully automated and scalable

nodes_used:
  ["n8n-nodes-base.webhook","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.googleSheets","n8n-nodes-base.set","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.code","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 4136 characters]

metadata_json:
  {"categories":["chatbot","automation","integration","AI","data storage"],"complexity":"medium","use_cases":["Automated customer support replies with context","Personalized conversational commerce or lead qualification","Maintaining conversation memory for follow-ups","Logging and auditing chat interactions for analysis","FAQ or rule-based escalation with AI assistance"],"estimated_setup_minutes":45,"required_services":["LINE Messaging API (LINE Official Account)","Google Sheets (Google account)","Google Gemini API / Gemini Chat agent (or equivalent AI agent)","n8n or similar automation/orchestration platform","Publicly reachable webhook / HTTP endpoint"],"key_features":["Webhook-triggered message intake from LINE","Extracting and normalizing incoming fields","Fetching and combining past chat history from Google Sheets","Prompt composition combining history + new message","AI-powered response generation via Google Gemini (chat + memory) with output parsing tools (ToolOutputParser)"],"target_audience":["Customer support teams","Small and medium businesses","Developers / automation engineers implementing chatbots for clients or internal tools"]}


name: Scrape Indeed Job Listings for Hiring Signals Using Bright Data and LLMs
author_name: Yaron Been
author_username: yaron-nofluff
categories: []
created_at: 2025-04-18T10:30:44.845Z
updated_at: 2025-04-18T10:30:44.845Z
url: https://n8n.io/workflows/3601
scraped_at: 2025-09-14 19:11:01
metadata_generated_at: 2025-09-14 21:18:32
description:
  Scrape Indeed Job Listings for Hiring Signals Using Bright Data and LLMs

  How the flow runs
  Fill the form with job position you're hunting for.
  Bright data's scraper will scrape Indeed based on your requirments.  
  Workflow waits for the snapshot.  
  Data returns as JSON.  
  Jobs append to Google Sheets.  
  Each row goes to an LLM to analyze if you're a good fit for the job (based on your prompts).  
  The LLMswrites YES or NO next to each job opportunity, helping you find job posts that are relevant to you.

  What you need
  Google Sheets with our template.  
  Bright Data dataset and API key.  
  OpenAI key for GPT‑4o mini (or any other LLM).  
  n8n with required nodes.

  Form fields To Fill
  Job Location** – city or region.  
  Keyword** – role or skills.  
  Country** – two‑letter code.

  Setup steps
  Copy the sheet template link.  
  Import the JSON workflow. 
  Add your credentials in nodes.  
  Test the form manually.  
  Add a schedule if desired.

  Bright Data filter example
  [
    {
      "country": "US",
      "domain": "indeed.com",
      "keyword_search": "Growth Marketer",
      "location": "Miami",
      "date_posted": "Last 24 hours"
    }
  ]

  Tips
  -Choose Last 24 hours often.

  -Increase wait time for big snapshots.

  -Narrow keywords to save credits.


  **Need help?
  **Email me anytime: 
  Yaron@nofluff.online
  YouTube: @YaronBeen
  LinkedIn: https://www.linkedin.com/in/yaronbeen/

  Bright Data Docs: https://docs.brightdata.com/introduction

nodes_used:
  ["n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.formTrigger","n8n-nodes-base.httpRequest","n8n-nodes-base.wait","n8n-nodes-base.if","n8n-nodes-base.httpRequest","n8n-nodes-base.googleSheets","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.splitOut","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.googleSheets","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.chainLlm"]

workflow_json_compressed:
  [encoded data, 6400 characters]

metadata_json:
  {"categories":["web-scraping","automation","data-processing","recruiting"],"complexity":"medium","use_cases":["Automated scraping of Indeed job listings","Detecting hiring signals and relevance for a specific candidate","Populating and maintaining a Google Sheet with fresh job data","Using LLMs to classify/job-fit (YES/NO) per listing","Scheduled monitoring of new job postings"],"estimated_setup_minutes":30,"required_services":["Bright Data (dataset + API key)","Google Sheets (with provided template)","OpenAI (GPT-4o mini or any compatible LLM API key)","n8n (self-hosted or cloud instance)"],"key_features":["User form to input job keyword, location, and country","Bright Data scraper triggers and waits for snapshot results","Parsed job JSON appended to Google Sheets","Row-by-row LLM analysis to mark YES/NO fit based on user prompts","Support for scheduling and snapshot timing adjustments (wait time tuning and filters)"],"target_audience":["Job seekers looking to automate job discovery","Recruiters / talent sourcers","Growth marketers and professionals tracking openings in specific roles/regions"]}


name: Gmail MCP Server – Your All‑in‑One AI Email Toolkit
author_name: Brian Money
author_username: aspereo
categories: []
created_at: 2025-04-18T20:12:47.018Z
updated_at: 2025-04-18T20:12:47.018Z
url: https://n8n.io/workflows/3605
scraped_at: 2025-09-14 19:11:00
metadata_generated_at: 2025-09-14 21:18:31
description:
  Gmail MCP Server
  Expose Gmail’s full API as a single SSE “tool server” endpoint for your AI agents.

  What it does
  Spins up an MCP Trigger that streams Server‑Sent Events to LangChain/N8N AI Agent nodes. ​

  Maps 20+ common Gmail operations (search, send, reply, draft, label & thread management, mark read/unread, delete, etc.) to ai_tool connections, so agents can invoke them with a simple JSON payload. 

  Why you’ll love it
  Agent‑ready: Plug the SSE URL into any N8N Agent or any other AI tool that uses MCP and start reasoning over email immediately.

  Extensible: Add more GmailTool operations or swap credentials without touching your agent logic.

  How to use
  Import the workflow (n8n ≥ v1.88).

  Set up a gmailOAuth2 credential and select it on the GmailTool nodes.

  Open the Gmail MCP Server node, copy the SSE URL, and paste it into your AI agent’s “Tool Server” field.

nodes_used:
  ["n8n-nodes-base.gmailTool","n8n-nodes-base.gmailTool","n8n-nodes-base.gmailTool","n8n-nodes-base.gmailTool","n8n-nodes-base.gmailTool","n8n-nodes-base.gmailTool","n8n-nodes-base.gmailTool","n8n-nodes-base.gmailTool","n8n-nodes-base.stickyNote","n8n-nodes-base.gmailTool","n8n-nodes-base.gmailTool","n8n-nodes-base.gmailTool","n8n-nodes-base.gmailTool","n8n-nodes-base.stickyNote","n8n-nodes-base.gmailTool","n8n-nodes-base.gmailTool","n8n-nodes-base.gmailTool","n8n-nodes-base.gmailTool","n8n-nodes-base.stickyNote","n8n-nodes-base.gmailTool","n8n-nodes-base.gmailTool","n8n-nodes-base.gmailTool","n8n-nodes-base.gmailTool","n8n-nodes-base.gmailTool","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.mcpTrigger","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 4652 characters]

metadata_json:
  {"categories":["automation","integration","ai","email"],"complexity":"medium","use_cases":["Expose Gmail to AI agents via MCP/SSE","Automated email reading, searching and triage by agents","Agent-driven send/reply/draft workflows","Label, thread and mailbox management by AI","Rapid prototyping of email assistant capabilities"],"estimated_setup_minutes":20,"required_services":["Gmail (Google API) with OAuth2 credentials","n8n (v1.88 or newer) instance","AI agent or tool that supports MCP/SSE (e.g., LangChain, n8n Agent)"],"key_features":["Provides a single SSE/MCP tool-server URL exposing Gmail API","Maps 20+ common Gmail operations (search, send, reply, draft, labels, threads, mark read/unread, delete, etc.)","Agent-ready: plug-and-play with MCP-compatible AI agents","Credential-swappable and extensible: add operations without changing agent logic","Streams Server‑Sent Events for real‑time agent interaction"],"target_audience":["Developers building AI agents","AI/ML engineers integrating email into agent workflows","Automation engineers and IT teams managing email workflows"]}


name: Document Analysis & Chatbot Creation with Llama Parser, Gemini LLM & Pinecone DB
author_name: pavith
author_username: pavith
categories: []
created_at: 2025-04-19T06:23:10.288Z
updated_at: 2025-04-19T06:23:10.288Z
url: https://n8n.io/workflows/3606
scraped_at: 2025-09-14 19:11:01
metadata_generated_at: 2025-09-14 21:18:32
description:
  📄Description
  This automation workflow enables users to upload files via an N8N form, automatically analyzes the content using Google Gemini agents, and delivers the analyzed results via email along with a chatbot link. The system leverages Llama Cloud API, Google Gemini LLM, Pinecone vector database, and Gmail to provide a seamless, multilingual content analysis experience.

  ✅ Prerequisites
  Before setting up this workflow, ensure the following are in place:

  An active N8N instance.

  Access to Llama Cloud API.

  Google Gemini LLM API keys (for Translator & Analyzer agents).

  A Pinecone account with an active index.

  A Gmail account with API access configured.

  Basic knowledge of N8N workflow setup.

  ⚙️ Setup Instructions
  Deploy the N8N Form

  Create a public-facing form using N8N.

  Configure it to accept:

  File uploads.

  User email input.

  File Preprocessing

  Store the uploaded files temporarily.

  Organize and preprocess them as needed.

  Content Extraction using Llama Cloud API

  Feed the files into the Llama Cloud API.

  Extract and parse the content for further processing.

  Translation (if required)

  Use a Translator Agent (Google Gemini).

  Check if the content is in English. If not, translate it.

  Content Analysis

  Forward the (translated) content to the Analyzer Agent (Google Gemini).

  Perform deep analysis to extract insights.

  Vector Storage in Pinecone

  Store both:

  The parsed and translated content.

  The analyzed content.

  Use Pinecone to store the content as embeddings for chatbot use.

  User Notification via Gmail

  Send the analyzed content and chatbot link to the user’s provided email using Gmail API.

  🧩 Customization Guidance
  To add more languages: Update the translation logic to include additional language support.

  To modify analysis depth: Adjust the prompts sent to the Gemini Analyzer Agent.

  To change the chatbot behavior: Retrain or reconfigure the chatbot to utilize the new Pinecone index contextually.

  🔁 Workflow Summary
  User uploads files and email via N8N form.

  Files are parsed using Llama Cloud API.

  Content is translated (if needed) using Gemini Translator Agent.

  Translated content is analyzed by the Gemini Analyzer Agent.

  Parsed and analyzed data is stored in Pinecone.

  User receives email with analyzed results and a chatbot link.

nodes_used:
  ["n8n-nodes-base.formTrigger","n8n-nodes-base.splitInBatches","n8n-nodes-base.if","n8n-nodes-base.aggregate","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.code","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.markdown","n8n-nodes-base.gmail","n8n-nodes-base.code","n8n-nodes-base.convertToFile","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","@n8n/n8n-nodes-langchain.informationExtractor","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.convertToFile","@n8n/n8n-nodes-langchain.vectorStorePinecone","@n8n/n8n-nodes-langchain.embeddingsMistralCloud","@n8n/n8n-nodes-langchain.documentDefaultDataLoader","@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter","@n8n/n8n-nodes-langchain.chatTrigger","@n8n/n8n-nodes-langchain.chainRetrievalQa","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","@n8n/n8n-nodes-langchain.retrieverVectorStore","@n8n/n8n-nodes-langchain.vectorStorePinecone","@n8n/n8n-nodes-langchain.embeddingsMistralCloud","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 7556 characters]

metadata_json:
  {"categories":["automation","document processing","NLP/AI","knowledge management","chatbot"],"complexity":"complex","use_cases":["Automated document ingestion and semantic analysis","Multilingual content translation and summarization","Building a searchable chatbot over uploaded documents","Emailing analysis results and delivering chatbot access","Creating embeddings for knowledge-base search and retrieval"],"estimated_setup_minutes":90,"required_services":["n8n instance (hosted or self‑hosted)","Llama Cloud API","Google Gemini LLM API (Translator & Analyzer agents)","Pinecone (vector DB and active index)","Gmail API (for sending notifications)","Mistral Cloud (used for embeddings in workflow)"],"key_features":["Public file-upload form to collect documents and user email","File parsing and preprocessing via Llama Cloud API","Automatic language detection and translation with Gemini","Deep content analysis using Gemini Analyzer agents","Embeddings generation and storage in Pinecone for retrieval/QA chatbot use"],"target_audience":["Developers building AI document workflows","ML/AI engineers integrating LLMs and vector DBs","Data engineers/analysts needing automated content processing pipelines"]}


name: Find High-Intent Sales Leads by Scraping Glassdoor with Bright Data & GPT
author_name: Yaron Been
author_username: yaron-nofluff
categories: []
created_at: 2025-04-19T06:36:28.418Z
updated_at: 2025-04-19T06:36:28.418Z
url: https://n8n.io/workflows/3607
scraped_at: 2025-09-14 19:11:02
metadata_generated_at: 2025-09-14 21:18:32
description:
  🔍 Scrape Glassdoor with Bright Data

  Designed for sales teams, recruiters, and marketers aiming to automate job discovery and prospecting.

  This workflow scrapes Glassdoor job listings using Bright Data and automatically generates targeted pitches using AI, streamlining lead identification and outreach.

  🧩 How It Works

  This automation leverages n8n, Bright Data, Google Sheets, and OpenAI:

  1. Trigger
  Starts with a custom form input (Location, Keyword, Country).

  2. Bright Data Job Scrape
  Triggers a Bright Data dataset snapshot via HTTP Request.
  Polls snapshot progress using a Wait node, ensuring data readiness.
  Retrieves full job listings dataset once ready.

  3. Google Sheets Integration
  Writes detailed job data (company, role, location, overview, metrics) into a Google Sheet.
  Uses a pre-built template for organized data storage.

  4. Automated Pitch Generation (AI)
  Splits listings into actionable parts: company name, title, and description.
  Sends data to OpenAI (via LangChain) to generate relevant pitches or icebreakers.
  Saves generated content back into the same sheet for easy access.

  ✅ Requirements

  Ensure you have the following:

  Google Sheets
  Google account  
  Template Sheet with columns for job details and AI-generated pitches

  Bright Data
  Active account with Dataset API access  
  API key and dataset ID

  OpenAI
  Valid OpenAI API key for GPT models

  n8n Environment
  Nodes: HTTP Request, Wait, If, Google Sheets, Split Out, LangChain (OpenAI)
  Credentials:
    Google Sheets OAuth2
    Bright Data API credentials
    OpenAI API key

  ⚙️ Setup Instructions

  Step 1: Prepare Google Sheets  
  Copy the provided Google Sheets template  
  Do not change headers

  Step 2: Import & Configure Workflow in n8n  
  Import the workflow JSON file  
  Set Google Sheets node:
    Link to your copied sheet  
    Confirm correct tab name  

  Step 3: Configure Bright Data  
  Replace &lt;YOUR_BRIGHT_DATA_API_KEY&gt; with your real key  
  Set your dataset ID in all HTTP Request nodes

  Step 4: Configure OpenAI (LangChain)  
  Connect OpenAI API key to the LangChain node  
  Customize prompt to match tone and outreach style

  Step 5: Testing & Scheduling  
  Test via manual form trigger  
  Schedule runs or leave form enabled for on-demand use

  🧠 Tips & Best Practices

  Use specific keywords and locations for better results  
  Adjust polling intervals based on dataset size  
  Refine AI prompts regularly to improve pitch quality  
  Clean unused columns from your sheet to boost performance

  💬 Support & Feedback

  For help or customization:

  📧 Email: Yaron@nofluff.online  
  📺 YouTube: @YaronBeen  
  🔗 LinkedIn: linkedin.com/in/yaronbeen  

  📚 Bright Data Docs: docs.brightdata.com/introduction

nodes_used:
  ["n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.formTrigger","n8n-nodes-base.httpRequest","n8n-nodes-base.wait","n8n-nodes-base.if","n8n-nodes-base.httpRequest","n8n-nodes-base.googleSheets","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.splitOut","@n8n/n8n-nodes-langchain.chainLlm","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.googleSheets"]

workflow_json_compressed:
  [encoded data, 6700 characters]

metadata_json:
  {"categories":["automation","data extraction","integration","lead generation","AI content generation"],"complexity":"medium","use_cases":["Find high-intent job-based sales leads","Recruiter sourcing and talent discovery","Automated outreach / personalized pitch generation","Market and hiring trend research"],"estimated_setup_minutes":45,"required_services":["Bright Data (Dataset API)","OpenAI (via LangChain)","Google Sheets (Google account)","n8n environment"],"key_features":["Scrapes Glassdoor job listings via Bright Data dataset snapshots","Polls snapshot progress and retrieves completed datasets","Writes structured job data into a predefined Google Sheets template","Splits listings and generates targeted pitches/icebreakers using OpenAI (LangChain)","Stores generated outreach copy back into the sheet for easy access and follow-up"],"target_audience":["Sales teams / SDRs","Recruiters and talent sourcers","Marketing and growth teams focused on outbound outreach"]}


name: Summarize YouTube Videos into Structured Content Ideas with AI and Airtable
author_name: Batu Öztürk
author_username: theozturkbatu
categories: []
created_at: 2025-04-19T14:53:57.801Z
updated_at: 2025-04-19T14:53:57.801Z
url: https://n8n.io/workflows/3609
scraped_at: 2025-09-14 19:11:02
metadata_generated_at: 2025-09-14 21:18:32
description:
  Extract the main idea and key takeaways from YouTube videos and turn them into Airtable content ideas

  📝 Description
  Automatically turn YouTube videos into clear, structured content ideas stored in Airtable. This workflow pulls new video links from Airtable, extracts transcripts using a RapidAPI service, summarizes them with your favourite LLM, and logs the main idea and key takeaways—keeping your content pipeline fresh with minimal effort.

  ⚙️ What It Does
  Scans Airtable for new YouTube video links every 5 minutes.

  Extracts the transcript of the video using a third-party API via RapidAPI.

  Summarizes the content to generate a main idea and takeaways.

  Updates the original Airtable entry with the insights and marks it as completed.

  🛠 Prerequisites
  Before using this template, make sure you have:

  ✅ A RapidAPI account with access to the youtube-video-summarizer-gpt-ai API.

  ✅ A valid RapidAPI key.

  ✅ An OpenAI, Claude or Gemini account connected to n8n.

  ✅ An Airtable account with a base and table ready.

  🧰 Setup Instructions
  Clone this template into your n8n workspace.

  Open the Get YouTube Sources node and configure your Airtable credentials.

  In the Get video transcript node:

  Enter your X-RapidAPI-Key under headers.

  The API endpoint is pre-configured.

  Connect your LLM credentials to the Extract detailed summary node.

  (Optional) Adjust the summarization prompt in the LangChain node to better suit your tone.

  Set your preferred schedule in the Trigger node.

  📋 Airtable Setup
  Create a base (e.g., Content Hub) with a table named Ideas and the following columns:

  | Column Name | Type       | Required | Notes                      |
  |-------------|------------|----------|----------------------------|
  | Type       | Single select | ✅ | Must be set to Youtube Video |
  | Source | URL  | ✅ | The YouTube video URL       |
  | Status      | Checkbox        | ✅ | Leave empty initially; updated after processing   |
  | MainIdea        | Single line text | ✅ | Summary generated by OpenAI
  |
  | Key Takeaways        | Long text | ✅ | List of takeaways extracted from the transcript  


  Activate the workflow—and you're done!

nodes_used:
  ["n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.airtable","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.informationExtractor","n8n-nodes-base.airtable","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 5748 characters]

metadata_json:
  {"categories":["automation","integration","data processing"],"complexity":"medium","use_cases":["Generate structured content ideas from YouTube videos","Automate editorial/content pipeline updates in Airtable","Extract transcripts and summarize videos for repurposing","Produce main idea and key takeaways for content teams"],"estimated_setup_minutes":20,"required_services":["RapidAPI (youtube-video-summarizer-gpt-ai)","OpenAI or Anthropic Claude or Google Gemini (LLM)","Airtable account","n8n (cloud or self-hosted)"],"key_features":["Scans Airtable for new YouTube links on a schedule","Extracts video transcripts via RapidAPI","Summarizes content into main idea and key takeaways using an LLM","Writes insights back to the original Airtable record and marks it complete","Configurable summarization prompt (LangChain node)"],"target_audience":["Content marketers","Social media managers","Content creators and editors\",\"Automation engineers / n8n users"]}


name: Scrape Trustpilot Reviews Using Bright Data & GPT-4o-mini for Winning Ad Copy
author_name: Yaron Been
author_username: yaron-nofluff
categories: []
created_at: 2025-04-19T15:01:54.627Z
updated_at: 2025-04-19T15:01:54.627Z
url: https://n8n.io/workflows/3610
scraped_at: 2025-09-14 19:11:02
metadata_generated_at: 2025-09-14 21:18:32
description:
  🔍 Competitor Review Scraper & Ad Copy Generator
  (Trustpilot + Bright Data + GPT-4o-mini)

  📌 Who It's For
  Marketers, business owners, and agencies looking to:

  Analyze competitor pain points

  Generate high-impact Facebook ad copy
   
  Automate manual data processing

  🧩 How It Works
  This n8n-based workflow combines Bright Data, Google Sheets, and OpenAI to scrape, process, and transform Trustpilot reviews into ready-to-use ad copy.

  🔹 Step-by-Step Breakdown
  Trigger (Manual Form Submission)
  Input required:

  Competitor’s Trustpilot URL

  Review timeframe (30d, 3m, 6m, 12m)

  Fetch Reviews

  Calls Bright Data’s Dataset API with URL & timeframe

  Polls until snapshot is ready

  Retrieve & Store

  Extracts all reviews

  Saves them into a structured Google Sheet

  Filter & Aggregate

  Filters to only 1–2 star reviews

  Summarizes common negative feedback

  Generate Ad Copy

  Sends the summary to OpenAI GPT-4o-mini

  Produces 3 variations of ad copy targeting pain points

  Distribute Insights

  Sends ad copy + summary via email to the marketing team

  ✅ Requirements

  -LLM Account 
  -Google Sheets - Copy this sheet:
  https://docs.google.com/spreadsheets/d/1Zi758ds2_aWzvbDYqwuGiQNaurLgs-leS9wjLWWlbUU/edit?gid=0#gid=0

  -Bright Data account

  ⚙️ Setup Instructions
  **Step 1: Google Sheets
  **
  Copy this Google Sheets template

  Do not change column headers

  **Step 2: n8n Credential Setup
  **
  Google Sheets: OAuth2

  Bright Data: Authorization Header

  OpenAI: API Key for GPT-4o-mini

  **Step 3: Import Workflow
  **
  Import the .json file into n8n

  Configure your sheet + dataset ID

  Adjust GPT prompts as needed

  **Step 4: Run the Workflow
  **
  Trigger via form

  Receive ad copy + review insights via email

  🧠 Tips & Best Practices
  Bright Data snapshots may take time — polling is handled

  Focusing on 1–2 star reviews yields the most actionable pain points

  You can customize GPT-4o-mini prompts for tone or vertical

  💬 Support & Feedback
  Need help or customization?

  📧 Email: Yaron@nofluff.online
  📺 YouTube: @YaronBeen
  🔗 LinkedIn: linkedin.com/in/yaronbeen

  📚 Bright Data Docs: docs.brightdata.com/introduction

nodes_used:
  ["n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.formTrigger","n8n-nodes-base.httpRequest","n8n-nodes-base.wait","n8n-nodes-base.if","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.chainLlm","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.gmail","n8n-nodes-base.filter","n8n-nodes-base.aggregate","n8n-nodes-base.stickyNote","n8n-nodes-base.googleSheets","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 6044 characters]

metadata_json:
  {"categories":["automation","integration","data processing","web scraping","marketing"],"complexity":"medium","use_cases":["Scrape competitor Trustpilot reviews","Extract and summarize negative customer feedback","Generate high-impact Facebook ad copy variations","Automate review collection and reporting","Distribute insights to marketing teams via email"],"estimated_setup_minutes":30,"required_services":["Bright Data (Dataset API)","Google Sheets (OAuth2)","OpenAI (GPT-4o-mini API key)","Email service/SMTP or n8n Communication node","n8n instance/workflow runner"],"key_features":["Automated Trustpilot scraping with Bright Data and polling for snapshots","Stores raw reviews in structured Google Sheet","Filters to 1–2 star reviews and aggregates common complaints","Summarizes pain points and feeds to GPT-4o-mini","Generates 3 ad copy variations targeting pain points (customizable prompts)」「Sends ad copy and summary via email to the marketing team」「Manual form trigger for inputting competitor URL and timeframe"],"target_audience":["Marketers","Business owners","Marketing agencies/consultants growth teams and copywriters"]}


name: Telegram giveaways among channel subscribers (Module "Giveaway")
author_name: Andrew
author_username: boanse
categories: []
created_at: 2025-04-19T16:04:43.183Z
updated_at: 2025-04-19T16:04:43.183Z
url: https://n8n.io/workflows/3611
scraped_at: 2025-09-14 19:11:03
metadata_generated_at: 2025-09-14 21:18:33
description:
  Who is this for?
  This workflow is ideal for businesses or individuals who want to run Telegram-based giveaways that require users to subscribe to certain channels in order to participate.

  What problem is this workflow solving?
  Running a fair and trackable giveaway on Telegram can be difficult without a system that verifies subscriptions and manages participants. This workflow simplifies that process, ensuring only eligible users are included and enabling a smooth drawing process.

  What this workflow does
  The giveaway organizer specifies a list of Telegram channels for participants to must subscribe to.
  The organizer shares a bot link with users.
  Users start the bot, confirming their participation in the giveaway.
  The bot tracks eligible participants.
  The administrator complete the giveaway and select winners.

  Setup
  Create tables in your Postgres database  
     Open the provided SQL script.
     Replace "n8n" with your schema name.
     Execute the script in your Postgres DB.

  Add credentials in n8n  
     Telegram credentials (Bot token, etc.)  
     Postgres database credentials

  How to customize this workflow to your needs
  Modify the SQL script to match your database schema if needed.
  Customize the Telegram bot messages and logic using the n8n Telegram nodes.
  Add additional nodes if you want to notify winners or log data in other services.

nodes_used:
  ["n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.telegram","n8n-nodes-base.telegram","n8n-nodes-base.postgres","n8n-nodes-base.postgres","n8n-nodes-base.postgres","n8n-nodes-base.if","n8n-nodes-base.if","n8n-nodes-base.if","n8n-nodes-base.switch","n8n-nodes-base.switch","n8n-nodes-base.telegram","n8n-nodes-base.postgres","n8n-nodes-base.switch","n8n-nodes-base.telegram","n8n-nodes-base.telegram","n8n-nodes-base.telegram","n8n-nodes-base.switch","n8n-nodes-base.postgres","n8n-nodes-base.sort","n8n-nodes-base.postgres","n8n-nodes-base.aggregate","n8n-nodes-base.if","n8n-nodes-base.telegram","n8n-nodes-base.telegram","n8n-nodes-base.telegram","n8n-nodes-base.telegram","n8n-nodes-base.postgres","n8n-nodes-base.postgres","n8n-nodes-base.telegram","n8n-nodes-base.postgres","n8n-nodes-base.postgres","n8n-nodes-base.postgres","n8n-nodes-base.postgres","n8n-nodes-base.telegram","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.telegramTrigger","n8n-nodes-base.stickyNote"]

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

metadata_json:
  {"categories":["automation","marketing","social media","community management","giveaways"],"complexity":"medium","use_cases":["Running Telegram channel subscription-based giveaways","Verifying participant eligibility via channel subscriptions","Managing and tracking giveaway participants","Random winner selection and announcement","Automating contest workflows for growth/engagement"],"estimated_setup_minutes":45,"required_services":["Telegram Bot API (bot token)","PostgreSQL database","n8n instance"],"key_features":["Verifies subscriber eligibility across specified Telegram channels","Tracks and stores eligible participants in Postgres","Admin-triggered winner selection/drawing","Customizable Telegram bot messages and participant flow","Support for logging and further integrations via additional nodes"],"target_audience":["Marketers","Community managers","Small businesses and creators running promotions on Telegram」「Developers / automation engineers implementing contest logic"]}


name: Automate Testing and Collect Responses via Telegram in Postgres (Module "Quiz")
author_name: Andrew
author_username: boanse
categories: []
created_at: 2025-04-19T16:48:32.300Z
updated_at: 2025-04-19T16:48:32.300Z
url: https://n8n.io/workflows/3612
scraped_at: 2025-09-14 19:11:02
metadata_generated_at: 2025-09-14 21:18:33
description:
  Who is this for?  
  This template is ideal for educators, HR professionals, and anyone looking to automate testing and collect responses through Telegram, while storing results in a Postgres database.

  What problem is this workflow solving?  
  Manually organizing and managing tests can be time-consuming and prone to error. This workflow automates the test distribution, response collection, and scoring process, ensuring a seamless and efficient testing experience.

  What this workflow does  
  Adds test content, including questions and answers, to a Postgres database  
  Sends a Telegram bot link to test participants  
  Automatically delivers the test via the Telegram bot  
  Collects and stores responses  
  Displays the participant's ranking at the end of the test  

  Setup  
  Create tables in Postgres  
     Replace "n8n" in the provided SQL script with the name of your actual schema  
     Run the script in your database to create the required tables  

  Add credentials  
     Set up and connect your Telegram credentials  
     Set up and connect your Postgres credentials  

  How to customize this workflow to your needs  
  Modify the test content directly in the Postgres database  
  Customize the Telegram bot messages to match your tone and branding.
  Adjust scoring logic if needed to reflect different evaluation methods.

nodes_used:
  ["n8n-nodes-base.switch","n8n-nodes-base.telegram","n8n-nodes-base.sort","n8n-nodes-base.wait","n8n-nodes-base.set","n8n-nodes-base.merge","n8n-nodes-base.telegram","n8n-nodes-base.switch","n8n-nodes-base.switch","n8n-nodes-base.switch","n8n-nodes-base.telegram","n8n-nodes-base.telegram","n8n-nodes-base.postgres","n8n-nodes-base.telegramTrigger","n8n-nodes-base.set","n8n-nodes-base.if","n8n-nodes-base.telegram","n8n-nodes-base.code","n8n-nodes-base.postgres","n8n-nodes-base.postgres","n8n-nodes-base.postgres","n8n-nodes-base.postgres","n8n-nodes-base.set","n8n-nodes-base.summarize","n8n-nodes-base.postgres","n8n-nodes-base.telegram","n8n-nodes-base.postgres","n8n-nodes-base.postgres","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.if","n8n-nodes-base.telegram","n8n-nodes-base.telegram","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

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

metadata_json:
  {"categories":["automation","integration","education","data processing","assessment"],"complexity":"complex","use_cases":["Automated student quizzes and classroom assessments","Employee screening and HR testing","Certification or training exams with automated scoring","Collecting quiz/survey responses via chat","Real-time ranking/leaderboard for participants"],"estimated_setup_minutes":30,"required_services":["Telegram Bot API","PostgreSQL","n8n (self-hosted or cloud)","Optional: AI/ML service (if using the AI/ML node)"],"key_features":["Store tests (questions/answers) in Postgres","Send Telegram bot link and deliver tests via bot","Collect and persist participant responses","Automated scoring and ranking/leaderboard display","Customizable messaging and scoring logic via DB and nodes"],"target_audience":["Educators","HR professionals and recruiters","Training managers and instructional designers\",\"n8n automation builders and integrators\",\"Developers / IT administrators"]}


name: Automate Telegram Channel Posts Using Postgres (Module "Cross-Posting")
author_name: Andrew
author_username: boanse
categories: []
created_at: 2025-04-19T17:41:14.399Z
updated_at: 2025-04-19T17:41:14.399Z
url: https://n8n.io/workflows/3614
scraped_at: 2025-09-14 19:11:02
metadata_generated_at: 2025-09-14 21:18:33
description:
  Who is this for?
  This template is ideal for users managing Telegram channels who want to automate the process of posting messages, including text and images, directly from an bot.

  What problem is this workflow solving?
  Manually posting content to multiple Telegram channels can be time-consuming and inconsistent. This workflow automates that process, enabling efficient and consistent content delivery to one or more channels.

  What this workflow does
  This workflow connects to a Postgres database to retrieve post content and automatically sends text or image posts to designated Telegram channels where the bot is an admin. It supports scheduling and content customization through the database.

  Setup
  1. Create the necessary tables in your Postgres database
  Open the SQL script provided in the workflow.
  Replace "n8n" with your actual schema name.
  Run the script in your database to set up the required tables.

  2. Add credentials
  Telegram**: Create and connect a bot, ensuring it has admin access to the target channels.
  Postgres**: Connect your Postgres instance using valid credentials.

  How to customize this workflow to your needs
  Modify the SQL script to match your specific table or schema naming conventions.
  Adjust the content format or post frequency directly from your database.

nodes_used:
  ["n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.telegramTrigger","n8n-nodes-base.postgres","n8n-nodes-base.if","n8n-nodes-base.postgres","n8n-nodes-base.postgres","n8n-nodes-base.switch","n8n-nodes-base.switch","n8n-nodes-base.telegram","n8n-nodes-base.telegram","n8n-nodes-base.telegram","n8n-nodes-base.telegram","n8n-nodes-base.telegram","n8n-nodes-base.telegram","n8n-nodes-base.postgres","n8n-nodes-base.postgres","n8n-nodes-base.summarize","n8n-nodes-base.telegram","n8n-nodes-base.switch","n8n-nodes-base.postgres","n8n-nodes-base.if","n8n-nodes-base.postgres","n8n-nodes-base.switch","n8n-nodes-base.postgres","n8n-nodes-base.postgres","n8n-nodes-base.telegram","n8n-nodes-base.postgres","n8n-nodes-base.telegram","n8n-nodes-base.postgres","n8n-nodes-base.telegram","n8n-nodes-base.telegram","n8n-nodes-base.postgres","n8n-nodes-base.postgres","n8n-nodes-base.postgres","n8n-nodes-base.telegram","n8n-nodes-base.telegram","n8n-nodes-base.postgres","n8n-nodes-base.if","n8n-nodes-base.telegram","n8n-nodes-base.telegram","n8n-nodes-base.telegram","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.postgres"]

workflow_json_compressed:
  [encoded data, 4260 characters]

metadata_json:
  {"categories":["automation","integration","social media","content management"],"complexity":"medium","use_cases":["Automated posting to Telegram channels from a database","Cross-posting same content to multiple channels","Scheduling and publishing text and image posts","Maintaining consistent content delivery via DB-driven workflow"],"estimated_setup_minutes":30,"required_services":["Telegram Bot API (bot with admin rights on target channels)","Postgres database (with schema/tables for posts)","n8n instance (for scheduling/execution)"],"key_features":["Reads post content and metadata from Postgres","Sends text and image messages to one or more Telegram channels","Supports scheduling and frequency controls via database","Content customization via SQL/schema adjustments","Branching logic for different post types (text vs image)"],"target_audience":["Social media managers","Community managers","Developers/automation engineers implementing integrations for teams"]}


name: Verify Telegram Channel Subscriptions with Access Control using Postgres
author_name: Andrew
author_username: boanse
categories: []
created_at: 2025-04-19T18:20:13.113Z
updated_at: 2025-04-19T18:20:13.113Z
url: https://n8n.io/workflows/3615
scraped_at: 2025-09-14 19:11:03
metadata_generated_at: 2025-09-14 21:18:33
description:
  Who is this for?  
  This workflow is for Telegram bot developers or marketers who want to verify user subscriptions to specific Telegram channels and optionally reward them with downloadable files.

  What problem is this workflow solving?  
  This workflow ensures users have subscribed to required Telegram channels before they are granted access to resources or rewards, such as Google Drive files. It automates the subscription verification process, saving time and reducing manual effort.

  What this workflow does  
  Verifies if a user is subscribed to specific Telegram channels.  
  Allows adding and removing channel IDs for verification.  
  Sends referral links to users for subscription checks.  
  Optionally grants access to Google Drive files upon successful verification (currently inactive)
  Setup  
  Add the bot to your Telegram channels as an admin – this is required for the bot to check subscription status.  
  Add channel IDs via the bot – these are the channels users will need to subscribe to.  
  Send the referral link to users you want to verify.  
  Remove channels anytime from the subscription check list if needed.  
  Create tables in Postgres:  
     Replace "n8n" in the provided SQL script with your DB schema name.  
     Run the script in your Postgres DB.  
  Add credentials:  
     Telegram  
     Postgres  

  How to customize this workflow to your needs  
  Modify the SQL script to suit your existing database structure.  
  Adjust the logic to enable or disable file delivery from Google Drive.  

nodes_used:
  ["n8n-nodes-base.stickyNote","n8n-nodes-base.telegram","n8n-nodes-base.postgres","n8n-nodes-base.aggregate","n8n-nodes-base.if","n8n-nodes-base.telegram","n8n-nodes-base.googleDrive","n8n-nodes-base.googleDrive","n8n-nodes-base.postgres","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.telegramTrigger","n8n-nodes-base.postgres","n8n-nodes-base.switch","n8n-nodes-base.switch","n8n-nodes-base.telegram","n8n-nodes-base.postgres","n8n-nodes-base.telegram","n8n-nodes-base.postgres","n8n-nodes-base.telegram","n8n-nodes-base.telegram","n8n-nodes-base.telegram","n8n-nodes-base.telegram","n8n-nodes-base.postgres","n8n-nodes-base.postgres","n8n-nodes-base.summarize","n8n-nodes-base.telegram","n8n-nodes-base.switch","n8n-nodes-base.postgres","n8n-nodes-base.switch","n8n-nodes-base.telegram","n8n-nodes-base.postgres","n8n-nodes-base.if","n8n-nodes-base.telegram","n8n-nodes-base.telegram","n8n-nodes-base.postgres","n8n-nodes-base.if","n8n-nodes-base.postgres","n8n-nodes-base.postgres","n8n-nodes-base.telegram","n8n-nodes-base.telegram","n8n-nodes-base.if","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 4196 characters]

metadata_json:
  {"categories":["automation","integration","messaging/chatbot","access control","database"],"complexity":"complex","use_cases":["Gate access to downloads or resources based on Telegram channel subscriptions","Automate verification of Telegram channel membership","Manage channel lists and referral links for subscription checks","Reward or onboard users after verifying subscriptions"],"estimated_setup_minutes":45,"required_services":["Telegram Bot API (bot added as channel admin)","Postgres database","n8n","Google Drive (optional, for delivering files)"],"key_features":["Checks if a user is subscribed to one or more Telegram channels","Add/remove channel IDs stored in Postgres","Send referral links and perform subscription checks via bot","Optional delivery of Google Drive files upon successful verification","Postgres-backed persistence and configurable SQL schema"],"target_audience":["Telegram bot developers","Marketers and community managers","Growth hackers running referral or gated-content flows using n8n"]}


name: Automated Lead Generation & Contact Enrichment with Hunter.io and Perplexity AI
author_name: Velebit from Innovatio
author_username: innovatio
categories: []
created_at: 2025-04-19T18:41:48.286Z
updated_at: 2025-04-19T18:41:48.286Z
url: https://n8n.io/workflows/3616
scraped_at: 2025-09-14 19:11:01
metadata_generated_at: 2025-09-14 21:18:32
description:
  Who is this for?

  This template is ideal for B2B founders, solopreneurs, growth marketers, SDRs, or anyone looking to scale their lead generation and enrichment with no-code tools to low-code tools.

  Whether you're building your first lead pipeline or upgrading a manual spreadsheet, LeadAIgen automates the entire discovery → enrichment → logging process using AI and verified email data.

  What problem does this solve?

  Lead sourcing and enrichment are time-consuming, inconsistent, and often require multiple tools or manual scraping.

  This workflow solves that by chaining AI + contact discovery, validating everything, and storing clean, structured data in Google Sheets — ready for outreach or CRM sync.

  What this workflow does:

  ✅ Accepts an industry/topic prompt via chat trigger or Telegram,  
  🤖 Uses OpenRouter (Perplexity) to find 15 relevant companies with domains,  
  📤 Parses the results, filters duplicates based on your Google Sheet,  
  📩 Enriches each domain with up to 3 real personal emails using Hunter.io,  
  💡 If no emails found → Fallback AI tries to locate general email info,  
  📊 Updates your Google Sheet with all valid enriched leads (status: “Enriched”),  
  🔁 Runs in safe batches of 10 to protect your API limits,  
  🛠️ Includes logic to clean data, validate JSON, and slice leads.

  Setup:

  Create Google Sheets, Hunter.io, and OpenRouter credentials in your n8n instance  
  Import the JSON workflow  
  Set your OpenRouter model (default = Perplexity Sonar Large)  
  Connect your Google Sheet (must contain a header row with Domain, Status, etc.)  
  Paste your Hunter API key into the Hunter.io node  
  (Optional) Add Telegram Bot trigger to chat with your lead generator  

  🗒 Color-coded workflow notes:

  To make customization easier, this template includes Innovatio's signature visual sticky note system inside the n8n canvas.

  You’ll find:

  🟩 Green Notes → Main Steps  
  The core logic blocks — from company generation to AI fallback and Google Sheets update.

  🟦 Blue Notes → Personalization Tips  
  How to adapt filters, prompts, and data mappings for your business needs.

  🟨 Yellow Notes → Optional / Advanced  
  Expand with Telegram chat triggers, Airtable integration, CRM push, or lead scoring logic.

  🟫 Gray Notes → Welcome, Outro & Upgrade Suggestions  
  Clear guidance and CTAs if you want help scaling this further.

  👉 Each node includes comments or setup notes so you can learn the system as you use it.

  How to customize this workflow?

  🎯 Swap Google Sheets for Airtable for relational views and tagging,  
  🤖 Replace Perplexity with GPT-4, Claude, or Mixtral inside OpenRouter,  
  📬 Auto-send enriched leads to Gmail, Slack, or your CRM,  
  🗣️ Connect this to Telegram for on-the-go company generation,  
  🔁 Want dynamic lead scoring or auto-categorization? We can help — velebit@innovatio.design

  Final notes

  This template was designed by Velebit from Innovatio.  
  External links (e.g. documentation or support email) lead only to official sources with no affiliate tracking or paid placements.

  A separate license applies to the paid version on Gumroad, which includes commercial use rights, extended fallback logic, and advanced upgrade tips.

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.googleSheets","n8n-nodes-base.if","@n8n/n8n-nodes-langchain.lmChatOpenRouter","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.code","n8n-nodes-base.googleSheets","n8n-nodes-base.if","n8n-nodes-base.googleSheets","@n8n/n8n-nodes-langchain.chatTrigger","@n8n/n8n-nodes-langchain.lmChatOpenRouter","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.merge","n8n-nodes-base.googleSheets","n8n-nodes-base.if","n8n-nodes-base.code","n8n-nodes-base.hunter","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.telegramTrigger","n8n-nodes-base.code","n8n-nodes-base.code","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","n8n-nodes-base.code","n8n-nodes-base.googleSheets","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.airtable","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.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.scheduleTrigger"]

workflow_json_compressed:
  [encoded data, 4248 characters]

metadata_json:
  {"categories":["automation","integration","lead generation","data enrichment","sales enablement"],"complexity":"complex","use_cases":["B2B lead discovery and enrichment","Building/automating prospect lists for outreach","Populating and maintaining CRM or Google Sheets with validated contacts","Batch-validated email discovery and fallback AI lookups","No-code/low-code lead pipeline creation for growth teams"],"estimated_setup_minutes":30,"required_services":["n8n instance","Google Sheets","Hunter.io API key","OpenRouter (Perplexity Sonar Large recommended)","Telegram Bot (optional for chat trigger)","Gmail/Slack/CRM (optional for downstream delivery)","Airtable (optional alternative to Google Sheets)"],"key_features":["Accepts industry/topic prompts via chat or Telegram trigger","Uses OpenRouter/Perplexity to source relevant companies/domains","Parses and deduplicates results against existing Google Sheet","Enriches domains with up to 3 personal emails via Hunter.io","AI fallback when no emails are found to locate general contact info or suggestions"],"target_audience":["B2B founders","Solopreneurs","Growth marketers and SDRs"]}


name: Generate Monthly Financial Reports with Gemini AI, SQL, and Outlook
author_name: Amjid Ali
author_username: amjid
categories: []
created_at: 2025-04-19T20:25:03.594Z
updated_at: 2025-04-19T20:25:03.594Z
url: https://n8n.io/workflows/3617
scraped_at: 2025-09-14 19:10:59
metadata_generated_at: 2025-09-14 21:18:31
description:
  🚀 AI-Powered Business Performance Reporting Automation

  Unlock executive-level insights with ZERO manual work!  
  This n8n template empowers you to automate your entire monthly business performance reporting using dynamic SQL queries, AI-driven analysis, and beautiful HTML dashboards — all delivered directly to your inbox.

  🎯 What This Automation Does

  📆 Triggers automatically every month (5th of each month)
  🧮 Fetches financial data from SQL (ERPNext or any database)
  🔁 Loops over cost centers to analyze each business unit individually
  📊 Generates Profit & Loss reports, WIP, Employee stats, and vertical breakdowns
  🤖 Uses Google Gemini 2.5 AI to perform advanced financial analysis
  💌 Delivers a polished HTML report to your email inbox
  🔧 Fully modular – replace data source with Excel, Google Sheets, or APIs

  🧑‍🏫 Step-by-Step Video Tutorial

  🎥 Watch the full tutorial on YouTube:  
    
  📌 Learn how each node works and see the AI-generated report in action.

  🌐 Useful Links

  🔗 Sign up for n8n Cloud (recommended for non-tech users):  
    👉 https://n8n.syncbricks.com

  📘 Download the step-by-step Guidebook (Free):  
    👉 https://lms.syncbricks.com/books/n8n

  📚 Explore the full course on n8n (includes templates, workflows, and AI integrations):  
    👉 https://lms.syncbricks.com/courses/n8n

  🛠 Requirements

  ✅ n8n (Self-hosted or Cloud)
  ✅ SQL Database (MySQL / PostgreSQL / ERPNext)
  ✅ Microsoft Outlook or Gmail (to send the report)
  ✅ Gemini API Key (for AI analysis)
  ✅ Basic understanding of your data schema

  💡 Why Use This Template?

  ⏱ Saves 2-3 days of manual work every month
  📈 Improves financial visibility across business units
  🤝 Great for CFOs, COOs, Finance Analysts, and BI teams
  🔄 Scales across multiple divisions and companies
  🧠 Leverages AI for actionable insights and recommendations

  🧩 Customize It Your Way

  Replace the SQL nodes with:
    Excel / Google Sheets
    Airtable / APIs
    Custom Applications

  Swap the AI model:
    OpenAI GPT
    Claude
    DeepSeek

  Adjust the report structure or HTML style

  🙌 Get Started Now

  🎯 Import the JSON template → Connect your data → Receive business insights via email.  
  Don’t let manual reporting slow down your decision-making.

  👉 Sign up for n8n Cloud  
  👉 Learn n8n with Amjid  
  👉 Download Guide

  Created by Amjid Ali | SyncBricks™ – Automation for Everyone

nodes_used:
  ["n8n-nodes-base.scheduleTrigger","n8n-nodes-base.mySql","n8n-nodes-base.splitInBatches","n8n-nodes-base.set","n8n-nodes-base.dateTime","n8n-nodes-base.code","n8n-nodes-base.set","n8n-nodes-base.mySql","n8n-nodes-base.filter","n8n-nodes-base.html","n8n-nodes-base.code","n8n-nodes-base.merge","n8n-nodes-base.code","n8n-nodes-base.microsoftOutlook","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.mySql","n8n-nodes-base.code","n8n-nodes-base.wait","n8n-nodes-base.code","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.toolCalculator","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.toolThink","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.mySql","n8n-nodes-base.mySql","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 12532 characters]

metadata_json:
  {"categories":["automation","reporting","data processing","AI integration","finance"],"complexity":"complex","use_cases":["Monthly financial reporting automation","Automated Profit & Loss and WIP generation","Multi–cost-center / multi–business-unit analysis","AI-driven financial insights and recommendations","Delivering polished HTML reports via email"],"estimated_setup_minutes":90,"required_services":["n8n (self-hosted or Cloud)","SQL database (MySQL / PostgreSQL / ERPNext)","Google Gemini API key","Email service (Microsoft Outlook / Gmail SMTP)"],"key_features":["Monthly scheduled trigger","Dynamic SQL queries and data fetching","Looping over cost centers for per-unit analysis","Generates P&L, WIP, employee stats, and vertical breakdowns","Google Gemini 2.5 AI-driven financial analysis and insights\n(plug-and-play for other LLMs like OpenAI/Claude/DeepSeek)"],"target_audience":["CFOs","COOs","Finance analysts / BI teams"]}


name: Auto Invoice & Receipt OCR to Google Sheets – Drive, Gmail, & Telegram Triggers
author_name: Daniel Ng
author_username: danielng
categories: []
created_at: 2025-04-19T23:34:02.191Z
updated_at: 2025-04-19T23:34:02.191Z
url: https://n8n.io/workflows/3618
scraped_at: 2025-09-14 19:11:00
metadata_generated_at: 2025-09-14 21:18:32
description:
  The Best Invoice & Receipt OCR Automation - FREE (for a limited time)

  Automatically process invoices and receipts using Gemini OCR, extracting data directly into Google Sheets from multiple sources including Google Drive, Gmail, and Telegram. This powerful workflow ensures your bookkeeping is always accurate, organized, and efficient, significantly reducing manual effort and potential errors.

  Who is this for?

  This workflow is ideal for busy entrepreneurs, startup founders, freelancers, small business owners, bookkeepers, and accountants who aim to eliminate manual, repetitive, and error-prone bookkeeping tasks. Whether you regularly manage expenses from physical paper receipts, digital invoices, or email attachments, this workflow will dramatically streamline your bookkeeping processes and save you significant time and effort each month.

  What problem is this workflow solving?

  Manual data entry of invoices and receipts is notoriously tedious, incredibly time-consuming, and highly susceptible to human error. Mistakes in bookkeeping can lead to financial inaccuracies, compliance issues, and wasted resources. By automating the extraction of invoice data, this workflow streamlines your financial management process, significantly improves accuracy, reduces operational overhead, and allows you to redirect valuable resources and attention toward strategic, revenue-generating business activities.

  What this workflow does

  This template provides a powerful, automated solution for invoice and receipt data extraction using Google's Gemini API for OCR (Optical Character Recognition) via direct HTTP requests.

  Main Flow (Google Drive Trigger): The main workflow triggers (Google Drive Trigger New Files) whenever a new file (PDF or image) is added to a designated Google Drive folder. It uses a SplitInBatches node (Loop Over Items) to process incoming files one by one. For each file, it:  
     Downloads the file (Google Drive Get Receipt).  
     Converts it to base64 (Move file to base64 string).  
     Sends the file data and a detailed prompt to the Gemini API (gemini-2.0-flash model specified in the Prompt node, sent via the Gemini API HTTP Request node). The prompt requests structured JSON output with specific fields and formatting (like comma decimal separators, no currency symbols, and a dedicated currency field).  
     Parses the JSON response (JSON to string, Parse string nodes).  
     Appends the extracted data (Invoice Date, Category, Sender, Currency, etc.), along with the original filename and a link to the file, to a specified Google Sheet (Add to Google Sheets).  
     Includes Wait nodes to help manage potential rate limits.  
  Supplementary flow 1 (Gmail Trigger): An additional trigger (Gmail Trigger) monitors your Gmail account for emails with a specific label. When a matching email with attachments arrives:  
     It loops through emails and attachments.  
     It renames the attachment using the format YYYY-MM-DD_SenderUsername (e.g., 2025-04-19_some.sender) using the Create File Name node.  
     It saves the renamed attachment to the designated Google Drive folder (Google Drive Save Files), which then triggers the core OCR process above.  
  Supplementary Trigger 2 (Telegram Trigger): Another optional trigger (Telegram Trigger Image) allows you to forward photos of physical receipts to your configured Telegram bot:  
     It renames the image file using the format YYYY-MM-DD_Telegram (e.g., 2025-04-19_Telegram) via the Create File Name For Telegram node.  
     It saves the renamed image to the designated Google Drive folder (Google Save Files 2), also triggering the core OCR process.

  Setup

  Credentials: Add the following credentials in n8n, using the names specified in the template or your own:  
     Google OAuth2: For Google Drive, Google Sheets, Gmail.  
     Telegram: For the Telegram bot trigger  
     Gemini API Key: Obtain a free API key from Google AI Studio. You will need to paste this key directly into the Query Parameters of the Gemini API (HTTP Request) node in the workflow.  
  Google Drive: Create a specific folder in your Google Drive where all invoices/receipts will be stored and processed from. Update the target Folder in the Google Drive Trigger New Files, Google Drive Save Files, and Google Save Files 2 nodes to use your designated folder.  
  Google Sheets: Create a new Google Sheet, or clone this Sheet template. Ensure it has columns matching the desired output fields (see default list below, including Currency). Update the target Spreadsheet and Sheet Name in the Add to Google Sheets node to point to your sheet.  
  Gmail (Optional): Create a label in Gmail (e.g., "receipts"). Update the Label filter in the Gmail Trigger node to use the label you created. Consider setting up filters in Gmail to automatically apply this label to relevant emails.  
  Telegram (Optional): Configure the Telegram Trigger Image node with your bot credentials.  
  Gemini API Node: Open the Gemini API (HTTP Request) node. In the "Query Parameters" section, replace the placeholder API key with your actual Gemini API Key. Verify the URL uses the correct model name by referencing the Prompt node's model value (gemini-2.0-flash by default).  
  Customize Prompt: Open the Prompt (Set) node.  
     Crucially, change the first line "My company is Sisu Digital..." to reflect your company or remove it if not needed.  
     Review the list of categories and the specific formatting instructions (e.g., comma for decimals, no currency symbols, date format, "N/A" for notes) to ensure they match your requirements. You can adjust these details here.  
  Activate Workflow: Test each trigger path (Drive upload, labeled Gmail, Telegram photo) with sample files/emails/messages, then activate the workflow.

  How to customize this workflow to your needs

  Gemini Prompt/Model:* Modify the prompt text, the list of categories, or the detailed formatting instructions within the *Prompt (Set) node. You can also change the model value in the Prompt node to use a different Gemini model (ensure the model supports the API endpoint used in the HTTP Request node).  
  Extracted Fields:* Modify the prompt in the *Prompt node to extract different fields or change formatting. Update the parsing logic in the Parse string node if needed, and ensure your Google Sheet columns match in the Add to Google Sheets node. The default extracted fields (based on the updated prompt) are:  
    Invoice Date: (DD/MM/YYYY)  
    Category: (From predefined list)  
    Sender: (Issuing company)  
    Description: (Brief details)  
    Amount (0% VAT): (Net amount, comma decimal, no currency symbol)  
    VAT %: (Rate number, comma decimal, no % sign, "0,0" if none)  
    Total: (Gross amount, comma decimal, no currency symbol)  
    Currency: (Uppercase abbreviation, e.g., "EUR", "USD")  
    Note: (Relevant notes, or "N/A")  
    (Added by workflow): File Name, File URL  
  Triggers & Targets:* Enable/disable or modify the *Gmail and Telegram triggers. Select your desired Google Drive folder, Google Sheet, and Gmail label directly within the respective nodes.  
  File Naming:* Adjust the Javascript code in the *Create File Name (for Gmail) or Create File Name For Telegram nodes to change the renaming pattern. Current formats: YYYY-MM-DD_SenderUsername (Gmail), YYYY-MM-DD_Telegram (Telegram).  
  Configuration Method:** Update configuration like folders, sheets, and labels directly within the relevant nodes. For easier management of multiple settings, consider adding a central 'Set' node at the beginning of the workflow to define these values and use expressions to reference them in other nodes.

  Important Considerations

  AI Accuracy:** AI models can make mistakes. Always review the data extracted into Google Sheets for accuracy, especially with specific formatting like decimal separators. This workflow automates heavily but requires final verification.  
  Gemini API Usage:* This template uses the *Gemini API via HTTP Request. Be mindful of Google's API rate limits, usage policies, and potential costs associated with the model used (gemini-2.0-flash by default), especially if you change it. Monitor Google's terms.  
  Loops and Waits:* The workflow uses *SplitInBatches and Wait nodes to process items individually and pause execution, which helps prevent hitting API rate limits but processes files sequentially rather than in parallel.

  Support Disclaimer

  This workflow is provided as-is for your convenience. Use it responsibly, and feel free to build upon it for your unique needs\!  
  This workflow has been thoroughly tested and is confirmed to be working flawlessly at the time of release. However, setup complexity or unexpected errors may occur depending on your environment, customizations, or API changes.  
  Please note that I cannot offer personalized support or troubleshooting for this template (without a fee\!). If you encounter an issue, feel free to send me a message describing the problem. If the issue is determined to be a genuine bug within the shared template, I will do my best to fix it and update the workflow. Otherwise, the issue is likely due to a setup misconfiguration or modification on your side. In those cases, I recommend using ChatGPT or referring to n8n documentation to debug the problem.

nodes_used:
  ["n8n-nodes-base.set","n8n-nodes-base.extractFromFile","n8n-nodes-base.httpRequest","n8n-nodes-base.set","n8n-nodes-base.code","n8n-nodes-base.googleSheets","n8n-nodes-base.googleDrive","n8n-nodes-base.telegramTrigger","n8n-nodes-base.gmailTrigger","n8n-nodes-base.code","n8n-nodes-base.splitInBatches","n8n-nodes-base.if","n8n-nodes-base.splitInBatches","n8n-nodes-base.wait","n8n-nodes-base.splitInBatches","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.googleDriveTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.googleDrive","n8n-nodes-base.googleDrive","n8n-nodes-base.wait","n8n-nodes-base.stickyNote"]

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

metadata_json:
  {"categories":["automation","integration","data processing","OCR","bookkeeping"],"complexity":"medium","use_cases":["Automated invoice and receipt data extraction","Populate Google Sheets with structured bookkeeping data","Ingest attachments from Google Drive, Gmail, and Telegram","Reduce manual bookkeeping and data-entry errors","Expense tracking and accounting prep"],"estimated_setup_minutes":30,"required_services":["n8n","Google Drive (OAuth2)","Google Sheets (OAuth2)","Gmail (OAuth2) - optional","Telegram Bot (optional)","Gemini API / Google AI Studio (HTTP API key)"],"key_features":["Multi-source triggers: Drive, Gmail label, Telegram images","Gemini OCR via HTTP request with custom prompt for structured JSON","SplitInBatches + Wait nodes for rate-limit management","Auto file rename and save to Drive to standardize inputs","Parse OCR JSON and append rows to Google Sheets with file link/name fields included and currency handling format rules"],"target_audience":["Entrepreneurs","Small business owners","Freelancers and contractors`,`Bookkeepers and accountants`,`Operations/finance teams`,`Developers or automation builders integrating OCR into workflows"]}


name: Translate SRT Files with Google Translate
author_name: DanielV
author_username: danielv
categories: []
created_at: 2025-04-20T10:09:18.893Z
updated_at: 2025-04-20T10:09:18.893Z
url: https://n8n.io/workflows/3620
scraped_at: 2025-09-14 19:11:02
metadata_generated_at: 2025-09-14 21:18:32
description:
  This workflow is designed to translate SRT subtitle files from one language to another using Google Translate.

  The workflow follows these main steps:

  Accept an SRT file upload and target language selection
  Extract and parse the SRT file content
  Split the content into translatable segments
  Translate each segment using Google Translate
  Reassemble the translated content into a proper SRT format
  Return the translated file to the user

  You'll need a Google Console Cloud account to access the Translate API.

  Who is this for?

  This workflow is designed for content creators, video editors, translators, and anyone who needs to translate subtitle files (.srt) from one language to another. It's particularly useful for those working with international content, educational materials, or preparing videos for global audiences.

  What problem does this workflow solve?

  Translating subtitle files manually is time-consuming and error-prone. Professional translation services can be expensive, especially for multiple videos or long content. This workflow automates the translation process while maintaining the proper SRT format including timestamps and subtitle numbering.

  Setup

  Set up Google Translate credentials:
  -- Create a Google Cloud project and enable the Google Translate API
  -- Create OAuth credentials and configure them in the Google Translate node
  Customize language options:
  -- The default workflow includes English (EN) and Japanese (JP) options
  -- Add more language options by editing the dropdown field in the "Receive SRT File to Translate" node
  -- Use standard language codes that Google Translate supports
  Add more languages:
  -- Edit the form trigger node to include additional language options in the dropdown

nodes_used:
  ["n8n-nodes-base.splitOut","n8n-nodes-base.googleTranslate","n8n-nodes-base.aggregate","n8n-nodes-base.set","n8n-nodes-base.convertToFile","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.form","n8n-nodes-base.formTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.extractFromFile","n8n-nodes-base.code"]

workflow_json_compressed:
  [encoded data, 4936 characters]

metadata_json:
  {"categories":["automation","integration","localization","data processing"],"complexity":"medium","use_cases":["Translate SRT subtitle files between languages","Localize video content for international audiences","Bulk or automated subtitle translation for courses/tutorials","Quick subtitle translation for editors and creators"],"estimated_setup_minutes":30,"required_services":["Google Cloud Translate API (Google Cloud Console account with credentials)"],"key_features":["Accept SRT file upload and target language selection","Parse SRT and split text into translatable segments","Translate each segment via Google Translate API","Reassemble translated segments into valid SRT (timestamps and numbering preserved)","Return translated .srt file to user"],"target_audience":["Content creators","Video editors","Translators and localization teams','Educators and course creators"]}


name: Send Hourly Crypto Market Analysis from Binance to Telegram
author_name: Aurélien P.
author_username: aurelienpp
categories: []
created_at: 2025-04-20T14:40:50.131Z
updated_at: 2025-04-20T14:40:50.131Z
url: https://n8n.io/workflows/3621
scraped_at: 2025-09-14 19:11:01
metadata_generated_at: 2025-09-14 21:18:32
description:
  📈 Daily Crypto Market Summary Bot (Binance to Telegram)

  This workflow fetches 24h price change data from Binance for selected crypto pairs (BTC/USDC, ETH/USDC, SOL/USDC) every hour using a cron schedule.  
  It performs in-depth analysis—including volatility, volume, bid-ask spread, momentum, and market comparison—then formats a detailed market summary.  
  The final report is sent to a Telegram chat using HTML formatting, highlighting top gainers, losers, and key metrics in a clean, readable layout.

  🔑 Key Features
  ⏱ Runs every hour (cron: 5 * * * *)
  🔍 Filters and analyzes major coins: BTC, ETH, SOL
  📊 Calculates market metrics:
    Volatility
    Bid-ask spread
    Momentum
    Estimated market cap
    Market average comparison
  📈 Highlights gainers, losers, and top coins by volume
  ✂️ Splits messages to fit Telegram’s 4096 character limit
  💬 Sends output in rich HTML format to a Telegram group or chat

  🎯 Use Cases
  ✅ Crypto traders wanting hourly performance insights
  ✅ Telegram groups needing automated market updates
  ✅ Analysts monitoring key coin metrics in real-time
  ✅ Bot developers creating crypto dashboards or alerts

  🛠 Technical Details
  Data Source:** Binance 24hr ticker API (/api/v3/ticker/24hr)
  Coins Monitored:** BTCUSDC, ETHUSDC, SOLUSDC (can be expanded)
  Metrics Calculated:**
    Price change percentage
    Volatility (high vs low price)
    Bid-ask spread %
    Momentum (vs weighted average)
    Estimated market cap
    Number of trades
    Market average movement
  Message Format:**
    HTML with emojis, bold styling, and section headings
    Auto-split messages when exceeding Telegram's 4096-char limit
  Error Handling:**
    Retry on HTTP failure (up to 5 times with 5s delay)
    Message length checked and split for Telegram compatibility

  ⚙️ Setup Requirements
  Telegram Bot Token — Create a bot via @BotFather on Telegram
  Chat ID — Use a personal ID or group chat ID (add the bot to the group)
  n8n Instance — Either cloud or self-hosted
  (Optional) Modify relevantSymbols in the Function node to track different coins

  🧠 Notes
  This workflow is highly customizable—feel free to modify the analytics, tracked pairs, or formatting.
  Great base for alerting systems or crypto dashboards.

  📷 Example Output (Telegram)
  📊 Crypto Market Summary — 2025-04-20 14:05:05 UTC

  🌐 Market Overview (BTC, ETH, SOL)
  Average Change: -1.54%
  24h Volume: $850,358,765.46
  Most Volatile: SOLUSDC (4.53%)
  Most Liquid: BTCUSDC (0.0000% spread)

  💹 Top by Volume
  ETHUSDC: $403,860,356.75 | -1.640%
  SOLUSDC: $279,241,338.60 | -1.706%
  BTCUSDC: $167,257,070.12 | -1.261%

  📉 Losers

  SOLUSDC
  🔻 Change: -1.71% (24h)
  💰 Current: $137.10
  📊 Range: $135.82 - $141.97
  📈 Volatility: 4.53%
  🔄 Volume: 2.01M | $279,241,338.60
  ⚖️ Bid-Ask Spread: 0.0073%
  ⬇️ vs Market Avg: -0.17%
  🔽 Momentum: -1.42%
  🔢 Trades: 366,119

  ETHUSDC
  🔻 Change: -1.64% (24h)
  💰 Current: $1,577.42
  📊 Range: $1,565.60 - $1,631.98
  📈 Volatility: 4.24%
  🔄 Volume: 252.11K | $403,860,356.75
  ⚖️ Bid-Ask Spread: 0.0044%
  ⬇️ vs Market Avg: -0.10%
  🔽 Momentum: -1.53%
  🔢 Trades: 596,801

  BTCUSDC
  🔻 Change: -1.26% (24h)
  💰 Current: $84,336.65
  📊 Range: $83,963.35 - $85,634.50
  📈 Volatility: 1.99%
  🔄 Volume: 1.97K | $167,257,070.12
  ⚖️ Bid-Ask Spread: 0.0000%
  ⭐ vs Market Avg: 0.27%
  🔽 Momentum: -0.68%
  🔢 Trades: 124,202

nodes_used:
  ["n8n-nodes-base.scheduleTrigger","n8n-nodes-base.httpRequest","n8n-nodes-base.telegram","n8n-nodes-base.function","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, 4984 characters]

metadata_json:
  {"categories":["automation","crypto","monitoring","messaging","data-processing"],"complexity":"medium","use_cases":["Hourly crypto performance notifications","Telegram market summary bots for communities","Real-time monitoring for traders and analysts","Building alerting systems or crypto dashboards"],"estimated_setup_minutes":15,"required_services":["Binance API (24hr ticker)","Telegram Bot API (Bot token & Chat ID)","n8n instance (cloud or self-hosted)"],"key_features":["Cron-driven hourly schedule","Fetches Binance 24h ticker for selected pairs (BTC/USDC, ETH/USDC, SOL/USDC)","Calculates metrics: price change %, volatility, bid-ask spread %, momentum, estimated market cap, trade count","Identifies top gainers/losers and top-by-volume","Formats rich HTML messages with emojis and sections for Telegram groups/chats','Auto-splits messages to respect Telegram 4096-char limit','Retry logic on HTTP failures (up to 5 attempts with delay)','Customizable tracked symbols in function node"],"target_audience":["Crypto traders","Telegram group admins/moderators","Market analysts/data analysts monitoring crypto metrics\",\"Bot developers/integrators"]}


