# nodes

node_type: nodes-langchain.vectorStoreZepInsert
package_name: @n8n/n8n-nodes-langchain
display_name: Zep Vector Store: Insert
description: Insert data into Zep Vector Store index
category: transform
development_style: programmatic
version: 1
operations: []
credentials_required:
  [
  {
  "name": "zepApi",
  "required": true
  }
  ]

outputs:
  [
  "main"
  ]

updated_at: 2025-09-09 22:00:26
properties_schema:
  [
    {
      "displayName": "This Zep integration is deprecated and will be removed in a future version.",
      "name": "deprecationNotice",
      "type": "notice",
      "default": ""
    },
    {
      "displayName": "Collection Name",
      "name": "collectionName",
      "type": "string",
      "default": "",
      "required": true
    },
    {
      "displayName": "Specify the document to load in the document loader sub-node",
      "name": "notice",
      "type": "notice",
      "default": ""
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Embedding Dimensions",
          "name": "embeddingDimensions",
          "type": "number",
          "default": 1536,
          "description": "Whether to allow using characters from the Unicode surrogate blocks"
        },
        {
          "displayName": "Is Auto Embedded",
          "name": "isAutoEmbedded",
          "type": "boolean",
          "default": true,
          "description": "Whether to automatically embed documents when they are added"
        }
      ]
    }
  ]


node_type: nodes-langchain.vectorStoreZepLoad
package_name: @n8n/n8n-nodes-langchain
display_name: Zep Vector Store: Load
description: Load data from Zep Vector Store index
category: transform
development_style: programmatic
version: 1
operations: []
credentials_required:
  [
  {
  "name": "zepApi",
  "required": true
  }
  ]

outputs:
  [
  "ai_vectorStore"
  ]

output_names:
  [
  "Vector Store"
  ]

updated_at: 2025-09-09 22:00:26
properties_schema:
  [
    {
      "displayName": "This Zep integration is deprecated and will be removed in a future version.",
      "name": "deprecationNotice",
      "type": "notice",
      "default": ""
    },
    {
      "displayName": "Collection Name",
      "name": "collectionName",
      "type": "string",
      "default": "",
      "required": true
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Embedding Dimensions",
          "name": "embeddingDimensions",
          "type": "number",
          "default": 1536,
          "description": "Whether to allow using characters from the Unicode surrogate blocks"
        },
        {
          "displayName": "Metadata Filter",
          "name": "metadata",
          "type": "fixedCollection",
          "description": "Metadata to filter the document by",
          "typeOptions": {
            "multipleValues": true
          },
          "default": {},
          "placeholder": "Add filter field",
          "options": [
            {
              "name": "metadataValues",
              "displayName": "Fields to Set",
              "values": [
                {
                  "displayName": "Name",
                  "name": "name",
                  "type": "string",
                  "default": "",
                  "required": true
                },
                {
                  "displayName": "Value",
                  "name": "value",
                  "type": "string",
                  "default": ""
                }
              ]
            }
          ]
        }
      ]
    }
  ]


node_type: nodes-langchain.toolExecutor
package_name: @n8n/n8n-nodes-langchain
display_name: Tool Executor
description: Node to execute tools without an AI Agent
category: transform
development_style: programmatic
version: 1
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2025-09-09 22:00:26
properties_schema:
  [
    {
      "displayName": "Query",
      "name": "query",
      "type": "json",
      "default": "{}",
      "description": "Parameters to pass to the tool as JSON or string"
    },
    {
      "displayName": "Tool Name",
      "name": "toolName",
      "type": "string",
      "default": "",
      "description": "Name of the tool to execute if the connected tool is a toolkit"
    }
  ]


node_type: nodes-langchain.modelSelector
package_name: @n8n/n8n-nodes-langchain
display_name: Model Selector
description: Use this node to select one of the connected models to this node based on workflow data
category: transform
development_style: programmatic
version: 1
operations: []
credentials_required: []
outputs:
  [
  "ai_languageModel"
  ]

