# templates

name: Convert Fathom meeting transcripts to formatted Google Docs with AI summaries
author_name: Dean Pike
author_username: deanjp
categories: []
created_at: 2025-10-13T04:00:31.144Z
updated_at: 2025-10-13T04:00:31.144Z
url: https://n8n.io/workflows/9549
scraped_at: 2025-12-24 13:02:41
description:
  Transcript → AI Analysis → Formatted Doc

  This workflow automatically converts Fathom meeting transcripts into beautifully formatted Google Docs with AI-generated summaries, key points, decisions, and action items.

  Good to know
    Works fully with Fathom free account
    Webhook responds immediately to prevent Fathom timeout and duplicate triggers
    Validates transcript quality (3+ conversation turns) before AI processing to save costs
    Uses Google Gemini API (generous free tier and rate limits, typically enough to avoid paying for API requests, but check latest pricing at Google AI Pricing)
    Creates temporary HTML file that's auto-deleted after conversion

  Who's it for
    Individuals or teams using Fathom for meetings who want more control and flexibility with their AI meeting analysis and storage independently of Fathom, as well as automatic, formatted documentation without manual note-taking. Perfect for recurring syncs, client meetings, or interview debriefs.

  How it works
    Fathom webhook triggers when meeting ends and sends transcript data
    Validates transcript has meaningful conversation (3+ turns)
    Google Gemini AI analyzes transcript and generates structured summary (key points, decisions, actions, next steps)
    Creates formatted HTML with proper styling
    Uploads to Google Drive and converts to native Google Doc
    Reduces page margins for readability and deletes temporary HTML file

  Requirements
    Fathom account with API webhook access (available on free tier)
    Google Drive account (OAuth2)
    Google Docs account (OAuth2)
    Google Gemini API key (Get free key here)

  How to set up
    Add credentials: Google Drive OAuth2, Google Docs OAuth2, Google Gemini API
    Copy the webhook URL from the Get Fathom Meeting webhook node (Test URL first, change to Production URL when ready)
    In Fathom: Settings → API Access → Add → Add webhook URL and select all events including "Transcript"
    Test with a short meeting, verify Google Doc appears in Drive
    Activate workflow

  Customizing this workflow
    Change save location: Edit "Upload File as HTML" node → update "Parent Folder"
    Modify AI output: Edit "AI Meeting Analysis" node → customize the prompt to add/remove sections (e.g., risks, follow-ups, sentiment, etc)
    Adjust document margins: Edit "Reduce Page Margins" node → change margin pixel values
    Add notifications: E.g. add Slack/Email node after "Convert to Google Doc" to notify team when summary is ready

  Quick Troubleshooting
    "Transcript Present?" fails: Fathom must send transcript_merged with 3+ conversation turns (i.e. only send to Gemini for analysis if there's a genuine transcript)
    HTML as plain text: Check "Convert to Google Doc" uses POST to /copy endpoint
    401/403 errors: Re-authorize Google credentials
    Inadequate meeting notes: Edit prompts in "AI Meeting Analysis" node
  Sample File and Storage Output
  Google Doc meeting notes - sample
  Google Drive sample folder output:

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

workflow_json_compressed:
  [encoded data, 12152 characters]


name: Automatically Send WhatsApp Discount Codes to Shopify Customers Using Rapiwa
author_name: Rapiwa
author_username: rapiwa
categories: []
created_at: 2025-10-13T07:24:06.233Z
updated_at: 2025-10-13T07:24:06.233Z
url: https://n8n.io/workflows/9560
scraped_at: 2025-12-24 13:02:46
description:
  Automatically Send WhatsApp Discount Codes to Shopify Customers Using Rapiwa

  Who is this for?
  This n8n workflow automatically sends WhatsApp promotional messages to top customers whenever a new discount code is created in Shopify. It’s perfect for store owners, marketers, sales teams, or support agents who want to engage their best customers effortlessly. The workflow fetches customer data, filters high-spending customers, verifies their WhatsApp numbers using the Rapiwa API, sends discount messages to verified contacts, and logs all activity in Google Sheets. Designed for non-technical users who don’t use the official WhatsApp Business API, this automation simplifies customer outreach and tracking without any manual work.

  What this Workflow Does
  This n8n workflow connects with a Google Sheet that contains a list of contacts. It reads rows marked for processing, cleans the phone numbers, checks their validity using Rapiwa's WhatsApp validation API, sends WhatsApp messages to valid numbers, and updates the status of each row accordingly.

  Key Features
  Runs Every 5 Minutes**: Automatically triggers the workflow
  Google Sheets Integration**: Reads and writes data from a specific sheet
  Phone Number Validation**: Confirms if a WhatsApp number is active via Rapiwa API
  Message Sending**: Sends a message using Rapiwa's /send-message endpoint
  Status Update**: Sheet is updated with success or failure status
  Safe API Usage**: Delays added between requests to prevent rate limits
  Batch Limit**: Processes max 60 rows per cycle
  Conditional Checks**: Skips rows without a "check" value

  Requirements
  A Google Sheet with necessary columns
  Rapiwa account** with active subscription (you can free 200 message)
  Your WhatsApp number connected to Rapiwa
  Valid Bearer Token
  n8n Instance** (self-hosted or cloud)
    Google Sheets node configured
    HTTP Request node access

  How to Use
  Step-by-Step Setup

  Webhook
     Receives Shopify Webhook (discount creation) via HTTP POST request.  
  This is triggered when a discount is created in your Shopify store.

  Configure Google Sheets in n8n
     Use the Google Sheets node with OAuth2 access

  Get Rapiwa API Token
     Create an account on Rapiwa
     Connect your WhatsApp number
     Copy your Bearer Token from the Rapiwa dashboard

  Set Up HTTP Request Nodes
     Validate number via: https://app.rapiwa.com/api/verify-whatsapp
     Send message via: https://app.rapiwa.com/api/send-message
     Add your bearer token to the headers

  Google Sheet Column Structure
  A Google Sheet** formatted like this ➤ Sample


  | discount_code   | created_at                | shop_domain             | name           | number        | verify     | status   |
  | -------------------------------------------- | ------- | ------------------------- | ----------------------- | -------------- | ------------- | ---------- | -------- |
  | V8ZGVRDFP5TB | 2025-09-25T05:26:40-04:00 | your_shop_domain | Abdul Mannan    | 8801322827798| unverified | not sent |
  | V8ZGVRDFP5TB | 2025-09-25T05:26:40-04:00 | your_shop_domain | Abdul Mannan         | 8801322827799| verified   | sent     |

  Support & Help
  Rapiwa Website:** https://rapiwa.com
  WhatsApp**: Chat on WhatsApp
  Discord**: SpaGreen Community
  Facebook Group**: SpaGreen Support
  Website**: https://spagreen.net
  Developer Portfolio**: Codecanyon SpaGreen

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

workflow_json_compressed:
  [encoded data, 6184 characters]


name: Generate AI Videos with Sora2 Pro, Save to Google Drive and Upload to YouTube
author_name: Davide
author_username: n3witalia
categories: []
created_at: 2025-10-13T14:01:53.749Z
updated_at: 2025-10-13T14:01:53.749Z
url: https://n8n.io/workflows/9576
scraped_at: 2025-12-24 13:02:41
description:
  This workflow automates the entire process of creating, managing, and publishing AI-generated videos using OpenAI Sora2 Pro, Google Sheets, Google Drive, and YouTube.

  Advantages

  ✅ Fully Automated Video Pipeline
  From idea to YouTube publication with zero manual intervention after setup.

  ✅ Centralized Control via Google Sheets
  Simple spreadsheet interface — no need to use APIs or dashboards directly.

  ✅ AI-Powered Video Creation
  Uses OpenAI Sora2 Pro for generating professional-quality videos from text prompts.

  ✅ SEO-Optimized Titles with GPT-5
  Automatically creates catchy, keyword-rich titles optimized for YouTube engagement.

  ✅ Cloud Integration
  Seamless use of Google Drive for file management and YouTube for publishing.

  ✅ Scalable and Repeatable
  Can handle multiple videos in sequence, triggered manually or at regular intervals.

  ✅ Error-Resilient and Transparent
  Uses conditional checks (“Completed?” node) and real-time updates in Google Sheets to ensure reliability and visibility.

  How it Works

  This workflow automates the entire process of generating AI videos and publishing them to YouTube, using a Google Sheet as the central control panel.

  Trigger & Data Fetch: The workflow is triggered either manually or on a schedule. It starts by reading a specific Google Sheet to find new video requests. A new request is identified as a row where the "PROMPT" and "DURATION" columns are filled, but the "VIDEO" column is empty.
  AI Video Generation: For each new request, it takes the prompt and duration, then sends a request to the Fal.ai Sora-2 Pro model via its API to generate the video. The system then enters a polling loop, checking the video generation status every 60 seconds until it is COMPLETED.
  Post-Processing & Upload: Once the video is ready, the workflow performs three parallel actions:
      Fetch Video & Upload to Drive: It retrieves the generated video file and uploads it to a specified folder in Google Drive for archiving.
      Generate YouTube Title: It sends the original prompt to OpenAI's GPT-5 (or another specified model) to generate an optimized, SEO-friendly title for the YouTube video.
      Publish to YouTube: It takes the generated video file and the AI-created title and uses the Upload-Post.com service to automatically publish the video to a connected YouTube channel.
  Update & Log: Finally, the workflow updates the original Google Sheet row with the URL of the archived video in Google Drive and the newly created YouTube video URL, providing a complete audit trail.

  Set up Steps

  To configure this workflow, follow these steps:

  Prepare the Google Sheet:
      Create a Google Sheet with at least these columns: PROMPT, DURATION, VIDEO, and YOUTUBE_URL.
      In the n8n "Get new video" and update nodes, configure the documentId and sheetName to point to your specific Google Sheet.

  Configure Fal.ai API Key:
      Create an account on fal.ai and obtain your API key.
      In both the "Create Video" and "Get status" HTTP Request nodes, set up the HTTP Header Authentication.
      Set the Name to Authorization and the Value to Key YOUR_API_KEY.

  Set up Upload-Post.com for YouTube:
      Create an account on Upload-Post.com and get your API key. Connect your YouTube channel as a "profile".
      In the "HTTP Request" node (for uploading), configure the Header Auth with Name: Authorization and Value: Apikey YOUR_UPLOAD_POST_API_KEY.
      Replace YOUR_USERNAME in the node's body parameters with the profile name you created on Upload-Post.com (e.g., test1).

  Configure OpenAI (Optional but Recommended):
      The "Generate title" node uses an OpenAI model. Ensure you have valid OpenAI API credentials set up in n8n for this node to function and create optimized titles.

  Finalize Paths and Activate:
      In the "Upload Video" node, specify the correct Google Drive folder ID where you want the videos to be saved.
      Once all credentials and paths are set, you can activate the workflow and set the "Schedule Trigger" node to run at your desired interval (e.g., every 5 minutes).

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

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.httpRequest","n8n-nodes-base.wait","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.if","n8n-nodes-base.googleSheets","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.googleSheets","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.googleDrive","n8n-nodes-base.httpRequest","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.googleSheets","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 5964 characters]


name: Automate Freelance Project Intake with Custom Proposals using Jotform & Gemini
author_name: iamvaar
author_username: iamvaar
categories: []
created_at: 2025-10-13T14:04:57.194Z
updated_at: 2025-10-13T14:04:57.194Z
url: https://n8n.io/workflows/9577
scraped_at: 2025-12-24 13:02:41
description:
  Workflow explaination: https://youtu.be/ecafBTFPuvE?si=7csA1yNsaUxUG72F

  This workflow is designed to automatically handle new freelance project requests from a JotForm, analyze the requirements using AI, create a custom proposal, log the details in a Google Sheet, and send a personalized response to the client.

  1. JotForm Trigger

  Purpose**: This node is the entry point of the entire automation. It waits for a new freelance project submission from your specified JotForm.
  Action: When a potential client fills out and submits the form, this node **instantly triggers the workflow, passing all submitted data (name, email, project requirements, and budget) to the next node.
  Key Detail**: Uses a webhook for real-time activation, ensuring immediate processing of every new project request.

  2. AI Agent

  Purpose**: The central brain of your freelance workflow. 🧠 It takes the project submission and turns it into a structured, customized proposal.
  Action**: The agent follows a prompt sequence to perform these tasks:

    Calls the My Freelance Document Tool: Fetches your Google Doc containing details about your services, pricing, and project templates — your “source of truth.”
    Analyzes the Project Request: Reads the client’s requirements and goals from the form.
    Generates a Custom Proposal: Based on scope, budget, and relevance to your offerings, it prepares a short, tailored proposal or quote that fits the project.
    Creates a Personalized Email: Builds an HTML email with the proposal embedded, including next steps or a scheduling link for further discussion.
    Outputs Structured Data: Packages everything (project summary, proposal text, email subject, and body) into a clean JSON object for downstream use.

  3. Append or Update Row in Sheet (Google Sheets)

  Purpose**: Serves as your lightweight CRM for all project inquiries.
  Action**: Logs data from the AI Agent (proposal details, client info, and project summary) into a Google Sheet.
  Key Detail: Configured to **Append or Update—if an email already exists, it updates that row instead of duplicating. Keeps your client records clean and organized.

  4. If

  Purpose**: Acts as a control node to decide whether a proposal email should be sent.
  Action**: Checks the output from the AI Agent to ensure the proposal text is valid (not empty).
  Key Detail**: If the proposal generation fails or returns “NAN,” the workflow stops here to avoid sending incomplete responses.

  5. Send a Message (Gmail)

  Purpose**: Sends the final personalized proposal email to the client.
  Action: Pulls the recipient’s email from the sheet and sends the **AI-generated subject and HTML proposal email automatically.
  Key Detail**: The email is customized per project, giving the client an instant, professional response with no manual effort.

