# templates

name: Automate Rank Math SEO Field Updates for Wordpress or Woocommerce
author_name: phil
author_username: phil
nodes_used: ["n8n-nodes-base.set","n8n-nodes-base.manualTrigger","n8n-nodes-base.httpRequest"]
categories: []
created_at: 2025-02-02T10:00:10.263Z
updated_at: 2025-02-02T10:00:10.263Z
url: https://n8n.io/workflows/2836
scraped_at: 2025-09-14 19:11:03
metadata_generated_at: 2025-09-14 21:18:31
description:
  This workflow automates the process of updating important Rank Math SEO fields (SEO Title, Description, and Canonical URL) directly via n8n. 

  By leveraging a custom WordPress plugin that extends the WordPress REST API, this workflow ensures that you can programmatically manage SEO metadata for your posts and WooCommerce products efficiently.

  Bulk version available here.

  How it works:
  Sends a POST request to a custom API endpoint exposed by the Rank Math plugin.
  Updates SEO Title, Description, and Canonical URL fields for a specified post or product.

  Setup steps:
  Install and activate the Rank Math API Manager Extended plugin on WordPress.
  Provide the post or product ID you want to update in the workflow.
  Run the workflow to update the metadata automatically.

  Benefits:
  Full automation of SEO optimizations.
  Works for both standard posts and WooCommerce products.
  Simplifies large-scale SEO management tasks.

  To understand exactly how to use it in detail, check out my comprehensive documentation here.

  Rank Math API Manager Extended plugin on WordPress

  // ATTENTION: Replace the line below with &lt;?php - This is necessary due to display constraints in web interfaces.

  &lt;?php
  /**
   Plugin Name: Rank Math API Manager Extended v1.4
   Description: Manages the update of Rank Math metadata (SEO Title, SEO Description, Canonical URL) via a dedicated REST API endpoint for WordPress posts and WooCommerce products.
   Version: 1.4
   Author: Phil - https://inforeole.fr
   */

  if ( ! defined( 'ABSPATH' ) ) {
      exit; // Exit if accessed directly.
  }

  class Rank_Math_API_Manager_Extended {

      public function __construct() {
          add_action('rest_api_init', [$this, 'register_api_routes']);
      }

      /**
       Registers the REST API route to update Rank Math meta fields.
       */
      public function register_api_routes() {
          register_rest_route( 'rank-math-api/v1', '/update-meta', [
              'methods'             =&gt; 'POST',
              'callback'            =&gt; [$this, 'update_rank_math_meta'],
              'permission_callback' =&gt; [$this, 'check_route_permission'],
              'args'                =&gt; [
                  'post_id' =&gt; [
                      'required'          =&gt; true,
                      'validate_callback' =&gt; function( $param ) {
                          $post = get_post( (int) $param );
                          if ( ! $post ) {
                              return false;
                          }
                          $allowed_post_types = class_exists('WooCommerce') ? ['post', 'product'] : ['post'];
                          return in_array($post-&gt;post_type, $allowed_post_types, true);
                      },
                      'sanitize_callback' =&gt; 'absint',
                  ],
                  'rank_math_title' =&gt; [
                      'type'              =&gt; 'string',
                      'sanitize_callback' =&gt; 'sanitize_text_field',
                  ],
                  'rank_math_description' =&gt; [
                      'type'              =&gt; 'string',
                      'sanitize_callback' =&gt; 'sanitize_text_field',
                  ],
                  'rank_math_canonical_url' =&gt; [
                      'type'              =&gt; 'string',
                      'sanitize_callback' =&gt; 'esc_url_raw',
                  ],
              ],
          ] );
      }

      /**
       Updates the Rank Math meta fields for a specific post.
       * @param WP_REST_Request $request The REST API request instance.
       @return WP_REST_Response|WP_Error Response object on success, or WP_Error on failure.
       */
      public function update_rank_math_meta( WP_REST_Request $request ) {
          $post_id = $request-&gt;get_param('post_id');
          
          // Secondary, more specific permission check.
          if ( ! current_user_can('edit_post', $post_id) ) {
              return new WP_Error(
                  'rest_forbidden',
                  'You do not have permission to edit this post.',
                  ['status' =&gt; 403]
              );
          }

          $fields  = ['rank_math_title', 'rank_math_description', 'rank_math_canonical_url'];
          $results = [];
          $updated = false;

          foreach ( $fields as $field ) {
              if ( $request-&gt;has_param( $field ) ) {
                  $value = $request-&gt;get_param( $field );
                  $current_value = get_post_meta($post_id, $field, true);

                  if ($current_value === $value) {
                       $results[$field] = 'unchanged';
                  } else {
                      $update_status = update_post_meta( $post_id, $field, $value );
                      if ($update_status) {
                          $results[$field] = 'updated';
                          $updated = true;
                      } else {
                          // This case is rare but could indicate a DB error or other failure.
                          $results[$field] = 'failed'; 
                      }
                  }
              }
          }

          if ( ! $updated && empty($results) ) {
              return new WP_Error(
                  'no_fields_provided',
                  'No Rank Math fields were provided for update.',
                  ['status' =&gt; 400]
              );
          }

          return new WP_REST_Response( $results, 200 );
      }

      /**
       Checks if the current user has permission to access the REST API route.
       * @return bool
       */
      public function check_route_permission() {
          return current_user_can( 'edit_posts' );
      }
  }

  new Rank_Math_API_Manager_Extended();


  Bulk version available here. : this bulk version, provided with a dedicated WordPress plugin, allows you to generate and bulk-update meta titles and descriptions for multiple articles simultaneously using artificial intelligence. It automates the entire process, from article selection to the final update in Rank Math, offering considerable time savings.
  .

  Phil | Inforeole

workflow_json_compressed:
  H4sIAAAAAAAAE5VU247bNhD9FYEokBYQbd0tCehD4zSXAotd7LrbohtjMSLHNmuJVEgqjmEIyGc0v5cvCejL2t46KPomcS48c3jObEiDFki5IUIaC5LhO05KwoowBORFUaRRHFRFPOMBLyqWhCxKc54VIxbNsBhBXEGVsyCqYJanRRYjcsjCnPjEYtPWYHGskZs7tF07Vk1bo0VOSqs77H0iFUdDyocNEe7WPGYZH2FMASOkSTrKaF6xjIYYwqhK03jGgPhEQoOkJHdorZBz4+5at+5E5pJuW9IKDA4MWuKTVhlhhZKkfIiywA+mPmlBQ4MWtXGDq9aF3WfvEzBGzGWD0m5jZ78HmEEeVFGcMAqjNKZJUHBa8IjTOI6ibJRDEM6iI8yVUkw1DWqGXqfrI1pjtZBz4pOPUHfuYGFta8rhsFlz1QyYaoakn/b9ruAetdlOEQ+S3t8jGQVhDpiltKoKTpMKGM1HSUaDMCxiVgWYRvERyR8LlB6rBVsKOfe+fv5ngsZ6K6WXs1qtvn7+8l0mG5Ad1BMt5nPU55xeYPQ54vAJbxTFyOOkojFGGU2CjFFIIaVxMsuTIMd4htkR79vJ5Ma7xQ+dg0m931sOFr1bkEvvCuzCu3LK/R5kR+a+9hxwGlwSgXuZkvy82Xg//PjioKwXPw2ExWbwt1Hy4f3zl3xPpl7fr1rqwkMNckkbsAsKrRh+DIfdFi5tdiAbtAvlKLi5vpsQ/1x0BiV/qfh65wufQGcXKK1gsMNMWo0cZ0Iid25yIagnbmyfVIqvb85GOR3sYXMgs1XGPgp+IrcoyYh7mX2CG+DRDfBoha3xJPEVNsq7+/Xam2wDF2s4GqbFdqhLla9OwhfrGUglBYP6ceeR557AT+CWx9YVHBtFW614x6xzyG6PPGPGGU/zVqMxv7SC9D5hTwlbms7C5V6gmb6pf+NjePcn3DPx5urEPId0DxhTnbSu5Uqp8V4Rp12W9ZvXfy3nb/XtbJy/vJ+fdnkqOPbpfaLR6vW1fA2iPojgzELJIOqnPmFKSmQH5Rw3YLkhDQinbvfgiv9/92zLfSIkx0+kDPqpo/W/F8ali/+9ly807/tvsnf7m3oGAAA=

metadata_json:
  {"categories":["automation","integration","SEO","CMS","ecommerce"],"complexity":"medium","use_cases":["Automate updating Rank Math SEO fields (title, description, canonical)","Bulk SEO metadata updates for posts and WooCommerce products","Integrate SEO updates into content or publishing pipelines","Trigger programmatic SEO changes from external systems or AI-generated content"],"estimated_setup_minutes":15,"required_services":["WordPress (self-hosted) with REST API access","Rank Math plugin","Rank Math API Manager Extended (custom WordPress plugin)","n8n"],"key_features":["Programmatic update of Rank Math SEO Title, Description and Canonical URL","Supports both standard posts and WooCommerce products","Permission checks (edit_posts/edit_post) to ensure secure updates","Returns per-field status (updated/unchanged/failed)","Optional bulk workflow available for large-scale updates"],"target_audience":["developers","SEO specialists","content managers / editors`,`e‑commerce managers`"]}


name: Calculate the Centroid of a Set of Vectors
author_name: Mauricio Perera
author_username: rckflr
categories: []
created_at: 2025-02-03T02:28:31.005Z
updated_at: 2025-02-03T02:28:31.005Z
url: https://n8n.io/workflows/2839
scraped_at: 2025-09-14 19:11:03
metadata_generated_at: 2025-09-14 21:18:32
description:
  n8n Workflow: Calculate the Centroid of a Set of Vectors

  Overview
  This workflow receives an array of vectors in JSON format, validates that all vectors have the same dimensions, and computes the centroid. It is designed to be reusable across different projects.

  Workflow Structure
  Nodes and Their Functions:
  Receive Vectors (Webhook): Accepts a GET request containing an array of vectors in the vectors parameter.
     Expected Input: vectors parameter in JSON format.
     Example Request: /webhook/centroid?vectors=[[2,3,4],[4,5,6],[6,7,8]]
     Output: Passes the received data to the next node.

  Extract & Parse Vectors (Set Node): Converts the input string into a proper JSON array for processing.
     Ensures vectors is a valid array.
     If the parameter is missing, it may generate an error.
     Expected Output Example:
        {
       "vectors": [[2,3,4],[4,5,6],[6,7,8]]
     }
     
  Validate & Compute Centroid (Code Node): Validates vector dimensions and calculates the centroid.
     Validation: Ensures all vectors have the same number of dimensions.
     Computation: Averages each dimension to determine the centroid.
     If validation fails: Returns an error message indicating inconsistent dimensions.
     Successful Output Example:
        {
       "centroid": [4,5,6]
     }
        Error Output Example:
        {
       "error": "Vectors have inconsistent dimensions."
     }
     
  Return Centroid Response (Respond to Webhook Node): Sends the final response back to the client.
     If the computation is successful, it returns the centroid.
     If an error occurs, it returns a descriptive error message.
     Example Response:
        {
       "centroid": [4, 5, 6]
     }
  Inputs
  JSON array of vectors, where each vector is an array of numerical values.

  Example Input
  {
    "vectors": [
      [1, 2, 3],
      [4, 5, 6],
      [7, 8, 9]
    ]
  }

  Setup Guide
  Create a new workflow in n8n.
  Add a Webhook node (Receive Vectors) to receive JSON input.
  Add a Set node (Extract & Parse Vectors) to extract and convert the data.
  Add a Code node (Validate & Compute Centroid) to:
     Validate dimensions.
     Compute the centroid.
  Add a Respond to Webhook node (Return Centroid Response) to return the result.

  Function Node Script Example
  const input = items[0].json;
  const vectors = input.vectors;

  if (!Array.isArray(vectors) || vectors.length === 0) {
    return [{ json: { error: "Invalid input: Expected an array of vectors." } }];
  }

  const dimension = vectors[0].length;
  if (!vectors.every(v =&gt; v.length === dimension)) {
    return [{ json: { error: "Vectors have inconsistent dimensions." } }];
  }

  const centroid = new Array(dimension).fill(0);
  vectors.forEach(vector =&gt; {
    vector.forEach((val, index) =&gt; {
      centroid[index] += val;
    });
  });

  for (let i = 0; i &lt; dimension; i++) {
    centroid[i] /= vectors.length;
  }

  return [{ json: { centroid } }];

  Testing
  Use a tool like Postman or the n8n UI to send sample inputs and verify the responses.
  Modify the input vectors to test different scenarios.

  This workflow provides a simple yet flexible solution for vector centroid computation, ensuring validation and reliability.

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

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

metadata_json:
  {"categories":["data processing","math/analytics","automation","webhook integration"],"complexity":"simple","use_cases":["Compute geometric centroid of point sets","Preprocessing step for clustering or ML pipelines","Aggregate multivariate sensor or telemetry data","Validate and normalize vector data before storage or analysis","Lightweight API for centroid calculations"],"estimated_setup_minutes":10,"required_services":["n8n (Webhook endpoint)"],"key_features":["Accepts JSON array of vectors via webhook","Parses and validates vector dimensions","Calculates centroid by averaging each dimension","Returns result or descriptive error via webhook response","Reusable workflow with minimal configuration"],"target_audience":["Developers","Data engineers","Data scientists / analysts building simple preprocessing pipelines"]}


name: Automate SIEM Alert Enrichment with MITRE ATT&CK, Qdrant & Zendesk in n8n
author_name: Angel Menendez
author_username: djangelic
categories: []
created_at: 2025-02-03T09:56:24.838Z
updated_at: 2025-02-03T09:56:24.838Z
url: https://n8n.io/workflows/2840
scraped_at: 2025-09-14 19:11:00
metadata_generated_at: 2025-09-14 21:18:31
description:
  n8n Workflow: Automate SIEM Alert Enrichment with MITRE ATT&CK & Qdrant  

  Who is this for?  
  This workflow is ideal for:  
  Cybersecurity teams & SOC analysts* who want to automate *SIEM alert enrichment**.  
  IT security professionals* looking to integrate *MITRE ATT&CK intelligence** into their ticketing system.  
  Organizations using Zendesk for security incidents* who need enhanced *contextual threat data**.  
  Anyone using n8n and Qdrant* to build *AI-powered security workflows**.  

  What problem does this workflow solve?  
  Security teams receive large volumes of raw SIEM alerts that lack actionable context. Investigating every alert manually is time-consuming and can lead to delayed response times. This workflow solves this problem by:  
  ✔ Automatically enriching SIEM alerts with MITRE ATT&CK TTPs.  
  ✔ Tagging & classifying alerts based on known attack techniques.  
  ✔ Providing remediation steps to guide the response team.  
  ✔ Enhancing security tickets in Zendesk with relevant threat intelligence.  

  What this workflow does  

  1️⃣ Ingests SIEM alerts (via chatbot or ticketing system like Zendesk).  
  2️⃣ Queries a Qdrant vector store containing MITRE ATT&CK techniques.  
  3️⃣ Extracts relevant TTPs (Tactics, Techniques, & Procedures) from the alert.  
  4️⃣ Generates remediation steps using AI-powered enrichment.  
  5️⃣ Updates Zendesk tickets with threat intelligence & recommended actions.  
  6️⃣ Provides structured alert data for further automation or reporting.  

  Setup Guide  

  Prerequisites  
  n8n instance** (Cloud or Self-hosted).  
  Qdrant vector store** with MITRE ATT&CK data embedded.  
  OpenAI API key** (for AI-based threat processing).  
  Zendesk account** (for ticket enrichment, if applicable).  
  Clean Mitre Data Python Script
  Cleaned Mitre Data
  Full Mitre Data

  Steps to Set Up  

  1️⃣ Embed MITRE ATT&CK data into Qdrant  
     This workflow pulls MITRE ATT&CK data from Google Drive and loads it into Qdrant.  
     The data is vectorized using OpenAI embeddings for fast retrieval.  

  2️⃣ Deploy the n8n Chatbot  
     The chatbot listens for SIEM alerts and sends them to the AI processing pipeline.  
     Alerts are analyzed using an AI agent trained on MITRE ATT&CK.  

  3️⃣ Enrich Zendesk Tickets  
     The workflow extracts MITRE ATT&CK techniques from alerts.  
     It updates Zendesk tickets with contextual threat intelligence.  
     The remediation steps are included as internal notes for SOC teams.  

  How to Customize This Workflow  

  🔧 Modify the chatbot trigger: Adapt the chatbot node to receive alerts from Slack, Microsoft Teams, or any other tool.  

  🔧 Change the SIEM input source: Connect your workflow to Splunk, Elastic SIEM, or Chronicle Security.  

  🔧 Customize remediation steps: Use a custom AI model to tailor remediation responses based on organization-specific security policies.  

  🔧 Extend ticketing integration: Modify the Zendesk node to also work with Jira, ServiceNow, or another ITSM platform.  

  Why This Workflow is Powerful  
  ✅ Saves time: Automates alert triage & classification.  
  ✅ Improves security posture: Helps SOC teams act faster on threats.  
  ✅ Leverages AI & vector search: Uses LLM-powered enrichment for real-time context.  
  ✅ Works across platforms: Supports n8n Cloud, Self-hosted, and Qdrant.  

  🚀 Get Started Now!  
  📖 Watch the Setup Video  
  💬 Have Questions? Join the Discussion in the YouTube Comments! 

nodes_used:
  ["@n8n/n8n-nodes-langchain.chatTrigger","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.splitOut","@n8n/n8n-nodes-langchain.embeddingsOpenAi","@n8n/n8n-nodes-langchain.documentDefaultDataLoader","@n8n/n8n-nodes-langchain.textSplitterTokenSplitter","@n8n/n8n-nodes-langchain.memoryBufferWindow","@n8n/n8n-nodes-langchain.embeddingsOpenAi","n8n-nodes-base.extractFromFile","n8n-nodes-base.manualTrigger","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.embeddingsOpenAi","n8n-nodes-base.splitInBatches","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.googleDrive","@n8n/n8n-nodes-langchain.vectorStoreQdrant","@n8n/n8n-nodes-langchain.vectorStoreQdrant","@n8n/n8n-nodes-langchain.vectorStoreQdrant","n8n-nodes-base.zendesk","n8n-nodes-base.zendesk","n8n-nodes-base.noOp"]

workflow_json_compressed:
  [encoded data, 6632 characters]

metadata_json:
  {"categories":["security automation","integration","AI-assisted threat intelligence","data processing"],"complexity":"complex","use_cases":["Automated SIEM alert enrichment with MITRE ATT&CK","Triage & classification of security alerts","Enriching Zendesk incident tickets with contextual threat intelligence","Generating remediation guidance for SOC analysts","Building LLM + vector-search driven security workflows"],"estimated_setup_minutes":90,"required_services":["n8n (Cloud or self-hosted)","Qdrant vector store","OpenAI API (or compatible embeddings/LLM)","Zendesk account (or other ticketing system)","SIEM source (e.g., Splunk, Elastic, Chronicle)","Google Drive (for MITRE data files)","Optional: Python environment for data cleaning scripts"],"key_features":["Vector-search MITRE ATT&CK lookup (Qdrant)","OpenAI embeddings and LLM-based enrichment","Automated extraction of TTPs (Tactics, Techniques, Procedures)","Generation of remediation steps and contextual guidance","Automatic updating/enrichment of Zendesk tickets (internal notes/tags)"],"target_audience":["SOC analysts","Cybersecurity teams","IT security professionals/incident responders','n8n integrators and automation engineers"]}


name: Connect AI to any chats in Kommo
author_name: yatolstoy
author_username: yatolstoy
categories: []
created_at: 2025-02-03T10:12:55.563Z
updated_at: 2025-02-03T10:12:55.563Z
url: https://n8n.io/workflows/2841
scraped_at: 2025-09-14 19:11:03
metadata_generated_at: 2025-09-14 21:18:32
description:
  Entrust customer service to AI using n8n and Kommo!
  Using this workflow, you can make the AI agent answer customer questions for your managers.
  See how it works in the video.

  Advantages of integration
  Works with any message channel that is connected to Kommo (telegram, whatsapp, facebook)
  Understands voice and text messages
  You can stop for a specific transaction or contact if you need a person's help.
  It is possible to supplement the AI agent with additional tools to suit your needs

  Where it can be useful
  In customer support
  In the qualification of clients
  When invoicing

  How it works
  1) Any incoming message to the Kommo chats is sent by the webhook to n8n
  2) n8n processes the webhook according to the specified logic
  3) n8n sends a reply message to the Kommo chat

  Installation Steps
  1) Install workflow
  2) Follow the instructions to connect the kommo to the n8n
  3) Set up Credentials for OpenAI
  4) Fill in the Credentials as shown in the workflow notes
  5) Activate Workflow
  6) Write your first message as client

