# templates

name: Automatic Background Removal for Images in Google Drive
author_name: Simon
author_username: simonfes
categories: []
created_at: 2024-11-05T10:13:13.396Z
updated_at: 2024-11-05T10:13:13.396Z
url: https://n8n.io/workflows/2529
scraped_at: 2025-09-14 19:11:02
metadata_generated_at: 2025-09-14 21:18:31
description:
  This n8n workflow simplifies the process of removing backgrounds from images stored in Google Drive. By leveraging the PhotoRoom API, this template enables automatic background removal, padding adjustments, and output formatting, all while storing the updated images back in a designated Google Drive folder.

  This workflow is very useful for companies or individuals that are spending a lot of time into removing the background from product images.

  How it Works

      The workflow begins with a Google Drive Trigger node that monitors a specific folder for new image uploads.
      Upon detecting a new image, the workflow downloads the file and extracts essential metadata, such as the file size.
      Configurations are set for background color, padding, output size, and more, which are all customizable to match specific requirements.
      The PhotoRoom API is called to process the image by removing its background and adding padding based on the settings.
      The processed image is saved back to Google Drive in the specified output folder with an updated name indicating the background has been removed.

  Requirements

      PhotoRoom API Key
      Google Drive API Access

  Customizing the Workflow

      Easily adjust the background color, padding, and output size using the configuration node.
      Modify the output folder path in Google Drive or replace Google Drive with another storage service if needed.
      For advanced use cases, integrate further image processing steps, such as adding captions or analyzing content using AI.

nodes_used:
  ["n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.splitOut","n8n-nodes-base.googleDrive","n8n-nodes-base.httpRequest","n8n-nodes-base.merge","n8n-nodes-base.googleDrive","n8n-nodes-base.googleDrive","n8n-nodes-base.editImage","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.googleDriveTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.if","n8n-nodes-base.splitInBatches"]

workflow_json_compressed:
  [encoded data, 4152 characters]

metadata_json:
  {"categories":["automation","integration","image processing","file management"],"complexity":"medium","use_cases":["Automated background removal for product photos","Bulk processing of new image uploads","E-commerce catalog preparation","Streamlining image prep for marketing or listings","Integrating background-removed assets into file storage workflows"],"estimated_setup_minutes":15,"required_services":["PhotoRoom API (API key)","Google Drive API access"],"key_features":["Monitors a Google Drive folder and triggers on new uploads","Downloads images and extracts metadata (e.g., file size)","Calls PhotoRoom API to remove backgrounds and apply padding/output settings","Configurable background color, padding, and output size","Saves processed images back to a specified Google Drive folder with updated filenames (background removed)"],"target_audience":["E-commerce teams and sellers","Photographers and product imagers","Marketing/content teams preparing visual assets"]}


name: Automated Work Attendance with Location Triggers
author_name: Rui Borges
author_username: rpb-dev
categories: []
created_at: 2024-11-05T12:13:46.324Z
updated_at: 2024-11-05T12:13:46.324Z
url: https://n8n.io/workflows/2530
scraped_at: 2025-09-14 19:11:03
metadata_generated_at: 2025-09-14 21:18:32
description:
  his workflow automates time tracking using location-based triggers.

  How it works
  Trigger: It starts when you enter or exit a specified location, triggering a shortcut on your iPhone.
  Webhook: The shortcut sends a request to a webhook in n8n.
  Check-In/Check-Out: The webhook receives the request and records the time and whether it was a "Check-In" or "Check-Out" event.
  Google Sheets: This data is then logged into a Google Sheet, creating a record of your work hours.

  Set up steps
  Google Drive: Connect your Google Drive account.
  Google Sheets: Connect your Google Sheets account.
  Webhook: Set up a webhook node in n8n.
  iPhone Shortcuts: Create two shortcuts on your iPhone, one for "Check-In" and one for "Check-Out."
  Configure Shortcuts: Configure each shortcut to send a request to the webhook with the appropriate "Direction" header.

  It's easy to setup, around 5 minutes.

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

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

metadata_json:
  {"categories":["automation","time tracking","mobile integration","productivity"],"complexity":"simple","use_cases":["Automated employee attendance logging","Personal time tracking for freelancers","Field worker presence verification","Payroll / hours reporting preparation","Location-based task/time audits"],"estimated_setup_minutes":5,"required_services":["n8n (webhook endpoint)","Google Drive","Google Sheets","iPhone Shortcuts (location triggers)"],"key_features":["Location-based enter/exit triggers via iPhone Shortcuts","Webhook receives Check-In/Check-Out requests","Timestamps and direction logged to Google Sheets","Quick, low-effort setup (~5 minutes)","Basic validation/branching using code and IF nodes"],"target_audience":["Employees and freelancers","HR and operations teams","Field service workers and managers of remote staff\",\"Solo entrepreneurs and small business owners"]}


name: Save Qualys Reports to TheHive
author_name: Angel Menendez
author_username: djangelic
categories: []
created_at: 2024-11-05T18:14:55.243Z
updated_at: 2024-11-05T18:14:55.243Z
url: https://n8n.io/workflows/2531
scraped_at: 2025-09-14 19:11:03
metadata_generated_at: 2025-09-14 21:18:32
description:
  Automate Report Generation with n8n & Qualys

  Introducing the Save Qualys Reports to TheHive Workflow—a robust solution designed to automate the retrieval and storage of Qualys reports in TheHive.

  This workflow fetches reports from Qualys, filters out already processed reports, and creates cases in TheHive for the new reports. It runs every hour to ensure continuous monitoring and up-to-date vulnerability management, making it ideal for Security Operations Centers (SOCs).

  How It Works:

  Set Global Variables:** Initializes necessary global variables like base_url and newtimestamp. This step ensures that the workflow operates with the correct configuration and up-to-date timestamps. Ensure to change the Global Variables to match your environment. 
    
  Fetch Reports from Qualys:** Sends a GET request to the Qualys API to retrieve finished reports. Automating this step ensures timely updates and consistent data retrieval.
    
  Convert XML to JSON:** Converts the XML response to JSON format for easier data manipulation. This transformation simplifies further processing and integration into TheHive.
    
  Filter Reports:** Checks if the reports have already been processed using their creation timestamps. This filtering ensures that only new reports are handled, avoiding duplicates.
    
  Process Each Report:** Loops through the list of new reports, ensuring each is processed individually. This step-by-step handling prevents issues related to bulk processing and improves reliability.
    
  Create Case in TheHive:** Generates a new case in TheHive for each report, serving as a container for the report data. Automating case creation improves efficiency and ensures that all relevant data is captured.
    
  Download and Attach Report:** Downloads the report from Qualys and attaches it to the respective case in TheHive. This automation ensures that all data is properly archived and easily accessible for review.


  Get Started:

  Ensure your Qualys and TheHive integrations are properly set up.
  Customize the workflow to fit your specific vulnerability management needs.


  Need Help?

  Join the discussion on our Forum or check out resources on Discord!


  Deploy this workflow to streamline your vulnerability management process, improve response times, and enhance the efficiency of your security operations.

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.filter","n8n-nodes-base.if","n8n-nodes-base.splitInBatches","n8n-nodes-base.wait","n8n-nodes-base.n8n","n8n-nodes-base.executeWorkflow","n8n-nodes-base.xml","n8n-nodes-base.splitOut","n8n-nodes-base.theHiveProject","n8n-nodes-base.httpRequest","n8n-nodes-base.theHiveProject","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"]

workflow_json_compressed:
  [encoded data, 7932 characters]

metadata_json:
  {"categories":["automation","integration","security"],"complexity":"medium","use_cases":["Automatically ingest Qualys vulnerability reports into case management","Create/attach cases in TheHive for SOC triage and incident response","Continuous vulnerability monitoring and archiving of reports","Reduce manual report handling and improve response times"],"estimated_setup_minutes":30,"required_services":["Qualys API","TheHive (TheHive Project) API","n8n instance with HTTP access to both APIs"],"key_features":["Scheduled hourly retrieval of finished Qualys reports","XML-to-JSON conversion for easier processing","Filtering to skip already-processed reports (timestamp-based deduplication)","Per-report processing loop with batching to avoid bulk issues","Automatic case creation in TheHive for each new report"],"target_audience":["Security Operations Center (SOC) teams","Security analysts / incident responders","Security engineers / vulnerability managers (VM) teams of record automation engineers"]}


name: Backup workflows to git repository on Github
author_name: Shashikanth
author_username: shashikanth
categories: []
created_at: 2024-11-06T19:49:39.666Z
updated_at: 2024-11-06T19:49:39.666Z
url: https://n8n.io/workflows/2532
scraped_at: 2025-09-14 19:11:03
metadata_generated_at: 2025-09-14 21:18:31
description:
  Source code, I maintain this worflow here.

  Usage Guide

  This workflow backs up all workflows as JSON files named in the [workflow_name].json format.

  Steps

  Create GitHub Repository  
     Skip this step if using an existing repository.

  Add GitHub Credentials  
     In Credentials, add the GitHub credential for the repository owner.

  Download and Import Workflow  
     Import this workflow into n8n.

  Set Global Values  
     In the Globals node, set the following:
       repo.owner: GitHub username of the repository owner.
       repo.name: Name of the repository for backups.
       repo.path: Path to the folder within the repository where workflows will be saved.

  Configure GitHub Nodes  
     Edit each GitHub node in the workflow to use the added credentials.

  Workflow Logic

  Each workflow run handles files based on their status:

  New Workflow  
     If a workflow is new, create a new file in the repository.

  Unchanged Workflow  
     If the workflow is unchanged, skip to the next item.

  Changed Workflow  
     If a workflow has changes, update the corresponding file in the repository.

  Current Limitations / Needs work

  Name Change of Workflows  
     If a workflow is renamed or deleted in n8n, the old file remains in the repository.
  Deleted Workflows  
     Deleted workflows in n8n are not removed from the repository.