nodes_used:
  ["n8n-nodes-base.jotFormTrigger","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.if","n8n-nodes-base.googleSheets","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.googleDocsTool","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.gmail","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 5444 characters]


name: AI based Data Analysis, Data Visualization and Data Report with Ada.im
author_name: Ada.im
author_username: ada
categories: []
created_at: 2025-10-14T07:39:50.361Z
updated_at: 2025-10-14T07:39:50.361Z
url: https://n8n.io/workflows/9605
scraped_at: 2025-12-24 13:02:41
description:
  How it works:

  This template demonstrates how to build a low-code, AI-powered data analysis workflow in n8n. It enables you to connect to various data sources (such as MySQL, Google Sheets, or local files), process and analyze structured data, and generate natural language insights and visualizations using external AI APIs.

  Key Features:

  Flexible data source selection (MySQL, Google Sheets, Excel/CSV, etc.)

  AI-driven data analysis, interpretation, and visualization via HTTP Request nodes

  Automated email delivery of analysis results (Gmail node)

  Step-by-step sticky notes for credential setup and workflow customization

  Step-by-step:
  Apply for an API Key

  You can easily create and manage your API Key in the ADA official website - API. To begin with, You need to register for an ADA account.

  Once on the homepage, click the bottom left corner to access the API management dashboard.



  Here, you can create new APIs and set the credit consumption limit for each API. A single account can create up to 10 APIs.



  After successful creation, you can copy the API Key to set credentials. You can also view the credit consumption of each API and manage your APIs.



  Set credentials

  In HTTP nodes(DataAnalysis, DataInterpretation, and DataVisualization) select Authentication → Generic Credential Type


  Choose Header Auth → Create new credential


  Name the header Authorization, which must be exactly 'Authorization', and fill in the previously applied API key


  Data Source:

  The workflow starts by extracting structured data from your chosen source (e.g., database, spreadsheet, or file).

  AI Skills:

  Data is sent to external AI APIs for analysis, interpretation, and visualization, based on your configured queries.

  Result Processing:

  The AI-generated results are converted to HTML or Markdown as needed.

  Output:

  The final report or visualization is sent via email. You can easily adapt this step to other output channels.

  API Keys Required:

  Ada API Key: For AI data analysis

  Gmail OAuth2: For sending emails (if using Gmail node)

  (Optional) Data source credentials: For MySQL, Google Sheets, etc.

nodes_used:
  ["n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.manualTrigger","n8n-nodes-base.mySql","n8n-nodes-base.aggregate","n8n-nodes-base.googleSheets","n8n-nodes-base.readWriteFile","n8n-nodes-base.extractFromFile","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.convertToFile","n8n-nodes-base.markdown","n8n-nodes-base.markdown","n8n-nodes-base.stickyNote","n8n-nodes-base.gmail","n8n-nodes-base.gmail","n8n-nodes-base.gmail","n8n-nodes-base.code","n8n-nodes-base.set"]

workflow_json_compressed:
  [encoded data, 6904 characters]


name: Build a Knowledge Base Chatbot with Jotform, RAG Supabase, Together AI & Gemini
author_name: iamvaar
author_username: iamvaar
categories: []
created_at: 2025-10-14T12:34:58.992Z
updated_at: 2025-10-14T12:34:58.992Z
url: https://n8n.io/workflows/9626
scraped_at: 2025-12-24 13:02:41
description:
  Youtube Video: https://youtu.be/dEtV7OYuMFQ?si=fOAlZWz4aDuFFovH

  Workflow Pre-requisites

  Step 1: Supabase Setup

  First, replace the keys in the "Save the embedding in DB" & "Search Embeddings" nodes with your new Supabase keys. After that, run the following code snippets in your Supabase SQL editor:

  Create the table to store chunks and embeddings:
          CREATE TABLE public."RAG"
      (
          id bigserial PRIMARY KEY,
          chunk text NULL,
          embeddings vector(1024) NULL
      )
      TABLESPACE pg_default;
      
  Create a function to match embeddings:
          DROP FUNCTION IF EXISTS public.matchembeddings1(integer, vector);

      CREATE OR REPLACE FUNCTION public.matchembeddings1(
          match_count integer,
          query_embedding vector
      )
      RETURNS TABLE (
          chunk text,
          similarity float
      )
      LANGUAGE plpgsql
      AS $$
      BEGIN
          RETURN QUERY
          SELECT
              R.chunk,
              1 - (R.embeddings &lt;=&gt; query_embedding) AS similarity
          FROM public."RAG" AS R
          ORDER BY R.embeddings &lt;=&gt; query_embedding
          LIMIT match_count;
      END;
      $$;
  Step 2: Create Jotform with these fields
  Your full name
  email address
  Upload PDF Document [field where you upload the knowledgebase in PDF]

  Step 3: Get Together AI API Key

  Get a Together AI API key and paste it into the "Embedding Uploaded document" node and the "Embed User Message" node.

  Here is a detailed, node-by-node explanation of the n8n workflow, which is divided into two main parts.

  Part 1: Ingesting Knowledge from a PDF

  This first sequence of nodes runs when you submit a PDF through a Jotform. Its purpose is to read the document, process its content, and save it in a specialized database for the AI to use later.

  JotForm Trigger
      Type: Trigger
      What it does: This node starts the entire workflow. It's configured to listen for new submissions on a specific Jotform. When someone uploads a file and submits the form, this node activates and passes the submission data to the next step.

  Grab New knowledgebase
      Type: HTTP Request
      What it does: The initial trigger from Jotform only contains basic information. This node makes a follow-up call to the Jotform API using the submissionID to get the complete details of that submission, including the specific link to the uploaded file.

  Grab the uploaded knowledgebase file link
      Type: HTTP Request
      What it does: Using the file link obtained from the previous node, this step downloads the actual PDF file. It's set to receive the response as a file, not as text.

  Extract Text from PDF File
      Type: Extract From File
      What it does: This utility node takes the binary PDF file downloaded in the previous step and extracts all the readable text content from it. The output is a single block of plain text.

  Splitting into Chunks
      Type: Code
      What it does: This node runs a small JavaScript snippet. It takes the large block of text from the PDF and chops it into smaller, more manageable pieces, or "chunks," each of a predefined length. This is critical because AI models work more effectively with smaller, focused pieces of text.

  Embedding Uploaded document
      Type: HTTP Request
      What it does: This is a key AI step. It sends each individual text chunk to an embeddings API. A specified AI model converts the semantic meaning of the chunk into a numerical list called an embedding or vector. This vector is like a mathematical fingerprint of the text's meaning.

  Save the embedding in DB
      Type: Supabase
      What it does: This node connects to your Supabase database. For every chunk, it creates a new row in a specified table and stores two important pieces of information: the original text chunk and its corresponding numerical embedding (its "fingerprint") from the previous step.

  Part 2: Answering Questions via Chat

  This second sequence starts when a user sends a message. It uses the knowledge stored in the database to find relevant information and generate an intelligent answer.

  When chat message received
      Type: Chat Trigger
      What it does: This node starts the second part of the workflow. It listens for any incoming message from a user in a connected chat application.

  Embend User Message
      Type: HTTP Request
      What it does: This node takes the user's question and sends it to the exact same embeddings API and model used in Part 1. This converts the question's meaning into the same kind of numerical vector or "fingerprint."

  Search Embeddings
      Type: HTTP Request
      What it does: This is the "retrieval" step. It calls a custom database function in Supabase. It sends the question's embedding to this function and asks it to search the knowledge base table to find a specified number of top text chunks whose embeddings are mathematically most similar to the question's embedding.

  Aggregate
      Type: Aggregate
      What it does: The search from the previous step returns multiple separate items. This utility node simply bundles those items into a single, combined piece of data. This makes it easier to feed all the context into the final AI model at once.

  AI Agent & Google Gemini Chat Model
      Type: LangChain Agent & AI Model
      What it does: This is the "generation" step where the final answer is created.
          The AI Agent node is given a detailed set of instructions (a prompt).
          The prompt tells the Google Gemini Chat Model to act as a professional support agent.
          Crucially, it provides the AI with the user's original question and the aggregated text chunks from the Aggregate node as its only source of truth.
          It then instructs the AI to formulate an answer based only on that provided context, format it for a specific chat style, and to say "I don't know" if the answer cannot be found in the chunks. This prevents the AI from making things up.

nodes_used:
  ["n8n-nodes-base.code","n8n-nodes-base.httpRequest","n8n-nodes-base.supabase","n8n-nodes-base.aggregate","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.extractFromFile","@n8n/n8n-nodes-langchain.chatTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.jotFormTrigger","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest"]

workflow_json_compressed:
  [encoded data, 4220 characters]


name: Host Your Own JWT Authentication System with Data Tables and Token Management
author_name: Luka Zivkovic
author_username: zivkovic58
categories: []
created_at: 2025-10-14T22:33:00.436Z
updated_at: 2025-10-14T22:33:00.436Z
url: https://n8n.io/workflows/9660
scraped_at: 2025-12-24 13:02:42
description:
  Description
  A production-ready authentication workflow implementing secure user registration, login, token verification, and refresh token mechanisms. Perfect for adding authentication to any application without needing a separate auth service.

  Get started with n8n now!

  What it does
  This template provides a complete authentication backend using n8n workflows and Data Tables:
  User Registration**: Creates accounts with secure password hashing (SHA-512 + unique salts)
  Login System**: Generates access tokens (15 min) and refresh tokens (7 days) using JWT
  Token Verification**: Validates access tokens for protected endpoints
  Token Refresh**: Issues new access tokens without requiring re-login
  Security Features**: HMAC-SHA256 signatures, hashed refresh tokens in database, protection against rainbow table attacks
  Why use this template
  No external services**: Everything runs in n8n - no Auth0, Firebase, or third-party dependencies
  Production-ready security**: Industry-standard JWT implementation with proper token lifecycle management
  Easy integration**: Simple REST API endpoints that work with any frontend framework
  Fully customizable**: Adjust token lifespans, add custom user fields, implement your own business logic
  Well-documented**: Extensive inline notes explain every security decision and implementation detail
  How to set up
  Prerequisites
  n8n instance (cloud or self-hosted)
  n8n Data Tables feature enabled
  Setup Steps
  Create Data Tables:
    users table: id, email, username, password_hash, refresh_token
    refresh_tokens table: id, user_id, token_hash, expires_at
  Generate Secret Keys:
    Run this command to generate a random secret:
    node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
    Generate two different secrets for ACCESS_SECRET and REFRESH_SECRET
  Configure Secrets:
    Update the three "SET ACCESS AND REFRESH SECRET" nodes with your generated keys
    Or migrate to n8n Variables for better security (instructions in workflow notes)
  Connect Data Tables:
    Open each Data Table node
    Select your created tables from the dropdown
  Activate Workflow:
    Save and activate the workflow
    Note your webhook URLs
  API Endpoints
  Register: POST /webhook/register-user
  Request body:
  {
   "email": "user@example.com",
   "username": "username",
   "password": "password123"
  }
  Login: POST /webhook/login
  Request body:
  {
   "email": "user@example.com",
   "password": "password123"
  }
  Returns:
  {
   "accessToken": "...",
   "refreshToken": "...",
   "user": {...}
  }
  Verify Token: POST /webhook/verify-token
  Request body:
  {
   "access_token": "your_access_token"
  }
  Refresh: POST /webhook/refresh
  Request body:
  {
   "refresh_token": "your_refresh_token"
  }
  Frontend Integration Example (Vue.js/React)
  Login flow:
  const response = await fetch('https://your-n8n.app/webhook/login', {
   method: 'POST',
   headers: { 'Content-Type': 'application/json' },
   body: JSON.stringify({ email, password })
  });
  const { accessToken, refreshToken } = await response.json();
  localStorage.setItem('accessToken', accessToken);
  Make authenticated requests:
  const data = await fetch('https://your-api.com/protected', {
   headers: { 'Authorization': Bearer ${accessToken} }
  });
  Key Features
  Secure Password Storage**: Never stores plain text passwords; uses SHA-512 with unique salts
  Two-Token System**: Short-lived access tokens (security) + long-lived refresh tokens (convenience)
  Database Token Revocation**: Refresh tokens can be revoked for logout-all-devices functionality
  Duplicate Prevention**: Checks username and email availability before account creation
  Error Handling**: Generic error messages prevent information leakage
  Extensive Documentation**: 30+ sticky notes explain every security decision
  Use Cases
  SaaS applications needing user authentication
  Mobile app backends
  Internal tools requiring access control
  MVP/prototype authentication without third-party costs
  Learning JWT and auth system architecture
  Customization
  Token Lifespan**: Modify expiration times in "Create JWT Payload" nodes
  User Fields**: Add custom fields to registration and user profile
  Password Rules**: Update validation in "Validate Registration Request" node
  Token Rotation**: Implement refresh token rotation for enhanced security (notes included)
  Security Notes
  :warning: Important:
  Change the default secret keys before production use
  Use HTTPS for all webhook endpoints
  Store secrets in n8n Variables (not hardcoded)
  Regularly rotate secret keys in production
  Consider rate limiting for login endpoints
  Support & Documentation
  The workflow includes comprehensive documentation:
  Complete authentication flow overview
  Security explanations for every decision
  Troubleshooting guide
  Setup instructions
  FAQ section with common issues
  Perfect for developers who want full control over their authentication system without the complexity of managing separate auth infrastructure.

  Get Started with n8n now!

  Tags: authentication, jwt, login, security, user-management, tokens, password-hashing, api, backend

nodes_used:
  ["n8n-nodes-base.crypto","n8n-nodes-base.crypto","n8n-nodes-base.set","n8n-nodes-base.dataTable","n8n-nodes-base.code","n8n-nodes-base.crypto","n8n-nodes-base.crypto","n8n-nodes-base.crypto","n8n-nodes-base.code","n8n-nodes-base.merge","n8n-nodes-base.crypto","n8n-nodes-base.stickyNote","n8n-nodes-base.code","n8n-nodes-base.crypto","n8n-nodes-base.code","n8n-nodes-base.stickyNote","n8n-nodes-base.dataTable","n8n-nodes-base.webhook","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.respondToWebhook","n8n-nodes-base.code","n8n-nodes-base.respondToWebhook","n8n-nodes-base.if","n8n-nodes-base.respondToWebhook","n8n-nodes-base.code","n8n-nodes-base.dataTable","n8n-nodes-base.dataTable","n8n-nodes-base.merge","n8n-nodes-base.webhook","n8n-nodes-base.executeWorkflowTrigger","n8n-nodes-base.webhook","n8n-nodes-base.code","n8n-nodes-base.crypto","n8n-nodes-base.code","n8n-nodes-base.crypto","n8n-nodes-base.dataTable","n8n-nodes-base.if","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.respondToWebhook","n8n-nodes-base.respondToWebhook","n8n-nodes-base.set","n8n-nodes-base.respondToWebhook","n8n-nodes-base.respondToWebhook","n8n-nodes-base.set","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.set","n8n-nodes-base.crypto","n8n-nodes-base.if","n8n-nodes-base.dataTable","n8n-nodes-base.respondToWebhook","n8n-nodes-base.respondToWebhook","n8n-nodes-base.if","n8n-nodes-base.dataTable","n8n-nodes-base.respondToWebhook","n8n-nodes-base.stickyNote","n8n-nodes-base.webhook","n8n-nodes-base.respondToWebhook","n8n-nodes-base.respondToWebhook","n8n-nodes-base.respondToWebhook","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.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","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 13964 characters]


name: Automate Lightroom Cloud to Instagram
author_name: Camille Roux
author_username: camilleroux
categories: []
created_at: 2025-10-15T09:43:52.777Z
updated_at: 2025-10-15T09:43:52.777Z
url: https://n8n.io/workflows/9692
scraped_at: 2025-12-24 13:02:45
description:
  Create a reusable “photos to post” queue from your Lightroom Cloud album—ideal for Lightroom-to-Instagram automation with n8n. It discovers new photos, stores clean metadata in a Data Table, and generates AI alt text to power on-brand captions and accessibility. Use it together with “Lightroom Image Webhook (Direct JPEG for Instagram)” and “Instagram Auto-Publisher for Lightroom Photos (AI Captions).”

  What it’s for

  Automate Lightroom to Instagram; centralize photo data for scheduled IG posting; prep AI-ready alt text and metadata for consistent, hands-free publishing.

  Parameters to set

  Lightroom Cloud credentials (client/app + API key)
  Album/collection ID to monitor in Lightroom Cloud
  Data Table name for the posting queue (e.g., Photos)
  AI settings: language/tone for alt text (concise, brand-aware)
  Image analysis URL: public endpoint of Workflow 2 (Lightroom Image Webhook)

  Works best with

  Workflow 2: Lightroom Image Webhook (Direct JPEG for Instagram)

  Workflow 3: Instagram Auto-Publisher for Lightroom Photos (AI Captions)

  Learn more & stay in the loop

  Want the full story (decisions, trade-offs, and tips) behind this Lightroom Cloud → Instagram automation?  
  👉 Read the write-up on my blog: camilleroux.com

  If you enjoy street & urban photography or you’re curious how I use these n8n workflows day-to-day:  
  👉 Follow my photo account on Instagram: @camillerouxphoto  
  👉 Follow me on other networks: links available on my site (X, Bluesky, Mastodon, Threads)

nodes_used:
  ["n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.splitOut","@n8n/n8n-nodes-langchain.anthropic","n8n-nodes-base.dataTable","n8n-nodes-base.dataTable","n8n-nodes-base.sort","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.splitInBatches","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 4952 characters]


name: Lightroom Cloud to Instagram Auto Poster (AI Captions)
author_name: Camille Roux
author_username: camilleroux
categories: []
created_at: 2025-10-15T09:51:46.051Z
updated_at: 2025-10-15T09:51:46.051Z
url: https://n8n.io/workflows/9694
scraped_at: 2025-12-24 13:02:45
description:
  Automatically publish Lightroom photos to Instagram with short, human-sounding AI captions. This workflow pulls the next item from your Data Table queue, generates an on-brand caption from alt text + metadata, uploads via Instagram Graph API, and marks it posted. 
  Use it together with “Lightroom Cloud → Photos Queue (AI Alt Text)” and “Lightroom Image Webhook (Direct JPEG for Instagram).”

  What it’s for

  Hands-free Lightroom-to-Instagram posting: schedule, caption with AI, and publish consistently using the Instagram Graph API.

  Parameters to set

  Instagram Graph API access token and Instagram Business/Creator account ID
  Posting schedule (cron/interval) + max posts per run
  Data Table name & status fields (posted timestamp, IG media ID)
  Caption rules: tone, max length, hashtags policy, CTA style
  Image source URL: public endpoint of Workflow 2 (Lightroom Image Webhook)

  Works best with

  Workflow 1: Lightroom Cloud → Photos Queue (AI Alt Text)

  Workflow 2: Lightroom Image Webhook (Direct JPEG for Instagram)

  Learn more & stay in the loop

  Want the full story (decisions, trade-offs, and tips) behind this Lightroom Cloud → Instagram automation?  
  👉 Read the write-up on my blog: camilleroux.com

  If you enjoy street & urban photography or you’re curious how I use these n8n workflows day-to-day:  
  👉 Follow my photo account on Instagram: @camillerouxphoto  
  👉 Follow me on other networks: links available on my site (X, Bluesky, Mastodon, Threads)

nodes_used:
  ["n8n-nodes-base.stickyNote","n8n-nodes-base.dataTable","n8n-nodes-base.sort","n8n-nodes-base.limit","@n8n/n8n-nodes-langchain.anthropic","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.dataTable","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.set","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, 5668 characters]


name: Sync NetSuite Customers to Salesforce Accounts & Contacts with Auto Upserts
author_name: Entech Solutions
author_username: entech
categories: []
created_at: 2025-10-15T10:12:36.151Z
updated_at: 2025-10-15T10:12:36.151Z
url: https://n8n.io/workflows/9695
scraped_at: 2025-12-24 13:02:44
description:
  Short Description

  Automatically exports customer records from NetSuite and syncs them into Salesforce — creating or updating Accounts and Contacts depending on whether the NetSuite record represents a company or an individual.

  Who is this for / Use case

  This template is designed for businesses and integration developers who:

  Use NetSuite as their ERP or CRM system.
  Need to automatically sync customer data (both companies and individuals) into Salesforce.
  Want a reliable, scalable solution that supports pagination and upserts.
  Prefer a ready-to-use, easily customizable workflow built on n8n.

  How it works

  Initialize pagination offset.
  Fetch customer records from NetSuite in batches via REST API.
  Split the retrieved array into individual items.
  Check record type — company or individual.
  Upsert to Salesforce:
  	For companies → creates/updates Account records.
  	For individuals → creates/updates both Account and Contact (linked to the Account).
  Merge results from both branches.
  Update pagination offset for the next batch.
  Repeat until all records are processed, then end the workflow.

  Setup / Configuration

  Import the workflow into your n8n instance.
  Set your NetSuite and Salesforce credentials.
  Ensure your Salesforce Account/Contact objects have a matching External ID field.
  (Optional) Adjust mapping fields or filters to your data needs.
  Execute manually or trigger on a schedule (e.g., daily sync).

nodes_used:
  ["n8n-nodes-base.if","n8n-nodes-netsuite-rest.netSuiteRest","n8n-nodes-base.stickyNote","n8n-nodes-base.salesforce","n8n-nodes-base.salesforce","n8n-nodes-base.salesforce","n8n-nodes-base.splitOut","n8n-nodes-base.merge","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.noOp","n8n-nodes-base.if","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.code","n8n-nodes-netsuite-rest.netSuiteRest","n8n-nodes-netsuite-rest.netSuiteRest","n8n-nodes-base.stickyNote","n8n-nodes-base.code"]

workflow_json_compressed:
  [encoded data, 4436 characters]


name: Automate Support Ticket Prioritization with Jotform, Gemini AI, ClickUp Tasks
author_name: Zain Khan
author_username: zain
categories: []
created_at: 2025-10-15T21:44:04.960Z
updated_at: 2025-10-15T21:44:04.960Z
url: https://n8n.io/workflows/9736
scraped_at: 2025-12-24 13:02:45
description:
  Automated Support Prioritization and AI Task Creation

  This n8n workflow instantly captures support issues submitted via Jotform and efficiently routes them to the appropriate team and logging system based on the severity level defined by the customer. It then uses an AI Agent (Google Gemini) to transform the raw customer data into a clear, concise, and actionable task for the development team.

  Workflow Overview

  Ingestion & Logging: A new support ticket is received via Jotform and immediately logged into a Google Sheet as a central record.
  Priority Assessment & Routing: An If node checks the reported issue Severity.
      High/Medium Severity: The ticket details are instantly sent to a dedicated Slack channel for immediate team attention.
      Low Severity: The ticket details are sent via Gmail (acting as an internal email notification) to a support inbox, allowing for less immediate handling.
  AI Processing: An AI Agent summarizes the raw feedback into a clear, professional task description.
  Task Creation: The AI-generated task is automatically created in ClickUp for the development team to manage.

  Requirements

  To implement and run this automated support workflow, the following accounts and credentials are required:

  1. Service Credentials

  Jotform API Key:* For the *Jotform Trigger** to receive real-time form submissions.
  Google Sheets OAuth2/API Key:** To write data to the designated sheet.
  Slack OAuth2/API Key:** To post messages to the target Slack channel.
  Gmail OAuth2/API Key:** To send internal email notifications.
  Google Gemini API Key:* To power the *AI Agent** for task summarization.
  ClickUp API Key:** To create tasks in the target workspace.
  Sign up for n8n using: https://n8n.partnerlinks.io/pe6gzwqi3rqw

  2. External Configurations

  Jotform Setup:* A form configured with fields for Name, Email, Issue, Description, and the crucial *Severity** field.
  Sign up for Jotform using: https://www.jotform.com/?partner=zainurrehman
  ClickUp Setup:* The specific *Team, Space, Folder, and List IDs* must be configured in the *Create a task** node to ensure tickets are created in the correct project board.

nodes_used:
  ["n8n-nodes-base.slack","n8n-nodes-base.gmail","n8n-nodes-base.jotFormTrigger","n8n-nodes-base.if","n8n-nodes-base.clickUp","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.googleSheets","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

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


name: Transcribe Youtube Videos for Free with youtube-transcript.io & save to Supabase
author_name: automedia
author_username: automate-social-media
categories: []
created_at: 2025-10-16T04:18:06.996Z
updated_at: 2025-10-16T04:18:06.996Z
url: https://n8n.io/workflows/9747
scraped_at: 2025-12-24 13:02:41
description:
  Transcribe New YouTube Videos and Save to Supabase

  Who's It For?

  This workflow is for content creators, marketers, researchers, and anyone who needs to quickly get text transcripts from YouTube videos. If you analyze video content, repurpose it for blogs or social media, or want to make videos searchable, this template will save you hours of manual work.

  What It Does

  This template automatically monitors multiple YouTube channels for new videos. When a new video is published, it extracts the video ID, retrieves the full transcript using the youtube-transcript.io API, and saves the structured data—including the title, author, URL, and full transcript—into a Supabase table.

  It intelligently filters out YouTube Shorts by default and includes error handling to ensure that only successful transcriptions are processed.

  Requirements

  A Supabase account with a table ready to receive the video data.
  An API key from youtube-transcript.io (offers a free tier).
  The Channel ID for each YouTube channel you want to track. You can find this using a free online tool like TunePocket's Channel ID Finder.

  How to Set Up

  Add Channel IDs:
      In the "Channels To Track" node, replace the example YouTube Channel IDs with your own. The workflow uses these IDs to create RSS links and find new videos.
  Configure API Credentials:
      Find the "youtube-captions" HTTP Request node.
      In the credentials tab, create a new "Header Auth" credential. Name it youtube-transcript-io and paste your API key into the "Value" field. The "Name" field should be x-api-key.
  Connect Your Supabase Account:
      Navigate to the "Add to Content Queue Table" node.
      Create new credentials for your Supabase account using your Project URL and API key.
      Once connected, select your target table and map the incoming fields (title, source_url, content_snippet, etc.) to the correct columns in your table.
  Set Your Schedule (Optional):
      The workflow starts with a manual trigger. To run it automatically, replace the "When clicking ‘Execute workflow’" node with a Schedule node and set your desired interval (e.g., once a day).
  Activate the Workflow:
      Save your changes and toggle the workflow to Active in the top right corner.

  How to Customize

  Transcribe YouTube Shorts:* To include Shorts in your workflow, select the *"Does url exist?"** If node and delete the second condition that checks for youtube.com/shorts.
  Change Your Database:* Don't use Supabase? Simply replace the *"Add to Content Queue Table"* node with another database or spreadsheet node, such as *Google Sheets, **Airtable, or n8n's own Table.

nodes_used:
  ["n8n-nodes-base.wait","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.if","n8n-nodes-base.set","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.splitInBatches","n8n-nodes-base.splitInBatches","n8n-nodes-base.if","n8n-nodes-base.merge","n8n-nodes-base.stopAndError","n8n-nodes-base.merge","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.rssFeedRead","n8n-nodes-base.set","n8n-nodes-base.splitOut","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.manualTrigger","n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.supabase","n8n-nodes-base.if"]

workflow_json_compressed:
  [encoded data, 9000 characters]


name: Fast-track CV screening with AI analysis from Gmail to Slack and Google Sheets
author_name: Dean Pike
author_username: deanjp
categories: []
created_at: 2025-10-16T07:27:17.590Z
updated_at: 2025-10-16T07:27:17.590Z
url: https://n8n.io/workflows/9764
scraped_at: 2025-12-24 13:02:41
description:
  CV → Match → Screen → Decide, all automated

    This workflow automatically processes candidate CVs from email, intelligently matches them to job descriptions, performs
    AI-powered screening analysis, and sends actionable summaries to your team in Slack.

  Good to know
    Handles both PDF and Word document CVs automatically
    Two-stage JD matching: prioritizes role mentioned in candidate's email, falls back to CV analysis if needed
    Uses Google Gemini API for AI screening (generous free tier and rate limits, typically enough to avoid paying for API requests, but check latest pricing at Google AI Pricing)
    All CVs stored in Google Drive with standardized naming (candidate name + date/time)
    Complete audit trail logged in Google Sheets

  Who's it for
    Hiring teams and recruiters who want to automate first-round CV screening while maintaining quality. Perfect for companies        
    receiving high volumes of applications across multiple roles, especially in tech, sales, or automation-focused positions.

  How it works
    Gmail monitors inbox for CVs with specific label and downloads attachments
    Detects file type (PDF or Word) and converts/standardizes format for text extraction
    AI agent matches candidate to best-fit job description by analyzing email context first (if candidate mentioned a role), or    
     CV content as fallback (selects up to 3 potential JD matches)
    If multiple JDs matched, second AI agent selects the single best fit
    AI recruiter agent analyzes CV against selected JD and generates structured screening report (strengths, weaknesses,
    risk/reward factors, overall fit score 0-10 with justification)
    Extracts candidate details (name, email) from CV text
    Logs complete analysis to Google Sheets tracker
    Sends formatted summary to Slack with Proceed/Reject action buttons for instant team decisions

  Requirements
    Gmail account with API access
    Google Drive account (OAuth2)
    Google Sheets account (OAuth2)
    Slack workspace with bot permissions
    Google Gemini API key (Get free key here)
    Google Drive folders: one for CVs, one for Job Descriptions (as PDFs or Google Docs)

  How to set up
    Add credentials: Gmail OAuth2, Google Drive OAuth2, Google Sheets OAuth2, Slack OAuth2, Google Gemini API
    Create Gmail label (e.g., "CV-Screening") for incoming candidate emails
    In "Receive CV via Email" node: select your Gmail label for filtering
    Create two Google Drive folders: "Candidate CVs" and "Job Descriptions"
    In "Upload CV - PDF" and "Stream Doc/Docx File" nodes: update folder ID to your "Candidate CVs" folder
    In "Access JD Files" node: update folder ID to your "Job Descriptions" folder
    Create Google Sheet named "AI Candidate Screening" with columns matching the sample AI Candidate Screening sheet       
    In "Append row in sheet" node: select your Google Sheet
    In "Send Candidate Screening Confirmation" node: select your Slack channel
    Activate workflow

  Customizing this workflow
    Change JD matching logic: Edit "JD Matching Agent" node prompt to adjust how CVs are matched to roles (e.g., weight
    technical skills vs. experience).
    Change "Company Description" in AI prompts: Insert your "Company Description" in System Message sections in "JD Matching Agent" and "Detailed JD Matching Agent" nodes
    Modify screening criteria: Edit "Recruiter Scoring Agent" node system message to focus on specific qualities (culture       
    fit, leadership, technical depth, etc.)
    Add more storage locations: Add nodes to save CVs to other systems (Notion, Airtable, ATS platforms)
    Customize Slack message: Edit "Send Candidate Screening Confirmation" node to change formatting, add more context, or       
    include additional candidate data
    Auto-proceed logic: Add IF node after screening to auto-proceed candidates with fit score above threshold (e.g., 8+/10)     
    Add email responses: Connect nodes to automatically email candidates (confirmation, rejection, interview invite)
    Add human-in-the-loop: Sub-workflow triggered by Slack response or email response, to update Sheet with approve/reject status
  Add candidate email responses + interview scheduling**: For approved candidates, trigger email to candidate with Cal.com or Calendly link so they can book their interview

  Quick Troubleshooting
    No CVs being processed: Check Gmail label is correctly set in "Receive CV via Email" node and emails are being labeled      
    Word documents failing: Verify "Stream Doc/Docx File" node has correct parent folder ID and Google Drive credentials        
    authorized
    JD matching returns no results: Check "Access JD Files" node folder ID points to your Job Descriptions folder, and JD       
    files are named clearly (e.g., "Marketing Director JD.pdf")
   JD matching is not relevant for my company: Update the "Company Description" in the System Messages in the "JD Matching Agent" and "Detailed JD Matching Agent" nodes
    "Can't find matching JD": Ensure candidate's email mentions role name OR their CV clearly indicates relevant experience     
    for available JDs
    Google Sheets errors: Verify sheet name is "AI Candidate Screening" and column headers exactly match workflow
    expectations (Submission ID, Date, CV, First Name, etc.)
    Slack message not appearing: Re-authorize Slack credentials and confirm channel ID in "Send Candidate Screening
    Confirmation" node
    Missing candidate name/email: CV text must be readable - check PDF extraction quality or try converting complex CVs to      
    simpler format
    401/403 API errors: Re-authorize all OAuth2 credentials (Gmail, Google Drive, Google Sheets, Slack)
    AI analysis quality issues: Edit system prompts in "JD Matching Agent" and "Recruiter Scoring Agent" nodes to refine        
    screening criteria
  Sample Outputs
  Google Sheets - AI Candidate Screening - sample


  Slack confirmation message

  Acknowledgments
    This workflow was inspired by Nate Herk's YouTube demonstration on building a resume analysis system. This implementation builds upon that foundation by adding dynamic job description matching (initial + detailed JD matching agents), Slack Block Kit integration with interactive buttons, updated Google Drive API methods for document handling, and enhanced candidate data capture in Google Sheets.

nodes_used:
  ["n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.merge","n8n-nodes-base.set","n8n-nodes-base.extractFromFile","@n8n/n8n-nodes-langchain.informationExtractor","n8n-nodes-base.googleSheets","n8n-nodes-base.httpRequest","n8n-nodes-base.googleDrive","n8n-nodes-base.googleDrive","n8n-nodes-base.switch","n8n-nodes-base.googleDrive","n8n-nodes-base.extractFromFile","n8n-nodes-base.extractFromFile","n8n-nodes-base.googleDrive","n8n-nodes-base.gmailTrigger","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.splitInBatches","n8n-nodes-base.googleDrive","n8n-nodes-base.extractFromFile","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.googleDriveTool","n8n-nodes-base.code","n8n-nodes-base.if","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.code","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.slack","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.outputParserStructured","@n8n/n8n-nodes-langchain.outputParserStructured","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 19212 characters]


name: Cross-Post Tiktok Videos to Multiple Social Media Platforms with RSS & Blotato
author_name: Sabrina Ramonov 🍄
author_username: sabrina-ramonov
categories: []
created_at: 2025-10-16T13:29:07.736Z
updated_at: 2025-10-16T13:29:07.736Z
url: https://n8n.io/workflows/9780
scraped_at: 2025-12-24 13:02:41
description:
  Description
  This automation detects when you post a Tiktok video, automatically downloads the video without watermark, stores it in Google Drive, and reposts your Tiktok video to other social media platforms. All on autopilot. So you can grow your presence on multiple platforms, without more work. You can also easily add steps to customize captions per platform.

  Youtube Tutorial
  https://www.youtube.com/watch?v=yHbyEb-fBGY

  📄 Documentation
  Full Step-by-Step Documentation

  How It Works

  1. Trigger
  RSS feed triggers when you post a new Tiktok video

  2. Fetch Video
  Download the newly posted Tiktok video (without watermark)  
  Store video in Google Drive

  3. Publish to Social Media
  Connect Blotato to your social accounts  
  Choose your social accounts  
  Post immediately or schedule for later  

  Setup & Required Accounts
  Enable "Verified Community Nodes" in your n8n Admin Panel  
  Install "Blotato" verified community node  
  Sign up for Blotato: create API key at Dashboard → API Keys, then create your Blotato credential and connect your social accounts
  Sign up for RSS.app: create feed from your TikTok profile, copy RSS URL into the RSS Feed Trigger node, and set "Number of Posts" to 1  
  Google Drive account to store downloaded Tiktok videos

  Tips & Tricks
  Ensure your RSS feed outputs only 1 item at a time  
  For multiple posts within an hour, set RSS.app refresh to 15 minutes (paid plan)  
  While testing: enable only 1 social platform, deactivate others, and consider scheduling posts in the future  
  After the workflow finishes, check your social account for the final post; if successful, enable another social media node and continue testing

  Troubleshooting
  Check your Blotato API Dashboard to see every request, response, and error. Click on a request to see the details.

  Need Help?
  In the Blotato web app, click the orange button on the bottom right corner. This opens the Support messenger where I help answer technical questions.

  Connect with me: Linkedin | Youtube

nodes_used:
  ["n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.httpRequest","n8n-nodes-base.googleDrive","n8n-nodes-base.rssFeedReadTrigger","@blotato/n8n-nodes-blotato.blotato","@blotato/n8n-nodes-blotato.blotato","@blotato/n8n-nodes-blotato.blotato","@blotato/n8n-nodes-blotato.blotato","@blotato/n8n-nodes-blotato.blotato","@blotato/n8n-nodes-blotato.blotato","@blotato/n8n-nodes-blotato.blotato","@blotato/n8n-nodes-blotato.blotato","n8n-nodes-base.merge","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@blotato/n8n-nodes-blotato.blotato","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 6252 characters]


name: AI-Powered Customer Feedback Analysis & Routing for Gmail, Zendesk, Slack & Pipedrive
author_name: PollupAI
author_username: Pollup
categories: []
created_at: 2025-10-16T13:51:11.955Z
updated_at: 2025-10-16T13:51:11.955Z
url: https://n8n.io/workflows/9782
scraped_at: 2025-12-24 13:02:46
description:
  Who's it for
  This workflow is for Customer Success, Product, and Support teams who need to centralize and analyze unstructured customer feedback. It automates the process of identifying key themes from various communication channels, allowing you to proactively address issues, track feature requests, and understand the voice of the customer without manual effort.

  What it does
  This workflow uses a powerful chain of AI agents to process customer feedback from end to end. It begins by using a Data Agent to gather all recent customer interactions from multiple sources, including Gmail, Pipedrive, Zendesk, and Slack.

  Once the raw data is collected, a second AI Chain reads all the text and compresses it into concise, actionable "signals." A third AI Chain then takes these signals and intelligently clusters them into shared topics, assigning each a human-readable label like "Billing," "Performance," or "Feature Request."

  Finally, a fourth AI Agent acts as a dispatcher. It analyzes the clustered topics and follows a set of routing rules defined in its prompt to take the appropriate action. It uses its tools to automatically create a Zendesk ticket for product feedback, send a Slack message for billing issues, create a Notion page for training opportunities, or send a direct email alert for high-risk accounts.

  How to set up
  To get this workflow running, you will need to configure the credentials and parameters for the following nodes:
  Configure Credentials: Add your credentials for the Config: Set LLM for Agents node and all of the Tool nodes (Gmail, Pipedrive, Zendesk, Slack, and Notion).
  Set Initial Parameters: In the Set: Initial Parameters node, update the placeholder email address and the Slack channel name for billing alerts.
  Update Slack Search Channel: In the Tool: Search Slack Messages node, set the channel you want the agent to search for feedback in.
  Activate Workflow: Once configured, you can run the workflow manually to start the analysis.

  Requirements
  An account with an LLM provider, such as OpenAI.
  Accounts for the services you wish to connect (Gmail, Pipedrive, Zendesk, Slack, Notion).
  This workflow requires n8n's Langchain community nodes to be installed on your instance.

  How to customize the workflow
  This workflow's logic is primarily driven by AI prompts, making it highly customizable:
  AI Prompts:** Adjust the prompts in any of the AI Agent or AI Chain nodes to change the data gathering, analysis, clustering, or routing rules to fit your business needs.
  Data Sources:** Add, remove, or swap out the "Tool" nodes in the AI Agent: Gather Customer Feedback section to connect to different data sources like Intercom, Salesforce, or a database.
  Triggers:** Replace the Manual Trigger with a Schedule Trigger to run the analysis automatically on a daily or weekly basis.

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.memoryBufferWindow","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.gmailTool","n8n-nodes-base.pipedriveTool","n8n-nodes-base.zendeskTool","n8n-nodes-base.slackTool","@n8n/n8n-nodes-langchain.chainLlm","@n8n/n8n-nodes-langchain.outputParserStructured","@n8n/n8n-nodes-langchain.chainLlm","@n8n/n8n-nodes-langchain.outputParserStructured","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.zendeskTool","n8n-nodes-base.gmailTool","n8n-nodes-base.notionTool","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, 6644 characters]


name: Automated Structured Data Extract & Summary via Decodo + Gemini & Google Sheets
author_name: Ranjan Dailata
author_username: ranjancse
categories: []
created_at: 2025-10-16T15:43:47.813Z
updated_at: 2025-10-16T15:43:47.813Z
url: https://n8n.io/workflows/9789
scraped_at: 2025-12-24 13:02:46
description:
  Who this is for

  This workflow is designed for:

  Automation engineers building AI-powered data pipelines

  Product managers & analysts needing structured insights from web pages

  Researchers & content teams extracting summaries from documentation or articles

  HR, compliance, and knowledge teams converting unstructured web content into structured records

  n8n self-hosted users leveraging advanced scraping and LLM enrichment

  It is ideal for anyone who wants to transform any public URL into structured data + clean summaries automatically.

  What problem this workflow solves

  Web content is often unstructured, verbose, and inconsistent, making it difficult to:

  Extract structured fields reliably

  Generate consistent summaries

  Reuse data across spreadsheets, dashboards, or databases

  Eliminate manual copy-paste and interpretation

  This workflow solves the problem of turning arbitrary web pages into machine-readable JSON and human-readable summaries, without custom scrapers or manual parsing logic.

  What this workflow does

  The workflow integrates Decodo, Google Gemini, and Google Sheets to perform automated extraction of structured data.

  Here’s how it works step-by-step:

  Input Setup

     The workflow begins when the user executes it manually or passes a valid URL.
     The input includes url.

  Profile Extraction with Decodo

  Accepts any valid URL as input

  Scrapes the page content using Decodo

  Uses Google Gemini to:

  Extract structured data in JSON format

  Generate a concise, factual summary

  Cleans and parses AI-generated JSON safely

  Merges structured data and summary output

  Stores the final result in Google Sheets for reporting or downstream automation

  JSON Parsing & Merging

     The Code Node cleans and parses the JSON output from the AI for reliable downstream use.
     The Merge Node combines both structured data and the AI-generated summary.

  Data Storage in Google Sheets

     The Google Sheets Node appends or updates the record, storing the structured JSON and summary into a connected spreadsheet.

  End Output

     A unified, machine-readable data in JSON + an executive-level summary suitable data analysis or downstream automation.

  Setup Instructions

  Prerequisites

  n8n account** with workflow editor access
  Decodo API credentials** - You need to register, login and obtain the Basic Authentication Token via Decodo Dashboard 





  Google Gemini (PaLM) API access**
  Google Sheets OAuth credentials**

  Setup Steps

  Import the workflow into your n8n instance.
  Configure Credentials

     Add your Decodo API credentials in the Decodo node.
     Connect your Google Gemini (PaLM) credentials for both AI nodes.
     Authenticate your Google Sheets account.
  Edit Input Node

     In the Set the Input Fields node, replace the default URL with your desired profile or dynamic data source.
  Run the Workflow

     Trigger manually or via webhook integration for automation.
     Verify that structured profile data and summary are written to the linked Google Sheet.

  How to customize this workflow to your needs

  You can easily extend or adapt this workflow:

  Modify Structured Output

  Change the Gemini extraction prompt to match your own JSON schema
  Add required fields such as authors, dates, entities, or metadata

  Improve Summarization

  Adjust summary length or tone (technical, executive, simplified)
  Add multi-language summarization using Gemini

  Change Output Destination

  Replace Google Sheets with:

    Databases (Postgres, MySQL)
    Notion
    Slack / Email
    File storage (JSON, CSV)

  Add Validation or Filtering

  Insert IF nodes to:

    Reject incomplete data
    Detect errors or hallucinated output
    Trigger alerts for malformed JSON

  Scale the Workflow

  Replace manual trigger with:

    Webhook
    Scheduled trigger
    Batch URL processing

  Summary

  This workflow provides a powerful, generic solution for converting unstructured web pages into structured, AI-enriched datasets.

  By combining Decodo for scraping, Google Gemini for intelligence, and Google Sheets for persistence, it enables repeatable, scalable, and production-ready data extraction without custom scrapers or brittle parsing logic.

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.stickyNote","@decodo/n8n-nodes-decodo.decodo","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.code","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.stickyNote","n8n-nodes-base.merge","n8n-nodes-base.googleSheets","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","@n8n/n8n-nodes-langchain.lmChatGoogleGemini"]

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


name: Safely Update n8n with Version Checks and Telegram Notifications
author_name: David Hernández Luján
author_username: davidhluj
categories: []
created_at: 2025-10-16T18:14:47.609Z
updated_at: 2025-10-16T18:14:47.609Z
url: https://n8n.io/workflows/9792
scraped_at: 2025-12-24 13:02:46
description:
  Who’s it for
  This workflow is for system administrators or self-hosted n8n users who want to automatically check and update their n8n instance to the latest version — with Telegram notifications for every step.

  How it works
  The workflow runs daily at 9 AM or every time n8n starts.
  It retrieves your current version using the Execute Command node.
  It checks the latest release from the official n8n GitHub API.
  It compares both versions and decides whether an update is needed.
  If an update is available:
     Sends a Telegram alert.
     Verifies that there are no running executions.
     Runs the update command safely.
     Sends a confirmation message when done.
  If your instance is already up to date, it sends a “latest version” message instead.

  Requirements
  Self-hosted n8n** instance with access to run terminal commands.
  A valid Telegram Bot API credential (configured in n8n Credentials; not hardcoded).
  SSH credentials**
  To run commands on the server where n8n is installed
  n8n API credentials**
  To query running executions

  How to set up
  Import this workflow into your n8n instance.
  Connect your Telegram Bot credential to the Telegram nodes.
  Adjust the chat ID and message thread ID if needed.
  (Optional) Change the schedule time in the Schedule Trigger node.
  Save and activate the workflow.

  How to customize
  Change the update command if you’re running n8n via Docker:
      docker pull n8nio/n8n:latest

nodes_used:
  ["n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.merge","n8n-nodes-base.if","n8n-nodes-base.function","n8n-nodes-base.telegram","n8n-nodes-base.telegram","n8n-nodes-base.telegram","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.if","n8n-nodes-base.n8n","n8n-nodes-base.n8nTrigger","n8n-nodes-base.wait","n8n-nodes-base.ssh","n8n-nodes-base.ssh"]

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


name: Summarize Meeting Transcripts with GPT-4 & Sentiment Analysis for Gmail
author_name: Dhinesh Ravikumar
author_username: dk10rk
categories: []
created_at: 2025-10-16T21:30:37.291Z
updated_at: 2025-10-16T21:30:37.291Z
url: https://n8n.io/workflows/9801
scraped_at: 2025-12-24 13:02:41
description:
  Who it's for
  Project managers, AI builders, and teams who want structured, automated meeting summaries with zero manual work.

  What it does
  This workflow monitors a Google Drive folder for new meeting notes (PDF/TXT), extracts text, summarizes it via OpenAI GPT-4o, groups tasks by sentiment, builds a styled HTML summary, and sends it via Gmail.

  How to set it up
  Connect Google Drive, OpenAI, and Gmail credentials.  
  Point the Drive Trigger to your meeting notes folder.  
  Paste the system prompt into the AI node.  
  Set Gmail Email Type to HTML and Message to {{$json.email_html}}.  
  Drop a test file and execute once.

  Requirements
  n8n account  
  Google Drive, OpenAI, and Gmail credentials  
  Non-scanned PDFs or plain text files

  Customization ideas
  Add Slack or Notion logging  
  Support additional file types  
  Translate summaries automatically

  Tags
  #ai #automation #productivity #gmail #drive #meeting-summary #openai

nodes_used:
  ["n8n-nodes-base.googleDriveTrigger","n8n-nodes-base.extractFromFile","n8n-nodes-base.if","n8n-nodes-base.extractFromFile","n8n-nodes-base.googleDrive","n8n-nodes-base.googleDrive","n8n-nodes-base.merge","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.gmail","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.code","n8n-nodes-base.code"]

workflow_json_compressed:
  [encoded data, 7508 characters]


name: Personalized Email Outreach with LinkedIn & Crunchbase Data and Gemini AI Review
author_name: Johnny Rafael
author_username: johnnyrafael
categories: []
created_at: 2025-10-17T07:22:21.599Z
updated_at: 2025-10-17T07:22:21.599Z
url: https://n8n.io/workflows/9814
scraped_at: 2025-12-24 13:02:41
description:
  AI-Enriched Cold Outreach: Research → Draft → QA → Write-back


  What this template does
  Automates cold email drafting from a lead list by:
  Enriching each lead with LinkedIn profile, LinkedIn company, and Crunchbase data  
  Generating a personalized subject + body with Gemini  
  Auto-reviewing with a Judge agent and writing back only APPROVED drafts to your Data Table  

  Highlights
  Hands-off enrichment via RapidAPI; raw JSON stored back on each row  
  Two-agent pattern: Creative Outreach Agent (draft) + Outreach Email Judge (QA)  
  Structured outputs guaranteed by LangChain Structured Output Parsers  
  Data Table–native: reads “unprocessed” rows, writes results to the same row  
  Async polling with Wait nodes for scraper task results  

  How it works (flow)
  Trigger: Manual (replace with Cron if needed)  
  Fetch leads: Data Table “Get row(s)” filters rows where email_subject is empty (pending)  
  Loop: Split in Batches iterates rows  
  Enrichment (runs in parallel):
     LinkedIn profile: HTTP (company_url) → Wait → Results → Data Table update → linkedin_profile_scrape  
     LinkedIn company: HTTP (company_url) → Wait → Results → Data Table update → linkedin_company_scrape  
     Crunchbase company: HTTP (url_search) → Wait → Results → Data Table update → crunchbase_company_scrape  
     (All calls use host cold-outreach-enrichment-scraper with a RapidAPI key.)  
  Draft (Gemini): “Agent One” composes a concise, personalized email using row fields + enrichment + ABOUT ME block.  
     Structured Output Parser enforces:  
            {
         "email_subject": "text",
         "email_content": "text"
       }
       Prep for QA: “Email Context” maps email_subject, email_content, and email for the judge.  
  QA (Judge): “Judge Agent” returns APPROVED or REVISE (brief feedback allowed).  
  Route:
     If APPROVED → Data Table “Update row(s)” writes email_subject + email_body (a.k.a. email_content) back to the row.  
     If REVISE → Skipped; loop continues.  

  Required setup
  Data Table: “email_linkedin_list” (or your own) with at least:  
  email, First_name, Last_name, Title, Location, Company_Name, Company_site,  
    Linkedin_URL, company_linkedin (if used), Crunchbase_URL,  
    email_subject, email_body,  
    linkedin_profile_scrape, linkedin_company_scrape, crunchbase_company_scrape (string fields for JSON).  

  Credentials:  
  RapidAPI key for cold-outreach-enrichment-scraper (store securely as credential, not hardcoded)  
  Google Gemini (PaLM) API configured in the Google Gemini Chat Model node  

  ABOUT ME block:  
  Replace the sample persona (James / CEO / Company Sample / AI Automations) with your own.

  Nodes used
  Data Table**
  HTTP Request:**  
  AI Agent:**
  Google Gemini Chat Model**  
  Split in Batches:** Main Loop  
  Set:** RapidAPI-Key

  Customization ideas
  Process flags:** Add email_generated_at or processed boolean to prevent reprocessing.  
  Human-in-the-loop:** Send drafts to Slack/Email for spot check before write-back.  
  Delivery:** After approval, optionally email the draft to the sender for review.  

  Quotas & costs
  RapidAPI: Multiple calls per row (three tasks + result polls).  
  Gemini: Token usage for generator + judge per row.  
  Tune batch size and schedule accordingly.  

  Privacy & compliance
  You are scraping and storing person/company data.  
  Ensure lawful basis, respect ToS, and minimize stored data.  

nodes_used:
  ["@n8n/n8n-nodes-langchain.outputParserStructured","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.splitInBatches","n8n-nodes-base.if","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.manualTrigger","n8n-nodes-base.dataTable","n8n-nodes-base.dataTable","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.dataTable","n8n-nodes-base.executeWorkflowTrigger","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.wait","n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.dataTable","n8n-nodes-base.wait","n8n-nodes-base.httpRequest","n8n-nodes-base.dataTable","n8n-nodes-base.httpRequest","n8n-nodes-base.wait","n8n-nodes-base.httpRequest","n8n-nodes-base.dataTable","n8n-nodes-base.httpRequest","n8n-nodes-base.executeWorkflow","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 8612 characters]


name: Track Crypto Market Gainers & Losers with CoinGecko and Discord Bot
author_name: Malik Hashir
author_username: malikx
categories: []
created_at: 2025-10-17T20:38:39.379Z
updated_at: 2025-10-17T20:38:39.379Z
url: https://n8n.io/workflows/9854
scraped_at: 2025-12-24 13:02:46
description:
  Purpose
  Automate cryptocurrency market monitoring by tracking top 24-hour gainers and losers from 1750+ coins, delivering professional Discord (optional Telegram, Slack etc) updates with rich embeds and real-time data.

  How It Works
  This intelligent workflow fetches comprehensive cryptocurrency data from CoinGecko's API across multiple pages, processes thousands of coins to identify the most significant market movers, and automatically posts formatted updates to your Discord server. The system filters, ranks, and presents data in an easily digestible format with detailed coin information, price metrics, and visual indicators.

  Who Is It For
  Crypto Community Managers running Discord servers
  Trading Groups & Investment Communities
  Crypto Influencers & Content Creators
  DeFi Projects & DAOs monitoring market trends
  Crypto Enthusiasts wanting automated market insights

  Setup Overview
  Obtain API keys from CoinGecko
  Configure Discord bot credentials with proper permissions
  Set your server and channel IDs
  Import the workflow and connect the nodes
  Test and schedule automatic execution

  Value Proposition
  💰 Cost Savings: Eliminate manual market monitoring - save 5-10 hours weekly
  ⏰ Time Efficiency: Automated data collection and reporting
  🚀 Community Engagement: Keep your community informed with timely updates
  📈 Market Awareness: Stay ahead of market trends without constant manual checking
  🔧 Scalable Solution: Handles 1750+ coins effortlessly, easily expandable

  Perfect for: Crypto communities, trading groups, market analysts, and anyone needing automated cryptocurrency market intelligence delivered directly to Discord with professional formatting and real-time insights.

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.merge","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.limit","n8n-nodes-base.limit","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.discord","n8n-nodes-base.discord","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.scheduleTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

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


name: Transform Long Videos into Viral Shorts with AI and Schedule to Social Media using Whisper & Gemini
author_name: Juan Carlos Cavero Gracia
author_username: carlosgracia
categories: []
created_at: 2025-10-18T17:27:07.808Z
updated_at: 2025-10-18T17:27:07.808Z
url: https://n8n.io/workflows/9867
scraped_at: 2025-12-24 13:02:41
description:
  This automation template turns any long video into multiple viral-ready short clips and auto-schedules them to TikTok, Instagram Reels, and YouTube Shorts. It works with both vertical and horizontal inputs and respects the original input resolution (no unnecessary upscaling), cropping or letterboxing intelligently when needed. The workflow automatically extracts between 3 and 6 clips (based on video length and the most engaging segments) and schedules one short per consecutive day—e.g., 3 clips → the next 3 days, 6 clips → the next 6 days.

  Note: This workflow uses OpenAI Whisper for word-level transcription, Google’s Gemini for clip selection and metadata, and Upload-Post’s FFmpeg API for GPU-accelerated cutting/cropping and social scheduling. You can use the same Upload-Post API token for both FFmpeg jobs and publishing uploads. Upload-Post also offers a generous free trial with no credit card required.*

  Who Is This For?
  Creators & Editors:** Batch-convert long talks/podcasts into daily Shorts/Reels/TikToks.
  Agencies & Social Teams:** Turn webinars/interviews into a reliable short-form stream.
  Brands & Founders:** Maintain a steady posting cadence with minimal hands-on editing.

  What Problem Does This Workflow Solve?
  Manual clipping is slow and inconsistent. This workflow:
  Finds Hooks Automatically:** AI picks 3–6 high-retention segments from transcript + timestamps (count scales with video length/quality).
  Cuts Cleanly:** Absolute-second FFmpeg timing to avoid mid-word cuts.
  Vertical & Horizontal Friendly:** Handles both orientations and respects source resolution.
  Schedules for You:** Posts one clip per day on consecutive days.

  How It Works
  Form Upload: Submit your long video.
  Audio Extraction: FFmpeg job extracts audio for accurate ASR.
  Whisper Transcription: Word-level timestamps enable precise clipping.
  AI Clip Mining (Gemini): Detects 3–6 “viral” moments (15–60s) and generates titles/descriptions.
  Cut & Crop (FFmpeg): GPU pipeline produces clean clips; preserves input resolution/orientation when possible and crops/pads appropriately for target platforms.
  Status & Download: Polls job status and retrieves the final clips.
  Auto-Scheduling (Consecutive Days): Schedules one short per day starting tomorrow, for as many days as clips were produced (e.g., 3 clips → 3 days, 6 clips → 6 days) at a configurable time (default 20:00 Europe/Madrid).

  Setup
  OpenAI (Whisper): Add your OpenAI API credentials.
  Google Gemini: Add Gemini credentials used by the AI Agent node.
  Upload-Post (free trial no credit card required): Generate your api token https://app.upload-post.com/ connect your social media accounts and add your API token credentials in n8n (same token works for FFmpeg jobs and publishing).
  Scheduling: Adjust posting time/intervals and timezone (Europe/Madrid by default).
  Metadata Mapping: Titles/descriptions are auto-generated per platform; tweak as needed.

  Requirements
  Accounts:** n8n, OpenAI, Google (Gemini), Upload-Post, and social platform connections.
  API Keys:** OpenAI token, Gemini credentials, Upload-Post token.
  Budget:** Whisper + Gemini inference + FFmpeg compute + optional posting costs.

  Features
  Word-Accurate Cuts:** Absolute-second timecodes with subtle pre/post-roll.
  Orientation-Aware:** Supports vertical and horizontal inputs; preserves source resolution where possible.
  Platform-Optimized Output:** 9:16-ready delivery with smart crop/pad behavior.
  Consecutive-Day Scheduler:** 3–6 clips → 3–6 consecutive posting days, automatically.
  Retry & Polling:** Built-in waits and status checks for robust processing.
  Modular:** Swap models, adjust clip count/length, or add/remove platforms quickly.

  Turn long-form video into a consistent sequence of Shorts/Reels/TikToks—automatically, day after day, while respecting your source resolution.

nodes_used:
  ["n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-upload-post.uploadPost","n8n-nodes-base.code","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.httpRequest","n8n-nodes-base.wait","n8n-nodes-base.if","n8n-nodes-base.httpRequest","n8n-nodes-base.wait","n8n-nodes-base.formTrigger","n8n-nodes-base.wait","n8n-nodes-base.httpRequest","n8n-nodes-base.if","n8n-nodes-base.httpRequest","n8n-nodes-base.wait","n8n-nodes-base.code","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 8860 characters]


name: Resume Intelligence and Data Mining using Decodo with GPT-4o-mini
author_name: Ranjan Dailata
author_username: ranjancse
categories: []
created_at: 2025-10-19T03:37:20.824Z
updated_at: 2025-10-19T03:37:20.824Z
url: https://n8n.io/workflows/9878
scraped_at: 2025-12-24 13:02:44
description:
  1. Who this is for

  This workflow is specifically designed for

  Recruiters, HR analytics teams, and data-driven talent acquisition professionals seeking deeper insights from candidate resume.
  Valuable for HR tech developers, ATS/CRM engineers, and AI-driven recruitment platforms aiming to automate candidate research.
  Helps organizations build predictive hiring models and gain actionable talent intelligence.

  2. What problem this workflow solves

  Recruiters often face information overload when analyzing candidate resume manually reviewing experiences, skills, and cultural fit is slow and inconsistent.

  Traditional scraping tools extract raw data but fail to produce actionable intelligence like career trajectory, skills alignment, and fit for a role.

  This workflow solves that by:

  Automating candidate resume data extraction through Decodo
  Structuring it into JSON Resume Schema
  Running deep AI-driven analytics using OpenAI GPT-4o-mini
  Delivering comprehensive candidate intelligence ready for ATS/CRM integration or HR dashboards

  3. What this workflow does

  This n8n workflow combines Decodo’s web scraping with OpenAI GPT-4o-mini to produce advanced recruitment intelligence.

  Flow Breakdown:

  Manual Trigger – Start the workflow manually or schedule it in n8n.
  Set Input Fields – Define resume URL, location, and job description.
  Decodo Node – Scrapes the candidate’s profile (experience, skills, education, achievements, etc.).
  Structured Data Extractor (GPT-4o-mini) – Converts the scraped data into a structured JSON Resume Schema.
  Advanced Data Mining Engine (GPT-4o-mini) 

  – Performs:

     Skills Analysis (strengths, gaps, transferable skills)
     Experience Intelligence (career trajectory, leadership, project complexity)
     Cultural Fit Insights (work style, communication style, agility indicators)
     Career Trajectory Forecasting (promotion trends, growth velocity)
     Competitive Advantage Analysis (market positioning, salary expectations)
  Summarizer Node – Produces an abstractive and comprehensive AI summary of the candidate profile.
  Google Sheets Node – Saves the structured insights automatically into your recruitment intelligence sheet.
  File Writer Node (Optional) – Writes the JSON report locally for offline storage or integration.

  The result is a data-enriched candidate intelligence report far beyond what traditional resume parsing provides.

  4. Setup

  Prerequisites

  n8n account with workflow editor access
  Decodo API credentials
  OpenAI API key
  Google Sheets account connected via OAuth2

  Make sure to install the Decodo Community node.

  Setup Steps

  Import the workflow JSON into your n8n workspace.
  Set credentials for:

     Decodo Credentials account
     OpenAI API (GPT-4o-mini)
     Google Sheets OAuth2
  In the “Set the Input Fields” node, update:

     url → Resume link
     geo → Candidate region or country
     jobDescription → Target job description for matching
  Ensure the Google Sheet ID and tab name are correct in the “Append or update row in sheet” node.
  Click Execute Workflow to start.

  5. How to customize this workflow

  You can adapt this workflow for different recruitment or analytics scenarios:

  Add Sentiment Analysis

  Add another LLM node to perform sentiment analysis on candidate recommendations or feedback notes.

  Enrich with Job Board Data

  Use additional Decodo nodes or APIs (Indeed, Glassdoor, etc.) to compare candidate profiles to live job postings.

  Add Predictive Fit Scoring

  Insert a Function Node to compute a numerical "fit score" by comparing skill vectors and job requirements.

  Automate Candidate Reporting

  Connect to Gmail, Slack, or Notion nodes to automatically send summaries or reports to hiring managers.

  6. Summary

  The Advanced Resume Intelligence & Data Mining via Decodo + OpenAI GPT-4o-mini workflow transforms traditional candidate sourcing into AI-driven intelligence gathering.

  It integrates:

  Decodo** → To perform webscraping of data
  GPT-4o-mini** → to interpret, analyze, and summarize with context
  Google Sheets** → to store structured results for real-time analysis

  With this system, recruiters and HR analysts can move from data collection to decision intelligence, unlocking faster and smarter talent insights.

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.stickyNote","@decodo/n8n-nodes-decodo.decodo","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.chainLlm","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.merge","n8n-nodes-base.googleSheets","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.chainLlm","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.readWriteFile","n8n-nodes-base.function","n8n-nodes-base.code","n8n-nodes-base.code"]

workflow_json_compressed:
  [encoded data, 5892 characters]


name: Auto-Send WooCommerce Invoices via WhatsApp with Rapiwa API
author_name: Rapiwa
author_username: rapiwa
categories: []
created_at: 2025-10-19T04:53:59.196Z
updated_at: 2025-10-19T04:53:59.196Z
url: https://n8n.io/workflows/9879
scraped_at: 2025-12-24 13:02:43
description:
  Who is this for?
  This workflow listens for new or updated WooCommerce orders, cleans and structures the order data, processes orders in batches, and standardizes WhatsApp phone numbers. It verifies phone numbers via the Rapiwa API, sends invoice links or messages to verified numbers, and logs results into separate Google Sheets tabs for verified and unverified numbers. Throttling and looping are managed using batch processing and wait delays.

  What this Workflow Does
  Receives order events (e.g., order.updated) from WooCommerce or a similar trigger.
  Extracts customer, billing/shipping address, product list, and invoice link from the order payload.
  Processes orders/items in batches for controlled throughput.
  Cleans and normalizes phone numbers by removing non-digit characters.
  Verifies whether a phone number is registered on WhatsApp using the Rapiwa API.
  If verified, sends a personalized message or invoice link via Rapiwa's send-message endpoint.
  If not verified, logs the customer as unverified in Google Sheets.
  Logs every send attempt (status and validity) into Google Sheets.
  Uses Wait nodes and batching to avoid API rate limits.

  Key Features
  Trigger-based automation (WooCommerce trigger; adaptable to Shopify webhook).
  Batch processing using SplitInBatches for stable throughput.
  Phone number cleaning using JavaScript (waNoStr.replace(/\D/g, "")).
  Pre-send WhatsApp verification via Rapiwa to reduce failed sends.
  Conditional branching (IF node) between verified and unverified flows.
  Personalized message templates that include product and customer fields.
  Logging to Google Sheets with separate flows for verified/sent and unverified/not sent.
  Wait node for throttling and looping control.

  Requirements
  Running n8n instance with nodes: HTTP Request, Code, SplitInBatches, IF, Google Sheets, Wait, and a WooCommerce trigger (or equivalent).
  Rapiwa account and Bearer token for verify/send endpoints.
  Google account and Google Sheets access with OAuth2 credentials.
  WooCommerce store access credentials (or Shopify credentials if adapting).
  Incoming order payloads containing billing and line_items fields.

  Google Sheet format (example rows)
  A Google Sheet formatted like this ➤ Sample

  | Customer Name  | Phone Number  | Email Address     | Address     | Product Title    | Product ID | Size | Quantity | Total Price | Product Image                                                                                                                              | Invoice Link                                                                                                                                                                                           | Status   | Validity   |
  | -------------- | ------------- | --------------------------------------------------------------------- | ----------- | ------------------------------------ | ---------- | ---- | -------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------- | ---------- |
  | Abdul Mannan| 8801322827799 | contact@spagreen.net | mirpur| T-Shirt - XL | 110        | XL   | 1        | BDT 499.00  | https://your_shop_domain/Product/gg.img | https://your_shop_domain/INV/DAS | sent     | verified   |
  | Abdul Mannan| 8801322827799 | contact@spagreen.net | mirpur| T-Shirt - XL | 110        | XL   | 1        | BDT 499.00  | https://your_shop_domain/Product/gg.img | https://your_shop_domain/INV/DAS | not sent | unverified |

  Important Notes
  The Code nodes assume billing and line_items exist in the incoming payload; update mappings if your source differs.
  The message template references products[0]; if orders contain multiple items, update logic to summarize or iterate products.
  Start testing with small batches to avoid accidental mass messaging and to respect Rapiwa rate limits.

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

  Support & Help
  WhatsApp**: Chat on WhatsApp
  Discord**: SpaGreen Community
  Facebook Group**: SpaGreen Support
  Website**: https://spagreen.net
  Developer Portfolio**: Codecanyon SpaGreen

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

workflow_json_compressed:
  [encoded data, 6572 characters]


name: WooCommerce Order Updates to Customers via WhatsApp with Rapiwa API
author_name: Rapiwa
author_username: rapiwa
categories: []
created_at: 2025-10-19T05:34:31.088Z
updated_at: 2025-10-19T05:34:31.088Z
url: https://n8n.io/workflows/9880
scraped_at: 2025-12-24 13:02:45
description:
  Who is this for?
  This workflow is for online store owners, support teams, and marketing staff who want to automatically verify WhatsApp numbers and send order invoice links or personalized order updates to customers. It’s built against WooCommerce order webhooks but can be adapted to Shopify or other e-commerce platforms that provide billing and line_items.

  What this Workflow Does
  Receives order events (Webhook / WooCommerce order.updated).
  Normalizes the payload into a compact object: { data: { customer, products, invoice_link } } via a Code node.
  Iterates items in batches (SplitInBatches) to control throughput.
  Cleans phone numbers (removes non-digits) and verifies WhatsApp registration using Rapiwa (/api/verify-whatsapp).
  Sends templated WhatsApp messages through Rapiwa (/api/send-message) for verified numbers.
  Logs every attempt into Google Sheets: one sheet for verified & sent rows, another for unverified & not sent rows.
  Uses a Wait node to throttle and loop back into the batch processor.

  Key Features
  Trigger-based automation (Webhook or WooCommerce trigger).
  Payload normalization and mapping via JavaScript Code nodes.
  Controlled batching (SplitInBatches) to avoid rate limits.
  Pre-send verification of WhatsApp numbers using Rapiwa.
  Conditional branching with the IF node to separate verified vs unverified flows.
  Personalized message templates that pull customer and product fields from the mapped data.
  Logging and audit trail stored in Google Sheets (two separate append flows).

  How to Use — Step-by-step Setup
  Add credentials in n8n
     Rapiwa: Create an HTTP Bearer credential and paste your Bearer token (example name used in the flow: Rapiwa Bearer Auth).
     Google Sheets: Create an OAuth2 credential (example: Google Sheets).
     WooCommerce: Add WooCommerce API credentials for the trigger (or configure Shopify credentials if adapting).

  Import / configure nodes in n8n
     Webhook (or WooCommerce Trigger): receive order payloads. Example Webhook path is present in the exported flow.
     Code node Format Webhook Response Data: map body.billing, body.line_items, body.payment_url into { data: { customer, products, invoice_link } }.
     Code node Clean WhatsApp Number: ensure the phone number is a string and strip non-digits: String(rawNumber).replace(/\D/g, "").
     HTTP Request Check valid whatsapp number Using Rapiwa: POST to https://app.rapiwa.com/api/verify-whatsapp with { number }. Use the Rapiwa Bearer credential.
     IF If: check verification result. The flow compares {{$json.data.exists}} to "true" in the exported flow; normalize types if your API returns booleans.
     HTTP Request Rapiwa Sender: POST to https://app.rapiwa.com/api/send-message with number, message_type: 'text', and a templated message (see message template in the flow).
     Google Sheets Store State of Rows in Verified & Sent and Store State of Rows in Unverified & Not Sent

  Google Sheet Column Structure
  Create these columns exactly (the Google Sheets nodes in the flow expect these names):
  A Google Sheet formatted like this ➤ sample

  | Name            | Number        | Email             | Address      | Product Title                                  | Product ID | Size | Quantity | Total Price   | Product Image                                                                 | Invoice Link                                                                                             | Product Status | Validity   | Status   |
  |-----------------|---------------|-------------------|--------------|------------------------------------------------|------------|------|----------|----------------|--------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------|----------------|------------|----------|
  | Abdul Mannan  | 8801322827799 | contact@spagreen.net   | mirpur dohs  | Air Force 1 Reigning Champ Dark Grey 1:1 - 40 | 251        | 40   | 1        | BDT 5800.00    |         | Invoice | on-hold        | verified   | sent     |
  | Abdul Mannan  | 8801322827799 | contact@spagreen.net   | mirpur dohs  | Air Force 1 Reigning Champ Dark Grey 1:1 - 40 | 251        | 40   | 1        | BDT 5800.00    |         | Invoice | on-hold        | unverified | not sent |

  Customization Ideas
  Adapt the Code mapping node for Shopify payloads or other marketplaces.
  Iterate and include multiple products in the message instead of using products[0].
  Add filters in the Code node (e.g., only process orders with total &gt; 5000).
  Add fallback channels (SMS or email) for unverified numbers.
  Persist logs into a database for analytics and retention beyond Google Sheets.
  Add admin notifications (Slack, email) at the end of each run.

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

  Support & Help
  WhatsApp**: Chat on WhatsApp
  Discord**: SpaGreen Community
  Facebook Group**: SpaGreen Support
  Website**: https://spagreen.net
  Developer Portfolio**: Codecanyon SpaGreen

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

workflow_json_compressed:
  [encoded data, 6544 characters]


name: Generate Personalized Cold Email Icebreakers from sites with GPT-4 & G-Sheets
author_name: Mirai
author_username: mirai
categories: []
created_at: 2025-10-19T08:34:16.229Z
updated_at: 2025-10-19T08:34:16.229Z
url: https://n8n.io/workflows/9882
scraped_at: 2025-12-24 13:02:42
description:
  Icebreaker Generator powered with ChatGPT 

  This n8n template crawls a company website, distills the content with AI, and produces a short, personalized icebreaker you can drop straight into your cold emails or CRM. Perfect for SDRs, founders, and agencies who want “real research” at scale.

  Good to know

  Works from a Google Sheet of leads (domain + LinkedIn, etc.).

  Handles common scrape failures gracefully and marks the lead’s Status as Error.

  Uses ChatGPT to summarize pages and craft one concise, non-generic opener.

  Output is written back to the same Google Sheet (IceBreaker, Status).

  You’ll need Google credentials (for Sheets) and OpenAI credentials (for GPT).

  How it works

  Step 1 — Discover internal pages

  Reads a lead’s website from Google Sheets.

  Scrapes the home page and extracts all links.

  A Code node cleans the list (removes emails/anchors/social/external domains, normalizes paths, de-duplicates) and returns unique internal URLs.

  If the home page is unreachable or no links are found, the lead is marked Error and the workflow moves on.

  Step 2 — Convert pages to text

  Visits each collected URL and converts the response into HTML/Markdown text for analysis.

  You can cap depth/amount with the Limit node.

  Step 3 — Summarize & generate the icebreaker

  A GPT node produces a two-paragraph abstract for each page (JSON output).

  An Aggregate node merges all abstracts for the company.

  Another GPT node turns the merged summary into a personalized, multi-line icebreaker (spartan tone, non-obvious details).

  The result is written back to Google Sheets (IceBreaker = ..., Status = Done).

  The workflow loops to the next lead.

  How to use

  Prepare your sheet

  Include at least: organization_website_url, linkedin_url, and any other lead fields you track.

  Keep an empty IceBreaker and Status column for the workflow to fill.

  Connect credentials

  Google Sheets: use the Google account that owns the sheet and link it in the nodes.

  OpenAI: add your API key to the GPT nodes (“Summarize Website Page”, “Generate Multiline Icebreaker”).

  Run the workflow

  Start with the Manual Trigger (or replace with a schedule/webhook).

  Adjust Limit if you want fewer/more pages per company.

  Watch Status (Done/Error) and IceBreaker populate in your sheet.

  Requirements

  n8n instance

  Google Sheets account & access to the leads sheet

  OpenAI API key (for summarization + icebreaker generation)

  Customizing this workflow

  Tone & format: tweak the prompts (both GPT nodes) to match your brand voice and structure.

  Depth: change the Limit node to scan more/less pages; add simple rules to prioritize certain paths (e.g., /about, /blog/*).

  Fields: write additional outputs (e.g., Company Summary, Key Products, Recent News) back to new sheet columns.

  Lead selection: filter rows by Status = "" (or custom flags) to only process untouched leads.

  Error handling: expand the Error branch to retry with www./HTTP→HTTPS or to log diagnostics in a separate tab.

  Tips

  Keep icebreakers short, specific, and free of clichés—small, non-obvious details from the site convert best.

  Start with a small batch to validate quality, then scale up.

  Consider adding a rate limit if target sites throttle requests.

  In short: Sheet → crawl internal pages → AI abstracts → single tailored icebreaker → write back to the sheet, then repeat for the next lead.

  This automation can work great with our automation for automated cold emailing.

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.html","n8n-nodes-base.splitOut","n8n-nodes-base.httpRequest","n8n-nodes-base.markdown","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.limit","n8n-nodes-base.httpRequest","n8n-nodes-base.aggregate","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.googleSheets","n8n-nodes-base.set","n8n-nodes-base.code","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","n8n-nodes-base.if","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  H4sIAAAAAAAAE6WY224bNxCGX2Wha9HleclcNUjSJEDSBHEOBYpcDMmhvLW0UlerOGlgII/Rvl6epLOy4V3bK0txbgzJHg6/Gf6cGfrrpEqTBxPz10KW797DM/f4jxe+LCfTyQJbmDz4OqnqdQt1xOednRM5RF1mGUtlRYIkOM/GcYUJ6LfaO5Wd0zqVoUzCOoeJI0YJXIrS2Dg5n05qWCC5qiKGBk6xKZ5ijQ20y6ZYLc+wwVScVe1J8egEiqev3xJKC7P15MGfH2ntMmH38esFtvTIIQEwqzJnOipkPvPMsgwck5Vl9HlyteOHE6yLOK/iaVXPiu/f/n2L67Y4Wzaneb48+/7tv26rL6vOtHY12+7FAqzxaAH1BuZvm2o2w4asVst11VbLmkiY4npqNbGtoKF9WmwI8Ov5hav39G1rJ86nl8xovEapDXPCWqYlSAZR0ScIDoSWlEXomZ+9ffliJ9ZJu5hfp9GOT5nje2mOZM+TS4leGgZOZ6a59QxksszbnLmIUYXgep7j1bxqi1ebdifUurO4MBiACSGnStnD0+TKAMZK4siqZFpTmkJInCGYHJLjEhLvsd7g35vtYWIoVjDDIpOa3r25K3Xt6nIR2SzrJ02zbMgsLuu2qjf4BmebOTQUx+pmKKXTU6bkvlD0kZxOYH4GX9YXXh5Dd6EyzNd4FWVpjEtgSuYNB6atoCiRQlXW+mRBZwupj/IlNKdpeVbfodMrgwGw1wcBDyQagglaeFbK0pMweWQhOsMIxxiDlu70IPfHmwXtW/2DxQcMtCkWr+kEesZfCfKXHnQO9SyeQFUfLVdYP6xu6EQqOWXCHiBh22sFAiirAzMOSCvZW+aoPDEeQ+AmZhus6XlfVItqt3znl38dXiphf0y7FnLQpQ8saJ6YTj4y731iKQeVvQ9G80FZOo4NrLB4tlzgveW6/T4mVrujOOFnjJsWX1Fhv9TkfeQrrEchKdMOMTCNioSS0TKpbTJGldoY3wf6cDZrcAbt7jBhYDEUhTEHiuKKDAA1eMWZUZokzEVX1ZRgJoMiaQfp7YDssgNh8XIzb6t5VWPxvGtP2PWnn1HyAY1hoONM8o2mBBZSJB1DorogdEm5iUYBmkStdAjdFscITTy5s9LNlsvZHI9PENv1jdbl7b3FYcbE0TabXhsqJgfWZBa1oNKBPjPnU2bIowWQxqKzfTBPErWV3yqcp/XuzoI3xM1I3QdcTHWkr6hS5BAhKWYzoWkoaWKg8YS5mIMRKSlvB93uEW2+Eyde/HHAI507hKfvvcEGGXL0jKOJ1OS86Q7csBSV9NTtOLoBzdPtSRZXR/mj5729RvsVqQeK1MkGR+JjNFjQgIWGAEEphsoo1FpLmlx2AIp7EHYJ/DFAi74UygErO21Rue3GBLpBFgU1BWpW2QwAn+edUFW+PUkJvZdFDiYpL0jbNJkwqbo2hPTDQ8wseR5MDIrKkRqU/ZYG0S/F78s76uF6a3NpMhS+6Fq61u4m3rYhYN2Sq8nu4hjp2Gjac4wbJ+gSUPo8mMBE5FInCUY6PQq6+0x3kZY0HTMpb+XxMFDlRTQ5BWZtBxqpgIN0kQkpjKS7gVzaUVD5w6BCdGOduX3id5OSNcS2+tQXSqpS1JJn26UXhZRMXzUJu379SXQ+Pl2s376olOYuKkezVklSoQvVlXtULDuegoFcYu5KAEHUGDtXW8ckZPq5oN5D6PQa6gK84wJuDaf0lEv4efKAE3W/ZrTy3lrwkbC31XBs2xsT1eji7UNmbPHwTo6uvPA+tnT/1D/q8GqMHvO5b5od9dhPNqOncth0Meq5f2+Neb7en0YdDI93NN7bD7pxkMGUOubn+kP1LsEdLNJu2+s9bzy742PQuLvrxqMJGRvH97OJn4fbIb0xvyOj9KjLnTdkzOnt5+WOHN4l571laY/3/f+k+ck8n5//D/raGp/0EgAA


name: Automated B2B Lead Generation: Google Maps to Sheets with BrowserAct & Telegram
author_name: Madame AI Team | Kai
author_username: madame-ai
categories: []
created_at: 2025-10-19T10:50:25.523Z
updated_at: 2025-10-19T10:50:25.523Z
url: https://n8n.io/workflows/9890
scraped_at: 2025-12-24 13:02:41
description:
  Automated B2B Lead Generation from Google Maps to Google Sheets using BrowserAct

  This n8n template automates local lead generation by scraping Google Maps for businesses, saving them to Google Sheets, and notifying you in real-time via Telegram.

  This workflow is perfect for sales teams, marketing agencies, and local B2B services looking to build targeted lead lists automatically.

  Self-Hosted Only 
  This Workflow uses a community contribution and is designed and tested for self-hosted n8n instances only.

  How it works
  The workflow is triggered manually. You can set the Location, Bussines_Category, and number of leads (Extracted_Data) in the first BrowserAct node.
  A BrowserAct node ("Run a workflow task") initiates the scraping job on Google Maps using your specified criteria.
  A second BrowserAct node ("Get details of a workflow task") pauses the workflow and waits for the scraping task to be 100% complete.
  A Code node takes the raw JSON string output from the scraper and correctly parses it, splitting the data into individual items (one for each business).
  A Google Sheets node appends or updates each lead into your spreadsheet, matching on the "Name" column to prevent duplicate entries.
  Finally, a Telegram node sends a message with the new lead's details to your specified chat, providing instant notification.

  Requirements
  BrowserAct** API account for web scraping
  BrowserAct* "Google Maps Local Lead Finder*" Template
  BrowserAct** n8n Community Node -&gt; (n8n Nodes BrowserAct)
  Google Sheets** credentials for saving leads
  Telegram** credentials for sending notifications

  Need Help?
  How to Find Your BrowseAct API Key & Workflow ID
  How to Connect n8n to Browseract
  How to Use & Customize BrowserAct Templates
  How to Use the BrowserAct N8N Community Node

  Workflow Guidance and Showcase

  AUTOMATE Local Lead Generation: Google Maps to Sheets & Telegram with n8n

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-browseract-workflows.browserAct","n8n-nodes-browseract-workflows.browserAct","n8n-nodes-base.code","n8n-nodes-base.googleSheets","n8n-nodes-base.telegram","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 5440 characters]


name: Monitor Shopify Stores for New Products with BrowserAct and Slack Alerts
author_name: Madame AI Team | Kai
author_username: madame-ai
categories: []
created_at: 2025-10-19T11:38:20.554Z
updated_at: 2025-10-19T11:38:20.554Z
url: https://n8n.io/workflows/9895
scraped_at: 2025-12-24 13:02:41
description:
  Automated E-commerce Store Monitoring for New Products Using BrowserAct

  This n8n template is an advanced competitive intelligence tool that automatically monitors competitor E-commerce/Shopify stores and alerts you the moment they launch a new product.

  This workflow is essential for e-commerce store owners, product strategists, and marketing teams who need real-time insight into what their competitors are selling.

  Self-Hosted Only 
  This Workflow uses a community contribution and is designed and tested for self-hosted n8n instances only.

  How it works
  The workflow runs on a Schedule Trigger to check for new products automatically (e.g., daily).
  A Google Sheets node fetches your master list of competitor store links from a central sheet.
  The workflow loops through each competitor one by one.
  For each competitor, a Google Sheets node first creates a dedicated tracking sheet (if one doesn't exist) to store their product list history.
  A BrowserAct node then scrapes the competitor's current product list from their live website.
  The scraped data is saved to the competitor's dedicated tracking sheet.
  The workflow then fetches the newly scraped list and the previously stored list of products.
  A custom Code node (labeled "Compare Datas") performs a difference check to reliably detect if any new products have been added.
  If a new product is detected, an If node triggers an immediate Slack alert to your team, providing real-time competitive insight.

  Requirements
  BrowserAct** API account for web scraping
  BrowserAct* "Competitors Shopify Website New Product Monitor*" Template
  BrowserAct** n8n Community Node -&gt; (n8n Nodes BrowserAct)
  Google Sheets** credentials for storing and managing data
  Slack** credentials for sending alerts

  Need Help?
  How to Find Your BrowseAct API Key & Workflow ID
  How to Connect n8n to Browseract
  How to Use & Customize BrowserAct Templates
  How to Use the BrowserAct N8N Community Node

  Workflow Guidance and Showcase

  Automatically Track Competitor Products | n8n & Google Sheets Template

nodes_used:
  ["n8n-nodes-base.scheduleTrigger","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","n8n-nodes-base.slack","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","n8n-nodes-base.googleSheets","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-browseract-workflows.browserAct","n8n-nodes-browseract-workflows.browserAct","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","n8n-nodes-base.if","n8n-nodes-base.splitInBatches","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 7556 characters]


name: Summarize & Extract Glassdoor Company Info with Google Gemini and Decodo
author_name: Ranjan Dailata
author_username: ranjancse
categories: []
created_at: 2025-10-20T03:38:49.348Z
updated_at: 2025-10-20T03:38:49.348Z
url: https://n8n.io/workflows/9924
scraped_at: 2025-12-24 13:02:46
description:
  This workflow automates company research and intelligence extraction from Glassdoor using Decode API for data retrieval and Google Gemini for AI-powered summarization.

  Who this is for

  This workflow is ideal for:

  Recruiters, analysts, and market researchers looking for structured insights from company profiles.
  HR tech developers and AI research teams needing a reliable way to extract and summarize Glassdoor data automatically.
  Venture analysts or due diligence teams conducting company research combining structured and unstructured content.
  Anyone who wants instant summaries and insights from Glassdoor company pages without manual scraping.

  What problem this workflow solves

  Manual Data Extraction**: Glassdoor company details and reviews are often scattered and inconsistent, requiring time-consuming copy-paste efforts.
  Unstructured Insights**: Raw reviews contain valuable opinions but are not organized for analytical use.
  Fragmented Company Data**: Key metrics like ratings, pros/cons, and FAQs are mixed with irrelevant data.
  Need for AI Summarization**: Business users need a concise, executive-level summary that combines employee sentiment, culture, and overall performance metrics.

  This workflow automates data mining, summarization, and structuring, transforming Glassdoor data into ready-to-use JSON and Markdown summaries.

  What this workflow does

  The workflow automates the end-to-end pipeline for Glassdoor company research:

  Trigger

     Start manually by clicking “Execute Workflow.”

  Set Input Fields

     Define company_url (e.g., a Glassdoor company profile link) and geo (country).

  Extract Raw Data from Glassdoor (Decodo Node)

     Uses the Decodo API to fetch company data — including overview, ratings, reviews, and frequently asked questions.

  Generate Structured Data (Google Gemini + Output Parser)

     The Structured Data Extractor node (powered by Gemini AI) processes raw data into well-defined fields:

       Company overview (name, size, website, type)
       Ratings breakdown
       Review snippets (pros, cons, roles)
       FAQs
       Key takeaways

  Summarize the Insights (Gemini AI Summarizer)

     Produces a detailed summary highlighting:

       Company reputation
       Work culture
       Employee sentiment trends
       Strengths and weaknesses
       Hiring recommendations

  Merge and Format

     Combines structured data and summary into a unified object for output.

  Export and Save

     Converts the final report into JSON and writes it to disk as
       C:\{{CompanyName}}.json.

  Binary Encoding for File Handling

     Prepares data in base64 for easy integration with APIs or downloadable reports.

  Setup

  Prerequisites

  n8n instance** (cloud or self-hosted)
  Decodo API credentials** (added as decodoApi)
  Google Gemini (PaLM) API credentials**
  Access to the Glassdoor company URLs

  Make sure to install the Decodo Community Node.

  Steps

  Import this workflow JSON file into your n8n instance.
  Configure your credentials for:

     Decodo API
     Google Gemini (PaLM) API
  Open the Set the Input Fields node and replace:

     company_url → with the Glassdoor URL
     geo → with the region (e.g., India, US, etc.)
  Execute the workflow.
  Check your output folder (C:\) for the exported JSON report.

  How to Customize This Workflow

  You can easily adapt this template to your needs:

  Add Sentiment Analysis**

    Include another Gemini or OpenAI node to rate sentiment (positive/negative/neutral) per review.
  Export to Notion or Google Sheets**

    Replace the file node with a Notion or Sheets integration for live dashboarding.
  Multi-Company Batch Mode**

    Convert the manual trigger to a spreadsheet or webhook trigger for bulk research automation.
  Add Visualization Layer**

    Connect the output to Looker Studio or Power BI for analytical dashboards.
  Change Output Format**

    Modify the final write node to generate Markdown or PDF summaries using the pypandoc or reportlab module.

  Summary

  This n8n workflow combines Decode web scrapping with Google Gemini’s reasoning and summarization power to build a fully automated Glassdoor Research Engine.

  With a single execution, it:

  Extracts structured company details
  Summarizes thousands of employee reviews
  Delivers insights in an easy-to-consume format

  Ideal for:

  Recruitment intelligence
  Market research
  Employer branding
  Competitive HR analysis

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.set","@decodo/n8n-nodes-decodo.decodo","@n8n/n8n-nodes-langchain.outputParserStructured","@n8n/n8n-nodes-langchain.chainLlm","@n8n/n8n-nodes-langchain.informationExtractor","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.merge","n8n-nodes-base.readWriteFile","n8n-nodes-base.code","n8n-nodes-base.function","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 4372 characters]


name: RAG-powered Document Chat with Google Drive, OpenAI, and Pinecone Assistant
author_name: Pinecone
author_username: pinecone
categories: []
created_at: 2025-10-20T13:42:34.526Z
updated_at: 2025-10-20T13:42:34.526Z
url: https://n8n.io/workflows/9942
scraped_at: 2025-12-24 13:02:42
description:
  Try it out

  This n8n workflow template lets you chat with your Google Drive documents (.docx, .json, .md, .txt, .pdf) using OpenAI and Pinecone Assistant. It retrieves relevant context from your files in real time so you can get accurate, context-aware answers about your proprietary data—without the need to train your own LLM.

  What is Pinecone Assistant?

  Pinecone Assistant allows you to build production-grade chat and agent-based applications quickly. It abstracts the complexities of implementing retrieval-augmented (RAG) systems by managing the chunking, embedding, storage, query planning, vector search, model orchestration, reranking for you.

  Prerequisites

  A Pinecone account and API key
  A GCP project with Google Drive API enabled and configured
    Note: When setting up the OAuth consent screen, skip steps 8-10 if running on localhost
  An Open AI account and API key

  Setup

  Create a Pinecone Assistant in the Pinecone Console here 
  	Name your Assistant n8n-assistant and create it in the United States region
  	If you use a different name or region, update the related nodes to reflect these changes
  	No need to configure a Chat model or Assistant instructions
  Setup your Google Drive OAuth2 API credential in n8n
  	In the File added node -&gt; Credential to connect with, select Create new credential
  	Set the Client ID and Client Secret from the values generated in the prerequisites
  	Set the OAuth Redirect URL from the n8n credential in the Google Cloud Console (instructions)
  	Name this credential Google Drive account so that other nodes reference it
  Setup Pinecone API key credential in n8n
  	In the Upload file to assistant node -&gt; PineconeApi section, select Create new credential
  	Paste in your Pinecone API key in the API Key field
  Setup Pinecone MCP Bearer auth credential in n8n
  	In the Pinecone Assistant node -&gt; Credential for Bearer Auth section, select Create new credential
  	Set the Bearer Token field to your Pinecone API key used in the previous step
  Setup the Open AI credential in n8n
  	In the OpenAI Chat Model node -&gt; Credential to connect with, select Create new credential
  	Set the API Key field to your OpenAI API key
  Add your files to a Drive folder named n8n-pinecone-demo in the root of your My Drive
  	If you use a different folder name, you'll need to update the Google Drive triggers to reflect that change
  Activate the workflow or test it with a manual execution to ingest the documents
  Chat with your docs!

  Ideas for customizing this workflow

  Customize the System Message on the AI Agent node to your use case to indicate what kind of knowledge is stored in Pinecone Assistant
  Change the top_k value of results returned from Assistant by adding "and should set a top_k of 3" to the System Message to help manage token consumption
  Configure the Context Window Length in the Conversation Memory node
  Swap out the Conversation Memory node for one that is more persistent
  Make the chat node publicly available or create your own chat interface that calls the chat webhook URL.

  Need help?

  You can find help by asking in the Pinecone Discord community, asking on the Pinecone Forum, or filing an issue on this repo.

nodes_used:
  ["n8n-nodes-base.httpRequest","n8n-nodes-base.googleDrive","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.googleDriveTrigger","n8n-nodes-base.googleDriveTrigger","n8n-nodes-base.httpRequest","n8n-nodes-base.set","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.chatTrigger","@n8n/n8n-nodes-langchain.mcpClientTool","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.wait","n8n-nodes-base.switch","@n8n/n8n-nodes-langchain.memoryBufferWindow","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 5996 characters]


name: Automate Review Request via WhatsApp for Completed WooCommerce Order with Rapiwa
author_name: Rapiwa
author_username: rapiwa
categories: []
created_at: 2025-10-21T05:10:46.311Z
updated_at: 2025-10-21T05:10:46.311Z
url: https://n8n.io/workflows/9969
scraped_at: 2025-12-24 13:02:45
description:
  Who is this for?
  This workflow is designed for online store owners, customer-success teams, and marketing operators who want to automatically verify customers' WhatsApp numbers and deliver order updates or invoice links via WhatsApp. It is built around WooCommerce order WooCommerce Trigger (order.updated) but is easily adaptable to Shopify or other platforms that provide billing and line_items in the WooCommerce Trigger payload.

  What this Workflow Does / Key Features
  Listens for WooCommerce order events (example: order.updated) via a Webhook or a WooCommerce trigger.
  Filters only orders with status "completed" and maps the payload into a normalized object: { data: { customer, products, invoice_link } } using the Code node Order Completed check.
  Iterates over line items using SplitInBatches to control throughput.
  Cleans phone numbers (Clean WhatsApp Number code node) by removing all non-digit characters.
  Verifies whether the cleaned phone number is registered on WhatsApp using Rapiwa's verify endpoint (POST https://app.rapiwa.com/api/verify-whatsapp).
  If verified, sends a templated WhatsApp message via Rapiwa (POST https://app.rapiwa.com/api/send-message).
  Appends an audit row to a "Verified & Sent" Google Sheet for successful sends, or to an "Unverified & Not Sent" sheet for unverified numbers.
  Uses Wait and batching to throttle requests and avoid API rate limits.

  Requirements
  HTTP Bearer credential for Rapiwa (example name in flow: Rapiwa Bearer Auth).
  WooCommerce API credential for the trigger (example: WooCommerce (get customer))
  Running n8n instance with nodes: WooCommerce Trigger, Code, SplitInBatches, HTTP Request, IF, Google Sheets, Wait.
  Rapiwa account and a valid Bearer token.
  Google account with Sheets access and OAuth2 credentials configured in n8n.
  WooCommerce store (or any WooCommerce Trigger source) that provides billing and line_items in the payload.

  How to Use — step-by-step Setup
  1) Credentials
     Rapiwa: Create an HTTP Bearer credential in n8n and paste your token (flow example name: Rapiwa Bearer Auth).
     Google Sheets: Add an OAuth2 credential (flow example name: Google Sheets).
     WooCommerce: Add the WooCommerce API credential or configure a Webhook on your store.


  3) Configure Google Sheets
     The exported flow uses spreadsheet ID: 1S3RtGt5xxxxxxxXmQi_s (Sheet gid=0) as an example. Replace with your spreadsheet ID and sheet gid.
     Ensure your sheet column headers exactly match the mapping keys listed below (case and trailing spaces must match or be corrected in the mapping).

  5) Verify HTTP Request nodes
     Verify endpoint: POST https://app.rapiwa.com/api/verify-whatsapp — sends { number } (uses HTTP Bearer credential).
     Send endpoint: POST https://app.rapiwa.com/api/send-message — sends number, message_type=text, and a templated message that uses fields from the Clean WhatsApp Number output.

  Google Sheet Column Structure
  The Google Sheets nodes in the flow append rows with these column keys. Make sure the spreadsheet headers 
  A Google Sheet formatted like this ➤ sample

  | Name           | Number        | Email             | Address                                  | Product Title               | Product ID | Total Price   | Invoice Link                                                                                                  | Delivery Status | Validity   | Status    |
  |----------------|---------------|-------------------|------------------------------------------|-----------------------------|------------|---------------|--------------------------------------------------------------------------------------------------------------|-----------------|------------|-----------|
  | Abdul Mannan | 8801322827799 | contact@spagreen.net   | mirpur dohs                             | Air force 1 Fossil 1:1 - 44 | 238        | BDT 5500.00   | Invoice link | completed       | verified   | sent      |
  | Abdul Mannan | 8801322827799 | contact@spagreen.net   | mirpur dohs h#1168 rd#10 av#10 mirpur dohs dhaka | Air force 1 Fossil 1:1 - 44 | 238        | BDT 5500.00   | Invoice link | completed       | unverified | not sent  |

  Important Notes
  Do not hard-code API keys or tokens; always use n8n credentials.
  Google Sheets column header names must match the mapping keys used in the nodes. Trailing spaces are common accidental problems — trim them in the spreadsheet or adjust the mapping.
  The IF node in the exported flow compares to the string "true". If the verify endpoint returns boolean true/false, convert to string or boolean consistently before the IF.
  Message templates in the flow reference $('Clean WhatsApp Number').item.json.data.products[0] — update templates if you need multiple-product support.

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

  Support & Help
  WhatsApp**: Chat on WhatsApp
  Discord**: SpaGreen Community
  Facebook Group**: SpaGreen Support
  Website**: https://spagreen.net
  Developer Portfolio**: Codecanyon SpaGreen

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

workflow_json_compressed:
  [encoded data, 7008 characters]


name: Automate HVAC Service Scheduling with AI Agent, Google Calendar and Gmail
author_name: Bhuvanesh R
author_username: bhuvanesh
categories: []
created_at: 2025-10-21T09:41:32.806Z
updated_at: 2025-10-21T09:41:32.806Z
url: https://n8n.io/workflows/9974
scraped_at: 2025-12-24 13:02:42
description:
  Instant, automated scheduling. This AI Scheduling Agent manages real-time appointments, availability checks, and rescheduling across Google Calendar and Sheets, eliminating human hold times.

  🎯 Problem Statement

  Traditional call center or online booking systems often lack the flexibility to handle complex, multi-step customer requests like rescheduling, checking dynamic availability across multiple time slots, or handling context-aware conversational booking. This leads to friction, missed bookings, and high administrative overhead for service companies like HVAC providers.

  ✨ Solution

  This workflow deploys a sophisticated AI Scheduling Agent that acts as a virtual receptionist. It uses the Language Model's (LLM) "tool-use" capability to intelligently execute complex, sequential business logic (e.g., check availability before booking, find existing events before rescheduling) and manages the entire lifecycle of a service appointment, from initial inquiry to final confirmation.

  ⚙️ How It Works (Multi-Step Execution)

  Trigger: A customer request (e.g., from an external voice or text platform) hits the Webhook Trigger with intent details (e.g., tool\_request: 'reschedule\_appointment').
      
  Agent Logic: The Receptionist Agent uses a strict system prompt and its internal tools to formulate an execution plan. It maintains conversational state via the simple-memory node.
      
  Tool Execution (Example: Reschedule): The Agent executes a predefined sequence of private tools:
      
      find\_old\_event: Locates the existing booking ID using the customer's email.
          
      check\_calendar: Verifies the proposed new time is available (2-hour window).
          
      reschedule\_appointment: Updates the calendar event.
          
      log\_lead: Updates the central Google Sheet.
          
  Synchronous Response: The Agent sends a confirmation or follow-up question via the respond\_to\_webhook node.
      
  Asynchronous Confirmation: The log\_lead action triggers a secondary workflow that composes a professional email via a second LLM (Anthropic) and sends it to the customer via Gmail, followed by an internal alert via Google Chat.
  🛠️ Setup Steps

  Credentials:
      
      AI/LLM: Configure credentials for the Language Model used (OpenAI or Gemini) for the core Agent.
          
      Google Services: Set up OAuth2 credentials for Google Calendar (for booking/checking), Google Sheets (for logging), and Gmail (for customer confirmation).
          
  Google Calendar: Specify the technician's calendar ID (bhuvaneshx13@gmail.com in the template) in all Calendar nodes.
      
  Google Sheets: Create a new Google Sheet to serve as the Lead Log and update the Document ID and Sheet Name in the log\_lead and log\_lead\_trigger nodes.
      
  Tool Configuration: Review and customize the Agent's system prompt in the Receptionist node to align time zone rules (currently Asia/Kolkata - IST) and business hours (9:00 AM to 6:00 PM) with your operations.
  ✅ Benefits

  Increased Efficiency: Fully automates complex scheduling and rescheduling, freeing up human staff.
      
  Contextual Service: AI handles multi-turn conversations and adheres to strict business rules (e.g., 2-hour slots, maximum tool usage).
      
  Data Integrity: Ensures all bookings are immediately logged to Google Sheets, maintaining a centralized record (CRM).
      
  Professional Flow: Provides immediate confirmation to the customer via email and instant notification to the internal team via chat.
  🚀 Other Use Cases

  The underlying multi-step, tool-execution pattern is highly versatile and can be adapted for any service industry requiring complex, rules-based scheduling:

  Real Estate:** Scheduling property viewings (Check agent availability → Book viewing → Send directions).

  HVAC Services:** Managing maintenance and repair visits (Diagnose issue type → Match with qualified technician → Check part availability → Schedule visit → Send service confirmation).
      
  Medical/Dental:** Booking patient appointments (Check insurance eligibility → Check doctor availability → Book → Send pre-visit forms).
      
  Legal Services:** Intake for consultations (Collect client issue → Check specialist availability → Book → Send retainer agreement).
      
  Automotive Repair:** Scheduling service bays (Check bay and mechanic availability → Book → Update internal service board).

nodes_used:
  ["n8n-nodes-base.webhook","@n8n/n8n-nodes-langchain.toolThink","n8n-nodes-base.respondToWebhook","@n8n/n8n-nodes-langchain.memoryBufferWindow","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.googleCalendarTool","n8n-nodes-base.googleSheetsTool","n8n-nodes-base.googleSheetsTrigger","n8n-nodes-base.googleCalendarTool","n8n-nodes-base.googleCalendarTool","@n8n/n8n-nodes-langchain.anthropic","n8n-nodes-base.gmail","n8n-nodes-base.wait","n8n-nodes-base.googleCalendarTool","n8n-nodes-base.googleCalendarTool","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.googleChat","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

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


name: Automated Customer Feedback Triage & Follow-up with Gemini, Jotform, Gmail, Jira
author_name: Zain Khan
author_username: zain
categories: []
created_at: 2025-10-21T12:03:22.394Z
updated_at: 2025-10-21T12:03:22.394Z
url: https://n8n.io/workflows/9976
scraped_at: 2025-12-24 13:02:44
description:
  AI-Powered Customer Feedback: Triage and Insight-Driven Chat

  This n8n workflow creates a two-phase system for handling customer feedback received via a Jotform submission. The first agent quickly triages the issue, and the second agent engages in a persistent, conversational exchange over email to collect the information necessary for a resolution.

  Phase 1: Triage and Initial Action (AI Agent)

  This phase is triggered by a new submission on the Jotform. The goal is to immediately categorize the feedback and take the appropriate initial action.

  Jotform Trigger: The workflow starts instantly when a user submits your designated feedback form.
  AI Agent (Triage): This agent (powered by Google Gemini) is tasked with two primary jobs:
      Sentiment Analysis and Response Drafting: It reads the feedback (q6_typeA6) and the user's name (q3_name.first).
          If Positive: It uses the Send a message in Gmail tool to send a concise, appreciative thank you note.
          If Negative: It uses the Send a message in Gmail tool to send an initial, empathetic response acknowledging the issue and stating that a team member will follow up with questions. It also uses the Create an issue in Jira Software tool to log the bug or issue immediately.
      Data Structuring: It uses the Structured Output Parser to extract key data points, most importantly the threadId of the initial email, which is crucial for the follow-up conversation agent.

  Phase 2: Conversational Insight Gathering (AI Agent (Chat))

  This phase takes over for all negative feedback, engaging the customer in a back-and-forth exchange to collect essential details required for the development or support team.

  Gmail Trigger: This node is set to poll for new, unread emails (which are expected to be replies from the customer).
  Simple Memory: This node is vital for the conversational aspect. It is configured to use the unique email threadId as its session key, allowing the AI Agent to remember the entire history of the conversation (previous questions asked and details provided) across multiple emails.
  AI Agent (Chat): This is the 2nd agent and the core of the conversational process.
      Role: It acts as a dedicated feedback assistant.
      Goal: Its instruction is to reply and ask for specific, missing information needed for the ticket, such as: what device they were using, if they know the steps to reproduce the issue, and to confirm that the team will send a free coupon for credits as a thank you for their help.
      Tool: It uses the Reply to a message in Gmail tool to continue the conversation directly within the original email thread.
      Resolution: The agent is trained to look for confirmation that all necessary information has been provided. Once it determines the issue details are complete, it will send a final thank you email and automatically use the Jira tool to summarize and update the existing Jira issue with the new insights, closing the loop on the data collection process.

  Requirements

  To implement and run this automated customer feedback workflow, the following accounts and credentials are required:

  1. Automation Platform

  n8n Instance:** A running instance of n8n (Cloud or self-hosted) to host and execute the workflow.
  Sign up for n8n using: https://n8n.partnerlinks.io/pe6gzwqi3rqw

  2. Service Credentials

  You must set up and connect the following credentials within your n8n instance:

  Google Gemini API Key:* Required to power both *AI Agent** nodes for sentiment analysis and conversational follow-up.
  Gmail OAuth2/API Key:** Required for:
      The Send a message in Gmail tool (for initial replies).
      The Gmail Trigger (to detect new replies).
      The Reply to a message in Gmail tool (for the ongoing conversation).
  Jotform API Key:* Required for the *Jotform Trigger** node to instantly receive and process new form submissions.
  Sign up for Jotform using: https://www.jotform.com/?partner=zainurrehman
  Jira Software Credentials:* Required for the *Create an issue in Jira Software* tool (for the first agent) and the *Jira Tool** (for the second agent to update the ticket).

  3. External Configurations

  Jotform Setup:** A live Jotform must be configured with specific fields to capture the user's name, email, and the feedback text.
  Jira Setup:* You need a designated *Jira Project* and a defined *Issue Type** for the workflow to create and update tickets.

nodes_used:
  ["n8n-nodes-base.jotFormTrigger","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.gmailTrigger","@n8n/n8n-nodes-langchain.memoryBufferWindow","n8n-nodes-base.gmailTool","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.gmailTool","n8n-nodes-base.set","n8n-nodes-base.jiraTool","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

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


name: AI-Powered Product Video Generator (Foreplay + Gemini + Sora 2)
author_name: Fahmi Fahreza
author_username: fahmiiireza
categories: []
created_at: 2025-10-21T14:48:34.856Z
updated_at: 2025-10-21T14:48:34.856Z
url: https://n8n.io/workflows/9986
scraped_at: 2025-12-24 13:02:41
description:
  AI-Powered Product Video Generator (Foreplay + Gemini + Sora 2)

  Sign Up For Foreplay HERE

  Automatically generate personalized, cinematic-quality product videos using Foreplay’s ad data, Google Gemini AI for creative prompts, and Sora 2 for text-to-video generation.

  Who’s it for?
  Perfect for marketers, brand managers, or creators who want to produce quick, high-quality video ads without manual scripting or editing.

  How it works
  Fetch product data and related competitor videos from Foreplay.
  Use Gemini AI to generate creative text-to-video prompts.
  Send the prompt and image to Kie.ai to generate a short, cinematic product video.
  Save the finished video automatically to Google Drive.

  How to set up
  Connect your Foreplay, Google Drive, Gemini, and Kie.ai credentials.  
  Set your product image folder's permission (Google Drive) as public.  
  Add your API keys inside the Set Workflow Credentials node.  
  Then run the workflow manually to generate your first video ad!

nodes_used:
  ["n8n-nodes-base.stickyNote","n8n-nodes-base.manualTrigger","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.googleDrive","n8n-nodes-base.httpRequest","n8n-nodes-base.splitOut","n8n-nodes-base.set","n8n-nodes-base.splitInBatches","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.wait","n8n-nodes-base.googleDrive","n8n-nodes-base.stickyNote","n8n-nodes-base.switch"]

workflow_json_compressed:
  [encoded data, 8092 characters]


name: Auto-Create TikTok Videos with VEED.io AI Avatars, ElevenLabs & GPT-4
author_name: Dr. Firas
author_username: drfiras
categories: []
created_at: 2025-10-21T20:50:20.762Z
updated_at: 2025-10-21T20:50:20.762Z
url: https://n8n.io/workflows/10000
scraped_at: 2025-12-24 13:02:41
description:
  💥 Viral TikTok Video Machine: Auto-Create Videos with Your AI Avatar

  🎯 Who is this for?
  This workflow is for content creators, marketers, and agencies who want to use Veed.io’s AI avatar technology to produce short, engaging TikTok videos automatically.  
  It’s ideal for creators who want to appear on camera without recording themselves, and for teams managing multiple brands who need to generate videos at scale.

  ⚙️ What problem this workflow solves
  Manually creating videos for TikTok can take hours — finding trends, writing scripts, recording, and editing.  
  By combining Veed.io, ElevenLabs, and GPT-4, this workflow transforms a simple Telegram input into a ready-to-post TikTok video featuring your AI avatar powered by Veed.io — speaking naturally with your cloned voice.

  🚀 What this workflow does
  This automation links Veed.io’s video-generation API with multiple AI tools:
  Analyzes TikTok trends via Perplexity AI  
  Writes a 10-second viral script using GPT-4  
  Generates your voiceover via ElevenLabs  
  Uses Veed.io (Fabric 1.0 via FAL.ai) to animate your avatar and sync the lips to the voice  
  Creates an engaging caption + hashtags for TikTok virality  
  Publishes the video automatically via Blotato TikTok API  
  Logs all results to Google Sheets for tracking

  🧩 Setup
  Telegram Bot
     Create your bot via @BotFather
     Configure it as the trigger for sending your photo and theme

  Connect Veed.io
     Create an account on Veed.io  
     Get your FAL.ai API key (Veed Fabric 1.0 model)  
     Use HTTPS image/audio URLs compatible with Veed Fabric  

  Other APIs
     Add Perplexity, ElevenLabs, and Blotato TikTok keys  
     Connect your Google Sheet for logging results  

  🛠️ How to customize this workflow
  Change your Avatar:* Upload a new image through Telegram, and *Veed.io** will generate a new talking version automatically.  
  Modify the Script Style:** Adjust the GPT prompt for tone (educational, funny, storytelling).  
  Adjust Voice Tone:* Tweak *ElevenLabs** stability and similarity settings.  
  Expand Platforms:** Add Instagram, YouTube Shorts, or X (Twitter) posting nodes.  
  Track Performance:** Customize your Google Sheet to measure your most successful Veed.io-based videos.

  🧠 Expected Outcome
  In just a few seconds after sending your photo and theme, this workflow — powered by Veed.io — creates a fully automated TikTok video featuring your AI avatar with natural lip-sync and voice.  
  The result is a continuous stream of viral short videos, made without cameras, editing, or effort.

  ✅ Import the JSON file in n8n, add your API keys (including Veed.io via FAL.ai), and start generating viral TikTok videos starring your AI avatar today!

  🎥 Watch This Tutorial



  📄 Documentation: Notion Guide

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

nodes_used:
  ["n8n-nodes-base.telegramTrigger","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.perplexity","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.googleSheets","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.telegram","n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.httpRequest","n8n-nodes-base.wait","n8n-nodes-base.httpRequest","n8n-nodes-base.telegram","@blotato/n8n-nodes-blotato.blotato","@blotato/n8n-nodes-blotato.blotato","@blotato/n8n-nodes-blotato.blotato","n8n-nodes-base.googleSheets","@blotato/n8n-nodes-blotato.blotato","@blotato/n8n-nodes-blotato.blotato","@blotato/n8n-nodes-blotato.blotato","@blotato/n8n-nodes-blotato.blotato","@blotato/n8n-nodes-blotato.blotato","@blotato/n8n-nodes-blotato.blotato","@blotato/n8n-nodes-blotato.blotato","n8n-nodes-base.merge"]

workflow_json_compressed:
  [encoded data, 9932 characters]


name: Automate Facebook Page Token Renewal with Data Tables Storage
author_name: Đỗ Thành Nguyên
author_username: nathando
categories: []
created_at: 2025-10-22T11:31:10.436Z
updated_at: 2025-10-22T11:31:10.436Z
url: https://n8n.io/workflows/10038
scraped_at: 2025-12-24 13:02:45
description:
  Get Long-Lived Facebook Page Access Token with Data Table
  &gt; Set up n8n self-hosted via Tino.vn VPS — use code VPSN8N for up to 39% off (affiliate link).

  Good to Know

  This workflow automatically solves the common issue of Facebook Page Access Tokens expiring. It proactively renews your Page Tokens and stores them in an n8n Data Table.

  It runs every two months, ensuring your Page Access Tokens remain valid. This guarantees seamless and uninterrupted automation for all your Facebook API integrations.

  How It Works

  The workflow performs the following steps to keep your tokens up to date:

  Schedule Trigger: The workflow runs on a set schedule — every two months by default.
  Set Parameters: It initializes the required credentials: client_id, client_secret, a short-lived user_access_token, and the app_scoped_user_id (all obtained from Facebook Developer Tools).
  Get Long-Lived User Token: It exchanges the short-lived User Access Token for a long-lived one.
  Get Page Tokens: Using the long-lived User Token, it fetches all pages you manage and their corresponding Page Access Tokens.
  Update Data Table: For each page, it extracts the access_token, name, and id, then performs an Upsert operation to update or insert rows in your n8n Data Table, ensuring the stored tokens are always current.

  How to Use

  Import: Import this JSON file into your n8n instance.
  Configure Credentials: Open the Set Parameters node and replace the placeholder values for client_id, client_secret, user_access_token, and app_scoped_user_id with your actual credentials from Facebook.
  Configure Data Table: Open the Upsert row(s) node.

     Select or create an n8n Data Table to store your tokens.
     Make sure the column mapping (token, name_page, id_page) matches your table schema.
  Activate: Save and activate the workflow. It will now run automatically based on your configured schedule.

  Requirements

  n8n instance :**
  &gt; Set up n8n self-hosted via Tino.vn VPS — use code VPSN8N for up to 39% off (affiliate link).

  Facebook App:** A Facebook Developer App to generate the following credentials:

    client_id and client_secret
    A short-lived user_access_token
    app_scoped_user_id
  Data Table:** An n8n Data Table configured with columns to store token information (e.g., token, name_page, id_page).

  Customizing This Workflow

  Change Schedule:* To modify how often tokens are renewed, edit the *Schedule Trigger* node. You can change the interval from *2 months* to *1 month**, or schedule it for a specific day.
  Filter Pages:* If you only want to store tokens for specific pages, insert a *Filter* node right after *Split Out. Use the page name or ID to filter before sending data to **Upsert row(s).
  Alternative Storage:* Instead of an n8n Data Table, you can replace the *Upsert row(s)* node with another option (e.g., Google Sheets, a database, or a *Set** node) to store tokens elsewhere.

nodes_used:
  ["n8n-nodes-base.set","n8n-nodes-base.splitOut","n8n-nodes-base.set","n8n-nodes-base.dataTable","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote"]

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


name: Automate Video Story Publishing to Facebook Page using Google Drive and Sheets
author_name: Đỗ Thành Nguyên
author_username: nathando
categories: []
created_at: 2025-10-23T02:34:17.108Z
updated_at: 2025-10-23T02:34:17.108Z
url: https://n8n.io/workflows/10067
scraped_at: 2025-12-24 13:02:43
description:
  Automated Facebook Page Story Video Publisher (Google Drive → Facebook → Google Sheet)
  &gt; Recommended: Self-hosted via tino.vn/vps-n8n?affid=388 — use code VPSN8N for up to 39% off.

  This workflow is an automated solution for publishing video content from Google Drive to your Facebook Page Stories, while using Google Sheets as a posting queue manager.

  What This Workflow Does (Workflow Function)

  This automation orchestrates a complete multi-step process for uploading and publishing videos to Facebook Stories:

  Queue Management: Every 2 hours and 30 minutes, the workflow checks a Google Sheet (Get Row Sheet node) to find the first video whose Stories column is empty — meaning it hasn’t been posted yet.
  Conditional Execution: An If node confirms that the video’s File ID exists before proceeding.
  Video Retrieval: Using the File ID, the workflow downloads the video from Google Drive (Google Drive node) and calculates its binary size (Set to the total size in bytes node).
  Facebook 3-Step Upload: It performs the Facebook Graph API’s three-step upload process through HTTP Request nodes:

     Step 1 – Initialize Session: Starts an upload session and retrieves the upload_url and video_id.
     Step 2 – Upload File: Uploads the binary video data to the provided upload_url.
     Step 3 – Publish Video: Finalizes and publishes the uploaded video as a Facebook Story.
  Status Update: Once completed, the workflow updates the same row in Google Sheets (Update upload status in sheet node) using the row_number to mark the video as processed.

  Prerequisites (What You Need Before Running)

  1. n8n Instance

  &gt; Recommended: Self-hosted via tino.vn/vps-n8n?affid=388 — use code VPSN8N for up to 39% off.

  2. Google Services

  Google Drive Credentials:** OAuth2 credentials for Google Drive to let n8n download video files.
  Google Sheets Credentials:** OAuth2 credentials for Google Sheets to read the posting queue and update statuses.
  Google Sheet:** A spreadsheet (ID: 1RnE5O06l7W6TLCLKkwEH5Oyl-EZ3OE-Uc3OWFbDohYI) containing:

    File ID — the video’s unique ID in Google Drive.
    Stories — posting status column (leave empty for pending videos).
    row_number — used for updating the correct row after posting.

  3. Facebook Setup

  Page ID:** Your Facebook Page ID (currently hardcoded as 115432036514099 in the info node).
  Access Token:* A *Page Access Token** with permissions such as pages_manage_posts and pages_read_engagement.
    This token is hardcoded in the info node and again in Step 3. Post video.

  Usage Guide and Implementation Notes

  How to Use

  Queue Videos: Add video entries to your Google Sheet. Each entry must include a valid Google Drive File ID. Leave the Stories column empty for videos that haven’t been posted.
  Activate: Save and activate the workflow. The Schedule Trigger will automatically handle new uploads every 2 hours and 30 minutes.

  Implementation Notes

  ⚠️ Token Security:* Hardcoding your *Access Token* inside the info node is *not recommended**. Tokens expire and expose your Page to risk if leaked.
    👉 Action: Replace the static token with a secure Credential setup that supports token rotation.

  Loop Efficiency:* The *“false”** output of the If node currently loops back to the Get Row Sheet node. This creates unnecessary cycles if no videos are found.
    👉 Action: Disconnect that branch so the workflow stops gracefully when no unposted videos remain.

  Status Updates:* To prevent re-posting the same video, the final Update upload status in sheet node must update the *Stories** column (e.g., write "POSTED").
    👉 Action: Add this mapping explicitly to your Google Sheets node.

  Automated File ID Sync:** This workflow assumes that the Google Sheet already contains valid File IDs.
    👉 You can build a secondary workflow (using Schedule Trigger1 → Search files and folders → Append or update row in sheet) to automatically populate new video File IDs from your Google Drive.

  ✅ Result

  Once active, this workflow automatically:

  pulls pending videos from your Google Sheet,
  uploads them to Facebook Stories,
  and marks them as posted — all without manual intervention.

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

workflow_json_compressed:
  [encoded data, 5064 characters]


name: Find Domain-Based Gmail Addresses for Outreach with EmailListVerify & Google Sheet
author_name: EmailListVerify
author_username: emaillistverify
categories: []
created_at: 2025-10-23T03:25:32.259Z
updated_at: 2025-10-23T03:25:32.259Z
url: https://n8n.io/workflows/10068
scraped_at: 2025-12-24 13:02:45
description:
  Who is this template for?
  This template is designed for link building. When you reach out to some small blogs it is common for the owner to have an address like DomainName@gmail.com.

  This workflow will find such emails for you. 

  What problem does this workflow solve?
  Get from a list of domain names to a list of email addresses. This is perfect to prepare a cold outreach campaign for link building.

  This workflow allows you to find email addresses with any extension. I recommend searching for Gmail as a starting Point. But you can also use workflow to check for other email providers.

  Pro-tip: Check the email provider used in the geography you target:
  Lapost.net for France
  Seznam.cz for Czechia

  What this workflow does
  This workflow will:
  Generate email candidates based on the domain name and root you are providing
  Check if those email addresses are valid using EmailListVerify

  ##Requirement
  This template uses:
  Google Sheet to handle input and output data
  EmailListVerify to discover email (from $0.05 per email)

  Setup (10 minutes)
  1: Make a copy of the GoogleSheet template
  2: In "[Input] pattern" sheet write the email extension you want to check. Gmail is a no-brainer. Depending on the location you target, you might want to include local email providers like laposte.net for France.
  3: In "[Input] domain" put the domain for which you want to find email addresses. 
  4: Add your EmailListVerify API key to setting to the 3rd step
  5: Update Google Sheet node to point to your copy of the template
  6: Trigger the workflow

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

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


name: Content Farming v4 - Blog Automation for Wordpress using ChatGPT 5 and Gemini
author_name: Jay Emp0
author_username: jay-emp0
categories: []
created_at: 2025-10-23T08:11:15.791Z
updated_at: 2025-10-23T08:11:15.791Z
url: https://n8n.io/workflows/10079
scraped_at: 2025-12-24 13:02:44
description:
  AI Powered Blog Automation Workflow for WordPress and Twitter - v4 Revolution

  &gt;  Watch the Youtube Tutorial video


  This is the most advanced AI-powered blog content generation and distribution workflow ever built for the n8n automation platform. Version 4 introduces groundbreaking improvements including GPT-5 model integration, 50-70% cost reduction, intelligent internal linking, automatic FAQ generation, and enterprise-grade content validation. It's designed for solo founders, creators, indie hackers, marketers, SEO consultants, or lean startup teams who want to dominate their niche with high-quality, search-optimized articles that drive traffic and conversions.



  Running a blog is essential to drive traffic, build authority, and rank on Google, but it's time consuming and expensive to manage. This workflow turns your blog into a self-optimizing content engine that generates, enhances, validates, and publishes articles every day using a team of autonomous AI agents powered by the latest GPT-5 models. If you want to boost your site's visibility, improve your internal linking structure, and promote content across multiple channels like WordPress, Twitter, and Dev.to, this is the most powerful solution available.

  Important links

  ✨ V3 workflow on n8n - Previous version
  📚 See articles generated with V4 - Live examples from this workflow
  📊 Google Sheets Configuration Template - Copy and customize for your blog
  🛒 V4 Available Now: Contact us for pricing and access
  🔄 V3 Upgrade Path: Existing V3 customers get discounted V4 upgrade

  Before You Start

  To get the most out of this workflow, prepare the following:

  Copy the Google Sheets Template** - Make a copy here and fill in your:
    Content categories with WordPress IDs
    Brand customization data
    Brand customization data
  Prepare your WordPress site** with existing content for internal linking (the more posts, the better)
  Set up Yoast SEO plugin** (optional but recommended for maximum SEO integration)
  Know your audience** - Developers? Founders? Investors? Enterprises?

  How It Works

  Step 1**: Topic Discovery \+ Web Search \+ Vectorization
  Step 2**: Topic Generation with Advanced Semantic Clustering
  Step 3**: Article Intelligence + Keyword Extraction
  Step 4**: Content Generation (Enhanced Multi-Agent Loop with Memory)
  Step 5**: Blog Title Optimization with CTR Scoring
  Step 6**: Yoast SEO Metadata Generation
  Step 7**: AI Image Generation with Gemini (Gemini node/API)
  Step 8**: WordPress Draft Creation with Internal Links
  Step 9**: Multi-Platform Distribution (Twitter, Dev.to)

  Read the complete technical architecture and setup guide

  Google Sheets Configuration (NEW in V4)

  V4 introduces centralized configuration via Google Sheets, making it easy to manage multiple blogs and customize your content strategy without editing the workflow.

  📊 Configuration Template Structure

  Make a copy of the template here

  The template contains 2 sheets:

  Sheet 1: category
  Define your content pillars and map them to WordPress categories:

  Sheet 2: data
  Customize your brand and workflow behavior:

  Sheet 3: rss feed
  List out websites you would like to use as reference

  Why Google Sheets?

  ✅ No workflow editing needed - Update categories and brand settings without touching n8n
  ✅ Multi-site management - One sheet per blog, easily switch between configurations
  ✅ Team collaboration - Share with your content team for easy updates
  ✅ Version control - Google Sheets tracks all changes automatically
  ✅ Centralized control - Manage all content pillars from one place

  Clone the Google Sheets Configuration Example

  See Technical Setup.md for complete Google Sheets integration instructions.

  What's New in V4? Revolutionary Upgrades from V3

  1. GPT-5 Model Integration (MASSIVE Performance Boost)

  Version 4 leverages OpenAI's latest GPT-5 model family for unprecedented quality and efficiency:

  GPT-5-nano**: Ultra-fast reasoning for decision-making tasks
  GPT-5-mini**: Standard content generation with 3x speed improvement
  GPT-4.1-mini**: Title optimization and metadata
  GPT-4o**: Complex multi-step reasoning for content writing

  Impact: 40-50% faster execution, improved coherence, better SEO optimization

  2. 50-70% Cost Reduction on Images

  V3**: Leonardo AI ($0.10-0.15 per image)
  V4**: Gemini Flash 2.5 Nano Banana  ($0.03 per image)
  Bonus**: Brand mascot (cat-themed) images for higher engagement and memorability
  Quality**: Consistent professional quality with improved WordPress rendering (no more broken/weird images)

  Savings: $300-500 per month for high-volume blogs

  3. Intelligent Internal Linking System

  The Game-Changer for SEO:

  V4 automatically fetches your existing WordPress posts and intelligently weaves internal links throughout your content:

  Fetches posts with Yoast SEO metadata (og_url, og_title)
  Content Writer Agent uses MongoDB Memory to track link usage
  Maximum 3 inbound links per article (configurable)
  Smart placement in relevant paragraphs
  Memory prevents duplicate link usage across sections

  Impact: Dramatically improved site structure, better crawlability, higher page authority distribution

  4. Automatic FAQ Schema Generation

  Every article includes a professionally styled FAQ section:

  5 targeted questions** based on search intent
  Custom HTML/CSS accordion** with black background and lime green accents
  First FAQ item expanded by default
  Optimized for Google Featured Snippets
  Direct WordPress Custom HTML block compatibility

  Impact: 3-5x higher chance of featured snippet ranking, improved dwell time

  5. Advanced Link Validation System

  Zero broken links, guaranteed:

  New "check link status" MCP tool validates every URL before insertion
  Content Writer Agent instructed: "Test all the urls you want to add to the article is valid or not before writing. If it's not valid Replace it or Remove that link"
  Automatic fallback to alternative sources
  Explicit ban on placeholder URLs (example.com, placeholder.com)

  Impact: Perfect link hygiene, improved user experience, better SEO

  6. Dual Vector Database Architecture

  Optimized for performance and cost:

  V3**: Single collection for all data (expensive, slower)
  V4**: Separated architecture:
    news articles - Full metadata storage
    news chunks - Vectorized text for semantic search
  Deduplication with SHA256 content fingerprints
  Automatic cleanup operations
  Improved query performance (50% faster)

  Savings: 40-60% storage cost reduction

  7. Enhanced Agent System with Memory

  9 Specialized AI Agents (upgraded from 3):

  Topic Generation Agent - Semantic clustering with GPT-5-mini
  Article Intelligence Agent - Entity extraction, fact gathering
  Task Definition Agent - Content structure planning
  Content Writer Agent (GPT-4o) - Section generation with MCP tools:
     Web Search (outbound links)
     Image Generator (Gemini Flash 2.5 Nano Banana)
     Chart Generator (QuickChart)
     Link Validator
     Think Tool (reasoning)
     Memory Tool (tracks inbound link usage)
  Quality Check Agent - SEO validation and scoring
  Blog Title Generator - CTR-optimized titles
  Metadata Generator - Yoast SEO integration
  Markdown to HTML Agent - Content conversion
  Image Prompt Agent - Featured image generation

  Memory System: MongoDB Chat Memory with 25-message context window ensures consistency across agent interactions

  8. Direct Yoast SEO Integration

  Automatic yoast_description and yoast_keyword injection
  WordPress REST API PUT requests to update meta fields
  Focus keyword optimization
  Meta description targeting

  Impact: Seamless SEO workflow, no manual Yoast configuration needed

  9. Brand Integration in Conclusions

  Every article includes your customized brand signature and call-to-action in the conclusion:

  10. Smarter Content Quality Rules

  Flesch Reading Ease**: 60+ (college reading level)
  Sentence length**: Under 20 words average
  Transition words**: 30% minimum
  Active voice**: Mandatory preference
  Paragraph length**: 3-5 sentences maximum
  Word count**: 1200 words (optimized from V3's 1500 for better engagement)
  Visual content**: Exactly 1 image + 1 table per article
  No back-to-back visuals**: Images/tables separated by text

  11. Enhanced Slug and Title Optimization

  Slug Generation:
  Must include main keyword
  Maximum 5 words
  Regex validated: ^[a-z0-9]+(?:-[a-z0-9]+)*$

  Title Optimization:
  Preference for question format ("How to...", "What are...")
  Maximum 10 words
  Scored on 4 metrics:
    Emotional Impact (1-10)
    Clarity & Relevance (1-10)
    SEO Strength (1-10)
    Clickability (1-10)
  Highest average score wins

  What makes this flow unique?

  This isn't just automation. It's AI orchestration at scale. You get a full-scale, enterprise-grade content team simulated by multi-agent communication with persistent memory.

  Multi-Agent Architecture with Memory

  Unlike simple AI workflows that use a single prompt, V4 uses 9 specialized agents that collaborate through shared memory and JSON state:

  Task Manager** defines objectives and assigns sections
  Content Generator** (GPT-4o) equipped with 6 MCP tools
  Quality Control** validates SEO metrics, readability, and structure
  Memory System** ensures no duplicate links or repetitive content

  Each agent operates on specific content blocks, reducing token usage by 40% while improving output quality.

  MCP Tools for Professional Content

  The Content Writer Agent has access to enterprise-grade tools:

  Web Search Tool - Real-time internet search for factual support and outbound links

  Image Generation - Gemini Flash 2.5 Nano Banana (brand mascot cat images)



  Chart Generator - QuickChart for data visualization

  Table Generator - Structured HTML tables

  Link Validator - Real-time URL health checking

  Think Tool - Allows agents to reason before acting

  Memory Tool - Tracks inbound link usage to prevent duplicates

  Example Article Generated by V4

  See the complete article structure with all V4 features in action:

  Revenue Potential & Monetization Use Cases

  This workflow can generate substantial revenue if deployed strategically.

  💸 Monetization Strategies

  Affiliate Blog Empire**
    Generate 10-20 long-form articles daily optimized for affiliate products, SaaS tools, or service reviews. With intelligent internal linking, each new article strengthens your entire site's authority. Insert CTAs and affiliate links to Amazon, Gumroad, Impact, or commission-based platforms.

  Lead Generation Machine**
    Target high-intent SEO keywords (e.g., "best CRM for freelancers", "how to automate Instagram"). V4's FAQ schema increases featured snippet chances by 3-5x. Capture emails via lead forms and nurture through ConvertKit or Substack—all automated.

  Agency/Client Work**
    White-label this workflow for SEO clients. Charge $500-2000/month per client for automated content generation. Your costs: ~$150/month. Profit margin: 70-90%. Scale to 10 clients = $5k-20k MRR.

  Niche Authority Sites**
    Build topical authority sites in lucrative niches (fintech, healthtech, SaaS, Web3). V4's internal linking builds a content web that Google rewards. Monetize via programmatic ads, sponsored content, or exits ($30-50k per site).

  📈 Expected Traffic Results

  Based on V3 real-world data and V4 improvements:

  Daily traffic increase**: 30-50 visitors/day (50% improvement over V3)
  Monthly cost**: ~$150 (50% reduction from V3's $250)
  Content output**: 10-15 SEO-rich posts/day
  Time to first 1k monthly visitors**: 2-3 months
  Featured snippet chances**: 3-5x higher with FAQ schema



  With V4's GPT-5 models, FAQ generation, internal linking, and link validation, expect higher engagement, lower bounce rate, better SERP visibility, and significantly improved conversion rates.

  Cost Comparison: V3 vs V4

  V3 Monthly Costs
  OpenAI API (GPT-4): ~$100
  Leonardo AI: ~$20
  MongoDB Atlas: Free (M0)
  n8n hosting: ~$20
  Total**: ~$140-150/month

  V4 Monthly Costs
  OpenAI API (GPT-5 family): ~$60-80 (40% reduction)
  Gemini Flash 2.5 Nano Banana: ~$10 (50% reduction)
  MongoDB Atlas: Free (M0)
  n8n hosting: ~$20
  Total**: ~$90-110/month

  V4 Savings: $40-50/month (35% cost reduction) while producing higher quality content

  ROI: If generating 10 articles/day at market rate of $50/article = $15k/month value for $100/month cost

  Need Help or Customization?

  Need to customize this workflow for your niche? Or need help setting it up? We offer:

  Free Setup Support**: Email assistance for V4 purchasers
  Custom Integration**: Tailored modifications for your tech stack
  Enterprise Deployment**: Multi-site, white-label solutions
  Training & Consulting**: 1-on-1 workflow optimization sessions

  ⭐ Read Customer Reviews (V3 reviews - V4 reviews coming soon)
  ✍️ Write to us: tools@emp0.com
  ?? Join AI + Automation Discord: https://discord.gg/qg3qVfFchV

  Join the community

  Other free n8n workflows
  GitHub repository
  Join AI + Automation Discord
  Official website

  Changelog: V3 to V4 Revolution

  What's Changed?

  ✅ Upgraded to GPT-5 - 40-50% cost reduction + 3x speed improvement + better reasoning across all agents
  ✅ Switched to Gemini Flash 2.5 Nano Banana for image generation - 50-70% cheaper than Leonardo AI
  ✅ Google Sheets category tracking - Centralized content pillar management for easier configuration across multiple sites
  ✅ Fixed weird and broken images inside blog posts - improved rendering and WordPress compatibility
  ✅ Brand mascot images (cat-themed) to make content more catchy and engaging
  ✅ Separated news vector database into news articles and news chunks collections to reduce storage size by 40-60%
  ✅ Auto-delete news chunks after article generation to keep storage costs minimal
  ✅ MongoDB chat history integration - seamless agent coordination and memory for tracking inbound link usage
  ✅ WordPress data fetching to automatically add intelligent inbound links (max 3 per article)
  ✅ Removed redundant content blocks - cleaner article structure and better readability
  ✅ Direct Yoast SEO field integration - sends yoast_description and yoast_keyword to WordPress via REST API
  ✅ Optimized quality check loops - reduced iterations to increase accuracy and decrease token costs
  ✅ Link validator tool - checks if links are broken before insertion, guaranteeing zero 404s
  ✅ Reduced scheduler nodes - fewer execution counts for cheaper costs on n8n Cloud (optimized for cost efficiency)

  V3 Limitations (All Solved in V4)

  ❌ No internal linking → weak site structure
  ❌ Expensive Leonardo AI → high image costs
  ❌ No FAQ sections → missed featured snippets
  ❌ Basic GPT-4 models → slower, more expensive
  ❌ No link validation → occasional broken links
  ❌ Single vector collection → high storage costs
  ❌ No memory system → inconsistent agent behavior
  ❌ Generic image prompts → lower engagement
  ❌ Broken/weird images → poor WordPress rendering
  ❌ Manual category management → hard to scale
  ❌ Redundant content blocks → bloated articles
  ❌ Too many scheduler nodes → expensive n8n Cloud costs

  Comparison: V2 vs V3 vs V4

  | Feature | V2 (Free) | V3 ($29) | V4 (Available Now) |
  |---------|-----------|----------|------------------|
  | AI Models | GPT-4 | GPT-4, GPT-4o | GPT-5, GPT-4.1, GPT-4o |
  | Word Count | 600-800 | 1500 | 1200 (optimized) |
  | Images | None | Leonardo AI | Gemini Flash 2.5 (50% cheaper) |
  | Tables/Charts | None | Yes | Yes |
  | Outbound Links | Limited | Yes | Yes (validated) |
  | Internal Links | None | None | Yes (intelligent) |
  | FAQ Section | None | None | Yes (schema optimized) |
  | Link Validation | None | None | Yes |
  | Memory System | None | None | Yes |
  | Yoast Integration | None | Basic | Advanced |
  | Vector DB | None | Single collection | Dual collection |
  | Monthly Cost | $20 | $150 | ~$100 |
  | Articles/Day | 5-10 | 10-15 | 10-15 |
  | SEO Quality | Basic | Advanced | Enterprise |
  | Featured Snippets | Low chance | Medium chance | 3-5x higher |

  Technical Requirements

  n8n instance** (Cloud or self-hosted on Railway/Hostinger)
  For n8n Cloud, the standard plan ($20/month) is sufficient — V4 reduces scheduler nodes and execution frequency.
  OpenAI API** account with GPT-5 access
  MongoDB Atlas** account (free M0 tier sufficient to start)
  WordPress* site with REST API enabled with *Yoast SEO plugin** (optional but recommended)
  Google account** (for Google Sheets categories)
  Twitter Developer** account (for Twitter distribution) OPTIONAL
  Dev.to** account (for cross-posting) OPTIONAL

  See Technical Setup.md for complete installation guide.

nodes_used:
  ["n8n-nodes-base.splitOut","@n8n/n8n-nodes-langchain.documentDefaultDataLoader","@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.rssFeedRead","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.aggregate","n8n-nodes-base.filter","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.outputParserStructured","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.splitOut","n8n-nodes-base.mongoDb","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.mongoDb","n8n-nodes-base.code","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.mongoDb","n8n-nodes-base.mongoDb","n8n-nodes-base.code","n8n-nodes-base.stickyNote","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.code","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.splitOut","n8n-nodes-base.splitInBatches","n8n-nodes-base.code","n8n-nodes-base.mongoDb","n8n-nodes-base.mongoDb","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.httpRequest","@n8n/n8n-nodes-langchain.vectorStoreMongoDBAtlas","n8n-nodes-base.splitInBatches","n8n-nodes-base.code","n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.crypto","n8n-nodes-base.if","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.agent","@n8n/n8n-nodes-langchain.vectorStoreMongoDBAtlas","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.if","n8n-nodes-base.splitInBatches","n8n-nodes-base.splitOut","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.scheduleTrigger","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.code","n8n-nodes-base.if","@n8n/n8n-nodes-langchain.outputParserStructured","@n8n/n8n-nodes-langchain.toolThink","@n8n/n8n-nodes-langchain.toolWorkflow","n8n-nodes-base.mongoDb","n8n-nodes-base.code","n8n-nodes-base.aggregate","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.mongoDb","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.toolWorkflow","@n8n/n8n-nodes-langchain.toolWorkflow","n8n-nodes-base.mongoDb","n8n-nodes-base.mongoDb","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.code","n8n-nodes-base.wordpress","n8n-nodes-base.stickyNote","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.embeddingsOpenAi","n8n-nodes-base.stickyNote","n8n-nodes-base.twitter","n8n-nodes-base.set","n8n-nodes-base.if","n8n-nodes-base.splitOut","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.aggregate","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.stickyNote","n8n-nodes-base.code","n8n-nodes-base.mongoDb","n8n-nodes-base.code","n8n-nodes-base.mongoDb","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.mongoDb","n8n-nodes-base.wordpress","n8n-nodes-base.mongoDb","n8n-nodes-base.code","n8n-nodes-base.mongoDb","n8n-nodes-base.code","n8n-nodes-base.mongoDb","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.mongoDb","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.if","@n8n/n8n-nodes-langchain.outputParserStructured","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.stickyNote","n8n-nodes-base.mongoDb","n8n-nodes-base.mongoDb","n8n-nodes-base.mongoDb","n8n-nodes-base.mongoDb","n8n-nodes-base.aggregate","n8n-nodes-base.mongoDb","n8n-nodes-base.wordpress","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.splitOut","n8n-nodes-base.splitInBatches","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.code","n8n-nodes-base.mongoDb","n8n-nodes-base.code","n8n-nodes-base.limit","n8n-nodes-base.mongoDb","n8n-nodes-base.code","n8n-nodes-base.mongoDb","n8n-nodes-base.code","@n8n/n8n-nodes-langchain.toolWorkflow","n8n-nodes-base.if","n8n-nodes-base.code","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.httpRequest","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.mongoDb","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","n8n-nodes-base.executeWorkflow","n8n-nodes-base.mongoDb","n8n-nodes-base.mongoDb","n8n-nodes-base.mongoDb","@n8n/n8n-nodes-langchain.memoryMongoDbChat","n8n-nodes-base.googleSheets","n8n-nodes-base.aggregate","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.stickyNote","n8n-nodes-base.mongoDb","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets"]

workflow_json_compressed:
  [encoded data, 12036 characters]