updated_at: 2025-09-09 22:00:26
properties_schema:
  [
    {
      "displayName": "Number of Inputs",
      "name": "numberInputs",
      "type": "options",
      "default": 2,
      "description": "The number of data inputs you want to merge. The node waits for all connected inputs to be executed.",
      "options": [
        {
          "name": "2",
          "value": 2
        },
        {
          "name": "3",
          "value": 3
        },
        {
          "name": "4",
          "value": 4
        },
        {
          "name": "5",
          "value": 5
        },
        {
          "name": "6",
          "value": 6
        },
        {
          "name": "7",
          "value": 7
        },
        {
          "name": "8",
          "value": 8
        },
        {
          "name": "9",
          "value": 9
        },
        {
          "name": "10",
          "value": 10
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Rules",
      "name": "rules",
      "type": "fixedCollection",
      "default": {},
      "description": "Rules to map workflow data to specific models",
      "options": [
        {
          "displayName": "Rule",
          "name": "rule",
          "values": [
            {
              "displayName": "Model",
              "name": "modelIndex",
              "type": "options",
              "description": "Choose model input from the list",
              "default": 1,
              "required": true,
              "placeholder": "Choose model input from the list",
              "typeOptions": {
                "loadOptionsMethod": "getModels"
              }
            },
            {
              "displayName": "Conditions",
              "name": "conditions",
              "placeholder": "Add Condition",
              "type": "filter",
              "default": {},
              "typeOptions": {
                "filter": {
                  "caseSensitive": true,
                  "typeValidation": "strict",
                  "version": 2
                }
              },
              "description": "Conditions that must be met to select this model"
            }
          ]
        }
      ],
      "typeOptions": {
        "multipleValues": true,
        "sortable": true
      }
    }
  ]


# templates

name: Extract spending history from gmail to google sheet
author_name: hana
author_username: hanamizuki
categories: []
created_at: 2024-09-15T07:38:34.216Z
updated_at: 2024-09-15T07:38:34.216Z
url: https://n8n.io/workflows/2414
scraped_at: 2025-09-14 11:38:24
description:
  How it works
  Fetch transaction notification emails (including attachments)
  Clean up data
  Let AI (Basic LLM Chain node) generate bookkeeping item
  Send to Google sheet

  Details
  The example fetch email from Gmail lables, suggested using filters to automatically orgianize email into the labels
  Data will send to "raw data" sheet
  Example google sheet:
  https://docs.google.com/spreadsheets/d/1_IhdHj8bxtsfH2MRqKuU2LzJuzm4DaeKSw46eFcyYts/edit?gid=1617968863#gid=1617968863

nodes_used:
  ["n8n-nodes-base.gmailTrigger","n8n-nodes-base.gmailTrigger","n8n-nodes-base.extractFromFile","n8n-nodes-base.extractFromFile","n8n-nodes-base.html","n8n-nodes-base.splitOut","@n8n/n8n-nodes-langchain.outputParserStructured","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.googleSheets","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/n8n-nodes-langchain.lmChatGroq","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.googleSheets","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.merge","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 7276 characters]


name: Notion AI Assistant Generator
author_name: Max Tkacz
author_username: max-n8n
categories: []
created_at: 2024-09-16T12:56:40.493Z
updated_at: 2024-09-16T12:56:40.493Z
url: https://n8n.io/workflows/2415
scraped_at: 2025-09-14 11:38:21
description:
  This n8n workflow template lets teams easily generate a custom AI chat assistant based on the schema of any Notion database. Simply provide the Notion database URL, and the workflow downloads the schema and creates a tailored AI assistant designed to interact with that specific database structure.

  Set Up
  Watch this quick set up video 👇

  Key Features
  Instant Assistant Generation**: Enter a Notion database URL, and the workflow produces an AI assistant configured to the database schema.
  Advanced Querying**: The assistant performs flexible queries, filtering records by multiple fields (e.g., tags, names). It can also search inside Notion pages to pull relevant content from specific blocks.
  Schema Awareness**: Understands and interacts with various Notion column types like text, dates, and tags for accurate responses.
  Reference Links**: Each query returns direct links to the exact Notion pages that inform the assistant’s response, promoting transparency and easy access.
  Self-Validation**: The workflow has logic to check the generated assistant, and if any errors are detected, it reruns the agent to fix them.

  Ideal for
  Product Managers**: Easily access and query product data across Notion databases.
  Support Teams**: Quickly search through knowledge bases for precise information to enhance support accuracy.
  Operations Teams**: Streamline access to HR, finance, or logistics data for fast, efficient retrieval.
  Data Teams**: Automate large dataset queries across multiple properties and records.

  How It Works
  This AI assistant leverages two HTTP request tools—one for querying the Notion database and another for retrieving data within individual pages. It’s powered by the Anthropic LLM (or can be swapped for GPT-4) and always provides reference links for added transparency.

nodes_used:
  ["n8n-nodes-base.stickyNote","n8n-nodes-base.notion","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.outputParserAutofixing","@n8n/n8n-nodes-langchain.lmChatAnthropic","n8n-nodes-base.set","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.lmChatAnthropic","n8n-nodes-base.set","n8n-nodes-base.code","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.code","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.switch","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatAnthropic","@n8n/n8n-nodes-langchain.chatTrigger","@n8n/n8n-nodes-langchain.textClassifier","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 10820 characters]


name: CV Resume PDF Parsing with Multimodal Vision AI
author_name: Jimleuk
author_username: jimleuk
categories: []
created_at: 2024-09-16T16:41:27.514Z
updated_at: 2024-09-16T16:41:27.514Z
url: https://n8n.io/workflows/2416
scraped_at: 2025-09-14 11:38:22
description:
  This n8n workflow demonstrates how we can use Multimodal LLMs to parse and extract from PDF documents in n8n.

  In this particular scenario, we're passing a candidate's CV/resume to an AI which filters out unqualified applications. However, this sneaky candidate has added in hidden prompt to bypass our bot! Whatever will we do? No fret, using AI Vision is one approach to solve this problem... read on!

  How it works

  Our candidate's CV/Resume is a PDF downloaded via Google Drive for this demonstration.
  The PDF is then converted into an image PNG using a tool called Stirling PDF. Since the hidden prompt has a white font color, it is is invisible in the converted image.
  The image is then forwarded to a Basic LLM node to process using our multimodal model - in this example, we'll use Google's Gemini 1.5 Pro.
  In the Basic LLM node, we'll need to set a User Message with the type of Binary. This allows us to directly send the image file in our request.
  The LLM is now immune to the hidden prompt and its response is has expected.

  The example CV/Resume with hidden prompt can be found here: https://drive.google.com/file/d/1MORAdeev6cMcTJBV2EYALAwll8gCDRav/view?usp=sharing

  Requirements

  Google Gemini API Key. Alternatively, GPT4 will also work for this use-case.
  Stirling PDF or another service which can convert PDFs into images. Note for data privacy, this example uses a public API and it is recommended that you self-host and use a private instance of Stirling PDF instead.

  Customising the workflow

  Swap out the manual trigger for another trigger such as a webhook to integrate into your existing services.
  This example demonstrates a validation use-case ie. "does the candidate look qualified?". You can try additionally extracting data points instead such as years of experiences, previous companies etc.

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

workflow_json_compressed:
  [encoded data, 4392 characters]


name: Flux AI Image Generator
author_name: Max Tkacz
author_username: max-n8n
categories: []
created_at: 2024-09-17T19:50:43.299Z
updated_at: 2024-09-17T19:50:43.299Z
url: https://n8n.io/workflows/2417
scraped_at: 2025-09-14 11:38:21
description:
  Easily generate images with Black Forest's Flux Text-to-Image AI models using Hugging Face’s Inference API. This template serves a webform where you can enter prompts and select predefined visual styles that are customizable with no-code. The workflow integrates seamlessly with Hugging Face's free tier, and it’s easy to modify for any Text-to-Image model that supports API access.

  Try it 
  Curious what this template does? Try a public version here: https://devrel.app.n8n.cloud/form/flux

  Set Up
  Watch this quick set up video 👇

  Accounts required
  Huggingface.co account (free)
  Cloudflare.com account (free - used for storage; but can be swapped easily e.g. GDrive)

  Key Features:
  Text-to-Image Creation**: Generates unique visuals based on your prompt and style.
  Hugging Face Integration**: Utilizes Hugging Face’s Inference API for reliable image generation.
  Customizable Visual Styles**: Select from preset styles or easily add your own.
  Adaptable**: Swap in any Hugging Face Text-to-Image model that supports API calls.

  Ideal for:
  Creators**: Rapidly create visuals for projects.
  Marketers**: Prototype campaign visuals.
  Developers**: Test different AI image models effortlessly.

  How It Works:
  You submit an image prompt via the webform and select a visual style, which appends style instructions to your prompt. The Hugging Face Inference API then generates and returns the image, which gets hosted on Cloudflare S3. The workflow can be easily adjusted to use other models and styles for complete flexibility.

nodes_used:
  ["n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.respondToWebhook","n8n-nodes-base.respondToWebhook","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.s3","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.formTrigger","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.switch"]

workflow_json_compressed:
  [encoded data, 6848 characters]


name: Easy Image Captioning with Gemini 1.5 Pro
author_name: Jimleuk
author_username: jimleuk
categories: []
created_at: 2024-09-18T10:17:10.042Z
updated_at: 2024-09-18T10:17:10.042Z
url: https://n8n.io/workflows/2418
scraped_at: 2025-09-14 11:38:23
description:
  This n8n workflow demonstrates how to automate image captioning tasks using Gemini 1.5 Pro - a multimodal LLM which can accept and analyse images. This is a really simple example of how easy it is to build and leverage powerful AI models in your repetitive tasks.

  How it works
  For this demo, we'll import a public image from a popular stock photography website, Pexel.com, into our workflow using the HTTP request node.
  With multimodal LLMs, there is little do preprocess other than ensuring the image dimensions fit within the LLMs accepted limits. Though not essential, we'll resize the image using the Edit image node to achieve fast processing.
  The image is used as an input to the basic LLM node by defining a "user message" entry with the binary (data) type.
  The LLM node has the Gemini 1.5 Pro language model attached and we'll prompt it to generate a caption title and text appropriate for the image it sees.
  Once generated, the generated caption text is positioning over the original image to complete the task. We can calculate the positioning relative to the amount of characters produced using the code node.

  An example of the combined image and caption can be found here: https://res.cloudinary.com/daglih2g8/image/upload/f_auto,q_auto/v1/n8n-workflows/l5xbb4ze4wyxwwefqmnc

  Requirements
  Google Gemini API Key.
  Access to Google Drive.

  Customising the workflow

  Not using Google Gemini? n8n's basic LLM node supports the standard syntax for image content for models that support it - try using GPT4o, Claude or LLava (via Ollama).

  Google Drive is only used for demonstration purposes. Feel free to swap this out for other triggers such as webhooks to fit your use case.

nodes_used:
  ["n8n-nodes-base.manualTrigger","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.editImage","n8n-nodes-base.editImage","n8n-nodes-base.code","n8n-nodes-base.editImage","n8n-nodes-base.stickyNote","n8n-nodes-base.merge","n8n-nodes-base.merge","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.chainLlm"]

workflow_json_compressed:
  [encoded data, 4536 characters]


name: Visual Regression Testing with Apify and AI Vision Model
author_name: Jimleuk
author_username: jimleuk
categories: []
created_at: 2024-09-18T12:48:22.119Z
updated_at: 2024-09-18T12:48:22.119Z
url: https://n8n.io/workflows/2419
scraped_at: 2025-09-14 11:38:23
description:
  This n8n workflow is a proof-of-concept template exploring how we might work with multimodal LLMs and their multi-image analysis capabilities. In this demo, we compare 2 screenshots of a webpage taken at different timestamps and pass both to our multimodal LLM for a visual comparison of differences. Handling multiple binary inputs (ie. images) in an AI request is supported by n8n's basic LLM node.

  How it works

  This template is intended to run as 2 parts: first to generate the base screenshots and next to run the visual regression test which captures fresh screenshots.

  Starting with a list of webpages captured in a Google sheet,  base screenshots are captured for each using a external web scraping service called Apify.com (I prefer Apify but feel free to use whichever web scraping service available to you)
  These base screenshots are uploaded to Google Drive and will be referenced later when we run our testing.
  Phase 2 of the workflow, we'll use a scheduled trigger to fire sometime in the future which will reuse our web scraping service to generate fresh screenshots of our desired webpages.
  Next, re-download our base screenshots in parallel and with both old and new captures, we'll pass these to our LLM node. In the LLM node's options, we'll define 2 "user message" inputs with the type of binary (data) for our images.
  Finally, we'll prompt our LLM with our testing criteria and capture the regressions detected. Note, results will vary depending on which LLM you use.
  A final report can be generated using the LLM's output and is uploaded to Linear.

  Requirements

  Apify.com API key for web screenshotting service
  Google Drive and Sheets access to store list of webpages and captures

  Customising this workflow

  Have your own preferred web screenshotting service? Feel free to swap out Apify with your service of choice.

  If the web screenshot is too large, it may prove difficult for the LLM to spot differences with precision. Try splitting up captures into smaller images instead.

nodes_used:
  ["n8n-nodes-base.googleDrive","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.splitInBatches","n8n-nodes-base.wait","n8n-nodes-base.httpRequest","n8n-nodes-base.googleDrive","n8n-nodes-base.googleSheets","n8n-nodes-base.merge","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.googleSheets","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.filter","n8n-nodes-base.set","n8n-nodes-base.wait","n8n-nodes-base.aggregate","n8n-nodes-base.linear","n8n-nodes-base.manualTrigger","n8n-nodes-base.googleSheets","n8n-nodes-base.splitInBatches","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.merge","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.chainLlm"]

workflow_json_compressed:
  [encoded data, 8752 characters]


name: Automate Image Validation Tasks using AI Vision
author_name: Jimleuk
author_username: jimleuk
categories: []
created_at: 2024-09-18T13:30:15.847Z
updated_at: 2024-09-18T13:30:15.847Z
url: https://n8n.io/workflows/2420
scraped_at: 2025-09-14 11:38:22
description:
  This n8n workflow shows how using multimodal LLMs with AI vision can tackle tricky image validation tasks which are near impossible to achieve with code and often impractical to be done by humans at scale.

  You may need image validation when users submitted photos or images are required to meet certain criteria before being accepted. A wine review website may require users only submit photos of wine with labels, a bank may require account holders to submit scanned documents for verification etc.

  In this demonstration, our scenario will be to analyse a set of portraits to verify if they meet the criteria for valid passport photos according to the UK government website (https://www.gov.uk/photos-for-passports).

  How it works

  Our set of portaits are jpg files downloaded from our Google Drive using the Google Drive node.
  Each image is resized using the Edit Image node to ensure a balance between resolution and processing speed.
  Using the Basic LLM node, we'll define a "user message" option with the type of binary (data). This will allow us to pass our portrait to the LLM as an input.
  With our prompt containing the criteria pulled off the passport photo requirements webpage, the LLM is able to validate the photo does or doesn't meet its criteria.
  A structured output parser is used to structure the LLM's response to a JSON object which has the "is_valid" boolean property. This can be useful to further extend the workflow.

  Requirements
  Google Gemini API key
  Google Drive account

  Customising this workflow

  Not using Gemini? n8n's LLM node works with any compatible multimodal LLM so feel free to swap Gemini out for OpenAI's GPT4o or Antrophic's Claude Sonnet.

  Don't need to validate portraits? Try other use cases such as document classification, security footage analysis, people tagging in photos and more.

nodes_used:
  ["n8n-nodes-base.manualTrigger","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.set","n8n-nodes-base.splitOut","n8n-nodes-base.googleDrive","n8n-nodes-base.editImage","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.chainLlm","@n8n/n8n-nodes-langchain.lmChatGoogleGemini"]

workflow_json_compressed:
  [encoded data, 4452 characters]


name: Transcribing Bank Statements To Markdown Using Gemini Vision AI
author_name: Jimleuk
author_username: jimleuk
categories: []
created_at: 2024-09-18T15:34:00.441Z
updated_at: 2024-09-18T15:34:00.441Z
url: https://n8n.io/workflows/2421
scraped_at: 2025-09-14 11:38:22
description:
  This n8n workflow demonstrates an approach to parsing bank statement PDFs with multimodal LLMs as an alternative to traditional OCR. This allows for much more accurate data extraction from the document especially when it comes to tables and complex layouts.

  Multimodal Parsing is better than traditiona OCR because:
  It reduces complexity and overhead by avoiding the need to preprocess the document into text format such as markdown before passing to the LLM.
  It handles non-standard PDF formats which may produce garbled output via traditional OCR text conversion.
  It's orders of magnitude cheaper than premium OCR models that still require post-processing cleanup and formatting. LLMs can format to any schema or language you desire!

  How it works

  You can use the example bank statement created specifically for this workflow here: https://drive.google.com/file/d/1wS9U7MQDthj57CvEcqG_Llkr-ek6RqGA/view?usp=sharing

  A PDF bank statement is imported via Google Drive. For this demo, I've created a mock bank statement which includes complex table layouts of 5 columns. Typically, OCR will be unable to align the columns correctly and mistake some deposits for withdrawals.
  Because multimodal LLMs do not accept PDFs directly, well have to convert the PDF to a series of images. We can achieve this by using a tool such as Stirling PDF. Stirling PDF is self-hostable which is handy for sensitive data such as bank statements.
  Stirling PDF will return our PDF as a series of JPGs (one for each page) in a zipped file. We can use n8n's decompress node to extract the images and ensure they are ordered by using the Sort node.
  Next, we'll resize each page using the Edit Image node to ensure the right balance between resolution limits and processing speed.
  Each resized page image is then passed into the Basic LLM node which will use our multimodal LLM of choice - Gemini 1.5 Pro. In the LLM node's options, we'll add a "user message" of type binary (data) which is how we add our image data as an input.
  Our prompt will instruct the multimodal LLM to transcribe each page to markdown. Note, you do not need to do this - you can just ask for data points to extract directly! Our goal for this template is to demonstrate the LLMs ability to accurately read the page.
  Finally, with our markdown version of all pages, we can pass this to another LLM node to extract required data such as deposit line items.

  Requirements

  Google Gemini API for Multimodal LLM.
  Google Drive access for document storage.
  Stirling PDF instance for PDF to Image conversion

  Customising the workflow

  At time of writing, Gemini 1.5 Pro is the most accurate in text document parsing with a relatively low cost. If you are not using Google Gemini however you can switch to other multimodal LLMs such as OpenAI GPT or Antrophic Claude. 

  If you don't need the markdown, simply asking what to extract directly in the LLM's prompt is also acceptable and would save a few extra steps.

  Not parsing any bank statements any time soon? This template also works for Invoices, inventory lists, contracts, legal documents etc.

nodes_used:
  ["n8n-nodes-base.manualTrigger","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.sort","n8n-nodes-base.stickyNote","n8n-nodes-base.googleDrive","n8n-nodes-base.httpRequest","n8n-nodes-base.compression","n8n-nodes-base.code","n8n-nodes-base.editImage","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.aggregate","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.informationExtractor","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.chainLlm"]

workflow_json_compressed:
  [encoded data, 6292 characters]


name: Venafi Cloud Slack Cert Bot
author_name: Angel Menendez
author_username: djangelic
categories: []
created_at: 2024-09-19T23:37:20.885Z
updated_at: 2024-09-19T23:37:20.885Z
url: https://n8n.io/workflows/2422
scraped_at: 2025-09-14 11:38:24
description:
  Enhance Security Operations with the Venafi Slack CertBot!

  Venafi Presentation  - Watch Video

  Our Venafi Slack CertBot is strategically designed to facilitate immediate security operations directly from Slack. This tool allows end users to request Certificate Signing Requests that are automatically approved or passed to the Secops team for manual approval depending on the Virustotal analysis of the requested domain. Not only does this help centralize requests, but it helps an organization maintain the security certifications by allowing automated processes to log and analyze requests in real time. 

  Workflow Highlights:
  Interactive Modals**: Utilizes Slack modals to gather user inputs for scan configurations and report generation, providing a user-friendly interface for complex operations.
  Dynamic Workflow Execution**: Integrates seamlessly with Venafi to execute CSR generation and if any issues are found, AI can generate a custom report that is then passed to a slack teams channel for manual approval with the press of a single button.

  Operational Flow:
  Parse Webhook Data**: Captures and parses incoming data from Slack to understand user commands accurately.
  Execute Actions**: Depending on the user's selection, the workflow triggers other actions within the flow like automatic Virustotal Scanning.
  Respond to Slack**: Ensures that every interaction is acknowledged, maintaining a smooth user experience by managing modal popups and sending appropriate responses.


  Setup Instructions:
  Verify that Slack and Qualys API integrations are correctly configured for seamless interaction.
  Customize the modal interfaces to align with your organization's operational protocols and security policies.
  Test the workflow to ensure that it responds accurately to Slack commands and that the integration with Qualys is functioning as expected.


  Need Assistance?
  Explore Venafi's Documentation or get help from the n8n Community for more detailed guidance on setup and customization.

  Deploy this bot within your Slack environment to significantly enhance the efficiency and responsiveness of your security operations, enabling proactive management of CSR's.

nodes_used:
  ["n8n-nodes-base.venafiTlsProtectCloud","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.respondToWebhook","n8n-nodes-base.stickyNote","n8n-nodes-base.respondToWebhook","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.executeWorkflow","n8n-nodes-base.httpRequest","n8n-nodes-base.set","n8n-nodes-base.if","n8n-nodes-base.noOp","n8n-nodes-base.noOp","n8n-nodes-base.set","n8n-nodes-base.executeWorkflow","n8n-nodes-base.merge","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.merge","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.slack","n8n-nodes-base.slack","n8n-nodes-base.switch","n8n-nodes-base.venafiTlsProtectCloud","n8n-nodes-base.slack","n8n-nodes-base.stickyNote","n8n-nodes-base.noOp","n8n-nodes-base.webhook","n8n-nodes-base.respondToWebhook"]

workflow_json_compressed:
  [encoded data, 12820 characters]


name: Manipulate PDF with Adobe developer API
author_name: digi-stud.io
author_username: valerian
categories: []
created_at: 2024-09-23T12:32:15.091Z
updated_at: 2024-09-23T12:32:15.091Z
url: https://n8n.io/workflows/2424
scraped_at: 2025-09-14 11:38:24
description:
  Adobe developer API

  Did you know that Adobe provides an API to perform all sort of manipulation on PDF files : 

  Split PDF, Combine PDF
  OCR
  Insert page, delete page, replace page, reorder page
  Content extraction (text content, tables, pictures)
  ...

  The free tier allows up to 500 PDF operation / month. As it comes directly from Adobe, it works often better than other alternatives.

  Adobe documentation: 

  https://developer.adobe.com/document-services/docs/overview/pdf-services-api/howtos/
  https://developer.adobe.com/document-services/docs/overview/pdf-extract-api/gettingstarted/

  What does this workflow do

  The API is a bit painful to use. To perform a transformation on a PDF it requires to 

  Authenticate and get a temporal token
  Register a new asset (file)
  Upload you PDF to the registered asset
  Perform a query according to the transformation requested
  Wait for the query to be proccessed by Adobe backend
  Download the result

  This workflow is a generic wrapper to perform all these steps for any transformation endpoint. I usually use it from other workflow with an Execute Workflow node.

  Examples are given in the workflow.

  Example use case

  This service is useful for example to clean PDF data for an AI / RAG system. 

  My favorite use-case is to extract table as images and forward images to an AI for image recognition / description which is often more accuarate than feedind raw tabular data to a LLM.

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.httpRequest","n8n-nodes-base.executeWorkflowTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.dropbox","n8n-nodes-base.merge","n8n-nodes-base.merge","n8n-nodes-base.httpRequest","n8n-nodes-base.wait","n8n-nodes-base.httpRequest","n8n-nodes-base.switch","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest"]

workflow_json_compressed:
  [encoded data, 4676 characters]


name: Ultimate Scraper Workflow for n8n
author_name: Pablo
author_username: pablobarrier
categories: []
created_at: 2024-09-25T13:38:27.505Z
updated_at: 2024-09-25T13:38:27.505Z
url: https://n8n.io/workflows/2431
scraped_at: 2025-09-14 11:38:21
description:
  What this template does
  The Ultimate Scraper for n8n uses Selenium and AI to retrieve any information displayed on a webpage. You can also use session cookies to log in to the targeted webpage for more advanced scraping needs.

  ⚠️ Important: This project requires specific setup instructions. Please follow the guidelines provided in the GitHub repository: n8n Ultimate Scraper Setup : https://github.com/Touxan/n8n-ultimate-scraper/tree/main.

  The workflow version on n8n and the GitHub project may differ; however, the most up-to-date version will always be the one available on the GitHub repository : https://github.com/Touxan/n8n-ultimate-scraper/tree/main.

  How to use 
  Deploy the project with all the requirements and request your webhook.

  Example of request:
  curl -X POST http://localhost:5678/webhook-test/yourwebhookid \
  -H "Content-Type: application/json" \
  -d '{
    "subject": "Hugging Face",
    "Url": "github.com",
    "Target data": [
      {
        "DataName": "Followers",
        "description": "The number of followers of the GitHub page"
      },
      {
        "DataName": "Total Stars",
        "description": "The total numbers of stars on the different repos"
      }
    ],
    "cookie": []
  }'

  Or to just scrap a url :
  curl -X POST http://localhost:5678/webhook-test/67d77918-2d5b-48c1-ae73-2004b32125f0 \
  -H "Content-Type: application/json" \
  -d '{
    "Target Url": "https://github.com",
    "Target data": [
      {
        "DataName": "Followers",
        "description": "The number of followers of the GitHub page"
      },
      {
        "DataName": "Total Stars",
        "description": "The total numbers of stars on the different repo"
      }
    ],
    "cookies": []
  }'
  `

nodes_used:
  ["n8n-nodes-base.html","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.if","n8n-nodes-base.httpRequest","n8n-nodes-base.limit","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.respondToWebhook","n8n-nodes-base.respondToWebhook","n8n-nodes-base.code","n8n-nodes-base.httpRequest","n8n-nodes-base.respondToWebhook","n8n-nodes-base.respondToWebhook","n8n-nodes-base.respondToWebhook","n8n-nodes-base.if","n8n-nodes-base.httpRequest","n8n-nodes-base.respondToWebhook","n8n-nodes-base.respondToWebhook","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.respondToWebhook","@n8n/n8n-nodes-langchain.informationExtractor","n8n-nodes-base.if","n8n-nodes-base.if","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.convertToFile","n8n-nodes-base.convertToFile","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.convertToFile","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.respondToWebhook","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.openAi","@n8n/n8n-nodes-langchain.openAi","@n8n/n8n-nodes-langchain.informationExtractor","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.informationExtractor","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.stickyNote","n8n-nodes-base.webhook","n8n-nodes-base.if","n8n-nodes-base.if","n8n-nodes-base.httpRequest","n8n-nodes-base.if","n8n-nodes-base.httpRequest","n8n-nodes-base.if","n8n-nodes-base.httpRequest"]

workflow_json_compressed:
  [encoded data, 11380 characters]


name: Daily Podcast Summary
author_name: Jay Hartley
author_username: jay
categories: []
created_at: 2024-09-26T13:08:46.986Z
updated_at: 2024-09-26T13:08:46.986Z
url: https://n8n.io/workflows/2433
scraped_at: 2025-09-14 11:38:22
description:
  What this workflow does
  Downloads the daily top podcasts of a selected genre
  Summarizes the content of each podcast in a few paragraphs
  Sends the summaries and the direct link to each podcast in a formatted email

  Setup
   Create a free API key on Taddy here: https://taddy.org/signup/developers
   Input your user number and API key into the TaddyTopDaily node in the header parameters X-USER-ID and X-API-KEY respectively.
   Create access credentials for your Gmail as described here: https://developers.google.com/workspace/guides/create-credentials. Use the credentials from your client_secret.json in the Gmail node.
   In the Genre node, set the genre of podcasts you want a summary for. Valid values are: TECHNOLOGY, NEWS, ARTS, COMEDY, SPORTS, FICTION, etc. Look at api.taddy.org for the full list (they will be displayed in the help docs as PODCASTSERIES_TECHNOLOGY, PODCASTSERIES_NEWS, etc.)
   Enter your email address in the Gmail node.
   Change the schedule time for sending email from Schedule to whichever time you want to receive the email.

  Test:
  Hit Test Workflow.
  Check your email for the results.

  That's it! It should take less than 5 minutes total.

nodes_used:
  ["n8n-nodes-base.gmail","n8n-nodes-base.httpRequest","n8n-nodes-base.set","n8n-nodes-base.splitOut","n8n-nodes-base.httpRequest","n8n-nodes-base.set","n8n-nodes-base.code","n8n-nodes-base.html","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.openAi","n8n-nodes-base.scheduleTrigger","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"]

workflow_json_compressed:
  [encoded data, 5508 characters]


name: Enrich FAQ sections on your website pages at scale with AI
author_name: Polina Medvedieva
author_username: polina-n8n
categories: []
created_at: 2024-09-26T16:23:57.370Z
updated_at: 2024-09-26T16:23:57.370Z
url: https://n8n.io/workflows/2434
scraped_at: 2025-09-14 11:38:23
description:
  This n8n workflow template lets you easily generate comprehensive FAQ (Frequently Asked Questions) content for multiple services (or any items or pages you need to add the FAQs to). Simply provide the Google Sheets document containing the items to scrape, and the workflow automatically creates detailed, AI-enhanced FAQ documents.

  How it works
  The workflow reads data from a Google Sheets document containing information about different services and categories (again, in your case - whatever objects you need).
  For each service and category, it generates a set of standard questions and answers covering setup, permissions, integrations, use cases, and pricing benefits.
  An AI model (OpenAI's GPT) is used to enhance or complete some of the answers, making the content more comprehensive and natural-sounding.
  The workflow formats the Q&A pairs, combining AI-generated content with predefined answers where applicable.
  It creates a text file (JSON) for each service or category, containing the formatted Q&A pairs.
  The generated files are saved to specific folders in Google Drive, organized by the type of integration (native, credential-only, non-native) or category.
  After processing each service or category, it updates the status in the original Google Sheets document to mark it as completed.

  Ideal for:
  Marketing teams: Rapidly create comprehensive FAQ documents for multiple products or services.
  Customer support: Generate consistent and detailed answers for common customer queries.
  Product managers: Easily maintain up-to-date documentation as products evolve.
  Content creators: Streamline the process of creating informative content about various offerings.

  Accounts required
  Google account (for Google Sheets and Google Drive)
  OpenAI API account (for AI-enhanced content generation)
  n8n.io account (for workflow execution)

  Set up instructions
  Set up the required credentials for Google Sheets, Google Drive, and OpenAI when you first open the workflow.
  Prepare your Google Sheets document with the service/category information. Here's an example of Google Sheet.
  Fill the "Define Sheets" node with your sheets
  Adjust the folder IDs in the "Prepare Job" node to match your Google Drive structure.
  Configure the OpenAI model settings in the "OpenAI Chat Model" node if needed.
  Test the workflow with a small subset of data before running it on your entire dataset.
  Adjust the questions asked in the "Create your Q&A templates" section
  After testing, activate your workflow for automated FAQ generation.

  🙏 Big, big kudos to Jim Le for his ideas, input and support when building this workflow. Your approach to AI workflows is always super helpful!

nodes_used:
  ["n8n-nodes-base.manualTrigger","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.set","n8n-nodes-base.splitInBatches","n8n-nodes-base.splitOut","n8n-nodes-base.aggregate","n8n-nodes-base.set","n8n-nodes-base.googleDrive","n8n-nodes-base.set","n8n-nodes-base.splitOut","n8n-nodes-base.googleSheets","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.splitInBatches","n8n-nodes-base.executeWorkflowTrigger","n8n-nodes-base.executeWorkflow","n8n-nodes-base.set","n8n-nodes-base.splitInBatches","n8n-nodes-base.googleSheets","n8n-nodes-base.set","n8n-nodes-base.if","n8n-nodes-base.stickyNote","n8n-nodes-base.switch","n8n-nodes-base.stickyNote","n8n-nodes-base.switch","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.strapi","n8n-nodes-base.stickyNote","n8n-nodes-base.wordpress","n8n-nodes-base.webflow","n8n-nodes-base.httpRequest","@n8n/n8n-nodes-langchain.chainLlm"]

workflow_json_compressed:
  [encoded data, 9976 characters]


name: Monitor Multiple Github Repos via Webhook
author_name: Jay Hartley
author_username: jay
categories: []
created_at: 2024-09-27T10:16:59.342Z
updated_at: 2024-09-27T10:16:59.342Z
url: https://n8n.io/workflows/2435
scraped_at: 2025-09-14 11:38:23
description:
  What this workflow does
  This workflow allows you to monitor multiple Github repos simultaneously without polling due to use of Webhooks. It programmatically allows for adding and deleting of repos to your watchlist to make management convenient.

  Description
  Can monitor multiple repos simultaneously.
  Programmatically register or unregister repos from a list. No need for manual work.
  Webhook notification means no constant polling necessary.

  Setup
  1. Creating Credentials on Github
  Generate a personal access token on github by following these esteps;
  Right hand side of page -> Settings -> scroll to bottom -> Developer Settings > Personal Access Token > Tokens (classic) > Generate New Token
  Give scopes:
     admin:repo_hook
     repo (if you want to use it for your own private repo)

  if you need more help, see here:
  https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens

  2. Setting Credentials in n8n
  In Register Github Webhook
  Authenticaion > Generic Credential Type
  Generic Auth Type > Header Auth
  Header Auth > Create New Credential with Name set to 'Authorization' and Value set to 'Bearer '.
  (You can reuse this for Delete Github Webhook and Get Existing Webhooks).
  Now in Register Github Webhook, scroll down to Send Body > JSON and inside the JSON, change the value of "url" to the webhook address given as Production URL in the node Webhook Trigger.

  3. Notification settings
  In the third row, link up the Webhook Trigger to any API of your choice. Slack and Telegram are given as examples.
  You can also format the notification message as you wish.

  Setup time: roughly 10 minutes.

  Instructions Video:
  https://vimeo.com/1013473758

  Test
  1. Register Webhooks
  In Repos to Monitor, add any repo you want to monitor changes for. 
  Disable Webhook Trigger, Click Test Workflow and if your Github credentials were set correctly, it will automatically register the webhooks. - You can test this by running the single node Get Existing Webhook and confirming it outputs the repo addresses.
  2. Handle Github Events
  Now that you have registered the webhooks, re-enable Webhook Trigger and activate the workflow.
  Make a commit to any of the registered repos.
  Confirm that the notification went through.
  That's it!

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.splitOut","n8n-nodes-base.httpRequest","n8n-nodes-base.splitOut","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.slack","n8n-nodes-base.telegram","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.webhook","n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.set"]

workflow_json_compressed:
  [encoded data, 4868 characters]


name: Siri AI Agent: Apple Shortcuts powered voice template
author_name: Max Tkacz
author_username: max-n8n
categories: []
created_at: 2024-09-27T13:48:03.535Z
updated_at: 2024-09-27T13:48:03.535Z
url: https://n8n.io/workflows/2436
scraped_at: 2025-09-14 11:38:22
description:
  This template demonstrates how to trigger an AI Agent with Siri and Apple Shortcuts, showing a simple pattern for voice-activated workflows in n8n. It's easy to customize—add app nodes before the AI Agent step to pass additional context, or modify the Apple Shortcut to send inputs like text, geolocation, images, or files.

  Set Up
  Basic instructions in template itself.

  Requirements
  n8n account** (cloud or self-hosted)
  Apple Shortcuts app** on iOS or macOS. Dictation ("Siri") must be activated. Download the Shortcuts template here.

  Key Features:
  Voice-Controlled AI:** Trigger AI Agent via Siri for real-time voice replies.
  Customizable Inputs:** Modify Apple Shortcut to send text, images, geolocation, and more.
  Flexible Outputs:** Siri can return the AI’s response as text, files, or customize it to trigger CRUD actions in connected apps.
  Context-Aware:** Automatically feeds the current date and time to the AI Agent, with easy options to pass in more data.

  How It Works:
  Activate Siri and speak your request.  
  Siri sends the transcribed text to the n8n workflow via Apple Shortcuts.  
  AI Agent processes the request and generates a response.  
  Siri reads the response, or the workflow can return geolocation, files, or even perform CRUD actions in apps.

  Inspiration: Custom Use Cases
  Tweak this template and make it your own.
  Capture Business Cards:** Snap a photo of a business card and record a voice note. Have the AI Agent draft a follow-up email in Gmail, ready to send.
  Voice-to-Task Automation:** Speak a new to-do item, and the workflow will add it to a Notion task board.
  Business English on the Fly:** Convert casual speech into polished business language, and save the refined text directly to your pasteboard, ready to be pasted into any app. "It's late because of you" -&gt; "There has been a delay, and I believe your input may have contributed to it."

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

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


name: Convert image to text using GROQ LLaVA V1.5 7B
author_name: felipe biava cataneo
author_username: felipecataneo
categories: []
created_at: 2024-09-27T16:54:17.011Z
updated_at: 2024-09-27T16:54:17.011Z
url: https://n8n.io/workflows/2437
scraped_at: 2025-09-14 11:38:23
description:
  What this template does
  This template uses GROQ LLAVA V1.5 7B API that offers fast inference for multimodal models with vision capabilities for understanding and interpreting visual data from images. .

  The users send a image and get a description of the image from the model.

  Setup
  Open the Telegram app and search for the BotFather user (@BotFather)
  Start a chat with the BotFather
  Type /newbot to create a new bot
  Follow the prompts to name your bot and get a unique API token
  Save your access token and username
  Once you set your bot, you can send the image, and get the descriptions.

nodes_used:
  ["n8n-nodes-base.telegramTrigger","n8n-nodes-base.telegram","n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.extractFromFile","n8n-nodes-base.telegram","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

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


name: Find out which Chrome extensions are tracked by Linkedin
author_name: Anthony
author_username: scrapeninja
categories: []
created_at: 2024-09-28T07:17:35.065Z
updated_at: 2024-09-28T07:17:35.065Z
url: https://n8n.io/workflows/2438
scraped_at: 2025-09-14 11:38:24
description:
  What this workflow does
  Linkedin tracks which Chrome extensions are installed in your browser.  This workflow uses a huge raw JSON of chrome extension ids, extracted from Linkedin pages, and builds a pretty Google Sheet with the list of these extensions. This workflow web scrapes Google to search for chrome extension id - and extracts the first search result.

  Setup
  Clone this Google Sheet template: https://docs.google.com/spreadsheets/d/1nVtoqx-wxRl6ckP9rBHSL3xiCURZ8pbyywvEor0VwOY/edit?gid=0#gid=0
  Get API key for Google SERP API access here: https://rapidapi.com/restyler/api/serp-api1
  Create n8n header auth for Google SERP API

  Some context and discussion 
  https://www.linkedin.com/feed/update/urn:li:activity:7245006911807393792/

  Follow the author and get the final Google Sheet with 1300+ Chrome extensions: https://www.linkedin.com/in/anthony-sidashin/

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

workflow_json_compressed:
  [encoded data, 55712 characters]


name: Building RAG Chatbot for Movie Recommendations with Qdrant and Open AI
author_name: Jenny
author_username: mrscoopers
categories: []
created_at: 2024-09-28T14:16:30.110Z
updated_at: 2024-09-28T14:16:30.110Z
url: https://n8n.io/workflows/2440
scraped_at: 2025-09-14 11:38:21
description:
  Create a recommendation tool without hallucinations based on RAG with the Qdrant Vector database. This example is based on movie recommendations on the IMDB-top1000 dataset. You can provide your wishes and your "big no's" to the chatbot, for example: "A movie about wizards but not Harry Potter", and get top-3 recommendations.

  How it works
  a video with the full design process
  Upload IMDB-1000 dataset to Qdrant Vector Store, embedding movie descriptions with OpenAI;
  Set up an AI agent with a chat. This agent will call a workflow tool to get movie recommendations based on a request written in the chat;
  Create a workflow which calls Qdrant's Recommendation API to retrieve top-3 recommendations of movies based on your positive and negative examples. 

  Set Up Steps
  You'll need to create a free tier Qdrant Cluster (Qdrant can also be used locally; it's open-sourced) and set up API credentials
  You'll OpenAI credentials 
  You'll need GitHub credentials & to upload the IMDB Kaggle dataset to your GitHub.

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.github","n8n-nodes-base.extractFromFile","@n8n/n8n-nodes-langchain.embeddingsOpenAi","@n8n/n8n-nodes-langchain.documentDefaultDataLoader","@n8n/n8n-nodes-langchain.textSplitterTokenSplitter","@n8n/n8n-nodes-langchain.vectorStoreQdrant","@n8n/n8n-nodes-langchain.chatTrigger","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.toolWorkflow","@n8n/n8n-nodes-langchain.memoryBufferWindow","n8n-nodes-base.executeWorkflowTrigger","n8n-nodes-base.merge","n8n-nodes-base.splitOut","n8n-nodes-base.splitOut","n8n-nodes-base.merge","n8n-nodes-base.aggregate","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 4928 characters]


name: create e-mail responses with fastmail and OpenAI
author_name: Vitali
author_username: vquie
categories: []
created_at: 2024-09-28T18:34:51.274Z
updated_at: 2024-09-28T18:34:51.274Z
url: https://n8n.io/workflows/2441
scraped_at: 2025-09-14 11:38:24
description:
  Workflow Description:
  This n8n workflow automates the drafting of email replies for Fastmail using OpenAI's GPT-4 model. Here’s the overall process:

  Email Monitoring: The workflow continuously monitors a specified IMAP inbox for new, unread emails.
  Email Data Extraction: When a new email is detected, it extracts relevant details such as the sender, subject, email body, and metadata.
  AI Response Generation: The extracted email content is sent to OpenAI's GPT-4, which generates a personalized draft response.
  Get Fastmail Session and Mailbox IDs: Connects to the Fastmail API to retrieve necessary session details and mailbox IDs.
  Draft Identification: Identifies the "Drafts" folder in the mailbox.
  Draft Preparation: Compiles all the necessary information to create the draft, including the generated response, original email details, and specified recipient.
  Draft Uploading: Uploads the prepared draft email to the "Drafts" folder in the Fastmail mailbox.

  Prerequisites:
  IMAP Email Account: You need to configure an IMAP email account in n8n to monitor incoming emails.
  Fastmail API Credentials: A Fastmail account with JMAP API enabled. You should set up HTTP Header authentication in n8n with your Fastmail API credentials.
  OpenAI API Key: An API key from OpenAI to access GPT-4. Make sure to configure the OpenAI credentials in n8n.

  Configuration Steps:
  Email Trigger (IMAP) Node:
     Provide your email server settings and credentials to monitor emails.

  HTTP Request Nodes for Fastmail: 
     Set up HTTP Header authentication in n8n using your Fastmail API credentials.
     Replace the httpHeaderAuth credential IDs with your configured credential IDs.

  OpenAI Node:
     Configure the OpenAI API key in n8n.
     Replace the openAiApi credential ID with your configured credential ID.

  By following these steps and setting up the necessary credentials, you can seamlessly automate the creation of email drafts in response to new emails using AI-generated content. This workflow helps improve productivity and ensures timely, personalized communication.

nodes_used:
  ["n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.splitOut","n8n-nodes-base.emailReadImap","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.filter","n8n-nodes-base.httpRequest","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 4556 characters]


name: 🚀 Local Multi-LLM Testing & Performance Tracker
author_name: Wildkick
author_username: davidmoneil
categories: []
created_at: 2024-09-28T19:28:58.189Z
updated_at: 2024-09-28T19:28:58.189Z
url: https://n8n.io/workflows/2442
scraped_at: 2025-09-14 11:38:24
description:
  🚀 Local Multi-LLM Testing & Performance Tracker

  This workflow is perfect for developers, researchers, and data scientists benchmarking multiple LLMs with LM Studio. It dynamically fetches active models, tests prompts, and tracks metrics like word count, readability, and response time, logging results into Google Sheets. Easily adjust temperature 🔥 and top P 🎯 for flexible model testing.

  Level of Effort:  
  🟢 Easy – Minimal setup with customizable options.

  Setup Steps:
  Install LM Studio and configure models.
  Update IP to connect to LM Studio.
  Create a Google Sheet for result tracking.

  Key Outcomes:
  Benchmark LLM performance.
  Automate results in Google Sheets for easy comparison.


  Version 1.0

nodes_used:
  ["n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.chatTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.dateTime","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.code","n8n-nodes-base.googleSheets","n8n-nodes-base.dateTime","n8n-nodes-base.dateTime","n8n-nodes-base.set","n8n-nodes-base.splitOut","n8n-nodes-base.stickyNote","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 7884 characters]


name: Public Webhook Relay
author_name: Jay Hartley
author_username: jay
categories: []
created_at: 2024-09-30T13:12:10.831Z
updated_at: 2024-09-30T13:12:10.831Z
url: https://n8n.io/workflows/2443
scraped_at: 2025-09-14 11:38:24
description:
  Disclaimer
  This template only works on n8n local instances!

  How it Works
  This workflow allows you to to receive webhooks from the public web and have your local workflow catch them, without any remote proxy. It is very useful for running quick tests without exposing your dev server. All you have to do is activate the workflow and use the public address as defined below.

  Set up steps
  If you use the default key-value storage, there are only three steps:
  Install the @horka.tv/n8n-nodes-storage-kv community node
  Put your n8n workflow address in Local Webhook Address
  Activate the workflow and, from Executions, note down your public webhook token from the inputs to Get Latest Requests. 

  You can now use https://webhook.site/[YOUR TOKEN] as a webhook destination, to receive webhook requests from the public web.

nodes_used:
  ["n8n-nodes-base.scheduleTrigger","n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.merge","n8n-nodes-base.set","n8n-nodes-base.code","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@horka.tv/n8n-nodes-storage-kv.keyValueStorage","@horka.tv/n8n-nodes-storage-kv.keyValueStorage","@horka.tv/n8n-nodes-storage-kv.keyValueStorage","@horka.tv/n8n-nodes-storage-kv.keyValueStorage","n8n-nodes-base.if"]

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


name: Get bibliographic data from your Zotero Library
author_name: Diego
author_username: villalon
categories: []
created_at: 2024-09-30T15:19:43.145Z
updated_at: 2024-09-30T15:19:43.145Z
url: https://n8n.io/workflows/2444
scraped_at: 2025-09-14 11:38:24
description:
  What this template does
  This workflow will read your Zotero Library and extract Meta Data from the articles of one collection in your bibliography. You can personalize the output for optimized results.

  How it works

  Mainly, follow the instructions in the Post it notes:

  Go to https://www.zotero.org/settings/security and find your USER ID (It's right under the APPLICATIONS Section.
  On the same website, create a New Private Key.
  In the "Collections" Node, select Generic Credential Type &gt; Header Auth &gt; Create New Credential using:
  NAME: Zotero-API-Key
  VALUE: [Your Private Key] 
  Run your Flow to check if it works and open the "Select Collection" node.
  See the Results of the previous node as TABLE and copy the "KEY" of the collection you want to use.

  After that you should have a working flow that reads your bibliography.

  You can edit or delete the last 2 nodes to personalize your results (Filter and Edit Fields)

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

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


name: Send events to Facebook Events Manager using the Meta Conversions API
author_name: Solomon
author_username: solomon
categories: []
created_at: 2024-09-30T18:50:26.429Z
updated_at: 2024-09-30T18:50:26.429Z
url: https://n8n.io/workflows/2445
scraped_at: 2025-09-14 11:38:24
description:
  This workflows sends events to your Facebook Events Manager using the Meta Conversions API.

  Why should I use this?

  Enhance your Meta Ads tracking by taking control of the events you send. This n8n template allows you to:

  Improve Tracking Quality**: Even if your Facebook Pixel fails, events are still captured through the Meta Conversions API.
  Send Offline Events**: Record events that happen offline, like personal sales or in-store purchases.
  Integrate with Your CRM**: Automatically send events to Facebook when a lead converts after a sales call, updating customer details so Meta knows about the conversion.
  Use Advanced Tracking**: Tracking has become harder in recent years, making campaigns more expensive. By using Advanced Tracking, you help Facebook track events more easily, reducing campaign costs and improving the results.

  What events can I send?

  All of them!

  Purchase
  InitiateCheckout
  Lead
  Subscribe
  ViewContent
  …

  And many others. You can even send your own custom events.

  Who is this template for?

  Marketing professionals looking to improve the quality of the Meta Ads tracking.

  How it works

  You can send any event you want, as long as you have the necessary data (customer email, name, value of the purchase etc.)

  How to set up

  All information you need to set up this workflow is already inside the template.

  Check out my other templates

  👉 https://n8n.io/creators/solomon/

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

workflow_json_compressed:
  H4sIAAAAAAAAE6WVy24bNxSGX0Xgek7Ay+Ftdl0ERRfNJkG7MLzgIQ+dgSWOMJo2cQUBeYz29fIkhdSglt1xbTnr+fHzwzfnkHux4TmJfi+GtptTy/xTEb2oMaOknCtVit5QoKSpFk9eUpQua+MdUYxSauWKyowabdDZyOgrOScOnWhj4Z3or/ZiOFYGpXSNPkEwUQKSN0CKMlhJujqTTA5BdKKlDYte/PqR2yqvh3w7tJvV1y9/fuDdvPo0Trd1PX76+uUv0Yn5bnuMttDgdBZQ2vGbTWq/pfWHabi54Ul0YjvuhnkYm+ivDKLsLMrrTmzTlDY887QT/f7wT9cvPO1OQXXovkFjVbYUjpAJLaBVGULVHooj6bVPWSe8h34/D/n2bvVunPlJvN0p8y1yxqY9yk7L/7CJPLaZ2yx6IZ7mpMIqxqig2OgBQyoQXDbgtGSnUwmU4z3nu3HapPXwB69KmtPTqDw/ZETlXuTPvMF/yTK6FKVXoCsSoNUFQvAGlOFcncq1ZLtoUF2sECXKzuhXKowJlSu5QnJSApbigaK3YGqSyleNRp/96rctT3fb+VKB9mUDeC7w+GuTwQpFVgtIVQLpqkChkoVNZRfrokB9uUDU3yHQ2qqSMR5czQworQNSjiEn54OR3pR6tuDvuZUV/85tXs3j6mf+H401ZaZxvP1xStuPP2yHR9Dx0qU2jJHYGCBLEtDGACkXCcoVttkYNqosGjWXGw1Sdtq90qhOVAMmBBmsOW61BwqeQEXlckDFJZizkfycNtv1Mzudx/II0fjwIn/63h9VrQ0VYFISMJUC0WoPiot2rjiXUS76w4v9GedeMZHX3fF743xsOcUfrGu/F5s0HOuv9qdX6plxPIU7MbTCn0UvD9fXh+6h7aXGpy7ZxbZH4aW+5Rtnse35x3PxgMX5WTjgcPgbXdo/8DYIAAA=


name: Voice Activated Multi-Agent Demo for Vagent.io using Notion and Google Calendar
author_name: Mario
author_username: octionic
categories: []
created_at: 2024-09-30T21:52:26.532Z
updated_at: 2024-09-30T21:52:26.532Z
url: https://n8n.io/workflows/2446
scraped_at: 2025-09-14 11:38:23
description:
  Purpose
  Use a lightweight Voice Interface, for you and your entire organization, to interact with an AI Supervisor, a personal AI Assistant, which has access to your custom workflows. You can also connect the supervisor to your already existing Agents.

  Demo & Explanation

  How it works
  After recording a message in the Vagent App, it gets transcribed and sent in combination with a session ID to the registered webhook
  The Main Agent acts as a router. I interprets the message while using the stored chat history (bound to the session ID) and chooses which tool to use to perform the required action and. Tools on this level are workflows, which contain subordinated Agents. Since the Main Agent interprets the original message, the raw input is passed to the Tools/Sub-Agents as a separate parameter
  Within the Sub-Agents the actual processing takes place. Each of those has it’s separate chat memory (with a suffix to the main session ID), to achieve a clear separation of concerns
  Depending on the required action an HTTP Request Tool is called. The result is being formatted in Markdown and returned to the Main Agent with an additional short prompt, so it does not get interpreted by the Main Agent.
  Drafts are separated from a short message by added indentation (angle brackets). If some information is missing, no tool is called just yet, instead a message is returned back to the user
  The Main Agent then outputs the result from the called Sub-Agent. If a draft is included, it gets separated from the spoken output
  Finally the formatted output is returned as response to the webhook. The message is split into a spoken and a text version, which enables the App to read out loud unnecessary information like drafts in this example

  See the full documentation of Vagent: https://vagent.io/docs

  Setup
  Import this workflow into your n8n instance
  Follow the instructions given in the sticky notes on the canvas
  Setup your credentials. OpenAI can be replaced by another LLM in the workflow, but is required for the App to work. Google Calendar and Notion are required for all scenarios to work
  Copy the Webhook URL from the Webhook node of the main workflow
  Download the Vagent App from https://vagent.io
  In the settings paste your OpenAI API Token, the Webhook URL and the password defined for Header Auth
  Now you can use the App to interact with the Multi-Agent using your Voice by tapping the Mic symbol in the App to record your message.

  To use the chat trigger (for testing) properly, temporarily disable the nodes after the Tools Agent.

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

workflow_json_compressed:
  [encoded data, 7488 characters]


name: Time Tracking with Notion and iOS shortcut
author_name: David
author_username: unitize
categories: []
created_at: 2024-10-02T12:50:25.041Z
updated_at: 2024-10-02T12:50:25.041Z
url: https://n8n.io/workflows/2447
scraped_at: 2025-09-14 11:38:24
description:
  Who might benfit from this workflow?
  Do you have to record your working hours yourself? Then this n8n workflow in combination with an iOS shortcut will definitely help you. Once set up, you can use a shortcut, which can be stored as an app icon on your home screen, to record the start, end and duration of your break.

  How it works
  Once setup you can tap the iOS shortcut on your iPhone. You will see a menu containing three options: "Track Start", "Track Break" and "Track End". After time is tracked iOS will display you a notification about the successful operation.

  How to set it up
  Copy the notion database to your notion workspace (Top right corner).
  Copy the n8n workflow to your n8n workspace
  In the notion nodes in the n8n workflow, add your notion credentials and select the copied notion database.
  Download the iOS Shortcut from our documentation page
  Edit the shortcut and paste the url of your n8n Webhook trigger node to the first "Text" node of the iOS shortcut flow.
  It is a best practice to use authentication. You can do so by adding "Header" auth to the webhook node and to the shrotcut.

  You need help implementing this or any other n8n workflow?
  Feel free to contact me via LinkedIn or my business website.

  You want to start using n8n?
  Use this link to register for n8n
  (This is an affiliate link)

nodes_used:
  ["n8n-nodes-base.notion","n8n-nodes-base.notion","n8n-nodes-base.if","n8n-nodes-base.if","n8n-nodes-base.if","n8n-nodes-base.if","n8n-nodes-base.if","n8n-nodes-base.set","n8n-nodes-base.notion","n8n-nodes-base.notion","n8n-nodes-base.notion","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.notion","n8n-nodes-base.switch","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.respondToWebhook","n8n-nodes-base.stickyNote","n8n-nodes-base.webhook"]

workflow_json_compressed:
  [encoded data, 4320 characters]


name: Masked Email Management for Fastmail
author_name: Vitali
author_username: vquie
categories: []
created_at: 2024-10-02T18:03:32.846Z
updated_at: 2024-10-02T18:03:32.846Z
url: https://n8n.io/workflows/2448
scraped_at: 2025-09-14 11:38:24
description:
  Template Description

  This n8n workflow is designed to manage Fastmail masked email addresses using the Fastmail API. The workflow provides the following functionalities:

  Retrieve all masked emails: Fetches all masked email addresses associated with the Fastmail account.
  Create masked email: Allows creating a new masked email with a specified state (pending, enabled, etc.).
  Update masked email state: Updates the state of a masked email such as enabling, disabling, or deleting it.
  Generate HTML template: Constructs an HTML table to display the masked emails in a user-friendly format.

  Steps to Make it Work

  Webhook Node: 
     This node listens for incoming requests to manage masked emails.
     Needs Basic Authentication credentials to secure the endpoint.

  Session Node: 
     Sends a request to obtain session information from Fastmail's API.
     Requires an HTTP Header Auth credential with your Fastmail API token.

  Switch Node: 
     Routes the workflow based on the state of the incoming masked email request (pending, enabled, disabled, deleted).
     
  HTTP Request Nodes:
     These nodes handle various Fastmail API calls for masked emails (get, set, update, delete).
     All HTTP Request nodes require an HTTP Header Auth credential attached, using the Fastmail API token.

  Set Node: 
     Gathers the retrieved masked email list into an array for further processing.

  HTML Node: 
     Generates an HTML template to render the masked email addresses in a table format.

  Respond to Webhook Node: 
     Sends back the HTML table to the client in response to the webhook request.

  Needed Credentials

  Fastmail Masked E-Mail Addresses:
     An API token from Fastmail's API.
     Each HTTP call to Fastmail requires this credential for authentication.

  Note

  Ensure that you correctly configure authentication for the API calls and webhook security.
  Use your actual Fastmail API credentials with the correct scope.
  The workflow assumes that the Fastmail API is correctly configured and accessible from your n8n instance.
  Update URLs and credentials IDs according to your n8n configuration.

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

workflow_json_compressed:
  [encoded data, 6496 characters]


name: One-way sync Stripe Invoice PDFs to a S3 Bucket
author_name: Marcel Claus-Ahrens
author_username: geckse
categories: []
created_at: 2024-10-04T22:05:26.222Z
updated_at: 2024-10-04T22:05:26.222Z
url: https://n8n.io/workflows/2450
scraped_at: 2025-09-14 11:38:24
description:
  This automation syncs your Invoice PDFs from Stripe to a (AWS) S3 Bucket each month, in a folder of your choice, with the following subPath:

  yourFolder/invoiceYear/invoiceMonth/fileName


  Fill in your Credentials and Settings in the Nodes marked with "*".

  You can adjust this Workflow to your needs. You can also override the yearand month in the ENV* Node for manual syncs. It will sync every Invoice PDF which created-date is greater then the provided year and month. It will automatically set the day to the first day of the desired month.



  Enjoy the Workflow! ❤️ 
  https://let-the-work-flow.com
  Workflow Automation & Development

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.splitOut","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.if","n8n-nodes-base.stopAndError","n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.awsS3","n8n-nodes-base.set"]

workflow_json_compressed:
  [encoded data, 4172 characters]


name: Download and Compress Folder from S3 to ZIP File
author_name: Marcel Claus-Ahrens
author_username: geckse
categories: []
created_at: 2024-10-04T22:59:30.391Z
updated_at: 2024-10-04T22:59:30.391Z
url: https://n8n.io/workflows/2451
scraped_at: 2025-09-14 11:38:24
description:
  This workflow downloads all files from a specific folder in a S3 Bucket and compresses them so you can download it via n8n or do further processings.

  Fill in your Credentials and Settings in the Nodes marked with "*".

  Might serve well as Blueprint or as manual Download for S3 Folders. 

  Since I found it rather tricky to compress all binary files into one zip file I figured might it be an interesting Template. 

  Hint:
  This is the expression to get every binary key to compress them dynamically. 
  (used in the "Compress"-Node)


  Enjoy the Workflow! ❤️ 
  https://let-the-work-flow.com
  Workflow Automation & Development

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.awsS3","n8n-nodes-base.awsS3","n8n-nodes-base.aggregate","n8n-nodes-base.stickyNote","n8n-nodes-base.compression"]

workflow_json_compressed:
  H4sIAAAAAAAAE51VW27cNhTdCsMEjW2IE4nUgxLQDyepASNBGiBBA9RjBBR5NUNbIgWSE2c6GCA76G/70b8uouvJBrqFQhrbUyczTdI/Qro8555zH1zhDoLA1Qpr44MwEk4VrnAJjCWClwLSTNA4lbkCyBJZFAlLFKOCyzKnIGksZRPHNGEZiDyuFeWZqkWJ1xE2VoHH1dkK6wEyU7VULK5J0fCUpCWjpFRNQ+oMSp5nTVnHBY6wER3gCr+Zg0Gy1fJSmxn6+OG31+ADurLusmnt1ccPv+MIh2U/hBpuyMhFauFh0gmzEO1rp2czcDjCvfU6aGtwdcbzOMp5fB7hXjjRQQDncbVab6B+AufHuGQdXeecs1IpSjMigOUkVbQmNUsTwvOcNg2wkrN8m/Nz7QM6fv4cnegW/NHeDMWVf8XuZpbEfGdq2PZDxHhsbKvAPYMlrvD3S7twJ+OHwWrbgxMbKDyDcNy2OMIOwsKZ4VwFt4AI1wt5CeHFJtkR4fH4BX9qAL01QNa8Tuu4IKLhOUmzOiZlThMiYiopTeKiSJOtAU/tlWmtUFsTUONshzaJfpshLN5tSKNbuPZgtUIPLrw1k2ewROs1/l8KVUMFa7KcFHmWk5QWkghWJ0Q1rEmatCwLKLcKj9sWaRMssgbQaYAOHWgj24UC9Fgb4ZaH+0XOZg5mIsAnQjP6xcpfU4wMepipoZ7rCG8hq+35uG2HxJ6KID6Tve1sKeKYZ0KQomhikjJWEs5pQpKk5pCxjHMltrJf2ABsrzIftLxcDjF3paU0jrL8c2VXWoU5rlheTJIsLjlNk5JnWZxGeA56Ng/DPzbJ84zSNM0Y42WZRVhaE8AEXOH799Gp8cEt5GjR1EzN67n2t+sBqetG9Ei07b87USDfg9SNlmgzTkgbJNArhjaNgoRRSNqud+A9eBTm0CFv0dIukBTmFhjpgN5pgQw3yDqkLGoWLszBod5ZCd5rM/OTIbETPbbMgODQ0dETBwpM0KL1I9crCGGIPToagsIc0IvBWNQJdwkKXekwR2+n+GiK345w985OOzGD84N5CL2vHj1qIZAwBzJoJ4P4ibTdo9bOLMnTSW9mh1Pzg7mwyxH8zbVD99DHP/78+69f0dT8J9DU3NxAx4tgu3HJoO/QU3gHre27oR77m6ysE5pkVJE0rzlJIWakFGlNsrqWMeWlLLjcNtmTa9vHmtlm432wSKCfT1/ubb6bYg3UdwerSPdvkJsV4RmB9711YfKL7vHdRXqDPOyVcbZfuuF3WN5cXq3Qj/UFyDC5hKU/eLCJOpxcWG0OHkYPD4el9Jk7k2R9PjazAXk74Z8+HdUKd0IPMs5W40P6Ldt1vBlhbRS8x1W8Pj9fR1+8vYvxW7bdTtIvv+K7aPe+ozs5viLJXSRf2W07KNfrfwCaT9RsNQkAAA==


name: Automated Email Marketing Campaign Workflow
author_name: Badr
author_username: b4dr
categories: []
created_at: 2024-10-06T08:56:05.676Z
updated_at: 2024-10-06T08:56:05.676Z
url: https://n8n.io/workflows/2452
scraped_at: 2025-09-14 11:38:23
description:
  This n8n workflow demonstrates how to automate a large-scale personalized promotional email campaign, leveraging artificial intelligence to generate unique content for each recipient.

  Save time and increase the effectiveness of your marketing campaigns by allowing AI to handle the creation of personalized content and email sending.

  How it works:
  The workflow fetches recipient data from a Google Sheets document.
  It validates email addresses and checks if recipients haven't been contacted before.
  For each valid recipient, the AI agent (using GPT-3.5) generates a personalized email including the recipient's name, product introduction, exclusive offer, and a unique promotional link.
  The personalized email is sent via SMTP to the recipient.
  The workflow updates the Google Sheet to mark the recipient as contacted.
  A random delay is introduced between emails to mimic natural sending patterns and avoid triggering spam filters.

  Requirements:
  Google Sheets account for storing and managing recipient data.
  OpenAI account for access to the GPT-3.5 model.
  SMTP server for sending emails.

  Customizing the workflow:
  This example focuses on sending personalized promotional emails, but it could be extended to include follow-up sequences, tracking email opens and clicks, or integrating with a CRM system for more comprehensive customer management.

nodes_used:
  ["n8n-nodes-base.stickyNote","n8n-nodes-base.manualTrigger","n8n-nodes-base.googleSheets","n8n-nodes-base.splitInBatches","n8n-nodes-base.if","n8n-nodes-base.wait","n8n-nodes-base.code","n8n-nodes-base.googleSheets","n8n-nodes-base.emailSend","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.openAi"]

workflow_json_compressed:
  H4sIAAAAAAAAE62WT3PbNhDFv4oGZ0LFnyUI6NQkbju5dDJ1kx4cHxbAQuZEAjUkPa6r0XfvUG5NRSFtpdMzgYcfdt8+cM+21CNb7Vmdux5zoPeRrRhU1vgkkrRBkCWngjYyUomytAF9AvLCe+1dkFILJ70oISVlSJcOhXLsULDcROrY6mbP6kEyRYpQVY5rCJFDWSXubFLco5SqcsaRNKxgGbfEVuyPpv2SNs3D4oq60Na7vm4yK1j/uBu+Zpv5UZ577GjZ9XX48vhr0xMr2K7p6uPq1Y00opBC3BZshy1uqae2Y6v94UnnE7XdcZ08FP8wktBaC1RcWK842GrAE8S99uAwWu+SHRmve2z7xTvc7rBe58Xvbb1eUztLucV8j5tx1SmosKIA+A5SY0FAkIZLEMjBeOS2tJEnqaMXKmhHNJJ+3EXsafEbhXpXU+4X1z32990s6rpp1hu6viPqu69JtVQXkcKyfGb1XoOMoeReiMjBCuDoy8ARKpdCqTSV5cj6oW0Cdd0IO4/Z7TZ1/z6/xT7c0RmodCAKUK+C6mfMBMa6FBTXTlgOKgG3ETQXKCFUVYlWuBHzE27qY1F/2mK9WbyJsaWuo3nYOp2bEy6qpFqqZ8QyiJQqlJyiUBxUiNyRIq7AuzKBMcZXJ5XE+44Wb6l/IMpPnPN4D1j3Z602gynt66ZcjrYsnU06GcONIMlB6sRdkCVX6IMyMViHOAL+QpnaozExx2a7uKINPs4ShiaezbdW9qIejwWMgCmgN9waoTkkktw7W/EqxogJlcMSRr6fqQ93J1NzhT3+h5mR2nz3zGBCrXUEnkqIHIyV3IOouKkIHAqnozqZ72vK8anBs3g0fB3Wfc2mzGXJo06aLIMdpqviVTm4sEySWxORe1UpqAxosuqU7d+4WfTN4vPA2n9m8zNNZzZUTlxEqJcw2rCyYLxQnEKlOUAU3FYycnLRyFB5p1QcCd+1NJjwA7Vdk3FT/0XfFPPHbPMPI+kG8zrcYZ2XzY7ym/qMWF+WkXIJh9uChSZnCsPeYdFpL1d7tsV6kLzZH5/TC8p53FCwOkf6k63E4fb2UExl6qid7zebYjzggmpMnjE5LFM3eD05p+8wlWZT+i89IJPKMyWd0n71IZ08YDrnJtlfjOxp+um/kCn1l/NsUn3uwlPyr8T5pP6sGf6Xzs57eXq0vk3RCdnD4W9mTKOtNQsAAA==


name: Telegram Bot with Supabase memory and OpenAI assistant integration
author_name: Mark Shcherbakov
author_username: lowcodingdev
categories: []
created_at: 2024-10-06T15:30:16.808Z
updated_at: 2024-10-06T15:30:16.808Z
url: https://n8n.io/workflows/2453
scraped_at: 2025-09-14 11:38:23
description:
  Video Guide

  I prepared a detailed guide that showed the whole process of building an AI bot, from the simplest version to the most complex in a template.

  .png)

  Who is this for?

  This workflow is ideal for developers, chatbot enthusiasts, and businesses looking to build a dynamic Telegram bot with memory capabilities. The bot leverages OpenAI's assistant to interact with users and stores user data in Supabase for personalized conversations.

  What problem does this workflow solve?

  Many simple chatbots lack context awareness and user memory. This workflow solves that by integrating Supabase to keep track of user sessions (via 
  What this workflow does

  This Telegram bot template connects with OpenAI to answer user queries while storing and retrieving user information from a Supabase database. The memory component ensures that the bot can reference past interactions, making it suitable for use cases such as customer support, virtual assistants, or any application where context retention is crucial.

  1.Receive New Message: The bot listens for incoming messages from users in Telegram.
  Check User in Database: The workflow checks if the user is already in the Supabase database using the Create New User (if necessary): If the user does not exist, a new record is created in Supabase with the telegram_id and a unique Start or Continue Conversation with OpenAI: Based on the user’s context, the bot either creates a new thread or continues an existing one using the stored Merge Data: User-specific data and conversation context are merged.
  Send and Receive Messages: The message is sent to OpenAI, and the response is received and processed.
  Reply to User: The bot sends OpenAI’s response back to the user in Telegram.

  Setup

  Create a Telegram Bot using the Botfather and obtain the bot token.
  Set up Supabase:
  	Create a new project and generate a 	Create a new table named create table
    public.telegram_users (
      id uuid not null default gen_random_uuid (),
      date_created timestamp with time zone not null default (now() at time zone 'utc'::text),
      telegram_id bigint null,
      openai_thread_id text null,
      constraint telegram_users_pkey primary key (id)
    ) tablespace pg_default;
  OpenAI Setup:
  	Create an OpenAI assistant and obtain the 	Customize your assistant’s personality or use cases according to your requirements.
  Environment Configuration in n8n:
  	Configure the Telegram, Supabase, and OpenAI nodes with the appropriate credentials.
  	Set up triggers for receiving messages and handling conversation logic.
  	Set up OpenAI assistant ID in "++OPENAI - Run assistant++" node.

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

workflow_json_compressed:
  [encoded data, 4304 characters]


name: Auto Categorise Outlook Emails with AI
author_name: Wayne Simpson
author_username: nocodecreative
categories: []
created_at: 2024-10-06T15:45:53.304Z
updated_at: 2024-10-06T15:45:53.304Z
url: https://n8n.io/workflows/2454
scraped_at: 2025-09-14 11:38:21
description:
  Automate your email management with this workflow, designed for freelancers and business professionals who receive high volumes of emails. By leveraging AI-powered categorisation and dynamic email processing, this template helps you organise your inbox and streamline communication for better efficiency and productivity.


  Check out the YouTube video for step-by-step set up instructions!

  How it works:

  Fetch & Filter Emails: The workflow retrieves emails from your Microsoft Outlook account, filtering out flagged emails and those already categorised.
  Content Preparation: Each email is cleaned up and converted to a structured format using Markdown, making it easier for AI processing.
  AI Categorization: The content is analysed using an AI model, which categorises the emails into predefined categories (e.g., Action, Junk, Business, SaaS) based on the context and content.
  Email Categorization & Folder Management: The categorised emails are updated in Microsoft Outlook and moved to respective folders such as "Junk Email" or "Receipts" based on the AI's classification.
  Conditional Processing & Final Checks: Additional checks and conditions ensure that only unread emails are processed, and errors are gracefully managed to maintain workflow stability.

  Set up steps:

  Connect Microsoft Outlook: Link your Microsoft Outlook account using the built-in credentials node to enable email fetching, updating, and folder management.
  Configure AI Model (Ollama API): Set up the AI model by connecting to the Ollama API and choosing your desired language model for categorisation.
  Modify Email Categories (Optional): Customize the categories and subcategories within the workflow to suit your unique email management needs.
  Set Up Error Handling: Review the error handling node settings to ensure smooth workflow execution.

  This template offers a robust solution for managing and organising your inbox, helping you save time and keep your focus on important emails.

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.lmChatOllama","n8n-nodes-base.microsoftOutlook","n8n-nodes-base.microsoftOutlook","n8n-nodes-base.splitInBatches","n8n-nodes-base.microsoftOutlook","n8n-nodes-base.microsoftOutlook","n8n-nodes-base.microsoftOutlook","n8n-nodes-base.microsoftOutlook","n8n-nodes-base.microsoftOutlook","n8n-nodes-base.microsoftOutlook","n8n-nodes-base.markdown","n8n-nodes-base.set","n8n-nodes-base.microsoftOutlook","n8n-nodes-base.microsoftOutlook","n8n-nodes-base.filter","n8n-nodes-base.if","n8n-nodes-base.microsoftOutlook","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.microsoftOutlook","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.microsoftOutlook","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.merge","n8n-nodes-base.switch"]

workflow_json_compressed:
  [encoded data, 8028 characters]


name: Check for Bargain Flights and get notified using Amadeus and Gmail
author_name: Jay Hartley
author_username: jay
categories: []
created_at: 2024-10-07T19:14:34.037Z
updated_at: 2024-10-07T19:14:34.037Z
url: https://n8n.io/workflows/2455
scraped_at: 2025-09-14 11:38:23
description:
  What this template does
  This workflow uses the Amadeus API, every day to check for bargain flights for an itinerary and price target of your choice. It then automatically emails you once it found a match.

  Setup
  Create an api account on https://developers.amadeus.com/
  In Amadeus Flight Search, connect to Oauth2 API:
    -- Grant Type - Client Credentials
    -- Access Token URL - https://test.api.amadeus.com/v1/security/oauth2/token
    -- Client ID/Secret - from your account
  Set your details in Gmail
  Set your desired Origin/Destination airports in FromTo
  Set the dates ahead you wish to search in Get Dates (default is 7 days and 14 days)
  Set the price target in Under Price

  How to test it
  After completing the setup steps above, just hit 'Test workflow'!

nodes_used:
  ["n8n-nodes-base.code","n8n-nodes-base.gmail","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.splitInBatches","n8n-nodes-base.wait","n8n-nodes-base.filter","n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.httpRequest"]

workflow_json_compressed:
  H4sIAAAAAAAAE7VYeXPbNhb/KijbWUuuQPEAL2XcXTeOG7c52tppJ2t5dkDgUUIigSoI+liPvvsOQNKiZNltZnf9h0yCD+/44Z24d5agqTO5d4SsNJUMzrgzcZI0SmkKQZSnBSOcAkkj5kMRkgjiAhICRZH7ReTFHglDKCLPywnz05hlccT81FmPHFlyqJzJ5b0jDEtSgB9mQYJTwnJMgiDBGacU85hBkQTc9/LMGTmSLsGZOC+pUgLUO7qEN2X5uV45I0ffrcwnmUpseeOcVuCykoMzclZlJbQopTO5TIg3CgPvauSsqKJL0KAqY+Gn6qWhnTjXVCHWCDAr1dH9eip/PH//zl1RVcHgm8HBD6BRqwOyNAdDtxCq0oOh+6kqpcuppkP76xalekXZfMCprpdH391PJdpif2k/uIJqat6v0BG6F4yWk3ad0dKsj5CxvV1k5XJZSmP+eirXw6lUoGslt/gakA0mv4GqrOXBetSCzXKP5lnIcFSwCBMv4DilLMNxEmSxl/vE94MN2D8sqVg8CfCs/dpDOPBSb0S8xxAvoarozDA5ei2+Qr8D+lRXGhVlLTmiKKdqRoVExULM5noylSewokrXCtCFWMIE3d+jbyy8WiwBrddTefmwtIBZdelduS0EaL2+2tDzWlGjHFqvW+6oUOXSEgwOTlW5vCh3j9ASrNdIl8+S6dIq4oyccmVEGEPXI6eq80/AtDH1+9as00bwqbH2q78kGn/356LRPzZmrpRgBhdUykdYGXdgCjhILejCHoc9uvfHtZ4HNsSNa/hvP/Br/3Wufvlwevy9+OeOGyDKWFlL7awfeZfrP/hXUGRpHkKAUxpEmGQx4DQrQpz7kEMCYehnff8CjU6ohuoLgjgzQbzHwx6CmJWy0mgG+h3c6nO4BnlC7yp0hAZDdPQdslGIUEPFjXB0hC6vXvSXdcnpHTpCEm6sfoPhi6lsCIpSoUFDJVBZoMtkhHxyNez4bphIuNVmc5+PZTx8sSHtiNwK9IbCnbVvQ/QtEn36zdN4jE5LtaQa6TlYQxCt0MePHz/it2/xycmuOoUl1sAfdGol6/Ls/P25VkLOBkO3Wi2EHhxcHAwvvaueYIuUu6qr+eDePE+2+K07HdcdTm1astteTOXaAtgu7p7NYPhMxgp5yoqwoDhmkJjyQHGWpAWmBQRpSpgPPt141FtQM0B/Q69utaJMf4Ff+XG8P3U9ONZ4bLkbM6p6oa3bTGXfITQsjU98I+Sq1i5dLAbDxjEedjQPLislo3rQKy1m724BGU6lxXM8bs0xcFJUCFjwaioLIeniX4+VuTU6NMtD65UL0MgkSXSEbl2hhQRFlQCbNCuYLUHqyl3S1eCuLVLdn9lI0ZHJQ4/q7sHQfdD58s7t1Z++27RMutR8hKhrTurv7f8JorbMbe9o3eS+3TVp/49Ql8wndw95fW1qYON05hDKBbiLcjZ40k7zzLvi4lI97AB6KBR7QOq+dbRNtjWE9snVpaaLbw/QwbfdCquVAsnuGs36J9XGkDmPifkZIZOmJ39Z4R4K3cOoUWhif9ed17Qo9mU/E2ZpxgufZTlmaRxiwooIpykNsJ8mWcgjEhReL3G/KcsVen8NCp1pWD6dvm02OZPfU83mNsv3Ay7wvFFAHgdcr5ru6hs+6BtFWQQh4ThMwhiToIgx5THBkBQhSwKWFF4vLfxOxdO54Kb52FfNM7nAqnYD+bwsP9vmt/CLMAAeYAaUY8KA45ySEHM/iv0w9OMk8J1da+jSVk2j+rYtfq9sRpHneRHlGGiWYMLTEGceZThOWMKiNCwCzjbWfJAcFPrZnPaTRhVioUHtmJU+0Z1t9S+slFx0771PzgIK/Rtd1EaaM3IYreAcpOF+Dc5EqxpaC+lCcNrIdCqtBLOOx8plLiTVpXImDpXc2RbVjQM5C2iWxz4mPuSYRLmPM4AQe14Bge9zylloWy5QDa/7BwTqZW5Nbr418hun76t+dH+PbM49XZRUD3r909A0SyNHmWatpY49b331bMfDwM8BCqNvmmHCeILzlMWY8yiHIuBZFoebo2vauafjBXY8MYr3jyxbJ0arSsykzRbW4/qvHax+RgiLsxjHrOCYcMJxWoQchz7L0ywPEx7yjZqmDd0oWdnmwBk51y2Eb17/6jwAkDHCIzNDFDSJMClogmkYZzjIPZKFfuQFXg8AXT7D98fTn5w9cIcueZBGSRbFQZTgIGWAiecTnEckw5QTPwxiwrz+AHO8pBzqqmvAz4EqNn8S/bnWq1/hjxqq3XwQki4fbB9DrRbOxDH7qsl4rKHSLl0JlzZizbA2vg7G1bxcrYScjZsBBJdFYfbvzg0g+S81qLsulmit56ZnZ50vz0CCEuzlQy9/YcwYdeumnb9oDCtta3+8Es7I+cPw/HlL7b4Rl/cdWKUSMyHflI28l02HdN2Lmv44sulX2pHFOkTLiUOlTaiL8svZ2dGmz4zyeqGr3l5/W1RbGk0buiug66eaKcg61s4gtAGqG4P4b2cn/y5+uuXzOvrnq9WrR870eAAi7qaO5gklPicRTrKMY1LEEaaZR3CRFjQNIMriwNuwPNeCfb5D70r9dCavLE1L0p+1Y2+E9+WGG8H13JmQzHO9wA+iMPZiEqcBGTlzMA7oTKIwdf0o8UnsJVmShoHNxRpMoXK+Rjth046x1VS+ugZ1h8xwxObAPld2HNoe3ps1KlHXz9whKnnbMmmqZqBNf3pX1gqxeVlWQs5GlgTMmFmZL0gUSGjTuvAKUbQ07YNrepqvv0bnoOvVVPoueqnATj0S0ZXoxlMzAHfxyOEaFqYYVFsROZWBi84kOjzcmx4OD0emlZTAzCCI3pswDNDxz2cT08phjH5QVGpkIg1h9HIhQGq0icmqpTpmDKoKXZSfQaIPv75BGD2fJ/xxBaxWQt+NSytzrM3ell0r5+xkfA5MgUa4ucewOLa2T2XoGnyaRQ7a4imMpXaEPzycSrJFUQkFHL23gT8+2UQtokKtSqXt7iZIpzJqtnbjZoXoHCi353UjqrkBq7IItiK74f7wEA04FNSMKaJCifGfyp64T+zzcCrjDe8tT7Gcev2OMcG6wQVUeipfC40OzCO6KdXnYlHeHHz1qMnd1Oo09YM4zCLMsphiknkRThOe4yih3M9MVxf0StU5mwOvF4AulJjNbGfxRIS2hBu6XpiGT1RwVS+guV7VoK7pwmZi3XA41q/LWjmTdE8x9HvJxitoQkjk49iLQkwSj+E8YhHO8iAqeABRHkXbty1bV5dfXgiNMfGeBvKv1EF/rKAAMxUBNnPsmAq1EBIeFcL/Sd37P6b6K5ssTX7oOmM7XphbTioMSqakNlcGT85JlnLkCMnh1pl466ur9ahrDvcxeubaey+rzc3af69Wf9zYx23nlngvj12J+/g8eXfziONos+lPOry9yuwK2qfM3hlrL7dHaWIfu92+fy+nx4e8F+7Hl6Z7ue1HZh/H7el4D7P1+j+nFXR/DxoAAA==


name: Text automations using Apple Shortcuts
author_name: Agent Studio
author_username: agentstudio
categories: []
created_at: 2024-10-08T10:31:27.965Z
updated_at: 2024-10-08T10:31:27.965Z
url: https://n8n.io/workflows/2456
scraped_at: 2025-09-14 11:38:23
description:
  Overview
  This workflow answers user requests sent via Mac Shortcuts
  Several Shortcuts call the same webhook, with a query and a type of query
  Types of query are:
    translate to english
    translate to spanish
    correct grammar (without changing the actual content)
    make content shorter
    make content longer

  How it works
  Select a text you are writing
  Launch the shortcut
  The text is sent to the webhook
  Depending on the type of request, a different prompt is used
  Each request is sent to an OpenAI node
  The workflow responds to the request with the response from GPT
  Shortcut replace the selected text with the new one

  For a demo and setup instructions:

  How to use it
  Activate the workflow
  Download this Shortcut template
  Install the shortcut
  In step 2 of the shortcut, change the url of the Webhook
  In Shortcut details, "add Keyboard Shortcut" with the key you want to use to launch the shortcut
  Go to settings, advanced, check "Allow running scripts"
  You are ready to use the shortcut. Select a text and hit the keyboard shortcut you just defined

nodes_used:
  ["n8n-nodes-base.stickyNote","n8n-nodes-base.switch","n8n-nodes-base.respondToWebhook","n8n-nodes-base.webhook","@n8n/n8n-nodes-langchain.openAi","@n8n/n8n-nodes-langchain.openAi","@n8n/n8n-nodes-langchain.openAi","@n8n/n8n-nodes-langchain.openAi","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  H4sIAAAAAAAAE91ZbXPbNhL+Kzj07vIygswXEAQ1zfXcXppz0ySd2pf0Js6kILC0UJMAQ0JWFI//+w34Ismy0ngy7YwvnywTwGL32Qe7i8UlrsAJPLvE2rROGAlHCs9wQYtEhVmS51HIIhFkaVSkcRozTgOahzwHllFGuYpZophkaRqqNKdZkKmIhyzFVxNsrIIWz15fYu1F5iFLwjBRJEmChFAIYpIXNCQyCuMokDnPgwxPsBEV4Bk+dlqer9Bz6yDEE+xWtf9quCGdWJKLFqZtN8nPwRNc21Y7bQ2evebBhAZvJrgWjajAQdN6A6UtbYNn6QQvtXJzPGM8nPI4TmOapQGnnE7wHPTZ3OEZp/E0pDwKWcI5C9J4gqU1DozDM/zVV+iVbc6L0i5n6ATeOyQWzlbC796iRavNGTqs6xLQ8dw2Ti5ce2pOzcOHLy6gudCwfPjw1BB0MtctWg6CkDDtEhq/HBrUwLsFtK5FLRiHLrS4KY+gY7iARpSbj0iKskRuDqgVFaAl5HNrzydoqd0cCfRuAc0KCaOQQB5PZIv+W6fMqoZ2/QWJBmanBiGCXCNMWwoHyFkE5qzU7XzPSFsLsx6RtmlAOnTWiKoSDbrvNbALh+RcmDMPj1dSSLcQJRpwfdAvrcQ5jJ9Q6y2DZs9Iac2ZH+hx/bddIu06LNse22MovQICOe+elV14i9Cy0U6bMz/hR7Ewct6DNeDX+wT6JXrA3tluzoCln/IvqMEob4Q13diI5eC0CRJI6aKAxq+vG1vVnbhFC8qvfyzkfJy7vY0w6EUN5vAIeYaPyqz50UBbW6PaUaNRQufc/oOf0AIqGluhJz+ddDgMtqEG6lJI6A3uwAHVW7oWYGCJrIENpM56pZF2PaaH0umLzt1benWI2KUprVDotfOUXu/poKo9P97cnztXt7ODA9XoC5h6ig+OnJ5Ze1bCVNrqYHEQHCzkN1o9CtmHNtE//JI+hV/eUgiO7UuavX1a5P9JyePvg+eP/w7va9u4R2rY+YFX48gHsPEAbPn0yKDWQY0i76TtwUnPx96gRVOO4682zj4yG3MUOKHLdoJOsVAKPYVVbkWj1hNO8QbLc1h1rFuK3rkeR2dRuZ91T2x3hMB5drYTJNSFj8TKKwjyHJ3iw7LjwMIYT7xWNrp27Sn2i/87kLsBoVbrvbZ2mO6cBh8B5tqNevZGjJM7rX9btN7cQhtP2Z4QPsoOh+uo6Gb5fRot56iwTSU63Sd+4F5Zorm46Ax2nqLVonTah6+lWHX8Hcko56IR0sdnpPuzZBeu9hp/bxsE70VVl9DJRJWPy92Wv15eor/+1lozraBtxZknT8+lYfEg/bAs7987PTX3vMO+zpuDf5ziB+jq6tdxr1P8c3+mvEpbTvTHD6ndUy7qem11ZVs3XYdw3SKBctFqOaqM3Fz0SEphELx34IOuUaiyShcr1A82aKnLcnShn6kWdamlP2Jbk/3mo9y1l3z6U161To4BzxXRoiWUpf9biXOvuj/R26mpM3wr6Ux9mvbh6yU0bZc6w6vJkK4lTWgQ5JyoOOeEpkVKeCgZUWkW5hKojBjbStdL7eT844l6HN5K0mEQBZOY38zTzaKE7seFKBdDBdG79ims8AwPqQZ3KVl14rrptl7/vBjtiSa4hMK99JLwDPs1ooVjMF6NC8Az1yxgwECUWoleOdy6Rkvn4ZG2yrURzpcOWBi1s63XrYamH78czffLzRmeDGO9THi3EGXrZW6r9GhN59yq1bRLJldXeIIbz/hx1mjz1ZurCW7Ao/6ig6S3wHttG6IhT98ZiPoCEFQeB1FBGGWSUCUV4RFlJCxkAbKAuIhgDVkP58CuQpcOmuk4Mh2QnPxpcI/43RLuoc65W3BnFJgsUkWSlClChcoIT/KASJZnNIGchnl6R+Ae8bsl3ENZeLfgDkEFKoSQRKoICC24InkYRIQGARVRkoUZqDsC94jfLeHua+27hTZNE6aKICYppJJQiDjJ8jglIWWcxhHLAx7fEbQH+D4Gtv+8gfJqNyHH02idkimHABIOhEVZTCiEIRGUcyJFltE4T2LK6SYl7yluPpqfh8vFiR1K351Mzam/UN/M1Ft6e9s6Ga+0v1pjX2ni8WML31q1uobYrWu3e13pds9XbjerlemmXolYkuQpj0iWxJzQkEkigCUkTgou05TzTKYbcAY7+7vSJ+FZ7kNlA8ow3DVOgCollIqICKOUUJYFJONSEMgA0kSGuVK+bLqOYy06zMbqjpyVNhclES2eXMfY36OegZtbv9VPL45PtiB+ZpVXffz3uf93F7ANlzgPQFERkSBNGKEZjYlIwoLEjLOUQxRFabyBa7iYEvTMX8KP1/F3gOufhpuDDWalMGdyLrTxp8wc6h02xUEwSfb0ZyqroPQgXuK3b5tyDBZVb1epW++gizFl1I5QSyptdBdl5BzUz9AuSve8V/nJTyeEviDPjp4f4asdGAfy7RaZjS27CLBqHVR4u+NzvPD5SX+Avn4euxACldq5ElCuHbqf/G1sWDw4Nf0ZRwL9cPzi+diB8Z2hElChoVSz4a6DvUs2O+3ElHEnT34fKfzI9ViNZQMKjNM+QHVn0kN+WOuup+dd/erdh3e/wYenc/7SvVfvDnfcqpGQ0i6MQwR9K2qnWwf4RhwKp3RzNWCSqYxzkgqRE8rSlIgiLAjngQoSloUgP8qdH8dk8tnUYXuuDHeYOp3V+1nTZ4aOOP3PL5w3HJgCmqckimRMaCIzIrhKiaIZlwWPspwVe3jz3dBNfLKusj+bO/uS2B3mznc7fVRrytUEKWvuue3W1fVGajv9slmUyyBgecxIIjJGqIwFyUTESZSmXDBJsyIM9rDoxKLjdePgswkURv9XBDrZtOh9BBrWdyVhj8UXzpU4DlQENCAhJBGhSZiSjEJAJGQsihjL0kLs58rjdQfls7kSsS+EKwMWXzhXsigBmicJETLycSVkJKNhQRhTYZqzNKMi3/s++TnPk9meRHTjfZKybBomYUpplsVRFkbx5oEypuGU8yzM0oRzGlGeXH+h/Ap91z0duDm0vn9cl8IMXeDXX6MYVdq88Y391395vZ54bdrm0UYqMy2trbpHmhZaD1174OaLKjf+QeRAJjlL0oRxUTCa52GeBIXgwEUWSpqokIQqj7MsECzkGWcyI8WiLElditX0TBcPNlstl8utreaigU8K/6bV6pGgAcshjUmSQE5omlCSFUlIMqUKmuVRpFj2YE+z+00HmgG5bmUMjWx/VIX2znp92T1kfyqVdLMnWBsF7/EsuHoz2b/wRly51cKPlkC3Wr3/0nb7pbs1+42V/gzvM3Ifir/blvik5BH3P1jytpl/hugR/D9G9v7mxT7Zu88yv6/qLsv+CG2vrv4H+Dm7JGIiAAA=


name: Multi-Agent PDF-to-Blog Content Generation
author_name: Derek Cheung
author_username: derekcheungsa
categories: []
created_at: 2024-10-09T03:22:17.862Z
updated_at: 2024-10-09T03:22:17.862Z
url: https://n8n.io/workflows/2457
scraped_at: 2025-09-14 11:38:22
description:
  Purpose of workflow:

  The purpose of this workflow is to automatically transform complex, lengthy PDFs into concise, insightful blog posts. This process aims to make dense information more accessible and understandable to a broader audience.

  How it works:

  Multi-agent team:

  Working together to transform PDF to insightful blog
  Content Analyst: Extracts key information and structure from the PDF.
  Project Planner: Organizes the workflow and ensures efficient processing.
  Writers: Multiple agents that craft engaging content based on the analyzed information.
  Editor: Polishes the final output for accuracy, reliability, and readability.


  Step by step
  User inputs parameters via a n8n form (tone, word count, sections, PDF file).
  System extracts text from the PDF.
  Content Analyst AI agent analyzes the extracted text, identifying main topics and key points.
  Project Planner AI agent organizes the workflow, creating a structure for the blog post.
  Multiple Writer AI agents (based on the number of sections specified) each write a portion of the blog post.
  Editor AI agent combines all sections and polishes the final draft.
  Generates a title for the blog post.
  Final content is uploaded to a publishing Ghost platform

nodes_used:
  ["n8n-nodes-base.merge","n8n-nodes-base.code","n8n-nodes-base.formTrigger","n8n-nodes-base.extractFromFile","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.ghost","n8n-nodes-base.splitOut","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.chainLlm","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  H4sIAAAAAAAAE62YTY/bNhCG/4qhs2fLjyE58qlB2i0KtE2AFu0hCIohOdxVY0sLWUETLPa/F3I2seuVvVbTiw/26OWjdz5I+r7ayMDV6r5q2u3AbZIfc7WqTDCWLXvrtNWSS4raa2WLzZgjcy7WOxJLPmLwpqY6xYK1M5RTijnmalkNsrlb8/CopylUD8uq7bJsq9Wb+6oZv45ZQgw5ArrkATla4KAcWEdKqSQlSqqWVcsbqVbVz9LfyCLd8t0g/XYxNMNaFtzmxSAfhnHFj3djWEst7NaByFu52oxPVcvqrts2Q9O11eqNMaSW6NXbZXXHPW9k1KtW9w+fNH6XfrsLNFf6YfmIqlSolTERhNkAko5AKRAU8mY0yqOLe9TrpuX1gvuhSWs5z5e6fIzn8CK8PZwRnZTCDGjZAUYKUItVECWaYkxGT3YP11K7uO76zeK3vrm5kf4kWun6zT7mgNCqz4B/S7ztune7JBdLxqhgwPrRouIYqAhBYoxO22Idjtm82HJj0JciNZCnAuhJQR2CAhujSyQYTaH9W33/Yeg5DYvSd5vFdbOWk68lnyKv+27zGHfwarO9ZyKbHTJoWzJgHTNESQUCx8xidMr+oIZf3Un74sfFy1seFj93WdZ6j/ltS+03e9Y1tzfplpv2ar0Z43ePNseJQLX0OANXigucSgGrMgJibSGWrAHJW40xK3YHpfLDbbc9Xbo3j78eAjk/0z8MdcEw+ucpADoiICQHOdSWS/LBhbwH+k7WcsODLIZu8Uff7NRP4W3v1s3w6v0RoZ5NqCPr6EgAtdKAFgmiKgpYcW2iLkjKH9RhboauvyCrfCPtEZsJF7Jd+S90gepktMrgCTVgcgpq5QKIK1lrTCqHsKd72cvOvXF2XsC4+/xpvTlKsrmwSa7wC2a2niRKAltyBnTsgAUDZOMMx2yjdfpMm3xVl4S5TaJQBaojQZJcAI1kiEkC6OAkJPY6MR942rWDtMPiRcvrj4ftMif1/yHzXhF5FQsUGwygdgIcigIXFEU2hpM5oHzdd39JGhav19y2ckmBdhNWaj23e0jFwMo7yMmEsYVqiEobiBLQUpLszcEU/3Vo0ruPi1+64fT83u5iHkMOR7dRSzsrzTYl0oYhB4mANRWgUisgo7NzXoVi/JmaNF9VlJrmj+7ai9QIGusa0EYNkUWgRFSCmjTletJJPdtKred6ybloZXOEjGPLhOKgtuPMtIJsmQJqPQln5sMFmglnxNpsMII2lEY4BZwzgzKoa61qnaOZhLOz4YxTM+GQxGrLBXJxEZAoABXWUJvsszjKrvaTcDgbzpq5cIKWFSsBCbUGNLWDGGKA7GxMFIrCwxP6kx15zgTUdHK09DL0H1+119ysq9XQv5czU5Fy1EIxAkanAH2xEEURaI6SYtHRRDVpp5ttJ9hLu+Ttskpd20oanxxDPh8TVvfVhptR7M397nZ0co/ehS2rps3yoVqph7dvH5ZfDJ+SufC6NKn7L4Qp8aOD4bTI0b44pXNyV5pUPI6eUjx7QpxUfXIfmpI9c72YFH0aP5nqU0eHSc2np6LVfcXNn2NbvecbefzuEv0nTx2vNXGDnbTl6LR7Gbd+FvxY9xzv8pnOefZdJ3b25/ieVNazi0zV5f/WtvrAhMuK/vwyU2Dn/tOYWOLh4R96Zr1YXBIAAA==


name: Automated Agentic News Event Monitoring with perplexity.ai
author_name: Derek Cheung
author_username: derekcheungsa
categories: []
created_at: 2024-10-10T02:57:48.188Z
updated_at: 2024-10-10T02:57:48.188Z
url: https://n8n.io/workflows/2458
scraped_at: 2025-09-14 11:38:23
description:
  Purpose of workflow:
  The purpose of this workflow is to create a news reporter AI agent that automatically monitors specific news events and sends summary emails to the user. 

  This tool aims to keep users up-to-date with the latest happenings on topics of interest without the need to constantly check multiple news sources manually. It's particularly useful for investors or researchers who must stay informed about specific events that may impact their work or investments.

  How it works:
  It leverages the power of large language models, specifically Perplexity's (perplexity.ai) online models accessed through Open Router (openrouter.ai), to understand and summarize up-to-date news. 

  The workflow is scheduled to run at predetermined intervals (e.g., daily at 7 AM), automatically scanning for news on the specified topic, generating a summary, and sending it via email to the user.

  Setup:
  Sign up and generate an API key from Openrouter.ai This provides access to Perplexity's online language models
  Update Perplexity node with Openrouter.ai API key
  Specify the event/topic to monitor in the News Reporter node
  Activate workflow to turn on scheduling feature 

nodes_used:
  ["n8n-nodes-base.scheduleTrigger","n8n-nodes-base.gmail","n8n-nodes-base.markdown","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.agent"]

workflow_json_compressed:
  H4sIAAAAAAAAE5WUTWvcMBCG/0rQ2drqy7LsU0uhpdAkpS29hKWMpNHGxJYX2yFZFv/34u0SO/sRNhdf5p3Xz4xmZktq7IEUW1LGrofo8JsnBRGZkCBBy5RLjj44yzVnMkivvAXwQerUoDTaqkyL3OTOBpWnwnjnrLeeDAmJjceOFHdbUo6WITOapUFR572lynBHjXCCGq9dyLRJJbMkIRFqJAX55e7RP1Z49bstVytsSUL6zXqMRBPpzppa6HDR7YWTbt10ZV82kRR3RrFEGrZMyBpaqLHHtiPFdvhv9gfbbqfjCzEke0zNuLVeaOo5MKocB2oyyKi1yljpNTqNE+bXGsrqLNtqH50RCSYuQhIL/oIkNXeZQkUzx1OqjFHUgvWUZ9JmeYoO2AzpGtoH3zzFs1T1JJiBcXUZ2ITlGQQmNacaFafK5UhNbh21wYJXPHDIZlg/sF1X+Fz2mwnsYzTxw0RXQVy5eyjjoqo/30N/u8b4qTzA5IIlmr0DU6bCYwBGg0wVVTl3FGTqqfcCchWkSVM5Yf4u+wovINx9v1f1AZ2+dODUxGfBppnMaBZyS5UVSC0LnqrcSsyUsrkUs73oS/ewubppekzP78RONGpe4+2eWLyjd47nIQgdqHFWU8V9Ti3njCotuJJCogM+sd3gU3f1E9dN288X9mwPYYWxP2ggO9vAFvt2cxu/jCtV9O0jHvVUD8uEuCZGdKPdmLd/z2JLaijHH9xtd3fpeHV38YSU0eMzKdiwXA7JtEunDA5G5aTBbOqLLYHy71j9I6zwuvFYvWV3pJ1ZJy9JZ1r+VvKO63XeqeqOz8jJAo/u9CmvM5QnDIfhH4qx3+WRBgAA


name: Overlay or Watermark Images by Merging with Another Image
author_name: Marcel Claus-Ahrens
author_username: geckse
categories: []
created_at: 2024-10-10T19:40:59.737Z
updated_at: 2024-10-10T19:40:59.737Z
url: https://n8n.io/workflows/2459
scraped_at: 2025-09-14 11:38:23
description:
  Instructions

  This automation overlays a background image with another image, making it easy to add watermarks or logos.

  You can use this automation to watermark your images by overlaying them with a transparent version of your logo. If you'd like to place your logo in a specific corner, feel free to adjust the position of the overlay image in the code node.

  How it Works

  Both images are downloaded, so we can process binary files (you can modify the source, tho.)
  We extract metadata, focusing on the dimensions of each image.
  The position of the overlay image is calculated (default: dead center of the background image).
  The two images are composited together.

  Limitations and Optimisation Opportunities

  The overlay image must be the same size or smaller than the background image for proper alignment.
  The overlay image does not automatically scale to match the proportions of the background image.

    
  Enjoy the workflow! ❤️  
  let the work flow — Workflow Automation & Development

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

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


name: Telegram Payment, Invoicing and Refund Workflow for Stars
author_name: Victor Gold
author_username: victorlucky
categories: []
created_at: 2024-10-12T20:46:43.895Z
updated_at: 2024-10-12T20:46:43.895Z
url: https://n8n.io/workflows/2461
scraped_at: 2025-09-14 11:38:24
description:
  This workflow provides a complete solution for handling Telegram Stars payments, invoicing and refunds using n8n. It automates the process of sending invoices, managing pre-checkout approvals, recording transactions, and processing refunds for stars, making it ideal for businesses using Telegram Stars for digital payments.

  What are Telegram Stars? Learn more here.

  Key Features

  Payment Handling**: Automate invoice creation and sending via Telegram, with pre-checkout approval for smooth payment processing.
  Refund Management: Simplify the refund process using user IDs and payment charge IDs from successful **Telegram Stars transactions.
  Transaction Recording**: Record all payment details, such as user information and payment charge IDs, in Google Sheets for transparent financial tracking.

  Who Can Use This Workflow?

  Developers and Businesses: Looking to implement **Telegram Stars as a payment system within Telegram.
  Service Providers**: Managing subscriptions, donations, or digital sales through Telegram automation.
  Use Cases

  Subscription Sales Automation**: Use the workflow to issue invoices and automatically process payments for recurring subscriptions.
  Infopreneurs and Marketers: Use the workflow for delivering lead magnets, tripwires, and further automating sales via **Telegram Stars.
  Course Sales Automation**: Automate invoicing and refunds for educational platforms selling online courses.
  Developers and Businesses: Looking to implement **Telegram Stars as a payment system within Telegram.
  Service Providers**: Managing subscriptions, donations, or digital sales through Telegram automation.
  Online Educational Platforms**: Automate billing for courses and handle refunds easily.

  Setup Instructions

  Replace the Telegram API credentials with your bot API token from BotFather.
  Customize invoice details, including product name, description, and payment amount.
  Connect your Google Sheets for storing transaction logs.
  Configure refund steps for easy processing of star refunds when needed.

  Note: The setup is very simple—just follow the instructions provided on the yellow sticky notes within the workflow and insert your data. All other nodes are pre-configured and require no additional customization. The entire setup process takes just 1 minute. I provided a short Loom record with an explanation.

  Extensibility

  This workflow can be further customized to include user profile management, payment analytics, or integration with external services like CRMs or accounting tools. Additional modules can be easily connected to manage advanced features like Telegram User Registration.

  Available Templates

  Telegram Bot Starter Template: A foundational setup for creating custom Telegram bots.
  Telegram User Registration Workflow: Automate user registration and data collection via Telegram.
  Telegram Payment and Refund Workflow for Stars**: Streamline your Telegram payment processing with stars, invoices, and refunds.

  Support and Updates

  This workflow is supported and regularly updated to stay compatible with the latest Telegram features and n8n improvements. If you encounter any issues, technical support is available to ensure smooth integration and setup.



  Key terms: Telegram Stars payment workflow, Telegram refund automation, n8n payment template, Google Sheets transaction logging, Telegram bot for payments, automated refunds on Telegram, Telegram Stars invoice workflow.

  Please reach out to Victor if you need further assistance with your n8n workflows and automation!

nodes_used:
  ["n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.executeWorkflowTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.manualTrigger","n8n-nodes-base.set","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.googleSheets","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.telegram","n8n-nodes-base.noOp","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.switch","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.noOp","n8n-nodes-base.noOp","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.telegramTrigger","n8n-nodes-base.executeWorkflow","n8n-nodes-base.switch"]

workflow_json_compressed:
  H4sIAAAAAAAAE51YTW8bORL9K40+7QIqL8kqFknfsplZIIfZHUxmN4dMDvwo2oJttUdqxxMY/u+Llh1LdrottY8G2KXnV69efdy1V9LH9vSuXa42fVxl+VDa01aXlA1n8lWsralwZeXJG2NYia01Zy7VZdYhYeEskjiEEi0Ku+xNbu8X7aorsmlPP9+1yyEkOwmhZgZfAgGJQ0jsLZRksrE+MbJtF+0qXkl72v4m9WZV2kXbf7se/l75FWwDQoobOTnv++vf5M8b2fTtor3uNst+2a3a08/ASi20UurLor2O63glvaw37end/UOo/8l6s31JJ+Z+8QiNXLBZcQSMRoCSTRAoFLDWmmCQq9Z+B+1jv8wX35p/d71M4tts3zw+2YenlVeLYA7C00/ggjKaQqqA7BSQTgl8KgTOZYtRJY5lHBy+AZ1RagF0mL0dPDdkL6KCFDIDheQhehOBVLRGF5SIaQ+erErzYfW1W+Zp8qaT61ktAOclV7HSpuYI2WcHVKRACBigWjTZOjHCaZQ/ms8faj/wZ9wJ6oBIDg2S83Q8nZ59iqgqKGIHlJyAD5FAYiITCCmT7NA+Mtn8FPs4jVZe0qi1Oo5HPKFdokMw5FjAOCdAygikpCKwJDGlpOJS3iH7+S/JN700n7r1Rb3sbpvf18uzM1lPopSHD76/3z1/xi8ateAZ6hT0qUZVoFKtQF5piIQBVJBs0CUnNo8mn9+Q/MF6YBY6S4Q5MhSbA1DCAoFQgZdcpWiURLhD90u8kCY2B5zxKq5u4uU4fdrwcea4g5jFBzaEwI4LELsM0bEHdJQoZI6Ryg7iP7u+effrh6bvLmTV/K1262a9hfv3OepU5jiUz9RZvBNRAjoHD1QrQ8g8kKpLLlyxSnjZXeaWjffzcWWxrDUHYBr40zFALNZAdlW8ZxNEzKgAtX6DfSPSSQjBKh+ct6QXzrgTq7RC1kjGEc7IfGZMlhNkmwSIKII3oiBoIlEhROK9zL8/j33z4acZbBo+qpb3ySwuInudwSMboOoNJFIFkkIqYsiy4IQY5wBDNReYCuJyiQaS8g4oJw/JiQeObENN5JyoHbB319frrvsqzT+aX9cC788lX3Q3ffPf6xJfmSmm26I2pBZweKjYb4tOJV9UrWDMtltXDTGXAXx1KqJyRo+3xTfo0iDNdEafVcUUAxiXFRDlAMHoAJxJUKkUi+yh+7Re9tL8filn63jV/Bq/Xcmqb96fx/WZvCbKs647u5SP5yL9ZoxSRD5M6Z4HRZsUSgCvNQEZMRDYIghaRVqcSRPNxr2l1EktzJw5ElFxDljBiDJAGhUEHyNYhamYUovg3mTx2EDmWqRxNLd2ohCF6AKQD3pItQcfk4DHpNhWo4rZc+6PNznLZtP8IptNPJsull4e1PACH7FaII3hW3W9bD6s/nXZ3ban/fpGJolM6LTjZEFXVkOxO0hBJ8BiVC1OW7c/or0rpfnW3ayby+5smZtzWU+DXnX/uX7Zc8wU4Al05EqtxlpwFBGobNOsHETPumYkk7eD7Y8iDPNFGOZq0CWfQrAafPQVKOUIScUIgtEnwWx1knHTUfPR2bnoAlmuRRRo5SpQzQKhWA8pVfE6CFPZM52fvw4ms7ntl/n8lbl2c7vs8/nL6rXHlckOWkBMQQXgqAWoeAOhRA8plOSqOE6KR4kzb3BrPXeONVasVBfBeNRAGBwkT4O1aIw6aMP7q/0eOvsGdH4uOtbGxeQSKA4JKCkNiTxDtlUbXTEnG8ZF9wbyNKM9YSZmhQq10n7mPm1EiWMiyKqqgcsAPioN1RZbfbDOVz3lLnOMZSvBY3bAHTTtUq0YDOjMQ/UmA75ygGy15mrRm31reYL2OGy/zf+0PXIZ2MEsyCoG4qEZeSDFDhKiGrYfQpPZ8n4bHhpcMywqh64SD81u2yZ2826zlj9vlmspJ80fqz9W2/NGzAP4Zojf9F1zHlflUppl3yxXm2WRp/nk9nHVHdtxrX9Lj9pvq2izL4UcFJeGs4cTCKpUYFc8YWVRoYyq3r9x88U5VsvJeKeEoJrKQJgFfKwMNWBAza6YUPeGkcdmfvCI8L3r796V5SamSynf+XoGeyiBB6ZvJZ133cX29ulsdE50BB0pA5FB8NYZsIhG2IcgaTCG1//Tk71FKlISNgqikAEKVUNwkSAolKiYa+Zn/hPX/ZNGPu00ctTZ5Id7FE1paSIxNrrCqURA7zVQ5gSBSUASKQzilDF718Z3W6lv5jU/o45c/PT9l0Wbu9VKHn/m9O7pF0/v2qu4HOJ9vtteml8xw+3DRbtcFfmrPVX3Xxa7b6a6+GvfHONsP3z/5X7xtCSPgZ/YVkfj7J8vxmK9PBGNBnl2OxyLMn6rHY31bFsYi/XDeWA0zHMORlP8UnCjcZ5fyg6yPXGoGg39QmNjscePsqPRXqhv9D8+8ljwmmCP3o9HQf7QIUfFcsC2xmXz0tfHIk836CMS9FCVo4CnFsnxRE2ds8dCj+/OhxX/XIfThX1M4EMpP+yfhw3t/v7/RfD29j4cAAA=


name: Angie, Personal AI Assistant with Telegram Voice and Text
author_name: Derek Cheung
author_username: derekcheungsa
categories: []
created_at: 2024-10-14T19:22:24.351Z
updated_at: 2024-10-14T19:22:24.351Z
url: https://n8n.io/workflows/2462
scraped_at: 2025-09-14 11:38:21
description:
  How it works:

  This project creates a personal AI assistant named Angie that operates through Telegram. Angie can summarize daily emails, look up calendar entries, remind users of upcoming tasks, and retrieve contact information. The assistant can interact with users via both voice and text inputs. 

  Step-by-step:

  Telegram Trigger: The workflow starts with a Telegram trigger that listens for incoming message events. The system determines if the incoming message is voice or text. If voice, the voice file is retrieved and transcribed to text using OpenAI's API Speech to Text

  AI Assistant: The telegram request is passed to the AI assistant (Angie).

  Tools Integration: The AI assistant is equipped with several tools:

  Get Email: Uses Gmail API to fetch recent emails, filtering by date.
  Get Calendar: Retrieves calendar entries for specified dates.
  Get Tasks: Connects to a Baserow (open-source Airtable alternative) database to fetch to-do list items.
  Get Contacts: Also uses Baserow to retrieve contact information.

  Response Generation: The AI formulates a response based on the gathered information and sends back to the user on Telegram

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

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


name: Enrich Company Data from Google Sheet with OpenAI Agent and ScrapingBee
author_name: Dataki
author_username: dataki
categories: []
created_at: 2024-10-16T15:54:36.622Z
updated_at: 2024-10-16T15:54:36.622Z
url: https://n8n.io/workflows/2463
scraped_at: 2025-09-14 11:38:23
description:
  This workflow demonstrates how to enrich data from a list of companies in a spreadsheet. While this workflow is production-ready if all steps are followed, adding error handling would enhance its robustness.

  Important notes

  Check legal regulations**: This workflow involves scraping, so make sure to check the legal regulations around scraping in your country before getting started. Better safe than sorry!
  Mind those tokens**: OpenAI tokens can add up fast, so keep an eye on usage unless you want a surprising bill that could knock your socks off! 💸

  Main Workflow

  Node 1 - Webhook
  This node triggers the workflow via a webhook call. You can replace it with any other trigger of your choice, such as form submission, a new row added in Google Sheets, or a manual trigger.

  Node 2 - Get Rows from Google Sheet
  This node retrieves the list of companies from your spreadsheet. 
  here is the Google Sheet Template you can use.
  The columns in this Google Sheet are:

  Company**: The name of the company
  Website**: The website URL of the company  
    These two fields are required at this step.

  Business Area**: The business area deduced by OpenAI from the scraped data
  Offer**: The offer deduced by OpenAI from the scraped data
  Value Proposition**: The value proposition deduced by OpenAI from the scraped data
  Business Model**: The business model deduced by OpenAI from the scraped data
  ICP**: The Ideal Customer Profile deduced by OpenAI from the scraped data
  Additional Information**: Information related to the scraped data, including:
    Information Sufficiency:
      Description: Indicates if the information was sufficient to provide a full analysis.
      Options: "Sufficient" or "Insufficient"
    Insufficient Details:
      Description: If labeled "Insufficient," specifies what information was missing or needed to complete the analysis.
    Mismatched Content:
      Description: Indicates whether the page content aligns with that of a typical company page.
    Suggested Actions:
      Description: Provides recommendations if the page content is insufficient or mismatched, such as verifying the URL or searching for alternative sources.

  Node 3 - Loop Over Items
  This node ensures that, in subsequent steps, the website in "extra workflow input" corresponds to the row being processed. You can delete this node, but you'll need to ensure that the "query" sent to the scraping workflow corresponds to the website of the specific company being scraped (rather than just the first row).

  Node 4 - AI Agent
  This AI agent is configured with a prompt to extract data from the content it receives. The node has three sub-nodes:
    
    OpenAI Chat Model: The model used is currently gpt4-o-mini.
    Call n8n Workflow: This sub-node calls the workflow to use ScrapingBee and retrieves the scraped data.
    Structured Output Parser: This parser structures the output for clarity and ease of use, and then adds rows to the Google Sheet.

  Node 5 - Update Company Row in Google Sheet
  This node updates the specific company's row in Google Sheets with the enriched data.

  Scraper Agent Workflow

  Node 1 - Tool Called from Agent
  This is the trigger for when the AI Agent calls the Scraper. A query is sent with:
  Company name
  Website (the URL of the website)

  Node 2 - Set Company URL
  This node renames a field, which may seem trivial but is useful for performing transformations on data received from the AI Agent.

  Node 3 - ScrapingBee: Scrape Company's Website
  This node scrapes data from the URL provided using ScrapingBee. You can use any scraper of your choice, but ScrapingBee is recommended, as it allows you to configure scraper behavior directly. Once configured, copy the provided "curl" command and import it into n8n.

  Node 4 - HTML to Markdown
  This node converts the scraped HTML data to Markdown, which is then sent to OpenAI. The Markdown format generally uses fewer tokens than HTML.

  Improving the Workflow
  It's always a pleasure to share workflows, but creators sometimes want to keep some magic to themselves ✨. Here are some ways you can enhance this workflow:

  Handle potential errors
  Configure the scraper tool to scrape other pages on the website. Although this will cost more tokens, it can be useful (e.g., scraping "Pricing" or "About Us" pages in addition to the homepage).
  Instead of Google Sheets, connect directly to your CRM to enrich company data.
  Trigger the workflow from form submissions on your website and send the scraped data about the lead to a Slack or Teams channel.

nodes_used:
  ["@n8n/n8n-nodes-langchain.outputParserStructured","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.googleSheets","@n8n/n8n-nodes-langchain.toolWorkflow","n8n-nodes-base.googleSheets","n8n-nodes-base.httpRequest","n8n-nodes-base.executeWorkflowTrigger","n8n-nodes-base.splitInBatches","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.set","n8n-nodes-base.markdown","n8n-nodes-base.webhook"]

workflow_json_compressed:
  [encoded data, 6908 characters]


name: Scale Deal Flow with a Pitch Deck AI Vision, Chatbot and QDrant Vector Store
author_name: Jimleuk
author_username: jimleuk
categories: []
created_at: 2024-10-17T10:06:00.333Z
updated_at: 2024-10-17T10:06:00.333Z
url: https://n8n.io/workflows/2464
scraped_at: 2025-09-14 11:38:23
description:
  Are you a popular tech startup accelerator (named after a particular higher order function) overwhelmed with 1000s of pitch decks on a daily basis? Wish you could filter through them quickly using AI but the decks are unparseable through conventional means? Then you're in luck!

  This n8n template uses Multimodal LLMs to parse and extract valuable data from even the most overly designed pitch decks in quick fashion. Not only that, it'll also create the foundations of a RAG chatbot at the end so you or your colleagues can drill down into the details if needed. With this template, you'll scale your capacity to find interesting companies you'd otherwise miss!

  Requires n8n v1.62.1+

  How It Works

  Airtable is used as the pitch deck database and PDF decks are downloaded from it.
  An AI Vision model is used to transcribe each page of the pitch deck into markdown.
  An Information Extractor is used to generate a report from the transcribed markdown and update required information back into pitch deck database.
  The transcribed markdown is also uploaded to a vector store to build an AI chatbot which can be used to ask questions on the pitch deck.

  Check out the sample Airtable here: https://airtable.com/appCkqc2jc3MoVqDO/shrS21vGqlnqzzNUc

  How To Use
  This template depends on the availability of the Airtable - make a duplicate of the airtable (link) and its columns before running the workflow.
  When a new pitchdeck is received, enter the company name into the Name column and upload the pdf into the File column. Leave all other columns blank.
  If you have the Airtable trigger active, the execution should start immediately once the file is uploaded. Otherwise, click the manual test trigger to start the workflow.
  When manually triggered, all "new" pitch decks will be handled by the workflow as separate executions.

  Requirements
  OpenAI for LLM
  Airtable For Database and Interface
  Qdrant for Vector Store

  Customising This Workflow

  Extend this starter template by adding more AI agents to validate claims made in the pitch deck eg. Linkedin Profiles, Page visits, Reviews etc.

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.sort","n8n-nodes-base.httpRequest","n8n-nodes-base.compression","n8n-nodes-base.code","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.editImage","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.aggregate","@n8n/n8n-nodes-langchain.documentDefaultDataLoader","@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.embeddingsOpenAi","n8n-nodes-base.httpRequest","n8n-nodes-base.merge","n8n-nodes-base.airtable","n8n-nodes-base.airtable","n8n-nodes-base.set","n8n-nodes-base.if","n8n-nodes-base.executeWorkflow","n8n-nodes-base.noOp","n8n-nodes-base.executeWorkflowTrigger","n8n-nodes-base.extractFromFile","n8n-nodes-base.convertToFile","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.toolVectorStore","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.embeddingsOpenAi","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.informationExtractor","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.airtableTrigger","@n8n/n8n-nodes-langchain.chainLlm","@n8n/n8n-nodes-langchain.informationExtractor","@n8n/n8n-nodes-langchain.vectorStoreQdrant","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.memoryBufferWindow","n8n-nodes-base.stickyNote","n8n-nodes-base.airtableTool","@n8n/n8n-nodes-langchain.chatTrigger","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.vectorStoreQdrant","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 15576 characters]


name: Building Your First WhatsApp Chatbot
author_name: Jimleuk
author_username: jimleuk
categories: []
created_at: 2024-10-17T10:20:43.714Z
updated_at: 2024-10-17T10:20:43.714Z
url: https://n8n.io/workflows/2465
scraped_at: 2025-09-14 11:38:20
description:
  This n8n template builds a simple WhatsApp chabot acting as a Sales Agent. The Agent is backed by a product catalog vector store to better answer user's questions.

  This template is intended to help introduce n8n users interested in building with WhatsApp.

  How it works
  This template is in 2 parts: creating the product catalog vector store and building the WhatsApp AI chatbot.
  A product brochure is imported via HTTP request node and its text contents extracted.
  The text contents are then uploaded to the in-memory vector store to build a knowledgebase for the chatbot.
  A WhatsApp trigger is used to capture messages from customers where non-text messages are filtered out.
  The customer's message is sent to the AI Agent which queries the product catalogue using the vector store tool.
  The Agent's response is sent back to the user via the WhatsApp node.

  How to use

  Once you've setup and configured your WhatsApp account and credentials
  First, populate the vector store by clicking the "Test Workflow" button.
  Next, activate the workflow to enable the WhatsApp chatbot.
  Message your designated WhatsApp number and you should receive a message from the AI sales agent.
  Tweak datasource and behaviour as required.

  Requirements
  WhatsApp Business Account
  OpenAI for LLM

  Customising this workflow

  Upgrade the vector store to Qdrant for persistance and production use-cases.
  Handle different WhatsApp message types for a more rich and engaging experience for customers.

nodes_used:
  ["n8n-nodes-base.whatsAppTrigger","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.memoryBufferWindow","@n8n/n8n-nodes-langchain.toolVectorStore","@n8n/n8n-nodes-langchain.embeddingsOpenAi","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.manualTrigger","@n8n/n8n-nodes-langchain.embeddingsOpenAi","@n8n/n8n-nodes-langchain.documentDefaultDataLoader","@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter","n8n-nodes-base.extractFromFile","n8n-nodes-base.httpRequest","n8n-nodes-base.whatsApp","n8n-nodes-base.whatsApp","@n8n/n8n-nodes-langchain.vectorStoreInMemory","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.vectorStoreInMemory","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.switch","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.agent"]

workflow_json_compressed:
  [encoded data, 6484 characters]


name: Respond to WhatsApp Messages with AI Like a Pro!
author_name: Jimleuk
author_username: jimleuk
categories: []
created_at: 2024-10-17T10:39:09.932Z
updated_at: 2024-10-17T10:39:09.932Z
url: https://n8n.io/workflows/2466
scraped_at: 2025-09-14 11:38:20
description:
  This n8n template demonstrates the beginnings of building your own n8n-powered WhatsApp chatbot! Under the hood, utilise n8n's powerful AI features to handle different message types and use an AI agent to respond to the user. A powerful tool for any use-case!

  How it works
  Incoming WhatsApp Trigger provides a way to get messages into the workflow.
  The message received is extracted and sent through 1 of 4 branches for processing.
  Each processing branch uses AI to analyse, summarize or transcribe the message so that the AI agent can understand it. The supported types are text, image, audio (voice notes) and video.
  The AI Agent is used to generate a response generally and uses a wikipedia tool for more complex queries.
  Finally, the response message is sent back to the WhatsApp user using the WhatsApp node.

  How to use
  Once you have setup and configured your WhatsApp account, you'll need to activate your workflow to start processing messages.

  Good to know: Large media files may negatively impact workflow performance.

  Requirements
  WhatsApp Buisness account
  Google Gemini for LLM. Gemini is used specifically because it can accept audio and video files whereas at time of writing, many other providers like OpenAI's GPT, do not.

  Customising this workflow
  For performance reasons, consider detecting large audio and video before sending to the LLM. Pre-processing such files may allow your agent to perform better.
  Go beyond and create rich and engagement customer experiences by responding using images, audio and video instead of just text!

nodes_used:
  ["n8n-nodes-base.whatsAppTrigger","n8n-nodes-base.whatsApp","n8n-nodes-base.whatsApp","n8n-nodes-base.whatsApp","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","@n8n/n8n-nodes-langchain.memoryBufferWindow","n8n-nodes-base.set","n8n-nodes-base.splitOut","@n8n/n8n-nodes-langchain.toolWikipedia","n8n-nodes-base.switch","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.wait","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.whatsApp","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.set","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.chainLlm","@n8n/n8n-nodes-langchain.agent"]

workflow_json_compressed:
  [encoded data, 7204 characters]


name: Narrating over a Video using Multimodal AI
author_name: Jimleuk
author_username: jimleuk
categories: []
created_at: 2024-10-17T10:45:39.624Z
updated_at: 2024-10-17T10:45:39.624Z
url: https://n8n.io/workflows/2467
scraped_at: 2025-09-14 11:38:23
description:
  This n8n template takes a video and extracts frames from it which are used with a multimodal LLM to generate a script. The script is then passed to the same multimodal LLM to generate a voiceover clip.

  This template was inspired by Processing and narrating a video with GPT's visual capabilities and the TTS API

  How it works
  Video is downloaded using the HTTP node.
  Python code node is used to extract the frames using OpenCV.
  Loop node is used o batch the frames for the LLM to generate partial scripts.
  All partial scripts are combined to form the full script which is then sent to OpenAI to generate audio from it.
  The finished voiceover clip is uploaded to Google Drive.

  Sample the finished product here: https://drive.google.com/file/d/1-XCoii0leGB2MffBMPpCZoxboVyeyeIX/view?usp=sharing

  Requirements

  OpenAI for LLM
  Ideally, a mid-range (16GB RAM) machine for acceptable performance!

  Customising this workflow

  For larger videos, consider splitting into smaller clips for better performance
  Use a multimodal LLM which supports fully video such as Google's Gemini.

nodes_used:
  ["@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.code","n8n-nodes-base.splitOut","n8n-nodes-base.httpRequest","n8n-nodes-base.convertToFile","n8n-nodes-base.manualTrigger","n8n-nodes-base.aggregate","n8n-nodes-base.googleDrive","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.wait","n8n-nodes-base.splitInBatches","n8n-nodes-base.editImage","n8n-nodes-base.aggregate","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.chainLlm"]

workflow_json_compressed:
  [encoded data, 6856 characters]