nodes_used:
  ["n8n-nodes-base.github","n8n-nodes-base.set","n8n-nodes-base.n8n","n8n-nodes-base.splitInBatches","n8n-nodes-base.if","n8n-nodes-base.if","n8n-nodes-base.code","n8n-nodes-base.github","n8n-nodes-base.github","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

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

metadata_json:
  {"categories":["backup","integration","automation","devops"],"complexity":"medium","use_cases":["Automated backup of n8n workflows to GitHub","Version control and change history for workflows","Disaster recovery and migration of workflows between instances","Auditing workflow changes"],"estimated_setup_minutes":15,"required_services":["n8n instance","GitHub repository (with API credentials)"],"key_features":["Exports each workflow as a [workflow_name].json file","Creates new files for new workflows and updates files for changed workflows","Skips unchanged workflows to avoid unnecessary commits","Configurable repository owner, name, and target path via Globals","Uses GitHub API nodes for create/update operations and supports batching"],"target_audience":["n8n administrators","DevOps engineers","developers managing automation workflows"]}


name: Get Comments from Facebook Page
author_name: Sira Ekabut
author_username: siraekabut
categories: []
created_at: 2024-11-07T12:48:25.238Z
updated_at: 2024-11-07T12:48:25.238Z
url: https://n8n.io/workflows/2533
scraped_at: 2025-09-14 19:11:02
metadata_generated_at: 2025-09-14 21:18:31
description:
  This workflow automates the collection of comments from posts on a Facebook Page.  

  Providing clean, structured data for analysis or further automation.

  What this workflow does
  Fetches recent posts from a Facebook Page.
  Retrieves comments for each post.
  Outputs structured data of Comments and Posts for further use.

  Setup
  Facebook Graph API: Connect your Access Token with the required permissions (pages_read_engagement, pages_read_user_content).
  Workflow: Set the Page ID and the number of posts to fetch in the "Set Number of Latest Posts to Fetch" node.

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.splitOut","n8n-nodes-base.filter","n8n-nodes-base.set","n8n-nodes-base.splitOut","n8n-nodes-base.facebookGraphApi","n8n-nodes-base.facebookGraphApi","n8n-nodes-base.merge","n8n-nodes-base.code","n8n-nodes-base.set","n8n-nodes-base.stickyNote"]

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

metadata_json:
  {"categories":["automation","integration","data processing"],"complexity":"medium","use_cases":["Collect and aggregate Facebook Page comments for analysis","Moderation and quality control of user-generated content","Feed comments into sentiment analysis or NLP pipelines","Archive social engagement for reporting or compliance","Trigger downstream automations based on comment data"],"estimated_setup_minutes":15,"required_services":["Facebook Graph API (Page access token with pages_read_engagement and pages_read_user_content)"],"key_features":["Fetch latest posts from a Facebook Page","Retrieve all comments for each post (handles multiple posts)","Outputs structured Comments and Posts data for further processing","Configurable number of posts to fetch","Uses split/merge and filtering nodes to prepare clean data"],"target_audience":["Social media managers","Community moderators","Data analysts working with social engagement data」「Developers/automation engineers building integrations"]}


name: Telegram AI bot assistant: ready-made template for voice & text messages
author_name: Yulia
author_username: yulia
categories: []
created_at: 2024-11-07T15:22:37.896Z
updated_at: 2024-11-07T15:22:37.896Z
url: https://n8n.io/workflows/2534
scraped_at: 2025-09-14 19:11:00
metadata_generated_at: 2025-09-14 21:18:31
description:
  Free template for voice & text messages with short-term memory 
   
  This n8n workflow template is a blueprint for an AI Telegram bot that processes both voice and text messages. Ready to use with minimal setup. 
   
  The bot remembers the last several messages (10 by default), understands commands and provides responses in HTML. 
   
  You can easily swap GPT-4 and Whisper for other language and speech-to-text models to suit your needs. 
  Core Features 
     Text: send or forward messages 
     Voice: transcription via Whisper 
   
  Extend this template by adding LangChain tools. 
  Requirements 
  Telegram Bot API 
  OpenAI API (for GPT-4 and Whisper) 
   
  💡 New to Telegram bots? Check our step-by-step guide on creating your first bot and setting up OpenAI access. 
  Use Cases 
  Personal AI assistant 
  Customer support automation 
  Knowledge base interface 
  Integration hub for services that you use: 
    Connect to any API via HTTP Request Tool 
    Trigger other n8n workflows with Workflow Tool

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

workflow_json_compressed:
  [encoded data, 4644 characters]

metadata_json:
  {"categories":["automation","chatbot","voice processing","integration"],"complexity":"medium","use_cases":["Personal AI assistant","Customer support automation","Knowledge base interface","Transcribing and responding to voice messages","Integration hub to trigger other workflows or APIs"],"estimated_setup_minutes":15,"required_services":["Telegram Bot API","OpenAI API (GPT-4 for chat, Whisper for STT)","n8n instance","Optional: other external APIs via HTTP requests"],"key_features":["Handles both voice and text Telegram messages","Whisper-based transcription for voice","Short-term memory (memory buffer, default 10 messages)","HTML-formatted responses","Pluggable language and STT models (swap GPT-4/Whisper easily)"],"target_audience":["Developers building chatbots","Support teams automating responses","Product owners creating knowledge interfaces"]}


name: Get Long Lived Facebook User or Page Access Token
author_name: Sira Ekabut
author_username: siraekabut
categories: []
created_at: 2024-11-09T00:42:28.140Z
updated_at: 2024-11-09T00:42:28.140Z
url: https://n8n.io/workflows/2535
scraped_at: 2025-09-14 19:11:03
metadata_generated_at: 2025-09-14 21:18:32
description:
  Facebook access tokens expire quickly, requiring regular updates for continued API access. This workflow simplifies the process of exchanging short-lived tokens for long-lived ones, saving time and reducing manual effort.

  What this workflow does
  Exchanges a short-lived Facebook User Access Token for a long-lived token using the Facebook Graph API.
  Optionally retrieves a long-lived Page Access Token associated with the user.
  Outputs both the user and page tokens for further use in automation or integrations.

  Setup
  Prerequisites:

  A valid Facebook App ID and App Secret.
  A short-lived User Access Token from the Facebook platform.
  (Optional) The App-Scoped User ID for fetching associated page tokens.

  Workflow Configuration:
  Replace placeholder values in the "Set Parameter" node with your Facebook credentials and token.
  Run the workflow manually to generate long-lived tokens.

  Documentation Reference:

  Follow the official Facebook guide for more details: https://developers.facebook.com/docs/facebook-login/guides/access-tokens/get-long-lived/

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

workflow_json_compressed:
  H4sIAAAAAAAAE8VW7W7bNhR9FYEdkBYQbYoiKVFAf3TFVhQYtn5kK4YkCCjyStYiU6pIp/YMAX2M7fX6JINkx3FiJ+32Z/olUrz3XN1zzpXWqDIoQ9UL0s2T1x+qZDn/nbu3KERz8Apla1RZ55XV8Ho4R1KjFFWK54LEtChELCQRhOQJK0Ra8JwUMVNxHhESEQokknnMNWORjEQqkwSFyMO8rZWHlx0Y9x78on3ZzNsaPBiU+W4BfYismgPK0CvwwU+NLYOfqmswwY9KQ940V8GvDrqg6YI3qoTghdbgXHDaXIEd0qvSoezsIkS2MTDcrjevSBUnSaIMTiUAZoJLLGMlMZAo1xpyRZRBO+gPM7CBrit9Vdky+PL5r1NwPvjUdFdF3Xz68vnvAWrVDkdtavGIhXPlYDJXdqHq064qS+hQiNrGVb5qLMrOWEpCmpKLELWqU3Pw0DmUrftNqt+gc+O5qA+3NQPViQamcZEXEjPOKU6VBMxzFpmE6lTSCD3Yru83jdp15mi5M+/bd/BxAc7fLTYi5Gi1aNHVKENDnMum07JT7WxSbKmZ6GY+vaZkQqaNWvjZVI3sXPptDU07ZB/TdODaxjq4f18s6vrdbj0Kou9D5MCatwvoVpu9EH0cFm/uVLZf59n6pi1B2SnrL8fXD9G1qhfDbpFfwlLPlC1hW93Q9ZsQXVdg/WVl9iKer9fBd3+4xp6d3D4/uQj6/lioA92Bfzx8c+YwxWFtR9JMFg66y/3+jmku+vtyYhO6ExSDVKaJIJjF2mBmWIFVIjTmnEcJL3KqaPKYoEbH/VdB0ePy3wrq+VcVNbz505P34IMd7SfPJpWH+WRsiGrbS6ebFszl2JvKBH0/KLBZWO82I23WDG14/uqH0/9Ljfcccchr3pjV5F/yKpRmKZMpJhErMEtohKWgEitt4txEMZWwx+t7X+mrVfBz4+FBGt14Zntkj0XBSIjTZEJSweNUpJxTmsQHnH6qjJ+hjAoyiVgkhEgFSYaQEM2gKmceZZzTCSGJkDRlnHKWhkg31oP1KENPngQD0YOQqm5/9u96HJxbfOvDvcXGVcPGgUOGTdW2eKMSPDzHlQmeboSg6mfn9tw+eTJw1HRmmPy+CfyscoFp9LkNbiRq4BrqpoXO3dWpabSb3uzguikrOy0XlQG3HYR4LMNNS/C4bmyJ68FZU/TwJyCKlEipELhIQGOmucAypgnWrDAEGEvSQuwxu2+Oh7mFe9ZMHhj1twbpQ6Scq0o7h8FL2fru8uYjm0eFyFMVYaMpxyyPAEulYkw0AcapAmrgtto7Y3ZbqvNdZcs9YyyXyyXatUMqEaeJVFjHXGImlcGyAI0jqSUwnaTGiEOA3TB+CGS1Wq1uQYRMIpWyCIPhgJmRAudG5TgCBZoaHmmtb0EOVPYIzp/DdQukE244cIIFBYUZAMF5oRTmRSJ1wUzEkr12Hc63R5AW43VsbsQT1l+ESGlfXQPKClU7GCaa95UtR2phCXoxMP9LZ6BDGbqOBoVebzKMP4KxJDpONGCqpcIsZhHOdc4wLYSQheBAiUSjoS3o3ZS9K89sjeaqGvQ3jMfGfPs/zBgWosoaWKKM9BcXffh46LdhHfu8HcX6+u/hMcAH3HkEoe//ATrAJvWZCwAA

metadata_json:
  {"categories":["authentication","integration","social media","automation"],"complexity":"simple","use_cases":["Exchange short-lived Facebook User Access Token for a long-lived token","Obtain long-lived Page Access Token associated with a user","Automate token refresh as part of integrations or scheduled jobs","Enable longer-lived Facebook API access for apps and services"],"estimated_setup_minutes":10,"required_services":["Facebook Graph API","Facebook App (App ID & App Secret)","Facebook Pages (optional, if fetching page token)"],"key_features":["Exchanges short-lived user token for long-lived user access token","Optionally retrieves long-lived Page Access Token for the user","Outputs tokens for downstream automation or integrations","Simple parameter replacement in a Set node and manual run","Uses HTTP requests to Facebook Graph API"],"target_audience":["Developers","Integrators","DevOps / system administrators managing API credentials`,`Marketing techs managing social integrations"]}


name: Pattern for Parallel Sub-Workflow Execution Followed by Wait-For-All Loop
author_name: Hubschrauber
author_username: hubschrauber
categories: []
created_at: 2024-11-11T19:41:41.082Z
updated_at: 2024-11-11T19:41:41.082Z
url: https://n8n.io/workflows/2536
scraped_at: 2025-09-14 19:11:03
metadata_generated_at: 2025-09-14 21:18:31
description:
  What this workflow does
  This (set of) workflow(s) shows how to start multiple sub-workflows, asynchronously, in parallel, and then wait for all of them to complete.  Normally sub-workflows would need to be run synchronously, in series, or, if they are executed asynchronously (to run concurrently, in parallel), there is no easy way to merge/wait for an arbitrary number of them to complete.

  This is a "design pattern" template to show one approach for running multiple, data-driven instances of a sub-workflow "asynchronously," in parallel (instead of running them one at a time in series), but still prevent the later steps in the workflow from continuing until all of the sub-workflows have reported back that they are finished, via callback URL.  There are other techniques involving messaging services, database tables, or other external "flow manager" helpers, but this technique accomplishes the goal fully within n8n.

  Setup
  To implement this pattern, examine the nodes in the template and modify the incoming data leading to:
  A split-out loop to acynchronously execute a sub-workflow multiple times, in parallel.
      For instance, each sub-workflow might process one of a list of incoming documents.
      The resumeUrl for the main/parent workflow is provided to all of the sub-workflow executions, along with a unique identifier that can be counted later (e.g. a document file-name).
  A "wait-for-all" loop that checks whether all sub-workflows have reported back (if node) and builds a unique list of identifiers from the callbacks received from each execution of the sub-workflow.
      The sub-workflow should be designed to respond immediately (async) and later send a callback request when it has finished processing.
      The callback request should include the unique identifier value received when the sub-workflow it was started.

  This is meant to be a possible answer to questions like this one about running things in parallel,  maybe this one about waiting for things to finish, this one about managing sub-batches of things by waiting for each batch, or this one about running things in parallel.  The topic of how to do this comes up A LOT, and this is one of the only techniques that (so far) seems to work.

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

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

metadata_json:
  {"categories":["automation","integration","orchestration","data processing"],"complexity":"complex","use_cases":["Run many sub-workflows concurrently (parallel execution)","Process lists of documents/items in parallel and aggregate results","Batch processing where later steps must wait for all jobs to finish","Asynchronous task orchestration using callback/resume URLs","Managing sub-batches and synchronizing completion across dynamic counts of jobs"],"estimated_setup_minutes":30,"required_services":["n8n instance with webhook/resumeUrl support","Publicly accessible callback endpoint or tunneling service (ngrok, Cloudflare Tunnel)"],"key_features":["Launch multiple sub-workflows asynchronously in parallel","Use resumeUrl + unique identifiers to correlate callbacks","Wait-for-all loop to detect when every sub-workflow has completed","Build unique list of identifiers from callbacks to determine completion","Uses splitInBatches, HTTP/Webhook, and conditional (if) logic — all inside n8n (no external orchestrator required)"],"target_audience":["n8n users","Developers","Automation engineers/DevOps who build orchestrations and integrations"]}


name: Simple Social: Instagram Single Image Post with Facebook API
author_name: Edoardo Guzzi
author_username: mredodos
categories: []
created_at: 2024-11-12T12:13:49.467Z
updated_at: 2024-11-12T12:13:49.467Z
url: https://n8n.io/workflows/2537
scraped_at: 2025-09-14 19:11:01
metadata_generated_at: 2025-09-14 21:18:31
description:
  Simple Social: Instagram Single Image Post with Facebook API

  Who is this workflow for?
  This workflow is designed for businesses, social media managers, content creators, and developers who need to automate the process of posting single images to Instagram using the Facebook API. It is ideal for anyone looking to streamline their social media posting process, saving time and ensuring consistent content delivery.

  Use Case / Problem Solved
  Manually posting images and captions on Instagram can be time-consuming, especially for businesses and content creators managing multiple accounts. This workflow automates the process from image preparation to publishing, reducing manual effort and increasing efficiency.

  What this workflow does
  Trigger Initialization: The workflow starts with a manual trigger that can be adapted to other triggers (e.g., HTTP webhook or schedule).
  Set Parameters: The workflow includes a node that sets essential parameters, such as the image URL, Instagram business account ID, and caption.
  Prepare Instagram Media: A node prepares the media for upload using the Facebook API, sending the image and caption for pre-publication processing.
  Check Media Upload Status: The workflow verifies if the media preparation is complete.
  Conditional Check: If the media preparation is successful, the workflow proceeds to publish; otherwise, it triggers an error-handling path.
  Publish Media: The media is published on Instagram if the conditions are met.
  Post-Publish Check: The workflow checks the status after publication.
  Conditional Check for Publication: If the publication status is "PUBLISHED," it triggers a success path; otherwise, it triggers a failure handling.
  Email Notifications: The workflow sends email notifications to indicate successful or unsuccessful outcomes.

  Setup 

  Here is a quick video in italian language with sub eng(https://youtu.be/obWJFJvg_6g)

  Add API Credentials: Ensure that valid Facebook API credentials are added and configured for use.
  Permissions Required: Ensure your app has the necessary permissions (ads_management, business_management, instagram_basic, instagram_content_publish, pages_read_engagement). App review may be required for external user access.
  Node Configuration: Customize the Set Instagram Parameters node to specify the image URL, caption, and Instagram business account ID.
  Trigger Adaptation: Adapt the initial trigger if needed to fit your workflow's requirements (e.g., schedule, webhook).

  How to customize this workflow
  Change the Image URL and Caption**: Modify the Set Instagram Parameters node to change the image and caption.
  Trigger Customization**: Replace the manual trigger with other triggers like a webhook to automate posting based on external events.
  Notifications**: Adjust the email nodes to send customized messages or trigger other workflows based on the outcome.

  Limitations
  Image Format**: Only JPEG images are supported. Extended JPEG formats such as MPO and JPS are not compatible.
  Unsupported Tags**: Shopping tags, branded content tags, and filters are not supported.
  Instagram TV**: Publishing to Instagram TV is not supported.
  Rate Limit**: Instagram accounts are limited to 50 API-published posts within a rolling 24-hour period. Carousels count as a single post. Check usage with GET /{ig-user-id}/content_publishing_limit.

  Example Usage
  Imagine managing a business account that needs consistent posts. You can schedule this workflow or trigger it manually to automatically post images with captions at the right time, ensuring that your audience stays engaged without manual posting efforts.

nodes_used:
  ["n8n-nodes-base.facebookGraphApi","n8n-nodes-base.facebookGraphApi","n8n-nodes-base.manualTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.facebookGraphApi","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.facebookGraphApi","n8n-nodes-base.if","n8n-nodes-base.facebookGraphApi","n8n-nodes-base.if","n8n-nodes-base.emailSend","n8n-nodes-base.emailSend","n8n-nodes-base.emailSend","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 4280 characters]

metadata_json:
  {"categories":["automation","integration","social media","content publishing"],"complexity":"medium","use_cases":["Automate single-image Instagram posts via Facebook Graph API","Scheduled or webhook-triggered social media publishing","Streamline publishing workflow for businesses and creators","Notification and error handling for publish status"],"estimated_setup_minutes":20,"required_services":["Facebook Graph API / Meta (Instagram Business Account)","Facebook App with permissions: ads_management, business_management, instagram_basic, instagram_content_publish, pages_read_engagement (app review may be required)","Email service (SMTP or n8n Email node) for notifications","Optional: webhook or scheduler trigger (if not using manual trigger)"],"key_features":["Prepare media for Instagram upload via Facebook API","Check media upload and publication status","Conditional branching for success / failure with error handling","Publish single JPEG image to Instagram Business account","Email notifications for success and failure outcomes and post-publication checks"],"target_audience":["Businesses","Social media managers","Content creators / marketers"]}


name: Demo Workflow - How to use workflowStaticData()
author_name: Ria
author_username: riascho
categories: []
created_at: 2024-11-12T13:55:30.934Z
updated_at: 2024-11-12T13:55:30.934Z
url: https://n8n.io/workflows/2538
scraped_at: 2025-09-14 19:11:03
metadata_generated_at: 2025-09-14 21:18:31
description:
  This workflow demonstrates how to use the workflowStaticData() function to set any type of variable that will persist within workflow executions. 

  https://docs.n8n.io/code/cookbook/builtin/get-workflow-static-data/

  This can be useful for example when working with access tokens that expire after a certain time period. Using staticData we can keep a record of that access token and the expiry time and build our workflow logic around it. 

  Important

  Static Data only persists across production executions, i.e. triggered by Webhooks or Schedule Triggers (not manual executions!)
  For this the workflow will have to be activated. 

  Setup

  configure HTTP Request node to fetch access token from your API (optional)
  activate workflow
  test the workflow with the webhook production link
  you can check the population of the static data in the single executions

  Feedback

  If you found this useful or want to report some missing information - I'd be happy to hear from you at ria@n8n.io

nodes_used:
  ["n8n-nodes-base.webhook","n8n-nodes-base.noOp","n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.if","n8n-nodes-base.code"]

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

metadata_json:
  {"categories":["automation","integration","authentication"],"complexity":"simple","use_cases":["Caching and reusing API access tokens","Implementing token refresh logic","Persisting small pieces of workflow state between executions","Avoiding repeated auth requests for scheduled or webhook-triggered workflows"],"estimated_setup_minutes":15,"required_services":["n8n (workflow runtime)","Optional: external API that issues access tokens (for demo)"],"key_features":["Demonstrates workflowStaticData() for persistent variables","Stores access token and expiry time across production executions","Works with Webhook or Schedule triggers (not manual runs)","Includes example code nodes and HTTP request integration"],"target_audience":["Developers","Integration engineers","Automation builders"]}


name: AI Agent to chat with you Search Console Data, using OpenAI and Postgres
author_name: Dataki
author_username: dataki
categories: []
created_at: 2024-11-13T15:44:30.373Z
updated_at: 2024-11-13T15:44:30.373Z
url: https://n8n.io/workflows/2541
scraped_at: 2025-09-14 19:11:03
metadata_generated_at: 2025-09-14 21:18:31
description:
  Edit 19/11/2024: As explained on the workflow, the AI Agent with the original system prompt was not effective when using gpt4-o-mini.

  To address this, I optimized the prompt to work better with this model. You can find the prompts I’ve tested on this Notion Page. And yes, there is one that works well with gpt4-o-mini.

  AI Agent to chat with you Search Console Data, using OpenAI and Postgres



  This AI Agent enables you to interact with your Search Console data through a chat interface. Each node is documented within the template, providing sufficient information for setup and usage. You will also need to configure Search Console OAuth credentials.

  Follow this n8n documentation to set up the OAuth credentials.

  Important Notes

  Correctly Configure Scopes for Search Console API Calls
  It’s essential to configure the scopes correctly in your Google Search Console API OAuth2 credentials. Incorrect configuration can cause issues with the refresh token, requiring frequent reconnections. Below is the configuration I use to avoid constant re-authentication:



  Of course, you'll need to add your client_id and client_secret from the Google Cloud Platform app you created to access your Search Console data.

  Configure Authentication for the Webhook

  Since the webhook will be publicly accessible, don’t forget to set up authentication. I’ve used Basic Auth, but feel free to choose the method that best meets your security requirements.

  🤩💖 Example of awesome things you can do with this AI Agent

nodes_used:
  ["@n8n/n8n-nodes-langchain.memoryPostgresChat","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.webhook","n8n-nodes-base.stickyNote","n8n-nodes-base.respondToWebhook","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.toolWorkflow","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.executeWorkflowTrigger","n8n-nodes-base.switch","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.aggregate","n8n-nodes-base.aggregate","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.agent"]

workflow_json_compressed:
  [encoded data, 9892 characters]

metadata_json:
  {"categories":["integration","automation","AI agent","data analytics","developer tools"],"complexity":"complex","use_cases":["Conversational querying of Google Search Console data","SEO analysis and insights","Ad-hoc reporting and trend detection","Interactive diagnostics for site performance","Building an AI assistant with memory of past interactions"],"estimated_setup_minutes":60,"required_services":["Google Search Console (OAuth access)","Google Cloud Platform (to create OAuth credentials)","OpenAI API (lmChat)","Postgres (memory/chat storage)","n8n (workflow runner)"],"key_features":["Chat interface to query Search Console data","Uses OpenAI (lmChat) for natural language responses","Postgres-backed memory (memoryPostgresChat) to persist context and conversation history","OAuth2 configuration guidance for Search Console scopes","Webhook endpoint with configurable authentication (e.g., Basic Auth) for secure access"],"target_audience":["SEO specialists","Digital marketers","Data analysts focusing on search performance analytics」「Developers and DevOps engineers integrating Search Console with AI assistants"]}


name: Use a Custom URL for Recurring Zoom Meetings
author_name: Eric
author_username: automation-wizard
categories: []
created_at: 2024-11-13T19:55:21.795Z
updated_at: 2024-11-13T19:55:21.795Z
url: https://n8n.io/workflows/2543
scraped_at: 2025-09-14 19:11:03
metadata_generated_at: 2025-09-14 21:18:32
description:
  Use case

  Instead of this:
  https://us06web.zoom.us/j/83456429326?pwd=1hVesbyHCsOfstyVU3z4CR6D46A8K.1

  share this:
  mydomain.com/meet-me

  Do you ever wish you had one, simple URL that you can share with people to hop on a Zoom meeting? 😃

  You could waste time: 👎👎

  creating a recurring Zoom meeting 😫
  saving the link somewhere 😵‍💫
  finding it, copying it each time you need it 😭
  sharing an ugly long link with everyone 🤢

  Or...

  You could create a 🌹 beautiful link using your own domain/website that redirects to your Zoom meeting, and share that beautified URL with everyone. 😌 And it will be easy for you to remember 💡

  &gt; NOTE
  Zoom now forces a one-year max lifetime on recurring videos. 😐 So I created this simple workflow to solve a few headaches. ☺️

  What this workflow does

  Triggers once, annually (360 days)
  Creates a new, recurring meeting in Zoom
  Updates a redirect script with the new Zoom URL on a Wordpress Page
  Notifies you in a Slack channel

  What this workflow lacks in breakthrough innovation, it makes up for with usefulness and peace of mind.

  Have fun and make it your own!

  Setup
  Add your credentials in each node
  	this pre-requires you have a Zoom, Wordpress and Slack account, and have gotten API access on those accounts
  Create a Page in Wordpress, and get its ID.
  (Or create a new Page in WP.)
  Configure node parameters according to your needs.
  TEST!!!! Don't ever skip this step. Ever.
  Set it and forget it.

  &gt; NOTE
  You can replace the Wordpress node with another website CMS node, or generic HTTP request for a non-wordpress site.
  You can also remove or replace the Slack node with other notification functionality (eg. sms, whatsapp, email...)

  Template was created in n8n v1.58.2

nodes_used:
  ["n8n-nodes-base.zoom","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.wordpress","n8n-nodes-base.slack"]

workflow_json_compressed:
  H4sIAAAAAAAAE4VU/W/bNhD9V7jbsCYA7fpj6QI1CZB1LRKgS4eua7DURsBIF4s1xWOPpziuof99oGS3XuJgP4k6Pj7ce/exAk8FRsg+rcCbCiGDK6IKNMgypD9/6HstpHdjIva/dpeBohVLHrJPw/EvA31wOJhqCIZNhYIcIVuBULA5ZHCBC/UHolg/Aw2mlhK92Nx074FOaylH6aYoWk7j3lh0RcfRJjHWEFESQRusasG/A/nXXngJmXCNGj6T9b/hLTGeUZRNNBgWm9tgvHy0BVIXbzSIrfCKfFJ4WiHb3Dy/wMX1P8RzaJpO/Ufk2OY4bPQ3d/7KSyxqh+oD29kM+Umn4hr4HedJktPwiskr6cJKSDFGFJWcVVXnk0qAEpWphXqMhWXMRTnr5w+8H452e8+1w/S1XpDvjGvrW5hlPP8WGL8YaFhncSpnVDNk42b6WHx/tCX/krgIjDE+qXuxhdhO9eDF7lSDmeF5ARkMR2O194rRCCqjUlhZry7/1CqnsGz9OP9d0W17StdaBRMFlRVVIuM+aGCMVHOe0koI0EABedNqdSiMpGB3+N5mOXlBL5DB8cQfVShGlSKhh19qe3c8AcZbxlhOQK2RxxMYvFyt1E+fI/l+6r3rmp1qmgmcTPxROHm/Lpr1M62CQxNRLYwVZVRFFXrpb2ZCLaxz6gZn1qtYEotb/vzj4Wg8eHn0PJz8TzM6k8+f7sD17XYVfj18YljxvpWfhl8x5jVzym3Tj51hxQ8Tn0TvPUuwZ/t9K1j1H1oAaVod5okvL4336EBvTqnSK7i+ZrcZ0YqKlLuzUUDDnXF1+jU3+XA0Tu9MmqP3GGsnF53qatlrpfU27I0GkhL5XUgyY9f4uasLfGv9/ANdEs9vHS3W0//Q0VF/1Ex1agKfKrZmaNdg2jbGJufSfuwy3TECLUaD9QXeQzZoptNGb+F2sTwo3U6GR7tmF9F/1/UOnqb5F+KP2irlBQAA

metadata_json:
  {"categories":["automation","integration","website","notifications","CMS"],"complexity":"medium","use_cases":["Maintain a single custom URL that always redirects to an active Zoom recurring meeting","Automatically renew Zoom recurring meetings before expiration","Update website/CMS redirect with the new Zoom meeting URL","Send notifications (Slack) when the meeting/redirect is updated","Replace manual link-sharing and reduce expired meeting link issues"],"estimated_setup_minutes":30,"required_services":["n8n","Zoom (API access)","WordPress (REST API access) or other CMS/website with an API","Slack (incoming webhook or API)","A domain/website page to host the redirect"],"key_features":["Scheduled trigger (runs annually / every 360 days)","Creates a new recurring Zoom meeting via API","Updates a WordPress page (redirect script or link) with the new Zoom URL","Sends a Slack notification after update","Configurable — CMS and notification node can be swapped"],"target_audience":["small business owners","community organizers and event hosts","educators and coaches who use recurring Zoom links regularly (admins/officers responsible for meetings)"]}


name: Call analyzer with AssemblyAI transcription and OpenAI assistant integration
author_name: Mark Shcherbakov
author_username: lowcodingdev
categories: []
created_at: 2024-11-14T13:57:28.629Z
updated_at: 2024-11-14T13:57:28.629Z
url: https://n8n.io/workflows/2547
scraped_at: 2025-09-14 19:11:03
metadata_generated_at: 2025-09-14 21:18:31
description:
  Video Guide

  I prepared a detailed guide that showed the whole process of building a call analyzer.

  .png)

  Who is this for?
  This workflow is ideal for sales teams, customer support managers, and online education services that conduct follow-up calls with clients. It’s designed for those who want to leverage AI to gain deeper insights into client needs and upsell opportunities from recorded calls.

  What problem does this workflow solve?
  Many follow-up sales calls lack structured analysis, making it challenging to identify client needs, gauge interest levels, or uncover upsell opportunities. This workflow enables automated call transcription and AI-driven analysis to generate actionable insights, helping teams improve sales performance, refine client communication, and streamline upselling strategies.

  What this workflow does
  This workflow transcribes and analyzes sales calls using AssemblyAI, OpenAI, and Supabase to store structured data. The workflow processes recorded calls as follows:

  Transcribe Call with AssemblyAI: Converts audio into text with speaker labels for clarity.
  Analyze Transcription with OpenAI: Using a predefined JSON schema, OpenAI analyzes the transcription to extract metrics like client intent, interest score, upsell opportunities, and more.
  Store and Access Results in Supabase: Stores both transcription and analysis data in a Supabase database for further use and display in interfaces.

  Setup

  Preparation
  Create Accounts: Set up accounts for N8N, Supabase, AssemblyAI, and OpenAI.
  Get Call Link: Upload audio files to public Supabase storage or Dropbox to generate a direct link for transcription.
  Prepare Artifacts for OpenAI:
      Define Metrics: Identify business metrics you want to track from call analysis, such as client needs, interest score, and upsell potential.
      Generate JSON Schema: Use GPT to design a JSON schema for structuring OpenAI’s responses, enabling efficient storage, analysis, and display.
      Create Analysis Prompt: Write a detailed prompt for GPT to analyze calls based on your metrics and JSON schema.

  Scenario 1: Transcribe Call with AssemblyAI
  Set Up Request:
      Header Authentication: Set Authorization with AssemblyAI API key.
      URL: POST to https://api.assemblyai.com/v2/transcript/.
      Parameters:
          audio_url: Direct URL of the audio file.
          webhook_url: URL for an N8N webhook to receive the transcription result.
          Additional Settings:
              speaker_labels (true/false): Enables speaker diarization.
              speakers_expected: Specify expected number of speakers.
              language_code: Set language (default: en_us).

  Scenario 2: Process Transcription with OpenAI
  Webhook Configuration: Set up a POST webhook to receive AssemblyAI’s transcription data.
  Get Transcription:
      Header Authentication: Set Authorization with AssemblyAI API key.
      URL: GET https://api.assemblyai.com/v2/transcript/&lt;transcript_id&gt;.
  Send to OpenAI:
      URL: POST to https://api.openai.com/v1/chat/completions.
      Header Authentication: Set Authorization with OpenAI API key.
      Body Parameters:
          Model: Use gpt-4o-2024-08-06 for JSON Schema support, or gpt-4o-mini for a less costly option.
          Messages:
              system: Contains the main analysis prompt.
              user: Combined speakers’ utterances to analyze in text format.
          Response Format:
              type: json_schema.
              json_schema: JSON schema for structured responses.

  Save Results in Supabase:
      Operation: Create a new record.
      Table Name: demo_calls.
      Fields:
          Input: Transcription text, audio URL, and transcription ID.
          Output: Parsed JSON response from OpenAI’s analysis.

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.if","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.set","n8n-nodes-base.supabase","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","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"]

workflow_json_compressed:
  [encoded data, 7648 characters]

metadata_json:
  {"categories":["automation","integration","data processing","speech-to-text","AI analysis"],"complexity":"complex","use_cases":["Automated transcription of recorded calls","AI-driven call analysis to extract client intent and upsell opportunities","Storing and querying structured call analytics in a database","Monitoring and improving sales or support team performance","Generating structured JSON outputs for dashboards or downstream systems"],"estimated_setup_minutes":60,"required_services":["n8n","AssemblyAI","OpenAI (GPT-4 family or compatible model)","Supabase (or other Postgres-compatible storage)","Public file storage or link provider (e.g., Supabase Storage or Dropbox)","Publicly reachable webhook endpoint"],"key_features":["Speech-to-text transcription with speaker diarization","AI analysis using a predefined JSON schema for structured outputs","Configurable prompts and business metrics extraction (intent, interest score, upsell potential, etc.)","Automated webhook-driven flow between AssemblyAI, OpenAI, and Supabase","Stores both raw transcription and parsed analysis for later querying or UI display"],"target_audience":["Sales teams and managers","Customer support managers","Online education providers running follow-up calls or coaching sessions」「Developers and analysts building call analytics pipelines"]}


name: Automate Google Analytics Reporting
author_name: Alex Kim
author_username: alexk1919
categories: []
created_at: 2024-11-15T03:56:10.002Z
updated_at: 2024-11-15T03:56:10.002Z
url: https://n8n.io/workflows/2549
scraped_at: 2025-09-14 19:11:02
metadata_generated_at: 2025-09-14 21:18:31
description:
  Automate Google Analytics Reporting with n8n

  This n8n workflow collects, processes, and formats Google Analytics data into a comprehensive HTML report. The report is segmented into three primary categories: Engagement Stats, Search Results, and Country Views. The formatted report can be emailed or saved as a document, and the workflow includes error handling and logging for better debugging.

  Overview

  Purpose

  To automate the extraction, processing, and presentation of Google Analytics data in a visually appealing and structured format for easier insights and decision-making.

  Features

  Data Parsing**: Individual parsers process raw Google Analytics data for different time periods and categories.
  Data Aggregation**: Combines parsed data into a single structured JSON object.
  HTML Report Generation**: Formats the aggregated data into an HTML table with color-coded segments for better readability.
  Email or Document Output**: The formatted report can be emailed or saved as a Google Doc (will need additional setup).
  Error Handling**: Includes checks for missing data and detailed error messages for debugging.

  Workflow Steps

  Data Fetching:

     Six separate Google Analytics data pulls:
       Page Engagement Stats (This Week and Prior Week)
       Google Search Results (This Week and Prior Week)
       Country Views (This Week and Prior Week)

  Data Parsing:

     Each data pull is processed using a dedicated parser node to generate a URL-safe string.
     Example nodes:
       Parse - Get Page Engagement This Week
       Parse - Country Views Prior Week

  Data Aggregation:

     Aggregates parsed data into a structured JSON object using the Aggregate Data node.
     Ensures consistency and handles missing or malformed data.

  HTML Report Generation:

     Creates a formatted HTML report with color-coded tables for each segment:
       Engagement Stats: Green
       Search Results: Blue
       Country Views: Orange
     Includes headers and neatly formatted tables for each data set.

  Output:

     The report can be sent via email using the Gmail API or saved to Google Docs.
     Example nodes:
       Gmail node for email delivery.
       Google Docs node for saving the report as a document.

  Requirements

  Prerequisites

  Google Cloud Setup**:
    Enable Google Analytics API.
    Enable Gmail API (if using email output).
    Generate OAuth credentials for API access.
  n8n Installation**:
    Self-hosted n8n instance with required nodes (Gmail, Google Docs, etc.).
    Free Cloud-based n8n account.

  Environment Variables

  Ensure API credentials and tokens are set up in the n8n environment.
  Update the respective nodes with client ID, client secret, and access tokens.

  Configuration

  Google Analytics

  Configure the Get Report nodes with the appropriate property ID and metrics.
  Ensure correct date ranges are selected for each node.

  Formatting Node

  The Format Data node processes aggregated data and generates the HTML content.
  Customize the HTML styling and segment colors as needed.

  Email Node

  Configure the Gmail node with OAuth credentials.
  Set the recipient email address and subject line dynamically.

  Error Handling

  Common Issues

  Authentication Errors:

     Ensure OAuth credentials are correct.
     Verify that the APIs are enabled in the Google Cloud Console.

  Empty Data:

     Check the raw data from Google Analytics.
     Validate the property ID and query parameters in the Get Report nodes.

  Parsing Errors:

     Ensure the parser nodes are correctly configured and match the expected input format.

  Debugging

  Use debug logs in each node to identify data flow issues.
  Add error-handling nodes to capture and log issues during execution.

  Example Usage

  Run the Workflow
     Trigger the workflow to fetch, process, and format Google Analytics data.
  Verify Output
     Check the formatted HTML output in the debug logs.
     Ensure the email or Google Doc contains the correctly formatted report.

  Future Enhancements

  Add support for additional metrics or dimensions.
  Integrate with Slack for notifications.
  Enable scheduling for automated reports.
  Add a visual dashboard for real-time analytics.

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.googleAnalytics","n8n-nodes-base.googleAnalytics","n8n-nodes-base.googleAnalytics","n8n-nodes-base.googleAnalytics","n8n-nodes-base.stickyNote","n8n-nodes-base.code","n8n-nodes-base.googleAnalytics","n8n-nodes-base.googleAnalytics","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.set","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.stickyNote","n8n-nodes-base.gmail","n8n-nodes-base.scheduleTrigger"]

workflow_json_compressed:
  [encoded data, 8668 characters]

metadata_json:
  {"categories":["automation","integration","reporting","data processing"],"complexity":"medium","use_cases":["Automate weekly/daily Google Analytics reports","Send formatted analytics summaries to stakeholders via email or Google Docs","Compare time periods (this week vs prior week) for engagement, search results, and country views","Centralize and format GA raw data into human-readable HTML reports for review or archiving","Baseline monitoring and change detection for traffic/engagement metrics"],"estimated_setup_minutes":45,"required_services":["Google Analytics API (Google Cloud)","Google Cloud Console for OAuth credentials","Gmail API (for email delivery)","Google Docs API (optional, for document output)","n8n instance with relevant nodes (googleAnalytics, Gmail, Google Docs, Code, etc.)"],"key_features":["Multiple GA data pulls for different time ranges (this week/prior week)","Dedicated parsers for each dataset producing URL-safe strings","Aggregation into a single structured JSON object","HTML report generation with color-coded tables (Engagement green, Search blue, Country orange)","Output via Gmail or save to Google Docs (configurable)"],"target_audience":["Marketers","Data analysts","Product managers/growth teams who need recurring analytics summaries\",\"Developers/automation engineers responsible for n8n workflows"]}


name: Waitlist Form Stored in GoogleSheet with Email Verification Step
author_name: Marcel Claus-Ahrens
author_username: geckse
categories: []
created_at: 2024-11-15T20:38:32.392Z
updated_at: 2024-11-15T20:38:32.392Z
url: https://n8n.io/workflows/2550
scraped_at: 2025-09-14 19:11:03
metadata_generated_at: 2025-09-14 21:18:32
description:
  Instructions

  This automation streamlines the process of collecting user information using a Form Node, enabling individuals to join a waitlist managed via Google Sheets.

  It also generates a verification code, prompting users to input this code in the Second Form Step. If the code is _nvalid, the workflow keeps the user in a verification loop until a valid code is entered.

  Once a valid code is provided, the workflow proceeds to the final step, where additional information can be collected.

  All entered data and intermediate states are securely stored in the Google Sheet.

  Structure of the GoogleSheet

  Firstname | Lastname | Email | Company | Verification-Code | Verified | Intended Use
  Marcel | Claus-Ahrens | foo[at]bar| foobar | abc123 | TRUE | Just testing

  Setup

  Set Up a Google Sheet: Create a Google Sheet with the specified columns, or customize them to suit your needs.
  Verify the "Send Mail" Node: Ensure your "Send Mail" node is functional, or replace it with another email-sending node.
  Customize Texts and Fields: Update email content, form texts, and form fields to align with your specific use case.
  Done!

    
  Enjoy the workflow! ❤️  
  let the workf low — Workflow Automation & Development

nodes_used:
  ["n8n-nodes-base.googleSheets","n8n-nodes-base.set","n8n-nodes-base.emailSend","n8n-nodes-base.form","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.form","n8n-nodes-base.set","n8n-nodes-base.if","n8n-nodes-base.form","n8n-nodes-base.merge","n8n-nodes-base.stickyNote","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","n8n-nodes-base.stickyNote","n8n-nodes-base.crypto","n8n-nodes-base.formTrigger","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 5300 characters]

metadata_json:
  {"categories":["automation","data collection","user onboarding","integration"],"complexity":"medium","use_cases":["Waitlist management and signup","Beta program or gated-access registrations","Lead capture with email verification","Event or webinar registration with verification","Collecting and storing intermediate form states for follow-up"],"estimated_setup_minutes":20,"required_services":["Google Sheets","Email sending service (SMTP / Gmail / SendGrid / n8n Send Email)","n8n (Form node / workflow execution)"],"key_features":["Multi-step form capture using n8n Form nodes","Automatic generation of verification codes (crypto)","Email delivery of verification codes","Verification loop that enforces valid code entry before proceeding","Persisting all submissions and intermediate states in Google Sheets columns (including verification status)"],"target_audience":["Product managers","Growth marketers","Developers building signup flows or automations for startups/SMBs」「Community managers / event organizers"]}


name: Add new clients from Notion to Clockify
author_name: Manuel
author_username: automate-everything
categories: []
created_at: 2024-11-16T14:08:29.825Z
updated_at: 2024-11-16T14:08:29.825Z
url: https://n8n.io/workflows/2551
scraped_at: 2025-09-14 19:11:03
metadata_generated_at: 2025-09-14 21:18:33
description:
  Who is this template for?

  This workflow template is ideal for anyone using Notion for project management and Clockify for time tracking. The workflow automatically adds all new clients from Notion to Clockify.

  How it works
  Scans your Notion client table every minute for new clients
  Adds all new clients to your Clockify workspace

  Set up Steps
  Set up the Notion trigger node by adding your Notion API credentials as described in the n8n Notion docs.
  Go to your Notion clients page/table and give your integration permission to acces the data on this page.  
  Go back to n8n and select your Notion client page in the Notion trigger node.
  Set up the Clockify node by adding your Clockify API credentials as described in the n8n Clockify docs, select your Clockify workspace and map your client name column from Notion to the Clockify "Client Name" field.

nodes_used:
  ["n8n-nodes-base.clockify","n8n-nodes-base.notionTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  H4sIAAAAAAAAE6WV227cNhCGX0UY98oQDVISdQJ6YRgI3IukTu20F95FwMNwzaxEbiTu2s5C715IK8enOG3ROxGcmZ/8fs5oD1ZDDa1cbb6yi3N2+W59bvNbiKHFIKDeg3V9EE7hb2McpVlKjZBS0IRJbXgqGKMy5RlSZFQqIzliojHjPEfJE5nrrDJZyYSiZYowxOBEi1DDqdaRw9tINRZd6CPT+Tb64IP1Lgo+Omu8WltzDzEEseqhvl7G4LzG8XN/OLXhpTaspCTPMiQZ8oqINNFE5jJluSyNqQp4JngQe1n/fjPuu9KRSYBI0eOJegzY+N6O54L6OsloTNKELmPYiE60GLDrR0yzyK/7ffTLl967kw+ixWgYIIYOe7/t1Lh90IcYbn237jdixsq1YCqpKo5pkqssqbTEHFM24lIdanTBimbSeTjW6cZO7ozpn4rQfTrNbt6tL/86F6vzxzs/3DISSvmtCzAMh/v+iV0/3YgN8VyFmSJJZSZJSlVBMq4qIlPJieQ8YYxXhajSx8qzU1edXa2wi7x7YuabTN2UNOc8B0vYW2Q3vmmubIvTwgZspwfQej0K4A67+/fWbQPCsBxi0CKIUWvkuofPn7sG6tBtMX7IsBpi2IlmOy4mHi8IHw75lK9ffflDf8s+frzY6fXdV/+Kwkw32nR2J34K2VDDkPOMqMRwkmHGSImVJGUuuTFKyDxTj+Uvg1Xr+7Er8E2m/RQzhzwFOj1VXr4Gemt1uIE6pTSGG7SrmwB1ltMYlHdhtK+Go6O5FRfu6OgouvBNExnfPW3YhTs+vvJE+/74uF44dhKdeedQhejeb7voOZmFS06iS5z3RketW0XWBex2olm4dNxtvifPbTrXeLA0gre5CiETZnhGkBcFyQxlpKKUE8pYaspUohL0h1zZfwbL/h/Xh5Y8kH0+Bf+B6ctunqk2rwO+j5cJ7XuxeWbKjHeEESnfbNtp4oYbfCywgLPZA9HiAiJjsdE/4L+MQahgdwi1EU2PMfQYgnWriQjeodqOkr93GjuoYTeNtN0h/zD6UCtaCiTapCXJVGFIleYFSXMtVMGLMuWjRerAwXo3FX5jltd7aIUdTbpejsPgp0PqSfB++rP8i3/ElBCDdRrvoKbDcjkMw99aFAIURAcAAA==

metadata_json:
  {"categories":["automation","integration","productivity"],"complexity":"simple","use_cases":["Automatically add new clients from Notion to Clockify","Keep time-tracking client list in sync with project management","Eliminate manual client entry and reduce duplicate records","Maintain accurate client data across tools"],"estimated_setup_minutes":10,"required_services":["Notion (API integration)","Clockify (API / workspace)","n8n"],"key_features":["Periodic scanning of a Notion clients table for new entries","Automatic creation of clients in Clockify workspace","Field mapping from Notion to Clockify client name","Runs on a schedule (every minute) to keep systems synchronized"],"target_audience":["Project managers","Freelancers and consultants","Agencies and operations teams using Notion and Clockify"]}


name: AI Powered Web Scraping with Jina, Google Sheets and OpenAI : the EASY way
author_name: Derek Cheung
author_username: derekcheungsa
categories: []
created_at: 2024-11-17T03:48:20.277Z
updated_at: 2024-11-17T03:48:20.277Z
url: https://n8n.io/workflows/2552
scraped_at: 2025-09-14 19:11:00
metadata_generated_at: 2025-09-14 21:18:31
description:
  Purpose of workflow:
  The purpose of this workflow is to automate  scraping of a website, transforming it into a structured format, and loading it directly into a Google Sheets spreadsheet. 

  How it works:

  Web Scraping: Uses the Jina AI service to scrape website data and convert it into LLM-friendly text.
  Information Extraction: Employs an AI node to extract specific book details (title, price, availability, image URL, product URL) from the scraped data.
  Data Splitting: Splits the extracted information into individual book entries.
  Google Sheets Integration: Automatically populates a Google Sheets spreadsheet with the structured book data.

  Step by step setup:

  Set up Jina AI service:
     Sign up for a Jina AI account and obtain an API key.


  Configure the HTTP Request node:
     Enter the Jina AI URL with the target website.
     Add the API key to the request headers for authentication.

  Set up the Information Extractor node:
     Use Claude AI to generate a JSON schema for data extraction.
     Upload a screenshot of the target website to Claude AI.
     Ask Claude AI to suggest a JSON schema for extracting required information.
     Copy the generated schema into the Information Extractor node.

  Configure the Split node:
     Set it up to separate the extracted data into individual book entries.

  Set up the Google Sheets node:
     Create a Google Sheets spreadsheet with columns for title, price, availability, image URL, and product URL.
     Configure the node to map the extracted data to the appropriate columns.

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.splitOut","n8n-nodes-base.googleSheets","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.informationExtractor","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote"]

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

metadata_json:
  {"categories":["automation","web scraping","data processing","AI integration","sheets integration"],"complexity":"medium","use_cases":["Scrape product/book listings into structured data","Build price/availability monitoring spreadsheets","Quickly populate catalogs or inventories","Collect training or research datasets from web pages","Automate periodic website data extraction and logging"],"estimated_setup_minutes":20,"required_services":["Jina AI (scraping / document conversion)","Anthropic Claude (or another LLM for JSON schema/information extraction)","OpenAI API (if using lmChatOpenAi node)","Google Sheets (Google account / Sheets API)","Publicly accessible target website(s) to scrape"],"key_features":["Uses Jina AI to convert webpages into LLM-friendly text","AI-based information extraction to produce JSON records (title, price, availability, image URL, product URL)","Splits results into individual entries","Automatically writes structured data into Google Sheets","No-code node-based workflow suitable for non-developers"],"target_audience":["e-commerce managers","marketers","data analysts/researchers gathering web data for analysis or reporting\",\"no-code/automation builders\",\"developers prototyping scraping + LLM extraction pipelines"]}


name: MongoDB AI Agent - Intelligent Movie Recommendations
author_name: Pavel Duchovny
author_username: pash
categories: []
created_at: 2024-11-17T12:54:00.225Z
updated_at: 2024-11-17T12:54:00.225Z
url: https://n8n.io/workflows/2554
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:
  Database administrators and developers working with MongoDB
  Content managers handling movie databases
  Organizations looking to implement AI-powered search and recommendation systems
  Developers interested in combining LangChain, OpenAI, and MongoDB capabilities

  What problem does this workflow solve?
  Traditional database queries can be complex and require specific MongoDB syntax knowledge. This workflow addresses:
  The complexity of writing MongoDB aggregation pipelines
  The need for natural language interaction with movie databases
  The challenge of maintaining user preferences and favorites
  The gap between AI language models and database operations

  What this workflow does
  This workflow creates an intelligent agent that:
  Accepts natural language queries about movies
  Translates user requests into MongoDB aggregation pipelines
  Queries a movie database containing detailed information including:
     Plot summaries
     Genre classifications
     Cast and director information
     Runtime and release dates
     Ratings and awards
  Provides contextual responses using OpenAI's language model
  Allows users to save favorite movies to the database
  Maintains conversation context using a window buffer memory

  Setup
  Required Credentials:
     OpenAI API credentials
     MongoDB connection details

  Node Configuration:
     Configure the MongoDB connection in the MongoDBAggregate node
     Set up the OpenAI Chat Model with your API key
     Ensure the webhook trigger is properly configured for receiving chat messages

  Database Requirements:
     A MongoDB collection named "movies" with the specified document structure
     Proper indexes for efficient querying
     Appropriate user permissions for read/write operations

  How to customize this workflow
  Modify the Document Structure:
     Update the tool description in the MongoDBAggregate node to match your collection schema
     Adjust the aggregation pipeline templates for your specific use case

  Enhance the AI Agent:
     Customize the prompt in the "AI Agent - Movie Recommendation" node
     Modify the window buffer memory size based on your context needs
     Add additional tools for more functionality

  Extend Functionality:
     Add more MongoDB operations beyond aggregation
     Implement additional workflows for different types of queries
     Create custom error handling and validation
     Add user authentication and rate limiting

  Integration Options:
     Connect to external APIs for additional movie data
     Add webhook endpoints for different platforms
     Implement caching mechanisms for frequent queries
     Add data transformation nodes for specific output formats

  This workflow serves as a foundation that can be adapted to various use cases beyond movie recommendations, such as e-commerce product search, content management systems, or any scenario requiring intelligent database interaction.

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

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

metadata_json:
  {"categories":["integration","data processing","AI/ML","database"],"complexity":"medium","use_cases":["Natural-language movie search","AI-powered movie recommendations","Translate user queries into MongoDB aggregation pipelines","Maintain conversational context and user preferences","Save and manage user favorite movies / writeback to DB"],"estimated_setup_minutes":45,"required_services":["OpenAI API","MongoDB (Atlas or self-hosted)","LangChain (library/framework)","n8n instance (webhook endpoint)"],"key_features":["Translates natural language requests into MongoDB aggregation pipelines","Agent-driven conversational interface using OpenAI","Window buffer memory to maintain conversation context","Read and write operations (save favorites) to the movies collection","Customizable prompts, aggregation templates, and tool descriptions for schema alignment"],"target_audience":["Developers","Database administrators","Content managers (movie catalogs) and curators who manage metadata and recommendations\",\"Data engineers and ML engineers building retrieval-enhanced apps"]}


name: Send Webflow form data to Google Sheets
author_name: Giovanni Ruggieri
author_username: gioru
categories: []
created_at: 2024-11-17T13:03:12.374Z
updated_at: 2024-11-17T13:03:12.374Z
url: https://n8n.io/workflows/2555
scraped_at: 2025-09-14 19:11:03
metadata_generated_at: 2025-09-14 21:18:32
description:
  Send Webflow form data to Google Sheets 🚀  
  How It Works  
  This workflow connects your Webflow form submissions to Google Sheets with style and efficiency. Here's the magic in action:  
  Form Submitted 🎉 – A Webflow form submission triggers the flow.  
  Fields Prepared 🛠️ – Data gets organized, and a submission date is added.  
  Data Logged 📋 – Your data finds a cozy new home in Google Sheets.  

  Set-Up Steps  
  ⏱️ Estimated Time: 5-10 minutes  
  Connect Webflow 🌐 – Hook up your Webflow account and disable legacy APIs (instructions inside the workflow).  
  Set Up Google Sheets 🧾 – Choose your spreadsheet and authenticate.  
  You're Ready! 💫 – Let the workflow take it from here.  

  Why You'll Love It ❤️  
  No More Manual Copy-Paste:** Save time and keep data clean.  
  Smart Field Mapping:** Automatically creates columns and fits your data.  
  Helpful Notes Along the Way:** Friendly tips guide you through setup like a pro.  

  Enjoy the smooth ride from Webflow to Google Sheets! 🚀  

nodes_used:
  ["n8n-nodes-base.code","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.webflowTrigger","n8n-nodes-base.googleSheets","n8n-nodes-base.stickyNote"]

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

metadata_json:
  {"categories":["integration","automation","data processing"],"complexity":"simple","use_cases":["Log Webflow form submissions to a spreadsheet","Centralize lead capture","Create backups of form data","Feed form data into reporting or downstream processes","Quickly map and normalize form fields"],"estimated_setup_minutes":10,"required_services":["Webflow","Google Sheets (Google account)","n8n"],"key_features":["Triggers on Webflow form submission","Prepares and normalizes fields","Adds submission date","Appends rows to Google Sheets","Automatically maps/creates spreadsheet columns with guidance notes"],"target_audience":["Marketers","Web designers","Small business owners/operators\",\"Growth teams\",\"Operations/Customer Success"]}


name: Exponential Backoff for Google APIs
author_name: Alex Kim
author_username: alexk1919
categories: []
created_at: 2024-11-18T21:52:56.975Z
updated_at: 2024-11-18T21:52:56.975Z
url: https://n8n.io/workflows/2556
scraped_at: 2025-09-14 19:11:03
metadata_generated_at: 2025-09-14 21:18:32
description:
  n8n Workflow: Exponential Backoff for Google APIs

  Overview
  This n8n workflow implements an Exponential Backoff mechanism to handle retries when interacting with Google APIs. It ensures that failed API requests are retried with increasing delays, up to a specified maximum retry count. This approach helps mitigate transient errors (e.g., rate limits or temporary network issues) while maintaining workflow efficiency.

  Key Features:
  Exponential Backoff Logic**: Dynamically increases wait time between retries based on the retry count.
  Error Handling**: Stops the workflow and raises an error after a specified number of retries.
  Dynamic Waiting**: Waits for a calculated duration before each retry.
  Scalable Design**: Modular nodes for easy debugging and customization.

  Workflow Details

  Nodes in the Workflow:

  Trigger (When clicking "Test Workflow"):
     Manually starts the workflow for testing.

  Loop Over Items:
     Iterates over multiple input items to process Google API requests row by row.

  Google API Node (Example: Update Sheet):
     Sends a request to a Google API endpoint (e.g., updating a row in Google Sheets).
     On success: Moves to the next item in the loop.
     On error: Passes the error to the Exponential Backoff node.

  Exponential Backoff:
     Calculates the delay for the next retry based on the retry count.
     Logic:
            const retryCount = $json["retryCount"] || 0;
       const maxRetries = 5;
       const initialDelay = 1; // in seconds

       if (retryCount &lt; maxRetries) {
           const currentDelayInSeconds = initialDelay * Math.pow(2, retryCount);
           return {
               json: {
                   retryCount: retryCount + 1,
                   waitTimeInSeconds: currentDelayInSeconds,
                   status: 'retrying',
               }
           };
       } else {
           return {
               json: {
                   error: 'Max retries exceeded',
                   retryCount: retryCount,
                   status: 'failed'
               }
           };
       }
       
  Wait:
     Dynamically waits for the waitTimeInSeconds value calculated in the Exponential Backoff node.
     Configuration:
       Resume: After Time Interval
       Wait Amount: {{ $json["waitTimeInSeconds"] }}
       Unit: Seconds

  Check Max Retries:
     Evaluates whether the retry count has exceeded the maximum limit.
     Routes the workflow:
       True: Passes to the Stop and Error node.
       False: Loops back to the Google API node for retry.

  Stop and Error:
     Stops the workflow and logs the error when the maximum retry count is reached.

  Parameters
  Configurable Settings:
  Max Retries:
     Defined in the Exponential Backoff node (const maxRetries = 5).
     Adjust this value based on your requirements.

  Initial Delay:
     The starting wait time for retries, defined as 1 second.

  Google API Configuration:
     Ensure your Google API node is properly authenticated and configured with the desired endpoint and parameters.

  How to Use
  Import the Workflow:
     Copy the workflow JSON and import it into your n8n instance.

  Configure Google API Node:
     Set up the Google API node with your credentials and target API endpoint (e.g., Google Sheets, Gmail, etc.).

  Test the Workflow:
     Manually trigger the workflow and observe the retry behavior in case of errors.

  Monitor Logs:
     Use the console logs in the Exponential Backoff node to debug retry timings and status.

  Example Scenarios
  Scenario 1: Successful Execution
  The Google API processes all requests without errors.
  Workflow completes without triggering the retry logic.

  Scenario 2: Transient API Errors
  The Google API returns an error (e.g., 429 Too Many Requests).
  The workflow retries the request with increasing wait times.

  Scenario 3: Maximum Retries Exceeded
  The workflow reaches the maximum retry count (e.g., 5 retries).
  An error is raised, and the workflow stops.

  Considerations
  Jitter:
     This workflow does not implement jitter (randomized delay) since it's not required for low-volume use cases.
     If needed, jitter can be added to the exponential backoff calculation.

  Retry Storms:
     If multiple workflows run simultaneously, ensure your API quotas can handle potential retries.

  Error Handling Beyond Max Retries:
     Customize the Stop and Error node to notify stakeholders or log errors in a centralized system.

  Customization Options
  Adjust the maximum retry limit and delay calculation to suit your use case.
  Add additional logic to handle specific error codes differently.
  Extend the workflow to notify stakeholders when an error occurs (e.g., via Slack or email).

  Troubleshooting
  Retry Not Triggering**:
    Ensure the retryCount variable is passed correctly between nodes.
    Confirm that the error output from the Google API node flows to the Exponential Backoff node.

  Incorrect Wait Time**:
    Verify the Wait node is referencing the correct field for waitTimeInSeconds.

  Request for Feedback
  We are always looking to improve this workflow. If you have suggestions, improvements, or ideas for additional features, please feel free to share them. Your feedback helps us refine and enhance this solution!

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

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

metadata_json:
  {"categories":["integration","automation","error-handling","reliability"],"complexity":"medium","use_cases":["Retrying transient Google API failures (429/5xx)","Robustly updating Google Sheets or other Google services row-by-row","Implementing rate-limit/backoff strategies in n8n workflows","Batch processing with fault tolerance"],"estimated_setup_minutes":10,"required_services":["n8n instance","Google APIs (e.g., Google Sheets, Gmail) with valid credentials"],"key_features":["Exponential backoff delay calculation","Dynamic Wait node using calculated waitTimeInSeconds","Max-retry enforcement with Stop and Error handling","Per-item looping and retry routing","Modular nodes for easy debugging and customization"],"target_audience":["developers","automation engineers","SREs/ops engineers who manage integrations"]}


name: Hacker News to Video Content
author_name: Alex Kim
author_username: alexk1919
categories: []
created_at: 2024-11-19T16:37:48.304Z
updated_at: 2024-11-19T16:37:48.304Z
url: https://n8n.io/workflows/2557
scraped_at: 2025-09-14 19:11:00
metadata_generated_at: 2025-09-14 20:27:49
description:
  Hacker News to Video Content

  Overview
  This workflow converts trending articles from Hacker News into engaging video content. It integrates AI-based tools to analyze, summarize, and generate multimedia content, making it ideal for content creators, educators, and marketers.

  Features
  Article Retrieval:
     Pulls trending articles from Hacker News.
     Limits the number of articles to process (configurable).

  Content Analysis:
     Uses OpenAI's GPT model to:
       Summarize articles.
       Assess their relevance to specific topics like automation or AI.
       Extract key image URLs.

  Image and Video Generation:
     Leonardo.ai: Creates stunning AI-generated images based on extracted prompts.
     RunwayML: Converts images into high-quality videos.

  Structured Content Creation:
     Parses content into structured formats for easy reuse.
     Generates newsletter-friendly blurbs and social media-ready captions.

  Cloud Integration:
     Uploads generated assets to:
       Dropbox
       Google Drive
       Microsoft OneDrive
       MinIO

  Social Media Posting (Optional):
     Supports posting to YouTube, X (Twitter), LinkedIn, and Instagram.

  Workflow Steps

  1. Trigger
  Initiated manually via the "Test Workflow" button.

  2. Fetch Articles
  Retrieves articles from Hacker News.
  Limits the results to avoid processing overload.

  3. Content Filtering
  Evaluates if articles are related to AI/Automation using OpenAI's language model.

  4. Image and Video Generation
  Generates:
    AI-driven image prompts via Leonardo.ai.
    Videos using RunwayML.

  5. Asset Management
  Saves the output to cloud storage services or uploads directly to social media platforms.

  Prerequisites

  API Keys**:
    Hacker News
    OpenAI
    Leonardo.ai
    RunwayML
    Creatomate

  n8n Installation**:
    Ensure n8n is installed and configured locally or on a server.

  Credentials**:
    Set up credentials in n8n for all external services used in the workflow.

  Customization
  Replace Hacker News with any other data source node if needed.
  Configure the "Article Analysis" node for different topics.
  Adjust the cloud storage services or add custom storage options.

  Usage
  Import this workflow into your n8n instance.
  Configure your API credentials.
  Trigger the workflow manually or schedule it as needed.
  Check the outputs in your preferred cloud storage or social media platform.

  Notes
  Extend this workflow further by automating social media posting or newsletter integration.
  For any questions, refer to the official documentation or reach out to the creator.

  About the Creator
  This workflow was built by AlexK1919, an AI-native workflow automation architect. Check out the overview video for a quick demo.

  Tools Used
  Leonardo.ai**
  RunwayML**
  Creatomate**
  Hacker News API**
  OpenAI GPT**

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

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.hackerNews","n8n-nodes-base.splitInBatches","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.toolHttpRequest","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.s3","n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.wait","n8n-nodes-base.stickyNote","n8n-nodes-base.if","n8n-nodes-base.httpRequest","n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.wait","n8n-nodes-base.limit","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.wait","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.dropbox","n8n-nodes-base.googleDrive","n8n-nodes-base.microsoftOneDrive","n8n-nodes-base.youTube","n8n-nodes-base.twitter","n8n-nodes-base.httpRequest","n8n-nodes-base.linkedIn","n8n-nodes-base.httpRequest","n8n-nodes-base.wait","n8n-nodes-base.wait","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 8816 characters]

metadata_json:
  {"categories":["automation","content-creation","media-generation","integration"],"complexity":"complex","use_cases":["Turn trending Hacker News articles into short video content","Automated newsletter blurbs and social captions from news","Content repurposing and trend-based content production","Automated asset generation and cloud-based archival","Social media publishing of generated videos (optional)"],"estimated_setup_minutes":60,"required_services":["Hacker News API","OpenAI (GPT)","Leonardo.ai","RunwayML","Creatomate","Dropbox","Google Drive","Microsoft OneDrive","MinIO","YouTube API (optional)","X/Twitter API (optional)","LinkedIn API (optional)","Instagram API (optional)","n8n instance"],"key_features":["Fetch trending articles from Hacker News with configurable limits","AI article analysis and summarization using OpenAI GPT","Relevance filtering for topics like automation/AI","Extracts image URLs and generates image prompts","Generate AI images via Leonardo.ai and convert to video via RunwayML (and Creatomate)"],"target_audience":["Content creators","Marketers and social media managers","Educators and course creators producing video content from articles (e.g., explainers) ]"]}


name: Visualize your SQL Agent queries with OpenAI and Quickchart.io
author_name: Agent Studio
author_username: agentstudio
categories: []
created_at: 2024-11-20T10:54:23.294Z
updated_at: 2024-11-20T10:54:23.294Z
url: https://n8n.io/workflows/2559
scraped_at: 2025-09-14 19:11:02
metadata_generated_at: 2025-09-14 21:18:31
description:
  Overview  
  This workflow aims to provide data visualization capabilities to a native SQL Agent.  
  Together, they can help foster data analysis and data visualization within a team.  
  It uses the native SQL Agent that works well and adds visualization capabilities thanks to OpenAI’s Structured Output and Quickchart.io.  

  How it works  
  Information Extraction:  
     The Information Extractor identifies and extracts the user's question.  
     If the question includes a visualization aspect, the SQL Agent alone may not respond accurately.  

  SQL Querying:  
     It leverages a regular SQL Agent: it connects to a database, queries it, and translates the response into a human-readable format.  

  Chart Decision:  
     The Text Classifier determines whether the user would benefit from a chart to support the SQL Agent's response.  

  Chart Generation:  
     If a chart is needed, the sub-workflow dynamically generates a chart and appends it to the SQL Agent’s response.  
     If not, the SQL Agent’s response is output as is.  

  Calling OpenAI for Chart Definition:  
     The sub-workflow calls OpenAI via the HTTP Request node to retrieve a chart definition.  

  Building and Returning the Chart:  
     In the "Set Response" node, the chart definition is appended to a Quickchart.io URL, generating the final chart image.  
     The AI Agent returns the response along with the chart.  

  How to use it  
  Use an existing database or create a new one.  
  For example, I've used this Kaggle dataset and uploaded it to a Supabase DB.  
  Add the PostgreSQL or MySQL credentials.  
  Alternatively, you can use SQLite binary files (check this template).  
  Activate the workflow.  
  Start chatting with the AI SQL Agent.  
  If the Text Classifier determines a chart would be useful, it will generate one in addition to the SQL Agent's response.  

  Notes  
  The full Quickchart.io specifications have not been fully integrated, so there may be some glitches (e.g., radar graphs may not display properly due to size limitations).  

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

workflow_json_compressed:
  [encoded data, 8332 characters]

metadata_json:
  {"categories":["data visualization","integration","automation","data processing","AI-assisted analytics"],"complexity":"medium","use_cases":["Automatically generate charts from SQL query results","Augment conversational SQL agents with visual output","Quick exploratory data analysis via chat","Team reporting and data sharing with visual context","Prototyping visualizations for BI dashboards"],"estimated_setup_minutes":30,"required_services":["PostgreSQL","MySQL","SQLite (binary files)","Supabase (optional)","OpenAI (or other LLM endpoint via HTTP)","QuickChart (quickchart.io)","n8n"],"key_features":["Extracts user question and intent (information extractor)","Executes SQL queries via a native SQL Agent","Text classifier decides whether a chart is beneficial","Calls OpenAI to generate structured chart definitions","Builds QuickChart URLs and appends chart images to responses"],"target_audience":["data analysts","developers","data engineers working with SQL and automation tools"]}


name: Send daily translated Calvin and Hobbes Comics to Discord
author_name: Nathan Lee
author_username: datapopcorn
categories: []
created_at: 2024-11-20T13:01:10.683Z
updated_at: 2024-11-20T13:01:10.683Z
url: https://n8n.io/workflows/2560
scraped_at: 2025-09-14 19:11:03
metadata_generated_at: 2025-09-14 21:18:32
description:
  How it works
  Automates the retrieval of Calvin and Hobbes daily comics.
  Extracts the comic image URL from the website.
  Translates comic dialogues to English and Korean.
  Posts the comic and translations to Discord daily.

  Set up steps
  Estimated setup time: ~10-15 minutes.
  Use a Schedule Trigger to automate the workflow at 9 AM daily.
  Add nodes for parameter setup, HTTP request, data extraction, and integration with Discord.
  Add detailed notes to each node in the workflow for easy understanding.

nodes_used:
  ["n8n-nodes-base.stickyNote","n8n-nodes-base.scheduleTrigger","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.set","n8n-nodes-base.discord","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.informationExtractor","n8n-nodes-base.httpRequest"]

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

metadata_json:
  {"categories":["automation","content distribution","translation","integration","social media"],"complexity":"medium","use_cases":["Automated daily content delivery","Translating image/dialogue text to multiple languages","Posting comics to community channels (Discord)","Content curation for multilingual audiences","Workflow scheduling and monitoring"],"estimated_setup_minutes":12,"required_services":["Calvin and Hobbes (comic source website) via HTTP requests","Discord (bot or webhook)","OpenAI API (lmChat/OpenAI nodes for translation and text extraction)","n8n instance/environment"],"key_features":["Scheduled daily trigger (9 AM)","Fetch comic page and extract comic image URL","Extract dialogue/text from comic page","Translate dialogues to English and Korean via LLM","Post original comic and translations to Discord channel(s)"],"target_audience":["Community managers","Social media managers","Developers building content automations or bots\",\"n8n users/automation hobbyists\",\"Fans wanting automated comic delivery"]}


name: Send Matomo analytics data to A.I. to analyze then save results in Baserow
author_name: Keith Rumjahn
author_username: rumjahn
categories: []
created_at: 2024-11-21T10:17:45.990Z
updated_at: 2024-11-21T10:17:45.990Z
url: https://n8n.io/workflows/2561
scraped_at: 2025-09-14 19:11:03
metadata_generated_at: 2025-09-14 21:18:32
description:
  Who's this for?

  If you own a website and need to analyze your Matomo analytics data so you can increse the number of frequent visitors
  If you need to create an SEO report on what are the common trends amongst your most frequent visitors
  If you want to grow your site based on suggestions from data

  Matomo is an analytics tool that can give you details of each individual visitor. Much more powerful than Google analytics.

  Watch youtube tutorial here

  Get my SEO A.I. agent system here




  Here's the A.I. output:



  Keywords showing the most improvement:
  Openrouter N8N.

  Keywords needing attention:
  Ai Generated Reference Letter

  Obsidian Second Brain

  Suggested actions for improvement: 
  Optimize for "best Docker Synology" despite stable ranking, an improvement to top 10 is an achievable goal.

  Since "2nd brain app for developer"  is of interest to a developer. Consider writing a blog post on how the app addresses the specific pain points of developers.

  Use case
  Instead of hiring an SEO expert, I run this report weekly. It looks at the data for the past week and looks for visitors with more than 3 visits and recommends ideas to convert more visitors into frequent visitors.

  How it works
  The workflow gathers matomo analytics for the past 7 days.
  We then parse the data 
  The data is sent to Openrouter and using a FREE LLM, it analyses the data.
  It stores the results in baserow

  How to use this
  Input your Matomo analytics credentials
  Input your Matomo site ID
  Input your Openrouter.ai credentials
  Input your baserow credentials
  You will need to create a baserow database with columns: Dates, Notes, Blog.

  Created by Rumjahn

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.httpRequest","n8n-nodes-base.baserow","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","data-processing","analytics","seo"],"complexity":"medium","use_cases":["Weekly SEO reports from Matomo data","Identify and prioritize keywords to improve","Detect and analyze frequent visitors (e.g., >3 visits)","Generate actionable content/SEO recommendations via an LLM","Persist analysis/results in a Baserow database for tracking"],"estimated_setup_minutes":20,"required_services":["Matomo (API access)","Openrouter.ai (or compatible LLM endpoint)","Baserow (database/API)","n8n (workflow runner)"],"key_features":["Collects Matomo analytics for a configurable date range (default: last 7 days)","Filters visitors (e.g., frequent visitors) and parses visit data","Sends parsed data to a free LLM via Openrouter for analysis and suggestions","Stores AI-generated analysis and notes into a Baserow table (Dates, Notes, Blog)","Runs on a schedule (e.g., weekly) or can be triggered manually"],"target_audience":["Website owners","SEO specialists and content marketers","Growth hackers and product managers focused on retention/conversion optimization\",\"Developers or ops engineers setting up automation"]}


name: Simple Bluesky multi-image post using native Bluesky API
author_name: Tom Sekula
author_username: tsekula
categories: []
created_at: 2024-11-21T13:17:26.961Z
updated_at: 2024-11-21T13:17:26.961Z
url: https://n8n.io/workflows/2562
scraped_at: 2025-09-14 19:11:03
metadata_generated_at: 2025-09-14 21:18:32
description:
  Who is this workflow for?
  This workflow is the baseline workflow for anyone who needs to automate the process of posting 1-4 images to Bluesky using the Bluesky API. It is ideal for anyone looking to streamline their social media posting process, saving time and ensuring consistent content delivery.

  Use Case / Problem Solved
  Manually posting images and captions on Instagram can be time-consuming, especially for businesses and content creators managing multiple accounts. This workflow automates the process from image preparation to publishing, reducing manual effort and increasing efficiency.

  What this workflow does
  Trigger Initialization: The workflow starts with a manual trigger that can be adapted to other triggers (e.g., HTTP webhook or schedule).
  Set Parameters: The workflow includes a node that sets essential parameters, such as the Bluesky account ID, image URLs, and caption.
  Prepare Bluesky Session: A node creates the authenticated session data used by the upload and post operations later in the workflow.
  Publish Media: Nodes retrieve image files from the specified URLS and uploads them as blobs to Bluesky, a necessary pre-requisite for a Bluesky post to have images attached.
  Post text caption + images: A node does the final call to the Bluesky API, including the text caption and relevant image references.

  Setup
  Sign-in to Bluesky and create an App Password
  Add your username and App Password to the Define Credentials node.
  Set the caption (text content) of your post in the Set Caption node.
  Set 1-4 image URLs in the Set Images node
  Adapt the initial trigger as needed to fit your workflow's requirements (e.g., schedule, webhook). 
  Adapt the caption and images nodes to accept dynamic parameters.

  Limitations
  This workflow assumes a minimum of 1 image URL to function. If you want a text-only post, remove the whole embed section from the JSON in last Post to Bluesky node, as well as relevant image attachment nodes.

  The 300-character limit in Bluesky includes the caption + hashtags + image alt text. Going over 300 will return a Record/description must not be longer than 300 graphemes error.

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.stickyNote","n8n-nodes-base.splitOut","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.aggregate","n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.set"]

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

metadata_json:
  {"categories":["automation","social media","integration","content management"],"complexity":"simple","use_cases":["Automated multi-image social posts to Bluesky","Scheduled or webhook-triggered publishing","Streamlining content delivery for creators and businesses","Batch posting from image URLs"],"estimated_setup_minutes":10,"required_services":["Bluesky (native API)","n8n instance/workflow runner","Image hosting or publicly accessible image URLs"],"key_features":["Posts 1–4 images to Bluesky via native API","Creates authenticated session using App Password","Uploads images as blobs before posting","Supports caption text and image references","Manual trigger that can be adapted to webhook or schedule"],"target_audience":["Content creators","Social media managers","Marketers and small businesses\",\"Developers/automation engineers"]}


name: ✨ Vision-Based AI Agent Scraper - with Google Sheets, ScrapingBee, and Gemini
author_name: Dataki
author_username: dataki
categories: []
created_at: 2024-11-21T16:28:54.000Z
updated_at: 2024-11-21T16:28:54.000Z
url: https://n8n.io/workflows/2563
scraped_at: 2025-09-14 19:11:00
metadata_generated_at: 2025-09-14 21:18:31
description:
  Important Notes:
  Check Legal Regulations:  
  This workflow involves scraping, so ensure you comply with the legal regulations in your country before getting started. Better safe than sorry!

  Workflow Description:  
  😮‍💨 Tired of struggling with XPath, CSS selectors, or DOM specificity when scraping ?

  This AI-powered solution is here to simplify your workflow! With a vision-based AI Agent, you can extract data effortlessly without worrying about how the DOM is structured.  

  This workflow leverages a vision-based AI Agent, integrated with Google Sheets, ScrapingBee, and the Gemini-1.5-Pro model, to extract structured data from webpages. The AI Agent primarily uses screenshots for data extraction but switches to HTML scraping when necessary, ensuring high accuracy.  

  Key Features:
  Google Sheets Integration**: Manage URLs to scrape and store structured results.  
  ScrapingBee**: Capture full-page screenshots and retrieve HTML data for fallback extraction.  
  AI-Powered Data Parsing**: Use Gemini-1.5-Pro for vision-based scraping and a Structured Output Parser to format extracted data into JSON.  
  Token Efficiency**: HTML is converted to Markdown to optimize processing costs.  

  This template is designed for e-commerce scraping but can be customized for various use cases.

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.httpRequest","@n8n/n8n-nodes-langchain.outputParserStructured","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.splitOut","n8n-nodes-base.googleSheets","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.toolWorkflow","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.googleSheets","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.stickyNote","n8n-nodes-base.executeWorkflowTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.markdown","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 8428 characters]