nodes_used:
  ["n8n-nodes-base.if","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.memoryBufferWindow","n8n-nodes-base.switch","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.webhook","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:
  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

metadata_json:
  {"categories":["automation","integration","customer support","conversational AI"],"complexity":"complex","use_cases":["Automated customer support replies across Kommo-connected channels","Lead qualification and routing","Handling voice and text messages in chats","Escalation to human agents for specific contacts/transactions","Automating invoicing-related chat workflows"],"estimated_setup_minutes":30,"required_services":["Kommo (AmoCRM) account with connected channels (Telegram/WhatsApp/Facebook)","OpenAI API credentials","n8n instance (self-hosted or cloud)","Webhook-accessible endpoint / public URL"],"key_features":["AI-driven chat replies via OpenAI","Supports voice and text messages","Works with any channel connected to Kommo","Webhook-triggered workflow in n8n","Configurable human escalation for specific contacts/transactions (stop for person)"],"target_audience":["Customer support teams","Sales/qualification teams","Business owners automating chat handling processes」「Developers/IT implementing n8n integrations"]}


name: Automate Sports Betting Data with the Odds API
author_name: Marketing Canopy
author_username: johnmarketingcanopy
categories: []
created_at: 2025-02-04T01:22:43.903Z
updated_at: 2025-02-04T01:22:43.903Z
url: https://n8n.io/workflows/2843
scraped_at: 2025-09-14 19:11:03
metadata_generated_at: 2025-09-14 21:18:32
description:
  Automate Sports Betting Data with TheOddsAPI  

  This workflow enables you to create and update a table using TheOddsAPI for sports betting data. It automatically pulls upcoming Ice Hockey games at the start of the day and updates the table with results at the end of the day. You can modify it to retrieve odds and game data for any sport.  

  This setup is particularly useful for sports betting applications, such as tracking the results of a predictive model. It leverages scheduled triggers to activate HTTP requests, which then create or update fields in Airtable by matching on the game ID.  

  Prerequisites  

  Before implementing this workflow, ensure you have the following:  

  TheOddsAPI Account & API Key  
     Sign up at TheOddsAPI and obtain an API key.  
     Ensure you have the correct API permissions to access sports odds and results.  

  Airtable Account & API Key  
     Create an account at Airtable and set up a database.  
     Obtain an API key from the Account Settings page.  

  API Access & Rate Limits  
     Review TheOddsAPI’s rate limits and ensure your account tier allows for scheduled API calls.  
     Confirm that Airtable API limits align with your expected data retrieval frequency.  

  Step-by-Step Guide to Integrating TheOddsAPI  

  1. Schedule API Requests  
  Set up a trigger to automatically pull upcoming Ice Hockey games at the start of each day.  

  2. Fetch Data from TheOddsAPI  
  Retrieve the latest sports betting data, including game details and odds, using TheOddsAPI.  

  3. Store Data in Airtable  
  Insert or update records in Airtable by matching game IDs, ensuring data accuracy.  

  Sample Airtable Template Column Setup for Ice Hockey  
  (Table can adjust depending on sport and data needs. Reference TheOddsAPI for more documentation.)  

  Game ID**  
  Sport**  
  League**  
  Game Date (UTC)**  
  Home Team**  
  Away Team**  
  Completed** (Boolean: TRUE/FALSE for game completion status)  
  Scores** (JSON or String for final scores)  
  Last Update** (Timestamp of the latest update)  

  4. Schedule an End-of-Day Update  
  Configure another trigger to fetch final game results at the end of the day.  

  5. Update Records in Airtable  
  Modify existing Airtable records with final scores and game outcomes for complete tracking.  

  6. Customize for Other Sports  
  Adjust API parameters to retrieve data for different sports and betting odds, making the system flexible for multiple use cases.  

  This structured workflow automates sports betting data collection and updates, ensuring accurate and real-time tracking of odds and game results. By integrating TheOddsAPI with Airtable, you can build scalable applications for predictive sports analytics and betting insights.  

nodes_used:
  ["n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.httpRequest","n8n-nodes-base.airtable","n8n-nodes-base.httpRequest","n8n-nodes-base.merge","n8n-nodes-base.airtable"]

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

metadata_json:
  {"categories":["automation","integration","data processing","sports analytics"],"complexity":"medium","use_cases":["Automated collection of sports betting odds","Tracking and storing game results for predictive models","Building dashboards or reports for betting analytics","Monitoring odds changes and outcomes","Archiving historical game/odds data for analysis"],"estimated_setup_minutes":45,"required_services":["TheOddsAPI (API key)","Airtable (account & API key)","n8n (workflow runner)","Optional: external predictive model or ML API"],"key_features":["Scheduled start-of-day pull of upcoming games","End-of-day scheduled update of final scores/results","HTTP requests to TheOddsAPI to fetch odds and game data","Create or update Airtable records by matching on game ID","Configurable columns/schema (teams, date, scores, completed flag, last update) to support multiple sports and use cases"],"target_audience":["Developers integrating sports data APIs","Data analysts building betting/analytics pipelines","Sports bettors or researchers tracking model performance\",\"Product teams at sportsbooks or betting apps"]}


name: Complete business WhatsApp AI-Powered RAG Chatbot using OpenAI
author_name: Davide
author_username: n3witalia
categories: []
created_at: 2025-02-04T10:29:23.985Z
updated_at: 2025-02-04T10:29:23.985Z
url: https://n8n.io/workflows/2845
scraped_at: 2025-09-14 19:10:59
metadata_generated_at: 2025-09-14 21:18:31
description:
  The provided workflow in n8n is designed to create a Business WhatsApp AI RAG (Retrieval-Augmented Generation) Chatbot.

  How it works:
  Webhook Setup: The workflow begins by setting up webhooks for verification and response. The Verify webhook receives GET requests and sends back a verification code, while the Respond webhook handles incoming POST requests from Meta regarding WhatsApp messages.
  Message Handling: Once a message is received, the workflow checks if the incoming JSON contains a user message. If it does, the message is processed further; otherwise, a generic response is sent.
  AI Agent Interaction: The user's message is passed to the AI Agent node, which uses a conversational agent with a predefined system message tailored for an electronics store. This ensures that the AI provides accurate and professional responses based on the knowledge base.
  Knowledge Base Utilization: The AI Agent references a knowledge base stored in Qdrant, a vector database. Documents from Google Drive are downloaded, vectorized using OpenAI embeddings, and stored in Qdrant for retrieval during conversations.
  Response Generation: The AI Agent generates a response using the OpenAI chat model (gpt-4o-mini) and sends it back to the user via WhatsApp.

  Set up steps:
  Create Qdrant Collection:
     Update the QDRANTURL and COLLECTION variables in the workflow.
     Use the Create collection HTTP request node to initialize the collection in Qdrant.

  Vectorize Documents:
     Configure the Get folder and Download Files nodes to fetch documents from a specified Google Drive folder.
     Use the Embeddings OpenAI node to generate embeddings for the downloaded files.
     Store the vectorized documents in Qdrant using the Qdrant Vector Store node.

  Configure Webhooks:
     Ensure both Verify and Respond webhooks have the same URL.
     Set the Verify webhook to use the GET HTTP method and the Respond webhook to use the POST HTTP method.

  Set Up AI Agent:
     Define the system prompt for the AI Agent, specifying guidelines for product information, technical support, customer service, and knowledge base usage.
     Link the AI Agent to the OpenAI chat model and configure any additional tools as needed.

  Test Workflow:
     Trigger the workflow manually using the When clicking ‘Test workflow’ node to ensure all components are functioning correctly.
     Monitor the flow of data through the nodes and verify that responses are being generated and sent accurately.

  By following these steps, the workflow will be fully operational, enabling a robust AI-powered chatbot capable of handling customer inquiries via WhatsApp.

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

nodes_used:
  ["n8n-nodes-base.respondToWebhook","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.manualTrigger","@n8n/n8n-nodes-langchain.vectorStoreQdrant","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.googleDrive","n8n-nodes-base.googleDrive","@n8n/n8n-nodes-langchain.embeddingsOpenAi","@n8n/n8n-nodes-langchain.documentDefaultDataLoader","@n8n/n8n-nodes-langchain.textSplitterTokenSplitter","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.webhook","n8n-nodes-base.webhook","n8n-nodes-base.if","n8n-nodes-base.whatsApp","n8n-nodes-base.whatsApp","@n8n/n8n-nodes-langchain.memoryBufferWindow","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.vectorStoreQdrant","@n8n/n8n-nodes-langchain.embeddingsOpenAi","@n8n/n8n-nodes-langchain.toolVectorStore"]

workflow_json_compressed:
  [encoded data, 6856 characters]

metadata_json:
  {"categories":["automation","chatbot","integration","AI","knowledge_management"],"complexity":"complex","use_cases":["Business WhatsApp customer support chatbot","Product information and sales assistance for an e-commerce or retail store","Technical support and troubleshooting via conversational AI","Document-driven Q&A using company manuals or product docs","Automated customer engagement and lead qualification"],"estimated_setup_minutes":90,"required_services":["n8n (self-hosted or cloud)","OpenAI (chat + embeddings)","Qdrant (vector DB)","Google Drive (document storage/access)","Meta/WhatsApp Business API (or WhatsApp Cloud API)","A publicly reachable webhook endpoint / hosting"],"key_features":["Retrieval-Augmented Generation (RAG) with Qdrant vector store","Document ingestion from Google Drive and OpenAI embeddings","WhatsApp messaging integration for two-way chat","OpenAI chat model (gpt-4o-mini) driven conversational agent","Webhook-based inbound message handling and verification flow"],"target_audience":["Developers implementing AI chatbots","DevOps/Platform engineers setting up integrations","Customer support and success teams wanting automation via WhatsApp-based bots"]}


name: AI Voice Chatbot with ElevenLabs & OpenAI for Customer Service and Restaurants
author_name: Davide
author_username: n3witalia
categories: []
created_at: 2025-02-04T13:13:55.888Z
updated_at: 2025-02-04T13:13:55.888Z
url: https://n8n.io/workflows/2846
scraped_at: 2025-09-14 19:10:59
metadata_generated_at: 2025-09-14 19:51:23
description:
  The "Voice RAG Chatbot with ElevenLabs and OpenAI" workflow in n8n is designed to create an interactive voice-based chatbot system that leverages both text and voice inputs for providing information. Ideal for shops, commercial activities and restaurants

  How it works:

  Here's how it operates:

  Webhook Activation: The process begins when a user interacts with the voice agent set up on ElevenLabs, triggering a webhook in n8n. This webhook sends a question from the user to the AI Agent node.
  AI Agent Processing: Upon receiving the query, the AI Agent node processes the input using predefined prompts and tools. It extracts relevant information from the knowledge base stored within the Qdrant vector database.
  Knowledge Base Retrieval: The Vector Store Tool node interfaces with the Qdrant Vector Store to retrieve pertinent documents or data segments matching the user’s query.
  Text Generation: Using the retrieved information, the OpenAI Chat Model generates a coherent response tailored to the user’s question.
  Response Delivery: The generated response is sent back through another webhook to ElevenLabs, where it is converted into speech and delivered audibly to the user.
  Continuous Interaction: For ongoing conversations, the Window Buffer Memory ensures context retention by maintaining a history of interactions, enhancing the conversational flow.

  Set up steps:

  To configure this workflow effectively, follow these detailed setup instructions:

  ElevenLabs Agent Creation:
     Begin by creating an agent on ElevenLabs (e.g., named 'test_n8n').
     Customize the first message and define the system prompt specific to your use case, such as portraying a character like a waiter at "Pizzeria da Michele".
     Add a Webhook tool labeled 'test_chatbot_elevenlabs' configured to receive questions via POST requests.

  Qdrant Collection Initialization:
     Utilize the HTTP Request nodes ('Create collection' and 'Refresh collection') to initialize and clear existing collections in Qdrant. Ensure you update placeholders QDRANTURL and COLLECTION accordingly.

  Document Vectorization:
     Use Google Drive integration to fetch documents from a designated folder. These documents are then downloaded and processed for embedding.
     Employ the Embeddings OpenAI node to generate embeddings for the downloaded files before storing them into Qdrant via the Qdrant Vector Store node.

  AI Agent Configuration:
     Define the system prompt for the AI Agent node which guides its behavior and responses based on the nature of queries expected (e.g., product details, troubleshooting tips).
     Link necessary models and tools including OpenAI language models and memory buffers to enhance interaction quality.

  Testing Workflow:
     Execute test runs of the entire workflow by clicking 'Test workflow' in n8n alongside initiating tests on the ElevenLabs side to confirm all components interact seamlessly.
     Monitor logs and outputs closely during testing phases to ensure accurate data flow between systems.

  Integration with Website:
     Finally, integrate the chatbot widget onto your business website replacing placeholder AGENT_ID with the actual identifier created earlier on ElevenLabs.

  By adhering to these comprehensive guidelines, users can successfully deploy a sophisticated voice-driven chatbot capable of delivering precise answers utilizing advanced retrieval-augmented generation techniques powered by OpenAI and ElevenLabs technologies.

nodes_used:
  ["@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.toolVectorStore","@n8n/n8n-nodes-langchain.vectorStoreQdrant","@n8n/n8n-nodes-langchain.embeddingsOpenAi","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.manualTrigger","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.googleDrive","n8n-nodes-base.googleDrive","@n8n/n8n-nodes-langchain.documentDefaultDataLoader","@n8n/n8n-nodes-langchain.textSplitterTokenSplitter","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.vectorStoreQdrant","@n8n/n8n-nodes-langchain.embeddingsOpenAi","n8n-nodes-base.stickyNote","n8n-nodes-base.respondToWebhook","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.webhook","@n8n/n8n-nodes-langchain.memoryBufferWindow","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 4536 characters]

metadata_json:
  {"categories":["integration","conversational ai","voice automation","retrieval-augmented generation","customer service"],"complexity":"complex","use_cases":["Voice-based customer support (shops, restaurants)","Voice FAQ and product information","In-store or drive-thru conversational assistant","Hands-free order taking and recommendations","Knowledge-base driven voice responses using RAG"],"estimated_setup_minutes":90,"required_services":["n8n instance (with webhook access)","ElevenLabs (agent + webhook + speech synthesis)","OpenAI (chat models + embeddings)","Qdrant vector database","Google Drive (source documents)","Website / hosting for chatbot widget integration"],"key_features":["Voice input/output via ElevenLabs webhooks and TTS","Retrieval-Augmented Generation (RAG) using Qdrant","Document ingestion and embedding from Google Drive","OpenAI chat model for response generation","Window buffer memory for multi-turn context retention"],"target_audience":["Small businesses and restaurants","Customer support teams","Developers implementing voice chatbots and RAG workflows"]}


name: Content Generator for WordPress v3
author_name: Alex Kim
author_username: alexk1919
categories: []
created_at: 2025-02-05T04:03:29.558Z
updated_at: 2025-02-05T04:03:29.558Z
url: https://n8n.io/workflows/2849
scraped_at: 2025-09-14 19:11:03
metadata_generated_at: 2025-09-14 21:18:32
description:
  UPDATE
  This is an updated version of the previous Ultimate Content Generator for WordPress v2.
  https://n8n.io/workflows/2737-ultimate-content-generator-for-wordpress/

  It includes an additional workflow to generate content using Anthropic Claude in addition to OpenAI 4o.

  I also mofidied it to use the AI Agent Tool node with structured output for more consistent outputs.

  Lastly, the workflow updates a new table in AirTable with the published blog post url and featured image url.

  Overview- 
  This workflow automates the end-to-end process of creating, optimizing, and publishing content on WordPress.

  It integrates AI-powered tools, Airtable, and WordPress plugins to generate high-quality, on-brand posts effortlessly.

  Perfect for content creators, marketers, and business owners looking to save time and scale their content strategy.

  Features
  Content Creation:
  AI-Powered Content: Generates SEO-friendly blog posts with structured headings, relevant keywords, and meta descriptions.
  Custom Prompts: Tailor the AI-generated content to match your brand’s tone and voice.
  SEO Optimization: RankMath Plugin Integration: Updates RankMath SEO with focus keywords and meta descriptions, ensuring your content is search-engine optimized.
  Content Management: 
  Airtable Integration: Organizes content ideas, drafts, and publishing schedules in one place. Easily scalable for teams or solo creators.
  Visuals: 
  Branded Featured Images: Automatically generates on-brand images for every post.
  Publishing:
  Effortless Formatting: Adapts content to fit your WordPress theme and schedules it for publication.
  Workflow Steps
  Trigger: Initiated manually or on a schedule.
  Content Management: Retrieves and organizes ideas from Airtable.
  Content Generation: Generates AI-driven blog content tailored to your audience.
  SEO Optimization: Automatically updates RankMath with SEO details.
  Featured Image Creation: Produces on-brand images for the post.
  Publishing: Formats and schedules the post on WordPress.
  Prerequisites
  API Keys:
  OpenAI
  Claude
  Airtable
  WordPress REST API

  Custom Code:
  Add a small update to your WordPress theme’s functions.php file to enable seamless automation.

  Customization
  Replace Airtable with another content management system if preferred.
  Adjust AI prompts to reflect different tones, styles, or industries.
  Add integrations for additional plugins, analytics, or storage services.
  Usage
  Import the workflow into your n8n instance.
  Configure API credentials for WordPress, Airtable, OpenAI, Claude and Slack.
  Update your functions.php file with the provided code snippet.
  Customize prompts and Airtable structure for your content needs.
  Trigger the workflow manually or set it on a schedule.
  Notes
  Experiment with Airtable views or add filters for more granular control over your content pipeline.
  Extend the workflow to include social media posting or analytics tracking.

  Feel free to adapt and extend this workflow to meet your specific needs! 🎉

nodes_used:
  ["n8n-nodes-base.formTrigger","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.if","n8n-nodes-base.splitOut","n8n-nodes-base.merge","n8n-nodes-base.code","n8n-nodes-base.wordpress","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.respondToWebhook","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.toolWikipedia","@n8n/n8n-nodes-langchain.openAi","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.stickyNote","n8n-nodes-base.manualTrigger","n8n-nodes-base.set","n8n-nodes-base.wait","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.aggregate","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.aggregate","n8n-nodes-base.airtable","n8n-nodes-base.splitInBatches","n8n-nodes-base.if","n8n-nodes-base.airtable","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.httpRequest","n8n-nodes-base.airtable","n8n-nodes-base.slack","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.airtableTrigger","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.toolHttpRequest","@n8n/n8n-nodes-langchain.lmChatAnthropic","@n8n/n8n-nodes-langchain.toolCalculator","@n8n/n8n-nodes-langchain.toolWikipedia","@n8n/n8n-nodes-langchain.toolHttpRequest","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatAnthropic","@n8n/n8n-nodes-langchain.toolCalculator","@n8n/n8n-nodes-langchain.toolWikipedia","n8n-nodes-base.merge","n8n-nodes-base.code","n8n-nodes-base.wordpress","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.httpRequest","n8n-nodes-base.if","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.code","@n8n/n8n-nodes-langchain.toolHttpRequest","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.set","n8n-nodes-base.wait","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.aggregate","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.airtable","n8n-nodes-base.slack","n8n-nodes-base.airtable","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 6848 characters]

metadata_json:
  {"categories":["automation","content creation","integration","AI/ML"],"complexity":"complex","use_cases":["End-to-end blog post generation and publishing to WordPress","Scaling content production for marketing teams or agencies","SEO optimization workflows using RankMath","Managing editorial calendar and drafts in Airtable","Automatically generating and attaching branded featured images"],"estimated_setup_minutes":60,"required_services":["OpenAI (GPT-4o)","Anthropic Claude","Airtable","WordPress REST API (with RankMath plugin)","Image-generation API or service (for featured images)","Slack (optional for notifications)"],"key_features":["AI-powered, structured content generation (supports OpenAI and Claude)","AI Agent Tool node with structured outputs for consistent results","Airtable integration for content management and tracking","Automatic RankMath SEO updates (focus keywords, meta descriptions)","Auto-generation and attachment of branded featured images to posts"],"target_audience":["content creators","marketers","small business owners and founders implementing content automation workflows on WordPress platforms"]}


name: BambooHR AI-Powered Company Policies and Benefits Chatbot
author_name: Ludwig
author_username: ludwig
categories: []
created_at: 2025-02-05T07:19:48.368Z
updated_at: 2025-02-05T07:19:48.368Z
url: https://n8n.io/workflows/2850
scraped_at: 2025-09-14 19:11:03
metadata_generated_at: 2025-09-14 21:18:32
description:
  How it works
  This workflow enables companies to provide instant HR support by automating responses to employee queries about policies and benefits:  
  Retrieves company policies, benefits, and HR documents from BambooHR.  
  Uses AI to analyze and answer employee questions based on company records.  
  Identifies the most relevant contact person for escalations.  
  Seamlessly integrates with company systems to provide real-time HR assistance.
  Set up steps:  
  Estimated time: ~20 minutes
  Connect your BambooHR account to allow policy retrieval.  
  Configure AI parameters and access control settings.  
  (Optional) Set up the employee lookup tool for personalized responses.  
  Test the chatbot to ensure accurate responses and seamless integration.  

  Benefits
  This workflow is perfect for HR teams looking to enhance employee support while reducing manual inquiries.

  Outperform BambooHR's "Ask BambooHR" Chatbot

  #1. Superior specificity of replies to general inquiries




  #2.  More appropriate escalations when responding to sensitive employee concerns

nodes_used:
  ["n8n-nodes-base.manualTrigger","@n8n/n8n-nodes-langchain.documentDefaultDataLoader","@n8n/n8n-nodes-langchain.embeddingsOpenAi","@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter","@n8n/n8n-nodes-langchain.memoryBufferWindow","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.toolVectorStore","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.embeddingsOpenAi","@n8n/n8n-nodes-langchain.toolWorkflow","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.outputParserAutofixing","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.bambooHr","n8n-nodes-base.stickyNote","n8n-nodes-base.filter","n8n-nodes-base.splitOut","n8n-nodes-base.filter","n8n-nodes-base.bambooHr","@n8n/n8n-nodes-langchain.vectorStoreSupabase","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.chatTrigger","@n8n/n8n-nodes-langchain.vectorStoreSupabase","n8n-nodes-base.stickyNote","n8n-nodes-base.executeWorkflowTrigger","@n8n/n8n-nodes-langchain.textClassifier","n8n-nodes-base.bambooHr","n8n-nodes-base.filter","n8n-nodes-base.set","n8n-nodes-base.bambooHr","n8n-nodes-base.aggregate","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.informationExtractor","n8n-nodes-base.bambooHr","n8n-nodes-base.filter","n8n-nodes-base.aggregate","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.agent","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, 8132 characters]

metadata_json:
  {"categories":["automation","integration","hr","ai-powered"],"complexity":"medium","use_cases":["Employee self‑service for policies and benefits","Automated HR question answering","Escalation routing to the appropriate HR contact","Internal knowledge base / document search","Onboarding and benefits education"],"estimated_setup_minutes":20,"required_services":["BambooHR","OpenAI (chat + embeddings)","Supabase (vector store)","Company employee directory / lookup tool (optional)","Internal systems for integrations / access control"],"key_features":["Retrieves policies, benefits, and HR documents from BambooHR","Uses embeddings + vector search for relevant document retrieval","AI‑driven question answering tuned to company records","Identifies and routes escalations to the most relevant contact","Personalized responses using employee lookup (optional)"],"target_audience":["HR teams","People ops / HRIS managers","Internal IT / developers implementing HR chatbots"]}


name: Modular & Customizable AI-Powered Email Routing: Text Classifier for eCommerce
author_name: Davide
author_username: n3witalia
categories: []
created_at: 2025-02-05T10:23:35.794Z
updated_at: 2025-02-05T10:23:35.794Z
url: https://n8n.io/workflows/2851
scraped_at: 2025-09-14 19:11:02
metadata_generated_at: 2025-09-14 21:18:32
description:
  How It Works
  Form Submission:
     The workflow starts with the On form submission node, which triggers when a user submits a contact form. The form collects the user's name, email, and message.

  Text Classification:
     The Text Classifier node uses an AI model (GPT-4) to classify the submitted message into one of the predefined categories:
       Request Quote: For quote requests.
       Product info: For general product inquiries.
       General problem: For issues or problems related to products.
       Order: For questions about placed orders.
       Other: For any messages that don’t fit the above categories.

  Email Routing:
     Based on the classification, the workflow routes the message to the appropriate department via email:
       Prod. Dep.: For product-related inquiries.
       Quote Dep.: For quote requests.
       Gen. Dep.: For general problems.
       Order Dep.: For order-related questions.
       Other Dep.: For all other inquiries.
     Each email includes the user's name, email, message, and the classified category.

  Data Logging:
     The workflow logs the form submission and classification results into a Google Sheets document. Each department has its own sheet where the data is appended, including:
       User’s name, email, and message.
       Submission date and time.
       Assigned category.
       Email recipient details.

  AI Model Integration:
     The OpenAI node provides the AI model (GPT-4) used by the Text Classifier to classify the messages. The model is instructed to classify the text into one of the predefined categories without additional explanations.

  Set Up Steps
  Configure the Form Trigger:
     Set up the On form submission node to collect user inputs (name, email, and message) and trigger the workflow.

  Set Up the Text Classifier:
     Configure the Text Classifier node to use the OpenAI model (GPT-4) for text classification.
     Define the categories and their descriptions (e.g., "Request Quote", "Product info", etc.).
     Set the fallback category to "Other" for unclassifiable messages.

  Configure Email Sending:
     Set up the Email Send nodes for each department (Prod. Dep., Quote Dep., Gen. Dep., Order Dep., Other Dep.).
     Configure the email subject, body, and reply-to address using the form data and classification results.
     Ensure SMTP credentials are correctly configured for sending emails.

  Set Up Google Sheets Integration:
     Configure the Google Sheets nodes to append data to the appropriate sheets for each department.
     Map the form data (name, email, message, date, category, and recipient) to the corresponding columns in the Google Sheets document.

  Test the Workflow:
     Submit a test form to ensure the workflow correctly classifies the message, sends the email to the right department, and logs the data in Google Sheets.
     Verify that the OpenAI model is classifying messages accurately.

  Activate the Workflow:
     Once tested, activate the workflow to automate the process of handling contact form submissions.

  Key Features
  Automated Classification**: Uses AI to classify messages into relevant categories, reducing manual effort.
  Email Routing**: Sends emails to the appropriate department based on the classification.
  Data Logging**: Logs all form submissions and classification results in Google Sheets for tracking and analysis.
  Scalability**: Easily adaptable to additional categories or departments by modifying the workflow.

  This workflow is ideal for eCommerce businesses or customer support teams looking to automate and streamline the handling of contact form submissions.

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

nodes_used:
  ["n8n-nodes-base.formTrigger","@n8n/n8n-nodes-langchain.textClassifier","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.emailSend","n8n-nodes-base.emailSend","n8n-nodes-base.emailSend","n8n-nodes-base.emailSend","n8n-nodes-base.emailSend","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","n8n-nodes-base.stickyNote"]

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

metadata_json:
  {"categories":["automation","integration","AI","customer_support","data_processing"],"complexity":"medium","use_cases":["Automated triage of contact form messages","Routing customer inquiries to department-specific email inboxes","Logging submissions and classifications for reporting/analytics","Fallback handling for unclassifiable messages","Extending categories/departments as business grows"],"estimated_setup_minutes":45,"required_services":["OpenAI (GPT-4) API","Google Sheets (Google account)","SMTP/email provider (Gmail, SendGrid, etc.)","Form provider or n8n form trigger (webform/webhook)","n8n instance with required nodes configured"],"key_features":["AI-powered text classification into predefined categories","Conditional email routing to department-specific recipients","Append submissions and classification results to per-department Google Sheets","Configurable categories with 'Other' fallback","Includes user name, email, message, timestamp, and recipient in logs and emails"],"target_audience":["eCommerce businesses","Customer support teams","Small/medium business operations managers\",\"Automation/DevOps engineers"]}


name: AI-Powered Email Automation for Business: Summarize & Respond with RAG
author_name: Davide
author_username: n3witalia
categories: []
created_at: 2025-02-05T13:22:24.743Z
updated_at: 2025-02-05T13:22:24.743Z
url: https://n8n.io/workflows/2852
scraped_at: 2025-09-14 19:11:00
metadata_generated_at: 2025-09-14 21:18:31
description:
  This workflow is ideal for businesses looking to automate their email responses, especially for handling inquiries about company information. It leverages AI to ensure accurate and professional communication.

  How It Works
  Email Trigger:
     The workflow starts with the Email Trigger (IMAP) node, which monitors an email inbox for new messages. When a new email arrives, it triggers the workflow.

  Email Preprocessing:
     The Markdown node converts the email's HTML content into plain text for easier processing by the AI models.

  Email Summarization:
     The Email Summarization Chain node uses an AI model (DeepSeek R1) to generate a concise summary of the email. The summary is limited to 100 words and is written in Italian.

  Email Classification:
     The Email Classifier node categorizes the email into predefined categories (e.g., "Company info request"). If the email does not fit any category, it is classified as "other".

  Email Response Generation:
     The Write email node uses an AI model (OpenAI) to draft a professional response to the email. The response is based on the email content and is limited to 100 words.
     The Review email node uses another AI model (DeepSeek) to review and format the drafted response. It ensures the response is professional and formatted in HTML (e.g., using `, , , ` tags where necessary).

  Email Sending:
     The Send Email node sends the reviewed and formatted response back to the original sender.

  Vector Database Integration:
     The Qdrant Vector Store node retrieves relevant information from a vector database (Qdrant) to assist in generating accurate responses. This is particularly useful for emails classified as "Company info request".
     The Embeddings OpenAI node generates embeddings for the email content, which are used to query the vector database.

  Document Vectorization:
     The workflow includes steps to create and refresh a Qdrant collection (Create collection and Refresh collection nodes).
     Documents from Google Drive are downloaded (Get folder and Download Files nodes), processed into embeddings (Embeddings OpenAI1 node), and stored in the Qdrant vector store (Qdrant Vector Store1 node).

  Set Up Steps
  Configure Email Trigger:
     Set up the Email Trigger (IMAP) node with the appropriate IMAP credentials to monitor the email inbox.

  Set Up AI Models:
     Configure the DeepSeek R1, OpenAI, and DeepSeek nodes with the appropriate API credentials for text summarization, response generation, and review.

  Set Up Email Classification:
     Define the categories in the Email Classifier node (e.g., "Company info request", "Other").
     Ensure the OpenAI 4-o-mini node is configured to assist in classification.

  Set Up Vector Database:
     Configure the Qdrant Vector Store and Qdrant Vector Store1 nodes with the appropriate Qdrant API credentials and collection details.
     Set up the Embeddings OpenAI and Embeddings OpenAI1 nodes to generate embeddings for the email content and documents.

  Set Up Document Processing:
     Configure the Get folder and Download Files nodes to access and download documents from Google Drive.
     Use the Token Splitter and Default Data Loader nodes to process and split the documents into manageable chunks for vectorization.

  Set Up Email Sending:
     Configure the Send Email node with the appropriate SMTP credentials to send responses.

  Test the Workflow:
     Trigger the workflow manually using the When clicking ‘Test workflow’ node to ensure all steps execute correctly.
     Verify that emails are summarized, classified, and responded to accurately.

  Activate the Workflow:
     Once tested, activate the workflow to automate the process of handling incoming emails.

  Key Features
  Automated Email Handling**: Automatically processes incoming emails, summarizes them, and generates professional responses.
  AI-Powered Classification**: Uses AI to classify emails into relevant categories for targeted responses.
  Vector Database Integration**: Retrieves relevant information from a vector database to enhance response accuracy.
  Document Vectorization**: Processes and stores documents from Google Drive in a vector database for quick retrieval.
  Professional Email Formatting**: Ensures responses are professionally formatted and concise.

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

nodes_used:
  ["n8n-nodes-base.emailReadImap","n8n-nodes-base.markdown","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.emailSend","@n8n/n8n-nodes-langchain.vectorStoreQdrant","@n8n/n8n-nodes-langchain.embeddingsOpenAi","@n8n/n8n-nodes-langchain.textClassifier","@n8n/n8n-nodes-langchain.chainSummarization","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.manualTrigger","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.googleDrive","n8n-nodes-base.googleDrive","@n8n/n8n-nodes-langchain.documentDefaultDataLoader","@n8n/n8n-nodes-langchain.textSplitterTokenSplitter","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.vectorStoreQdrant","@n8n/n8n-nodes-langchain.embeddingsOpenAi","n8n-nodes-base.stickyNote","n8n-nodes-base.noOp","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.lmChatOpenAi"]

workflow_json_compressed:
  [encoded data, 5208 characters]

metadata_json:
  {"categories":["automation","integration","AI/NLP","knowledge management","customer support"],"complexity":"complex","use_cases":["Automated email triage and replies (company info requests)","Summarization of incoming emails for faster review","RAG-powered responses using internal documents","Maintaining searchable knowledge base from Google Drive","Customer support and sales inquiry automation"],"estimated_setup_minutes":90,"required_services":["IMAP email account (incoming trigger)","SMTP email service (sending replies)","OpenAI API (embeddings / response generation)","DeepSeek API (summarization / review models)","Qdrant vector database","Google Drive API (document access)"],"key_features":["Automated monitoring and handling of incoming emails","AI summarization (Italian, 100-word limit)","AI classification into predefined categories","Response generation plus AI review/HTML formatting","Retrieval-augmented generation (Qdrant + embeddings) for accurate answers from docs"],"target_audience":["Customer support teams","Small-to-medium businesses","Sales / account managers handling inquiries regularly"]}


name: Spotify to YouTube Playlist Synchronization
author_name: Lugnicca
author_username: lugnicca
categories: []
created_at: 2025-02-05T17:50:00.354Z
updated_at: 2025-02-05T17:50:00.354Z
url: https://n8n.io/workflows/2853
scraped_at: 2025-09-14 19:11:03
metadata_generated_at: 2025-09-14 21:18:32
description:
  Spotify to YouTube Playlist Synchronization
  A workflow that maintains a YouTube playlist in sync with a Spotify playlist, featuring smart video matching and persistent synchronization.

  Key Features
  One-way Sync**: Spotify playlist → YouTube playlist (additions and deletions)
  Continuous Monitoring**: Automatic synchronization (every hour by default, but you can put any time you want)
  Smart Video Matching**: Considers video length and content relevance
  Auto-Recovery**: Automatically handles deleted YouTube videos
  Database Backup**: Persistent storage using Supabase

  Prerequisites

  Supabase project with the following table structure:
  CREATE TABLE IF NOT EXISTS musics (
      id TEXT PRIMARY KEY,
      title TEXT NOT NULL,
      artist TEXT NOT NULL,
      duration INT8 NOT NULL,
      youtube_video_id TEXT,
      to_delete BOOLEAN DEFAULT FALSE
  );
  Empty YouTube playlist (recommended as duplicates are not handled)
  Configured credentials for YouTube, Spotify, and Supabase APIs
  Properly set variables in all "variables" nodes (variables, variables1, variables2, variables3, variables4 (all the same))
  Activate the workflow !

nodes_used:
  ["n8n-nodes-base.spotify","n8n-nodes-base.spotify","n8n-nodes-base.if","n8n-nodes-base.supabase","n8n-nodes-base.supabase","n8n-nodes-base.supabase","n8n-nodes-base.compareDatasets","n8n-nodes-base.spotify","n8n-nodes-base.noOp","n8n-nodes-base.supabase","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.wait","n8n-nodes-base.set","n8n-nodes-base.youTube","n8n-nodes-base.youTube","n8n-nodes-base.splitInBatches","n8n-nodes-base.if","n8n-nodes-base.youTube","n8n-nodes-base.supabase","n8n-nodes-base.discord","n8n-nodes-base.discord","n8n-nodes-base.supabase","n8n-nodes-base.aggregate","n8n-nodes-base.if","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.splitInBatches","n8n-nodes-base.set","n8n-nodes-base.youTube","n8n-nodes-base.compareDatasets","n8n-nodes-base.supabase","n8n-nodes-base.removeDuplicates","n8n-nodes-base.youTube","n8n-nodes-base.compareDatasets","n8n-nodes-base.supabase","n8n-nodes-base.supabase","n8n-nodes-base.supabase","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.set","n8n-nodes-base.supabase","n8n-nodes-base.set","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 8856 characters]

metadata_json:
  {"categories":["integration","automation","data processing","media management"],"complexity":"complex","use_cases":["Synchronize Spotify playlists to YouTube automatically","Backup and persist playlist metadata","Recover and replace deleted YouTube videos","Migrate or mirror streaming playlists to video platform","Automated monitoring and alerting of playlist changes"],"estimated_setup_minutes":45,"required_services":["Spotify API (developer credentials)","YouTube Data API / Google account (OAuth credentials)","Supabase (Postgres) project with musics table)","n8n (workflow runner — self-hosted or cloud)","Optional: Discord (for notifications)"],"key_features":["One-way sync: Spotify → YouTube (adds and deletes)","Continuous scheduled monitoring (default hourly)","Smart video matching using duration and relevance","Auto-recovery for deleted YouTube videos","Persistent storage and backup via Supabase table (musics)"],"target_audience":["Developers / integrators","Music playlist curators","Social media / community managers who manage playlists or channels"]}


name: Automatic Youtube Shorts Generator
author_name: Samautomation.work
author_username: contactexpertly
categories: []
created_at: 2025-02-07T00:47:46.429Z
updated_at: 2025-02-07T00:47:46.429Z
url: https://n8n.io/workflows/2856
scraped_at: 2025-09-14 19:11:01
metadata_generated_at: 2025-09-14 21:18:31
description:
  Automated YouTube Shorts Creator from Google News Trends
  Transform trending Google News articles into engaging YouTube Shorts with this fully automated workflow. Save time and effort while creating dynamic, eye-catching videos that are perfect for content creators, journalists, and digital marketers.

  Key Features
   Trend Analysis: Automatically fetch Google News articles and entertainment trends every 24 hours.
  AI-Powered Video Creation:                    
   Generate accurate transcripts from articles using Deepseek AI.
   Create visually appealing backgrounds with AI image generation tools.
  Add voiceovers with ElevenLabs TTS or similar services.
                                        
  Dynamic Video Compilation:                    
  Combine images, audio, and background music to craft short, dynamic videos.
  Fully customizable video length and music selection.
                                        
  YouTube Integration: Upload videos directly to YouTube, complete with autogenerated titles and descriptions.
  Organized Management: Titles and descriptions are saved to a Google Sheet for easy tracking and editing.

  How It Works
  Fetch trending topics from Google News using Deepseek.
  Convert the article's content into a readable transcript.
  Automatically create a voiceover, generate visuals, and combine them into a complete video.
  Upload the video to YouTube with a dynamic caption and description.

  Who Is It For?
  Content creators looking to expand their reach on YouTube Shorts.
  News agencies aiming to deliver content faster.
  Digital marketers needing quick, engaging videos.

  Setup Requirements
  API keys for Google News, ElevenLabs, OpenAI, and Deepseek.
  Basic knowledge of API integration and video content creation.

  Start creating trending, eye-catching YouTube Shorts in minutes. Automate your workflow and stay ahead in the content game!

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.wait","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.splitOut","n8n-nodes-base.httpRequest","n8n-nodes-base.splitOut","n8n-nodes-base.httpRequest","n8n-nodes-base.convertToFile","n8n-nodes-base.wait","n8n-nodes-base.googleCloudStorage","n8n-nodes-base.limit","n8n-nodes-base.set","n8n-nodes-base.code","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.googleCloudStorage","n8n-nodes-base.httpRequest","n8n-nodes-base.wait","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.googleSheets","n8n-nodes-base.set","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.httpRequest","n8n-nodes-base.youTube","n8n-nodes-base.googleSheets"]

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

metadata_json:
  {"categories":["automation","content creation","media production","news aggregation","integration"],"complexity":"complex","use_cases":["Automated creation of YouTube Shorts from trending news","Repurposing news/articles into short video content","Rapid content publishing for newsrooms and agencies","Social media growth via frequent short-form videos","Tracking and managing video metadata in Google Sheets"],"estimated_setup_minutes":60,"required_services":["Deepseek (or Google News API)","OpenAI (or other AI for transcript/ NLP)","ElevenLabs (TTS)","AI image-generation service (DALL·E, Stable Diffusion, etc.)","YouTube Data API (upload)","Google Sheets API","Google Cloud Storage"],"key_features":["Automated trend fetch from Google News/Deepseek on a schedule","AI-powered transcript generation from articles","AI image generation for backgrounds/visuals","Text-to-speech voiceover creation","Combines images, audio, and music into short dynamic videos with customizable length and music selection"],"target_audience":["Content creators and YouTubers","News agencies and journalists","Digital marketers and social media managers"]}


name: Pattern for Multiple Triggers Combined to Continue Workflow
author_name: Hubschrauber
author_username: hubschrauber
categories: []
created_at: 2025-02-07T01:14:59.594Z
updated_at: 2025-02-07T01:14:59.594Z
url: https://n8n.io/workflows/2857
scraped_at: 2025-09-14 19:11:03
metadata_generated_at: 2025-09-14 21:18:32
description:
  Overview

  This template describes a possible approach to handle a pseudo-callback/trigger from an independent, external process (initiated from a workflow) and combine the received input with the workflow execution that is already in progress.  This requires the external system to pass through some context information (resumeUrl), but allows the "primary" workflow execution to continue with BOTH its own (previous-node) context, AND the input received in the "secondary" trigger/process.

  Primary Workflow Trigger/Execution
  The workflow path from the primary trigger initiates some external, independent process and provides "context" which includes the value of $execution.resumeUrl. This execution then reaches a Wait node configured with Resume - On Webhook Call  and stops until a call to resumeUrl is received.

  External, Independent Process
  The external, independent process could be anything like a Telegram conversation, or a web-service as long as:
  it results in a single execution of the Secondary Workflow Trigger, and
  it can pass through the value of resumeUrl associated with the Primary Workflow Execution

  Secondary Workflow Trigger/Execution
  The secondary workflow execution can start with any kind of trigger as long as part of the input can include the resumeUrl.  To combine / rejoin the primary workflow execution, this execution passes along whatever it receives from its trigger input to the resume-webhook endpoint on the Wait node.

  Notes
  IMPORTANT: The workflow ids in the Set nodes marked **Update Me have embedded references to the workflow IDs in the original system.  They will need to be CHANGED to make this demo work.
  Note: The Resume Other Workflow Execution node in the template uses the $env.WEBHOOK_URL configuration to convert to an internal "localhost" call in a Docker environment.  This can be done differently.
  ALERT:** This pattern is NOT suitable for a workflow that handles multiple items because the first workflow execution will only be waiting for one callback.
  The second workflow (not the second trigger in the first workflow) is just to demonstrate how the Independent, External Process needs to work.

nodes_used:
  ["n8n-nodes-base.stickyNote","n8n-nodes-base.manualTrigger","n8n-nodes-base.wait","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.webhook","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.respondToWebhook","n8n-nodes-base.httpRequest","n8n-nodes-base.wait","n8n-nodes-base.httpRequest","n8n-nodes-base.set","n8n-nodes-base.webhook","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 4192 characters]

metadata_json:
  {"categories":["automation","integration","asynchronous processing","webhooks"],"complexity":"medium","use_cases":["Implementing pseudo-callbacks to resume paused workflows","Combining input from an external process (e.g., chat or web service) with an in‑progress execution","Long‑running or multi-step processes that require an external confirmation or response","Integrations that need to correlate an external trigger back to a waiting workflow execution"],"estimated_setup_minutes":20,"required_services":["An n8n instance with webhook/resume capability","A public-accessible URL or tunnelling (so resumeUrl is reachable)","External service capable of calling a webhook / passing resumeUrl (e.g., Telegram bot, external web service)","Optional: Docker environment if using $env.WEBHOOK_URL conversion"],"key_features":["Uses Wait node configured with Resume - On Webhook Call to pause and resume executions","Passes resumeUrl in context so an independent process can resume the original execution","Secondary trigger forwards its input to the primary execution via the resume webhook","Demonstrates Resume Other Workflow Execution node and use of Set nodes to map workflow IDs","Not suitable for multi‑item workflows (first execution waits for a single callback)"],"target_audience":["Developers","Integration engineers","Automation engineers/architects"]}


name: Automate GitLab Merge Requests Using APIs with n8n
author_name: Aditya Gaur
author_username: autom8r
categories: []
created_at: 2025-02-07T07:44:07.959Z
updated_at: 2025-02-07T07:44:07.959Z
url: https://n8n.io/workflows/2858
scraped_at: 2025-09-14 19:11:02
metadata_generated_at: 2025-09-14 21:18:31
description:
  Who is this template for?

  This template is designed for developers, DevOps engineers, and automation enthusiasts who want to streamline their GitLab merge request process using n8n, a low-code workflow automation tool. It eliminates manual intervention by automating the merging of GitLab branches through API calls.

  How it works ?

  Trigger the workflow: The workflow can be triggered by a webhook, a scheduled event, or a GitLab event (e.g., a new merge request is created or approved).

  Fetch Merge Request Details: n8n makes an API call to GitLab to retrieve merge request details.

  Check Merge Conditions: The workflow validates whether the merge request meets predefined conditions (e.g., approvals met, CI/CD pipelines passed).

  Perform the Merge: If all conditions are met, n8n sends a request to the GitLab API to merge the branch automatically.

  Setup Steps

  1. Prerequisites

  An n8n instance (Self-hosted or Cloud)

  A GitLab personal access token with API access

  A GitLab repository with merge requests enabled

  2. Create the n8n Workflow

  Set up a trigger: Choose a trigger node (Webhook, Cron, or GitLab Trigger).

  Fetch merge request details: Add an HTTP Request node to call GET /merge_requests/:id from GitLab API.

  Validate conditions:

  Check if the merge request has necessary approvals.

  Ensure CI/CD pipelines have passed.

  Merge the request:

  Use an HTTP Request node to call PUT /merge_requests/:id/merge API.

  3. Test the Workflow

  Create a test merge request.

  Check if the workflow triggers and merges automatically.

  Debug using n8n logs if needed.

  4. Deploy and Monitor

  Deploy the workflow in production.

  Use n8n’s monitoring features to track execution.

  This template enables seamless GitLab merge automation, improving efficiency and reducing manual work!

  Note: 
  Never hard code API token or secret in your https request.

nodes_used:
  ["n8n-nodes-base.httpRequest","n8n-nodes-base.if","n8n-nodes-base.httpRequest","n8n-nodes-base.splitInBatches","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.wait","n8n-nodes-base.httpRequest","n8n-nodes-base.set","n8n-nodes-base.scheduleTrigger"]

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

metadata_json:
  {"categories":["automation","integration","devops","ci/cd"],"complexity":"medium","use_cases":["Automatically merge GitLab merge requests when approvals and CI conditions are met","Reduce manual intervention for routine merges","Schedule or event-triggered branch merges","Enforce merge rules (approvals, pipeline status) before merging"],"estimated_setup_minutes":30,"required_services":["n8n instance (self-hosted or cloud)","GitLab (project/repository) with API access","GitLab personal access token with API scope","Optional: public webhook endpoint (if using webhook trigger)"],"key_features":["Trigger via webhook, schedule, or GitLab event","Fetch merge request details via GitLab API","Validate approvals and CI/CD pipeline status before merging","Perform merge via GitLab API (PUT /merge_requests/:id/merge)","Conditional logic, batching and basic error handling/logging in n8n"],"target_audience":["Developers","DevOps engineers","Automation engineers/enthusiasts"]}


name: Chat with Postgresql Database
author_name: KumoHQ
author_username: kumohq
categories: []
created_at: 2025-02-07T10:20:16.255Z
updated_at: 2025-02-07T10:20:16.255Z
url: https://n8n.io/workflows/2859
scraped_at: 2025-09-14 19:10:59
metadata_generated_at: 2025-09-14 19:31:23
description:
  Who is this template for?

  This workflow template is designed for any professionals seeking relevent data from database using natural language.

  How it works

  Each time user ask's question using the n8n chat interface, the workflow runs.
  Then the message is processed by AI Agent using relevent tools - Execute SQL Query, Get DB Schema and Tables List and Get Table Definition, if required. Agent uses these tool to form and run sql query which are necessary to answer the questions.
  Once AI Agent has the data, it uses it to form answer and returns it to the user.

  Set up instructions

  Complete the Set up credentials step when you first open the workflow. You'll need a Postgresql Credentials, and OpenAI api key.

  Template was created in n8n v1.77.0

nodes_used:
  ["@n8n/n8n-nodes-langchain.chatTrigger","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.postgresTool","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.memoryBufferWindow","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.postgresTool","n8n-nodes-base.postgresTool"]

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

metadata_json:
  {"categories":["automation","ai-assistant","database-integration","data-exploration"],"complexity":"complex","use_cases":["Natural-language querying of PostgreSQL data","Ad-hoc data exploration and reporting","Building a conversational data assistant for internal teams","Generating or validating SQL via LLM/agent"],"estimated_setup_minutes":30,"required_services":["OpenAI (or compatible LLM API)","PostgreSQL database","n8n with LangChain nodes enabled"],"key_features":["LangChain agent that interfaces with PostgreSQL","OpenAI-powered chat LLM for natural-language understanding and responses","PostgresTool node to run queries and fetch results","Memory buffer window to keep recent conversation context","Sticky notes used for prompts/instructions and flow organization"],"target_audience":["Developers","Data analysts / BI analysts","Data engineers integrating LLMs with databases"]}


name: AI Automated HR Workflow for CV Analysis and Candidate Evaluation
author_name: Davide
author_username: n3witalia
categories: []
created_at: 2025-02-07T12:30:06.464Z
updated_at: 2025-02-07T12:30:06.464Z
url: https://n8n.io/workflows/2860
scraped_at: 2025-09-14 19:10:59
metadata_generated_at: 2025-09-14 19:51:23
description:
  How it Works

  This workflow automates the process of handling job applications by extracting relevant information from submitted CVs, analyzing the candidate's qualifications against a predefined profile, and storing the results in a Google Sheet. Here’s how it operates:

  Data Collection and Extraction: 
     The workflow begins with a form submission (On form submission node), which triggers the extraction of data from the uploaded CV file using the Extract from File node.
     Two informationExtractor nodes (Qualifications and Personal Data) are used to parse specific details such as educational background, work history, skills, city, birthdate, and telephone number from the text content of the CV.

  Processing and Evaluation:
     A Merge node combines the extracted personal and qualification data into a single output.
     This merged data is then passed through a Summarization Chain that generates a concise summary of the candidate’s profile.
     An HR Expert chain evaluates the candidate against a desired profile (Profile Wanted), assigning a score and providing considerations for hiring.
     Finally, all collected and processed data including the evaluation results are appended to a Google Sheets document via the Google Sheets node for further review or reporting purposes [[9]].

  Set Up Steps

  To replicate this workflow within your own n8n environment, follow these steps:

  Configuration:
     Begin by setting up an n8n instance if you haven't already; you can sign up directly on their website or self-host the application.
     Import the provided JSON configuration into your n8n workspace. Ensure that all necessary credentials (e.g., Google Drive, Google Sheets, OpenAI API keys) are correctly configured under the Credentials section since some nodes require external service integrations like Google APIs and OpenAI for language processing tasks.

  Customization:
     Adjust the parameters of each node according to your specific requirements. For example, modify the fields in the formTrigger node to match what kind of information you wish to collect from applicants.
     Customize the prompts given to AI models in nodes like Qualifications, Summarization Chain, and HR Expert so they align with the type of analyses you want performed on the candidates' profiles.
     Update the destination settings in the Google Sheets node to point towards your own spreadsheet where you would like the final outputs recorded.

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

nodes_used:
  ["n8n-nodes-base.formTrigger","n8n-nodes-base.extractFromFile","@n8n/n8n-nodes-langchain.informationExtractor","@n8n/n8n-nodes-langchain.chainSummarization","n8n-nodes-base.merge","n8n-nodes-base.set","n8n-nodes-base.googleSheets","@n8n/n8n-nodes-langchain.outputParserStructured","@n8n/n8n-nodes-langchain.chainLlm","@n8n/n8n-nodes-langchain.informationExtractor","n8n-nodes-base.googleDrive","@n8n/n8n-nodes-langchain.lmChatOpenAi","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, 5228 characters]

metadata_json:
  {"categories":["automation","HR/recruitment","AI-assisted processing","integration"],"complexity":"medium","use_cases":["Automated CV parsing and candidate data extraction","Pre-screening and scoring candidates against a desired profile","Creating concise candidate summaries for recruiters","Centralizing applicant records in Google Sheets for reporting"],"estimated_setup_minutes":45,"required_services":["n8n (cloud or self-hosted)","Google Sheets API / Google account","Google Drive (for uploaded CV storage)","OpenAI or another LLM provider (for summarization and evaluation)","n8n Forms or equivalent form trigger"],"key_features":["Extract text from uploaded CVs and parse personal info and qualifications","Merge extracted data into a single candidate profile","Generate concise summaries with an AI summarization chain","Evaluate candidates against a predefined profile and assign a score (HR Expert chain)","Append structured results to Google Sheets for tracking and reporting','Customizable prompts and node parameters for tailored evaluation"],"target_audience":["HR teams and recruiters","Hiring managers","Talent acquisition specialists and sourcers','Developers/consultants building HR automation"]}


name: AI-powered email processing autoresponder and response approval (Yes/No)
author_name: Davide
author_username: n3witalia
categories: []
created_at: 2025-02-07T15:16:27.194Z
updated_at: 2025-02-07T15:16:27.194Z
url: https://n8n.io/workflows/2861
scraped_at: 2025-09-14 19:11:01
metadata_generated_at: 2025-09-14 21:18:31
description:
  How it Works

  This workflow is designed to automate the process of handling incoming emails, summarizing their content, generating appropriate responses, and obtaining approval before sending replies. Below are the key operational steps:

  Email Reception and Summarization:
     The workflow starts with an Email Trigger (IMAP) node that listens for new emails in a specified inbox.
     Once an email is received, its HTML content is processed by a Markdown node to convert it into plain text if necessary, followed by an Email Summarization Chain node which uses AI to create a concise summary of the email's content using prompts tailored for this purpose.

  Response Generation and Approval:
     A Write email node generates a professional response based on the summarized content, utilizing predefined templates and guidelines such as keeping responses under 100 words and ensuring they're formatted correctly in HTML.
     Before sending out any automated replies, the system sends these drafts via Gmail for human review and approval through a Gmail node configured with double-approval settings. If approved (Approve?), the finalized email is sent back to the original sender using the Send Email node; otherwise, it loops back for further edits or manual intervention.

  Set Up Steps

  To replicate this workflow within your own n8n environment, follow these essential configuration steps:

  Configuration:
     Begin by setting up an n8n instance either locally or via cloud services offered directly from their official site.
     Import the provided JSON configuration file into your workspace, making sure all required credentials like IMAP, SMTP, OpenAI API keys, etc., are properly set up under Credentials section since multiple nodes rely heavily on external integrations for functionalities like reading emails, generating summaries, crafting replies, and managing approvals.

  Customization:
     Adjust parameters according to specific business needs, including but not limited to adjusting the conditions used during conditional checks performed by nodes like Approve?.
     Modify the template messages given to AI models so they align closely with organizational tone & style preferences while maintaining professionalism expected in business communications. Ensure correct mappings between fields when appending data to external systems like Google Sheets or similar platforms where records might need tracking post-interaction completion. 

nodes_used:
  ["n8n-nodes-base.emailReadImap","n8n-nodes-base.markdown","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.emailSend","@n8n/n8n-nodes-langchain.vectorStoreQdrant","@n8n/n8n-nodes-langchain.embeddingsOpenAi","@n8n/n8n-nodes-langchain.chainSummarization","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.set","n8n-nodes-base.if","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.gmail","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 4252 characters]

metadata_json:
  {"categories":["automation","email processing","AI/ML integration","approvals"],"complexity":"complex","use_cases":["Automated customer support triage and reply drafting","Sales outreach and follow-up drafting with human approval","PR/media or executive inbox summarization and response preparation","Internal email routing and approval workflows","Record-keeping of email interactions (e.g., Google Sheets)"],"estimated_setup_minutes":45,"required_services":["n8n instance","IMAP-compatible email account (inbox trigger)","SMTP/Gmail account for sending and approval messages","OpenAI API (LLM + embeddings)","Qdrant (vector store) or alternative vector DB","Optional: Google Sheets or other logging/storage service"],"key_features":["Automatic HTML-to-text conversion and concise AI summarization of incoming emails","AI-generated reply drafts constrained by templates (e.g., <100 words, HTML formatting)","Human-in-the-loop double-approval review before sending responses","Conditional branching for approved vs. rejected responses and rework loops","Embeddings + vector store integration for context/knowledge retrieval and agent workflows (Qdrant + OpenAI)"],"target_audience":["Developers/automation engineers implementing workflows","Customer support and success teams","Sales/marketing teams drafting outreach responses with review control」「IT/ops or admins responsible for email automation and compliance"]}


name: Effortless Email Management with AI-Powered Summarization & Review
author_name: Davide
author_username: n3witalia
categories: []
created_at: 2025-02-07T15:34:24.029Z
updated_at: 2025-02-07T15:34:24.029Z
url: https://n8n.io/workflows/2862
scraped_at: 2025-09-14 19:11:00
metadata_generated_at: 2025-09-14 21:18:31
description:
  How it Works

  This workflow automates the handling of incoming emails, summarizes their content, generates appropriate responses using a retrieval-augmented generation (RAG) approach, and obtains approval or suggestions before sending replies. Below is an explanation of its functionality divided into two main sections:

  Email Handling and Summarization:
     The process begins with the Email Trigger (IMAP) node which listens for new emails in a specified inbox.
     Once an email is received, the Markdown node converts its HTML content into plain text if necessary, followed by the Email Summarization Chain that uses AI to create a concise summary of up to 100 words.

  Response Generation and Approval:
     A Write email node generates a professional response based on the summarized content, ensuring brevity and professionalism while keeping within the word limit.
     Before sending out any automated replies, the system sends these drafts via Gmail for human review and approval through the Gmail node configured with free-text response options. If approved, the finalized email is sent back to the original sender using the Send Email node; otherwise, it loops back for further edits or manual intervention.
     Additionally, there's a Text Classifier node designed to categorize feedback from humans as either "Approved" or "Declined", guiding whether the email should proceed directly to being sent or require additional editing.

  Set Up Steps

  To replicate this workflow within your own n8n environment, follow these essential configuration steps:

  Configuration:
     Begin by setting up an n8n instance either locally or via cloud services offered directly from their official site.
     Import the provided JSON configuration file into your workspace, making sure all required credentials such as IMAP, SMTP, OpenAI API keys, etc., are properly set up under Credentials since multiple nodes rely heavily on external integrations for functionalities like reading emails, generating summaries, crafting replies, and managing approvals.

  Customization:
     Adjust parameters according to specific business needs, including but not limited to adjusting the conditions used during conditional checks performed by nodes like Approve?.
     Modify the template messages given to AI models so they align closely with organizational tone & style preferences while maintaining professionalism expected in business communications.
     Ensure correct mappings between fields when appending data to external systems where records might need tracking post-interaction completion, such as Google Sheets or similar platforms.

nodes_used:
  ["n8n-nodes-base.emailReadImap","n8n-nodes-base.markdown","n8n-nodes-base.emailSend","@n8n/n8n-nodes-langchain.vectorStoreQdrant","@n8n/n8n-nodes-langchain.embeddingsOpenAi","@n8n/n8n-nodes-langchain.chainSummarization","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.gmail","@n8n/n8n-nodes-langchain.textClassifier","n8n-nodes-base.set","n8n-nodes-base.manualTrigger","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.googleDrive","n8n-nodes-base.googleDrive","@n8n/n8n-nodes-langchain.documentDefaultDataLoader","@n8n/n8n-nodes-langchain.textSplitterTokenSplitter","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.vectorStoreQdrant","@n8n/n8n-nodes-langchain.embeddingsOpenAi","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.lmChatDeepSeek","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-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 6280 characters]

metadata_json:
  {"categories":["automation","email management","AI integration","workflow orchestration","data processing"],"complexity":"medium","use_cases":["Automatic email triage and summarization","Drafting professional replies with AI","Human-in-the-loop approval workflows for outgoing email","Customer support ticket drafting and routing","Sales outreach and follow-up automation using context retrieval"],"estimated_setup_minutes":60,"required_services":["IMAP (email inbox)","SMTP or Send Email service","Gmail API (for human review/approval)","OpenAI (chat + embeddings)","Qdrant (vector store for RAG)","Google Drive (optional for attachments/storage)","n8n instance"],"key_features":["HTML-to-plain-text conversion (Markdown) and concise AI summarization (≤100 words)","Retrieval-augmented generation (RAG) for context-aware reply drafting using embeddings + vector store","Human review step via Gmail with free-text approval/feedback","Text classification to route Approved vs Declined feedback","Conditional loops to allow edits or manual intervention before sending final reply」「Integration points for appending records to external systems (e.g., Google Drive/Sheets)"],"target_audience":["Customer support teams","Sales and account managers","Operations/office administrators automating inboxes or shared mailboxes」「Developers/automation engineers implementing RAG-enabled email workflows"]}


name: 🐋🤖 DeepSeek AI Agent + Telegram + LONG TERM Memory 🧠
author_name: Joseph LePage
author_username: joe
categories: []
created_at: 2025-02-08T00:49:32.604Z
updated_at: 2025-02-08T00:49:32.604Z
url: https://n8n.io/workflows/2864
scraped_at: 2025-09-14 19:10:59
metadata_generated_at: 2025-09-14 21:18:31
description:
  This n8n workflow template is designed to integrate a DeepSeek AI agent with Telegram, incorporating long-term memory capabilities for personalized and context-aware responses. Here's a detailed breakdown:

  Core Features
  Telegram Integration  
  Uses a webhook to receive messages from Telegram users.
  Validates user identity and message content before processing.

  AI-Powered Responses  
  Employs DeepSeek's AI models for conversational interactions.
  Includes memory capabilities to personalize responses based on past interactions.

  Error Handling  
  Sends an error message if the input cannot be processed.

  Model Options 🧠
  DeepSeek-V3 Chat**: Handles general conversational tasks.
  DeepSeek-R1 Reasoning**: Provides advanced reasoning capabilities for complex queries.
  Memory Buffer Window**: Maintains session context for ongoing conversations.

  Quick Setup 🛠️
  Telegram Webhook Configuration
  Set up a webhook using the Telegram Bot API:
        https://api.telegram.org/bot{my_bot_token}/setWebhook?url={url_to_send_updates_to}
        Replace {my_bot_token} with your bot's token and {url_to_send_updates_to} with your n8n webhook URL.
  Verify the webhook setup using:
        https://api.telegram.org/bot{my_bot_token}/getWebhookInfo
  DeepSeek API Configuration
  Base URL: https://api.deepseek.com
  Obtain your API key from the DeepSeek platform.

  Implementation Details 🔧
  User Validation
  The workflow validates the user's first name, last name, and ID using data from incoming Telegram messages.
  Only authorized users proceed to the next steps.

  Message Routing
  Routes messages based on their type (text, audio, or image) using a switch node.
  Ensures appropriate handling for each message format.

  AI Agent Interaction
  Processes text input using DeepSeek-V3 or DeepSeek-R1 models.
  Customizable system prompts define the AI's behavior and rules, ensuring user-centric and context-aware responses.

  Memory Management
  Retrieves long-term memories stored in Google Docs to enhance personalization.
  Saves new memories based on user interactions, ensuring continuity across sessions.

nodes_used:
  ["n8n-nodes-base.if","n8n-nodes-base.telegram","n8n-nodes-base.stickyNote","n8n-nodes-base.webhook","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.switch","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.merge","@n8n/n8n-nodes-langchain.memoryBufferWindow","@n8n/n8n-nodes-langchain.chatTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.telegram","n8n-nodes-base.googleDocsTool","n8n-nodes-base.stickyNote","n8n-nodes-base.googleDocs","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.telegram","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.lmChatOpenAi"]

workflow_json_compressed:
  [encoded data, 7176 characters]

metadata_json:
  {"categories":["automation","integration","AI/chatbot","messaging","data processing"],"complexity":"complex","use_cases":["Personalized Telegram chatbot","Customer support with context-aware replies","Virtual assistant with long-term memory","Knowledge retrieval from Google Docs","Multi-modal message handling (text, audio, image)"],"estimated_setup_minutes":45,"required_services":["Telegram Bot API","DeepSeek API (DeepSeek-V3 / DeepSeek-R1)","Google Docs / Google Drive API (for long-term memory)","n8n (hosted with a publicly accessible webhook URL)"],"key_features":["Telegram webhook receiver and message validation","User identity validation and authorization","Message routing by type (text, audio, image)","AI agent integration with DeepSeek models (V3 and R1)","Customizable system prompts and agent behavior rules','Session memory buffer window for short-term context' ,"],"target_audience":["Developers","AI engineers","No‑code/low‑code integrators and bot builders        ]}                                 '} Note: JSON seems malformed; please disregard.}  I will resend corrected metadata.  Apologies.}  ან Here is the corrected metadata:  {"]}


name: Automate Pinterest Analysis & AI-Powered Content Suggestions With Pinterest API
author_name: Marketing Canopy
author_username: johnmarketingcanopy
categories: []
created_at: 2025-02-08T01:27:33.308Z
updated_at: 2025-02-08T01:27:33.308Z
url: https://n8n.io/workflows/2865
scraped_at: 2025-09-14 19:11:02
metadata_generated_at: 2025-09-14 21:18:32
description:
  Automate Pinterest Analysis & AI-Powered Content Suggestions With Pinterest API

  This workflow automates the collection, analysis, and summarization of Pinterest Pin data to help marketers optimize content strategy. It gathers Pinterest Pin performance data, analyzes trends using an AI agent, and delivers actionable insights to the Marketing Manager via email.  

  This setup is ideal for content creators and marketing teams who need weekly insights on Pinterest trends to refine their content calendar and audience engagement strategy.  

  Prerequisites  

  Before setting up this workflow, ensure you have the following:  

  Pinterest API Access & Developer Account  
  Sign up at Pinterest Developers and obtain API credentials.  
  Ensure you have access to both Organic and Paid Pin data.  

  Airtable Account & API Key  
  Create an account at Airtable and set up a database.  
  Obtain an API key from Account Settings.  

  AI Agent for Trend Analysis  
  An AI-powered agent (such as OpenAI's GPT or a custom ML model) is required to analyze Pinterest trends.  
  Ensure integration with your workflow automation tool (e.g., Zapier, Make, or a custom Python script).  

  Email Automation Setup  
  Configure an SMTP email service (e.g., Gmail, Outlook, SendGrid) to send the summarized results to the Marketing Manager.  

  Step-by-Step Guide to Automating Pinterest Pin Analysis  

  1. Scheduled Trigger for Data Collection  
  At 8:00 AM (or your preferred time), an automated trigger starts the workflow.  
  Adjust the timing based on your marketing schedule to optimize trend tracking.  

  2. Fetch Data from Pinterest API  
  Retrieve recent Pinterest Pin performance data, including impressions, clicks, saves, and engagement rate.  
  Ensure both Organic and Paid Ads data are labeled correctly for clarity.  

  3. Store Data in Airtable  
  Pins are logged and categorized in an Airtable database for further analysis.  

  Sample Airtable Template for Pinterest Pins  
  | Column Name    | Description                           |
  |---------------|---------------------------------------|
  | pin_id     | Unique identifier for each Pin      |
  | created_at | Timestamp of when the Pin was created |
  | title      | Title of the Pin                     |
  | description| Short description of the Pin        |
  | link       | URL linking to the Pin              |
  | type       | Type of Pin (e.g., organic, ad)     |

  4. AI Agent Analyzes Pinterest Trends  
  The AI model reviews the latest Pinterest data and identifies:  
  Trending Topics & Keywords**  
  Engagement Patterns**  
  Audience Interests & Behavior Changes**  
  Optimal Posting Times & Formats**  

  5. Generate Content Suggestions with AI  
  The AI Agent recommends new Pin ideas and content calendar updates to maximize engagement.  
  Suggestions include creative formats, hashtags, and timing adjustments for better performance.  

  6. Summary & Insights Generated by AI  
  A concise report is created, summarizing Pinterest trends and actionable insights for content strategy.  

  7. Email Report Sent to the Marketing Manager  
  The summary is emailed to the Marketing Manager to assist with content planning and execution.  
  The report includes:  
    Performance Overview of Recent Pins  
    Trending Content Ideas  
    Best Performing Pin Formats  
    AI-Generated Recommendations  

  This workflow enables marketing teams to automate Pinterest analysis and optimize their content strategy through AI-driven insights. 🚀  

nodes_used:
  ["@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.airtableTool","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.airtable","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.chainSummarization","n8n-nodes-base.gmail","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

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

metadata_json:
  {"categories":["automation","social media","analytics","AI"],"complexity":"medium","use_cases":["Weekly Pinterest performance reporting","Trend discovery and content ideation","Optimizing content calendar and posting times","Automated delivery of actionable marketing insights"],"estimated_setup_minutes":60,"required_services":["Pinterest API (Developer account with Organic & Paid data access)","Airtable (database + API key)","AI agent (OpenAI GPT or custom ML model)","SMTP email service (Gmail, Outlook, SendGrid, etc.)","n8n or another workflow automation platform (Zapier/Make optional)"],"key_features":["Scheduled data collection from Pinterest (organic + paid)","Stores Pins in Airtable with metadata","AI-powered trend analysis and keyword extraction","Generates content suggestions and posting recommendations","Creates concise summary reports with actionable insights and formats for email delivery"],"target_audience":["Content creators","Marketing teams","Social media managers/strategists (Pinterest-focused)"]}


name: Scrape Latest Github Trending Repositories
author_name: Teddy
author_username: teddysbeach
categories: []
created_at: 2025-02-08T03:25:14.572Z
updated_at: 2025-02-08T03:25:14.572Z
url: https://n8n.io/workflows/2866
scraped_at: 2025-09-14 19:11:01
metadata_generated_at: 2025-09-14 21:18:31
description:
  Scrape Latest 20 TechCrunch Articles

  Who is this for?
  This workflow is designed for developers, researchers, and data analysts who need to track the latest trending repositories on GitHub. It is useful for anyone who wants to stay updated on popular open-source projects without manually browsing GitHub’s trending page.

  What problem is this workflow solving?
  Manually checking GitHub’s trending repositories daily can be time-consuming and inefficient. This workflow automates the extraction of trending repositories, providing structured data including repository name, author, description, programming language, and direct repository links. 

  What this workflow does
  This workflow scrapes the trending repositories from GitHub’s trending page and extracts essential metadata such as repository names, languages, descriptions, and URLs. It processes the extracted data and structures it into an easy-to-use format.

  Setup
  Ensure you have n8n installed and configured.
  Import this workflow into your n8n instance.
  Run the workflow manually or schedule it to execute at regular intervals.
  (Optional) Customize the extracted data or integrate it with other systems.

  How to customize this workflow to your needs
  Modify the HTTP request node to target different GitHub trending categories (e.g., specific programming languages).
  Add further processing steps such as filtering repositories by stars, forks, or specific keywords.
  Integrate this workflow with Slack, email, or a database to store or notify about trending repositories.

  Workflow Steps
  Trigger execution manually using the "When clicking ‘Test workflow’" node.
  Send an HTTP request to fetch GitHub’s trending page using "Request to Github Trend".
  Extract the trending repositories box from the HTML response using "Extract Box".
  Extract all repository data including names, authors, descriptions, and languages using "Extract all repositories".
  Convert extracted data into a structured list for easier processing using "Turn to a list".
  Extract detailed repository information using "Extract repository data".
  Format and set variables to ensure clean and structured data output using "Set Result Variables".

  Note: Since GitHub’s trending page updates dynamically, ensure you run this workflow periodically to capture the latest trends.

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.html","n8n-nodes-base.httpRequest","n8n-nodes-base.splitOut","n8n-nodes-base.set","n8n-nodes-base.html","n8n-nodes-base.html"]

workflow_json_compressed:
  H4sIAAAAAAAAE6VX627bNhR+FYEokBYwHZKiKNLAfrTDriiaoXG7AUEwHJKHjlZZ8iQ6FxgG+hjb6/VJBslJbCfKpes/WTqX73wfD8/xihSeTMibP8LlkQrw4W1or8Sv78iIzDECmaxIUbURKoe/dHbMspClTGCuc85c4JbLLEfkGXBhvMbM69RLTJWy3ijPpXNp7kEpk6IygqxHpII5kgk5dg0sMJnWHq4O2uSnIp4tbTJtsPIJT5NpvUje46Jui1g3BbZkRCLMWjI5OR2RqvbYPa426FEYzR146pixVCpEaoW31FnGcjCZk8DJbeLfz7BKXFm4T0U1S758/meKbUwu6uZTKOuLL5//7VJdLTrTSle0z0UttDieQ7WEctoUsxk2ZER6dEVdkckJG7HTEVlAA3OM2LRkslpvwnzEpu1t+Hp0jdcY5pE5Q0MmGZXAGdXAgaoUWCaUlDKELd4fLmMDLiZv6ssHkZ3FebkPSMoBSKRedJ+v0dULbGBjTnCT5Oc4L7+vq4hVJKObl0VdfYRyiX2E8+unkxX5hFdkQmwPy7XtMZboYt2QCfHF+XgDt8G4bDbuZEJ6mOvT9T1qxuKWnDzkRmmHNDVpRqXWSI0Ohubee5Ezz6VlW3Le49/LTr5Y752gR4iKi2uffb6EGOJr2ZQ97LhoJ4eHsz7D2NXzw9hlKaoZGe1yercuuVOXzp3PA3DqtVFUGkipSVNFea5U6iATAmBb13TZVF1RkJRFD3W4nHZRFvFoeacWrZ/UPhRY+ml9fOM/Ic1usz18di16xT14yphSVGYeqXVB0NwEz2WKqWJuW8YxxuQ9tssyJh+hKcCWm04eLgbv1MHTQVH2CoG2LWbVHKvYf9v7eXM/AMNcKamoYj6nUoKiEPKcpmkQebBSZc5uMcMyntXNFmUbm43Q59en+LvVKnnxV1tX41vOrjZKvDw4PHh1wk7HsSnmL18l6zW5JQ6E9blhQHMtkUqfC2pAIjXCohDoEfRO08cilvgNGPggBiECz7gGmjPNqZQ8p2CNp1oHoSC3mQu4xbCN/JVA9nJaCMGACZQJBlQapam1mlGQYDgYyaXcOfddwz2SbKATh4hocFGCw9dl+fIgORgdHOzTEDInNTBBbZZ5KrnKKWiR0iwFx73OOGK2heQahIj+T4iP0/Ciqi/2yM5BSoeGSptZKqUV1EhvKNrMCkDNvfPbLB5b1xT9yX4W2zv2fW2n6xEpKlcuPR7FM2x+7Bq87VzuNXM6lrcgfW5Tg8bQVPtAJRMZNRA8BcWEk9Yz7gZG0Y7UHiJ8xVjinH37XOpy/tZ0ZvHq3Z2zulkVnjW59s73/gCD8dui+tRrubEtoZotYYb3LNsFVGNPi6osKqS2rN2u276q+56LpyZhqgXmkFoaVBaohNxQUCZQobkOzITM706MG22gLJM7bDxXHKUe14Z0V8oNobFZ4oi4EqH6sJjiZdy8+p/6bbaIr5NtU9wd4ZpYuBK77YM29cXtBvK6aeDqBvTzl5LTEenwnCOZBChbHJEWYyyqWQ8NL9EtO7RHjccu+znvmu18E6FfmNMUPEjHqFXgqQSvqEXUNONWpcww7ZjsiqirCt0tz7sr32RF5lB08pys+sX3WVr3Lt2N4PGSTNj6tLsf7iwVj0V+sMMHAz/kNZTh8ZVgMPxDS95jBexty4+CvkfiUNiH9rHByE//wxhK8eQqO5Brvf4P3VI0a8ENAAA=

metadata_json:
  {"categories":["automation","data processing","web scraping"],"complexity":"medium","use_cases":["Track latest trending GitHub repositories","Research/popular open-source projects","Generate weekly reports or newsletters about trending projects","Feed trending repo data into Slack/email or databases for alerts","Filter and analyze repos by language, stars, or keywords"],"estimated_setup_minutes":15,"required_services":["GitHub Trending (public web page)","n8n instance"],"key_features":["Scrapes GitHub Trending page for latest repositories","Extracts structured metadata (repository name, author, description, language, URL)","Converts HTML extracts into a usable list","Can be scheduled to run periodically","Easily integratable with Slack, email, or databases for notifications/storage"],"target_audience":["Developers","Researchers","Data analysts / data scientists who monitor open-source trends\",\"Community managers and product managers"]}


name: Credit Card Payment Reminder & Tracking-For Taiwan Banks
author_name: darrell_tw
author_username: darrelltw
categories: []
created_at: 2025-02-08T08:38:52.038Z
updated_at: 2025-02-08T08:38:52.038Z
url: https://n8n.io/workflows/2867
scraped_at: 2025-09-14 19:11:03
metadata_generated_at: 2025-09-14 21:18:32
description:
  Workflow Description
  This workflow automates the processing of credit card statement emails from multiple banks. It extracts important payment details, stores them in Google Sheets, and creates calendar reminders in Google Calendar. Additionally, it allows users to update the payment status once the bill has been paid.

  Key Features
  Email Processing: Retrieves credit card statement emails from eight Taiwanese banks.
  PDF Parsing: Extracts payment due date and amount from email content or attached PDF files.
  Google Sheets Integration: Logs extracted data into a Google Sheets document for record-keeping.
  Google Calendar Integration: Creates Google Calendar events as reminders for due payments.
  Webhook for Payment Updates: Allows users to update the payment status via a webhook.

  Node Configurations

  1. Email Retrieval
  Purpose**: Fetches credit card statement emails from Gmail.
  Configuration**:
    Email Filters:
      SinoPac Bank: from:(newebill.banksinopac.com.tw) SinoPac Bank Credit Card E-Statement Notification
      Cathay United Bank: from:(service@pxbillrc01.cathaybk.com.tw) Cathay United Bank Monthly E-Statement
      CTBC Bank: from:(ebill@estats.ctbcbank.com) CTBC Bank Credit Card E-Statement
      Taipei Fubon Bank: from:(rs@cf.taipeifubon.com.tw) Taipei Fubon Bank Credit Card Statement
      E.SUN Commercial Bank: from:(estatement@esunbank.com) E.SUN Commercial Bank Credit Card E-Statement
      DBS Bank: from:(eservicetw@dbs.com) DBS Bank Credit Card E-Statement
      Union Bank of Taiwan: from:(聯邦銀行信用卡) Union Bank of Taiwan Credit Card E-Statement (Year Month)
      Taishin International Bank: from:(webmaster@bhurecv.taishinbank.com.tw) Taishin International Bank Credit Card E-Statement

  2. Extract Payment Information
  Purpose**: Extracts payment due date, total amount, and minimum payment amount.
  Methods**:
    Text-based Extraction: Uses regex to parse email body.
    PDF Parsing: Extracts text from PDF attachments.

  3. Data Processing and Storage
  3.1. Consolidate Extracted Data
  Purpose**: Standardizes extracted payment details.
  Data Fields**:
    payment_due_date
    payment_amount
    minimum_payment
    email_id
    bank
    email_subject

  3.2. Google Sheets Integration
  Purpose**: Stores the extracted data in a structured format.
  Configuration**:
    Sheet Name: n8n-Credit Card Payment Reminder
    Columns:
      calendar_id
      Paid
      Billing Period
      Amount
      Minimum Payment
      Bank
      email_id

  4. Google Calendar Integration
  4.1. Create Calendar Reminders
  Purpose**: Generates reminders for upcoming payments.
  Configuration**:
    Event Title: Credit Card Payment - {{ bank }}
    Due Date: payment_due_date
    Reminders:
      30 minutes before
      60 minutes before
      1 day before

  4.2. Update Payment Status
  Purpose**: Updates the calendar event once payment is made.
  Configuration**:
    Webhook URL: Automatically updates the Google Calendar event title and description.

  5. Webhook for Payment Updates
  Purpose: Users can mark a payment as **paid via a webhook.
  Configuration**:
    Webhook Path: darrell_demo_creditcard_pay_update_path
    Updates:
      Marks the payment as Paid
      Updates Google Calendar and Google Sheets

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.googleSheets","n8n-nodes-base.webhook","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.gmailTrigger","n8n-nodes-base.extractFromFile","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.googleCalendar","n8n-nodes-base.googleCalendar","n8n-nodes-base.set","n8n-nodes-base.gmailTrigger","n8n-nodes-base.set","n8n-nodes-base.gmailTrigger","n8n-nodes-base.gmailTrigger","n8n-nodes-base.extractFromFile","n8n-nodes-base.set","n8n-nodes-base.gmailTrigger","n8n-nodes-base.extractFromFile","n8n-nodes-base.set","n8n-nodes-base.gmailTrigger","n8n-nodes-base.extractFromFile","n8n-nodes-base.set","n8n-nodes-base.gmailTrigger","n8n-nodes-base.extractFromFile","n8n-nodes-base.set","n8n-nodes-base.gmailTrigger","n8n-nodes-base.extractFromFile","n8n-nodes-base.set","n8n-nodes-base.googleCalendar","n8n-nodes-base.googleCalendar","n8n-nodes-base.googleSheets"]

workflow_json_compressed:
  H4sIAAAAAAAAE6Wa224bORKGX0Xom7lRGTwUD6W7TDIJgl3MDJBkFtggGBTJoi3ElrxSO5nE8LsvWk6sttyyW/JtQvz6WD9ZB7avm3lpZs3q9CpzKv/+618s39+wb6bNhbTczK6b+WLd8iLL225dLSVZIU0+VK20yeRKUSZVx8XoagLVjBi0qxg4MHm2Fq31Rmdm42xzM21aPl03s4/Xt7/8dl6/fX+BF3H1v7d1cXnWTJsFX0gzay6v0vk8/93KxeU5t9JMm7wSbqW8aJtZY5RxoAyo+F6FmTYz40+iDf9tps3VZXl62c2nabNYFumh+Gg4izegOVdAawIkgwKuoLLRcAlObfH+cyaLST6f58/zxenkl/eybidfl6vP9Xz59Zdm2rTfLrtli7iAze9A4rWcXPDiis/fr+anp7Jqps3lcj1v58tFM/sIFNXURvVp2lzyii+kldW6mV3f3Gr9Jav1ZqG+mf4Ezjb5rBSw4gwYsAIZ1lBzEfbeaV/CFvjNcnl6LpN3ZyLtei/g6WbV3aIeX4xqap7GwxN3B4hJCQcsUJIjQOstRJ0shChSCU2OqHsRlXS2XH7ei/b17v/7UTNKTfUt148Fm5NqnfZMhoENMqCRBEm0Am10ijlQiNid8ke3YraRRuNIeQcqegYUlyGS9aDJVuszpqBlu5F37Tx//jb5fbk5tcObWW/W/Fhybz9RTcGaA44BsyRr2IGLTgFWRKDoCSorKWSs9dEOwunj6LQ+5JDGUp2vlKF4owFRMSRMDlDb6kqJSnEdpDOH0wWlpt2BGE/nVCkJmUBIOcDsEGJkC1pFVVEpy1IG6fBwOj/uAm3hSLJLTBp8QAfIKBC9CoAUQy0mZ6fSIJw7Dg7xADhRHDMHBbqKdL5qSMoySCmOqIipQoNw/jg4f4itiXwmFwzYEBSgDQnIoIbouHDJxlWPg3DhOLhwiK2GMnP2Hih7AazVQ3fYwGYTU0RdvB9OJvE4ODrEVuWU8SIRQiLq4ApQLQy5cgwpGPK2l0zeXPD8HN69/f2PP1+83F9TulXbmrdYtl3ZbX7r/nmSlxddAa2r5cVkPV8sLzlP8krKvM28KhPpFu1sSncp0gymyI3228Xr8+XXZtaurmR3oyfbpJ4qZZ1EoMSqAIUyJG0riEk2h5rEmr4Pt5v8+89Xr/duVP5pV5zb16vlxev5+Y4XuBd6X3nXQXPGDEoHA6iihmQzQgq6OMylBBMf8q2lndS5nJf9h0Xa+2RmJJo9wW1p18ZQFy2stf64/s4UsOKq1OhjYt7C/bE65cX8u0xeccvjwXBcxuxzGZ8QU9TgLBVAbRLEkhwoRexNCLGmnqkvNx3l5Edr9JLPZVF4NfntiyzaJ1qkn4vvE4/N8Sf2jjhUlSxHB7V2NncxZVUNoJXiXTG2+Lwl/rBpbh8QwySf8eJUJuuW26un2rthdq3VwfDJxlCN8RBDTIChCsSiCsQk5FWwVace/Etuz/jb0UfUH3QSdAo2sGLA0PVs2jpIZAS08kZbG5FK3c1kL9//OjqN7WYkPeJu97KPtc7FyhWSjR4wOgsRowHR1bI3IqX0insHNjk2cCPI7l2hkhWlkkEH6wGNIuBSE5iUk43Itvbbjh+B2zh7bOhGONsPXfQSqyoCHA0DlhKAPBZw4iXlmCimB4Cvr9JycSzfqEtheq1RtiEFAasNArrsgCQxCNssbGsR1RskN2TPKiuHNZUUQzISwHQjAxaPEIM1YGJgp0oKmXAX7shzd2DqdqhTciqBK7oAJuUgacdgizIWCbm6vGvrbyfvPvx+rK1j+t2+rUUyB+3AYIiATmkgcgoMOSyOSpbYKy0bsmfZelA7XnMJVL0HH0sE9M4CmWqAjcQomIVs2oU70tYRXH1bRVcKSlkgNAYwiwVGmwGNt1k5k1jTrq2vfn13rKlj5oSeqQ41Wm0TFEIPmA1BYhsgG/E2Ss6l9q7Dq1/fPcvSg4YYMsq6RAW0dwLoo4XoqgZlTbU1eVFmB+1IQ0dQ3asPTvuu6EPeTH7eC3AlAnIUhWIpzsZdQz8s5sen3zHTVc/SHMhSMBV80gGwSAAiSVB0qFYoRZt7B25D9ixTDxr+iLsXqGDB69o1TMVD1B6BckxYoyvlIdydrfv7ukFfR4D1fbXOJe1Fg1CqgIYTJBMjICZbxSmp6YGv73m+Ppsf7eyY0bTfM1EirWwC67mbiDBD1LEAenaJKgtJL8n9YHuWtwfNzsWjWB0jFM8J0CUFVKmAUDaFiIKK9SHese6OQOu7W1TF6F0GFQoBGtJASXvI1lEhR1Zyryl5I+3wVDRJ3ybz/fnl0dno7qF29HjhfOBoUQMqioC2KGDd9aOCxWSXfanpydlINtzrlo+ci8wR4ETig+3KCnb0XTaKqlhQFrMt3kVhtw/89vF9csnfxk1zQ4/1GMcxd6/1n6YN53b+RZpZ5fO1TJu1tO180X2muW7kH8lXneofqyKrZtZ80d1XnC+3Cm9vv0OgzoYMWF26mTtXiJk9UPFZJGmfXDf05+ViIbmT2gj/rKWz6+aC5x30x+vNJ5n9xWyzbtrMF0X+aWbq5tOnm+ndZ4MhndHHeFB528INae/toQa1tl3+kNbeNntQa9sj7YvdvZQ3qLEte0Ma++vOI0Cb4XlIbe/w+ojYbWO/P+5P77A/9+2P+Vid2wZmf6ye1uk/IA7pPPKAN6jXL29Deo/Vl8dcvJ3kB33c+3wzqHf/Eg8J7nkWfITu51PzYwEca+nP3uWx4I3QuvdZdfCAHPhkN/gz90M16M6ot8xB8d0L+lyvdlPjc/V20+Nz9R4c5OcKPsiXzxV8mAyeqziQDp4dxsdO3GA5Hv4ThOF79UTpPuCmDTaAwz4+LfD07z7Svw386M3N/wFXVwlkhCMAAA==

metadata_json:
  {"categories":["automation","integration","finance","productivity"],"complexity":"medium","use_cases":["Automated credit card bill extraction and tracking","Payment due reminders via Google Calendar","Centralized logging of card statements in Google Sheets","Marking bills as paid via webhook for reconciliation","Personal finance and household expense management"],"estimated_setup_minutes":60,"required_services":["Gmail (or IMAP-compatible email account) - to retrieve statement emails","Google Sheets API / Google Sheets account","Google Calendar API / Google Calendar account","n8n webhook (publicly reachable endpoint) for payment updates","PDF/text extraction capability (provided by n8n extractFromFile node)"],"key_features":["Multi-bank email filters for eight Taiwanese banks","Text and PDF parsing to extract due date, total and minimum amounts","Writes structured records to a Google Sheet","Creates Google Calendar events with multiple reminders","Webhook endpoint to mark payments as paid and update Sheet/Calendar"],"target_audience":["Individuals managing multiple credit cards","Households tracking household expenses and due dates","Small business owners who handle multiple card statements manually"]}


name: Backup your workflows to GitHub -- in (subfolders)
author_name: Nazmy
author_username: islamnazmi
categories: []
created_at: 2025-02-08T21:34:44.233Z
updated_at: 2025-02-08T21:34:44.233Z
url: https://n8n.io/workflows/2868
scraped_at: 2025-09-14 19:11:02
metadata_generated_at: 2025-09-14 21:18:31
description:
  Based on Jonathan & Solomon work.

  &gt; The only addition I've made is a Set node. This node organizes workflows into subfolders within the GitHub repository based on their respective tags.

  How it works
  This workflow will backup your workflows to GitHub. It uses the n8n API node to export all workflows.

  It then loops over the data, checks in GitHub to see if a file exists that uses the credential's ID. Once checked it will:
  update the file on GitHub if it exists;
  create a new file if it doesn't exist;
  ignore if it's the same.

  Who is this for?
  People wanting to backup their workflows outside the server for safety purposes or to migrate to another server.

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.n8n","n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.if","n8n-nodes-base.merge","n8n-nodes-base.code","n8n-nodes-base.switch","n8n-nodes-base.noOp","n8n-nodes-base.noOp","n8n-nodes-base.noOp","n8n-nodes-base.github","n8n-nodes-base.github","n8n-nodes-base.splitInBatches","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.github","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.executeWorkflowTrigger","n8n-nodes-base.executeWorkflow","n8n-nodes-base.set","n8n-nodes-base.switch"]

workflow_json_compressed:
  [encoded data, 4896 characters]

metadata_json:
  {"categories":["backup","integration","devops","automation"],"complexity":"medium","use_cases":["Backup n8n workflows to a remote GitHub repository","Migrate workflows between n8n instances or servers","Organize exported workflows into repository subfolders based on tags","Maintain a safe external copy for disaster recovery or auditing"],"estimated_setup_minutes":15,"required_services":["n8n (API access)","GitHub (repository + personal access token / credentials)"],"key_features":["Exports all workflows via the n8n API","Organizes exported workflows into subfolders using workflow tags","Checks GitHub for existing files by credential ID and updates, creates, or ignores accordingly","Idempotent behavior (skips unchanged files)","Automated loop over workflows to handle many items"],"target_audience":["n8n administrators","DevOps engineers","developers maintaining n8n automations"]}


name: Test Webhooks in n8n Without Changing WEBHOOK_URL (PostBin & BambooHR Example)
author_name: Ludwig
author_username: ludwig
categories: []
created_at: 2025-02-08T22:05:00.438Z
updated_at: 2025-02-08T22:05:00.438Z
url: https://n8n.io/workflows/2869
scraped_at: 2025-09-14 19:11:03
metadata_generated_at: 2025-09-14 21:18:32
description:
  Using PostBin to Test Webhooks Without Changing WEBHOOK_URL  

  How it Works  
  Many new n8n users struggle with testing webhooks when running n8n on localhost, as external services cannot reach localhost. This workflow introduces a technique using PostBin, which provides a temporary, publicly accessible URL to receive webhook requests.  

  Generates a temporary webhook endpoint via PostBin.  
  Uses this endpoint in place of localhost to test webhooks.  
  Captures and displays the incoming webhook request data.  
  Enables debugging and iterating without modifying the WEBHOOK_URL environment variable.  

  Set Up Steps  
  Estimated time:** ~5–10 minutes  
  Create a PostBin instance to generate a publicly accessible webhook URL.  
  Copy the PostBin URL and use it as the webhook destination in n8n.  
  Trigger the webhook from an external service or manually.  
  Inspect the request payload in PostBin to verify data reception.  

  (EXAMPLE) Using PostBin for Webhook Testing in a BambooHR Integration  

  How it Works  
  In this example, we apply the PostBin technique to a BambooHR integration. Instead of manually configuring a webhook in BambooHR, this workflow automates webhook registration using the BambooHR API. The workflow:  

  Uses the BambooHR API to programmatically register the PostBin URL as a webhook.  
  Retrieves the most recent webhook calls made by BambooHR to the PostBin URL.  
  (Optional) Sends a personalized Slack message for new employees using OpenAI.  

  Set Up Steps  
  Estimated time:** ~15–20 minutes  
  Set up PostBin using the steps from the first section.  
  Log into BambooHR to generate an API key for authentication.  
  Run the workflow to register the PostBin URL as a webhook in BambooHR via the API.
  Retrieve recent webhook calls from PostBin to validate data reception.  
  (Optional) Send a Slack notification using the processed data.

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.merge","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.postBin","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.postBin","n8n-nodes-base.postBin","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.postBin","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.splitOut","n8n-nodes-base.aggregate","n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.debugHelper","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.filter","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.noOp","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.bambooHr","n8n-nodes-base.splitOut","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.outputParserAutofixing","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.outputParserStructured","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.aggregate","n8n-nodes-base.renameKeys","n8n-nodes-base.slack","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.postBin","n8n-nodes-base.wait","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 10892 characters]

metadata_json:
  {"categories":["automation","integration","testing","developer tools"],"complexity":"complex","use_cases":["Test webhooks from external services while running n8n locally","Debug and inspect incoming webhook payloads","Programmatically register webhooks in BambooHR","Validate webhook delivery using PostBin","Notify teams (Slack) about webhook events with optional OpenAI-generated messages"],"estimated_setup_minutes":15,"required_services":["PostBin (public temporary webhook endpoint)","BambooHR API (API key)","n8n instance","Slack (optional, for notifications)","OpenAI (optional, for message generation)"],"key_features":["Generates a temporary public webhook endpoint via PostBin","Uses PostBin URL instead of changing n8n WEBHOOK_URL","Captures and displays incoming webhook request data","Automates webhook registration in BambooHR via API","Retrieves recent webhook calls from PostBin for validation','Optional Slack notifications using OpenAI to craft messages"],"target_audience":["n8n users","Developers and integration engineers","QA/testers validating webhook flows locally or in staging environments','HR automation builders integrating BambooHR"]}


name: Ask AI about your Meta Ads - ask questions about your Facebook Ads insights
author_name: Solomon
author_username: solomon
categories: []
created_at: 2025-02-09T18:42:21.046Z
updated_at: 2025-02-09T18:42:21.046Z
url: https://n8n.io/workflows/2870
scraped_at: 2025-09-14 19:11:03
metadata_generated_at: 2025-09-14 21:18:32
description:
  Chat with an AI and ask questions about your Meta Ads metrics.

  Get key metrics like impressions, spend, reach, conversions, CTR, CPC… you name it.

  Who is this template for?

  Marketing professionals who want an AI assistant to analyze their Meta Ads data.

  You can also replace the Telegram node with another chat app, like WhatsApp, Slack, or Discord.

  Which languages are supported?

  Any of the 85+ languages supported by OpenAI.

  How to set up

  Instructions are included within the workflow itself.

  Check out my other templates
  👉 https://n8n.io/creators/solomon/

nodes_used:
  ["@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.chatTrigger","@n8n/n8n-nodes-langchain.toolCalculator","@n8n/n8n-nodes-langchain.toolHttpRequest","n8n-nodes-base.telegramTrigger","n8n-nodes-base.filter","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.memoryBufferWindow","n8n-nodes-base.telegram","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.memoryManager","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.memoryBufferWindow","@n8n/n8n-nodes-langchain.toolWorkflow","n8n-nodes-base.executeWorkflowTrigger"]

workflow_json_compressed:
  H4sIAAAAAAAAE62YTW8bRwyG/4qwZzGdD86XTnXdFvUhLdAEzSEIipkhaQuRVq60bhoY/u/Fyo61lta2XPcqcLgPOS/fmdF1s+QuN7PrZt5uutxWPqNm1pAvThmSjJSIVDCVqqumlOCtc9F7rZwV77SJySRtnckRUVlWuljSpZk2HS8vF7nj0zXT5h13V5enq+XlgjumZtatr/hm2rQr4k0z+3jdzPuvOlSaxBgoVSfAYASKVAe+RGWjFyqWmmnT5iU3s+bkbHJyzm3Xf+vrZf/L921sv2tjC9u8sMjteb3I8/ZNvou7XG3m3XzVNrOP6NUUtFefps1lXucld7zeNLPrm9tsf/B6sw3Ub8LN9I6Pq69iJYH1lACr9lCqqaBdpRq0y9qZHd9vl9yenE1OL3I3ebsiXhwBulj24duV84e8JqqpNkfgmntclaOt2muwWC1gLRoymwiCFKJ3PgfUO9wPF9xOag+75M0mn/NkzZXnfzMdwd2ve7+en5/z+iE2WFRT2HJ/4XKxWn3e6gtZJDoVATMLoI8KYkgOPHnyQr46m5tnS9X3pVafrbNeQYxMgN4j5OwslJpSKiTVR96VepoX9WqRu9X6iNK61WrxYMGguuCP25R7TqMjZuEAhrQASimQknJAwXsfay5U647zLXd5ckKbyVm7mZ9fdJsjcX/pusvf+a8r3uyJ3qsjRbQjJi49cIScQwDkqiEGV0GQQ8UYdCpqR/yeF3y+zsvJTgx3wDvWkjf8prsLfEI0FvdVw1YZ0+9trdYCcvaQYlWgCwkFKypEeYlqLCntfCQQFRUgBgcFpYJyMVN0trC2u9p+ni86Xk/K19spOfvx0eJkG7lXkzb3NT0JaAYTHJTOyikP7HUFJDGQiCMk8tVaV2vEgSG+6+b189fJr6uOH0XbbGPuQoZ4RqkpOHWA19RV2/XuOWuax3WdqnGxmgIKEwO6oiCSY2CfSPsiQfLAGd9xN9nwpk9yRo+j8p56NR5n2fYN7iw7OFQuarBBHGDOGrLDBDYqVYL3IXs72kH94hbG1zQQbaqiqwdLpQBSSZAkRdAiubKREszAGE5vbXq5Wn89whJuA3+4EuH1h3lLqy97RyEe6Qr2HldYKadzAY1VAwbnIdZcIUoqFG0uSspwv1v6dqo86wh7TY33e/7ACQixiAQIZBOgMQGiMwhOtIgo74jD806wGzRvnXc+esg1BkCKFkpfmRhNWnunkNSoTMzLJ00r/xqliDISAitgYwpgEgXRWA/CMakkydahUgao9sWooW8+HlrWcaBKGe9LFECTNCB6ghLIgzPOFnKsddajoPhiUOfV1Bwaw5ENDRwFFYMiroBSCZKoCk7bipxMtNrsjd7b7URN3uY2PzjknhnBXfzQ1Vw/fvFFh7IzwWpiDVRdf1HmAMUqhiTV1hjF5GJGW+te3Frsz4X/3NsajA0heEDpxapKhVikgiaPOlpRMeAoqH8xqO4P2EMXO44z10ARjQcrSgDZeigcFYhDViawYuRRDfwP9qt79dpjXiJ2wKuVMDLYaHq/KgGiV/39vjpUmYstacC74NweD9xfIT+s1p9lcYCq+0E7dK6DO8zuwktGFSYGJF0AsQaIhRNoCTpUEquF9t4gP/3D9apj6m9aJ+2qu+D1ZIAzrgq+XfQtbvRaqe3xk/Zp2gun5dqv3ero/rk5u26Wed4n/Hi9fcE+esJtw6bNvCX+p5mpm0+fbqbDx8fsusnzP/t2P0h2+LD9FnWQayDE22R3l4Jhuicda7dkNPfymdyjqI8lHKrw1aU/vEOO7clhrtH9OHiyjOV64u4/mvQwflw1o/fg0YyHb8FXt/DwD4rblL0TXOVzvvvtudwPw/c/8sTfCq9tyfNuMfaFJ8dh5Ds3N/8CeIMakyQTAAA=

metadata_json:
  {"categories":["automation","integration","data processing","analytics"],"complexity":"medium","use_cases":["Conversational analysis of Meta/Facebook Ads performance","Quick ad performance reporting (impressions, spend, reach, CTR, CPC, conversions)","Ad performance monitoring and troubleshooting","Generating insights and recommendations from ad metrics","Delivering reports via chat platforms (Telegram, Slack, WhatsApp, Discord)"],"estimated_setup_minutes":30,"required_services":["OpenAI (Chat API)","Meta / Facebook Marketing API (Ads Insights)","n8n instance","Chat platform (Telegram, Slack, WhatsApp, Discord) - optional replacement"],"key_features":["Chat-based AI assistant for querying ad metrics","Retrieves common ad metrics (impressions, spend, reach, conversions, CTR, CPC)","Supports 85+ languages via OpenAI","Replaceable chat output node (Telegram → Slack/WhatsApp/Discord)","Uses memory buffer and agent nodes to maintain context and perform calculations (calculator, HTTP requests)"],"target_audience":["Marketing professionals","Advertisers and media buyers","Growth teams and performance marketers」「n8n users and automation builders"]}


name: RAG:Context-Aware Chunking | Google Drive to Pinecone via OpenRouter & Gemini
author_name: Udit Rawat
author_username: ailistmaster
categories: []
created_at: 2025-02-09T19:03:21.513Z
updated_at: 2025-02-09T19:03:21.513Z
url: https://n8n.io/workflows/2871
scraped_at: 2025-09-14 19:11:01
metadata_generated_at: 2025-09-14 21:18:31
description:
  Workflow based on the following article.
  https://www.anthropic.com/news/contextual-retrieval

  This n8n automation is designed to extract, process, and store content from documents into a Pinecone vector store using context-based chunking. The workflow enhances retrieval accuracy in RAG (Retrieval-Augmented Generation) setups by ensuring each chunk retains meaningful context.

  Workflow Breakdown:
  🔹 Google Drive - Retrieve Document:
  The automation starts by fetching a source document from Google Drive. This document contains structured content, with predefined boundary markers for easy segmentation.

  🔹 Extract Text Content - Once retrieved, the document’s text is extracted for processing. Special section boundary markers are used to divide the text into logical sections.

  🔹 Code Node - Create Context-Based Chunks:
  A custom code node processes the extracted text, identifying section boundaries and splitting the document into meaningful chunks. Each chunk is structured to retain its context within the entire document.

  🔹 Loop Node - Process Each Chunk:
  The workflow loops through each chunk, ensuring they are processed individually while maintaining a connection to the overall document context.

  🔹 Agent Node - Generate Context for Each Chunk:
  We use an Agent node powered by OpenAI’s GPT-4.0-mini via OpenRouter to generate contextual metadata for each chunk, ensuring better retrieval accuracy.

  🔹 Prepend Context to Chunks & Create Embeddings - The generated context is prepended to the original chunk, creating context-rich embeddings that improve searchability.

  🔹 Google Gemini - Text Embeddings:
  The processed text is passed through Google Gemini text-embedding-004, which converts the text into semantic vector representations.

  🔹 Pinecone Vector Store - Store Embeddings:
  The final embeddings, along with the enriched chunk content and metadata, are stored in Pinecone, making them easily retrievable for RAG-based AI applications.

  Use Case:
  This automation enhances RAG retrieval by ensuring each chunk is contextually aware of the entire document, leading to more accurate AI responses. It’s perfect for applications that require semantic search, AI-powered knowledge management, or intelligent document retrieval.

  By implementing context-based chunking, this workflow ensures that LLMs retrieve the most relevant data, improving response quality and accuracy in AI-driven applications.

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.splitInBatches","@n8n/n8n-nodes-langchain.lmChatOpenRouter","@n8n/n8n-nodes-langchain.vectorStorePinecone","@n8n/n8n-nodes-langchain.embeddingsGoogleGemini","@n8n/n8n-nodes-langchain.documentDefaultDataLoader","@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter","n8n-nodes-base.googleDrive","n8n-nodes-base.extractFromFile","n8n-nodes-base.code","n8n-nodes-base.splitOut","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

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

metadata_json:
  {"categories":["automation","integration","data processing","ML/NLP","knowledge management"],"complexity":"complex","use_cases":["Semantic search / vector search indexing","Retrieval-Augmented Generation (RAG) for QA","AI-powered knowledge management and document retrieval","Document ingestion and indexing pipeline","Improving LLM retrieval accuracy with context-aware chunks"],"estimated_setup_minutes":60,"required_services":["Google Drive (Google API / Workspace)","OpenRouter (routes to GPT-4.0-mini / OpenAI)","Google Gemini text-embedding-004 (Vertex AI / Gemini embeddings API)","Pinecone vector database","n8n runtime/environment"],"key_features":["Context-aware chunking that preserves section boundaries","Custom code node to create meaningful, document-level chunks","Agent (LLM) generation of contextual metadata per chunk","Prepending generated context to chunks before embedding","Google Gemini embeddings for semantic vectors"],"target_audience":["Developers","ML / AI Engineers","Data Engineers / ETL engineers implementing ingestion pipelines`,`Knowledge managers and product managers looking to enable semantic search"]}


name: 🤖🧠 AI Agent Chatbot + LONG TERM Memory + Note Storage + Telegram
author_name: Joseph LePage
author_username: joe
categories: []
created_at: 2025-02-09T19:29:31.836Z
updated_at: 2025-02-09T19:29:31.836Z
url: https://n8n.io/workflows/2872
scraped_at: 2025-09-14 19:10:59
metadata_generated_at: 2025-09-14 19:51:23
description:
  This workflow template creates an AI agent chatbot with long-term memory and note storage using Google Docs and Telegram integration.

  Google Docs Integration 📄
  n8n Google Docs Node Setup
  Google Credentials

  Telegram Integration 💬
  Telegram Setup

  Core Features 🌟

  AI Agent Integration 🤖
  Implements a sophisticated AI agent with memory management capabilities
  Uses GPT-4o-mini and DeepSeek models for intelligent conversation handling
  Maintains context awareness through session management

  Memory System 🧠
  Long-term memory storage using Google Docs
  Separate note storage system for specific information
  Window buffer memory for maintaining conversation context
  Intelligent memory retrieval and storage mechanisms

  Communication Interface 💬
  Telegram integration for message handling
  Real-time message processing and response generation

  Technical Components 🔧

  Memory Architecture 📚
  Dual storage system separating memories from notes
  Automated memory retrieval before each interaction
  Structured memory saving with timestamps

  AI Models 🤖
  Primary GPT-4o-mini mini model for general interactions
  DeepSeek-V3 Chat for specialized processing
  Custom agent system with tool integration

  Storage Integration 💾
  Google Docs integration for persistent storage
  Separate document management for memories and notes
  Automated document updates and retrievals

nodes_used:
  ["@n8n/n8n-nodes-langchain.chatTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.memoryBufferWindow","n8n-nodes-base.googleDocsTool","n8n-nodes-base.googleDocs","n8n-nodes-base.stickyNote","n8n-nodes-base.telegram","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.stickyNote","n8n-nodes-base.googleDocsTool","n8n-nodes-base.stickyNote","n8n-nodes-base.googleDocs","n8n-nodes-base.aggregate","n8n-nodes-base.merge"]

workflow_json_compressed:
  [encoded data, 5432 characters]

metadata_json:
  {"categories":["automation","chatbot","integration","knowledge management"],"complexity":"complex","use_cases":["Telegram AI chatbot with long-term conversational memory","Persistent note-taking and knowledge capture","Context-aware customer/community support via messaging","Automated memory retrieval for smarter agent responses"],"estimated_setup_minutes":45,"required_services":["n8n instance","Google Docs / Google Drive API (Google credentials)","Telegram Bot API / Telegram account","OpenAI or provider supporting GPT-4o-mini","DeepSeek API (DeepSeek-V3 Chat)"],"key_features":["Long-term memory stored in Google Docs","Separate note storage documents","Window buffer memory for short-term context","Automated memory retrieval before each interaction","Session/context management for conversations and agents','Dual storage architecture (memories vs notes)"],"target_audience":["developers","automation engineers","product managers building conversational agents」「community managers / support teams"]}


name: Author and Publish Blog Posts From Google Sheets
author_name: Daniel Nolde
author_username: dnolde
categories: []
created_at: 2025-02-10T12:01:15.051Z
updated_at: 2025-02-10T12:01:15.051Z
url: https://n8n.io/workflows/2873
scraped_at: 2025-09-14 19:11:01
metadata_generated_at: 2025-09-14 21:18:31
description:
  What it is:

  An automation to plan→draft→finalize and publish your textual blog post ideas to your wordpress blog
  Works in stages and hand back control to you in between those
  You can use a Google Spreadsheet for planning topics and configuring LLM models and prompts

  What it does:

  plans→drafts→finalizes blog post topics you specify in a Google Spreadsheet using an LLM with prompts that also ar configured in that spreadsheet (even which model to use)
  savs the results in the corresponding 
  columns of the "Schedule" sheet in the spreadsheet
  hands control back to the user for inspecting or changing the results and for setting the next "Action" for th workflow
  Finally publishes the blog post to your Wordpress instance

  Limitations
  Probably slightly over-engineered ;-)
  No media generation yet
  some LLM models don't work because of their output format

  How it works:

  The Workflow is triggered manually or scheduled every hour
  It ingests a Google Spreadsheet to get
    Config for prompts/context tc
    Blog-Topics and their status and next action
  Depending on each blog topics "Status" and "Action" it then either uses an LLM for th next action ("plan"→"draft"→"final" actions) or publishes the written content to your Wordpress instance ("publish" actions)

  Set up steps:

  Import the workflow
  Make your own copy of the Google Spreadsheet
  Update the credentials using your individual credentials for:
    Google Spreadsheets
    OpenRouter
  Edit the "Settings" node and enter your individual values for
    Your spreadsheet copy URL
    Your wordpress blog URL
    Your wordpress blog username
    Your wordpress blog app password (a 4x4 alphanumeric sequence), that you probably have to create first, for which your wordpress user has to have 2-factor-authentication enabled.
  In your own copy of the spreadsheet:
    individualize the "Config" sheet's "Value" column for the prompts/context/etc
    Populate the "Schedule" sheet with at least one line in which you specify
      a "Topic"
      a "Schedulded" date (YYYY-MM-DD HH:mm:ss)
      a "Status" of "idea"
      an "Action" of "plan" (to kick off that action)

nodes_used:
  ["n8n-nodes-base.set","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.manualTrigger","n8n-nodes-base.googleSheets","n8n-nodes-base.code","n8n-nodes-base.googleSheets","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.if","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.googleSheets","n8n-nodes-base.if","n8n-nodes-base.if","n8n-nodes-base.if","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.httpRequest","n8n-nodes-base.googleSheets","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.if","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.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, 10692 characters]

metadata_json:
  {"categories":["automation","content publishing","integration","AI/LLM","CMS"],"complexity":"complex","use_cases":["Plan, draft and finalize blog posts using LLMs","Human-in-the-loop content workflow controlled from a Google Sheet","Scheduled or manual publishing to a WordPress blog","Use per-topic prompts and model selection stored in a spreadsheet","Save and track content status and results in Google Sheets"],"estimated_setup_minutes":45,"required_services":["Google Sheets (Google account)","LLM provider (OpenRouter / OpenAI or compatible model)","WordPress (site URL, username, app password)"],"key_features":["Spreadsheet-driven prompts, model selection and topic schedule","Stage-based pipeline: plan → draft → final → publish","Writes results back to corresponding Google Sheet columns","Hands control back to user between stages for inspection/edits","Scheduled or manual trigger options for the workflow"],"target_audience":["Bloggers and content creators","Marketing teams and content managers","Developers/automation engineers setting up content pipelines\",\"Agencies managing multiple blogs"]}


name: Host Your Own AI Deep Research Agent with n8n, Apify and OpenAI o3
author_name: Jimleuk
author_username: jimleuk
categories: []
created_at: 2025-02-11T00:02:26.780Z
updated_at: 2025-02-11T00:02:26.780Z
url: https://n8n.io/workflows/2878
scraped_at: 2025-09-14 19:10:59
metadata_generated_at: 2025-09-14 20:27:49
description:
  This template attempts to replicate OpenAI's DeepResearch feature which, at time of writing, is only available to their pro subscribers.

  &gt; An agent that uses reasoning to synthesize large amount of online information and complete multi-step research tasks for you.
  Source

  Though the inner workings of DeepResearch have not been made public, it is presumed the feature relies on the ability to deep search the web, scrape web content and invoking reasoning models to generate reports. All of which n8n is really good at!

  Using this workflow, n8n users can enjoy a variation of the Deep Research experience for themselves and their teams at a fraction of the cost. Better yet, learn and customise this Deep Research template for their businesses and/or organisations.

  Check out the generated reports here: https://jimleuk.notion.site/19486dd60c0c80da9cb7eb1468ea9afd?v=19486dd60c0c805c8e0c000ce8c87acf

  How it works
  A form is used to first capture the user's research query and how deep they'd like the researcher to go.
  Once submitted, a blank Notion page is created which will later hold the final report and the researcher gets to work.
  The user's query goes through a recursive series of web serches and web scraping to collect data on the research topic to generate partial learnings.
  Once complete, all learnings are combined and given to a reasoning LLM to generate the final report.
  The report is then written to the placeholder Notion page created earlier. 

  How to use
  Duplicate this Notion database template and make sure all Notion related nodes point to it.
  Sign-up for APIFY.com API Key for web search and scraping services.
  Ensure you have access to OpenAI's o3-mini model. Alternatively, switch this out for o1 series.
  You must publish this workflow and ensure the form url is publically accessible.

  On depth & breadth configuration
  For more detailed reports, increase depth and breadth but be warned the workflow will take exponentially longer and cost more to complete. The recommended defaults are usually good enough.

  Depth=1 & Breadth=2 - will take about 5 - 10mins.
  Depth=1 & Breadth=3 - will take about 15 - 20mins.
  Dpeth=3 & Breadth=5 - will take about 2+ hours!

  Customising this workflow
  I deliberately chose not to use AI-powered scrapers like Firecrawl as I felt these were quite costly and quotas would be quickly exhausted. However, feel free to switch web search and scraping services which suit your environment.
  Maybe you don't decide to source the web and instead, data collection comes from internal documents instead. This template gives you freedom to change this.
  Experiment with different Reasoning/Thinking models such as Deepseek and Google's Gemini 2.0.
  Finally, the LLM prompts could definitely be improved. Refine them to fit your use-case.

  Credits
  This template is largely based off the work by David Zhang (dzhng) and his open source implementation of Deep Research: https://github.com/dzhng/deep-research

nodes_used:
  ["@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.formTrigger","@n8n/n8n-nodes-langchain.chainLlm","@n8n/n8n-nodes-langchain.outputParserStructured","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.set","n8n-nodes-base.splitOut","n8n-nodes-base.noOp","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.splitOut","n8n-nodes-base.set","n8n-nodes-base.splitInBatches","n8n-nodes-base.splitOut","n8n-nodes-base.form","n8n-nodes-base.splitInBatches","n8n-nodes-base.executeWorkflowTrigger","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.stickyNote","n8n-nodes-base.form","n8n-nodes-base.executeWorkflow","n8n-nodes-base.executionData","n8n-nodes-base.switch","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.notion","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.if","n8n-nodes-base.set","n8n-nodes-base.notion","n8n-nodes-base.notion","n8n-nodes-base.notion","n8n-nodes-base.splitOut","n8n-nodes-base.markdown","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.chainLlm","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.notion","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.chainLlm","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.executeWorkflow","n8n-nodes-base.executeWorkflow","n8n-nodes-base.form","n8n-nodes-base.form","n8n-nodes-base.filter","n8n-nodes-base.stickyNote","n8n-nodes-base.merge","n8n-nodes-base.code","n8n-nodes-base.set","n8n-nodes-base.if","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.aggregate","n8n-nodes-base.splitInBatches","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.filter","n8n-nodes-base.httpRequest","n8n-nodes-base.set","n8n-nodes-base.if","n8n-nodes-base.stopAndError","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 24188 characters]

metadata_json:
  {"categories":["automation","integration","data processing","research","AI/ML"],"complexity":"complex","use_cases":["Automated multi-step web research and report generation","Market and competitor research","Literature reviews and academic research synthesis","Due diligence and investigative research","Content research for writers and product teams"],"estimated_setup_minutes":30,"required_services":["n8n (hosted instance with public form URL)","Apify (web search and scraping API)","OpenAI (o3-mini or o1 series model access)","Notion (Notion API / database template)"],"key_features":["Recursive web search and web-scraping pipeline to collect large amounts of online data","LLM-based reasoning to synthesize partial learnings into a final report","Creates and writes final report into a placeholder Notion page","Configurable depth and breadth to control search granularity and runtime","Modular workflow (many nodes) enabling customization of scrapers, models and prompts"],"target_audience":["Developers / automation engineers","Data scientists and researchers","Knowledge workers and analysts (market, product, content teams)"]}


name: Open Deep Research - AI-Powered Autonomous Research Workflow
author_name: Leonard
author_username: leonardvanhemert
categories: []
created_at: 2025-02-11T16:42:07.823Z
updated_at: 2025-02-11T16:42:07.823Z
url: https://n8n.io/workflows/2883
scraped_at: 2025-09-14 19:11:00
metadata_generated_at: 2025-09-14 21:18:31
description:
  Open Deep Research - AI-Powered Autonomous Research Workflow  

  Description  
  This workflow automates deep research by leveraging AI-driven search queries, web scraping, content analysis, and structured reporting. It enables autonomous research with iterative refinement, allowing users to collect, analyze, and summarize high-quality information efficiently.

  How it works  

  🔹 User Input  
     The user submits a research topic via a chat message.

  🧠 AI Query Generation  
     A Basic LLM generates up to four refined search queries to retrieve relevant information.

  🔎 SERPAPI Google Search  
     The workflow loops through each generated query and retrieves top search results using the SerpAPI API.

  📄 Jina AI Web Scraping  
     Extracts and summarizes webpage content from the URLs obtained via SerpAPI.

  📊 AI-Powered Content Evaluation  
     An AI Agent evaluates the relevance and credibility of the extracted content.

  🔁 Iterative Search Refinement  
     If the AI finds insufficient or low-quality information, it generates new search queries to improve results.

  📜 Final Report Generation  
     The AI compiles a structured markdown report, including sources with citations.

  Set Up Instructions  
  🚀 Estimated setup time: ~10-15 minutes  

  ✅ Required API Keys:**  
    SerpAPI → For Google Search results  
    Jina AI → For text extraction  
    OpenRouter → For AI-driven query generation and summarization  

  ⚙️ n8n Components Used:**  
    AI Agents with memory buffering for iterative research  
    Loops to process multiple search queries efficiently  
    HTTP Requests for direct API interactions with SerpAPI and Jina AI  

  📝 Recommended Enhancements:**  
    Add sticky notes in n8n to explain each step for new users  
    Implement Google Drive or Notion Integration to save reports automatically  

  🎯 Ideal for:  
  ✔️ Researchers & Analysts - Automate background research  
  ✔️ Journalists - Quickly gather reliable sources  
  ✔️ Developers - Learn how to integrate multiple AI APIs into n8n  
  ✔️ Students - Speed up literature reviews  

  🔗 Completely free and open-source! 🚀  

nodes_used:
  ["@n8n/n8n-nodes-langchain.chatTrigger","@n8n/n8n-nodes-langchain.chainLlm","@n8n/n8n-nodes-langchain.lmChatOpenRouter","n8n-nodes-base.code","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.code","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.splitInBatches","n8n-nodes-base.splitInBatches","@n8n/n8n-nodes-langchain.memoryBufferWindow","@n8n/n8n-nodes-langchain.memoryBufferWindow","@n8n/n8n-nodes-langchain.toolWikipedia","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 4368 characters]

metadata_json:
  {"categories":["automation","research","web scraping","content analysis","AI"],"complexity":"medium","use_cases":["automated background research","literature reviews","source credibility evaluation","journalism fact-finding","competitive/market research"],"estimated_setup_minutes":12,"required_services":["SerpAPI (Google Search)","Jina AI (web text extraction)","OpenRouter (LLM for query generation & summarization)"],"key_features":["LLM-generated refined search queries","SERPAPI integration to fetch top results","Jina AI web scraping and summarization","AI agent content evaluation and credibility scoring","Iterative search refinement loop with memory buffering','Batched processing of queries and results','Final structured Markdown report with citations"],"target_audience":["Researchers","Analysts","Journalists / Reporters / Investigative writers - use case group too large? Wait this field should be array of strings. Fix."]}


name: Find Top Keywords for Youtube And Google and Store them in NocoDB
author_name: Shannon Atkinson
author_username: rainmanjam
categories: []
created_at: 2025-02-12T01:32:32.725Z
updated_at: 2025-02-12T01:32:32.725Z
url: https://n8n.io/workflows/2884
scraped_at: 2025-09-14 19:11:03
metadata_generated_at: 2025-09-14 21:18:32
description:
  Template Description  
  WDF Top Keywords: This workflow is designed to streamline keyword research by automating the process of generating, filtering, and analyzing Google and YouTube keyword data. Ensure compliance with local regulations and API terms of service when using this workflow.

  📌 Purpose  
  The WDF Top Keywords workflow automates collecting, processing, and managing keyword data for both Google and YouTube platforms. Leveraging multiple data sources and APIs ensures an efficient and scalable approach to identifying high-impact keywords for SEO, content creation, and marketing campaigns.

  Key Features
  Automates the generation of keyword suggestions using autocomplete APIs.
  Integrates with NocoDB to store and manage keyword data.
  Filters keywords based on monthly search volume and cost-per-click (CPC).
  Supports bulk import of keyword data into structured databases.
  Outputs both Google and YouTube keyword insights, enabling informed decision-making.

  🎯 Target Audience  
  This workflow is ideal for:
  Digital marketers aiming to optimize ad campaigns with data-driven insights.
  SEO specialists looking to identify high-potential keywords efficiently.
  Content creators seeking trending and relevant topics for their platforms.
  Agencies managing keyword research for multiple clients.

  ⚙️ How It Works  
  Trigger: The workflow runs on-demand or at scheduled intervals.  
  Keyword Generation:  
     Retrieves base keywords from NocoDB.  
     Generates autocomplete suggestions for Google and YouTube.  
  Data Processing:  
     Filters and formats keyword data based on specific criteria (e.g., search volume, CPC).  
     Consolidates results for efficient storage and analysis.  
  Storage and Output:  
     Saves data into structured NocoDB tables for tracking and reuse.  
     Bulk imports monthly search volume statistics for detailed analysis.

  🛠️ Key APIs and Tools Used  
  NocoDB**: Stores and organizes base and processed keyword data.  
  DataForSEO API**: Provides search volume and keyword performance metrics.  
  Google Autocomplete API**: Suggests relevant Google search terms.  
  YouTube Autocomplete API**: Suggests trending YouTube keywords.  
  Social Flood Docker Instance**: Serves as the local integration hub.  

  Setup Instructions  
  Required Tools:
     NocoDB  
     n8n  
     DataForSEO Account  
     Social Flood Docker Instance  
  Create the following NocoDB tables:  
     Base Keyword Search  
     Second Order Google Keywords  
     Second Order YouTube Keywords  
     Search Volume  

  This template empowers users to handle complex keyword research tasks effortlessly, saving time and providing actionable insights. Share this template to enhance your workflow efficiency!

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.code","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.nocoDb","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.splitOut","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.splitOut","n8n-nodes-base.filter","n8n-nodes-base.filter","n8n-nodes-base.nocoDb","n8n-nodes-base.nocoDb","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.if","n8n-nodes-base.if","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.splitInBatches","n8n-nodes-base.nocoDb","n8n-nodes-base.nocoDb","n8n-nodes-base.splitInBatches","n8n-nodes-base.stickyNote","n8n-nodes-base.code","n8n-nodes-base.code"]

workflow_json_compressed:
  [encoded data, 7444 characters]

metadata_json:
  {"categories":["automation","integration","data processing","SEO"],"complexity":"complex","use_cases":["Automated keyword research for SEO and content planning","Optimizing paid ad campaigns with search volume and CPC data","Bulk importing and managing keyword datasets in a database","Monitoring and extracting trending YouTube and Google search terms","Agency workflows for multi-client keyword management"],"estimated_setup_minutes":60,"required_services":["NocoDB","n8n","DataForSEO API","Google Autocomplete API","YouTube Autocomplete API","Social Flood (Docker)"],"key_features":["Generate autocomplete keyword suggestions for Google and YouTube","Filter keywords by monthly search volume and CPC","Store and manage keywords in NocoDB tables","Bulk import monthly search volume statistics","Scheduled or on-demand runs for automated collection','Consolidate and format results for analysis"],"target_audience":["Digital marketers","SEO specialists","Content creators and publishers','Agencies managing keyword research for multiple clients"]}


name: Backup all n8n workflows to Google Drive every 4 hours
author_name: Zacharia Kimotho
author_username: imperolq
categories: []
created_at: 2025-02-12T04:51:48.065Z
updated_at: 2025-02-12T04:51:48.065Z
url: https://n8n.io/workflows/2886
scraped_at: 2025-09-14 19:11:02
metadata_generated_at: 2025-09-14 21:18:31
description:
  This workflow takes off the task of backing up workflows regularly on Github and uses Google Drive as the main tool to host these. 

  This can be a good way to keep track of your workflows so that you never lose any workflows in case your n8n goes down.

  How does it work

  Creates a new folder within a specified folder with the time its backed up
  Loops around all workflows, converts them to a JSON file and uploads them to the created folder
  Gets the previous backups and deletes them

  This has a clean feel and look as it simplifies the backup while not keeping a cache of workflows on your drive.

  Setup

  Create a new folder
  Create new service account credentials
  Share the folder with the service account email
  Upload this workflow to your canvas and map the credentials
  Set the schedule that you need your workflows to run and manage your backups
  Activate the workflow

  Happy Productivity!

  @Imperol

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.n8n","n8n-nodes-base.splitInBatches","n8n-nodes-base.googleDrive","n8n-nodes-base.convertToFile","n8n-nodes-base.googleDrive","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.filter","n8n-nodes-base.googleDrive","n8n-nodes-base.googleDrive"]

workflow_json_compressed:
  H4sIAAAAAAAAE81YbW/bNhD+KwIxIC0mupRESZSBfmjTpsu2NkWbpcC6oKDIo6NWJh2JSmIY+rh/sV+3XzJI8otsy1m7Al0/GTaPd8/dPfdCL9AULEfjBcp0abkWcCrRGMmUES8KpaJEpCQWJIhjL4oFCUkaqISnJCUqJVQRYIIDkSIMVMhZ6MceCQRHLrIwneXcwnEBsnwLtpodm+ksBwsSjW1RQe0ibSSUaPx+gbLGauSDVCQJMSc+xzRlEvM49TB4CW2MBFHoIxdpPgU0RmfaEXkmPmV64hzBHYjKwlFjeD5rjjXTuNWPU17CaMp1xfPzIptMoEAumpkys5nRaPweRxFxPY+QSxfNeMGnYKEo0XhRd8ouoChbSa92l0g98AiLwxSrkKaYBpxhHnMf00BSJVLlUyY3SDXTB3F1Z300ASGu5/t7aJDK8g2wAq4rKO3ZrLnW/la7SBQgQduM5+0FzfSTWdYmtwFdXb+bHz+b2wtLf/8lvXi+Afj6yoDO7v7+609Ut7ptMT/TJzzLu1TtxsFFPL/l8/KssrPKPuMNg7qUruKjQsF5mmIZRymmMaU4hTjCSQwJT4F7UoqN+V+NmTlnN1A4pxam5cFYlbM8s6f6KbfiCsqdsHmHwma2QrTlSLAGHIchEEYCLEJBMGU8xokgAlOqmAxjj0mSbgCLArgFR8Oto0wuW0INQ54YM8nhWZHdwA5eyg7gXdp4/M4Un1Rubp2nXHyqZqWzWDg/aHM7UqaYcvvgSAghHOtIiV++xPP5fH700Klr5CLZmGvqeIE+fCjWOZwa2SjOs9IiF93wvGq+vpw7Hbza7YfKRZ1nn6umgFnOBUwbNwUXVyDfQFnl9rfmIrqydlaOHz1qkS2DMhJm2v3wqDNVPjqk5FUXkt2IoJarpakK0RwvU7FfB70knD2p7JXfr4qfrnP4eBHevSb59fl1CJssv2ivddFxuBCm0nZVIgdo5PsspmHg40iyGFMe+zhNQw9LyUQEJBBEeBsDx0bfQGEda5yTLIeDJBKd3LlZSvVo5PnE9YJ7WY86vqzSp7IclvF83DDqY2n0qAHk/Oj8gUbN1z+QU9dORwgoeGcKWfNzaTTaa4qjTVskKfHCUHnYC1OBacgI5ioCHEsQQUpkGAfxcHy/vIDaNjnkue459+Bop7ccPRxlFqajQ15/q+rJZE/JEupeV9kCm8kG3kCX/3bsFnEaBySIsMcCD1MpI8ykTLAC5QVhxD1Ge139bVO/VQ7OZugeaOtLwXuGcxDt57mocugWFwvFDc/bPUJlkDdQr0xVNBOi/TxdS9D6cs8/b+SvPYyiSAqVhDjxmcDUjwlmhCkchyFP4tjj1CMbD0/agXzQL7U63mWtd3+9ZhNtCjjmJawXJWG0zNYCPdmblRe+i3JQ9mJJqbaBlvAWdGP6BtBY8bxcDXKeZ3JV1rkxZUtfYaZpprk1BRojrhuC9s2ulrQwYEr4icR+lASYisjHCaMMp1JwxcIoSkiCVp2j0bVYhae0RaYnaLuraGOfX1cNlettDzbNqWO+i4pscrV9/Jk1c9mobtw833F+Gd0tOvg9OqhIUSpSwDxhgCmnCWaCChwmkALxZZpAuKGDhGa7/c8bQbsQ/As1OhOvoZhyDdrm87UP+3NwO87dzZPVUSfzyrwxxn5Bk/peOpFMIk5IojBhMsBUEYkTFROsEiASkjRRSW/OvgC7zMrh3fJgWtoJO5SWZXm3A/b735R251OfL1m+Isb/kdPLts9oEGuWN2+i8QJNedYk4P2ifSfe905oJV2UaQl3aEzqy6biT9b52VN0oFIH1fTJM6RrdwgMK+mvOl/v2jb+nr72dHetHLI3vHsNGtuFNqhuqML2tLmbCwdX30EIe6vEEIZ7HmWDSvflh7Ruvd0H9Qz/D/H1COv6H2mVUqadEQAA

metadata_json:
  {"categories":["backup","automation","integration","operations"],"complexity":"medium","use_cases":["Automated periodic backup of n8n workflows","Offsite storage for disaster recovery","Maintaining versioned workflow snapshots","Automated cleanup of old backups to save storage","Centralized archive for audit or rollback"],"estimated_setup_minutes":15,"required_services":["n8n (self-hosted or cloud)","Google Drive (Google Workspace or personal)","Google Service Account / Drive API access"],"key_features":["Scheduled export of all n8n workflows to JSON","Creates timestamped folder for each backup run","Uploads individual workflow JSON files to Google Drive","Deletes previous/old backups to control storage use","Configurable schedule (example: every 4 hours)"],"target_audience":["n8n users","DevOps engineers / system administrators","SREs and platform engineers who manage automation infrastructure"]}


name: Export PDF invoices from SmartBill to Google Drive
author_name: Codez & AI
author_username: codez
categories: []
created_at: 2025-02-12T11:02:03.340Z
updated_at: 2025-02-12T11:02:03.340Z
url: https://n8n.io/workflows/2887
scraped_at: 2025-09-14 19:11:03
metadata_generated_at: 2025-09-14 21:18:32
description:
  This workflow automates the retrieval of invoice PDFs from the Smartbill API and saves them to Google Drive in a dynamically created folder based on last month’s date. It also generates a range of invoice numbers, ensuring proper formatting, and uploads each PDF with a structured filename.

  Overview

  Trigger and Data Setup:  
     The workflow is manually triggered. It sets the invoice range (start and end numbers), invoice series, the parent Google Drive folder ID and the folder where to save the PDF files.

  Folder Handling:  
     Folder Name Calculation: Calculates a default folder name based on last month’s date (formatted as YYYY-MM).

  Invoice Generation:  
     A code node generates invoice items by iterating over a specified range of numbers. Each invoice number is padded to custom number of digits (e.g., 0013), and the invoice series and folder ID are attached to each item.

  Retrieving Invoice PDFs:  
     For each generated invoice, the Smartbill API is called (using an HTTP Request node) to retrieve the corresponding invoice PDF.

  How to Use

  Credentials:**  
    Ensure you have configured the Smartbill API (HTTP Basic Auth) and Google API credentials correctly.
    
  Parameter Adjustment:**  
    Modify the SetData node if you need to change the invoice range, series, or target parent folder.
    
  Execution:**  
    Click Execute Workflow to run the workflow manually.

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

workflow_json_compressed:
  H4sIAAAAAAAAE62XW2/bRhCF/wqxzxxjb9yLHhM3hYEiAZq2eUj8sJdZmzBFsuQqTmDovxdUHEtySEdC+r48/Hhm5szygawxO7J6IHU7ZtcGvIpkRZBxjtJb6mkMnPEgtZccBVXBGxmsFZEaro1ktIo6YaUNBmedjVSZiJSUJOO6b1zG1wPG8T3mTf+6W/cNZoxklYcNbkvSdhFHsvr4QOrprYxZxphXYLkzIF0lwRhBgTvGHY0SMRhSktatkazIh1tsi9DU4a5ub4pP5LcvGDYZiw/dcJea7v4TmSi+9tPZ1rSwexl4N+LF2rUb1/w11Dc3OJCS9N1Y57pryeojVIaWoOh1SXo3uDVmHEayeth+0/oHh3F3kG3LR2qfqFY6ejAxcpDJCHBcJxA6MKaoZSrKPfX7tRuyr5umuMFc1O3nrg5Y9DEtwt7m3P+J/25wzMeoTMmTUOXFHjYZH2kVK6BRI8joDdhENVBNUUZpXBL+ABbzpctuEW3EZ0gg6ElI4kI+IVXaWhuVAc2iBBlFAKuMg4oGljgNnjJ6hFSs6zUuMoUu4jOf7GlQ/AlJMa2ZkBXISnGQQXrwlEaI3iRPvaGJ4QFSrsPd1+Jtl5epxt2ZxyOHhk3dxswZ7RZFNAk9hxCdAhm0AW9VAB2MFcZz4b2eZWPnwwlFS6j4GXSIiunoPWBKHqTSDCYkYBWnlcEYtUrHxbzE5DZNLt50TcSheOvOqi3wpdK2Xcbxqn3TdPdklVwz4mK5WRUd41MHoqMgpXTggrYgosJAaaW9OepAN4Tb4nKoP+Mj9SLwTdfdNLg7eszNT5yTkrjm3n0d321yv/k2jI/h+b0dlKCaoYfghASJXoOJjkEVDNM8yaTTQatepQK/1GMeF4nrdAwqFw0+NvNib6cOGKgJDLSYMoZpA5ajgynepeEMOR70wOsBXcZftFMZWv58iMQe0VSCB0aBBk1BBhPAeivAx+AFGhp9wOM2zbdYNF3Xn5M7TJ2ZO1b4UBkWgCouQaYYwTuqAGlKwgiFrhJ7rD+6ri/efcahuMq4Xi7p2Dd1vmpfuRxucXzGKE5bd3vrJI1cczQgK5NAWqnAMoUg0SVrFY0yHQzL333TuVikusEid8XvuwIW3yt47tCw0xbeHpaaWDkhHQhUAaRPEXwQCDT4hDHZqFl1cKNwdS5cMWJYZLt39bOVx3cOygnqHv1t193tblApiCSFpCBSYCC9cWCTiCBZDMEnb4ScYvrlWD1Y3I7F4ERg4G1AkFJ48FZysNQ4z2hg6vmWfAzUq8vT17c9bdin7X1dktC1LYbp0enQ02Vh9UDWrp7kPj7sbninBP3uiZLUbcQvZEW319fbcr/r5yRP6qxZ2X0ILqHOWPeDUrl/5MUIm0U46LQ5hsXJXrTpKZ7+H7m9AUsW/ZiHs2LPX30gd+jgCbfiWfk553+lqN++/8f9Pqc5s0sX/Zzr/XnOF+4W8+qLzi35cHx7nhV9abbmZOeCc77vf/7PtoB9/B8yI77d/gdyJSO/zA4AAA==

metadata_json:
  {"categories":["automation","integration","data processing"],"complexity":"medium","use_cases":["Automated archival of invoice PDFs","Monthly bookkeeping and audit trails","Sharing or backing up invoices to cloud storage","Generating and exporting a series of invoices for reconciliation"],"estimated_setup_minutes":20,"required_services":["SmartBill API (HTTP Basic Auth)","Google Drive API (Google credentials)"],"key_features":["Dynamically creates target folder named for last month (YYYY-MM)","Generates a numeric invoice range with configurable padding and series","Retrieves invoice PDFs from SmartBill via HTTP requests","Uploads each PDF to a structured filename in Google Drive","Processes invoices in batches to handle large ranges reliably"],"target_audience":["Accountants and finance teams","Operations and back-office staff","Small business owners/freelancers needing automated backups of invoices」「Developers/automation engineers implementing integrations"]}


name: Post to an XMLRPC API via the HTTP Request node
author_name: Daniel Nolde
author_username: dnolde
categories: []
created_at: 2025-02-12T11:18:36.582Z
updated_at: 2025-02-12T11:18:36.582Z
url: https://n8n.io/workflows/2888
scraped_at: 2025-09-14 19:11:03
metadata_generated_at: 2025-09-14 21:18:32
description:
  What this does

  Show you how to us XMLRPC APIs via the generic HTTP-Request-node, by the example of posting to a wordpress blog
  This is also a feasible workaround if a specific n8n integration does not work or stops working (which happens e.g. with the Wordpress node)

  How it works

  First, the XML payload for the request is being prepared (in a code node, which also properly escapes special character in the values that you want to send to the XMLRPC endpoint)
  Then, the HTTP Request node sends the request using the HTTP post method
  Last, the returned XML response is converted to JSON which a conditional node uses to determine whether th operation was successful or not

  Setup steps:

  Import workflow
  Ensure you have a wordpress blog with a user that has an app-Password
  Edit the "Settings"-node and enter your individual values for url/user/app-pw

nodes_used:
  ["n8n-nodes-base.set","n8n-nodes-base.manualTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.noOp","n8n-nodes-base.noOp","n8n-nodes-base.code","n8n-nodes-base.httpRequest","n8n-nodes-base.if","n8n-nodes-base.xml"]

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

metadata_json:
  {"categories":["integration","automation"],"complexity":"medium","use_cases":["Post content to a WordPress blog via XML-RPC","Interact with any XML-RPC API when no native node exists","Automate content publishing or remote procedure calls over XML-RPC","Workaround for broken or missing native n8n integrations"],"estimated_setup_minutes":10,"required_services":["WordPress with XML-RPC enabled (and an app password) or any XML-RPC-compatible HTTP endpoint","n8n instance with HTTP Request and Code nodes available"],"key_features":["Constructs and escapes XML payload in a Code node","Sends XMLRPC requests via the generic HTTP Request node (HTTP POST)","Parses returned XML to JSON for downstream logic","Conditional flow (IF node) to handle success/failure responses","Generic approach that works for any XML-RPC API as a fallback"],"target_audience":["Developers","n8n power users / integrators","Sysadmins automating publishing or remote API calls"]}


name: Export WordPress Posts to CSV and Upload to Google Drive
author_name: Codez & AI
author_username: codez
categories: []
created_at: 2025-02-12T11:24:39.213Z
updated_at: 2025-02-12T11:24:39.213Z
url: https://n8n.io/workflows/2889
scraped_at: 2025-09-14 19:11:03
metadata_generated_at: 2025-09-14 21:18:32
description:
  Overview  
  This n8n workflow automates the process of extracting published WordPress posts, converting them into a CSV file, and uploading it to Google Drive. It’s perfect for content backups, SEO audits, and data migration.  

  Features  
  Fetches all published posts from a WordPress website  
  Extracts key post details (ID, Title, Link)  
  Converts the extracted data into a CSV file  
  Uploads the CSV file to Google Drive for easy access and storage  

  Use Cases  
  SEO Optimization**: Export post data for keyword analysis and performance tracking  
  Automated Content Backup**: Store WordPress post details in Google Drive. You can add more fields to the Csv file if needed  

  Workflow Steps  

  1. Trigger Workflow Manually  
  The workflow starts when triggered manually in n8n.  

  2. Retrieve WordPress Posts  
  The workflow fetches all published posts using the WordPress API. It extracts:  
  Post ID  
  Title  
  Link  
  Rendered Content

  3. Format Data  
  The retrieved data is structured to ensure correct CSV formatting.  

  4. Convert to CSV File  
  The formatted data is transformed into a downloadable CSV file.  

  5. Upload to Google Drive  
  The CSV file is automatically uploaded to a specified Google Drive folder for easy access and storage.  

  How to Use  
  Connect your WordPress and Google Drive accounts to n8n.  
  Run the workflow manually or set up a scheduled trigger.  
  Access the CSV file from your Google Drive folder.  

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

workflow_json_compressed:
  H4sIAAAAAAAAE5VW247bNhD9FYHpQwuIG1K8SDLQh8W2CfLQIMjmgiK7CHgZ2crKpCDSm2wNA/mM9vfyJYVkey1n5W76pstwzuFczswaLSEqNFuj2oWonIEXFs0Q0CwDrkuiiTUZzQzPNc+AEWl0wU1ZMkuKLC84JcLmFYi8AKNKVVoiCwsEpSjCsm1UhIsObLiEuGov/LJtIIJFs9itYJMi5y0ENPuwRnWPalglmSIUUy4I5lWZY6Uzi6nklEvKKkEMSpFTS0Az9H4BLjFNbW5qN0++ff37DYSYfPbdTdX4z9++/tOTuGt7U1c4PGBhrQKcLZVbqeZNV8/n0KEUtT7UsfYOzT5wQlKWkesUtapTS4jQBTRbb7au3kEXBju6SXectckzAYxhJpjFXDOLtRQVBp2VgggGwow4P4eYvPedbTsIIXnlQwwnWX7e2x0zlHySIfJtbzA8hqjiKqAZale6qcMCbVLkW+jU1gWaQzxvGpSiDuKqc/3zPiOmAwsu1qoZPN1zOG/roUj6K3958ddCkzfCLgWzN96OUnJ/NWWMX7mINqcjR3KwrMoUNpmWmAMzuCA2xzwTyhqpLJMj1+f20yrE5FkNjT0dswDxOFqFfCxamxSpEOq5W4KLw7+j131tslJZyCnBoEFgbrjFpTYFFsoWUjGTSy0ObGs7orha6qHMblWz6j/8ul4nP30K3p3VNtls0H1Espxyk1HbO2WYk0JjXVKLleKCsooVvGIHjFjHBg4wIXa1m0/CDJZnHTgLHRxD5pSWvO82I4zEXFcEF4oxLJQqCksyayt+gGxqd/NDiL3hEY4stTCyILiUAjAneYELUlqcc02JVVRlZXXAMd5FcPGHoHa2x9e7flB37Iwf4sy4lbkQGAqZYZ7lOdZE55gqI4WxRW5odiBz4d0tdDGJPrm4fJc8q8dR/67+zNb2jd9ZjSqRkuLRUnzQLGeHduFlSaixBRZQCcypFrjIDcNKlHlpKkolH2Xqbdt4ZXvOz72fN5D81tW3p3nPB6O9zZg1mxbEBx2PBzE7M+EWpcj2jvpBskYfP3Y7dUnR0tttFYU4SuUfdztyg0qN2rLyjYXuR9103vevRpkF2NcQVk18259BixjbMHv6dCC1u+mZ8cvth++OvNxe62ny82vvY7Kl8EtPTa3ioldGs1fRAN1tbeB8r3QPxHMLNVZOOpoE27Scn9JJdp94xaQ2xua4zMoCc1NKXFQccMF0SUoJgtmRTl7G2tzcJS99PJ3tMNjsTMZiSUhK5cNcL6CeLyKaUU7S+96coSdPniQ7Wa4GWb5yf/pVYpRLlLXJ0new+9HXYVzA0D9V3UCi7xKwdewHd1zUIenJodOjQthCWqYBWytLzAVXWOesxDS3YIVkEoBOhoD+7xhQQtJsot73Mcjkgxj8/qX13XauvzrM9b1eKGeT6W68clfuMkIbZlcOJ5cQkzu/6kZ+RvWU1G6I4NX9CjGCukJDAI+8jIH6adwb73xsv+1PXPQbVHK0O01k4nq4tANzv2QcD+TZGi1V3Qfww3pY6x4TzsE6RbWz8AXNyOb6epNOnpjy/Ji6TTqf2r2mnJ/YNCZ9Pr6DTiH85xY4gbPZ/AteSmN6pwsAAA==

metadata_json:
  {"categories":["automation","integration","data processing"],"complexity":"simple","use_cases":["SEO optimization and keyword analysis","Automated content backup","Content data migration","Generating reports or CSV exports for analytics"],"estimated_setup_minutes":10,"required_services":["WordPress (REST API)","Google Drive","n8n"],"key_features":["Fetches all published WordPress posts","Extracts key fields (ID, Title, Link, Rendered Content)","Formats data for CSV","Converts data to a downloadable CSV file","Uploads CSV to a specified Google Drive folder (manual or scheduled run)"],"target_audience":["content managers","SEO specialists","site administrators / WordPress owners\",\"developers and automation engineers\",\"data analysts"]}


name: Drive-To-Store Lead Generation (with coupon) with Google Sheets & SuiteCRM
author_name: Davide
author_username: n3witalia
categories: []
created_at: 2025-02-12T16:18:39.735Z
updated_at: 2025-02-12T16:18:39.735Z
url: https://n8n.io/workflows/2890
scraped_at: 2025-09-14 19:11:03
metadata_generated_at: 2025-09-14 21:18:32
description:
  Drive-to-Store is a multi-channel marketing strategy that includes both the web and the physical context, with the aim of increasing the number of customers and sales in physical stores. This strategy guides potential customers from the online world to the physical point of sale through the provision of a coupon that can be spent in the store or on an e-commerce site.

  The basic idea is to have a landing page with a form and a series of unique coupons to assign to leads as a "reward" for filling out the form.

  This workflow is ideal for businesses looking to automate lead generation and management, especially when integrating with CRM systems like SuiteCRM and using Google Sheets for data tracking.

  How It Works
  Form Submission:
     The workflow starts with the On form submission node, which triggers when a user submits a form on a landing page. The form collects the user's name, surname, email, and phone number.

  Form Data Processing:
     The Form Fields node extracts and sets the form data (name, surname, email, and phone) for use in subsequent steps.

  Duplicate Lead Check:
     The Duplicate Lead? node checks if the submitted email already exists in a Google Sheets document. If the email is found, the workflow responds with a "duplicate lead" message (Respond KO node) and stops further processing.

  Coupon Retrieval:
     If the email is not a duplicate, the Get Coupon node retrieves a coupon code from the Google Sheets document based on the lead's email.

  Lead Creation in SuiteCRM:
     The Create Lead SuiteCRM node creates a new lead in SuiteCRM using the form data and the retrieved coupon code. The lead includes:
       First name, last name, email, phone number, and coupon code.

  Google Sheets Update:
     The Update Sheet node updates the Google Sheets document with the newly created lead's details, including:
       Name, surname, email, phone, coupon code, lead ID, and the current date and time.

  Response to Webhook:
     The Respond OK node sends a success response back to the webhook, indicating that the lead was created successfully.

  Set Up Steps
  Configure Form Trigger:
     Set up the On form submission node to collect user data (name, surname, email, and phone) via a web form.

  Set Up Google Sheets Integration:
     Configure the Duplicate Lead?, Get Coupon, and Update Sheet nodes to interact with the Google Sheets document. Ensure the document contains columns for email, coupon, lead ID, and other relevant fields.

  Set Up SuiteCRM Authentication:
     Configure the Token SuiteCRM node with the appropriate client credentials (client ID and client secret) to obtain an access token from SuiteCRM.

  Set Up Lead Creation in SuiteCRM:
     Configure the Create Lead SuiteCRM node to send a POST request to SuiteCRM's API to create a new lead. Include the form data and coupon code in the request body.

  Set Up Webhook Responses:
     Configure the Respond OK and Respond KO nodes to send appropriate JSON responses back to the webhook based on whether the lead was created or if it was a duplicate.

  Test the Workflow:
     Submit a test form to ensure the workflow correctly checks for duplicates, retrieves a coupon, creates a lead in SuiteCRM, and updates the Google Sheets document.

  Activate the Workflow:
     Once tested, activate the workflow to automate the process of handling form submissions and lead creation.

  Key Features
  Duplicate Lead Check**: Prevents duplicate leads by checking if the email already exists in the Google Sheets document.
  Coupon Assignment**: Retrieves a coupon code from Google Sheets and assigns it to the new lead.
  SuiteCRM Integration**: Automatically creates a new lead in SuiteCRM with the form data and coupon code.
  Data Logging**: Logs all lead details in a Google Sheets document for tracking and analysis.
  Webhook Responses**: Provides immediate feedback on whether the lead was created successfully or if it was a duplicate.

nodes_used:
  ["n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.webhook","n8n-nodes-base.formTrigger","n8n-nodes-base.googleSheets","n8n-nodes-base.set","n8n-nodes-base.googleSheets","n8n-nodes-base.respondToWebhook","n8n-nodes-base.respondToWebhook","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.googleSheets"]

workflow_json_compressed:
  [encoded data, 4580 characters]

metadata_json:
  {"categories":["marketing","integration","automation","data processing","lead generation"],"complexity":"medium","use_cases":["Drive-to-store promotions with coupon distribution","Automated lead capture and CRM creation","Preventing duplicate leads before CRM insertion","Centralized lead logging and analytics in Google Sheets","Issuing unique coupons to form respondents"],"estimated_setup_minutes":30,"required_services":["Google Sheets (Google account)","SuiteCRM (API access / client credentials)","Web form / webhook endpoint (landing page provider)","n8n instance or server to run workflow"],"key_features":["On-form-submission trigger for real-time processing","Duplicate email check against Google Sheets","Coupon retrieval and assignment from Google Sheets","Automated lead creation in SuiteCRM (with coupon code)","Update/log lead details and coupon usage in Google Sheets with timestamp and lead ID response handling (OK / KO)"],"target_audience":["Marketers running drive-to-store campaigns","Small business owners","CRM administrators and marketing ops teams"]}


name: AI Virtual TryOn automated generation 🤖🧠 for WooCommerce clothing catalog 👔
author_name: Davide
author_username: n3witalia
categories: []
created_at: 2025-02-12T17:48:05.133Z
updated_at: 2025-02-12T17:48:05.133Z
url: https://n8n.io/workflows/2892
scraped_at: 2025-09-14 19:11:03
metadata_generated_at: 2025-09-14 21:18:32
description:
  This AI Agent is designed to streamline the process of creating realistic images of clothing products worn by models, eliminating the need for expensive photoshoots. The primary goal is to automate the generation of virtual try-on images for an eCommerce store selling clothing, using advanced image processing technologies.

  Example of results

  How It Works
  Triggering the Workflow:
     The workflow can be triggered manually using the When clicking ‘Test workflow’ node or automatically via the Schedule Trigger node, which runs the workflow at regular intervals (e.g., every 5 minutes).

  Data Retrieval:
     The Get new product node retrieves data from a Google Sheets document containing the URLs of the model image, the clothing product image, and the WooCommerce product ID. The document also includes a column for the resulting virtual try-on image URL, which is initially empty.

  Setting Up the Request:
     The Set data node prepares the data for the AI request by assigning the model image URL and the product image URL to variables.

  AI Image Generation:
     The Create Image node sends a request to API to generate a virtual try-on image. The request includes the URLs of the model and the clothing product.
  When you register for the API service you will get 1$ for free. For continuous work add API credits to your account.

  Image Retrieval:
     The Get Url image node retrieves the URL of the generated virtual try-on image.
     The Get File image node downloads the generated image from the provided URL.

  Image Storage:
     The Upload Image node uploads the generated image to a specified Google Drive folder for storage.

  Updating Google Sheets:
     The Update result node updates the Google Sheets document with the URL of the generated virtual try-on image.

  Updating WooCommerce:
     The Update product node updates the corresponding product in WooCommerce by adding the generated virtual try-on image to the product's image gallery.

  Functionality
  This AI Agent is designed to streamline the process of creating realistic images of clothing products worn by models, eliminating the need for expensive photoshoots. The primary goal is to automate the generation of virtual try-on images for an eCommerce store selling clothing, using advanced image processing technologies.

  By offering realistic images of clothing items worn by models, this automation process saves time and resources, making product catalog management more efficient. This approach not only enhances the competitiveness of the eCommerce store but also provides greater flexibility in creating high-quality visual content adaptable to various digital marketing campaigns.

  Key Features
  Automated Virtual Try-On**: Generates realistic images of models wearing clothing items using AI.
  Google Sheets Integration**: Retrieves and updates data in Google Sheets for seamless data management.
  Image Storage**: Uploads generated images to Google Drive for easy access and archiving.
  WooCommerce Integration**: Updates product pages with virtual try-on images, enhancing the shopping experience.
  Scheduled Automation**: Can be triggered manually or run at regular intervals for continuous processing.

  This workflow is ideal for eCommerce businesses looking to enhance their product catalogs with high-quality, realistic images without the need for costly photoshoots. It leverages AI to provide a cost-effective and efficient solution for virtual try-on image generation.

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

workflow_json_compressed:
  H4sIAAAAAAAAE6WYy27jxhKGX4XgWmX0pfqmTRBMkGA2J8DJJFkMvKjurpaJkUiHoscZGAbyGOe8Xp4koGYwoi1yLCs7LZrVX/9d9Ve1HuodD1SvH+qm3Q/UJn6b63VNGEsKmoMziZTWlNBwdiko5bLHVAwprYKWwigTpKNMRWupWIps0Kr6cVW3tON6XX//tvqt6Yc72lbv+k8/t1Xp+ur3rnvT7XbcJ67ebLvhpmk31RsaaNtt6lU90GZfr99fr+q2yzz+fKibkSujIAzGgFTZA1pRIFDykEJRKlmBSXP9devfb7it0rZJH8bwf//1v3e8H6r7rv9Qtt3933/9f9zq0+24tPUtHPaCSHu+2lF7R9t3fbPZcF+v6ttu3wxN19br94BiJS2K61V9Sz3teOB+X68fHj/H+o37/WGhfFx9gbZUvMtegwzJAiZS4DlpEM6xVAGzEPYI/RMP1Y/NlqtmRxteJLwZhtv/8h93vB+e8kkvVkqoF/nwSn0lTLZg9DGD8DICmqAg2ijBi2ikNd4HoqeEv/bbSwFHAV8LiJK0FlaAJqEBSRF4pxxwsoaYyUkvngLuBxru9hfIJ9R59zvFK9IZZ1iDpmgBnYoQlEugiw8pYhEk/BHvl6FJHz5V/+mGZfX2hzVfljzPPn8CV6euHbgd6nVdLyciumiRggeSEQFtMODRW8BQCplQnCWexZSv5tT/hlMUZTmiB+85AyaW4IMsQDY44aRShublVK/mlEL8C1DllQ8mZSCLCTAVDV5lATIW6Z2NyXs1sSNqhsqKas/pahH0nppnGemPhnPP8abrPhwsWhsZMwYLFFICRJPA22KBjJU+5CKEGkX6tkddHc9iMEdEq0HYzIBJJiDyGpiCTJG9DxEnoqcbzndbro4euSD8l4XLXmrEy146qTUltSxKBKAs4tgCHJBQDjw55cgYq7OYTQ59UbGBOnWqM7NYeInJMaSSDWDGBBGDBiuUokIxqKRmQfEiUH8q43mc2toUORRwyqTPrkA6OhBSSp+9dCK6I+ebbne75YHzd4uUTXlWY0qcZ6lq2pJIsQtJQ2LlAbUTQNIGENEnR1ZLJeSR6tfbbUe5evvNjrTpus2Wf+ibj8/kQ3FeR9KTlp6SZYWgS06AUjME9gy6UPAhKcc2TekyDVz1vL/bDi/g/XLDPOyf8ll1bsc0R8KAgZQQgMYioDEEMcUCTsSQpEKSQU+yj4cq00DLmcfDqWbn3Km+woldlhBtZDA5ppGJIeiYwWnMQqEljThbEeayPqntpb4ui1WuIMhMDpBHe0kig/ekpCkqW8yTkuh5vN5vJ9/iwGEvmDeM1SRG2/eaMiBnAyGjAW9JCUWUNdtZIe1lQspLvUUUr2QYLZpsALQmAhXjgEvBLJ2UbtpUxrmt5fvqtu/yXbqkUsbh9zwxj5XiM4cYD4OGdYBaGYhJIYRYRPRCOyXFSS2/hHh/fOCcdvNzavmooXQ6FuYILIMZ/ZlGDS0EzTkF46iINHvZ7tWXbUb5zGunoetVTWkYXXVdaLvnVb3nYWjazeFT/pPT3Rj/5z5zX6/rj3KM8fHz94dRpl6NG7ScxmWHj7760fqh3lEzsr1/ODwGF+vtsGxVN23mP+u1eLy+flxNu9VcpIWXzEmo1fGT+SFudvPJM2T2GDOddP4Q0/PORXoF05NGORdroVfNBnuy75K+zx9ii1IdL2Ip1NyzeOGU00N845gnZbxIN9l7Pt7cALIYbepyc+FO+/H8Bbz4B8eSlLM2O7PH4+M/0TV5hiISAAA=

metadata_json:
  {"categories":["automation","eCommerce","AI image generation","integration","image processing"],"complexity":"complex","use_cases":["Generate virtual try-on images for clothing product catalogs","Automate updating WooCommerce product galleries with generated images","Bulk/scheduled processing of new product entries from Google Sheets","Reduce or replace photoshoots for apparel eCommerce","Archive generated assets to cloud storage (Google Drive)"],"estimated_setup_minutes":45,"required_services":["AI image-generation API (external)","Google Sheets","Google Drive","WooCommerce (REST API credentials)","n8n (hosted or self-hosted with scheduler/webhooks enabled)"],"key_features":["Automated virtual try-on image generation using AI","Google Sheets-driven input/output for product and image URLs","Downloads generated images and uploads them to Google Drive","Updates WooCommerce product image galleries with new images","Supports manual testing and scheduled automatic runs"],"target_audience":["eCommerce managers","Product/catalog managers","Growth/marketing teams for apparel brands"]}


name: Fetch Dynamic Prompts from GitHub and Auto-Populate n8n Expressions in Prompt
author_name: RealSimple Solutions
author_username: joeperes
categories: []
created_at: 2025-02-12T20:03:29.866Z
updated_at: 2025-02-12T20:03:29.866Z
url: https://n8n.io/workflows/2893
scraped_at: 2025-09-14 19:11:03
metadata_generated_at: 2025-09-14 21:18:32
description:
  Who Is This For?

  This workflow is designed for AI engineers, automation specialists, and content creators who need a scalable system to dynamically manage prompts stored in GitHub. It eliminates manual updates, enforces required variable checks, and ensures that AI interactions always receive fully processed prompts.

  🚀 What Problem Does This Solve?

  Manually managing AI prompts can be inefficient and error-prone. This workflow:  
  ✅ Fetches dynamic prompts from GitHub  
  ✅ Auto-populates placeholders with values from the setVars node  
  ✅ Ensures all required variables are present before execution  
  ✅ Processes the formatted prompt through an AI agent

  🛠 How This Workflow Works

  This workflow consists of three key branches, ensuring smooth prompt retrieval, variable validation, and AI processing.

  1️⃣ Retrieve the Prompt from GitHub (HTTP Request → Extract from File → SetPrompt)

  The workflow starts manually or via an external trigger.
  It fetches a text-based prompt stored in a GitHub repository.
  The Extract from File Node retrieves the content from the GitHub file.
  The SetPrompt Node stores the prompt, making it accessible for processing.

  📌 Note:  
  The prompt must contain n8n expression format variables (e.g., {{ $json.company }}) so they can be dynamically replaced.

  2️⃣ Extract & Auto-Populate Variables (Check All Prompt Vars → Replace Variables)

  A Code Node scans the prompt for placeholders in the n8n expression format ({{ $json.variableName }}).
  The workflow compares required variables against the setVars node:
      ✅ If all variables are present, it proceeds to variable replacement.
      ❌ If any variables are missing, the workflow stops and returns an error listing them.
  The Replace Variables Node replaces all placeholders with values from setVars.

  📌 Example of a properly formatted GitHub prompt:

  Hello {{ $json.company }}, your product {{ $json.features }} launches on {{ $json.launch_date }}.

  This ensures seamless replacement when processed in n8n.

  3️⃣ AI Processing & Output (AI Agent → Prompt Output)

  The Set Completed Prompt Node stores the final, processed prompt.
  The AI Agent Node (Ollama Chat Model) processes the prompt.
  The Prompt Output Node returns the fully formatted response.

  📌 Optional: Modify this to use OpenAI, Claude, or other AI models.

  ⚠️ Error Handling: Missing Variables

  If a required variable is missing, the workflow stops execution and provides an error message:

  ⚠️ Missing Required Variables: ["launch_date"]

  This ensures no incomplete prompts are sent to AI agents.

  ✅ Example Use Case

  📜 GitHub Prompt File (Using n8n Expressions)

  Hello {{ $json.company }}, your product {{ $json.features }} launches on {{ $json.launch_date }}.

  🔹 Variables in setVars Node

  {
    "company": "PropTechPro",
    "features": "AI-powered Property Management",
    "launch_date": "March 15, 2025"
  }

  ✅ Successful Output

  Hello PropTechPro, your product AI-powered Property Management launches on March 15, 2025.

  🚨 Error Output (If Missing launch_date)

  ⚠️ Missing Required Variables: ["launch_date"]

  🔧 Setup Instructions

  1️⃣ Connect Your GitHub Repository

  Store your prompt in a public or private GitHub repo.
  The workflow will fetch the raw file using the GitHub API.

  2️⃣ Configure the SetVars Node

  Define the required variables in the SetVars Node.
  Make sure the variable names match those used in the prompt.

  3️⃣ Test & Run

  Click Test Workflow to execute.
  If variables are missing, it will show an error.
  If everything is correct, it will output the fully formatted prompt.

  ⚡ How to Customize This Workflow

  💡 Need CRM or Database Integration?

  Connect the setVars node to an Airtable, Google Sheets, or HubSpot API to pull variables dynamically.

  💡 Want to Modify the AI Model?

  Replace the Ollama Chat Model with OpenAI, Claude, or a custom LLM endpoint.

  📌 Why Use This Workflow?

  ✅ No Manual Updates Required – Fetches prompts dynamically from GitHub.  
  ✅ Prevents Broken Prompts – Ensures required variables exist before execution.  
  ✅ Works for Any Use Case – Handles AI chat prompts, marketing messages, and chatbot scripts.  
  ✅ Compatible with All n8n Deployments – Works on Cloud, Self-Hosted, and Desktop versions.

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.github","n8n-nodes-base.extractFromFile","n8n-nodes-base.set","n8n-nodes-base.code","n8n-nodes-base.if","n8n-nodes-base.code","n8n-nodes-base.set","n8n-nodes-base.stopAndError","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.lmChatOllama"]

workflow_json_compressed:
  [encoded data, 4124 characters]

metadata_json:
  {"categories":["automation","integration","AI/ML","content management"],"complexity":"medium","use_cases":["Dynamic prompt management from GitHub","Templated AI prompt generation and processing","Preventing incomplete prompts via variable validation","Automating content generation for marketing/chatbots"],"estimated_setup_minutes":15,"required_services":["GitHub (repo access)","Ollama Chat Model (configurable)","Optional: OpenAI/Anthropic/Claude or custom LLM endpoint","Optional: Airtable, Google Sheets, HubSpot (for dynamic vars)"],"key_features":["Fetches prompt files from GitHub","Scans and auto-detects n8n expression placeholders","Validates presence of required variables and stops on missing ones","Replaces placeholders with setVars values","Processes final prompt with an AI agent (pluggable model)"],"target_audience":["AI engineers","Automation specialists","Content creators/marketers who use prompts for LLMs」「Developers implementing n8n workflows"]}


name: Upload to Instagram, Tiktok & Youtube from Google Drive
author_name: Juan Carlos Cavero Gracia
author_username: carlosgracia
categories: []
created_at: 2025-02-12T20:39:02.442Z
updated_at: 2025-02-12T20:39:02.442Z
url: https://n8n.io/workflows/2894
scraped_at: 2025-09-14 19:10:59
metadata_generated_at: 2025-09-14 21:18:31
description:
  Description
  This automation template is designed for content creators, digital marketers, and social media managers looking to simplify their video posting workflow. It automates the process of generating engaging video descriptions and uploading content to both Instagram and TikTok, making your social media management more efficient and error-free.

  Who Is This For?
  Content Creators & Influencers:** Streamline your video uploads and focus more on creating content.
  Digital Marketers:** Ensure consistent posting across multiple platforms with minimal manual intervention.
  Social Media Managers:** Automate repetitive tasks and maintain a steady online presence.

  What Problem Does This Workflow Solve?
  Manually creating descriptions and uploading videos to different platforms can be time-consuming and error-prone. This workflow addresses these challenges by:
  Automating Video Uploads:** Monitors a designated Google Drive folder for new videos.
  Generating Descriptions:** Uses OpenAI to transcribe video audio and generate engaging, customized social media descriptions.
  Ensuring Multi-Platform Consistency:** Simultaneously posts your video with the generated description to Instagram and TikTok.
  Error Notifications:** Optional Telegram integration sends alerts in case of issues, ensuring smooth operations.

  How It Works
  Video Upload: Place your video in the designated Google Drive folder.
  Description Generation: The automation triggers OpenAI to transcribe your video’s audio and generate a captivating description.
  Content Distribution: Automatically uploads the video and description to both Instagram and TikTok.
  Error Handling: Sends Telegram notifications if any issues arise during the process.

  Setup
  Generate an API token at upload-post.com and configure it in both the Upload to TikTok and Upload to Instagram nodes.
  Google Cloud Project: Create a project in Google Cloud Platform, enable the Google Drive API, and generate the necessary OAuth credentials to connect to your Google Drive account.
  Set up your Google Drive folder in the Google Drive Trigger node.
  Customize the OpenAI prompt in the Generate Social Description node to match your brand’s tone.
  (Optional) Configure Telegram credentials for error notifications.

  Requirements
  Accounts:** upload-post.com, Google Drive, and (optionally) Telegram.
  API Keys & Credentials:** Upload-post.com API token, OpenAI API key, and (optional) Telegram bot token.
  Google Cloud:** A project with the Google Drive API enabled and valid OAuth credentials.

  Use this template to enhance your productivity, maintain consistency across your social media channels, and engage your audience with high-quality video content.

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

workflow_json_compressed:
  [encoded data, 4136 characters]

metadata_json:
  {"categories":["automation","integration","social media management"],"complexity":"medium","use_cases":["Automate multi-platform video uploads","Generate transcriptions and social descriptions","Maintain consistent cross-platform posting","Notify on upload or workflow errors"],"estimated_setup_minutes":45,"required_services":["Google Drive (Google Cloud Project & Drive API)","upload-post.com (API token)","OpenAI (API key)","Instagram (via upload-post.com)","TikTok (via upload-post.com)","Telegram (optional, bot token for notifications)"],"key_features":["Monitors a Google Drive folder for new videos","Uses OpenAI to transcribe audio and craft social descriptions","Uploads videos and descriptions to Instagram and TikTok","Optional Telegram error/alert notifications","Configurable OpenAI prompt for brand tone"],"target_audience":["Content creators","Social media managers","Digital marketers and agencies"]}


name: N8N for Beginners: Looping over Items
author_name: Dominik Baranowski
author_username: dom
categories: []
created_at: 2025-02-13T00:40:12.140Z
updated_at: 2025-02-13T00:40:12.140Z
url: https://n8n.io/workflows/2896
scraped_at: 2025-09-14 19:10:59
metadata_generated_at: 2025-09-14 21:18:31
description:
  N8N for Beginners: Looping Over Items

  Description

  This workflow is designed for n8n beginners to understand how n8n handles looping (iteration) over multiple items. It highlights two key behaviors:

  Built-In Looping:** By default, most n8n nodes iterate over each item in an input array.
  Explicit Looping:* The *Loop Over Items* node allows controlled iteration, enabling *custom batch processing** and multi-step workflows.

  This workflow demonstrates the difference between processing an unsplit array of strings (single item) vs. a split array (multiple items).

  Setup

  1. Input Data

  To begin, paste the following JSON into the Manual Trigger node:

  {
    "urls": [
      "https://www.reddit.com",
      "https://www.n8n.io/",
      "https://n8n.io/",
      "https://supabase.com/",
      "https://duckduckgo.com/"
    ]
  }

  📌 Steps to Paste Data:
  Double-click** the "Manual Trigger" node.
  Click "Edit Output" (top-right corner).
  Paste the JSON and Save.
  The node turns purple, indicating that test data is pinned.

  1. Click "Test Workflow" button at the bottom of the canvas

  Explanation of the n8n Nodes in the Workflow

  | Node Name | Purpose | Documentation Link |
  |-----------|---------|--------------------|
  | Manual Trigger | Starts the workflow manually and sends test data | Docs |
  | Split Out | Converts an array of strings into separate JSON objects | Docs |
  | Loop Over Items (Loop Over Items 1) | Demonstrates how an unsplit array is treated as one item | Docs |
  | Loop Over Items (Loop Over Items 2) | Iterates over each item separately | Docs |
  | Wait | Introduces a delay per iteration (set to 1 second) | Docs |
  | Code | Adds a constant parameter (param1) to each item | Docs |
  | NoOp (Result Nodes) | Displays output for inspection | Docs |

  Execution Details

  1. How the Workflow Runs

  Manual Trigger starts execution** with the pasted JSON data.
  The workflow follows two paths:
    Unsplit Array Path → Loop Over Items 1  
       Processes the entire array as a single item.
       Result1 & Result5: Show that the array was not split.
    
    Split Array Path → Split Out → Loop Over Items 2
       Splits the array into separate objects.
       Result2, Result3, Result4: Show that each item is processed individually.
       A Wait node (1 sec delay) demonstrates controlled execution.
       Code nodes modify the JSON, adding a parameter (param1).

  2. What You Will See

  | Node | Expected Output |
  |------|---------------|
  | Result1 & Result5 | The entire array is processed as one item. |
  | Result2, Result3, Result4 | The array is split and processed as individual items. |
  | Wait Node | Adds a 1-second delay per item in Loop Over Items 2. |

  Use Cases

  This workflow is useful for:

  ✅ API Data Processing: Loop through API responses containing arrays.  
  ✅ Web Scraping: Process multiple URLs individually.  
  ✅ Task Automation: Execute a sequence of actions per item.  
  ✅ Workflow Optimization: Control execution order, delays, and dependencies.

  Notes

  Sticky notes are included in the workflow for easy reference.
  The Wait node is optional—remove it for faster execution.
  This template is structured for beginners but serves as a building block for more advanced automations.

nodes_used:
  ["n8n-nodes-base.noOp","n8n-nodes-base.noOp","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.splitOut","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.noOp","n8n-nodes-base.noOp","n8n-nodes-base.stickyNote","n8n-nodes-base.noOp","n8n-nodes-base.manualTrigger","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.splitInBatches","n8n-nodes-base.splitInBatches","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.wait"]

workflow_json_compressed:
  [encoded data, 4640 characters]

metadata_json:
  {"categories":["automation","integration","education","data processing"],"complexity":"simple","use_cases":["Learning n8n iteration and looping behavior","Processing API responses containing arrays","Web scraping / processing multiple URLs","Batch task automation with delays","Testing and debugging item-level workflows"],"estimated_setup_minutes":5,"required_services":["None — uses Manual Trigger and built-in nodes (optional: public URLs for testing)"],"key_features":["Demonstrates built-in per-item iteration of nodes","Shows explicit iteration using Loop Over Items node","Splits arrays into individual items with Split Out/Split In Batches","Adds delays per iteration with Wait node","Modifies items using Code node (adds param1) for each iteration\",\"Uses NoOp/result nodes for inspection and debugging\",\"Includes sticky notes for guidance"],"target_audience":["n8n beginners","Developers and automation engineers","Data analysts testing item-level workflows\",\"Technical marketers and non-developers learning automation"]}


name: Use OpenRouter in n8n versions <1.78
author_name: Daniel Nolde
author_username: dnolde
categories: []
created_at: 2025-02-13T12:32:31.015Z
updated_at: 2025-02-13T12:32:31.015Z
url: https://n8n.io/workflows/2897
scraped_at: 2025-09-14 19:11:03
metadata_generated_at: 2025-09-14 21:18:32
description:
  What it is:

  In version 1.78, n8n introduced a dedicated node to use the OpenRouter service, which lets you to use a lot of different LLM models and providers and change models on the fly in an agentic workflow.

  For prior n8n versions, there's a workaround to make OpenRouter accessible, by using the OpenAI node with a OpenRouter-specific BaseURL.

  This trivial workflow demonstrates this for version before 1.78, so that you can use different LLM model dynamically with the available n8n nodes for OpenAI LLM and OpenAI credentials.

  What you can do:

  Use any of the OpenRouter models
  Have the model even dynamically configured or changing (by some external config, some rule, or some specific chat message)

  Setup steps:

  Import the workflow
  Ensure you have registered and account, purchased some credits and created and API key for OpenRouter.ai
  Configure the "OpenRouter" credentials with your own credentials, using an OpenAI  type credential, but making sure in the credential's config form its "Base URL" is set to https://openrouter.ai/api/v1 so OpenRouter is used instead of OpenAI. 
  Open the "Settings" node and change the model value to any valid model id from the OpenRouter models list or even have the model property set dynamically

nodes_used:
  ["n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.chatTrigger","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.memoryBufferWindow","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  H4sIAAAAAAAAE51WbW/cNhL+KwLbT4XGJkWKFAUccG7Qu0tqt2mTpr1LjAMpDnd1lqitRDlxjf3vBXfX3vVr0vuy0FKjmXlmnnk416R1pCbvlj/wF7/Jn15/e/GbUqv/kJz0GA2pr0kbpmhCgy+Tna6sp04a9My5yiqjykLpihVMCOotU8x6JStpdakK5Z1kygsuyoJr7ozhJCcR+1VnIr4Y0U1vMM6rF0O/6jCiI3UcZ1znJJgeSU1+mTAz4So7PT2Ds8Fhl122JvtxheHnYY44Jm9mMZH6/fUWxjz3l4t//uvfJco/vjtV78itq9ez7dppiS57u4tPctKMaCK6k0hqUtCiBFoAo28Zq1lVM3qkC54qMa/c583W5zkJg8ODbKwqVMFcAbZBBaKsHFTeM2ga7aWjWhvj9xm+wRjbsJgSqKtVOglVgI1LsGbCowkjyclqmNrYDoHU70EUNAcp6HlOVmY0PUYcp9SzYZVM0uM6J2aa2kXoMcTNuzt/b1LlTnktlYJGlRwEKyRYzg04VaFXlCnFDlLtUy/2eU5xbMOC5OTSdHM6cIirCfHi+OYBRgaunWLbddB1pjdQWbLOb4JT5iuJDRSSehBOajDWabAOdVUgR2rMPvhqHPpVfCb6366vs6//Nw3hqFma+DKs5pit1/twRntZsoqBpoUDUfkSdNkgMF4WjmtmaCn34SacpnYIL90XRby13kQ8X6+3H73Dcdr0jB+JfR6i1NxJASiVAaEpgm6sAM1l0whZKG7oAT1i21xcZT8MG+Y+wZCNzc7kDlEkzUE9QpSPrYtLUrOK5mSJ7WIZSS0ozUkzhIghMf6rr7Iban4Ib1bYtP4qi0vMtiy4j5Dt24qGW6oNUGMVCKQerBUeuKuoclQVTuCj+NhfB1iIJwA2QzeMpOb5DVT+PNSf55Dk5kP4ZWrD4kBrsjhkvbnYwc783HVXWTME3y7m0dgOn6kE004o31gwnisQzhiohHfAveDeN1ZTfzBdvy4xZIm6WY/TZBaYjdhge4kHFPx7qMLxvjidCYtmadot5d+O7WKxUcfDEkl5KxYf0S6H4WKj6Ir5UqIQICjzIIQ1YEvhoNFCYVFxR7kgz+jLA9RHe9y+NEpzXwDDwoPgQoOhqgRtNVOs0KpQao/75GV2skiN+DxKs7M7xJc4/KgYRvwU7wzpVkHShOZ3lXL74u02uEPfhke6eqRu8TlrnVZCQmOKEgSTHDRrSjAaObfey8KIPb4XqaVn2A/j1RdA7DeG387e4/hrG9zw8R7eBFfIh3B3EvQ9Xj2tTPle1nZom3mKQ58+egiY3wJGz2XVoAFmeQWiLC1YIQ2UjqJXhjdo+R7w6elZdnb3qngSbten8qRxO2nvzzZ9AulWgA5BbmfzfmPXm5veYYit6Xb8TXFOVu1mwUnIpHz13U+vyotX2LHXOh6gOFg3niU7LyRlqCRQrTQIqSlUrvHAhHbOesl0xR+Vu+L/1HNePKnnkh6IXNLGuyK33aXwk0l71/QhfAjfZKkkpj0eOPRtaNPJYhgWHR4vMB1AcUTBd2ZaAqUsvf6iSz4Z9u0UR9OZ9nj3BFNvug4KYSEtl+PcRChKymo/IqYvfv+I4Tj9QJxHO6QE/zGMWT+MmE2I2TLG1VQfH6ecx01rjpL3hGp6RIbPc2Ka2F4iqb3pJkzs3+1a9TXBT9jMqbA/jg5HUpNLlnxcbr/faKR0tDG+dOAkShC01KALxkAJYakXtilomvNmCAGbG9rtF7pEVdOmxr2/3uyIj4rdxiQnbXD4idR0fX6+zg9GKG1u7X/TwMxmgbuzZx0+ML/v/FCQtu773Z/P+e1vVOyuw2dursdq8HDjfaQG6/WfoG9MaaMMAAA=

metadata_json:
  {"categories":["integration","AI/chatbot","automation"],"complexity":"simple","use_cases":["Enable OpenRouter models on n8n versions before 1.78","Dynamically switch LLM models in agentic workflows","Prototype agentic LLM workflows using existing OpenAI node","Maintain compatibility when upgrading n8n is not possible"],"estimated_setup_minutes":10,"required_services":["OpenRouter (https://openrouter.ai) with API key and credits","n8n instance (pre-1.78)"],"key_features":["Uses OpenAI node with OpenRouter-specific BaseURL to call OpenRouter models","Dynamic model selection (model can be set or changed at runtime)","Agentic workflow support with memory buffer and chat nodes","Simple compatibility workaround for older n8n releases"],"target_audience":["n8n users","Developers/automation engineers","AI/ML prototypers and integrators"]}


