# templates

name: Generate Cinematic Videos from Text Prompts with GPT-4o, Fal.AI Seedance & Audio
author_name: Jaruphat J.
author_username: jaruphatj
categories: []
created_at: 2025-07-07T09:21:49.644Z
updated_at: 2025-07-07T09:21:49.644Z
url: https://n8n.io/workflows/5741
scraped_at: 2025-12-24 13:02:41
description:
  Who’s it for?

  This workflow is built for:
  AI storytellers, **content creators, YouTubers, and short-form video marketers
  Anyone looking to transform text prompts into cinematic AI-generated videos fully automatically
  Educators, **trainers, or agencies creating story-based visual content at scale

  What It Does

  This n8n workflow allows you to automatically turn a simple text prompt into a multi-scene cinematic video, using the powerful Fal.AI Seedance V1.0 model (developed by ByteDance — the creators of TikTok).

  It combines the creativity of GPT-4o, the motion synthesis of Seedance, and the automation power of n8n to generate AI videos with ambient sound and publish-ready format.

  How It Works

  Accepts a prompt from Google Sheets (configurable fields like duration, aspect ratio, resolution, scene count)
  Uses OpenAI GPT-4o to write a vivid cinematic narrative
  Splits the story into n separate scenes
  For each scene:
     GPT generates a structured cinematic description (characters, camera, movement, sound)
     The Seedance V1.0 model (via Fal.AI API) renders a 5s animated video
     Optional: Adds ambient audio via Fal’s MM-Audio model
  Finally:
     Merges all scene videos using Fal’s FFmpeg API
     Optionally uploads to YouTube automatically

  Why This Is Special

  Fal.AI Seedance V1.0** is a highly advanced motion video model developed by ByteDance, capable of generating expressive, stylized 5–6 second cinematic clips from text.
  This workflow supports full looping, scene count validation, and wait-polling for long render jobs.
  The entire story, breakdown, and scene design are AI-generated — no manual effort needed.
  Output is export-ready: MP4 with sound, ideal for YouTube Shorts, Reels, or TikTok.

  Requirements

  n8n (Self-hosted recommended)
  API Keys:
    Fal.AI (https://fal.ai)
    OpenAI (GPT-4o or 3.5)
    Google Sheets Example Google Sheet

  How to Set It Up

  Clone the template into your n8n instance
  Configure credentials:
     Fal.AI Header Token
     OpenAI API Key
     Google Sheets OAuth2
     (Optional) YouTube API OAuth
  Prepare a Google Sheet with these columns:
     story (short prompt)
     number_of_scene
     duration (per clip)
     aspect_ratio, resolution, model
  Run manually or trigger on Sheet update.

  How to Customize

  Modify the storytelling tone in GPT prompts (e.g., switch to fantasy, horror, sci-fi)
  Change Seedance model params like style or seed
  Add subtitles or branding overlays to final video
  Integrate LINE, Notion, or Telegram for auto-sharing

  Example Output

  Prompt: “A rabbit flies to the moon on a dragonfly and eats watermelon together”  
  → Result: 3 scenes, each 5s, cinematic camera pans, soft ambient audio, auto-uploaded to YouTube
  Result

nodes_used:
  ["@n8n/n8n-nodes-langchain.outputParserStructured","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.splitOut","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.wait","n8n-nodes-base.httpRequest","n8n-nodes-base.switch","n8n-nodes-base.httpRequest","n8n-nodes-base.splitInBatches","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.wait","n8n-nodes-base.switch","n8n-nodes-base.splitInBatches","n8n-nodes-base.httpRequest","n8n-nodes-base.wait","n8n-nodes-base.switch","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.aggregate","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.manualTrigger","n8n-nodes-base.googleSheets","n8n-nodes-base.code","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.httpRequest","n8n-nodes-base.if","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.youTube","n8n-nodes-base.httpRequest"]

workflow_json_compressed:
  [encoded data, 8488 characters]


name: Scrape Google Maps Leads (Email, Phone, Website) using Apify + GPT + Airtable
author_name: Baptiste Fort
author_username: baptistefort
categories: []
created_at: 2025-07-07T10:32:31.795Z
updated_at: 2025-07-07T10:32:31.795Z
url: https://n8n.io/workflows/5743
scraped_at: 2025-12-24 13:02:44
description:
  Who is it for?

  This workflow is for marketers, sales teams, and local businesses who want to quickly collect leads (business name, phone, website, and email) from Google Maps and store them in Airtable.

  You can use it for real estate agents, restaurants, therapists, or any local niche.

  If you need a professional automation agency to build advanced lead generation systems like this, check out Vision IA's n8n automation services.

  How it works

  Scrape Google Maps with Apify Google Maps Extractor.
  Clean and structure the data (name, address, phone, website).
  Visit each website and retrieve the raw HTML.
  Use GPT to extract the most relevant email from the site content.
  Save everything to Airtable for easy filtering and future outreach.

  It works for any location or keyword – just adapt the input in Apify.

  Requirements

  Before running this workflow, you’ll need:

  ✅ Apify account (to use the Google Maps Extractor)
  ✅ OpenAI API key (for GPT email extraction)
  ✅ Airtable account & base with the following fields:
    Business Name
    Address
    Website
    Phone Number
    Email
    Google Maps URL

  Airtable Structure

  Your Airtable base should contain these columns:

  Airtable Structure

  | Title                   | Street                  | Website            | Phone Number    | Email                  | URL                  |
  |-------------------------|-------------------------|--------------------|-----------------|------------------------|----------------------|
  | Paris Real Estate Agency| 10 Rue de Rivoli, Paris | https://agency.fr  | +33 1 23 45 67  | contact@agency.fr      | maps.google.com/...  |
  | Example Business 2      | 25 Avenue de l’Opéra    | https://example.fr | +33 1 98 76 54  | info@example.fr        | maps.google.com/...  |
  | Example Business 3      | 8 Boulevard Haussmann   | https://demo.fr    | +33 1 11 22 33  | contact@demo.fr        | maps.google.com/...  |

  Error Handling

  Missing websites:** If a business has no website, the flow skips the scraping step.
  No email found:** GPT returns Null if no email is detected.
  API rate limits:** Add a Wait node between requests to avoid Apify/OpenAI throttling.



  Now let’s take a detailed look at how to set up this automation, using real estate agencies in Paris as an example.

  Step 1 – Launch the Google Maps Scraper

  Start with a When clicking Execute workflow trigger to launch the flow manually.

  Then, add an HTTP Request node with the method set to POST.

  👉 Head over to Apify: Google Maps Extractor



  On the page: https://apify.com/compass/google-maps-extractor

  Enter your business keyword (e.g., real estate agency, hairdresser, restaurant)

  Set the location you want to target (e.g., Paris, France)

  Choose how many results to fetch (e.g., 50)

  Optionally, use filters (only places with a website, by category, etc.)

  ⚠️ No matter your industry, this works — just adapt the keyword and location.

  Once everything is filled in:

  Click Run to test.

  Then, go to the top right → click on API.

  Select the API endpoints tab.

  Choose Run Actor synchronously and get dataset items.



  Copy the URL and paste it into your HTTP Request (in the URL field).

  Then enable:

  ✅ Body Content Type → JSON
  ✅ Specify Body Using JSON`

  Go back to Apify, click on the JSON tab, copy the entire code, and paste it into the JSON body field of your HTTP Request.



  At this point, if you run your workflow, you should see a structured output similar to this:

  title  
  subTitle  
  price  
  categoryName  
  address  
  neighborhood  
  street  
  city  
  postalCode
  ........

  Step 2 – Clean and structure the data



  Once the raw data is fetched from Apify, we clean it up using the Edit Fields node.

  In this step, we manually select and rename the fields we want to keep:

  Title → {{ $json.title }}

  Address → {{ $json.address }}

  Website → {{ $json.website }}

  Phone → {{ $json.phone }}

  URL → {{ $json.url }}*

  This node lets us keep only the essentials in a clean format, ready for the next steps.
  On the right: a clear and usable table, easy to work with.

  Step 3 – Loop Over Items



  Now that our data is clean (see step 2), we’ll go through it item by item to handle each contact individually.

  The Loop Over Items node does exactly that:

  it takes each row from the table (each contact pulled from Apify) and runs the next steps on them, one by one.

  👉 Just set a Batch Size of 20 (or more, depending on your needs).

  Nothing tricky here, but this step is essential to keep the flow dynamic and scalable.

  Step 4 – Edit Field (again)



  After looping through each contact one by one (thanks to Loop Over Items), we're refining the data a bit more.

  This time, we only want to keep the website.

  We use the Edit Fields node again, in Manual Mapping mode, with just:

  Website → {{ $json.website }}

  The result on the right? A clean list with only the URLs extracted from Google Maps.

  🔧 This simple step helps isolate the websites so we can scrape them one by one in the next part of the flow.

  Step 5 – Scrape Each Website with an HTTP Request



  Let’s continue the flow: in the previous step, we isolated the websites into a clean list. Now, we’re going to send a request to each URL to fetch the content of the site.

  ➡️ To do this, we add an HTTP Request node, using the GET method, and set the URL as:

  {{ $json.website }} This value comes from the previous Edit Fields input

  This node will simply “visit” each website automatically and return the raw HTML code (as shown on the right).

  📄 That’s the material we’ll use in the next step to extract email addresses (and any other useful info).

  We’re not reading this code manually — we’ll scan through it line by line to detect patterns that matter to us.

  This is a technical but crucial step: it’s how we turn a URL into real, usable data. 

  Step 6 – Extract the Email with GPT



  Now that we've retrieved all the raw HTML from the websites using the HTTP Request node, it's time to analyze it.

  💡 Goal: detect the most relevant email address on each site (ideally the main contact or owner).

  👉 To do that, we’ll use an OpenAI node (Message a Model). Here’s how to configure it:

  ⚙️ Key Parameters:
  Model: GPT-4-1-MINI (or any GPT-4+ model available)

  Operation: Message a Model

  Resource: Text

  Simplify Output: ON

  Prompt (message you provide):

  Look at this website content and extract only the email I can contact this business. In your output, provide only the email and nothing else. Ideally, this email should be of the business owner, so if you have 2 or more options, try for most authoritative one. If you don't find any email, output 'Null'.

  Exemplary output of yours:

  name@examplewebsite.com

  {{ $json.data }} 

  Step 7 – Save the Data in Airtable



  Once we’ve collected everything — the business name, address, phone number, website… 

  and most importantly the email extracted via ChatGPT — we need to store all of this somewhere clean and organized.

  👉 The best place in this workflow is Airtable.

  📦 Why Airtable?
  Because it allows you to:

  Easily view and sort the leads you've scraped

  Filter, tag, or enrich them later

  And most importantly… reuse them in future automations

  ⚙️ What we're doing here
  We add an Airtable → Create Record node to insert each lead into our database.

  Inside this node, we manually map each field with the data collected in the previous steps:



  | Airtable Field | Description              | Value from n8n                             |
  | -------------- | ------------------------ | ------------------------------------------ |
  | Title        | Business name            | {{ $('Edit Fields').item.json.Title }}   |
  | Street       | Full address             | {{ $('Edit Fields').item.json.Address }} |
  | Website      | Website URL              | {{ $('Edit Fields').item.json.Website }} |
  | Phone Number | Business phone number    | {{ $('Edit Fields').item.json.Phone }}   |
  | Email        | Email found by ChatGPT   | {{ $json.message.content }}              |
  | URL          | Google Maps listing link | {{ $('Edit Fields').item.json.URL }}     |

  🧠 Reminder: we’re keeping only clean, usable data — ready to be exported, analyzed, or used in cold outreach campaigns (email, CRM, enrichment, etc.).

  ➡️ And the best part? You can rerun this workflow automatically every week or month to keep collecting fresh leads 🔁.

  Need Help Building an Automated Lead Generation System?

  This workflow is a solid foundation for scraping Google Maps and extracting contact emails automatically. If you want to go further with AI-powered lead qualification, multi-channel outreach, and automatic follow-ups, our agency builds custom lead generation systems that run 24/7.

  👉 Explore our lead generation automation services: Vision IA – Automated Lead Generation Agency

  We help B2B companies and agencies scale their prospecting without hiring more people—everything from data collection to booking qualified meetings happens on autopilot.

  Questions about this workflow or other automation solutions? Visit Vision IA or reach out for a free consultation.

nodes_used:
  ["n8n-nodes-base.httpRequest","n8n-nodes-base.set","n8n-nodes-base.manualTrigger","n8n-nodes-base.splitInBatches","n8n-nodes-base.set","n8n-nodes-base.httpRequest","@n8n/n8n-nodes-langchain.openAi","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"]

workflow_json_compressed:
  [encoded data, 6176 characters]


name: Auto-Generate and Auto-Fill Business Documents with Google Sheets & Gmail
author_name: Davide
author_username: n3witalia
categories: []
created_at: 2025-07-07T10:59:29.201Z
updated_at: 2025-07-07T10:59:29.201Z
url: https://n8n.io/workflows/5745
scraped_at: 2025-12-24 13:02:41
description:
  This workflow automates the generation and delivery of personalized business documents (e.g., contracts, job offers, invoices, pay slips) in PDF format. The data source is a Google Sheet, and the documents are created using CraftMyPDF, then uploaded to Google Drive and optionally sent via email.

  This workflow is ideal for bulk document generation (contracts, invoices, etc.) with minimal manual intervention.

  Benefits

  Fully Automated**: Once triggered, it handles the whole pipeline end-to-end—no manual editing or document creation needed.
  Customizable**: Works with any type of business document as long as you provide a CraftMyPDF template.
  Scalable**: Processes multiple entries in batch, ideal for HR departments or finance teams.
  Integrated**: Seamlessly connects Google Sheets, CraftMyPDF, Google Drive, and Gmail.
  Trackable**: Updates the original spreadsheet to keep track of which documents have been processed.

  Requirements

  Self-hosted n8n instance (required for some advanced node usage).
  Google Sheet template with columns like: FIRST NAME, LAST NAME, ADDRESS, etc.
  A CraftMyPDF account with a ready-made template.
  Google OAuth2 credentials for Sheets, Drive, and Gmail integrations.

  How It Works  
  Trigger & Data Fetch:  
     The workflow starts with a manual trigger ("When clicking ‘Execute workflow’").  
     It retrieves employee data from a Google Sheet ("Get employees"), filtering rows where the "DONE" column is empty.  

  PDF Generation & Processing:  
     The "Loop Over Items" node processes each employee record individually.  
     The "Create agreement" node uses CraftMyPDF to generate a PDF contract, populating it with employee details (name, address, email, etc.).  
     A conditional node ("Success?") checks if PDF creation was successful.  

  PDF Handling & Notifications:  
     The PDF is fetched ("Get agreement") and uploaded to Google Drive ("Upload agreement") with a filename like [First-Name]-[Last-Name].pdf.  
     An email with the PDF attachment is sent to the employee via Gmail ("Send email with PDF").  

  Tracking & Completion:  
     The Google Sheet row is updated with "x" in the "DONE" column ("Update row") to mark completion.  
     The workflow merges results and loops until all records are processed.  

  Set Up Steps  
  Prerequisites:  
     Use the self-hosted version of n8n (required for this workflow).  
     Clone the provided Google Sheet template.  

  Configure CraftMyPDF:  
     Create an account on CraftMyPDF.  
     Design a PDF template and note its Template ID. Insert this ID in the "Create agreement" node.  

  Credentials Setup:  
     Connect nodes to:  
       Google Sheets (to fetch/update data).  
       Google Drive (to store PDFs).  
       Gmail (to send emails).  
       CraftMyPDF (for PDF generation).  

  Customization:  
     Adjust field mappings in the "Create agreement" node to match your PDF template placeholders.  
     Modify the email template in "Send email with PDF" as needed.  

  Execution:  
     Run the workflow manually. It will process all rows lacking a "DONE" marker, generating PDFs, sending emails, and updating the sheet automatically.  

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

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.splitInBatches","n8n-nodes-base.googleSheets","n8n-nodes-craftmypdf.craftMyPdf","n8n-nodes-base.httpRequest","n8n-nodes-base.googleDrive","n8n-nodes-base.googleSheets","n8n-nodes-base.stickyNote","n8n-nodes-base.if","n8n-nodes-base.stickyNote","n8n-nodes-base.merge","n8n-nodes-base.gmail"]

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


name: Manage KlickTipp Contacts via Telegram Bot with GPT-5 mini Agent
author_name: KlickTipp
author_username: KlickTipp
categories: []
created_at: 2025-07-07T11:57:42.512Z
updated_at: 2025-07-07T11:57:42.512Z
url: https://n8n.io/workflows/5747
scraped_at: 2025-12-24 13:02:45
description:
  Community Node Disclaimer: This workflow uses KlickTipp community nodes.

  How It Works

  AI Agent and KlickTipp Tools Integration via Telegram:
  This component connects a large language model (LLM), such as Claude or OpenAI, to the KlickTipp contact management platform through Telegram messaging. The AI Agent interprets natural language queries received from Telegram and dynamically maps them to KlickTipp API operations, enabling intuitive and automated contact handling through a familiar messaging interface.

  Key Features

  Telegram & LLM Interaction Setup:
  Captures messages received via Telegram bot as an alternative to the chat message node.
  Maintains conversation state using a memory buffer tied to Telegram chat IDs.
  Interprets user input using an LLM (Claude or OpenAI).
  Routes interpreted commands to specific KlickTipp tools based on detected intent.
  Sends responses back to Telegram users with operation results.


  KlickTipp Integration:
  Complete set of KlickTipp API endpoints included:
  Contact Management:** Add, update, get, list, delete, and unsubscribe contacts.
  Contact Tagging:** Tag, untag, list tagged contacts.
  Tag Operations:** Create, get, update, delete, list tags.
  Opt-In Processes:** List and retrieve opt-in process details.
  Data Fields:** List and get custom data fields.
  Redirects:** Retrieve redirect URLs.


  Use Cases Supported:
  Query contact information via email or name through Telegram messages.
  Identify and segment contacts by city, region, or behavior via Telegram commands.
  Create or update contacts from data provided in Telegram messages.
  Dynamically apply or remove tags to initiate campaigns through Telegram bot interactions.
  Automate targeted outreach based on contact attributes using Telegram as the control interface.

  Setup Instructions

  Install and Configure Nodes:
  Set up a Telegram bot using BotFather and obtain the bot token.
  Configure the Telegram Trigger node in n8n with your bot token.
  Configure the LLM model (e.g., OpenAI or Claude) and memory node if used.
  Connect all required KlickTipp nodes and authenticate using valid API credentials.
  Activate the workflow.


  Define Tagging and Field Mapping:
  Identify which fields and tags are relevant to your use cases.
  Ensure necessary tags and custom fields are already created in KlickTipp.


  Workflow Logic:
  Trigger via Telegram: A message is received by the Telegram bot and passed to the AI Agent.
  Query Handling via LLM Agent: AI interprets the natural language input and determines the action.
  Contact Search & Segmentation: Searches contacts using identifiers (email, address) or criteria.
  Data Operations: Retrieves, updates, or manages contact and tag data based on interpreted command.
  Campaign Preparation: Applies tags or sends campaign triggers depending on query results.
  Response via Telegram: Sends formatted results back to the Telegram user.


  Benefits:
  Mobile-First Interface:** Users can manage KlickTipp contacts directly from Telegram on any device.
  AI-Powered Automation:** Reduces manual contact search and tagging efforts through intelligent processing.
  Scalable Integration:** Built-in support for full range of KlickTipp operations allows diverse use-case handling.
  Data Consistency:** Ensures structured data flows between Telegram, AI, and KlickTipp, minimizing errors.


  Testing and Deployment:
  Use defined Telegram messages such as:
  “Tell me something about the contact with email address X”
  “Tag all contacts from region Y”
  “Send campaign Z to customers in area A”


  Validate expected actions in KlickTipp after message execution and confirm responses in Telegram.


  Notes:
  Customization:** Adjust tag logic, AI prompts, and contact field mappings based on project needs.
  Extensibility:** The template can be expanded with further logic for Google Sheets input or campaign feedback loops

  Resources:  
  Use KlickTipp Community Node in n8n
  Automate Workflows: KlickTipp Integration in n8n

nodes_used:
  ["@n8n/n8n-nodes-langchain.chatTrigger","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.memoryBufferWindow","n8n-nodes-base.stickyNote","n8n-nodes-klicktipp.klicktippTool","n8n-nodes-klicktipp.klicktippTool","n8n-nodes-klicktipp.klicktippTool","n8n-nodes-klicktipp.klicktippTool","n8n-nodes-klicktipp.klicktippTool","n8n-nodes-klicktipp.klicktippTool","n8n-nodes-klicktipp.klicktippTool","n8n-nodes-klicktipp.klicktippTool","n8n-nodes-klicktipp.klicktippTool","n8n-nodes-klicktipp.klicktippTool","n8n-nodes-klicktipp.klicktippTool","n8n-nodes-klicktipp.klicktippTool","n8n-nodes-klicktipp.klicktippTool","n8n-nodes-klicktipp.klicktippTool","n8n-nodes-klicktipp.klicktippTool","n8n-nodes-klicktipp.klicktippTool","n8n-nodes-klicktipp.klicktippTool","n8n-nodes-klicktipp.klicktippTool","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-klicktipp.klicktippTool","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.toolCode","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.toolCode","n8n-nodes-base.telegramTrigger","n8n-nodes-base.telegram","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.telegram","n8n-nodes-base.noOp","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.switch","n8n-nodes-base.switch","n8n-nodes-klicktipp.klicktippTool"]

workflow_json_compressed:
  [encoded data, 14964 characters]


name: Create a Slack AI Chatbot with Threads & Thinking UI using OpenRouter & Postgres
author_name: James Francis
author_username: paperjam
categories: []
created_at: 2025-07-07T15:40:56.405Z
updated_at: 2025-07-07T15:40:56.405Z
url: https://n8n.io/workflows/5749
scraped_at: 2025-12-24 13:02:41
description:
  Overview

  Slack quietly released an update to their API that allows developers to build "AI Apps & Agents", which is a special classification of apps that have access to several special capabilities including:
  Multiple simultaneous chat threads with one user 
  Loading "three dots" UI while your agent is thinking
  Option for users to pin your app to their top bar for quick chat access

  This workflow demonstrates how to build a Slack agent that takes advantage of all of these features.

  For a full video walkthrough of this workflow, watch this YouTube tutorial.

  Setup Instructions

  All of the below steps are required for this workflow to function properly unless otherwise noted.

  Create a Slack App
  Visit api.slack.com and click "Your Apps"
  Create a new app from scratch and follow the setup instructions
  In the Agents & AI Apps tab, enable the toggle and give your app a brief description
  In the OAuth & Permissions tab, enable the following bot token scopes:
  	assistant:write
  	chat:write
  	channels:read
  	im:history
  Install the app into your workspace and grant the requested permissions
  In your Slack workspace, right click your app's name in the sidebar, click "View app details", and make note of your apps Channel ID - you'll need this later.
  Copy your app's Bot User OAuth Token - you'll need that to create your n8n credentials
  In the Event Subscriptions tab, enable events and paste the workflows PRODUCTION webhook url (from this workflow's trigger node) into the input.
  In the same tab under "Susbcribe to bot events", select message.im

  Create a Postgres database
  In order to save the chat history and give your agent a working memory, you'll need your own Postgres database. You can use Supabase, Neon, or any other Postgres database provider. Once you've added your database's credentials to n8n, you can select those credentials in the Postgres Chat Memory node. This worklow saves all chat history in a table called chat_histories, but you name the table whatever you want.

  Create n8n Credentials
  You'll need to create the following credentials:
  Slack API. Use your Bot User OAuth Token referenced above.
  Bearer Auth. Use the same Bot User OAuth Token. 
  Postgres. Use the connection string or config from your database provider.
  OpenRouter (or any other LLM model for the agent's model node)

  Wire Everything Up
  Now that you've created your Slack app, have your Postgres database, and have created credentials, follow these steps to wire up your workflow:
  In the "On Message Received" trigger, use your Slack API credential and enter your apps Channel ID in the "Channel To Watch" field.
  In the "Set Thinking Status" node, use your Bearer Auth credential.
  In the "Postgres Chat Memory" node, use your Postgres credential.
  In the "Send Reply" node, use your Slack API credential.

  Using the Chatbot
  Once you've completed the setup process and added in your credentials, you'll have a fully functional Slack chatbot complete with threads, loading UI, and the ability to pin your app to your workspace's top bar. 

  Taking the Next Steps
  Now that this skeleton app is in place, it's up to you to add horsepower to the AI agent at the center of it all. Customize the prompts and add whatever tools you'd like. The sky is the limit!

  If you have any questions or feedback about this workflow, or would like me to build custom workflows for your business, email me at n8n@paperjam.agency.

nodes_used:
  ["@n8n/n8n-nodes-langchain.lmChatOpenRouter","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.noOp","n8n-nodes-base.slackTrigger","n8n-nodes-base.if","n8n-nodes-base.httpRequest","n8n-nodes-base.slack","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.memoryPostgresChat"]

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


name: YouTube Lead Generation: Turn Comments into Enriched Prospects with Apify and Gemini AI
author_name: Msaid Mohamed el hadi
author_username: mohamedgb00714
categories: []
created_at: 2025-07-07T17:49:23.011Z
updated_at: 2025-07-07T17:49:23.011Z
url: https://n8n.io/workflows/5751
scraped_at: 2025-12-24 13:02:41
description:
  Automated YouTube Leads: Turn Comments into Enriched Prospects

  Workflow Overview

  This cutting-edge n8n workflow is a powerful automation tool designed to revolutionize how businesses and marketers identify and qualify leads directly from YouTube video comments. By leveraging specialized Apify Actors and an intelligent AI agent, this workflow seamlessly transforms raw comment data into comprehensive lead profiles, saving valuable time and resources.

  This workflow automatically:

    Discovers & Scrapes Comments:

        Monitors a Google Sheet for new YouTube video URLs.
        Automatically extracts all comments from specified YouTube videos using a dedicated Apify Actor.
        Marks videos as "scrapped" to avoid reprocessing.

    Intelligent Lead Enrichment:

        Retrieves unprocessed comments from Google Sheets.
        Activates an advanced AI agent (powered by OpenRouter's cutting-edge models) to research comment authors.
        Utilizes Google Search (via Serper API) and specialized Apify scrapers (for website content and Instagram profiles) to find publicly available information like social media links, bios, and potential contact details.
        Generates concise descriptions for each lead based on gathered data.

    Organized Data Storage:

        Creates new entries in a dedicated Google Sheet for each new lead.
        Updates lead profiles with all discovered enriched data (email, social media, short bio, etc.).
        Marks comments as "processed" once their authors have been researched and enriched.

  Key Benefits

  🤖 Full Automation: Eliminates manual data collection and research, freeing up your team for strategic tasks.
  💡 Smart Lead Enrichment: AI intelligently sifts through information to build rich, actionable lead profiles.
  ⏱️ Time-Saving: Instant, scalable lead generation without human intervention.
  📈 Enhanced Lead Quality: Go beyond basic contact info with comprehensive social and professional context.
  📊 Centralized Data: All leads are neatly organized in Google Sheets for easy access and integration.

  Setup Requirements

    n8n Installation:
        Install n8n (cloud or self-hosted).
        Import the workflow configuration.
        Configure API credentials.
        Set up scheduling preferences for continuous operation.
    Google Sheets Credentials:
        A Google Cloud API key with access to Google Sheets.
        Set up OAuth2 authentication in n8n for read/write access to your "youtube leads" spreadsheet (containing "videos", "comments", and "leads" sheets).
    OpenRouter API Access:
        Create an OpenRouter account.
        Generate an API key to access their chat models (e.g., google/gemini-2.5-flash-preview-05-20) for AI agent operations.
    Apify API Access:
        Create an Apify account.
        Generate a personal API token.
        This token is used to run the following Apify Actors:
            mohamedgb00714/youtube-video-comments (for comment extraction)
            mohamedgb00714/fireScraper-AI-Website-Content-Markdown-Scraper (for website content extraction)
            mohamedgb00714/instagram-full-profile-scraper (for Instagram profile details)
    Serper API Key:
        Sign up for an account on Serper.dev.
        Obtain an API key for performing Google searches to find social media profiles and other information.

  Potential Use Cases

    Content Creators: Identify highly engaged audience members for community building or direct outreach.
    Marketing Teams: Discover potential customers or influencers interacting with competitor content.
    Sales Professionals: Build targeted lead lists based on specific interests expressed in comments.
    Market Researchers: Analyze audience demographics and interests by enriching profiles of commenters on relevant videos.
    Recruiters: Find potential candidates based on their expertise or engagement in industry-specific discussions.

  Future Enhancement Roadmap

    CRM Integration: Directly push enriched leads into popular CRM systems (e.g., HubSpot, Salesforce).
    Automated Outreach: Implement automated email or social media messaging for qualified leads.
    Sentiment Analysis: Analyze comment sentiment before enrichment to prioritize positive interactions.
    Multi-Platform Support: Expand comment extraction and lead enrichment to other platforms (e.g., TikTok, Facebook).
    Advanced Lead Scoring: Develop a scoring model based on engagement, profile completeness, and relevance.

  Ethical Considerations

    Data Privacy: Ensure all collected data is publicly available and used in compliance with relevant privacy regulations (e.g., GDPR, CCPA).
    Platform Guidelines: Adhere strictly to YouTube's Terms of Service and Apify's usage policies.
    Transparency: If engaging with leads, be transparent about how their information was obtained (if applicable).
    No Spam: This tool is designed for lead identification, not for unsolicited mass messaging.

  Technical Requirements

    n8n v1.0.0 or higher (recommended for latest features and stability)
    Google Sheets API access
    OpenRouter API access
    Apify API access
    Serper API access
    Stable internet connection

  Workflow Architecture

  [YouTube Video URLs (Google Sheet)]
      ⬇️
  [Schedule/Manual Trigger]
      ⬇️
  [Extract Comments (Apify YouTube Scraper)]
      ⬇️
  [Save Raw Comments (Google Sheet)]
      ⬇️
  [AI Agent (OpenRouter) for Lead Research]
      ⬇️
  [Google Search (Serper) & Web Scraping (Apify FireScraper/Instagram Scraper)]
      ⬇️
  [Save Enriched Leads (Google Sheet)]
      ⬇️
  [Mark Comments Processed (Google Sheet)]

  Connect With Me

  Exploring AI-Powered Lead Generation?
  📧 Email: mohamedgb00714@gmail.com
  💼 LinkedIn: Mohamed el Hadi Msaid

  Transform your YouTube engagement into a powerful lead generation engine with intelligent, automated insights\!

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.httpRequest","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","@n8n/n8n-nodes-langchain.chatTrigger","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatOpenRouter","n8n-nodes-base.googleSheetsTool","@n8n/n8n-nodes-langchain.memoryBufferWindow","n8n-nodes-base.httpRequestTool","n8n-nodes-base.httpRequestTool","n8n-nodes-base.googleSheetsTool","n8n-nodes-base.googleSheetsTool","n8n-nodes-base.httpRequestTool","n8n-nodes-base.googleSheetsTool","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.code","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 13220 characters]


name: Transform Old Photos into Animated Videos with FLUX & Kling AI for Social Media
author_name: Juan Carlos Cavero Gracia
author_username: carlosgracia
categories: []
created_at: 2025-07-07T20:07:21.530Z
updated_at: 2025-07-07T20:07:21.530Z
url: https://n8n.io/workflows/5755
scraped_at: 2025-12-24 13:02:41
description:
  This workflow contains community nodes that are only compatible with the self-hosted version of n8n.

  Description

  See the transformation in action! Here's an example of what this workflow can achieve:






  This automation template is designed for content creators, social media managers, and anyone looking to breathe new life into old family photos and historical images. It transforms any old black and white or sepia photograph into a colorized, animated video using cutting-edge AI technology, then automatically publishes the results across multiple social media platforms including Facebook, Instagram, YouTube, and X (Twitter).

  The workflow combines powerful AI services to create engaging content from vintage photographs: first enhancing and colorizing the image using FLUX Kontext, then bringing it to life with realistic animations using Kling Video AI, and finally distributing the results across your social media channels automatically.



  Note: The estimated cost per workflow execution is approximately $0.29 USD, covering the AI processing for both image colorization and video animation. The upload-post node only works for self-hosted n8n instances, but you can use the standard HTTP request node for uploading content on n8n Cloud.*

  Who Is This For?
  Content Creators & Social Media Managers:** Transform historical content into engaging videos that capture audience attention and drive engagement across platforms.
  Family History Enthusiasts:** Bring old family photos to life by adding color and motion, creating emotional connections with your audience.
  Marketing Professionals:** Leverage nostalgic content for brand storytelling, using vintage aesthetics to create compelling social media campaigns.
  Digital Artists & Photo Restorers:** Streamline the process of enhancing and sharing restored vintage photographs with automated AI enhancement.
  Social Media Influencers:** Create unique, eye-catching content from historical images that stands out in crowded social feeds.

  What Problem Does This Workflow Solve?
  Creating engaging social media content from old photos typically requires multiple manual steps: photo restoration, colorization, animation, and then individual posting to each platform. This workflow addresses these challenges by:
  Automating Photo Enhancement:** Uses advanced AI (FLUX Kontext) to automatically colorize and enhance old photographs, removing artifacts and improving quality.
  Creating Dynamic Content:** Transforms static images into animated videos using Kling Video AI, making historical photos come alive with natural movements.
  Streamlining Multi-Platform Publishing:** Automatically distributes the final animated videos across Facebook, Instagram, YouTube, and X with a single workflow execution.
  Saving Time & Effort:** Eliminates the need for manual photo editing, video creation, and individual social media posting.

  How It Works
  Photo Upload: Users submit old photographs through a simple web form, with optional custom animation descriptions.
  Image Enhancement: The workflow uploads the photo to imgbb, then sends it to FLUX Kontext AI for colorization and quality enhancement.
  Animation Creation: The colorized image is processed by Kling Video AI to create a 5-second animated video with natural movements.
  Cloud Storage: The final video is automatically saved to Google Drive for backup and easy access.
  Multi-Platform Publishing: The animated video is simultaneously posted to Facebook, Instagram, YouTube, and X using the upload-post service.

  Setup
  FAL.AI API Key: Sign up at fal.ai and add your API key to the HTTP Request nodes for both FLUX Kontext and Kling Video AI services.
  ImgBB API Token: Create a free account at api.imgbb.com to get an API token for image hosting, then update the "Upload Image to imgbb" node.
  Google Drive Connection: Connect your Google Drive account to enable automatic video storage and backup.
  Upload-Post Service: Create an account at upload-post.com to get your API credentials for multi-platform social media posting.
     Important: The upload-post node currently only works with self-hosted n8n instances. For n8n Cloud users, replace the upload-post node with standard HTTP request nodes to publish to each social media platform individually.
  Form Customization: (Optional) Modify the form fields in the "Photo Upload Form" node to collect additional information or customize the user experience.

  Requirements
  Accounts:** n8n, FAL.AI, ImgBB, Google Drive, upload-post.com
  API Keys & Credentials:** FAL.AI API Key, ImgBB API Token, Google Drive OAuth2, Upload-post.com API Token & User ID
  File Types:** Supports JPG, PNG image formats for photo uploads
  Cost:** Approximately $0.29 USD per workflow execution for AI processing

  Transform your old photographs into viral social media content with this powerful AI-driven workflow that handles everything from restoration to distribution automatically.

nodes_used:
  ["n8n-nodes-base.formTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.wait","n8n-nodes-base.httpRequest","n8n-nodes-base.if","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.wait","n8n-nodes-base.httpRequest","n8n-nodes-base.if","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.googleDrive","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-upload-post.uploadPost"]

workflow_json_compressed:
  [encoded data, 5016 characters]


name: Personalized Email Automation using Google Docs, Pinecone, GPT-4o and Gmail
author_name: Belgacem Dhiflaoui
author_username: kacemdh
categories: []
created_at: 2025-07-07T22:19:36.319Z
updated_at: 2025-07-07T22:19:36.319Z
url: https://n8n.io/workflows/5757
scraped_at: 2025-12-24 13:02:41
description:
  What Problem Does This Solve? 🛠️
  This workflow automates the process of extracting information from a Google Doc, storing it in a Pinecone vector database, and using it to personalize and send emails based on user input via chat. It eliminates the manual steps of gathering recipient data, writing messages, and dispatching emails providing a fully automated, intelligent communication system.

  Perfect for teams that need to:

  Maintain dynamic contact lists

  Personalize bulk or contextual email outreach

  Use chat interfaces to trigger intelligent email actions

  Target Audience:
  Sales teams, marketing departments, HR staff, startup founders, or anyone looking to automate AI-powered communication workflows.

  What Does It Do? 🌟
  Extracts content from a Google Docs document (e.g., a list of contacts or structured notes)

  Splits, embeds, and stores that content in Pinecone for semantic search

  Listens for incoming chat messages using n8n's chatTrigger

  Uses LangChain agents with OpenAI to:

     Search Pinecone for contextually relevant information (e.g., email addresses)

     Compose personalized emails based on instructions

  Sends emails using the Gmail API, triggered dynamically from the AI output
  Key Features 📋
  Google Docs integration for live document data

  Embedding & vector search with Pinecone for AI lookups

  Custom LangChain agents with tool calling logic (search + send)

  Full support for OpenAI models (GPT-4o)

  Personalized email generation with dynamic name and message filling

  Modular design: plug-and-play with other tools like CRMs, Notion, etc.

  Setup Instructions

  Prerequisites 
  n8n Instance:** Self-hosted or cloud instance

  Google Docs Account:** For reading input content

  Pinecone Account:** For storing document data semantically

  OpenAI Account:** For generating embeddings and messages

  Gmail Account:** With Gmail OAuth2 credentials for sending emails

  Installation Steps 📦

  1. Import the Workflow
  Import the provided JSON files into your n8n instance.

   2.Configure Credentials
  Go to n8n &gt; Credentials, and set up:

  Google Docs API**

  OpenAI API**

  Pinecone API**

  Gmail OAuth2**

  3. Set Your Pinecone Index & Namespace
  Ensure you have a working Pinecone index (e.g., n8ndocs) and namespace (e.g., docsmail).

  4. Test the Full Flow

  Run the Google Docs → Pinecone embedding workflow to prepare data.

  Send a message to the chatTrigger endpoint (e.g., "Send an offer to User").

  Check the execution log to verify correct tool usage and Gmail delivery.

  How It Works 🔍

  1. Data Preparation:

  Google Doc content is fetched and chunked.

  OpenAI embeddings are created.

  Data is stored in Pinecone under a specific namespace.

  2. Chat Trigger:

  A webhook captures chat input.

  The LangChain agent interprets the user request.

  The agent uses two tools:

     Vectorstore_mails: Retrieves relevant emails via Pinecone vector search

     send_mail: Uses an internal n8n sub-workflow to send Gmail messages

  3. Mail Generation & Delivery:

  Email is personalized using recipient info (name/email from Pinecone)

  Message follows a clean, friendly format with clear subject and closing

  Delivered via Gmail integration

nodes_used:
  ["n8n-nodes-base.manualTrigger","@n8n/n8n-nodes-langchain.vectorStorePinecone","@n8n/n8n-nodes-langchain.embeddingsOpenAi","@n8n/n8n-nodes-langchain.documentDefaultDataLoader","@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter","n8n-nodes-base.executeWorkflowTrigger","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.gmailTool","@n8n/n8n-nodes-langchain.chatTrigger","@n8n/n8n-nodes-langchain.toolVectorStore","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.toolWorkflow","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.vectorStorePinecone","@n8n/n8n-nodes-langchain.embeddingsOpenAi","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.googleDocs"]

workflow_json_compressed:
  [encoded data, 5532 characters]


name: Meetup Registration System with PostgreSQL Database & Interactive Giveaway Tool
author_name: Ficky
author_username: ficky
categories: []
created_at: 2025-07-08T00:30:38.343Z
updated_at: 2025-07-08T00:30:38.343Z
url: https://n8n.io/workflows/5758
scraped_at: 2025-12-24 13:02:42
description:
  This workflow contains community nodes that are only compatible with the self-hosted version of n8n.

  🎉 n8n Workflow: Meetup Registration & Giveaway Picker

  This n8n workflow is designed to handle both participant registration and giveaway winner selection, fully integrated with a frontend experience.

  📋 Participant Registration Flow

  This part of the workflow automates the registration process for meetup attendees.

  🔄 Steps:
  📝 Participant Form (Webhook Trigger)
     Triggered when a user submits the form.
     Captures fields like nama_lengkap, email, whatsapp, discord_username, and more.

  🛠️ Data Mapping
     Maps raw form inputs into a structured format.
     Supports trimming, validation, and transformation as needed.

  💾 Save to Database
     Performs an upsert operation to store participant info in PostgreSQL.
     Prevents duplicate entries based on unique ID (e.g., WhatsApp or email).

  ✅ Confirmation Screen
     Returns a success message or thank-you page after registration is complete.

  🎁 Giveaway App

  This section serve frontend app to display and select random winners.

  🔄 Steps:
  🌐 Webhook GET (Giveaway App)
     Exposes a public endpoint that delivers a ready-to-use HTML app.
     Can be opened in a browser or projected during the event.

  📥 Fetch Participants
     Executes a SQL query to retrieve all participant records from the database.

  🧮 Format Participant Data
     Redacts personal details (e.g., masks WhatsApp numbers).
     Encodes the id using Base64 for privacy and uniqueness.

  📤 Render Giveaway App
     Returns an HTML-based Single Page Application with the participant list included.
     Allows the host to click a button to pick random winners live.

  ✅ Use Case Highlights

  Streamlined participant collection and storage using n8n workflows
  Secure data handling with redaction and ID encoding
  Frontend integration for a fun, interactive giveaway experience
  Reusable for other community events, workshops, or internal team draws

nodes_used:
  ["n8n-nodes-base.form","n8n-nodes-base.code","n8n-nodes-base.set","n8n-nodes-base.postgres","n8n-nodes-base.webhook","n8n-nodes-base.respondToWebhook","n8n-nodes-base.stickyNote","n8n-nodes-base.formTrigger","n8n-nodes-base.postgres","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 9220 characters]


name: Gmail to Slack: AI-Scored Upwork Job Alerts with OpenRouter
author_name: James Francis
author_username: paperjam
categories: []
created_at: 2025-07-08T01:37:09.441Z
updated_at: 2025-07-08T01:37:09.441Z
url: https://n8n.io/workflows/5761
scraped_at: 2025-12-24 13:02:41
description:
  This workflow contains community nodes that are only compatible with the self-hosted version of n8n.

  Overview
  When applying for freelance jobs on Upwork, minutes matter. The first quality application is more often than not the one that's ultimately selected. 

  Subscribers to Upwork's Freelancer Plus receive email job alerts, but filters are very limited. As a result, it takes a lot of time to manually go through each email and determine if each job fits your criteria.

  This workflow scans your Gmail every few minutes, finds all Upwork job alerts, scores them based on your profile/preferences, and sends a Slack channel message for jobs that are strong potential matches.

  How it works
  Scans Gmail for Upwork job alerts every few minutes
  Extracts all available job data from each email
  Scores the job based on profile information and criteria you provide
  Sends a Slack notification for all jobs that meet a given score threshold

  Disclaimers
  This workflow polls Gmail for new messages every 10 minutes. A workflow execution will be used each time, regardless of whether the Gmail scan finds anything. You may want to adjust this frequency based on the amount of workflow executions you want to use.
  The AI matching process is based only on the information included in the email body (job title, description snippet and metadata). It is against Upwork's Terms of Service to scrape a full job posting. Despite this, the quality of the results in our testing is high for most use cases.

  Required Setup
  Subscribe to Upwork's Freelancer Plus plan to enable job alerts ($19.99/mo at the time of this posting)
  Create Gmail and Open Router (or an LLM provider of your choice) credentials and select them in the Gmail / LLM Model nodes
  Create a Slack app that has at least the chat:write.public and channels:read scopes, install it into your workspace, and use your apps OAuth Token to create a Slack API credential in n8n
  IMPORTANT: In the "Opportuntity Scorer" node, replace the text in between the &lt;my_profile&gt; tags with your freelancer bio. For best results, include as much detail as possible about your skillset, experience, tool familiarity, and job preferences.
  Update the filter with your notification threshold preference(s) and update the Slack channel to send notifications to in the last Slack node

  If you have any questions or feedback about this workflow, or would like me to build custom workflows for your business, email me at n8n@paperjam.agency.

nodes_used:
  ["n8n-nodes-base.markdown","@n8n/n8n-nodes-langchain.lmChatOpenRouter","n8n-nodes-base.gmail","n8n-nodes-base.gmailTrigger","n8n-nodes-base.slack","@n8n/n8n-nodes-langchain.lmChatOpenRouter","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.filter","@n8n/n8n-nodes-langchain.informationExtractor","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.informationExtractor"]

workflow_json_compressed:
  [encoded data, 6032 characters]


name: Monitor SSL Certificate Expiry with Google Sheets and Email Alerts
author_name: Agus Narestha
author_username: agusnarestha
categories: []
created_at: 2025-07-08T09:26:03.496Z
updated_at: 2025-07-08T09:26:03.496Z
url: https://n8n.io/workflows/5768
scraped_at: 2025-12-24 13:02:46
description:
  🔒 SSL Certificate Monitoring & Expiry Alert with Spreadsheet [FREE APIs]

  ✅ What This Workflow Does

  This n8n template automatically monitors SSL certificates of websites listed in a Google Sheet and sends email alerts if any are expiring within 14 days. It helps ensure you avoid downtime, security issues, and trust warnings due to expired certificates.

  🧩 Key Features

  📅 Weekly Automation: Runs every Monday at 7:00 AM (configurable).
  📄 Google Sheets Integration: Fetches and updates data in a spreadsheet.
  🔍 SSL Check via API: Uses ssl-checker.io to get certificate details.
  ⚠️ SSL Expiry Filter: Identifies certificates expiring within 14 days.
  📧 Email Alerts: Sends notifications for certificates close to expiration.

  📂 Input Spreadsheet Format

  Your Google Sheet should have the following columns:

  | No | Name            | Link                  | SSL Issued On     | SSL Expired On    | SSL Status |
  |----|-----------------|-----------------------|-------------------|-------------------|------------|
  | 1  | Example Site    | https://example.com   | 2024-07-01        | 2025-07-01        | Valid      |
  | 2  | My Blog         | https://myblog.org    | 2024-07-05        | 2024-07-20        | Expiring   |

  Each row should include a valid website URL in the Link column.

  🛠️ How It Works

  Scheduled Trigger
     Executes weekly (Monday 7:00 AM).
     
  Fetch Website List
     Reads all website entries from the Google Sheet.

  Check SSL Certificates
     Uses ssl-checker.io API to retrieve certificate details for each website.

  Update Spreadsheet
     Writes "Issued On" and "Expired On" fields back to the spreadsheet.

  Evaluate SSL Expiry
     Filters for certificates expiring within 14 days.

  Check Condition
     Determines whether to send alerts based on filtered results.

  Send Email Alert
     Notifies via email if any certificates are expiring soon.

  📬 Example Email Output
  Subject: ⚠️ ALERT!! SSL EXPIRED

  SSL certificates expiring soon:
  example.com (expires in 5 days)
  anotherdomain.net (expires in 3 days)

  🧰 Setup Requirements

  A Google Sheet with the correct columns and website links.
  SMTP credentials to send alert emails.

nodes_used:
  ["n8n-nodes-base.httpRequest","n8n-nodes-base.splitInBatches","n8n-nodes-base.googleSheets","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.if","n8n-nodes-base.googleSheets","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.emailSend","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 5020 characters]


name: Extract and Analyze Truth Social Posts for Stock Market Impact with Airtop & Slack
author_name: Airtop
author_username: cesar-at-airtop
categories: []
created_at: 2025-07-08T11:10:44.890Z
updated_at: 2025-07-08T11:10:44.890Z
url: https://n8n.io/workflows/5772
scraped_at: 2025-12-24 13:02:41
description:
  Trump-o-meter: Extract and Evaluate Truth Social Posts

  Use Case

  Automatically extracting posts from Donald Trump's Truth Social account and estimating their potential impact on the U.S. stock market enables teams to monitor high-profile communications that may influence financial markets. This automation streamlines intelligence gathering for analysts, traders, and policy observers.

  What This Automation Does

  This automation retrieves up to 3 posts from Donald Trump's Truth Social profile and outputs structured information including:

  Author name
  Image URL
  Post text
  Post URL
  Estimated stock market impact:

    Direction: positive, negative, or neutral
    Magnitude: None, Small, Medium, Large

  How It Works

  Creates a browser session on Truth Social using an Airtop profile.
  Navigates to https://truthsocial.com/@realDonaldTrump.
  Uses a natural language prompt with a defined JSON schema to extract structured data for up to 3 posts.
  Splits the results into individual post items.
  Filters posts that contain actual content and have a non-zero estimated market impact.
  Sends selected posts and impact summaries to a Slack channel.
  Terminates the browser session to clean up.

  Setup Requirements

  Airtop API Key — free to generate.
  An Airtop Profile that is connected and logged into Truth Social.
  A Slack workspace and authorized app with write permissions to a target channel.

  Next Steps

  Integrate with Trading Signals**: Link output to financial alert systems or dashboards for timely insights.
  Expand Monitoring**: Extend to other high-impact accounts (e.g., politicians, CEOs).
  Enhance Analysis**: Add sentiment scoring or topic classification for deeper context.

  Legal Disclaimer
  This tool is intended solely for informational and analytical purposes. The market impact estimations provided are speculative and should not be construed as financial advice. Do not make investment decisions based on this automation. Always consult with a licensed financial advisor before making any trades.


  Read more about Trump-o-meter automation

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.filter","n8n-nodes-base.slack","n8n-nodes-base.splitOut","n8n-nodes-base.stickyNote","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.airtop","n8n-nodes-base.stickyNote","n8n-nodes-base.airtop","n8n-nodes-base.airtop","n8n-nodes-base.airtop"]

workflow_json_compressed:
  [encoded data, 4344 characters]


name: Generate LinkedIn Posts and AI Images from Web Pages with Airtop and GPT-4
author_name: Airtop
author_username: cesar-at-airtop
categories: []
created_at: 2025-07-08T11:19:05.541Z
updated_at: 2025-07-08T11:19:05.541Z
url: https://n8n.io/workflows/5774
scraped_at: 2025-12-24 13:02:41
description:
  Use Case
  Turn any web page into a compelling LinkedIn post — complete with an AI-generated image. This automation is ideal for sharing content like blog posts, case studies, or product updates in a polished and engaging format.

  What This Automation Does
  Given a page URL and optional user instructions, this automation:
  Scrapes the content of the webpage
  Uses AI to write a clear, educational, and LinkedIn-optimized post
  Generates a brand-aligned visual that matches the content
  Sends both to Slack for review and approval
  Handles feedback and revisions via Slack interactions

  Input:
  Page URL** — The link to the webpage (required)
  Instructions** — Optional notes on tone, emphasis, or format

  Output:
  LinkedIn post text
  AI-generated visual prompt and image
  Slack message with review/approval options

  How It Works
  Form Submission: User inputs a web page and optional instructions.
  Web Scraping: Uses Airtop to extract page content.
  Post Generation: AI agent writes a post based on the page and instructions.
  Visual Generation: Another AI model creates an image prompt; this is sent to a sub-workflow for image rendering.
  Slack Review Flow:
     Post and image sent to Slack for feedback
     User can approve, request revisions, or decline
     Revisions trigger reprocessing steps automatically
  Final Post Delivery: Approved post and image are sent back to Slack, ready to publish.

  Setup Requirements
  Airtop API key
  OpenAI credentials for post and image prompt generation
  Slack OAuth integration with a review channel
  A sub-workflow for branded image generation

  Next Steps
  Post Directly**: Add LinkedIn publishing to automate the full content workflow.
  Template Variations**: Offer post style presets (e.g., technical, story-driven, short-form).
  CRM Sync**: Save approved posts and stats in Airtable or Notion for team use.

  Read more about content generation with Airtop

nodes_used:
  ["n8n-nodes-base.formTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.textClassifier","@n8n/n8n-nodes-langchain.textClassifier","n8n-nodes-base.set","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.executeWorkflow","n8n-nodes-base.slack","n8n-nodes-base.formTrigger","n8n-nodes-base.slack","n8n-nodes-base.slack","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.airtop"]

workflow_json_compressed:
  [encoded data, 8460 characters]


name: Automate Contact Enrichment with Surfe, Google Sheets & HubSpot
author_name: go-surfe
author_username: go-surfe
categories: []
created_at: 2025-07-08T12:18:00.204Z
updated_at: 2025-07-08T12:18:00.204Z
url: https://n8n.io/workflows/5776
scraped_at: 2025-12-24 13:02:45
description:
  This template enables fully automated lead enrichment using Surfe’s bulk API. Simply drop a Google Spreadsheet into your Google Drive, and n8n will handle everything — from reading the leads, enriching them in batches, filtering valid data, and pushing results to HubSpot.

  1. ❓ What Problem Does This Solve?

  Manually enriching contact lists is tedious, error-prone, and doesn’t scale. Whether you’re importing leads from events, marketing forms, or partners, this workflow ensures each record is enriched and synced to your CRM — hands-free.

  2. 🧰 Prerequisites

  To use this template, you’ll need:

  A self-hosted or cloud instance of n8n
  A Surfe API Key
  A Google Drive and Sheets account (with OAuth or service account)
  A HubSpot account with access to create/update contacts (via OAuth or Private App Token)
  The workflow JSON file (included with this tutorial)

  3. 📌 Input File Format

  To run the automation, you must upload a Google Spreadsheet to a specific folder in your Drive.

  The spreadsheet must contain the following columns:

  first name (required)
  last name (required)
  Either company name or company domain (at least one is required)
  linkedin url (optional)

  🛑 Important: Any row missing first name, last name, and both company name and company domain will be ignored automatically by the workflow.

  Each row represents a person to enrich.
  We recommend including the linkedin url if available, but it's not mandatory.

  4. ⚙️ Setup Instructions

  4.1 🔐 Create Your Credentials in n8n

  4.1.1 📁 Google Drive

  To connect Google Drive and Google Sheets in your workflow, you need to authorize n8n via Google OAuth 2.0 using a Client ID and Client Secret from the Google Cloud Console.

  📋 Step 1: Create a Google Cloud Project

  Visit Google Cloud Console
  Create a new project or select an existing one
  Navigate to APIs & Services → OAuth consent screen

  ⚙️ Step 2: Configure the OAuth Consent Screen

  Enter the following:
      App name (e.g. n8n Integration)
      User support email
  Choose Audience Type:
      Internal if you’re using a Google Workspace account
      External if using a personal Gmail account
  Under Contact information
      email address
  Click Save and Continue

  🔑 Step 3: Create OAuth Client Credentials

  Go to APIs & Services → Credentials
  Click + Create Credentials → OAuth Client ID
  Select Web application as the application type
  Name it (e.g. n8n Google Drive Access)
  In Authorized redirect URIs, paste this:
      
          https://oauth.n8n.cloud/oauth2/callback
          
      (Or your self-hosted n8n redirect URI)
      
  Click Create
  Copy the Client ID and Client Secret

  ✅ Step 4: Finish Setup in n8n

  In n8n, go to Credentials → Create New → Google Drive / Google Sheets
  Choose OAuth2
  Paste your:
      Client ID
      Client Secret
      Redirect URL (should match Google Console)
  Click Sign in with Google
  Authorize access and save the credential



  ✅ Your Google Drive is now ready to use in workflows.

  4.1.2 📊 Google Sheets OAuth2 API

  Go to n8n → Credentials
  Create new credentials:
      Type: Google Sheets OAuth2 API
  Here a pop-up will open where you can login to your Google account from where you will read the Google Sheets

  When it’s done you should see this on n8n

  4.1.3 📧 Gmail OAuth2 API

  Go to n8n → Credentials
  Create new credentials:
      Type: Gmail OAuth2 API
  A pop-up window will appear where you can log in with your Google account that is linked to Gmail
      Make sure you grant email send permissions when prompted

  4.1.4 🚀 Surfe API

  In your Surfe dashboard → Use Surfe Api → copy your API key
  Go to n8n → Credentials → Create Credential
      Choose Credential Type: Bearer Auth
      Name it something like SURFE API Key
      Paste your API key into the Bearer Token
      Save 

  4.1.5 🎯 HubSpot

  🔓 Private App Token

  Go to HubSpot → Settings → Integrations → Private Apps
      Create an app with scopes:
          crm.objects.contacts.read
          crm.objects.contacts.write
          crm.schemas.contacts.read
      Save the App token
  Go to n8n → Credentials → Create Credential → HubSpot App Token
      Paste your App Token

  ✅ You are now all set for the credentials

  4.2 📥 Import and Configure the N8N Workflow

  Import the provided JSON workflow into N8N
      Create a New Blank Workflow
      click the … on the top left
      Import from File

  4.2.1 🔗 Link Nodes to Your Credentials

  In the workflow, link your newly created credentials to each node of this list :

  Google Drive Node -&gt; Credentials to connect with → Google Drive Account
  Google Sheets -&gt; Credentials to connect with → Google Sheets Account
  Gmail Node Credentials to connect with → Gmail account
  Hubspot Node →Credentials to connect with → Gmail account
  Surfe HTTP nodes:
      Authentication → Generic Credential Type
      Generic Auth Type → Bearer Auth
      Bearer Auth → Select the credentials you created before






  Surfe HTTP nodes

  Surfe HTTP nodes

  HubSpot node → Credentials to connect with → select your HubSpot credentials in the list

  4.2.2 🔧 Additional Setup for the Google Drive Trigger Node

  5. 🔄 How This N8N Workflow Works

  A new Google Sheet containing a linkedin_url column is added to a specific folder in Google Drive
  n8n detects the new file automatically via the Google Drive Trigger
  All rows are read and batched in groups of 500 to comply with Surfe’s API limits
  Each batch is sent to Surfe’s Bulk Enrichment API
  n8n polls Surfe until the enrichment job is complete
  It extracts the enriched contact data from Surfe’s response
  Only contacts with both email and phone number are kept
  These validated leads are pushed to HubSpot
  Finally, a Gmail notification is sent to confirm the job is complete

  6. 🧩 Use Cases

  Post-event contact enrichment** – After a trade show, upload a list of LinkedIn profile URLs from badge scans or lead capture forms
  Outbound LinkedIn campaign follow-ups** – Gather LinkedIn URLs from manual outreach and enrich them into usable CRM leads
  CRM data enhancement** – Use LinkedIn URLs to fill in missing contact info for existing or imported contacts
  List building from LinkedIn exports** – Upload a list of LinkedIn profiles (e.g. from Sales Navigator) and turn them into fully enriched contacts in HubSpot

  7. 🛠 Customization Ideas

  🔁 Add retry logic for failed Surfe enrichment jobs
  📤 Log enriched contacts into a Google Sheet or Airtable
  🔍 Add pre-check logic to avoid creating duplicates in HubSpot
  📊 Extend the flow to generate a basic summary report of enriched vs rejected contacts

  8. ✅ Summary

  This workflow turns a basic Google Sheet of LinkedIn URLs into fully enriched, CRM-ready contacts — automatically synced with HubSpot.

  Just upload your file.

  Let Surfe do the rest.

nodes_used:
  ["n8n-nodes-base.googleSheets","n8n-nodes-base.googleDriveTrigger","n8n-nodes-base.filter","n8n-nodes-base.code","n8n-nodes-base.if","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.gmail","n8n-nodes-base.splitInBatches","n8n-nodes-base.hubspot","n8n-nodes-base.wait","n8n-nodes-base.code"]

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


name: Text-to-Image Generation with Google Gemini & Enhanced Prompts via Telegram Bot
author_name: AppStoneLab Technologies LLP
author_username: appstonelab
categories: []
created_at: 2025-07-08T12:30:07.929Z
updated_at: 2025-07-08T12:30:07.929Z
url: https://n8n.io/workflows/5777
scraped_at: 2025-12-24 13:02:41
description:
  This workflow contains community nodes that are only compatible with the self-hosted version of n8n.

  🤖 AI Image Generator Telegram Bot
  Transform simple text descriptions into stunning AI-generated images through a Telegram bot powered by Google's Gemini 2.0 Flash image. This workflow automatically enhances user prompts with professional prompt engineering techniques and delivers high-quality images directly to your Telegram chat.
  🎯 What This Workflow Does
  This automation creates an intelligent Telegram bot that:
  Receives text messages** from users describing what image they want
  Enhances prompts** using AI-powered prompt engineering to add artistic details, lighting, composition, and style specifications
  Generates images** using Google's Gemini 2.0 Flash image generation model
  Delivers results** instantly back to the user's Telegram chat
  ⚡️ Key Features
  Smart Prompt Enhancement**: Automatically transforms basic requests like "a cat on a windowsill" into detailed, professional prompts with lighting, composition, and style details
  Professional Image Quality**: Leverages Google's latest Gemini 2.0 Flash model for high-quality image generation
  Instant Delivery**: Images are generated and sent back to users within seconds
  User-Friendly**: Simple text-to-image conversion through familiar Telegram interface
  Structured Output**: Uses JSON schema to ensure consistent prompt formatting
  🛠️ How It Works
  Telegram Trigger: Listens for incoming messages from users
  AI Prompt Enhancement: Uses Gemini 2.5 Flash Lite to analyze and expand user requests into detailed prompts
  Structured Processing: Formats the enhanced prompt using JSON schema for consistency
  Image Generation: Sends the enhanced prompt to Gemini 2.0 Flash image generation API
  File Conversion: Converts the generated image data to a file format
  Delivery: Sends the generated image back to the user via Telegram
  🎭 Use Cases
  Creative Content Creation**: Generate artwork, illustrations, and visual concepts
  Social Media Content**: Create unique images for posts and stories
  Concept Visualization**: Turn ideas into visual representations
  Educational Materials**: Generate images for presentations and learning materials
  Personal Projects**: Create custom artwork for personal use
  📋 Prerequisites
  Before setting up this workflow, you'll need:
  Required Accounts & APIs:
  Telegram Bot Token**: Create a bot via @BotFather
  Google AI Studio Account**: Access to Gemini API services
  Required Credentials:
  Telegram Bot API credentials
  Google Gemini API key with access to:
    Gemini 2.5 Pro (for prompt enhancement)
    Gemini 2.0 Flash Preview (for image generation)
  🚀 Setup Instructions
  Import the Workflow: Copy the workflow JSON into your n8n instance
  Configure Telegram Bot:
     Create a new bot using @BotFather
     Add your bot token to the Telegram credentials in n8n
  Set Up Google Gemini API:
     Create API key from Google AI Studio and add to n8n credentials
  Activate the Workflow: Enable the workflow to start receiving messages
  💡 Customization Options
  Prompt Templates**: Modify the prompt enhancement instructions for different artistic styles
  Image Parameters**: Adjust generation settings for different image formats and qualities
  Response Formats**: Customize how images are delivered (with captions, multiple formats, etc.)
  📊 Example Interaction
  User Input: "Generate a beautiful image of a dragon from game of thrones"
  Enhanced Prompt: "A majestic, formidable dragon, reminiscent of those from Game of Thrones, perched atop a jagged, snow-capped mountain peak. The dragon is depicted with immense, leathery wings unfurled, scales glinting with iridescent blues and deep charcoals under the harsh, cold light. Its eyes glow with an inner, fiery amber. The scene is captured with a dramatic, low-angle wide shot, emphasizing the dragon's sheer scale against a turbulent, stormy sky filled with dark, bruised clouds and streaks of lightning. The atmosphere is oppressive and foreboding, with biting wind and swirling snow creating a sense of raw power and danger. The color palette is dominated by icy blues, stark greys, deep blacks, and the contrasting fiery glow of the dragon's eyes and perhaps a hint of internal fire. Rendered in a hyperrealistic, cinematic digital art style, with exceptional attention to detail on the scales, musculature, and the texture of the rocky environment. Lighting is dramatic and high-contrast, with sharp highlights on the dragon's form and deep, impenetrable shadows. Quality specifications include ultra-high detail, 8K resolution, photorealistic rendering, and an epic, awe-inspiring mood, evoking the grandeur and terror of powerful fantasy creatures."
  Result:

  🔧 Technical Details
  AI Models**: Google Gemini 2.5 Pro (prompt enhancement) + Gemini 2.0 Flash Preview (image generation)
  Messaging**: Telegram Bot API
  Output Format**: High-quality images in standard formats
  Processing Time**: Typically 10-15 seconds per image for Gemini 2.5 Flash and 25-30 seconds Gemini for 2.5 Pro

nodes_used:
  ["n8n-nodes-base.httpRequest","n8n-nodes-base.telegram","@n8n/n8n-nodes-langchain.chainLlm","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.telegramTrigger","n8n-nodes-base.convertToFile","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/n8n-nodes-langchain.lmChatGoogleGemini"]

workflow_json_compressed:
  [encoded data, 4644 characters]


name: Automated RSS Monitoring with Gemini AI Summaries and Deduplication to Google Sheets
author_name: Roman Rozenberger
author_username: romek
categories: []
created_at: 2025-07-08T12:49:42.101Z
updated_at: 2025-07-08T12:49:42.101Z
url: https://n8n.io/workflows/5778
scraped_at: 2025-12-24 13:02:41
description:
  This workflow contains community nodes that are only compatible with the self-hosted version of n8n.

  Who's it for

  Content creators, marketers, and researchers who need to monitor multiple RSS feeds and get AI-generated summaries without manual work.

  How it works

  This workflow automatically monitors RSS feeds, filters new articles from the last X days, checks for duplicates, and generates structured AI summaries. It fetches full article content, converts HTML to markdown, and uses Gemini AI to create consistent summaries with quick takeaways, key points, and practical insights. All data is saved to Google Sheets for easy access and sharing.

  The system processes RSS feeds in batches, ensuring no duplicate articles are processed twice by checking existing URLs in your Google Sheets. Each new article gets a comprehensive AI summary that includes the main message, key takeaways, important points, and practical applications.

  Requirements

  Google Sheets access
  OpenRouter API key for Gemini AI model or other language model
  RSS feed URLs to monitor

  How to set up

  Copy the template Google Sheet, add your RSS feeds in the "RSS FEEDS" tab, configure Google Sheets and OpenRouter credentials in n8n, and adjust the time filter in the Settings node. The workflow can run manually or on schedule every hour.

  How to customize

  Modify AI prompts for different summary styles, change the time filter duration, add more data fields to Google Sheets, or switch to a different AI model in the LLM Chat Model node.

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.googleSheets","n8n-nodes-base.rssFeedRead","n8n-nodes-base.splitInBatches","n8n-nodes-base.googleSheets","n8n-nodes-base.markdown","n8n-nodes-base.googleSheets","n8n-nodes-base.set","n8n-nodes-base.if","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.set","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.splitInBatches","n8n-nodes-base.filter","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.lmChatOpenRouter","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.noOp","n8n-nodes-base.httpRequest","n8n-nodes-base.html","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 8236 characters]


name: Generate Natural Voices with Google Text-to-Speech, Drive & Airtable
author_name: Jesse White
author_username: creativeaitools
categories: []
created_at: 2025-07-08T12:53:57.224Z
updated_at: 2025-07-08T12:53:57.224Z
url: https://n8n.io/workflows/5779
scraped_at: 2025-12-24 13:02:41
description:
  Automate High-Quality Voice with Google Text-to-Speech & n8n

  Effortlessly convert any text into stunningly realistic, high-quality audio with this powerful n8n workflow. Leveraging Google's advanced Text-to-Speech (TTS) AI, this template provides a complete, end-to-end solution for generating, storing, and tracking voiceovers automatically.

  Whether you're a content creator, marketer, or developer, this workflow saves you countless hours by transforming your text-based scripts into ready-to-use audio files. The entire process is initiated from a simple form, making it accessible for users of all technical levels.

  Features & Benefits

  🗣️ Studio-Quality Voices: Leverage Google's cutting-edge AI to produce natural and expressive speech in a wide variety of voices and languages.
  🚀 Fully Automated Pipeline: From text submission to final file storage, every step is handled automatically. Simply input your script and let the workflow do the rest.
  ☁️ Seamless Cloud Integration: Automatically uploads generated audio files to Google Drive for easy access and sharing.
  📊 Organized Asset Management: Logs every generated audio file in an Airtable base, complete with the original script, a direct link to the file, and its duration.
  ⚙️ Simple & Customizable: The workflow is ready to use out-of-the-box but can be easily customized. Change the trigger, add notification steps, or integrate it with other services in your stack.

  Perfect For a Variety of Use Cases

  🎬 Content Creators: Generate consistent voiceovers for YouTube videos, podcasts, and social media content without needing a microphone.
  📈 Marketers: Create professional-sounding audio for advertisements, product demos, and corporate presentations quickly and efficiently.
  🎓 Educators: Develop accessible e-learning materials, audiobooks, and language lessons with clear, high-quality narration.
  💻 Developers: Integrate dynamic voice generation into applications, build interactive voice response (IVR) systems, or provide audio feedback for user actions.

  How The Workflow Operates

  Initiate with a Form: The process begins when you submit a script, a desired voice, and language through a simple n8n Form Trigger.
  Synthesize Speech: The workflow sends the text to Google's Text-to-Speech API, which generates the audio and returns it as a base64 encoded file.
  Process and Upload: The data is converted into a binary audio file and uploaded directly to a specified folder in your Google Drive.
  Enrich Metadata: The workflow then retrieves the audio file's duration using the fal.ai ffmpeg API, adding valuable metadata.
  Log Everything: Finally, it creates a new record in your Airtable base, storing the asset name, description (your script), content type, file URLs from Google Drive, and the audio duration for perfect organization.

  What You'll Need

  To use this workflow, you will need active accounts for the following services:

  Google Cloud oAuth2 Client Credentials:** With the Text-to-Speech API enabled.
  Google Drive:** For audio file storage.
  Airtable:** For logging and asset management.
  fal.ai:** For the ffmpeg API used to get audio duration.

nodes_used:
  ["n8n-nodes-base.googleDrive","n8n-nodes-base.airtable","n8n-nodes-base.convertToFile","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.formTrigger","n8n-nodes-base.set","n8n-nodes-base.if","n8n-nodes-base.wait","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 6560 characters]


name: WhatsApp AI Assistant for Q&A & Bookings with Gemini, Pinecone & Google Sheets
author_name: Tharwat Mohamed
author_username: tharwatelsayed
categories: []
created_at: 2025-07-08T13:13:30.816Z
updated_at: 2025-07-08T13:13:30.816Z
url: https://n8n.io/workflows/5781
scraped_at: 2025-12-24 13:02:46
description:
  Overview
  Turn WhatsApp chats into instant answers and real-time bookings—all in one n8n workflow. Your AI Agent leverages Gemini embeddings + Pinecone for on-the-fly knowledge retrieval, then logs reservations directly into Google Sheets.

  Features
  AI-powered Q&A: Natural-language responses driven by Gemini + Pinecone vector search

  Seamless Reservations: Book services via WhatsApp; entries auto-append to Google Sheets

  Auto-Embedding Sub-workflow: Drag-and-drop Google Drive docs get indexed in Pinecone

  24-Hour Follow-Up: Automated template messages if no response within a day

  Personal Support Pledge: Hands-on help until your workflow runs flawlessly

  Requirements
  n8n account (self-hosted or n8n.cloud)

  Google Cloud project with Gemini & Drive APIs enabled

  Pinecone account (free tier works)

  Google Sheets account

  WhatsApp Business API credentials (e.g. Twilio, 360dialog)

  Setup Instructions
  Import Workflow

  Download the .json file from your Gumroad purchase

  In n8n Editor → Import → From File → select the JSON

  Add Credentials

  Google Service Account (Gemini & Drive APIs)

  Pinecone (API Key + Environment)

  Google Sheets OAuth2

  WhatsApp Business API (HTTP credential or native)

  Configure Nodes

  AI Agent: select Gemini credentials; update system prompt with your business name & services

  Pinecone Loader: point “Google Drive” node to your docs folder

  Sheets Append: set Spreadsheet ID, sheet name “reservations”, map Timestamp, UserID, Service, Date, Time, Notes

  WhatsApp Trigger & Send: set webhook URL; choose approved template name

  Test End-to-End

  Activate the workflow → send a test WhatsApp message → verify AI reply + new row in your sheet

  Google Sheet Structure
  Column		Description
  Timestamp		Auto-generated when a user books
  UserID :	Unique WhatsApp user identifier
  Service :	Chosen service or product name
  Date :	Booking date
  Time :	Booking time slot
  Notes :	Any extra information (e.g., special requests)

  Customization
  Add New Services: Edit the system prompt’s services list

  Change Follow-Up Window: Adjust the “24-hour window check” node logic

  Embed Different Docs: Point the Drive node at any folder of PDFs/TXT



  📞 Personal Support Pledge: I’ll work with you (via WhatsApp or email, remote desktop ) until your workflow is running flawlessly—no extra fees, no “good luck” drop‑off.
  Just send a message via:





  Email: tharwat.elsayed2000@gmail.com



  WhatsApp: +20 106 180 3236

nodes_used:
  ["n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.whatsApp","n8n-nodes-base.whatsApp","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.dateTime","@n8n/n8n-nodes-langchain.memoryBufferWindow","@n8n/n8n-nodes-langchain.vectorStorePinecone","@n8n/n8n-nodes-langchain.embeddingsGoogleGemini","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.googleSheetsTool","n8n-nodes-base.manualTrigger","n8n-nodes-base.googleDrive","@n8n/n8n-nodes-langchain.documentDefaultDataLoader","@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter","@n8n/n8n-nodes-langchain.vectorStorePinecone","@n8n/n8n-nodes-langchain.embeddingsGoogleGemini","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.whatsAppTrigger","n8n-nodes-base.if","@n8n/n8n-nodes-langchain.toolVectorStore","n8n-nodes-base.googleSheets"]

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


name: Personal Google Calendar & Reminder Bot on Telegram using Gemini & Whisper
author_name: Khaisa Studio
author_username: khaisastudio
categories: []
created_at: 2025-07-08T15:30:52.457Z
updated_at: 2025-07-08T15:30:52.457Z
url: https://n8n.io/workflows/5784
scraped_at: 2025-12-24 13:02:42
description:
  The CA - Tele Assistant workflow is an intelligent Telegram bot designed to help you manage your Google Calendar effortlessly through natural language and voice commands.
  💡 Why Use CA - Tele Assistant?

  Hands-free calendar management:** Manage your events via text or voice with zero manual calendar app usage
  Smart reminders:** Receive tailored, friendly reminders well in advance, helping you stay prepared
  Multifunctional AI assistant:** Create, view, update, or delete events simply by chatting naturally
  Seamless integration:** Combines Google Calendar, Telegram, OpenAI transcription, and Google Gemini model for powerful capabilities
  Context-aware messaging:** Personalized message tone, emoji use, and prep tips depending on event type and urgency

  ⚡ Who Is This For?

  Busy professionals:** Who want to manage their schedule quickly without opening multiple apps
  Remote teams:** Needing easy calendar coordination and friendly reminders via Telegram
  People who prefer voice commands:** Allows scheduling and querying via Indonesian voice messages
  Anyone overwhelmed by calendar clutter:** Automates reminders and event organization effortlessly

  ❓ What Problem Does It Solve?

  Manually juggling your calendar events—creating entries, checking your schedule, or remembering appointments—is time-consuming and error-prone. Traditional calendar apps require multiple interactions and can flood you with generic notifications that lack context or personality. Voice commands or natural chat to manage calendars are rarely supported natively.

  CA - Tele Assistant solves these issues by offering a chat-based, AI-powered interface that understands your natural language or voice, automates calendar operations, and sends smart reminders tailored to your event and preferences. This reduces the cognitive load, minimizes missed appointments, and makes calendar management seamless.

  🔧 How This Workflow Works

  ⏱ Step 1: Incoming Telegram messages or voice messages trigger the workflow via Telegram Trigger node

  📥 Step 2: Voice messages are automatically downloaded and transcribed into text using OpenAI

  🔀 Step 3: A Switch node routes text and voice commands for unified processing

  ✍️ Step 4: The Google Gemini AI model processes natural language commands for calendar actions

  🧠 Step 5: A Langchain AI agent ("Calendar Manage!") handles operations such as event creation, update, deletion, and fetching events using Google Calendar API tools. It uses session memory to keep contextual chat flow

  🔔 Step 6: A scheduled trigger every 15 minutes retrieves upcoming calendar events (within 45-60 mins), filters duplicates, and an AI Reminder Message Agent crafts personalized reminder messages

  💬 Step 7: Reminder messages are sent automatically to the user's Telegram chat, with typing indicators for a humanized feel

  🛠 Step 8: All data flows and interactions are combined, ensuring seamless conversational experience with real-time calendar sync

  🔐 Setup Instructions

  Import the provided JSON workflow into your n8n instance

  Set up credentials:
     Telegram API Bot credentials via BotFather
     Google Calendar OAuth2 credentials
     OpenAI API key (for voice transcription)
     Google Palm API credentials (for Gemini AI)

  Customize: Adjust chat IDs, timezone preferences, and reminder timing (default 45-60 minutes before events)

  Update: Replace placeholder chat IDs with your Telegram chat ID

  Test: Send test commands or voice messages through your Telegram bot to verify event creation, updates, and reminder delivery

  🧩 Pre-Requirements

  Telegram Bot: Create bot via @BotFather
  Google Calendar: Setup OAuth2 credentials
  OpenAI API: For voice message transcription
  Google Gemini: For AI language model

  📚 Useful Resources
  n8n Documentation
  Telegram Bot API
  Google Calendar API
  OpenAI API Docs

  🛠️ Customize It Further

  Add support for additional languages in voice transcription or chat responses
  Integrate weather or traffic APIs for more enhanced reminder tips
  Enable multi-user support with dynamic chat ID handling for group chats
  Enhance personality or tone configurations for more formal or casual responses

  🧠 Nodes Used

  Telegram Trigger**
  Telegram** (Send Typing Indicator, Send Message, Download Voice)
  OpenAI** (Audio transcription)
  Langchain Google Gemini Model**
  Langchain AI Agents** (Reminder Message Agent, Calendar Manage! agent)
  Google Calendar** node (Get Upcoming Events)
  Google Calendar Tools** (Create, Update, Delete, Get events)
  Remove Duplicates** node
  Merge** node
  Switch** node
  Set** node
  Schedule Trigger**
  Memory Buffer Window** node

  📞 Support

  Made by: khaisa Studio   
  Tag: AI, Google Calendar, Telegram, Reminder, Schedule, Voice, OpenAI, Gemini,
  Category: Productivity Automation  
  Need a custom? contact khaisa for more tailored templates

nodes_used:
  ["n8n-nodes-base.telegram","n8n-nodes-base.telegram","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.googleCalendar","n8n-nodes-base.removeDuplicates","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.telegram","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.googleCalendarTool","@n8n/n8n-nodes-langchain.memoryBufferWindow","n8n-nodes-base.googleCalendarTool","n8n-nodes-base.googleCalendarTool","n8n-nodes-base.googleCalendarTool","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.telegram","n8n-nodes-base.telegramTrigger","n8n-nodes-base.merge","n8n-nodes-base.switch","n8n-nodes-base.telegram","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

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


name: Scrape Public Email Addresses From Any Website Using Firecrawl
author_name: Lucas Walter
author_username: lucaswalter
categories: []
created_at: 2025-07-08T16:14:47.162Z
updated_at: 2025-07-08T16:14:47.162Z
url: https://n8n.io/workflows/5786
scraped_at: 2025-12-24 13:02:42
description:
  Who's it for

  This template is perfect for sales professionals, marketers, and business developers who need to quickly gather contact information from company websites. Whether you're building prospect lists, researching potential partners, or collecting leads for outreach campaigns, this automation saves hours of manual email hunting.

  What it does

  This workflow automatically discovers and extracts email addresses from any website by:

  Taking a website URL as input through a simple form
  Using Firecrawl's mapping API to find relevant pages (about, contact, team pages)
  Batch scraping those pages to extract email addresses
  Intelligently handling common email obfuscations like "(at)" and "(dot)"
  Returning a clean, deduplicated list of valid email addresses

  The automation handles rate limiting, retries failed requests, and filters out invalid or hidden email addresses to ensure you get quality results.

  How to set up

  Get Firecrawl API access: Sign up at firecrawl.dev and obtain your API key
  Configure credentials: In n8n, create a new HTTP Header Auth credential named "Firecrawl" with:
     Header Name: Authorization
     Header Value: Bearer YOUR_API_KEY
  Import the workflow: Copy the workflow JSON into your n8n instance
  Test the form: Activate the workflow and test with a sample website URL

  How to customize the workflow

  Search parameters: Modify the search parameter in the map_website node to target different page types (currently searches for "about contact company authors team")

  Extraction limits: Adjust the limit parameter to scrape more or fewer pages per website

  Retry logic: The workflow includes retry logic with a 12-attempt limit - modify the check_retry_count node to change this

  Output format: The set_result node formats the final output - customize this to match your preferred data structure

  Email validation: The JSON schema in start_batch_scrape defines how emails are extracted - modify the prompt or schema for different extraction rules

  The workflow is designed to be reliable and handle common edge cases like rate limiting and failed requests, making it production-ready for regular use.

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

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


name: From Google Drive to Instagram, TikTok & YouTube with AI Descriptions & Airtable Tracking
author_name: Juan Carlos Cavero Gracia
author_username: carlosgracia
categories: []
created_at: 2025-07-08T16:46:00.998Z
updated_at: 2025-07-08T16:46:00.998Z
url: https://n8n.io/workflows/5787
scraped_at: 2025-12-24 13:02:41
description:
  Description



  This automation template is designed for content creators, social media managers, and influencers who want to streamline their video publishing workflow. It automatically detects new videos uploaded to a specific Google Drive folder, generates AI-powered descriptions based on video audio content, and simultaneously publishes them across Instagram, TikTok, and YouTube while tracking everything in Airtable.

  Note: This workflow uses upload-post.com API (free trial no credit card required) for multi-platform video distribution and requires API tokens for each service. The AI-generated descriptions are created using OpenAI's transcription and chat models to analyze video audio content.*

  Who Is This For?
  Content Creators & Influencers:** Automatically publish your videos across all major social platforms without manual work.
  Social Media Managers:** Maintain consistent posting schedules across multiple platforms with AI-generated, platform-optimized descriptions.
  Marketing Teams:** Scale video content distribution with automated workflows that include tracking and status monitoring.
  Video Producers:** Focus on creating content while the system handles the tedious task of multi-platform publishing and description generation.

  What Problem Does This Workflow Solve?
  Publishing the same video content across Instagram, TikTok, and YouTube is time-consuming and repetitive. You need to manually upload each video, write unique descriptions, and track publication status. This workflow addresses these challenges by:
  Automated Video Distribution:** Detects new videos in Google Drive and automatically uploads them to all three platforms simultaneously.
  AI-Powered Content Generation:** Uses OpenAI to transcribe video audio and generate engaging, platform-appropriate descriptions automatically.
  Centralized Tracking:** Maintains detailed records in Airtable including upload status, URLs, and metadata for each platform.
  Error Monitoring:** Provides real-time error notifications via Telegram to ensure you're always aware of any issues.

  How It Works
  Video Upload Detection: The workflow monitors a specific Google Drive folder for new video uploads using automated triggers.
  Content Analysis: Downloads the video, extracts audio, and uses OpenAI to transcribe and generate compelling descriptions.
  Airtable Integration: Creates and updates records to track video metadata, descriptions, and publication status.
  Multi-Platform Publishing: Simultaneously uploads the video to Instagram, TikTok, and YouTube using the upload-post.com API.
  Status Tracking: Updates Airtable records with publication status and platform-specific URLs for each successful upload.

  Setup
  Google Drive Configuration: 
     Set up the Google Drive trigger to monitor your specific folder
     Configure OAuth2 credentials for Google Drive access
  OpenAI Integration: Add your OpenAI API key to enable audio transcription and description generation
  Airtable Setup: 
     Create an Airtable base with fields for Video Name, Description, Platform Status, URLs, and Upload Date
     Add your Airtable API token and configure base/table IDs in the "Set Variables" node
  Upload-Post.com Account: 
     Create an account at upload-post.com to get your API token
     Configure the token in the HTTP request nodes for each platform
     Set your user ID in the variables section
  Platform Accounts: Ensure your Instagram, TikTok, and YouTube accounts are connected to upload-post.com
  Error Notifications: (Optional) Configure Telegram bot credentials for error notifications

  Requirements
  Accounts:** Google Drive, OpenAI, Airtable, upload-post.com, Telegram (optional)
  API Keys & Credentials:** Google Drive OAuth2, OpenAI API Key, Airtable API Token, upload-post.com API Token
  Platform Setup:** Instagram, TikTok, and YouTube accounts connected to upload-post.com

  Transform your video publishing workflow from hours of manual work to a fully automated system that handles everything from content analysis to multi-platform distribution and tracking.

nodes_used:
  ["n8n-nodes-base.set","n8n-nodes-base.googleDriveTrigger","n8n-nodes-base.googleDrive","n8n-nodes-base.airtable","n8n-nodes-base.errorTrigger","n8n-nodes-base.telegram","n8n-nodes-base.if","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.writeBinaryFile","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.airtable","n8n-nodes-base.readBinaryFile","n8n-nodes-base.readBinaryFile","n8n-nodes-base.readBinaryFile","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.airtable","n8n-nodes-base.airtable","n8n-nodes-base.airtable","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set"]

workflow_json_compressed:
  [encoded data, 5924 characters]


name: Multi-Account Email Classifier with AI, Gmail, Discord & Google Sheets
author_name: Jay Emp0
author_username: jay-emp0
categories: []
created_at: 2025-07-08T17:28:42.844Z
updated_at: 2025-07-08T17:28:42.844Z
url: https://n8n.io/workflows/5789
scraped_at: 2025-12-24 13:02:41
description:
  AI Email Classifier 📬  
  Automate Email Classification, Prioritization, and Spam Detection Across Multiple Accounts  

  Created by: Jayant Kumar (@jharilela)  
  🛠 Powered by: Gmail, Google Sheets, OpenAI, Discord, and n8n  

  Sample Discord labelling as Spam

  Sample Discord labelling as Legit

  Why I Built This

  Focus is Expensive. Managing multiple email inboxes every day—personal, business, partnerships, invoices. Logging into each, skimming through noise, flagging important stuff, and deleting spam started eating up hours of my week. I needed a system that helped me focus only on what matters without building an entire helpdesk dashboard.  

  I already live in Discord. It made sense to push my emails there—but in a fun, digestible, and actionable way. I built AI Email Classifier 📬 to summarize emails, detect spam, assign priority, and make everything skimmable with pictures and links.  

  And it works across multiple Gmail accounts.

  Key Features

  ✅ Works with multiple Gmail inboxes  
  🧠 Uses AI to classify spam vs legit  
  🎯 Assigns priority levels: High / Medium / Low  
  🗂 Appends everything to a central Google Sheet  
  📸 Sends visual summaries to Discord (with image + action links)  
  🛠 Powered by open-source: n8n_discord_trigger_bot

  How It Works

  Here’s the high-level flow:

  New Email in any inbox triggers the worfklow to start
  The AI Agent reads the raw content, subject, sender, Gmail labels.
  It calls a Google Sheet that acts as our feedback memory:
     Emails and domains manually marked as spam or legit.
  AI classifies the incoming email using logic:
     Spam if sender or domain is blacklisted, or content matches patterns like:  
       "promotions, phishing, ads, mass emails, cold offers"  
     Priority is assigned by:
       High: deadlines, legal, payments, clients, CEO emails  
       Medium: team updates, meetings, project notifications  
       Low: newsletters, FYIs, casual threads  
  It produces a compact JSON output with:
     Sender, recipient, subject, summary, priority, priority color, image URL, action URL  
  The message is formatted visually and posted back to Discord as an embed with:
     Summary text  
     Actionable links  
     Priority color code  
     Thumbnail (if any)  

  Google Sheet Training Table  

  The system uses this sheet as live memory to label spam and legit senders:  

  ╔════════════════════╦══════════════╦═════════════════╦══════════════╦════════════════╗
  ║       Email        ║    Domain    ║  Classification ║  Labelled By ║  Labelled Date ║
  ╠════════════════════╬══════════════╬═════════════════╬══════════════╬════════════════╣
  ║ offers@badsite.com ║  badsite.com ║  Spam           ║  Jayant      ║  08/07/2025    ║
  ║ ceo@trusted.com    ║  trusted.com ║  Legit          ║  Jayant      ║  08/07/2025    ║
  ╚════════════════════╩══════════════╩═════════════════╩══════════════╩════════════════╝



  This allows manual control to teach the AI which senders to trust or ignore. Every time I see something marked wrong, I just reply in Discord with "spam" or "legit" on that message thread. That triggers an update to the Sheet via AI parsing and n8n.

  Why Manual Input Still Matters

  AI isn’t perfect.  
  Some spam emails are cleverly disguised. And some senders are contextually important only to you.

  That’s why I kept a simple feedback loop:
  You tell the bot "spam" or "legit" on any Discord email message. Or anything along that line
  The AI agent detects the intent and updates the Sheet.
  The AI improves its judgment next time as it now remembers your preference

  Why Discord?

  Because Slack charges per seat and email feels lonely.  
  I run most of my operations inside Discord community chats, client rooms, bot alerts.  
  Instead of making a full email UI, I turned each email into a Discord card with a thumbnail, summary, and quick actions.  
  It’s fun. It’s visual. It doesn’t feel like work.  
  Email becomes more like a game feed.

  Tech Stack

  Gmail → Discord via Gmail trigger node
  Discord → n8n Webhook via n8n_discord_trigger_bot  
  OpenAI GPT-4o (classification + summarization)  
  Google Sheets (feedback memory)  
  Discord Node (embed output with JSON + images)  

  Try It Yourself

  Clone the workflow JSON, set up your Gmail integrations, and install the n8n Discord Trigger Bot.  
  I made this workaround because i couldnt find a discord trigger on n8n. 

  Now I just scroll my Discord DMs and know what to reply to, and ignore everything else.Dont let Email spam your brain. Let your AI do the thinking.

nodes_used:
  ["n8n-nodes-base.gmailTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.gmailTrigger","n8n-nodes-base.gmailTrigger","n8n-nodes-base.gmailTrigger","n8n-nodes-base.merge","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.webhook","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.googleSheetsTool","n8n-nodes-base.discord","n8n-nodes-base.discordTool","n8n-nodes-base.googleSheetsTool","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.googleSheetsTool","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.discord","n8n-nodes-base.if"]

workflow_json_compressed:
  [encoded data, 6892 characters]


name: Trading Journal: Log Trades Into Google Sheets via Telegram & Gemini AI
author_name: Malik Hashir
author_username: malikx
categories: []
created_at: 2025-07-08T19:31:35.024Z
updated_at: 2025-07-08T19:31:35.024Z
url: https://n8n.io/workflows/5793
scraped_at: 2025-12-24 13:02:46
description:
  This smart AI-powered trading journal lets you easily log and update your trades using Telegram messages. Just send your trade details by text to your personal telegram bot, and the system will extract key information and save it in a Google Sheets journal for you.

  Simply send messages to your personal trade journal assistant (bot) on Telegram, and it will handle the rest. After some time, you can review your journal to reflect, learn, and improve your trading skills.

  The journal can record:
  Asset or trading pair
  Entry price
  Stop loss
  Take profit
  Trade direction (buy/sell)
  Additional trading notes

  It also allows you to update existing trades with:
  Profit and loss after closing the trade
  Additional notes such as strategy details

  1. How it works:
  Trade Entry Example:
  Send a message like:
  "Hey, log my trade on Tesla with entry price 300, stop loss 280, and direction buy."

  The AI will extract:
  Asset or trading pair (e.g., Tesla)
  Entry price
  Stop loss (if provided)
  Take profit (if provided)
  Direction (buy/long or sell/short)
  Any additional notes (e.g., "EMA 20 crossed above EMA 50")

  Trade ID:
  After logging, you’ll receive a unique trade ID (e.g., "233hdsf") to keep for future updates to the trade entry (e.g add profit/loss upon trade close).

  Trade Update Example:
  To update your trade with profit/loss or notes, send a message like:
  "Hey, update my trade with profit of 300+ and add note: trade was closed after 7 days. Trade ID: 233hdsf."

  The system will locate your trade by ID and update the details accordingly.

  2. Who is this for?
  Traders who want a simple, hands-free way to track and manage their trades without manual data entry. Perfect for individual traders, prop firms, or anyone who prefers using Telegram to interact with their trading journal.

  3. How to use:
  Create a Google Sheet with columns (ID (unique trade id auto generated for every trade), Asset/Pair, Entry Price, Stop Loss, Take Profit, Notes, Direction, Profit & Loss).
  Send trade details via Telegram message.
  Receive confirmation with a unique trade ID.
  Use the trade ID for any future updates to the trade entry.

  All trades and updates are saved automatically in Google Sheets selected.

  4. How to Set Up This Smart AI Trading Journal Workflow
  This section guides you through setting up the workflow that logs and updates your trades via Telegram messages, using AI to extract trade details and storing them in Google Sheets.

  Telegram Bot Setup
  Create a Telegram bot using @BotFather:
  Send /newbot command.
  Choose a bot name and username.
  Copy the API token provided.
  In n8n, create Telegram credentials:
  Go to Credentials → Create new → Telegram API.
  Paste your bot API token.
  Use https://api.telegram.org as the base URL.
  Save the credentials.

  Google Sheets Setup
  Create a Google Sheet to store your trade journal with columns (ID (unique trade id auto generated for every trade), Asset/Pair, Entry Price, Stop Loss, Take Profit, Notes, Direction, Profit & Loss).
  Note the Spreadsheet ID from the URL (e.g., 1DeKt3teOs3R8Js9Go4rdhJCLKisLByMkO6LSPd5Be4c).
  Make sure your sheet has columns like:
  ID, Asset/Pair, Entry Price, Stop Loss, Take Profit, Direction, Notes, Profit & Loss.
  In n8n, create Google Sheets OAuth2 credentials:
  Follow n8n Google Sheets docs to set up OAuth2 (https://docs.n8n.io/integrations/builtin/credentials/google/).
  Save the credentials.

  AI Model Setup
  Use Google Gemini (PaLM) or Groq AI models for NLP:
  Sign up at Google AI Studio (https://aistudio.google.com/) or Groq Console (https://console.groq.com/).
  Create API credentials and get your API keys.
  In n8n, create credentials for any of the one AI model:
  Google Gemini API credentials.
  Groq API credentials.

  The workflow uses these AI nodes to parse Telegram messages and extract structured trade data.

nodes_used:
  ["n8n-nodes-base.telegramTrigger","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.code","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","@n8n/n8n-nodes-langchain.outputParserStructured","@n8n/n8n-nodes-langchain.lmChatGroq","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.if","n8n-nodes-base.if","n8n-nodes-base.telegram","n8n-nodes-base.telegram","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.telegram","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

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


name: Extract Business Contact Leads from Google Maps with RapidAPI and Google Sheets
author_name: Javier Hita
author_username: javierhita
categories: []
created_at: 2025-07-08T19:55:29.802Z
updated_at: 2025-07-08T19:55:29.802Z
url: https://n8n.io/workflows/5794
scraped_at: 2025-12-24 13:02:41
description:
  Follow me on LinkedIn for more!

  Category: Lead Generation, Data Collection, Business Intelligence

  Tags: lead-generation, google-maps, rapidapi, business-data, contact-extraction, google-sheets, duplicate-prevention, automation

  Difficulty Level: Intermediate

  Estimated Setup Time: 15-20 minutes

  Template Description

  Overview

  This powerful n8n workflow automates the extraction of comprehensive business information from Google Maps using keyword-based searches via RapidAPI's Local Business Data service. Perfect for lead generation, market research, and competitive analysis, this template intelligently gathers business data including contact details, social media profiles, and location information while preventing duplicates and optimizing API usage.

  Key Features

  🔍 Keyword-Based Google Maps Scraping**: Search for any business type in any location using natural language queries
  📧 Contact Information Extraction**: Automatically extracts emails, phone numbers, and social media profiles (LinkedIn, Instagram, Facebook, etc.)
  🚫 Smart Duplicate Prevention**: Two-level duplicate detection saves 50-80% on API costs by skipping processed searches and preventing duplicate business entries
  📊 Google Sheets Integration**: Seamless data storage with automatic organization and structure
  🌍 Multi-Location Support**: Process multiple cities, regions, or countries in a single workflow execution
  ⚡ Rate Limiting & Error Handling**: Built-in delays and error handling ensure reliable, uninterrupted execution
  💰 Cost Optimization**: Intelligent batching and duplicate prevention minimize API usage and costs
  📱 Comprehensive Data Collection**: Gather business names, addresses, ratings, reviews, websites, verification status, and more

  Prerequisites

  Required Services & Accounts
  RapidAPI Account with subscription to "Local Business Data" API
  Google Account for Google Sheets integration
  n8n Instance (cloud or self-hosted)

  Required Credentials
  RapidAPI HTTP Header Authentication** for Local Business Data API
  Google Sheets OAuth2** for data storage and retrieval

  Setup Instructions

  Step 1: RapidAPI Configuration

  Create RapidAPI Account
     Sign up at RapidAPI.com
     Navigate to "Local Business Data" API
     Subscribe to a plan (Basic plan supports 1000 requests/month)

  Get API Credentials
     Copy your X-RapidAPI-Key from the API dashboard
     Note the host: local-business-data.p.rapidapi.com

  Configure n8n Credential
     In n8n: Settings → Credentials → Create New
     Type: HTTP Header Auth
     Name: RapidAPI Local Business Data
     Add headers:
       X-RapidAPI-Key: YOUR_API_KEY
       X-RapidAPI-Host: local-business-data.p.rapidapi.com

  Step 2: Google Sheets Setup

  Enable Google Sheets API
     Go to Google Cloud Console
     Enable Google Sheets API for your project
     Create OAuth2 credentials

  Configure n8n Credential
     In n8n: Settings → Credentials → Create New
     Type: Google Sheets OAuth2 API
     Follow OAuth2 setup process

  Create Google Sheet Structure

  Create a new Google Sheet with these tabs:

  keyword_searches sheet:
  | select | query | lat | lon | country_iso_code |
  |--------|-------|-----|-----|------------------|
  | X | Restaurants Madrid | 40.4168 | -3.7038 | ES |
  | X | Hair Salons Brooklyn | 40.6782 | -73.9442 | US |
  | X | Coffee Shops Paris | 48.8566 | 2.3522 | FR |

  stores_data sheet:
  The workflow will automatically create columns for business data including:
  business_id, name, phone_number, email, website, full_address, rating, 
  review_count, linkedin, instagram, query, lat, lon, and 25+ more fields

  Step 3: Workflow Configuration

  Import the Workflow
     Copy the provided JSON
     In n8n: Import from JSON

  Update Placeholder Values
     Replace YOUR_GOOGLE_SHEET_ID with your actual Google Sheet ID
     Update credential references to match your setup

  Configure Search Parameters (Optional)
     Adjust limit: 1-100 results per query (default: 100)
     Modify zoom: 10-18 search radius (default: 13)
     Change language: EN, ES, FR, etc. (default: EN)

  How It Works

  Workflow Process

  Load Search Criteria: Reads queries marked with "X" from keyword_searches sheet
  Load Existing Data: Retrieves previously processed data for duplicate detection
  Filter New Searches: Smart merge identifies only new query+location combinations
  Process Each Location: Sequential processing prevents API overload
  Configure Parameters: Prepares search parameters from sheet data
  API Request: Calls RapidAPI to extract business information
  Parse Data: Structures and cleans all business information
  Save Results: Stores new leads in stores_data sheet
  Rate Limiting: 10-second delay between requests
  Loop: Continues until all new searches are processed

  Duplicate Prevention Logic

  Search Level: Compares new queries against existing data using query+latitude combination, skipping already processed searches.

  Business Level: Each business receives a unique business_id to prevent duplicate entries even across different searches.

  Data Extracted

  Business Information
  Business name, full address, phone number
  Website URL, Google My Business rating and review count
  Business type, price level, verification status
  Geographic coordinates (latitude/longitude)
  Detailed location breakdown (street, city, state, country, zip)

  Contact Details
  Email addresses (when publicly available)
  Social media profiles: LinkedIn, Instagram, Facebook, Twitter, YouTube, TikTok, Pinterest
  Additional phone numbers
  Direct Google Maps and reviews links

  Search Metadata
  Original search query and parameters
  Extraction timestamp and geographic data
  API response details for tracking

  Use Cases

  Lead Generation
  Generate targeted prospect lists for B2B sales
  Build location-specific customer databases
  Create industry-specific contact lists
  Develop territory-based sales strategies

  Market Research
  Analyze competitor density in target markets
  Study business distribution

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

workflow_json_compressed:
  [encoded data, 7260 characters]


name: Find Top-Performing Instagram Reels & Save Insights to Notion with Gemini & Apify
author_name: Eugene Green
author_username: egrnkvch
categories: []
created_at: 2025-07-08T19:55:45.737Z
updated_at: 2025-07-08T19:55:45.737Z
url: https://n8n.io/workflows/5795
scraped_at: 2025-12-24 13:02:41
description:
  This workflow contains community nodes that are only compatible with the self-hosted version of n8n.

  This template helps you discover trending Instagram Reels from competitors or any public profiles you choose. 

  📺 How It Works 

  The workflow automatically monitors selected Instagram accounts using Apify, pulls recent Reels, and analyzes their performance.  

  It calculates engagement levels, detects early “hot” content, translates text if needed, and organizes all results into a structured Notion database — ready for review and production.

  I've recorded a video walkthrough to show you how the system works in detail.
  👉 https://www.youtube.com/watch?v=rdfRNHpHX8o

  @youtube

  📄 Download Notion Database Structure  
  You can download the Notion table structure (with all required columns and formats) here:  
  👉 https://drive.google.com/file/d/1FVaS_-ztp6PDAJbETUb1dkg8IqE4qHqp/view?usp=sharing

  👤 Who’s it for

  This workflow is for marketers, content creators, social media managers, and automation enthusiasts who want to stay ahead of Instagram Reels trends.  
  Whether you're building a content pipeline or studying competitors, this tool saves hours of manual tracking.

  🔧 How to set up

  Create the required databases in Notion (structure file provided).  
  Import the .json workflow into your n8n instance.  
  Set up credentials for Notion, Apify, and Gemini API.  
  Link those credentials in the workflow.  
  Adjust the Variables node with your test account list and settings.  
  Run a test with 3–5 profiles and validate the output.  
  Once working, update Variables with your full config.

  📋 Requirements

  An n8n instance (self-hosted or cloud)  
  A Notion account (separate workspace recommended)  
  Apify account (usage-based pricing for Instagram scraping)  
  Gemini API key for AI processing (usage-based pricing)

  🧩 How to customize the workflow

  The system is fully modular. You can:
  In the Set Prompt node, you can define your own rules for detecting content categories and video types.
  Change video filters (e.g., what counts as “hot” or “early hot”) 
  Modify Notion fields or adapt to your own database structure  
  Add more parsing logic to Variables  
  Switch translation language 
  Integrate with your content production flow

  Each part of the workflow is clearly labeled and editable — feel free to adapt it to your goals.

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.notion","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.switch","n8n-nodes-base.wait","@apify/n8n-nodes-apify.apify","@apify/n8n-nodes-apify.apify","@apify/n8n-nodes-apify.apify","n8n-nodes-base.notion","n8n-nodes-base.notion","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.notion","n8n-nodes-base.notion","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.if","n8n-nodes-base.httpRequest","n8n-nodes-base.wait","n8n-nodes-base.code","n8n-nodes-base.set","n8n-nodes-base.if","n8n-nodes-base.switch","n8n-nodes-base.splitInBatches","n8n-nodes-base.code","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 9628 characters]


name: Create AI News Avatar Videos with Dumpling AI, GPT-4o and HeyGen
author_name: Yang
author_username: yang
categories: []
created_at: 2025-07-08T20:17:53.025Z
updated_at: 2025-07-08T20:17:53.025Z
url: https://n8n.io/workflows/5796
scraped_at: 2025-12-24 13:02:41
description:
  🧾 What this workflow does

  This workflow automatically generates avatar-style videos from the latest AI-related news using Dumpling AI and HeyGen. It runs every hour, scrapes trending articles, turns them into 30–60 second spoken scripts with GPT-4o, and produces short avatar videos with HeyGen. Finally, it logs the final video URL in a Google Sheet.

  👤 Who is this for

  Newsletters and creators who want to automate AI trend updates  
  Content marketers generating short-form video content  
  Product teams experimenting with AI-generated summaries  
  Automation enthusiasts combining LLMs + video + trending data  

  ⚙️ How to set up

  🔐 Requirements
  Dumpling AI API Key** stored securely as HTTP Header credential  
  HeyGen API Key** added as an HTTP Header credential  
  OpenAI API Key** for GPT-4o (can use GPT-4o-mini if preferred)  
  Google Sheets account** with one column: Video link  

  🛠 Step-by-step setup

  Google Sheet Setup  
     Create a Google Sheet with a single column named: Video link

  Update Credentials  
     Use n8n’s credential manager to add tokens for:  
       Dumpling AI  
       HeyGen  
       OpenAI  
       Google Sheets

  Optional Customizations
     In the "Dumpling AI: Search AI News" node, you can change "query": "AI Agent"  
       to other trending keywords (e.g., "Generative AI", "Autonomous Agents", etc.)
     Update the avatar_id and voice_id in the HeyGen request to match your preferred look/sound

  🧠 How it works

  The Schedule Trigger runs hourly.  
  Dumpling AI searches for fresh news related to "AI Agent."  
  The top 4 news links are scraped for full content.  
  Articles are merged and fed into GPT-4o via a LangChain Agent to produce a casual, conversational video script.  
  HeyGen creates a video using the script, avatar, and voice.  
  The workflow waits until the video rendering is complete.  
  Once done, the final video link is logged into Google Sheets.

  🧪 Customization Ideas

  Change the interval (e.g., every 6 hours, daily)
  Swap avatar/voice in HeyGen to fit your brand
  Expand to post the video directly to social media
  Add image background or B-roll overlays using Creatomate


  This is a fast, automated pipeline to create explainer-style AI news updates using real-time data and generative video tools.

nodes_used:
  ["n8n-nodes-base.scheduleTrigger","n8n-nodes-base.httpRequest","n8n-nodes-base.splitOut","n8n-nodes-base.limit","n8n-nodes-base.httpRequest","n8n-nodes-base.aggregate","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.httpRequest","n8n-nodes-base.wait","n8n-nodes-base.httpRequest","n8n-nodes-base.if","n8n-nodes-base.wait","n8n-nodes-base.googleSheets","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 4720 characters]


name: Find Quality YouTube Videos with Automated Filtering & Relevance Scoring to Google Sheets
author_name: Zach @BrightWayAI
author_username: ajenta
categories: []
created_at: 2025-07-08T20:20:26.382Z
updated_at: 2025-07-08T20:20:26.382Z
url: https://n8n.io/workflows/5797
scraped_at: 2025-12-24 13:02:41
description:
  Who's it for
  Content creators, researchers, educators, and digital marketers who need to discover high-quality YouTube training videos on specific topics. Perfect for building curated learning resource lists, competitive research, or content inspiration.

  What it does
  This workflow automatically searches YouTube using multiple search queries, filters for quality content, scores videos by relevance, and exports the top results to Google Sheets. It processes hundreds of videos and delivers only the most valuable educational content ranked by custom relevance criteria.

  The workflow searches for videos using 10 different AI automation-related queries (easily customizable), filters out low-quality content like shorts and clickbait, then ranks results based on title keywords, view counts, and engagement metrics.

  How it works
  Multi-query search: Searches YouTube with an array of related queries to get comprehensive coverage
  Content filtering: Removes shorts, spam, and low-quality videos using regex patterns
  Quality assessment: Filters videos based on view count, likes, and publication date
  Relevance scoring: Assigns scores based on title keywords and engagement metrics
  Result ranking: Sorts videos by relevance score and limits to top 50 results
  Export to Sheets: Delivers clean, organized data to Google Sheets with all metadata

  Requirements
  YouTube Data API v3 credentials from Google Cloud Console
  Google Sheets credentials for n8n workspace
  A Google Sheets document to receive the results

  How to set up
  Enable YouTube Data API v3 in your Google Cloud Console
  Add YouTube OAuth2 credentials to your n8n workspace
  Add Google Sheets credentials to your n8n workspace
  Create a Google Sheet and update the Google Sheets node with your document ID
  Customize search queries in the "Set Query" node for your topic
  Adjust filtering criteria in the Filter nodes based on your quality requirements

  How to customize the workflow
  Search topics: Modify the query array in the "Set Query" node to research any topic:

  [
  "Python tutorial",
  "JavaScript course", 
  "React beginner guide",
  // Add your queries here
  ]


  Quality thresholds: Adjust minimum views, likes, and date ranges in the "Filter for Quality" node

  Relevance scoring: Customize keyword weightings in the "Relevance Score" node to match your priorities

  Result limits: Change the number of final results in the "Limit" node (default: 50)

  Output format: Modify the "Set Fields" node to include additional YouTube metadata like duration, thumbnails, or category information

  The workflow is designed to be easily adaptable for any research topic while maintaining high content quality standards.

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.wait","n8n-nodes-base.filter","n8n-nodes-base.stickyNote","n8n-nodes-base.splitOut","n8n-nodes-base.splitOut","n8n-nodes-base.filter","n8n-nodes-base.splitInBatches","n8n-nodes-base.httpRequest","n8n-nodes-base.set","n8n-nodes-base.removeDuplicates","n8n-nodes-base.set","n8n-nodes-base.sort","n8n-nodes-base.limit","n8n-nodes-base.googleSheets"]

workflow_json_compressed:
  [encoded data, 6796 characters]


name: Turn YouTube Transcripts into Newsletter Drafts using Dumpling AI + GPT-4o
author_name: Yang
author_username: yang
categories: []
created_at: 2025-07-08T20:25:24.367Z
updated_at: 2025-07-08T20:25:24.367Z
url: https://n8n.io/workflows/5798
scraped_at: 2025-12-24 13:02:41
description:
  🧾 What this workflow does

  This workflow turns YouTube video links into ready-to-edit newsletter drafts using Dumpling AI and GPT-4o. It reads new video URLs from a Google Sheet, extracts their transcripts, summarizes them into email-friendly content, and logs the finished draft back into the same sheet. An email notification is also sent to alert the user once each draft is created.

  👤 Who is this for

  Newsletter writers or marketers repurposing video content  
  YouTube creators building email follow-ups from videos  
  Agencies or VAs batching social → email content  
  Automation users streamlining content workflows

  ⚙️ How to set up

  ✅ Requirements
  Google Sheet** with the following columns:  
    link — YouTube video URL  
    blog post — for saving the generated newsletter draft  
  Active accounts for:  
    Dumpling AI (API for YouTube transcripts)  
    OpenAI GPT-4 or GPT-4o  
    Google Sheets  
    Gmail (OAuth2 credential)

  🔧 Setup steps

  Connect all credentials using n8n's Credential Manager:
     Google Sheets (OAuth2)
     Dumpling AI (via HTTP Header Auth)
     OpenAI
     Gmail

  Update the sheet ID and tab name in both Google Sheets nodes.

  Customize the GPT-4o prompt (optional):
     Located in the “GPT-4o: Write Newsletter Draft from Transcript” node
     You can edit tone, structure, and audience targeting in the system message

  Verify email recipient in the Gmail node and update if needed.

  🧠 How it works

  The workflow is triggered manually or on schedule.
  It pulls YouTube links without drafts from the sheet.
  Each video’s transcript is fetched using Dumpling AI.
  GPT-4o summarizes the transcript into a clean, friendly newsletter format.
  The draft is written back to the same row in Google Sheets.
  An email is sent to notify the user that the draft is ready.

  🛠️ Customization ideas

  Send finished drafts to Notion or Airtable instead of Sheets  
  Generate social media posts from the same transcript  
  Add automatic review steps using GPT scoring or editing  
  Trigger this on new form submissions or YouTube uploads instead

  This is a fast, AI-powered way to turn long-form video content into clean, polished newsletters — ready to share or schedule with minimal editing.

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.googleSheets","n8n-nodes-base.splitInBatches","n8n-nodes-base.httpRequest","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.googleSheets","n8n-nodes-base.gmail","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  H4sIAAAAAAAAE+1Y3W7jxhV+lQG3wG42okxKlEgJWDRee3+c2GvX1na7iYNkODyUaFMcLmcoW2sY6E17WyC9KIoWSC/7CH2efYHmEXrOkJYoS068adGr3PFn5sz5/c535spKImtovT9LvcuLL/d2i/4Xyv1yZrWsKWhuDa+sJFOaZwL2aB13OfREEIm+6Peg73vxQHQHnh85QZeHQvjeAOJOz+tHcTyIvTh23Ai8qM+7fQhj6KNcDdM85Rp2CojUCegy35H4BTTgAboo4bplZXwKeNqoLDL2VpajMgQ2KnimRJHkWrEk05K9gguF2zQUbLfgMX4uVZKN2W6J4uhhe499yl4cjWxP0rl8rKzhV1+jdBkBPV5VtrtOEPC4K2y370a258SxHfYHYHc7Iu47g7jjerG10Ikd8KzkKaqTjMdQDNmJ5oVmb2RxHqfygg6a57QwCzLbnGSHXEF7arbVu3BVLlWiE5mhHnbgtOyOg5rlvMBT0CJU7+q6EvVbfDPr3OtWrXGPB0G/G/l25HZD2/NdsAeOE9tcRDHvdpyYe52lxsfAo4UX95PsXLG4kFP2QspxCuxkAqDVnXqPzarFoobarrdRbUvmtMA8FhjeInueFEofcC0miwDHSUrLX+/RqhlPyzogqZTnlBBpOcUjrDCVY4ZHauv6a9ylSItXxqor65tvirSSh7mK+uLyNMGVrUoevo6T6ImD74KLCUTHoMpUv6ZN1kTrXA23tiIpVG1hW8jplsoLdJY5Rm1FW27Q2X+vy5PsnTiCt/v69eHeC2//bFd1Xp35avftia3ODt4OnMPu0cEWRIl+sOnISmHLuNC10Aw8tZxCpqmi7mPH/9WEX5cqfxIVyQxUdL7ZEswljblkXaMtAqsYTUl4agLezJbD7VJPOtt5YlCE8vYF//zd5y/Lk970N5c8998tc3QlFxkXQpaZNgeslIDX7i+KIHADxwPu2Txyhe2Jno9PnmN3gr7XG/T9CCthecC+lPmQHRVSgFLsGRq1UhJ3pr9CKNF72VPKXrhVAN3+PQpAgbaGMboH1qzpLgsaRB9i30UzuGN7EAo7DPzAdgKv2/UFj0W3CUENhBuyF6A3YOSdBlHeHMM7LDi9ak1vMwpZ5Uq68TxvR/XxPDEZx/Nka+ZujUHb8yozbN3UA0VNJFl5dHgywvele6ikIYueymh+UwEcc4bySfBKLWsMGRSJ2Fnk2YjMalkhbjpaUbSpNkJJ7axZEoGkklnW05OrK/arMyWzNlpxzq6vK3SpT6KsHVWuI6NfYjVBQR+t9XS/teAmz4/3n7/fFi+OIS968Lsvny5D14icjYHZlOGdRVbEiOc8xMYUhoLbHhehHfQ73O65/sB3gmjgQNAoIdPohuxNkWhYa44V5G/Kj89Qj61lkqQ8G4sJT7K2zCHbTlaTJHA2JwkBV3pfPEPxepxr1NYmImD+bYCZnZfbI2PUob2/PXqGuXN9K3mmWMt8DOpWEylkSvvVXCHXINky0xg0/HRqvYQCWIIQw5Y5WvmGL6rIpEybHaWABcMujD85E/haMJ5FDDD1xxTEbOlkqq2IyYzpCUpfym6zk3I65UXyHvAXsHOYMxTPVQtJjErGE41PJFQnuWJqwjHB8I9ZW+tREYyLRE9QCzWR+EIbBEHSnKhQIaNSkFtwF9dsXPAQDdRkM34kAQX+L4tKAyocJmPz3DDAyDfSW4w6CA8RjynIKC6fqEr0BBVOSWmze4qNmZHfq7USVVFt9gx1u1E2IWKHmqYpQ8LGKyULoKhH9GVhJb7kiWizLwBy81XLDDAuCcJDOjf25oWMMd4ogaeVy6b8HJi6sauOMiMWpljG0WA8d85iWTCY8iQ1ZmG+ttmuZJnU6DqRlhHuTqYoR/MpRgAXqxxQcMFSHkJacyWjUiOoz7GFKwq3SDG2utLQpGD71DrNTrN9RGWUep7JC5bEDIHxYcTS5LzSFW2ZYt5p1EoWlSs4nSuSOBGMlxHaLYCUyRKsi7ZFmLBM4yfLOh6yBZg1ErqCtHW8qkq62ZKjKHg1O9jpF7PL4HhvJJd4cmjW3vRi1lnHKrcdLLDK8UO/x3ueLQBiG4m/b2OD9u0ectEBCBF44DW78XgdodAJ/zUldf1+q9dbgydhCOUSJ+iBsP+mGTx6eC+S/PCTNmLBtL3SO1oNltrsLTU4tW/ykmKC/Q7DOeXL4SNdIR9KF4gr+B4lSDz4oisWMJUzmo8MkaD3d2VSND7U62vkrIVGEHOE05p51ysFz57CawSrkVyh5LU+S1vuodSPKtGU9DGaYPCmyDLwyIOqe+DmJIOnUE1XU1qKP3duQvpVZS5uI8jDshrJHZnNoNDUxdXyuOrj8wTSSI3kSWVVTc1uNRask+KGgKAuCEKHxes8QtiyfplCfplCGlNI6Dv9jud5dhT2u8jcO47NwaNRBHjHQezrBIMGcz/BVGLPTDd6JTWhvUkz9gZJbw2DSB8IjOZ3wx9t38TdDS+7gHCCQ7S5rQE39jsD5I6xQ6Ac0j1BdzCwfRH5g0E35HHctW5jJTFy7AO4+5JT+/7MnEdRtRaMi4DuJaSpbDF2mo1WmUSDCgGrCN4CWRs9asIVOyvxXwhoO0bQkAJVCprQ4hJbd5u2IXvIGHXRAmYJXLQYpUfL9GlKiRLjlWjT5BF+sKbDsiI9N/QNF4lzo0pk3EuNOl1tzjyb60nF5yBS1IdQUx6RcqhRCCjcHDKWoLCHz7Af355iyvAMBOH/WlfbqQ0z3WTjnGbIST1xaLjUG+YME4IqkxdpfOY7Rfd4dPBs183Hr7rHjTQ2+fUjjbvTXt4ldSDodpzIs/u9Xmh7kXBtHoe+7flxHASiK0K3kcAnOJmdzyl34e6R2ayplzSvuXo0L3e99enhIoloeqL/1gSIX+ILpnSD8jx48ID98P2f/7lw4Yc/ftekEOgbOTW1ROxrRCT8or6SY3QHpVbZfX2F2Mja6K4rREqYarZqk+jHj2mE+PD7v+IBRIkxLyLMi+Hjx6eZ2zalq0ju6nksvYNSnGYdZJNgbhdusUwi6UAXFZWEWcKbep1m3TbD7qlq5ShtzQTLzbRygdVpqxviH7UqCmwvGPVty08zDwcFPqu1qGol5FQ6t2gZbr3UN+RdFglOQjxtWHma9doG5xBBs5p5Z02suyCsuzV9YLioYczJwz98/7d//Ptff2IjKZF+E0EYnmb2SkweLb30Cf2rXfCoIVHIfF79W1H+UZLlpWafMuwe+FCtMDo+air5CSny4e9/YAeLGQMpfMEadclwVGMKBP5Df2KmxsmYXE1YNFw7eM0CCufEDCSM7jyMIoZy75E1S7Wqqq/88pfvyC9GIKspLbthYebIbykA37JHq7n3+njfiP92QclwSaN2KlewmJgRLrTWL56JXOHwNoMFm1K4FU0x5QuX6AXy2mGB5tCdiyEYs2q/6UT+wHU4jwM7dn3ElrDLEWUCByFBON1owAeBH1aTegZicXv2U3ftdPHAE8IWuu+pWMtH3nab/S0rySK4tIbO9dd0E/RTl4Wbzv15rX3t+FZD4kdd82005F4iNlnzcy+T7nDnfaa9TWrc+9Z247n3S4X//bkf6bzNCnzUgLxBjevr/wCh9JV62xsAAA==


name: Generate Ad Image Variations Using GPT-4, Dumpling AI & Google Drive
author_name: Yang
author_username: yang
categories: []
created_at: 2025-07-08T20:31:08.872Z
updated_at: 2025-07-08T20:31:08.872Z
url: https://n8n.io/workflows/5799
scraped_at: 2025-12-24 13:02:41
description:
  🧾 What this workflow does

  This workflow takes a reference ad image and brand website, then uses GPT-4, LangChain, and Dumpling AI to generate 10 high-quality image variations for ad testing. These image variations are visually consistent but subtly different in background, mood, lighting, and tone — perfect for performance testing on platforms like Meta Ads or TikTok.

  👤 Who is this for

  DTC marketers and brand designers testing ad creatives  
  Creative teams automating visual experimentation  
  Content agencies using AI for fast ad mockups  
  Performance marketers running multivariate testing

  ⚙️ How to set up

  ✅ Requirements

  You’ll need the following tools set up in n8n:
  Google Drive (OAuth2 credential)
  Google Sheets (OAuth2 credential)
  OpenAI API (for GPT-4 or GPT-4o)
  Dumpling AI API (via HTTP header authentication)

  🛠️ Steps to configure

  Google Sheet Setup  
     Create a sheet with one column: Image URL  
     Update the Sheet ID and tab name in the final Google Sheets node.

  Drive Setup  
     Create a folder in Google Drive for storing the reference image.  
     Replace the folderId in the “Upload Ad Image to Google Drive” node.

  Dumpling AI API Key  
     Use n8n’s credential manager (HTTP Header Auth) — do not hardcode the key.

  OpenAI API Key  
     Required for both image description and LangChain agent prompt generation.

  Form Inputs Required
     Brand Name  
     Brand Website  
     Ad Image (upload field)

  🧠 How it works

  A user submits the brand name, website, and a reference ad image through a form.
  The image is uploaded to Google Drive.
  GPT-4o describes the image’s visual style (e.g., mood, lighting, composition).
  GPT-4 analyzes the brand’s website to define its visual aesthetic.
  A LangChain agent uses both analyses to create 10 tightly scoped variation prompts.
  Dumpling AI generates a new image for each prompt using its “FLUX.1-pro” model.
  Each new image’s link is logged into Google Sheets.

  🛠️ How to customize

  🧪 Change prompt logic to experiment with different variations (e.g., theme, season).
  🎨 Switch image model in Dumpling AI to one that supports your desired style.
  🔗 Log additional metadata (prompt, timestamp) to Google Sheets.
  📤 Connect output images to Airtable, Notion, or a review tool like Figma.
  🎯 Modify GPT system message to reflect a different tone or brand strategy.

  This workflow gives creative teams and marketers an instant, AI-powered ad image testing system — built on real brand visuals, not generic stock content.

nodes_used:
  ["n8n-nodes-base.formTrigger","n8n-nodes-base.googleDrive","n8n-nodes-base.googleDrive","@n8n/n8n-nodes-langchain.openAi","@n8n/n8n-nodes-langchain.openAi","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.splitOut","n8n-nodes-base.googleDrive","n8n-nodes-base.splitInBatches","n8n-nodes-base.httpRequest","n8n-nodes-base.googleSheets","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 5600 characters]


name: Create YouTube Shorts Scripts from Video Links with Gemini AI and Telegram
author_name: Taiki
author_username: taiki
categories: []
created_at: 2025-07-09T06:47:21.922Z
updated_at: 2025-07-09T06:47:21.922Z
url: https://n8n.io/workflows/5805
scraped_at: 2025-12-24 13:02:41
description:
  disclaimer: This workflow contains community nodes that are only compatible with the self-hosted version of n8n.

  Quick Summary

  This template automates the creation of YouTube Shorts scripts. Simply send a YouTube video URL to a Telegram bot, and this workflow will use AI (Google Gemini) to generate a script optimized for Shorts and send it back to you. It streamlines your content creation process by eliminating the manual work of transcribing and scriptwriting.

  Target Audience & Problem Solved
  This template is ideal for:
  YouTube Content Creators
  Social Media Marketers
  Anyone looking to efficiently repurpose - - video content

  It solves the following problems:
  Quickly creating engaging short-form video content from existing long-form videos.
  Drastically reducing the time spent on video transcription, summarization, and scriptwriting.
  Enabling content idea generation on the go, even from a smartphone without access to a PC.

  Workflow Overview

  This workflow automatically generates a script for YouTube Shorts using AI (Google Gemini) from a YouTube video URL received via Telegram, and then sends the result back to Telegram.

  The process is as follows:

  Receive URL: A Telegram bot receives a YouTube video URL from a user.
  Get Transcript: It uses the community node n8n-nodes-supadata to retrieve the video's transcript via the Supadata service.
  Generate Script: Based on the retrieved transcript, Google Gemini creates a script (title and body) optimized for a YouTube Shorts video.
  Send Result: The generated script is sent back to the user who sent the original URL via Telegram.

  How to Use

  Prerequisites:
      Install the n8n-nodes-supadata community node as described below.
      Register your API keys for Telegram, Supadata, and Google Gemini as credentials in n8n.
      Set the appropriate credentials in each node within the workflow.
      For Telegram, create your bot with BotFarther.

  Execution:
      Activate the workflow.
      Send a YouTube video URL to your configured Telegram bot.
  Confirmation:
      After a short while, the workflow will run automatically, and you will receive the completed script from the Telegram bot.

  Customization Guide
  You can tailor this template to your specific needs:
  Modify the Prompt: Edit the prompt in the Google Gemini node to change the style of the generated script (e.g., make it more casual, use a specific tone, include emojis).
  Change the AI Model: You can switch to other AI models like OpenAI. Simply add or replace the corresponding n8n node.
  Change the Notification Channel: Replace the Telegram node with a Discord or Slack node to send the results to a different platform.

  Community Node Installation

  This workflow requires the n8n-nodes-supadata community node. Please install it using the following steps.

  Installation from the n8n UI (Recommended)

  Navigate to Settings &gt; Community Nodes in your n8n interface.
  Click on Install.
  Enter n8n-nodes-supadata in the input field and click the Install button.

nodes_used:
  ["n8n-nodes-base.telegram","n8n-nodes-base.telegramTrigger","n8n-nodes-supadata.supadata","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.chainLlm"]

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


name: Create Custom PDF Documents from Templates with Gemini & Google Drive
author_name: Ozgur Karateke
author_username: ozgur4864
categories: []
created_at: 2025-07-09T08:17:53.245Z
updated_at: 2025-07-09T08:17:53.245Z
url: https://n8n.io/workflows/5808
scraped_at: 2025-12-24 13:02:41
description:
  This workflow contains community nodes that are only compatible with the self-hosted version of n8n.

  1 — What Does It Do / Which Problem Does It Solve?

  This workflow turns Google Docs-based contract & form templates into ready-to-sign PDFs in minutes—all from a single chat flow.

  Automates repetitive document creation.** Instead of copying a rental, sales, or NDA template and filling it by hand every time, the bot asks for the required values and fills them in.
  Eliminates human error.** It lists every mandatory field so nothing is missed, and removes unnecessary clauses via conditional blocks.
  Speeds up approvals.** The final draft arrives as a direct PDF link—one click to send for signing.
  One template → unlimited variations.* Every new template you drop in Drive is auto-listed with *zero workflow edits—**it scales effortlessly.
  100 % no-code.** Runs on n8n + Google Apps Script—no extra backend, self-hosted or cloud.

  2 — How It Works (Detailed Flow)

  📝 Template Discovery
      
      📂 The TemplateList node scans the Drive folder you specify via the ?mode=meta endpoint and returns an id / title / desc list. The bot shows this list in chat.
      
  🎯 Selection & Metadata Fetch
      
      The user types a template name.
      
      🔍 GetMetaData opens the chosen Doc, extracts META_JSON, placeholders, and conditional blocks, then lists mandatory & optional fields.
      
  🗣 Data-Collection Loop
      The bot asks for every placeholder value.
      For each conditional block it asks 🟢 Yes / 🔴 No.
          
          Answers are accumulated in a data JSON object.
          
  ✅ Final Confirmation
      
      The bot summarizes the inputs → when the user clicks Confirm, the DocProcess sub-workflow starts.
      
  ⚙️ DocProcess Sub-Workflow
      
      
      | 🔧 Step | Node | Task |
      | --- | --- | --- |
      | 1 | User Choice Match Check | Verifies name–ID match; throws if wrong |
      | 2 | GetMetaData (renew) | Gets the latest placeholder list |
      | 3 | Validate JSON Format | Checks for missing / unknown fields |
      | 4 | CopyTemplate | Copies the Doc via Drive API |
      | 5 | FillDocument | Apps Script fills placeholders & removes blocks |
      | 6 | Generate PDF Link | Builds an export?format=pdf URL |
  📎 Delivery
      
      The master agent sends 🔗 Download PDF & ✏️ Open Google Doc links.
      
  🚫 Error Paths
      status:"ERROR", missing:[…] → bot lists missing fields and re-asks.
      unknown:[…] → template list is outdated; rerun TemplateList.
      Any Apps Script error → the returned message is shown verbatim in chat.

  3 — 🚀 Setup Steps (Full Checklist)

  &gt; Goal: Get a flawless PDF on the first run.
  &gt; 
  &gt; 
  &gt; Mentally tick the ☑️ in front of every line as you go.
  &gt; 

  ☁️ A. Google Drive Preparation

  | Step | Do This | Watch Out For |
  | --- | --- | --- |
  | 1 | Create a Templates/ folder → put every template Doc inside | Exactly one folder; no sub-folders |
  | 2 | Placeholders in every Doc are {{UPPER_CASE}} | No Turkish chars or spaces |
  | 3 | Wrap optional clauses with [[BLOCK_NAME:START]]…[[BLOCK_NAME:END]] | The START tag must have a blank line above |
  | 4 | Add a META_JSON block at the very end | Script deletes it automatically after fill |
  | 5 | Right-click Doc &gt; Details ▸ Description = 1-line human description | Shown by the bot in the list |
  | 6 | Create a second Generated/ folder (for copies) | Keeps Drive tidy |

  &gt; 🔑 Folder ID (long alphanumerical) = &lt;TEMPLATE_PARENT_ID&gt;
  &gt; 
  &gt; 
  &gt; We’ll paste this into the TemplateList node next.
  &gt; 

  Simple sample template → Template Link

  🛠 B. Import the Workflow into n8n

  Settings ▸ Import Workflow ▸ DocAgent.json


  If nodes look Broken afterwards → no community-node problem; you only need to select credentials.

  📑 C. Customize the TemplateList Node

  Open Template List node ⚙️ → replace
      
      '%3CYOUR_PARENT_ID%3E' in parents
      
      with the real folder ID in the URL.
      
  Right-click node &gt; Execute Node.
  Copy the entire JSON response.
  In the editor paste it into:
      DocAgent → System Prompt (top)
      User Choice Match Check → System Prompt (top)
          
          Save.
          

  &gt; ⚠️ Why manual? Caching the list saves LLM tokens. Whenever you add a template, rerun the node and update the prompts.
  &gt; 

  🔗 D. Deploy the Apps Script

  | Step | Screen | Note |
  | --- | --- | --- |
  | 1 | Open Gist files GetMetaData.gs + FillDocument.gs → File ▸ Make a copy | Both files may live in one project |
  | 2 | Project Settings &gt; enable Google Docs API ✔️ & Google Drive API ✔️ | Otherwise you’ll see 403 errors |
  | 3 | Deploy ▸ New deployment ▸ Web app |  |
  | • Execute as | Me |  |
  | • Who has access | Anyone |  |
  | 4 | On the consent screen allow scopes:• …/auth/documents• …/auth/drive | Click Advanced › Go if Google warns |
  | 5 | Copy the Web App URL (e.g. https://script.google.com/macros/s/ABC123/exec) | If this URL changes, update n8n |

  Apps Script source code → Notion Link

  🔧 E. Wire the Script URL in n8n

  | Node | Field | Action |
  | --- | --- | --- |
  | GetMetaData | URL | &lt;WEB_APP_URL&gt;?mode=meta&id={{ $json["id"] }} |
  | FillDocument | URL | &lt;WEB_APP_URL&gt; |

  &gt; 💡 Prefer using an .env file? Add GAS_WEBAPP_URL=… and reference it as {{ $env.GAS_WEBAPP_URL }}.
  &gt; 

  🔐 F. Add Credentials

  Google Drive OAuth2* → *Drive API (v3) Full Access
  Google Docs OAuth2** → same account
  LLM key** (OpenAI / Gemini)
  (Optional) Postgres Chat Memory credential for the corresponding node

  🧪 G. First Run (Smoke Test)

  Switch the workflow Active.
  In the chat panel type /start.
  Bot lists templates → pick one.
  Fill mandatory fields, optionally toggle blocks → Confirm.
  🔗 Download PDF link appears → ☑️ setup complete.

  ❌ H. Common Errors & Fixes

  | 🆘 Error | Likely Cause | Remedy |
  | --- | --- | --- |
  | 403: Apps Script permission denied | Web app access set to User | Redeploy as Anyone, re-authorize scopes |
  | placeholder validation failed | Missing required field | Provide the listed values → rerun DocProcess |
  | unknown placeholders: … | Template vs. agent mismatch | Check placeholder spelling (UPPER_CASE ASCII) |
  | Template ID not found | Prompt list is old | Rerun TemplateList → update both prompts |
  | Cannot find META_JSON | No meta block / wrong tag | Add [[META_JSON_START]] … [[META_JSON_END]], retry |

  ✅ Final Checklist

  [ ]  Drive folder structure & template rules ready
  [ ]  Workflow imported, folder ID set in node
  [ ]  TemplateList output pasted into both prompts
  [ ]  Apps Script deployed, URL set in nodes
  [ ]  OAuth credentials & LLM key configured
  [ ]  /start test passes, PDF link received

  🙋‍♂️ Need Help with Customizations?

  Reach out for consulting & support on LinkedIn: Özgür Karateke

  Full Documentation → Notion

  Simple sample template → Template Link

  Apps Script source code → Notion Link

nodes_used:
  ["@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.httpRequestTool","@n8n/n8n-nodes-langchain.chatTrigger","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.toolWorkflow","@n8n/n8n-nodes-langchain.memoryPostgresChat","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.executeWorkflowTrigger","n8n-nodes-base.if","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.set","n8n-nodes-base.if","n8n-nodes-base.set","n8n-nodes-base.switch","n8n-nodes-base.googleDrive","n8n-nodes-base.httpRequest","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.set","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.httpRequest","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.code","n8n-nodes-base.set","n8n-nodes-base.if","n8n-nodes-base.httpRequest","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set"]

workflow_json_compressed:
  [encoded data, 13984 characters]


name: Automated Product Inquiry Responder with GPT-4 and Google Sheets
author_name: Dmytro
author_username: dima-ai
categories: []
created_at: 2025-07-09T08:18:47.539Z
updated_at: 2025-07-09T08:18:47.539Z
url: https://n8n.io/workflows/5809
scraped_at: 2025-12-24 13:02:41
description:
  AI-Powered Product Assistant for E-commerce

  Transform your online store customer service with an intelligent AI assistant that automatically processes customer inquiries, searches your product database, and provides personalized responses about product availability, pricing, and specifications. Perfect for shoe stores, fashion retailers, and any business with extensive product catalogs - this workflow eliminates manual customer service while increasing response speed and accuracy.

  How it works
  Customer sends product inquiry via webhook (Instagram DM, website chat, or messaging app)
  AI extracts key product details (brand, model, size, color) from natural language text
  System searches your Google Sheets product database with smart filtering
  AI generates friendly, personalized response with availability, pricing, and stock information
  Automatic response sent back to customer with product details or alternatives

  Screenshots:
  Customer inquiry: "Do you have Nike Air Max 40 size?"
  AI response: "Nike Air Max 90, size 40 - in stock 3 pieces, price 120$"

  Set up steps
  Prepare your product database - Create Google Sheets with columns: Brand, Model, Size, Color, Price, Quantity
  Configure AI settings - Connect OpenAI API for natural language processing  
  Set up webhook endpoint - Configure trigger for your messaging platform (Instagram, Telegram, website chat)
  Test with sample inquiries - Verify AI correctly parses requests and finds products
  Deploy and monitor - Launch your automated assistant and track performance

  Time investment: 30-45 minutes setup, works immediately with any product catalog up to 1000+ items.

nodes_used:
  ["@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.stickyNote","n8n-nodes-base.webhook","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.code","n8n-nodes-base.googleSheets","n8n-nodes-base.code","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.respondToWebhook"]

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


name: Find leads on Google Maps and reach out automatically (GPT-4 + Airtable + Gmail)
author_name: Baptiste Fort
author_username: baptistefort
categories: []
created_at: 2025-07-09T08:48:36.876Z
updated_at: 2025-07-09T08:48:36.876Z
url: https://n8n.io/workflows/5811
scraped_at: 2025-12-24 13:02:45
description:
  Who is it for?  
  This workflow is perfect for marketers, sales teams, agencies, and local businesses who want to save time by automating lead generation from Google Maps.  

  It’s ideal for real estate agencies, restaurants, service providers, and any local niche that needs a clean database of fresh contacts, including emails, websites, and phone numbers.  

  ✅ Prerequisites  

  Before starting, make sure you have:  

  Apify account** → to scrape Google Maps data  
  OpenAI API key** → for GPT-4 email extraction  
  Airtable account & base** → for structured lead storage  
  Gmail account with OAuth** → to send personalized outreach emails  

  Your Airtable base should have these columns:  

  | Title                   | Street                  | Website            | Phone Number    | Email                  | URL                  |
  |-------------------------|-------------------------|--------------------|-----------------|------------------------|----------------------|
  | Paris Real Estate Agency| 10 Rue de Rivoli, Paris | https://agency.fr  | +33 1 23 45 67  | contact@agency.fr      | maps.google.com/...  |

  🏡 Example Use Case  

  To keep things clear, we’ll use real estate agencies in Paris as an example.  
  But you can replace this with restaurants, plumbers, lawyers, or even hamster trainers (you never know).  

  🔄 How the workflow works  

  Scrape Google Maps leads with Apify  
  Clean & structure the data (name, phone, website)  
  Visit each website & extract emails with GPT-4  
  Save all leads into Airtable  
  Automatically send a personalized email via Gmail  

  This works for any industry, keyword, or location.  

  Step 1 – Scraping Google Maps with Apify



  Start simply:

  Open your n8n workflow and choose the trigger: “Execute Workflow” (manual trigger).

  Add an HTTP Request node (POST method).

  Now, head over to Apify Google Maps Extractor.

  Fill in the fields according to your needs:

  Keyword: e.g., "real estate agency" (or restaurant, plumber...)

  Location: "Paris, France"

  Number of results: 50 (or more)

  Optional: filters (with/without a website, by categories…)

  Click Run to test the scraper.

  Then click API → select API endpoints tab.

  Choose “Run Actor synchronously and get dataset items”.

  Copy the URL, go back to n8n, and paste it into your HTTP Request node (URL field).



  Then enable:

  Body Content Type → JSON

  Specify Body Using JSON

  Go back to Apify, click the JSON tab, copy everything, and paste it into the JSON field of your HTTP Request.

  If you now run your workflow, you'll get a nice structured table filled with Google Maps data. Pretty magical already—but we're just getting started!

  Step 2 – Cleaning Things Up (Edit Fields)




  Raw data is cool, but messy.

  Add an Edit Fields node next, using Manual Mapping mode.

  Here’s what you keep (copy-paste friendly):

  Title → {{ $json.title }}

  Address → {{ $json.address }}

  Website → {{ $json.website }}

  Phone → {{ $json.phone }}

  URL → {{ $json.url }}

  Now, you have a clean, readable table ready to use.

  Step 3 – Handling Each Contact Individually (Loop Over Items)



  Next, we process each contact one by one.

  Add the Loop Over Items node:

  Set Batch Size to 20 or more, depending on your needs.

  This node is simple but crucial to avoid traffic jams in the automation.

  Step 4 – Isolating Websites (Edit Fields again)



  Add another Edit Fields node (Manual Mapping).
  This time, keep just:

  Website → {{ $json.website }}

  We've isolated the websites for the next step: scraping them one by one.

  Step 5 – Scraping Each Website (HTTP Request)



  Now, we send our little robot to visit each website automatically.

  Add another HTTP Request node:

  Method: GET

  URL: {{ $json.website }} (from the previous node)

  This returns the raw HTML content of each site. Yes, it's ugly, but we won't handle it manually. We'll leave the next step to AI!

  Step 6 – Extracting Emails with ChatGPT



  We now use OpenAI (Message a Model) to politely ask GPT to extract only relevant emails.

  Configure as follows:

  Model: GPT-4-1-mini or higher

  Operation: Message a Model

  Simplify Output: ON

  Prompt to copy-paste:

  Look at this website content and extract only the email I can contact this business. In your output, provide only the email and nothing else. Ideally, this email should be of the business owner, so if you have 2 or more options, try for the most authoritative one. If you don't find any email, output 'Null'.

  Exemplary output of yours:
  name@examplewebsite.com

  {{ $json.data }}

  ChatGPT will kindly return the perfect email address (or 'Null' if none is found).

  Step 7 – Neatly Store Everything in Airtable



  Almost done! Add an Airtable → Create Record node.

  Fill your Airtable fields like this:

  | Airtable Field | Content                     | n8n Variable                           |
  | ------------------ | ------------------------------- | ------------------------------------------ |
  | Title              | Business name                   | {{ $('Edit Fields').item.json.Title }}   |
  | Street             | Full address                    | {{ $('Edit Fields').item.json.Address }} |
  | Website            | Website URL                     | {{ $('Edit Fields').item.json.Website }} |
  | Phone Number       | Phone number                    | {{ $('Edit Fields').item.json.Phone }}   |
  | Email              | Email retrieved by the AI agent | {{ $json.message.content }}              |
  | URL                | Google Maps link                | {{ $('Edit Fields').item.json.URL }}     |


  Now, you have a tidy Airtable database filled with fresh leads, ready for action.

  Step 8 – Automated Email via Gmail (The Final Touch)



  To finalize the workflow, add a Gmail → Send Email node after your Airtable node.

  Here’s how to configure this node using the data pulled directly from your Airtable base (from the previous step):

  Recipient (To): Retrieve the email stored in Airtable ({{ $json.fields.Email }}).

  Subject: Use the company name stored in Airtable ({{ $json.fields.Title }}) to personalize the subject line.

  Body: You can include several fields directly from Airtable, such as:

  Company name: 
  {{ $json.fields.Title }}

  Website URL: 
  {{ $json.fields.Website }}

  Phone number: 
  {{ $json.fields["Phone Number"] }}

  Link to the Google Maps listing: 
  {{ $json.fields.URL }}

  All of this data is available in Airtable because it was automatically inserted in the previous step (Step 7). 

  This ensures that each email sent is fully personalized and based on clear, reliable, and structured information.

nodes_used:
  ["n8n-nodes-base.httpRequest","n8n-nodes-base.set","n8n-nodes-base.manualTrigger","n8n-nodes-base.splitInBatches","n8n-nodes-base.set","n8n-nodes-base.httpRequest","@n8n/n8n-nodes-langchain.openAi","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.gmail","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 6848 characters]


name: Auto-Import Contacts from Google Sheets to MailChimp Subscriber Lists
author_name: Femi Ad
author_username: hgray
categories: []
created_at: 2025-07-09T09:03:06.948Z
updated_at: 2025-07-09T09:03:06.948Z
url: https://n8n.io/workflows/5812
scraped_at: 2025-12-24 13:02:41
description:
  Google Sheets to MailChimp Auto-Importer

  Overview
  This n8n workflow automatically imports contacts from Google Sheets into your MailChimp mailing list. Perfect for businesses collecting leads through Google Forms, event registrations, or maintaining contact lists in spreadsheets.

  Key Features
  📊 Bulk Import: Process entire Google Sheets at once
  🔄 Smart Name Parsing: Automatically splits full names into first and last names
  📱 Phone Number Support: Includes phone numbers as merge fields
  ⚡ Error Resilience: Continues processing even if individual contacts fail
  📝 Import Summary: Generates a summary of processed contacts

  Prerequisites
  Before using this workflow, ensure you have:
  An active n8n instance (self-hosted or cloud)
  A Google account with access to Google Sheets
  A MailChimp account with at least one audience/list created
  Basic understanding of n8n workflows

  Initial Setup

  Step 1: Import the Workflow
  Copy the workflow JSON
  In n8n, click "Import from File" or paste the JSON
  Save the workflow with a meaningful name

  Step 2: Configure Google Sheets Connection
  Click on the "Get Google Sheet Data" node
  Click on "Credential to connect with"
  Select "Create New" and choose "Google Sheets OAuth2"
  Follow the OAuth flow to authenticate your Google account
  Save the credentials

  Step 3: Configure MailChimp Connection
  Click on the "Add to MailChimp" node
  Click on "Credential to connect with"
  Select "Create New" and choose "MailChimp OAuth2" or "MailChimp API"
  For API method:
     Log into MailChimp
     Go to Account → Extras → API keys
     Generate a new API key
     Copy and paste it into n8n
  Save the credentials

  Step 4: Configure Your Specific Settings

  Google Sheets Settings:
  Open the "Get Google Sheet Data" node
  Replace YOUR_GOOGLE_SHEET_ID with your actual sheet ID
     Find this in your Google Sheets URL: https://docs.google.com/spreadsheets/d/[SHEET_ID]/edit
  Replace YOUR_SHEET_NAME with your worksheet name (e.g., "Sheet1" or "Form Responses 1")

  MailChimp Settings:
  Open the "Add to MailChimp" node
  Replace YOUR_MAILCHIMP_LIST_ID with your audience ID
     Find this in MailChimp: Audience → Settings → Audience name and defaults
  Verify the status is set to "subscribed"

  Google Sheets Format Requirements

  Your Google Sheet must have the following columns (exact names):
  Names**: Full name of the contact (e.g., "John Doe")
  Email address**: Valid email address
  Phone Number**: Contact phone number (optional)

  Example:
  | Names | Email address | Phone Number |
  |-------|--------------|--------------|
  | John Doe | john@example.com | +1234567890 |
  | Jane Smith | jane@example.com | +0987654321 |

  How to Use

  Manual Execution:
  Open the workflow in n8n
  Click "Execute Workflow"
  Monitor the execution progress
  Check the output of "Create Import Summary" for results

  Scheduling (Optional):
  To run this automatically:
  Replace the "Manual Trigger" node with a "Schedule Trigger" node
  Set your desired schedule (e.g., daily at 9 AM)
  Activate the workflow

  Customization Options

  Adding More Fields:
  To include additional fields like company name or address:
  Add columns to your Google Sheet
  Modify the "Edit Fields" node to include new fields
  Update the "Format Subscriber Data" code to map new fields
  Add corresponding merge fields in the MailChimp node

  Handling Duplicates:
  The workflow uses "continueRegularOutput" error handling, which means:
  Existing subscribers will be skipped
  New subscribers will be added
  The workflow continues processing

  Adding Email Notifications:
  To receive import summaries via email:
  Add a Gmail or Email node after "Create Import Summary"
  Configure with your email settings
  Use the import summary data in the email body

  Troubleshooting

  Common Issues:

  "Invalid API Key" (MailChimp)
     Verify your API key is correct
     Check that your MailChimp account is active

  "Sheet not found" (Google Sheets)
     Verify the sheet ID is correct
     Ensure the service account has access to the sheet

  "Email already exists" errors
     This is normal for existing subscribers
     The workflow will continue processing other contacts

  Missing data in MailChimp
     Check that column names match exactly (case-sensitive)
     Verify data exists in the Google Sheet

  Best Practices

  Test First: Always test with a small dataset first
  Backup Data: Export your MailChimp list before large imports
  Clean Data: Ensure email addresses are valid before importing
  Monitor Regularly: Check import summaries for any issues
  Respect Privacy: Only import contacts who have consented to receive emails

  Support
  For issues specific to:
  n8n platform: Visit n8n Community Forum
  Google Sheets API: Check Google Developers Documentation
  MailChimp API: See MailChimp API Documentation
  Need help customizing?
  Contact me for consulting and support or add me on LinkedIn - https://www.linkedin.com/in/femi-adedayo-h44/

  License
  This workflow template is provided free for personal and commercial use. Feel free to modify and share!

nodes_used:
  ["n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.manualTrigger","n8n-nodes-base.code","n8n-nodes-base.mailchimp","n8n-nodes-base.set","n8n-nodes-base.googleSheets"]

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


name: Automated Inventory Management with Airtable PO Creation & Supplier Emails
author_name: iamvaar
author_username: iamvaar
categories: []
created_at: 2025-07-09T09:45:50.624Z
updated_at: 2025-07-09T09:45:50.624Z
url: https://n8n.io/workflows/5815
scraped_at: 2025-12-24 13:02:41
description:
  In-depth description of this automation:

  This is a fully automated daily supply chain and procurement workflow that keeps product stock levels healthy and suppliers updated, by automatically generating and emailing purchase orders (POs) and syncing PO statuses in Airtable.

  📅 Daily triggers

  Two Schedule Trigger nodes run:

    One runs at midnight (00:00) to manage low stock and new purchase order creation.
    Another runs at 1:00 AM to process existing pending POs and email suppliers.

  🚦 Step-by-step breakdown

  1️⃣ Get Products with low stock

  Searches the “Products Table” in Airtable for items where {stock_level} &lt;= {reorder_threshold}.
  Detects products that need restocking.

  2️⃣ Get supplier details

  Fetches supplier data for each low-stock product using its supplier_id.

  3️⃣ Calculate Dynamic Reorder Quantity

  JS code calculates an optimal reorder quantity:

    Uses average_daily_sales × (lead_time × 1.5) × safety_margin (1.2)
    Adds extra buffer so the new order covers both immediate demand and next cycle.

  4️⃣ Search existing POs

  Looks in the “Purchase Orders” table for active POs (status Pending or Sent) matching each product.
  Prevents duplicate orders.

  5️⃣ Remove duplicate product orders

  JS node compares current low-stock products with existing POs.
  Filters out products already covered, so new POs are only created for truly uncovered products.

  6️⃣ Create new purchase orders

  For filtered products, creates new PO records in Airtable with:

    product_name
    product_id
    calculated reorder_qty
    supplier info and email
    initial status Pending

  📧 Process existing pending purchase orders and email suppliers

  7️⃣ Get Purchase Orders which are pending

  Searches Airtable for all POs with status Pending.

  8️⃣ Group products with suppliers

  JS code groups these POs by supplier_id.
  Builds a summary (total products, total quantity) and an HTML email with a styled table of items.

  9️⃣ Send PO emails to suppliers

  Uses Brevo (SendInBlue) to send emails.
  Subject and content include supplier-specific order details.

  🔄 Update PO statuses to Sent

  Extracts Airtable record IDs of the sent POs.
  Updates those POs in Airtable, changing status from Pending → Sent.

  📌 Summary

  ✅ Runs every day
  ✅ Dynamically calculates reorder needs
  ✅ Avoids duplicate purchase orders
  ✅ Automatically creates purchase orders in Airtable
  ✅ Groups & emails daily PO summaries to suppliers
  ✅ Updates PO status after sending email

  ⚙ Tables involved

  Products Table:** stores products, stock levels, reorder thresholds, average daily sales, supplier references.
  Suppliers Table:** stores supplier emails and metadata.
  Purchase Orders Table:** tracks product orders with supplier IDs, status, quantities, etc.

  This workflow makes daily procurement fully automated: detects risk of stockouts, creates POs smartly, keeps suppliers in sync by email, and updates order statuses in one closed loop — perfect for any small or mid-sized business using Airtable + N8N.

nodes_used:
  ["n8n-nodes-base.airtable","n8n-nodes-base.airtable","n8n-nodes-base.code","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.airtable","n8n-nodes-base.airtable","n8n-nodes-base.code","n8n-nodes-base.stickyNote","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.airtable","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.airtable","n8n-nodes-base.stickyNote","n8n-nodes-base.sendInBlue"]

workflow_json_compressed:
  H4sIAAAAAAAAE6VXTXPbNhT8KxhdehE8AIhPH5tkOjk0TpO2l04O+HiwOJFJDQna9WT03/to2ZFsU5GY3iQOiLdvsbsP/La4geIXl98WddMX30R4nxaXi6BNxbMGqYWpYs7gow6KW+tVqEIMzEoWGePMgqmCtB5EMM7hKrDALF8sFwVuNmtf4E0Hqf8MZdi8afEJFMACpRtgu1w0bYJ+cfkPVh+rZpCMc+Oo8jZQKSpBA5eWupBlcjpCcAF3bvwN4OrfoJCPXZuGWHpyV5cVWbd3pC9t/DqWv9+Mixrb0IcqNPgeLnzdFR/WgAs2bV+Xum2wPBWVZEuqJPuCz32H+xfoENi37W6jv/Hfw1JxwbfLR7RSh5yi0TQIKank3lGvrabMRQuImzltn6Pth81mXUNH3iLn9bonue1IWbU97KGTzWNLs3vgYn4PttJeQQ6URZ+oVMxSa1hFHedC8syClWbfwxu/jsN4puTtPT6qI/kEtO0SdvTH4JtSl/ujqCP+fIGYO3Ym4u94TWIyGZ5olSRDvEbRoLShGnQI1nABld/j/TQ05N0tdPfk9zqRD/X1qhzF18cVpGENf3b19TV0L8lVZ5LLL/ZgFYtSiCpQWyWDcmaSeoE0G/SQY8EJZw/kjD4Zmd0MXVwhINJBRGp7Ujfk6bhn6kEjZGHn6cE4rcBXSKjwVDqVqGfIdI6Zq4CuDOKA38/gEewT0tkAFTsb4HLh13f+vr8aymYob/0YWbsMeQTOLVKauaRaC0Fl1pHaKCSFyEUVpbfMwIEw4Ka9RRUPaMc4sv6YI+RqFPPxTiZEvIuOc7r4jjVGEzimKE02WyqjwAhRaDqVnLfIdMJcPSC51PHrPfnQluMS6B/WPC55hk6PHLvX6BaxbQo0BfdavNLw3m6jTEEA1RVmhEwc7cbAUWkS90GnnJI4QPpoIbL30M94jVejcNFwc7zmqlCBt56qwFC4PGhqdRUpj8YGnEpRufRidDwZbXfm5G5Vo5Z9hxaEJtXN9Vw9810An8b9bIgErxMXicYAGnFboN6FQDkTWUmpeGDVAe6uHTbfJ8Ru6D0NlVmq3SXvGVD3ogWrKmkq6r0Zwwyl4A2g1YKyaLegnNXPCS6rpxAjdfqlJ20mH6/mgDQjn5LNACmMgkobSbkwqFcfM3UiIrlKyaAxCVx2e5B/bdLo/RHnxyucvr4MPSkt6UdfzDx8de4oOzh7NHrlXcqUW4dEahWoS1FRHXkVg4g8cz2ZA3x+EHAp/k8QgBEqm8yoVZ5jZEGkPuNFLQNI4XIWWpvDudCkkdKRyyd1ktvak3c3eO05Dh5fe9/8uh5eCWEk15wWAt/iCuyngTi++tDeixmFTxDDuCteOsfac6bBw5tLvCkn+HdxybZfviCCV6k3VWJm4EwWmrrNHK116l48WeG4a6fqnGefo4WOQTzW0k9enqfr/zBHpxCcK+mX5ZbPejgRidP6+nHlA7A7lZwQ81Rz5189JxGefP0lxnO+I6YPYfq+eVxjJy03qbbzpuzRqvOUOnkgcz60JnBst/8B7oLBlNgPAAA=


name: Build a Weekly AI Trend Alerter with arXiv and Weaviate
author_name: Mary Newhauser
author_username: maryn
categories: []
created_at: 2025-07-09T11:18:42.191Z
updated_at: 2025-07-09T11:18:42.191Z
url: https://n8n.io/workflows/5817
scraped_at: 2025-12-24 13:02:41
description:
  Build a Weekly AI Trend Alerter with arXiv and Weaviate
  Ditch the endless scroll for AI trends. Meet Archi, your personal AI research assistant that hits you up once a week with everyone you need to know. 🧑🏽‍🔬

  This workflow scrapes AI and machine learning article abstracts from arXiv, enriches them with topic categories using a LLM, and embeds them in a Weaviate vector store. The vector store is then used as a tool for agentic RAG to write a concise, easy-to-read summary of the week in AI research.

  The final output is a short, weekly email sent to the address of your choice that summarizes key AI research trends and future research directions, with links directly to the most interesting and impactful arXiv papers of the week.

  Who it's for
  This workflow is for anyone who can't keep up with all the latest AI advances. Coding skills are not required.

  How it works
  This is a contiguous workflow that can be summarized in two main parts: a data pipeline that fetches and embeds articles in Weaviate, and an agentic workflow that generates a weekly email summary.
  Part 1: Automatically fetch newly published articles on a weekly basis
  Fetch article abstracts (and metadata) from arXiv's free API
  Pre-process abstract data
  Enrich each article with a primary topic, secondary topics, and estimated potential impact of the research using a LLM
  Post-process data
  Insert data and embeddings into Weaviate
  Part 2: Use an AI Agent and Weaviate to generate a weekly summary email
  Add Weaviate as a Tool to an AI agent node
  Query Weaviate, agentically, to generate a report on the most important research trends of the week
  Post-process data
  Send the summary via email

  Prerequisites
  An existing Weaviate cluster. You can view instructions for setting up a local cluster with Docker here or a Weaviate Cloud cluster here.
  API keys to generate embeddings and power chat models. We use a combination of OpenRouter and OpenAI models. Feel free to switch out the models as you like.
  An email address with STMP privileges. This is the address the email will come from. In this demo we use a personal Gmail address. You can create a new credential to link a STMP Account using these instructions.
  Self-hosted n8n instance. See this video for how to get set up in just three minutes.

  How to run the workflow
  Go through the prerequisites, creating a Weaviate cluster (can be local or cloud), downloading self-hosted n8n, creating STMP privileges for your email account, and adding your API keys and other credentials.
  Select the embedding and chat models you'd like to use.
  Enter the email addresses you want to send the email from and to.
  Let it rip.

  Workflow output
  The output for this workflow is a weekly email that summarizes key research trends and future research directions based on AI and ML papers published on arXiv. 

  Here's an example of a summary email:

  Hey there,

  Here's a quick rundown of the key trends in Machine Learning research from the past week.

  *  Key Research Trends This Week*

  This week saw significant advancements in retrieval-augmented systems, foundation models for specialized domains, and techniques balancing efficiency with performance.

  Advanced RAG Architectures**: Researchers are developing sophisticated RAG frameworks that go beyond simple document retrieval, with  AdaPCR  introducing passage combination retrieval and  UrbanMind  proposing a framework for urban intelligence with multilevel optimization.
      
  Foundation Models for Tabular Data**: The  Real-TabPFN  shows that targeted continued pre-training on real-world datasets can significantly boost the performance of foundation models for tabular data, outperforming models trained on broader, potentially noisier datasets.
      
  Efficiency-Focused Techniques**: Researchers are developing resourceful methods that maintain performance without expensive computations, like  logit reweighting  for topic-focused summarization and  strategic querying  for privacy-preserving personalization.
      

  *  Future Research Directions*

  Based on current trends, we expect to see the following developments in the near future:

  Explainable RAG Systems**: Following the  source attribution  work in RAG systems, we can expect more research into making complex retrieval systems transparent and explainable for users.
      
  Cross-Domain and Cross-Modal Fusion**: The promising performance of vision-language and code-specialized LLMs in  retrieval tasks  points toward unified retrievers capable of handling text, code, images, and multimodal content.
      
  Data-Centric Synthetic Generation**: As shown by work on  synthetic relational tabular data, we'll likely see more sophisticated approaches to generating high-quality synthetic data for pre-training foundation models in specialized domains.
      

  This week highlights how researchers are making AI more efficient, explainable, and applicable to specialized domains. Look out for more developments in RAG systems, tabular foundation models, and privacy-preserving AI techniques in the coming weeks.

  Until next week,

  Archi  

  Want to make it better?
  Feel free to tweak, build on, or completely reconfigure this workflow. If you come up with something cool, let us know and we might just share it with our community! 💚

nodes_used:
  ["@n8n/n8n-nodes-langchain.vectorStoreWeaviate","@n8n/n8n-nodes-langchain.documentDefaultDataLoader","n8n-nodes-base.httpRequest","n8n-nodes-base.xml","n8n-nodes-base.removeDuplicates","@n8n/n8n-nodes-langchain.memoryBufferWindow","@n8n/n8n-nodes-langchain.embeddingsOpenAi","@n8n/n8n-nodes-langchain.lmChatOpenRouter","@n8n/n8n-nodes-langchain.vectorStoreWeaviate","@n8n/n8n-nodes-langchain.embeddingsOpenAi","n8n-nodes-base.dateTime","n8n-nodes-base.markdown","@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.lmChatOpenRouter","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.merge","@n8n/n8n-nodes-langchain.lmChatOpenRouter","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.dateTime","n8n-nodes-base.splitOut","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.set","n8n-nodes-base.aggregate","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.set","n8n-nodes-base.emailSend","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 16792 characters]


name: Automated Thai Content Creation & Publishing with Ollama, Gemini & Telegram
author_name: athipat
author_username: sirikaew
categories: []
created_at: 2025-07-09T11:34:23.019Z
updated_at: 2025-07-09T11:34:23.019Z
url: https://n8n.io/workflows/5818
scraped_at: 2025-12-24 13:02:41
description:
  Automated AI Content Publisher
  This n8n workflow is your all-in-one solution for automated content creation and publishing. It intelligently crafts unique articles in Thai, generates captivating AI images, and seamlessly publishes them to your website while notifying you via Telegram. Say goodbye to manual content pipelines and hello to effortless, AI-driven publishing.

  How It Works
  This workflow kicks off when new news data hits your designated Google Sheet, then it springs into action:

  Smart Image Selection: An AI analyzes your news content to decide if a general photorealistic image or a more artistic, risoprint-style AI image is the best fit.

  Article Generation: Another AI drafts a high-quality, long-form article in flawless Thai, adapting its format (listicle or analytical) to perfectly suit the topic.

  SEO & Marketing Boost: A specialized AI then optimizes your content by generating concise titles, engaging excerpts, and relevant tags in both Thai and English. It also creates the perfect prompts for image generation.

  AI Image Creation: Leveraging Google Gemini, the workflow generates stunning visuals, producing either photorealistic or artistic risoprint-style images based on the AI's prompts.

  Seamless Publishing: Your newly created article, complete with its AI-generated image and all metadata, is automatically posted to your website.

  Instant Notifications: You'll get a quick ping on Telegram with a summary of the new post, so you're always in the loop.

  Setup
  To get this workflow up and running, you'll need to configure a few things:

  Google Sheet: Link your Google Sheet and specify the sheet name and the column containing your news description.

  Ollama: Set up your Ollama API credentials to connect the workflow to your local or remote Ollama instance.

  Google Gemini API: Provide your Google Gemini API key to enable AI image generation.

  Website API: Create a credential for your website, including its posting URL, an API Key for authentication, and your desired user_id and username for posts. You can also add optional fields like bgColor, LinkAff, postType, and embeddedContent here.

  Telegram: Set up your Telegram API credential with your bot token and the chatId where you want to receive notifications.

nodes_used:
  ["@n8n/n8n-nodes-langchain.lmOllama","n8n-nodes-base.httpRequest","n8n-nodes-base.telegram","n8n-nodes-base.httpRequest","n8n-nodes-base.convertToFile","@n8n/n8n-nodes-langchain.lmOllama","@n8n/n8n-nodes-langchain.chainLlm","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.code","n8n-nodes-base.if","n8n-nodes-base.convertToFile","n8n-nodes-base.code","n8n-nodes-base.if","n8n-nodes-base.code","n8n-nodes-base.httpRequest","n8n-nodes-base.readWriteFile","n8n-nodes-base.extractFromFile","n8n-nodes-base.merge","n8n-nodes-base.convertToFile","n8n-nodes-base.code","n8n-nodes-base.googleSheetsTrigger","@n8n/n8n-nodes-langchain.chainLlm","@n8n/n8n-nodes-langchain.lmOllama","n8n-nodes-base.httpRequest"]

workflow_json_compressed:
  [encoded data, 10976 characters]