metadata_json:
  {"categories":["automation","data extraction","integration","AI/ML"],"complexity":"medium","use_cases":["E‑commerce product data extraction (titles, prices, specs)","Price and availability monitoring","Product catalog enrichment and feed creation","Competitor/product research and market analysis","Structured web data collection for analytics or ML datasets"],"estimated_setup_minutes":45,"required_services":["Google Sheets API (Google account)","ScrapingBee (screenshot and HTML capture)","Gemini-1.5-Pro / Google PaLM API (vision + LLM)","n8n instance with HTTP access"],"key_features":["Vision‑based scraping using full‑page screenshots","HTML fallback scraping when vision misses details","Structured Output Parser produces normalized JSON","Google Sheets read/write for URL input and results storage","Token‑efficient processing: HTML → Markdown conversion for LLM cost savings (fallback)"],"target_audience":["e‑commerce managers and merchandisers","growth/marketing teams doing competitive intelligence","data engineers and integrators building scrapers/workflows」「analysts who need structured web data"]}


name: Automatically promote your YouTube video on X
author_name: Alex Kim
author_username: alexk1919
categories: []
created_at: 2024-11-21T21:26:34.300Z
updated_at: 2024-11-21T21:26:34.300Z
url: https://n8n.io/workflows/2564
scraped_at: 2025-09-14 19:11:03
metadata_generated_at: 2025-09-14 21:18:31
description:
  YouTube to X Post

  Overview

  This n8n workflow automates the process of promoting your latest YouTube videos on X (formerly Twitter). It ensures that posts are engaging, concise, and follow platform-specific requirements. Additionally, the workflow logs social posts into a Google Sheet for record-keeping.

  Features

  Fetch Latest YouTube Videos:** Pulls recently uploaded videos from a specified channel.
  Generate Engaging X Posts:** Uses OpenAI's GPT-4 to create tailored, witty posts about your videos.
  Character Limit Validation:** Ensures posts comply with X's character limit by rewriting if necessary.
  Post Scheduling:** Automates post publishing to X.
  Google Sheets Integration:** Logs posts and their status for tracking and management.
  Optional Notifications:** Sends updates via Discord, Slack, or Gmail (disabled by default).

  How It Works

  Trigger:
     Manually trigger the workflow or set a scheduled check for new videos (disabled by default).
     
  Fetch YouTube Videos:
     Retrieves the latest videos from your YouTube channel, filtering duplicates.

  Content Creation:
     OpenAI generates a witty and humanized post under 220 characters, using video title and description.
     If the post exceeds the character limit, it is rewritten automatically.

  Google Sheets Logging:
     Logs the generated post to a Google Sheet with details like time, date, and post status.

  Post to X:
     Publishes the generated post on X. Updates the Google Sheet with the post URL.

  Optional Notifications:
     Sends notifications about the published post via Discord, Slack, or Gmail.

  Setup Instructions

  Credentials:
     Add credentials for:
       YouTube API
       OpenAI API
       Google Sheets API
       X (formerly Twitter) API
     Use the accounts associated with "AlexK1919."

  YouTube Node:
     Specify your YouTube Channel ID in the Fetch Latest Videos node.
     Find your Channel ID here.

  Google Sheets Node:
     Configure the node with your Google Sheet for logging posts. Use the linked sheet: AlexK1919 Social Posts.

  OpenAI Node:
     Set up your OpenAI API key for generating posts.

  X Post Node:
     Connect your X account to the Post to X node.

  Optional Notifications:
     Configure Discord, Slack, or Gmail nodes for custom notifications.

  Customization

  Schedule:**
    Enable and modify the Check Every 2 Hours node to automatically check for new videos.

  Post Format:**
    Edit the OpenAI prompt in the Generate X Post node to tweak the tone or style of the generated posts.

  Additional Platforms:**
    Expand this workflow to post on other social platforms by adding respective nodes (e.g., Facebook, LinkedIn).

  Notes

  Posts are validated for character limits but are restricted to 220 characters to ensure compliance with X's guidelines and leave space for links.
  Posts are logged in the Google Sheet with details, including post status and timestamps.
  Current integrations are focused on promoting YouTube content; additional types can be supported with minor adjustments.

  Contact

  For support or inquiries:
  Alex Kim**
  About Me

nodes_used:
  ["n8n-nodes-base.twitter","n8n-nodes-base.stickyNote","n8n-nodes-base.youTube","@n8n/n8n-nodes-langchain.toolCalculator","@n8n/n8n-nodes-langchain.toolWikipedia","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.toolCalculator","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","n8n-nodes-base.manualTrigger","n8n-nodes-base.discord","n8n-nodes-base.removeDuplicates","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.toolWikipedia","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.if","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.slack","n8n-nodes-base.stickyNote","n8n-nodes-base.gmail","n8n-nodes-base.set","n8n-nodes-base.if","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 5868 characters]

metadata_json:
  {"categories":["automation","social media","integration","content promotion"],"complexity":"medium","use_cases":["Automatically promote new YouTube uploads on X (Twitter)","Generate concise, engaging social posts using AI","Maintain a log of social posts for tracking and analytics","Schedule and publish posts automatically","Send optional notifications to team channels (Discord/Slack/Gmail)"],"estimated_setup_minutes":20,"required_services":["YouTube API","X (Twitter) API","OpenAI API (GPT-4)","Google Sheets API","Optional: Discord, Slack, Gmail (for notifications)"],"key_features":["Fetches latest videos from a specified YouTube channel","Generates witty, humanized X posts via OpenAI","Validates and rewrites posts to meet X character limits (220 char target)","Schedules and posts to X automatically","Logs posts and statuses in Google Sheets with timestamps and URLs (post tracking)"],"target_audience":["YouTube creators","Social media managers","Marketers and content promoters"]}


name: Summarize SERPBear data with AI (via Openrouter) and save it to Baserow
author_name: Keith Rumjahn
author_username: rumjahn
categories: []
created_at: 2024-11-22T12:55:27.465Z
updated_at: 2024-11-22T12:55:27.465Z
url: https://n8n.io/workflows/2565
scraped_at: 2025-09-14 19:11:03
metadata_generated_at: 2025-09-14 21:18:32
description:
  Who's this for?
  If you own a website and need to analyze your keyword rankings
  If you need to create a keyword report on your rankings
  If you want to grow your keyword positions

  SerpBear is an opensourced SEO tool specifically for keyword analytics.

  Click here to watch youtube tutorial





  Example output of A.I.
  Key Observations about Ranking Performance:

  The top-performing keyword is “Openrouter N8N” with a current position of 7 and an improving trend.
  Two keywords, “Best Docker Synology” and “Bitwarden Synology”, are not ranking in the top 100 and have a stable trend.
  Three keywords, “Obsidian Second Brain”, “AI Generated Reference Letter”, and “Actual Budget Synology”, and “N8N Workflow Generator” are not ranking well and have a declining trend.

  Keywords showing the most improvement:

  “Openrouter N8N” has an improving trend and a relatively high ranking of 7.

  Keywords needing attention:

  “Obsidian Second Brain” has a declining trend and a low ranking of 69.
  “AI Generated Reference Letter” has a declining trend and a low ranking of 84.
  “Actual Budget Synology”, “N8N Workflow Generator”, “Best Docker Synology”, and “Bitwarden Synology” are not ranking in the top 100.

  Use case
  Instead of hiring an SEO expert, I run this report weekly. It checks the keyword rankings of the past week and gives me recommendations on what to improve.

  How it works
  The workflow gathers SerpBear analytics for the past 7 days.
  It passes the data to openrouter.ai for A.I. analysis.
  Finally it saves to baserow.

  How to use this
  Input your SerpBearcredentials
  Enter your domain name
  Input your Openrouter.ai credentials
  Input your baserow credentials
  You will need to create a baserow database with columns: Date, Note, Blog

  Created by Rumjahn

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.httpRequest","n8n-nodes-base.baserow","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","SEO","data processing"],"complexity":"medium","use_cases":["Weekly keyword ranking monitoring","Generate AI-driven keyword ranking reports","Identify keywords needing attention or showing improvement","Automate storing SEO summaries in a database for tracking"],"estimated_setup_minutes":20,"required_services":["SerpBear (SEO analytics)","Openrouter / openrouter.ai (AI summarization)","Baserow (database)"],"key_features":["Fetches SerpBear analytics for the past 7 days","Sends SERP data to Openrouter for AI analysis and summary","Saves AI-generated notes to a Baserow table (Date, Note, Blog)","Supports scheduled (e.g., weekly) and manual runs","Produces actionable observations: top performers, improvements, keywords needing attention"],"target_audience":["Website owners","SEO specialists / analysts","Content marketers / managers (who track rankings)"]}


name: Conversational Interviews with AI Agents and n8n Forms
author_name: Jimleuk
author_username: jimleuk
categories: []
created_at: 2024-11-24T09:23:26.791Z
updated_at: 2024-11-24T09:23:26.791Z
url: https://n8n.io/workflows/2566
scraped_at: 2025-09-14 19:11:00
metadata_generated_at: 2025-09-14 21:18:31
description:
  This n8n template combines an AI agent with n8n's multi-page forms to create a novel interaction which allows automated question-and-answer sessions. One of the more obvious use-cases of this interaction is what I'm calling the AI interviewer.

  You can read the full post here: https://community.n8n.io/t/build-your-own-ai-interview-agents-with-n8n-forms/62312

  Live demo here: https://jimleuk.app.n8n.cloud/form/driving-lessons-survey

  How it works

  A form trigger is used to start the interview and a new session is created in redis to capture the transcript.
  An AI agent is then tasked to ask questions to the user regarding the topic of the interview. This is setup as a loop so the questions never stop unless the user wishes to end the interview.
  Each answer is recorded in our session set up earlier between questions.
  When the user requests to end the interview we break the loop and show the interview completion screen.
  Finally, the session is then saved in a Google Sheet which can then be shared with team members and for the purpose of data analysis.

  How to use

  You'll need to be on a n8n instance that is accessible to your target audience. Not technical enough to setup your own server? Try out n8n cloud and instantly deploy template!
  Remember to activate the workflow so the form trigger is published and available for users to use.

  Requirements
  Groq LLM for AI agent. Feel free to swap this out for any other LLM.
  Redis(-compatible) storage for capturing sessions

  Customising this workflow

  The next step would be adding tools! AI interviews with knowledge retrieval could definitely open up other possibilities. Eg. An onboarding wizard generating questions by pulling facts from internal knowledgebase.

nodes_used:
  ["n8n-nodes-base.if","n8n-nodes-base.set","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.memoryManager","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.formTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.form","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.crypto","n8n-nodes-base.set","n8n-nodes-base.redis","n8n-nodes-base.redis","n8n-nodes-base.redis","n8n-nodes-base.redis","n8n-nodes-base.if","n8n-nodes-base.respondToWebhook","@n8n/n8n-nodes-langchain.memoryBufferWindow","@n8n/n8n-nodes-langchain.memoryBufferWindow","n8n-nodes-base.stickyNote","n8n-nodes-base.form","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.webhook","n8n-nodes-base.html","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.lmChatGroq","n8n-nodes-base.html","n8n-nodes-base.googleSheets","n8n-nodes-base.splitOut","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.redis","n8n-nodes-base.redis"]

workflow_json_compressed:
  [encoded data, 13700 characters]

metadata_json:
  {"categories":["automation","AI/LLM","forms","data collection","integration"],"complexity":"complex","use_cases":["Automated interview / conversational surveys","Candidate screening and hiring interviews","User research and feedback collection","Onboarding wizards and guided flows","Generating structured transcripts for analysis"],"estimated_setup_minutes":45,"required_services":["n8n instance (self-hosted or n8n.cloud) with Forms enabled","Groq LLM (or substitute LLM and credentials)","Redis-compatible storage for session state","Google Sheets (for saving sessions/transcripts)","Publicly accessible webhook endpoint (if self-hosted)"],"key_features":["Multi-page n8n Forms trigger to start conversational session","AI agent loop that generates questions and processes answers","Session/transcript capture stored in Redis","Ability for user to end interview and show completion screen","Automatic export/save of session to Google Sheets for analysis/sharing"],"target_audience":["Developers and automation engineers","Product managers and researchers","Recruiters and HR teams evaluating candidates at scale"]}


name: Scrape business emails from Google Maps without the use of any third party APIs
author_name: Akram Kadri
author_username: akramkadri
categories: []
created_at: 2024-11-24T10:56:50.080Z
updated_at: 2024-11-24T10:56:50.080Z
url: https://n8n.io/workflows/2567
scraped_at: 2025-09-14 19:10:59
metadata_generated_at: 2025-09-14 19:21:46
description:
  Who is this template for?
  This workflow template is designed for sales, marketing, and business development professionals who want a cost-effective and efficient way to generate leads. By leveraging n8n core nodes, it scrapes business emails from Google Maps without relying on third-party APIs or paid services, ensuring there are no additional costs involved.

  Ideal for small business owners, freelancers, and agencies, this template automates the process of collecting contact information for targeted outreach, making it a powerful tool for anyone looking to scale their lead generation efforts without incurring extra expenses.

  You can watch the video tutorial here: https://youtu.be/HaiO-UeiKBA

  How it works
  This template streamlines email scraping from Google Maps using only n8n core nodes, ensuring a completely free and self-contained solution. Here’s how it operates:

  Input Queries
  You provide a list of queries, each consisting of keywords related to the type of business you want to target and the specific region or subregion you’re interested in.

  Iterates through Queries
  The workflow processes each query one at a time. For each query, it triggers a sub-workflow dedicated to handling the scraping tasks.

  Scrapes Google Maps for URLs
  Using these queries, the workflow scrapes Google Maps to collect URLs of business listings matching the provided criteria.

  Fetches HTML Content
  The workflow then fetches the HTML pages of the collected URLs for further processing.

  Extracts Emails

  Using a Code Node with custom JavaScript, the workflow runs regular expressions on the HTML content to extract business email addresses.

  Setup
  Add Queries:
  Open the first node, "Run Workflow" and input a list of queries, each containing the business keywords and the target region.

  Configure the Google Sheets Node:
  Open the Google Sheets node and select a document and specific sheet where the scraped results will be saved.

  Run the workflow:
  Click on "Test workflow" and watch your Google Sheets document gradually receive business email addresses. 

  Customize as Needed:

  You can adjust the regular expressions in the Code Node to refine the email extraction logic or add logic to extract other kinds of information.

nodes_used:
  ["n8n-nodes-base.removeDuplicates","n8n-nodes-base.splitInBatches","n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.filter","n8n-nodes-base.httpRequest","n8n-nodes-base.splitInBatches","n8n-nodes-base.splitInBatches","n8n-nodes-base.code","n8n-nodes-base.aggregate","n8n-nodes-base.splitOut","n8n-nodes-base.removeDuplicates","n8n-nodes-base.filter","n8n-nodes-base.googleSheets","n8n-nodes-base.executeWorkflowTrigger","n8n-nodes-base.manualTrigger","n8n-nodes-base.wait","n8n-nodes-base.executeWorkflow","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 4364 characters]

metadata_json:
[cell repeats an earlier one in this file: 210 characters]


name: Upsert huge documents in a vector store with Supabase and Notion
author_name: Mario
author_username: octionic
categories: []
created_at: 2024-11-24T18:37:24.868Z
updated_at: 2024-11-24T18:37:24.868Z
url: https://n8n.io/workflows/2568
scraped_at: 2025-09-14 19:11:02
metadata_generated_at: 2025-09-14 21:18:31
description:
  Purpose

  This workflow adds the capability to build a RAG on living data. In this case Notion is used as a Knowledge Base. Whenever a page is updated, the embeddings get upserted in a Supabase Vector Store.

  It can also be fairly easily adapted to PGVector, Pinecone, or Qdrant by using a custom HTTP request for the latter two.

  Demo

  How it works

  A trigger checks every minute for changes in the Notion Database. The manual polling approach improves accuracy and prevents changes from being lost between cached polling intervals.
  Afterwards every updated page is processed sequentially
  The Vector Database is searched using the Notion Page ID stored in the metadata of each embedding. If old entries exist, they are deleted.
  All blocks of the Notion Database Page are retrieved and combined into a single string
  The content is embedded and split into chunks if necessary. Metadata, including the Notion Page ID, is added during storage for future reference.
  A simple Question and Answer Chain enables users to ask questions about the embedded content through the integrated chat function

  Prerequisites

  To setup a new Vector Store in Supabase, follow this guide
  Prepare a simple Database in Notion with each Database Page containing at least a title and some content in the blocks section. You can of course also connect this to an existing Database of your choice.

  Setup

  Select your credentials in the nodes which require those
  If you are on an n8n cloud plan, switch to the native Notion Trigger by activating it and deactivating the Schedule Trigger along with its subsequent Notion Node
  Choose your Notion Database in the first Node related to Notion
  Adjust the chunk size and overlap in the Token Splitter to your preference
  Activate the workflow

  How to use

  Populate your Notion Database with useful information and use the chat mode of this workflow to ask questions about it. Updates to a Notion Page should quickly reflect in future conversations.

nodes_used:
  ["@n8n/n8n-nodes-langchain.embeddingsOpenAi","@n8n/n8n-nodes-langchain.textSplitterTokenSplitter","n8n-nodes-base.splitInBatches","@n8n/n8n-nodes-langchain.chainRetrievalQa","@n8n/n8n-nodes-langchain.retrieverVectorStore","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.chatTrigger","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.limit","n8n-nodes-base.limit","n8n-nodes-base.supabase","n8n-nodes-base.notion","@n8n/n8n-nodes-langchain.documentDefaultDataLoader","n8n-nodes-base.stickyNote","n8n-nodes-base.noOp","n8n-nodes-base.notionTrigger","n8n-nodes-base.notion","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.vectorStoreSupabase","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.vectorStoreSupabase","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.summarize"]

workflow_json_compressed:
  [encoded data, 5140 characters]

metadata_json:
  {"categories":["integration","automation","data processing","AI/ML"],"complexity":"medium","use_cases":["Build RAG (retrieval-augmented generation) over living Notion content","Keep vector embeddings in Supabase up-to-date when Notion pages change","Chunking and embedding long documents for vector search","Question-answering over a Notion knowledge base via chat","Migrate/adapt workflow to other vector stores (PGVector, Pinecone, Qdrant)"],"estimated_setup_minutes":30,"required_services":["Notion API / Notion Database","Supabase (Postgres vector store)","OpenAI (embeddings and chat models)","n8n (cloud or self-hosted)","Optional: PGVector, Pinecone, Qdrant (via custom HTTP)"],"key_features":["Periodic/manual polling of Notion DB for updates","Fetch and combine Notion page blocks into a single document","Token-based splitting/chunking with overlap","Generate embeddings and upsert into Supabase vector store","Delete old embeddings by Notion Page ID before upsert to avoid duplicates/outdated data￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼"],"target_audience":["Developers","Data engineers","AI/ML engineers building RAG systems or knowledge bases￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼"]}


name: Send a welcome private message to your new BlueSky followers
author_name: Nukeador
author_username: nukeador
categories: []
created_at: 2024-11-25T10:13:44.297Z
updated_at: 2024-11-25T10:13:44.297Z
url: https://n8n.io/workflows/2570
scraped_at: 2025-09-14 19:11:03
metadata_generated_at: 2025-09-14 21:18:32
description:
  Who is this for?

  BlueSky users who are looking to send a "welcome message" to their new followers as a private message.

  What this workflow does

  This worflow will check for new followers on BlueSky every 60 minutes and send a private message to the new ones. 

  Setup

  You need to create a BlueSky app password with private messages access.
  Fill your credentials and the message text on the corresponding nodes (see sticky notes).
  Manually run once the `Save followers to file` node to generate your initial followers list.
  Enable the workflow

  How to customize this workflow to your needs

  You can adjust the check frecuency, but be careful to avoid hitting the 100 createSession per day rate limit

  Feedback or comments

  You can leave comments, feedback or improvements about this workflow on the n8n forums

nodes_used:
  ["n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.convertToFile","n8n-nodes-base.extractFromFile","n8n-nodes-base.splitOut","n8n-nodes-base.splitInBatches","n8n-nodes-base.wait","n8n-nodes-base.code","n8n-nodes-base.readWriteFile","n8n-nodes-base.readWriteFile","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.noOp"]

workflow_json_compressed:
  [encoded data, 4200 characters]

metadata_json:
  {"categories":["social media automation","integration","engagement"],"complexity":"medium","use_cases":["Send automated welcome private messages to new followers","Onboard new followers and provide next steps or links","Track and avoid messaging the same follower twice","Personalized outreach and follower engagement"],"estimated_setup_minutes":20,"required_services":["BlueSky (requires app password with private messages access)","n8n instance with file read/write access"],"key_features":["Periodic check for new followers (configurable frequency)","Sends private messages to newly detected followers","Stores follower list to prevent duplicate messages","Initial manual run to seed follower list","Customizable message text and credentials in nodes (sticky notes)」「Rate-limit awareness for BlueSky session creation (100 createSession/day)"],"target_audience":["BlueSky users","Social media managers","Community managers and creators who want to welcome followers automatically」「Marketers and small businesses using n8n"]}


name: Post new RSS feed items as BlueSky posts
author_name: Nukeador
author_username: nukeador
categories: []
created_at: 2024-11-25T10:23:12.892Z
updated_at: 2024-11-25T10:23:12.892Z
url: https://n8n.io/workflows/2571
scraped_at: 2025-09-14 19:11:03
metadata_generated_at: 2025-09-14 21:18:32
description:
  Who is this for?

  BlueSky users looking to automate the publication of new posts based on new items from a RSS feed.

  What this workflow does

  This will create a BlueSky post with each new RSS feed item, including the feed title, post image, link and content (up to 200 characters)

  Setup

  You'll need to generate a BlueSky app password
  Configure your feed URL in the first node
  Configure your credentials in the second node

  How to customize this workflow to your needs

  You can modify the message posted in the `Create post node, changing the JSON text` value, in case you want to include only the feed item title instead of the content.

  If you RSS feed doesn't provide an image, you can define a static one on the `Download image` node.

nodes_used:
  ["n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.rssFeedReadTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.dateTime","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  H4sIAAAAAAAAE81YbW/bOBL+KwRbIAkgOnq1JON2gU273dvFXVsk6QGH2B8ocmRzK5M6korrDfzfD5QUvypJg90P+8kyOXw088zw4VAPWCoOBk/uHrDgeILDhIZZksWEQlCQmAcxycNxQDK/gKyM2DgNU+xhSZeAJ/idBmoBfVbGYg/bde0GZSZJi0oKamC0sLa+hv810NrUyggrlMSTuyT0PX/m4ZpqugQL2uDJA250hSfYLTKTy8vCfF2PjGKCVpffdM0umVqOqK21smqkoVYj1rpwDUxpjj28BLtQLpDPn25usYdV7d7WImswtZIGjp8l3IP+WWul8cTqBrzt7Aell9TiCf7dKIk3m43XPl0pvsYT/MPDVCI0xc6NKZ6gKX54QG9d5HdnPTE3YIxQ8mw2cuvuzrjgZzO02Uyx161lqqqAORc7BFrXozbmEoCPamXs1lS3ITqz9r1uyMI32w48oN9uPn0cGauFnItyfd67cX1zgz4AcHSrxXwOeusIU9KCtBOQTHHgN1LUNdiz2QXabLxH+LcuoS/45exgWcC+Y0+tbe1G8M2ClrTaArQQ28E9lG6q0eKY3SfDqoT8uk/wDsUKW8FrcNoFT4BxMEyLepe274DsGd8yPejkolkWJxQc0ene5SBHRaWKUTtxitUVTDmA1aI5ng7R7s4c3Nns7kxD6X7e7nF5iLA5edNSLOH2CQcf54Z9NOIP6Ct4b40bdfZ7xnt/+sddnXYSwH+yx8n4BSxijdYgLeLUghVL2CWkm3hPLRxmY4orKufGgd250jTk55spRjM3u5nKzVRiDxuQvNOBTjLc/38C5a2K9UM1MFGue7VoJcTDi9bm84Hk7Qvg3cOjtv7U2IXS4g/ayqWH72nVuPEfroBq0C1lwsLyfIr9Kb4YdTFP8aH0THEf7xRTxsCY31Z2il28eDNzgiaVBfOr/FCp1aPjrqT+A9q0Mh2Pgo3XHw5Fzv2wSEtSphEncZFEhAZQEjbOI+pncVoU4e5w+FJXinIklnQOrz8dor/kdGhaH64qVTx7NmxOE9rv19vO60JIqtfvqaV4MNd/p7R623e962IgbRB7r9ruNpCsUqbRMOplxBWFh4WsG7cx6AcBFf/YgXEX/CsLJkryiCVBSvyIliTOopIUPo8IS6Isi32aJDzfFcx7tZJ/pmSCZ0qmjfn8VJ4vRo7s0REbja4cGd/VPpw0C6WowDULmxNiQg/TakXX5lNje4bxpKSVgS1jaQC8TPOUjCllJI45J0WeZYRmRQrJeJwWlJ30X31RvJ4x8qd3mQF9D7rvwnZ+vGqrFYqvv2frCA7SilKA3ivmf6xVo1FjXPuwBLQADT/u74GaGrPqesPDJbSu0ePk47JXKyILsyLM/JKwYJyTuPQjkpd5REJ/nCSM+czPk126jqvvyYRpY5zdNVC+M93PW5IN5c01Z1/a3HUhuv/oy/W/+vAcRFXdiiW01q7wW3qXijsfXBu8/reQjYWeiYOwd0EHYZCyLGRknMeUxBnnJAt5REJGExbGWR6wvTvCjRXs6xp9VPbpLW1am97koD4z3yNBeBrqSnC7wJMw9J34ivnC4knk+1vdxhP85s0b9E7JUswbDaglhGloa4hWZir7zXNH5UEtzM4PCp/W9aUBa4Wcm0ta1+TRzlygUmhj8dNEJeBnJQ9CkhXUJzFLMlJkQUT8soSySAqIUjZIVPBqpuLxC0QFLxDVGKuWru+yC0DuYoGm8r+qQYxKxA4ml2AMnfdGrrKeYSBicRoWWUnyMKMkjgtGijThJBmztAjHURnn/o6BoX7tSSacwW1nsF8xgT+0M/b059jZcJcunud+QksSBHlM4qAsCWUlJ2kajYPAz8MCYDBd4avT9VK2XijrX90BiWoN9wJWaCqv1ohDSZvKIg1WC7gHjkqtlm3CnAx4qGis2wRdQrfbgvbJRUp24tkto9LpxjOJLSnQMihcJn0g8dgfk4yOUxJnFDIaZGWQ0kGuoteLQBD7Hon9U7aYqtylPfEeeYv3eQuyI97a7xRIwgo5IW7F0WmgQdSgq6qBm69r5K62ZipvF8Kglagq1J1siB5YoJWwCwSULU7hPCQkqxou5HzLPmpvk163tu1uPOTuV4hKjnoX0XlTI6tQ6PuILaimzIV5MZCDWRuW7L4btEQctNqTB7ykwjHnjs5O2wc/1LRWrtvj8A1P/M3M9X5HLcUQ2PPbdBD1qLUbQh2+LgyinZyjz4R80hsNIg6GNIT6VI86gLrZ/B9iRYuTXhMAAA==

metadata_json:
  {"categories":["automation","social media","integration","content publishing"],"complexity":"simple","use_cases":["Automatically share new blog posts or articles to BlueSky","Syndicate RSS feed items as social posts","Content curation and distribution","Notify followers about new feed updates"],"estimated_setup_minutes":10,"required_services":["BlueSky (app password / account)","RSS feed URL (source)"],"key_features":["Creates a BlueSky post for each new RSS item","Includes feed title, link, image and up to 200 characters of content","Customizable post message template (JSON in Create post node)","Fallback/static image support if feed lacks images","Automatic polling of RSS feed for new items"],"target_audience":["BlueSky users","Content creators and bloggers","Social media managers and marketers looking to automate posting"]}


name: CV Screening with OpenAI
author_name: Mark Shcherbakov
author_username: lowcodingdev
categories: []
created_at: 2024-11-25T10:38:26.100Z
updated_at: 2024-11-25T10:38:26.100Z
url: https://n8n.io/workflows/2572
scraped_at: 2025-09-14 19:11:02
metadata_generated_at: 2025-09-14 21:18:31
description:
  Video Guide

  I prepared a detailed guide that showed the whole process of building a resume analyzer.

  Who is this for?
  This workflow is ideal for recruitment agencies, HR professionals, and hiring managers looking to automate the initial screening of CVs. It is especially useful for organizations handling large volumes of applications and seeking to streamline their recruitment process.

  What problem does this workflow solve?
  Manually screening resumes is time-consuming and prone to human error. This workflow automates the process, providing consistent and objective analysis of CVs against job descriptions. It helps filter out unsuitable candidates early, reducing workload and improving the overall efficiency of the recruitment process.

  What this workflow does
  This workflow automates the resume screening process using OpenAI for analysis. It provides a matching score, a summary of candidate suitability, and key insights into why the candidate fits (or doesn’t fit) the job. 

  Retrieve Resume: The workflow downloads CVs from a direct link (e.g., Supabase storage or Dropbox).
  Extract Data: Extracts text data from PDF or DOC files for analysis.
  Analyze with OpenAI: Sends the extracted data and job description to OpenAI to:
     Generate a matching score.
     Summarize candidate strengths and weaknesses.
     Provide actionable insights into their suitability for the job.

  Setup

  Preparation
  Create Accounts:
     N8N: For workflow automation.
     OpenAI: For AI-powered CV analysis.
  Get CV Link:
     Upload CV files to Supabase storage or Dropbox to generate a direct link for processing.
  Prepare Artifacts for OpenAI:
     Define Metrics: Identify the metrics you want from the analysis (e.g., matching percentage, strengths, weaknesses).
     Generate JSON Schema: Use OpenAI to structure responses, ensuring compatibility with your database.
     Write a Prompt: Provide OpenAI with a clear and detailed prompt to ensure accurate analysis.

  N8N Scenario
  Download File: Fetch the CV using its direct URL.
  Extract Data: Use N8N’s PDF or text extraction nodes to retrieve text from the CV.
  Send to OpenAI:
     URL: POST to OpenAI’s API for analysis.
     Parameters:
       Include the extracted CV data and job description.
       Use JSON Schema to structure the response.

  Summary
  This workflow provides a seamless, automated solution for CV screening, helping recruitment agencies and HR teams save time while maintaining consistency in candidate evaluation. It enables organizations to focus on the most suitable candidates, improving the overall hiring process.

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

workflow_json_compressed:
  [encoded data, 6444 characters]

metadata_json:
  {"categories":["automation","recruitment","document processing","AI integration"],"complexity":"medium","use_cases":["Automated CV/resume screening","Candidate matching and ranking","Generating candidate summaries and insights","Pre-screening to reduce recruiter workload","Structuring AI output for databases"],"estimated_setup_minutes":45,"required_services":["OpenAI API","n8n (automation platform)","File storage (Supabase or Dropbox)"],"key_features":["Download CVs from direct links","Extract text from PDF/DOC files","Send resume + job description to OpenAI for analysis","Produce matching score, strengths/weaknesses, and actionable insights","Use JSON Schema to structure AI responses for downstream storage or routing"],"target_audience":["Recruitment agencies","HR professionals","Hiring managers and talent acquisition teams','Developers implementing HR automation"]}


name: Notify on Telegram When a New Order is Created in WooCommerce 📦
author_name: AmirHossein MnasouriZade
author_username: amir676080
categories: []
created_at: 2024-11-25T15:44:47.163Z
updated_at: 2024-11-25T15:44:47.163Z
url: https://n8n.io/workflows/2575
scraped_at: 2025-09-14 19:11:03
metadata_generated_at: 2025-09-14 21:18:32
description:
  📦 Send Telegram Notifications for New WooCommerce Orders

  This workflow automatically sends a Telegram notification when an order status in WooCommerce changes to "Processing." Perfect for online store owners who want instant updates on order fulfillment.

  ⚙️ Set Up Telegram Alerts for WooCommerce Orders
  Configure WooCommerce Webhook to trigger on order updates.



  Create a Telegram Bot and obtain the API token.
  Set Up Telegram Credentials in n8n.
  Configure the Telegram Node with your chat ID.
  Activate and Test the workflow by placing a new order.

  ##💡 Notes
  You can customize the message format in the 🖋️ Design Message Template node to include additional order details.

  Contact me on [Telegram]: https://t.me/amir676080

  Message structure includes the following details

  🆔 Order Number: 11234
  👦🏻 Customer Name: John Doe
  💵 Amount: 299.99 USD
  📅 Order Date:
  ➖ 25th November 2024 at 14:42
  🏙 City: New York
  📞 Phone: +1 555-1234
  ✍🏻 Order Note: Fast delivery requested
  📦 Ordered Products:
  🔹 Wireless Earbuds (2 items)
  📝 Type: Premium Sound Edition



  Contact me on [Telegram]: https://t.me/amir676080

nodes_used:
  ["n8n-nodes-base.if","n8n-nodes-base.code","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.webhook","n8n-nodes-base.telegram"]

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

metadata_json:
  {"categories":["automation","e-commerce","notifications","integration"],"complexity":"simple","use_cases":["Instant Telegram alerts for new/processing WooCommerce orders","Notify fulfillment/shipping teams when orders are ready","Provide real-time order summaries to store owners","Surface order notes and contact details for customer support","Customized messaging for high-priority orders"],"estimated_setup_minutes":15,"required_services":["WooCommerce (webhooks)","Telegram Bot API (bot token & chat ID)","n8n instance"],"key_features":["Webhook trigger on WooCommerce order updates","Filter node to detect status = \"Processing\"","Customizable message template including order number, customer, amount, items, notes","Sends Telegram message via Telegram node","Lightweight 6-node workflow (webhook, conditional check, template, code, Telegram, notes)"],"target_audience":["Online store owners","E-commerce managers","Customer support teams/small ops teams using WooCommerce and Telegram notifications for alerts"]}


name: Import Productboard Notes, Companies and Features into Snowflake
author_name: Romain Jouhannet
author_username: rjouhann
categories: []
created_at: 2024-11-25T17:27:56.565Z
updated_at: 2024-11-25T17:27:56.565Z
url: https://n8n.io/workflows/2576
scraped_at: 2025-09-14 19:11:03
metadata_generated_at: 2025-09-14 21:18:32
description:
  This workflow imports Productboard data into Snowflake, automating data extraction, mapping, and updates for features, companies, and notes. It supports scheduled weekly updates, data cleansing, and Slack notifications summarizing the latest insights.

  Features
  Fetches data from Productboard (features, companies, notes).
  Maps and processes data for Snowflake tables.
  Automates table creation, truncation, and updates.
  Summarizes new and unprocessed notes.
  Sends weekly Slack notifications with key insights.

  Setup
  Configure Productboard and Snowflake credentials in n8n.
  Update Snowflake table schemas to match your setup.
  Replace Slack channel ID and dashboard URL in the notification node.
  Activate the workflow and set the desired schedule.

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

workflow_json_compressed:
  [encoded data, 5708 characters]

metadata_json:
  {"categories":["integration","data processing","automation","data-warehousing"],"complexity":"complex","use_cases":["Sync Productboard product data (features, companies, notes) into a data warehouse","Build a centralized product feedback dataset for analytics and BI","Automate weekly product-insight reports and notifications","Maintain and refresh Snowflake tables with ETL transforms and cleansing"],"estimated_setup_minutes":60,"required_services":["Productboard (API access)","Snowflake (warehouse, database, and credentials)","Slack (incoming webhook or bot with channel access)","n8n instance"],"key_features":["Extracts features, companies and notes from Productboard","Transforms and maps data to Snowflake table schemas","Automates table creation, truncation and incremental updates","Data cleansing and processing steps (mapping, batching)","Summarizes new/unprocessed notes and generates insights"],"target_audience":["Data engineers","Product managers and PM ops","Analytics teams / BI engineers"]}


name: New TheHive Case Slack Notification Bot
author_name: Angel Menendez
author_username: djangelic
categories: []
created_at: 2024-11-26T05:32:11.636Z
updated_at: 2024-11-26T05:32:11.636Z
url: https://n8n.io/workflows/2577
scraped_at: 2025-09-14 19:11:03
metadata_generated_at: 2025-09-14 21:18:33
description:
  Streamline Case Management in TheHive via Slack!

  Our TheHive Slack Integration empowers SOC analysts by allowing them to efficiently manage and update case attributes directly within Slack, reducing the need to switch contexts and enhancing response time.


  Key Features:
  Direct Case Management**: Modify case details such as assignee, severity, status, and more through intuitive form inputs embedded within Slack messages.
  Seamless Integration**: Assumes matching email addresses between TheHive and Slack users for straightforward assignee updates. Note: Ensure email consistency to avoid assignment errors.
  Instant Case Actions**: Quickly close cases as false positives or adjust threat levels with minimal clicks, directly impacting case status in TheHive and reflecting updates immediately in Slack.
  Task Management**: Add tasks to cases through a user-friendly modal popup, fostering better task tracking and delegation within your team.


  Operational Benefits:
  Efficiency**: Enables analysts to perform multiple case actions without leaving Slack, streamlining workflows and saving valuable time.
  Accuracy**: Reduces the chances of human error by providing a controlled interface for case updates.
  Agility**: Enhances the SOC team's agility by providing tools for rapid response and case management, crucial for effective security operations.


  Setup Tips:
  Verify that all SOC team members have matching email IDs in TheHive and Slack.
  Familiarize your team with the Slack form inputs and ensure they understand the importance of accurate data entry.
  Regularly review and update the integration settings to accommodate any changes in your security operations protocols.


  Need Help?
  For detailed setup instructions or troubleshooting, refer to our Integration Guide or reach out on our Support Forum.


  Leverage this integration to maximize your SOC team's efficiency and responsiveness, ensuring that case management is as streamlined and effective as possible.

nodes_used:
  ["n8n-nodes-base.theHiveProjectTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.if","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.theHiveProject","n8n-nodes-base.theHiveProject","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.noOp","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.slack","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.theHiveProject","n8n-nodes-base.theHiveProject","n8n-nodes-base.theHiveProject","n8n-nodes-base.respondToWebhook","n8n-nodes-base.respondToWebhook","n8n-nodes-base.respondToWebhook","n8n-nodes-base.respondToWebhook","n8n-nodes-base.respondToWebhook","n8n-nodes-base.respondToWebhook","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.switch","n8n-nodes-base.stickyNote","n8n-nodes-base.respondToWebhook","n8n-nodes-base.respondToWebhook","n8n-nodes-base.respondToWebhook","n8n-nodes-base.slack","n8n-nodes-base.theHiveProject","n8n-nodes-base.respondToWebhook","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.slack","n8n-nodes-base.theHiveProject","n8n-nodes-base.webhook"]

workflow_json_compressed:
  [encoded data, 24084 characters]

metadata_json:
  {"categories":["security automation","integration","incident response","workflow automation"],"complexity":"complex","use_cases":["Manage and update TheHive cases from Slack","Assign or reassign cases based on matching emails","Change case severity and status directly from Slack","Close cases as false positives quickly","Add and manage tasks on cases via Slack modal popups"],"estimated_setup_minutes":45,"required_services":["TheHive (API)","Slack (Workspace & API/Slack App)","n8n instance","Publicly reachable webhook endpoint (or tunneling tool like ngrok)"],"key_features":["Direct case management from Slack (assignee, severity, status)","Interactive Slack forms and modal popups for inputs","Instant actions: close case as false positive, adjust threat level","Task creation and assignment within TheHive from Slack","Seamless updates reflected immediately in Slack to reduce context switching"],"target_audience":["SOC analysts","Incident responders","Security operations teams (SOC) managers and engineers"]}


name: Linear to Productboard feature Sync
author_name: Romain Jouhannet
author_username: rjouhann
categories: []
created_at: 2024-11-26T08:14:27.367Z
updated_at: 2024-11-26T08:14:27.367Z
url: https://n8n.io/workflows/2578
scraped_at: 2025-09-14 19:11:03
metadata_generated_at: 2025-09-14 21:18:33
description:
  Linear Project/Issue Status and End Date to Productboard feature Sync

  Sync project and issue data between Linear and Productboard to keep teams aligned. This workflow updates Productboard features with the status and end date from Linear projects or due date from Linear issues. It ensures consistent data and sends a Slack notification whenever changes are made.

  Features
  Listens for updates in Linear projects/issues.
  Maps Linear statuses to Productboard feature statuses.
  Updates Productboard feature details including timeframe.
  Sends a Slack notification summarizing the updates.

  Setup
  Linear Credentials: Add your Linear API credentials in n8n.  
  Productboard Credentials: Configure the Productboard API credentials in n8n.  
  Linear Projects or Issues: Select the Linear project(s) or Issue(s) you want to monitor for updates.  
  Productboard Custom Field: Create a custom field in Productboard named "Linear". This field should store the URL of the Linear project or issue you want to sync. Retrieve the UUID of the custom field in Productboard and set it up in the "Get Productboard Feature ID" node.
  Slack Notification: Update the Slack node with the desired Slack channel ID.  
  Activate the Workflow: Enable the workflow to automatically sync data when triggered by updates in Linear.

nodes_used:
  ["n8n-nodes-base.httpRequest","n8n-nodes-base.splitOut","n8n-nodes-base.slack","n8n-nodes-base.httpRequest","n8n-nodes-base.linearTrigger","n8n-nodes-base.linearTrigger","n8n-nodes-base.linearTrigger","n8n-nodes-base.linearTrigger","n8n-nodes-base.linearTrigger","n8n-nodes-base.linearTrigger","n8n-nodes-base.if","n8n-nodes-base.code","n8n-nodes-base.linearTrigger","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.if","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.if","n8n-nodes-base.slack","n8n-nodes-base.if","n8n-nodes-base.if","n8n-nodes-base.if","n8n-nodes-base.if"]

workflow_json_compressed:
  [encoded data, 6096 characters]

metadata_json:
  {"categories":["integration","data synchronization","automation","notification"],"complexity":"medium","use_cases":["Keep Productboard features in sync with Linear project status and end/due dates","Automate cross-tool status updates to reduce manual work and errors","Notify teams in Slack when Productboard features are updated from Linear","Map Linear project/issue lifecycle to Productboard feature timeframe/status"],"estimated_setup_minutes":20,"required_services":["Linear","Productboard","Slack","n8n"],"key_features":["Listens for updates in Linear projects and issues","Maps Linear statuses to Productboard feature statuses","Updates Productboard feature details including timeframe/end date","Finds Productboard feature by custom field URL (custom field 'Linear')","Sends Slack notifications summarizing changes made"],"target_audience":["product managers","engineering managers","integration developers/automation engineers"]}


name: Handling Job Application Submissions with AI and n8n Forms
author_name: Jimleuk
author_username: jimleuk
categories: []
created_at: 2024-11-26T17:34:46.794Z
updated_at: 2024-11-26T17:34:46.794Z
url: https://n8n.io/workflows/2579
scraped_at: 2025-09-14 19:11:02
metadata_generated_at: 2025-09-14 21:18:31
description:
  This n8n template leverages n8n's multi-form feature to build a 2 part job application submission journey which aims to eliminate the need for applicants to re-enter data found on their CVs/Resumes.

  How it works
  The application submission process starts with an n8n form trigger to accept CV files in the form of PDFs.
  The PDF is validated using the text classifier node to determine if it is a valid CV else the applicant is asked to reupload.
  A basic LLM node is used to extract relevant information from the CV as data capture. A copy of the original job post is included to ensure relevancy.
  Applicant's data is then sent to an ATS for processing. For our demo, we used airtable because we could attach PDFs to rows.
  Finally, a second form trigger is used for the actual application form. However, it is prefilled to save the applicant's time and allow them to amend any of the generated application fields.

  How to use
  Ensure to change the redirect URL in the form ending node to use the host domain of your n8n instance.

  Requirements
  OpenAI for LLM
  Airtable to capture applicant data

  Customising the workflow
  Application form is pretty basic for this demonstration but could be extended to ask more in-depth questions.
  If it fits the job, why not ask applicants to upload portfolio works and have AI describe/caption them.

nodes_used:
  ["n8n-nodes-base.extractFromFile","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.outputParserStructured","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.formTrigger","n8n-nodes-base.airtable","@n8n/n8n-nodes-langchain.textClassifier","n8n-nodes-base.httpRequest","n8n-nodes-base.form","n8n-nodes-base.airtable","n8n-nodes-base.formTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.form","n8n-nodes-base.form","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.form"]

workflow_json_compressed:
  [encoded data, 9300 characters]

metadata_json:
  {"categories":["automation","recruitment","data processing","integrations"],"complexity":"medium","use_cases":["Automate candidate intake and reduce manual data entry","Parse and extract structured data from CVs/resumes","Prefill application forms to improve applicant experience","Validate uploaded CVs and request reuploads if invalid","Send applicant data to an ATS for tracking and review"],"estimated_setup_minutes":30,"required_services":["n8n instance with Forms enabled","OpenAI (LLM)","Airtable (or another ATS/database with file attachment support)"],"key_features":["Multi-step n8n form flow with file upload and prefilled second form","PDF CV validation using a text classifier","LLM-based extraction of applicant data from CV + job post context","Automatic submission to an ATS (Airtable in demo) with PDF attachment","Ability for applicants to review and edit extracted fields before final submit"],"target_audience":["Recruiters and HR teams","Hiring managers","Small businesses hiring without an enterprise ATS yet (SMBs/Startups)"]}


name: Qualifying Appointment Requests with AI & n8n Forms
author_name: Jimleuk
author_username: jimleuk
categories: []
created_at: 2024-11-26T17:49:51.712Z
updated_at: 2024-11-26T17:49:51.712Z
url: https://n8n.io/workflows/2580
scraped_at: 2025-09-14 19:11:01
metadata_generated_at: 2025-09-14 21:18:31
description:
  This n8n template builds upon a simple appointment request form design which uses AI to qualify if the incoming enquiry is suitable and/or time-worthy of an appointment.

  This demonstrates a lighter approach to using AI in your templates but handles a technically difficult problem - contextual understanding! This example can be used in a variety of contexts where figuring out what is and isn't relevant can save a lot of time for your organisation.

  How it works
  We start with a form trigger which asks for the purpose of the appointment.
  Instantly, we can qualify this by using a text classifier node which uses AI's contextual understanding to ensure the appointment is worthwhile. If not, an alternative is suggested instead.
  Multi-page forms are then used to set the terms of the appointment and ask the user for a desired date and time.
  An acknowledgement is sent to the user while an approval by email process is triggered in the background.
  In a subworkflow, we use Gmail with the wait for approval operation to send an approval form to the admin user who can either confirm or decline the appointment request.
  When approved, a Google Calendar event is created. When declined, the user is notified  via email that the appointment request was declined.

  How to use
  Modify the enquiry classifier to determine which contexts are relevant to you.
  Configure the wait for approval node to send to an email address which is accessible to all appropriate team members.

  Requirements
  OpenAI for LLM
  Gmail for Email
  Google Calendar for Appointments

  Customising this workflow
  Not using Google Mail or Calendar? Feel free to swap this with other services.
  The wait for approval step is optional. Remove if you wish to handle appointment request resolution in another way.

nodes_used:
  ["n8n-nodes-base.formTrigger","n8n-nodes-base.form","n8n-nodes-base.form","n8n-nodes-base.set","n8n-nodes-base.form","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.if","n8n-nodes-base.gmail","n8n-nodes-base.gmail","n8n-nodes-base.if","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.googleCalendar","n8n-nodes-base.gmail","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.form","n8n-nodes-base.form","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.executeWorkflow","n8n-nodes-base.executeWorkflowTrigger","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.textClassifier"]

workflow_json_compressed:
  [encoded data, 8228 characters]

metadata_json:
  {"categories":["automation","scheduling","AI/ML","forms","workflow approvals"],"complexity":"medium","use_cases":["Qualifying appointment or meeting requests","Lead triage and prioritization","Customer support intake and routing","Automated scheduling with human approval","Reducing time-wasting or irrelevant bookings"],"estimated_setup_minutes":45,"required_services":["OpenAI (LLM / text classification)","Gmail (or other email provider with approval workflow)","Google Calendar (or other calendar service)","n8n Forms (or other form provider)"],"key_features":["AI text classification to determine appointment relevance","Multi-page form collection for appointment details","Email-based wait-for-approval subworkflow for admins","Automated creation of Google Calendar events on approval","Automated user notifications for acceptance or decline"],"target_audience":["Operations teams","Sales and customer success","Small business owners / administrators (who handle bookings)"]}


name: Simple Lead Capture and Follow-on with n8n Multi-Forms
author_name: Jimleuk
author_username: jimleuk
categories: []
created_at: 2024-11-26T18:04:48.815Z
updated_at: 2024-11-26T18:04:48.815Z
url: https://n8n.io/workflows/2581
scraped_at: 2025-09-14 19:11:03
metadata_generated_at: 2025-09-14 21:18:31
description:
  This n8n template demonstrates the easiest way to build a lead capture flow for your side project, startup or small business where simple works best!

  If Typeform's costs are getting you down or you feel Google form URLs are off-putting, then definitely give this a try.

  How it works
  Our flow begins with a form trigger to capture a newsletter signup and the user's email is captured into a google sheet. Google Sheet is used for demonstration purposes but this could be any database.
  Multi-page forms allow you to continue the onboarding experience with a short survey. 3 form nodes are chained to capture more details from the user which update the same row in the google sheet.
  Finally, a form ending node shows a customised completion screen for our user.

  Check out the example sheet here: https://docs.google.com/spreadsheets/d/15W1PiFjCoiEBHHKKCRVMLmpKg4AWIy9w1dQ2Dq8qxPs/edit?usp=sharing

  How to use
  Keeping forms simple may serve to increase form completion rates. If you feel the need to add additional fields, consider breaking them up into more forms and group them contextually.

  Requirements
  Google Sheets for data capture
  Slack for notifications

  Feel free to swap these out for services that you use!

  Customising this workflow
  Play with multi-form design to maximise the opportunity of getting to know the user better. That said, lengthy flows are likely to put people off.
  Instead of showing a static completion screen, perhaps redirecting to your blog or other more interesting page.

nodes_used:
  ["n8n-nodes-base.form","n8n-nodes-base.form","n8n-nodes-base.form","n8n-nodes-base.formTrigger","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","n8n-nodes-base.form","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.slack"]

workflow_json_compressed:
  [encoded data, 5944 characters]

metadata_json:
  {"categories":["automation","forms","lead capture","onboarding","data collection"],"complexity":"simple","use_cases":["Newsletter signup capture","Simple lead capture for startups or side projects","Multi-step onboarding / short surveys","Collecting and storing signups in a spreadsheet","Sending notifications to a team (Slack)"],"estimated_setup_minutes":15,"required_services":["n8n (Forms trigger and workflow)","Google Sheets (Google account)","Slack (workspace for notifications)"],"key_features":["Multi-page form flow using chained form nodes","Capture email and update the same Google Sheet row across forms","Customisable completion screen (form ending)","Slack notifications for new signups","Simple, low-cost alternative to hosted form services"],"target_audience":["Founders / startup teams","Small businesses and side-project owners","Marketers collecting leads or feedbacks cheaply and simply"]}


name: Automate Sales Meeting Prep with AI & APIFY Sent To WhatsApp
author_name: Jimleuk
author_username: jimleuk
categories: []
created_at: 2024-11-26T23:00:48.040Z
updated_at: 2024-11-26T23:00:48.040Z
url: https://n8n.io/workflows/2582
scraped_at: 2025-09-14 19:11:02
metadata_generated_at: 2025-09-14 21:18:31
description:
  This n8n template builds a meeting assistant that compiles timely reminders of upcoming meetings filled with email history and recent LinkedIn activity of other people on the invite. This is then discreetly sent via WhatsApp ensuring the user is always prepared, informed and ready to impress!

  How it works
  A scheduled trigger fires hourly to check for upcoming personal meetings.
  When found, the invite is analysed by an AI agent to pull email and LinkedIn details of the other invitees.
  2 subworkflows are then triggered for each invitee to (1) search for last email correspondence with them and (2) scrape their LinkedIn profile + recent activity for social updates.
  Using both available sources, another AI agent is used to summarise this information and generate a short meeting prep message for the user.
  The notification is finally sent to the user's WhatsApp, allowing them ample time to review.

  How to use
  There are a lot of moving parts in this template so in it's current form, it's best to use this for personal rather than team calendars.
  The LinkedIn scraping method used in this workflow requires you to paste in your LinkedIn cookies from your browser which essentially let's n8n impersonate you. You can retrieve this from dev console or ask someone technical for help!

  Note: It may be wise to switch to other LinkedIn scraping approaches which do not impersonate your own account for production.

  Requirements
  OpenAI for LLM
  Gmail for Email
  Google Calendar for upcoming events
  WhatsApp Business account for notifications

  Customising this workflow
  Try adding information sources which are relevant to you and your invitees. Such as company search, other social media sites etc.
  Create an on-demand version which doesn't rely on the scheduled trigger. Sometimes you want to know prepare for meetings hours or days in advance where this could help immensely.

nodes_used:
  ["n8n-nodes-base.gmail","n8n-nodes-base.set","n8n-nodes-base.googleCalendar","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.informationExtractor","n8n-nodes-base.executeWorkflowTrigger","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.gmail","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.whatsApp","n8n-nodes-base.stickyNote","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.set","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.switch","n8n-nodes-base.set","n8n-nodes-base.if","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.splitOut","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.splitOut","n8n-nodes-base.set","n8n-nodes-base.if","n8n-nodes-base.if","n8n-nodes-base.executeWorkflow","n8n-nodes-base.merge","n8n-nodes-base.aggregate","n8n-nodes-base.aggregate","n8n-nodes-base.html","n8n-nodes-base.splitOut","n8n-nodes-base.httpRequest","n8n-nodes-base.html","n8n-nodes-base.html","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.html","n8n-nodes-base.merge","n8n-nodes-base.if","n8n-nodes-base.html","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.executeWorkflow","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.chainLlm","@n8n/n8n-nodes-langchain.chainLlm","@n8n/n8n-nodes-langchain.chainLlm"]

workflow_json_compressed:
  [encoded data, 15396 characters]

metadata_json:
  {"categories":["automation","integration","data enrichment","sales enablement","communications"],"complexity":"complex","use_cases":["Sales meeting preparation","Pre-call research for account executives/SDRs","Prospect/attendee background enrichment","Automated meeting reminders with context","Relationship intelligence for client-facing roles"],"estimated_setup_minutes":120,"required_services":["OpenAI (LLM)","Gmail (email access)","Google Calendar (events)","WhatsApp Business (API/account)","LinkedIn (profile/activity scraping — currently via cookies)","Apify (optional for scraping workflows)"],"key_features":["Hourly scheduled check for upcoming personal meetings","AI agent extracts relevant invitee info","Per-invitee subworkflows to search email history and scrape LinkedIn activity","AI summarisation to produce short meeting-prep messages","Notifications sent discretely via WhatsApp for quick review prior to meetings`,`Configurable data sources and option to create on-demand trigger"],"target_audience":["Sales reps / SDRs","Account executives","Founders and solo operators who manage personal calendars rather than team calendars`,`Recruiters and business development professionals"]}


name: Optimize & Update Printify Title and Description Workflow
author_name: Alex Kim
author_username: alexk1919
categories: []
created_at: 2024-11-28T00:40:31.475Z
updated_at: 2024-11-28T00:40:31.475Z
url: https://n8n.io/workflows/2583
scraped_at: 2025-09-14 19:11:03
metadata_generated_at: 2025-09-14 21:18:32
description:
  Printify Automation - Update Title and Description Workflow

  This n8n workflow automates the process of retrieving products from Printify, generating optimized product titles and descriptions, and updating them back to the platform. It leverages OpenAI for content generation and integrates with Google Sheets for tracking and managing updates.

  Features

  Integration with Printify**: Fetch shops and products through Printify's API.
  AI-Powered Optimization**: Generate engaging product titles and descriptions using OpenAI's GPT model.
  Google Sheets Tracking**: Log and manage updates in Google Sheets.
  Custom Brand Guidelines**: Ensure consistent tone by incorporating brand-specific instructions.
  Loop Processing**: Iteratively process each product in batches.

  Workflow Structure

  Nodes Overview

  Manual Trigger: Manually start the workflow for testing purposes.
  Printify - Get Shops: Retrieves the list of shops from Printify.
  Printify - Get Products: Fetches product details for each shop.
  Split Out: Breaks down the product list into individual items for processing.
  Loop Over Items: Iteratively processes products in manageable batches.
  Generate Title and Desc: Uses OpenAI GPT to create optimized product titles and descriptions.
  Google Sheets Integration:
     Trigger: Monitors Google Sheets for changes.
     Log Updates: Records product updates, including old and new titles/descriptions.
  Conditional Logic:
     If Nodes: Ensure products are ready for updates and stop processing once completed.
  Printify - Update Product: Sends updated titles and descriptions back to Printify.
  Brand Guidelines + Custom Instructions: Sets brand tone and seasonal instructions.

  Setup Instructions

  Prerequisites

  n8n Instance: Ensure n8n is installed and configured.
  Printify API Key:
     Obtain an API key from your Printify account.
     Add it to n8n under HTTP Header Auth.
  OpenAI API Key:
     Obtain an API key from OpenAI.
     Add it to n8n under OpenAI API.
  Google Sheets Integration:
     Share your Google Sheets with the Google API service account.
     Configure Google Sheets credentials in n8n.

  Workflow Configuration

  Set Brand Guidelines:
     Update the Brand Guidelines + Custom Instructions node with your brand name, tone, and seasonal instructions.
  Batch Size:
     Configure the Loop Over Items node for optimal batch sizes.
  Google Sheets Configuration:
     Set the correct Google Sheets document and sheet names in the integration nodes.
  Run the Workflow:
     Start manually or configure the workflow to trigger automatically.

  Key Notes

  Customization**:
    Modify API calls to support other platforms like Printful or Vistaprint.
  Scalability**:
    Use batch processing for efficient handling of large product catalogs.
  Error Handling**:
    Configure retries or logging for any failed nodes.

  Output Examples

  Optimized Content Example

  Input Title**: "Classic White T-Shirt"
  Generated Title**: "Stylish Classic White Tee for Everyday Wear"
  Input Description**: "Plain white T-shirt made of cotton."
  Generated Description**: "Discover comfort and style with our classic white tee, crafted from premium cotton for all-day wear. Perfect for casual outings or layering."

  Next Steps

  Monitor Updates:
     Use Google Sheets to review logs of updated products.
  Expand Integration:
     Add support for more Printify shops or integrate with other platforms.
  Enhance AI Prompts:
     Customize prompts for different product categories or seasonal needs.

  Feel free to reach out for additional guidance or troubleshooting!

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.splitOut","n8n-nodes-base.splitInBatches","n8n-nodes-base.splitOut","@n8n/n8n-nodes-langchain.toolCalculator","@n8n/n8n-nodes-langchain.toolWikipedia","n8n-nodes-base.httpRequest","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.googleSheetsTrigger","n8n-nodes-base.httpRequest","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.if","n8n-nodes-base.set","n8n-nodes-base.code","n8n-nodes-base.set","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.if"]

workflow_json_compressed:
  [encoded data, 6576 characters]

metadata_json:
  {"categories":["automation","e-commerce","integration","AI content generation"],"complexity":"medium","use_cases":["Bulk optimize product titles and descriptions","Sync updated product metadata back to Printify","Track and audit updates via Google Sheets","Apply brand-specific tone and seasonal instructions","Batch processing large product catalogs"],"estimated_setup_minutes":30,"required_services":["Printify API","OpenAI (GPT) API","Google Sheets / Google API","n8n instance"],"key_features":["Fetch shops and products from Printify","Generate optimized titles and descriptions with OpenAI","Update products back to Printify via API","Log changes and manage updates in Google Sheets","Brand guidelines and custom instructions for consistent tone`,`Looping and batch processing for scalability`,`Conditional logic and basic error handling/retries"],"target_audience":["e-commerce merchants","marketplace managers","growth marketers/content managers handling product listings`,`technical operations or developers automating storefront workflows"]}


