by Yaron Been
Monexia Nietgoed AI Generator Description None Overview This n8n workflow integrates with the Replicate API to use the monexia/nietgoed model. This powerful AI model can generate high-quality other content based on your inputs. Features Easy integration with Replicate API Automated status checking and result retrieval Support for all model parameters Error handling and retry logic Clean output formatting Parameters Required Parameters prompt** (string): Prompt for generated image. If you include the trigger_word used in the training process you are more likely to activate the trained object, style, or concept in the resulting image. Optional Parameters mask** (string, default: None): Image mask for image inpainting mode. If provided, aspect_ratio, width, and height inputs are ignored. seed** (integer, default: None): Random seed. Set for reproducible generation image** (string, default: None): Input image for image to image or inpainting mode. If provided, aspect_ratio, width, and height inputs are ignored. model** (string, default: dev): Which model to run inference with. The dev model performs best with around 28 inference steps but the schnell model only needs 4 steps. width** (integer, default: None): Width of generated image. Only works if aspect_ratio is set to custom. Will be rounded to nearest multiple of 16. Incompatible with fast generation height** (integer, default: None): Height of generated image. Only works if aspect_ratio is set to custom. Will be rounded to nearest multiple of 16. Incompatible with fast generation go_fast** (boolean, default: False): Run faster predictions with model optimized for speed (currently fp8 quantized); disable to run in original bf16 extra_lora** (string, default: None): Load LoRA weights. Supports Replicate models in the format <owner>/<username> or <owner>/<username>/<version>, HuggingFace URLs in the format huggingface.co/<owner>/<model-name>, CivitAI URLs in the format civitai.com/models/<id>[/<model-name>], or arbitrary .safetensors URLs from the Internet. For example, 'fofr/flux-pixar-cars' lora_scale** (number, default: 1): Determines how strongly the main LoRA should be applied. Sane results between 0 and 1 for base inference. For go_fast we apply a 1.5x multiplier to this value; we've generally seen good performance when scaling the base value by that amount. You may still need to experiment to find the best value for your particular lora. megapixels** (string, default: 1): Approximate number of megapixels for generated image How to Use Set up your Replicate API key in the workflow Configure the required parameters for your use case Run the workflow to generate other content Access the generated output from the final node API Reference Model: monexia/nietgoed API Endpoint: https://api.replicate.com/v1/predictions Requirements Replicate API key n8n instance Basic understanding of other generation parameters
by Harshil Agrawal
This example workflow demonstrates how to handle pagination. This example assumes that the API you are making the request to has pagination, and returns a cursor (something that points to the next page). This example workflow makes a request to the HubSpot API to fetch contacts. You will have to modify the parameters based on your API. Config URL node: This node sets the URL that the HTTP Request node calls. HTTP Request node: This node makes the API call and returns the data from the API. Based on your API, you will have to modify the parameters of the node. NoOp node and Wait node: These nodes help me avoiding any rate limits. If you're API has rate limits, make sure you configure the correct time in the Wait node. Check if pagination: This IF node checks if the API returns any cursor. If the API doesn't return any cursor, it means that there is no data to be fetched, and the node returns false. If the API returns a cursor, it means that there is still some data that needs to be fetched. In this case, the node returns true. Set next URL: This Set node is used to set the URL. In the next cycle, the HTTP Request node makes a call to this URL. Combine all data: This node combines all the data that gets returned by the API calls from the HTTP Request node.
by Nskha
An innovative N8N workflow that monitors cryptocurrency prices on Binance, identifies significant market movements, and sends customized alerts through Telegram. Ideal for traders and enthusiasts seeking real-time market insights. How It Works Trigger Options: Choose between a manual trigger or a scheduled trigger to start the workflow. Fetch Market Data: The 'Binance 24h Price Change' node retrieves the latest 24-hour price changes for cryptocurrencies from Binance. Identify Significant Changes: The 'Filter by 10% Change rate' node filters out cryptocurrencies with price changes of 10% or more. Aggregate Data: The 'Aggregate' node combines all significant changes into a single dataset. Format Data for Telegram: The 'Split By 1K chars' node formats this data into chunks suitable for Telegram's message size limit. Send Telegram Message: The 'Send Telegram Message' node broadcasts the formatted message to a specified Telegram chat. Set Up Steps Estimated Time**: About 1-5 minutes for setup. Initial Configuration**: Set up a Binance API connection (Optional) and your Telegram bot credentials. Customization**: Adjust the trigger according to your preference (manual or scheduled) and update the Telegram chat ID. Create Telegram bot steps**:- Setting up a Telegram bot and obtaining its token involves several steps. Here's a detailed guide: Start a Chat with BotFather: Open Telegram and search for "BotFather". This is the official bot that allows you to create new bots. Start a chat with BotFather by clicking on the "Start" button at the bottom of the screen. Create a New Bot: In the chat with BotFather, type /newbot and send the message. BotFather will ask you to choose a name for your bot. This is a display name and can be anything you like. Next, you'll need to choose a username for your bot. This must be unique and end in bot. For example, my_crypto_alert_bot. Receive Your Token: After you've set the name and username, BotFather will provide you with a token. This token is like a password for your bot, so keep it secure. The message will look something like this: Done! Congratulations on your new bot. You will find it at t.me/my_crypto_alert_bot. You can now add a description, about section and profile picture for your bot, see /help for a list of commands. Use this token to access the HTTP API: 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11 The token in this case is 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11. Test Your Bot: You can find your bot by searching for its username in Telegram. Start a chat with your bot and try sending it a message. Although it won't respond yet, this step is essential to ensure it's set up correctly. Use the Token in n8n: In your n8n workflow, when setting up the Telegram node, you'll be prompted to enter credentials. Choose to add new credentials and paste the token you received from BotFather. Get Your Chat ID: To send messages to a specific chat, you need to know the chat ID. The easiest way to find this is to first message your bot, then use a bot like @userinfobot to get your chat ID. Once you have the chat ID, you can configure it in the Telegram node in your n8n workflow. Finalize Your Workflow: With the bot token and chat ID set up in n8n, your Telegram notifications should work as intended in your workflow. Remember, keep your bot token secure and never share it publicly. If your token is compromised, you can always generate a new one by chatting with BotFather and selecting /token. Example result Keywords: n8n workflow, cryptocurrency market, Binance API, Telegram bot, price alert system, automated trading signals, market analysis `
by Yulia
Create a Telegram bot that combines advanced AI functionalities with LangChain nodes and new tools. Nodes as tools and the HTTP request tool are a new n8n feature that extend custom workflow tool and simplify your setup. We used the workflow tool in the previous Telegram template to call the Dalle-3 model. In the new version, we've achieved similar results using the HTTP Request tool and the Telegram node tool instead. The main difference is that Telegram bot becomes more flexible. The LangChain Agent node can decide which tool to use and when. In the previous version, all steps inside the custom workflow tool were executed sequentially. ⚠️ Note that you'd need to select the Tools Agent to work with new tools. Before launching the template, make sure to set up your OpenAI and Telegram credentials. Here’s how the new Telegram bot works: Telegram Trigger listens for new messages in a specified Telegram chat. This node activates the rest of the workflow after receiving a message. AI Tool Agent receives input text, processes it using the OpenAI model and replies to a user. It addresses users by name and sends image links when an image is requested. The OpenAI GPT-4o model generates context-aware responses. You can configure the model parameters or swap this node entirely. Window buffer memory helps maintain context across conversations. It stores the last 10 interactions and ensures that the agent can access previous messages within a session. Conversations from different users are stored in different buffers. The HTTP request tool connects with OpenAI's DALL-E-3 API to generate images based on user prompts. The tool is called when the user asks for an image. Telegram node tool sends generated images back to the user in a Telegram chat. It retrieves the image from the URL returned by the DALL-E-3 model. This does not happen directly, however. The response from the HTTP request tool is first stored in the Agent’s scratchpad (think of it as a short-term memory). In the next iteration, the Agent sends the updated response to the GPT model once again. The GPT model will then create a new tool request to send the image back to the user. To pass the image URL, the tool uses the new $fromAI() expression. Send final reply node sends the final response message created by the agent back to the user on Telegram. Even though the image was already passed to the user, the Agent always stops with the final response that comes from dedicated output. ⚠️ Note, that the Agent may not adhere to the same sequence of actions in 100% of situations. For example, sometimes it could skip sending the file via the Telegram node tool and instead just send an URL in the final reply. If you have a longer series of predefined steps, it may be better to use the “old” custom workflow tool. This template is perfect as a starting point for building AI agentic workflow. Take a look at another agentic Telegram AI template that can handle both text and voice messages.
by darrell_tw
Workflow Description This workflow demonstrates how to use the LINE Messaging API to handle two scenarios: Replying to a user's message using a reply token. Sending a push message to a specific LINE user using their user ID. Key Features Webhook Integration: Receives and processes incoming messages from LINE using a webhook. Conditional Logic: Checks if the received event type is a message and handles it accordingly. Reply Message: Automatically responds to the user's message using the LINE reply token. Push Message: Sends a test message to a specific LINE user using their unique user ID. Pre-Configuration To simplify the setup process, create a Header Auth credential in n8n: Name**: Authorization Value**: Bearer {line token} This will authenticate all API requests to the LINE Messaging API. Node Configurations 1.1. Webhook from LINE Message Purpose**: Captures incoming events from the LINE Messaging API. Configuration**: HTTP Method: POST Path: {n8n-webhook-page} 1.2. If Condition Purpose**: Checks if the received event type is message. Configuration**: Condition: {{ $json.body.events[0].type }} equals "message" 1.3. Line: Reply with Token Purpose**: Replies to the user's message using the LINE reply token. Configuration**: Method: POST URL: https://api.line.me/v2/bot/message/reply JSON Body: { "replyToken": "{{ $('Webhook from Line Message').item.json.body.events[0].replyToken }}", "messages": [ { "type": "text", "text": "收到您的訊息 : {{ $('Webhook from Line Message').item.json.body.events[0].message.text }}" } ] } 2.1. Manual Trigger: Test Workflow Purpose**: Triggers the workflow for testing the push message functionality. Configuration**: No additional setup required. 2.2. Edit Fields Purpose**: Prepares the unique LINE user ID for the push message. Configuration**: Field: line_uid: Uxxxxxxxxxxxx 2.3. Line: Push Message Purpose**: Sends a test message to a specific LINE user. Configuration**: Method: POST URL: https://api.line.me/v2/bot/message/push JSON Body: { "to": "{{ $json.line_uid }}", "messages": [ { "type": "text", "text": "推播測試" } ] } 工作流程描述 此工作流程展示如何使用 LINE Messaging API 處理兩種情境: 使用 reply token 回應使用者的訊息。 使用使用者的 user ID 發送 推播訊息。 主要功能 Webhook 整合:透過 Webhook 接收並處理來自 LINE 的訊息。 條件邏輯:檢查接收到的事件類型是否為訊息並進行處理。 回應訊息:使用 LINE 的 reply token 自動回覆使用者的訊息。 推播訊息:使用 LINE User ID 向指定用戶發送測試訊息。 預先設定 為簡化設定流程,請在 n8n 中建立 Header Auth 憑證: 名稱**:Authorization 值**:Bearer {line token} 此設定將用於認證所有 LINE Messaging API 的請求。 節點設定 1.1. Webhook from LINE Message 用途**:接收來自 LINE Messaging API 的事件。 設定**: HTTP 方法:POST 路徑:{n8n-webhook-page} 1.2. If 條件判斷 用途**:檢查接收到的事件類型是否為 message。 設定**: 條件: {{ $json.body.events[0].type }} 等於 "message" 1.3. Line: Reply with Token 用途**:使用 LINE reply token 回應使用者訊息。 設定**: 方法:POST URL:https://api.line.me/v2/bot/message/reply JSON 主體: { "replyToken": "{{ $('Webhook from Line Message').item.json.body.events[0].replyToken }}", "messages": [ { "type": "text", "text": "收到您的訊息 : {{ $('Webhook from Line Message').item.json.body.events[0].message.text }}" } ] } 2.1. 手動觸發:測試工作流程 用途**:測試推播訊息功能。 設定**:無需額外設定。 2.2. Edit Fields 用途**:準備推播訊息所需的 LINE 使用者 ID。 設定**: 欄位: line_uid:Uxxxxxxxxxxxx 2.3. Line: 推播訊息 用途**:向特定 LINE 使用者發送測試訊息。 設定**: 方法:POST URL:https://api.line.me/v2/bot/message/push JSON 主體: { "to": "{{ $json.line_uid }}", "messages": [ { "type": "text", "text": "推播測試" } ] } 完成示意圖 (Storyboard Example):
by Davide
1. How it Works This n8n workflow automates fine-tuning OpenAI models through these key steps: Manual Trigger**: Starts with the "When clicking ‘Test workflow’" event to initiate the process. Downloads a .jsonl file from Google Drive Upload to OpenAI**: Uploads the .jsonl file to OpenAI via the "Upload File" node (with purpose "fine-tune"). Create Fine-tuning Job**: Sends a POST request to the endpoint https://api.openai.com/v1/fine_tuning/jobs with: { "training_file": "{{ $json.id }}", "model": "gpt-4o-mini-2024-07-18" } OpenAI automatically starts training the model based on the provided file. Interaction with the Trained Model**: An "AI Agent" uses the custom model (e.g., ft:gpt-4o-mini-2024-07-18:n3w-italia::XXXX7B) to respond to chat messages. 2. Set up Steps To configure the workflow: Prepare the Training File: Create a .jsonl file following the specified syntax (e.g., travel assistant Q/A examples). Upload it to Google Drive and update the ID in the "Google Drive" node. Configure Credentials: Google Drive: Connect an account via OAuth2 (googleDriveOAuth2Api). OpenAI: Add your API key in the "OpenAI Chat Model" and "Upload File" nodes. Customize the Model: In the "OpenAI Chat Model" node, specify the name of your fine-tuned model (e.g., ft:gpt-4o-mini-...). Update the HTTP request body (Create Fine-tuning Job) if needed (e.g., a different base model). Start the Workflow: Use the manual trigger ("Test workflow") to begin the upload and training process. Test the model via the "Chat Trigger" (chat messages). Integrated Documentation: Follow the instructions in the Sticky Notes to: Properly format the .jsonl (Step 1). Monitor progress on OpenAI (Step 2, link: https://platform.openai.com/finetune/). Note: Ensure the .jsonl file adheres to OpenAI’s required structure and that credentials are valid.
by Polina Medvedieva
Who is this template for This template is for marketers, SEO specialists, or content managers who need to analyze keywords to identify which ones contain references to a specific area or topic, in this case – IT software, services, tools, or apps. Use case Automating the process of scanning a large list of keywords to determine if they reference known IT products or services (like ServiceNow, Salesforce, etc.), and updating a Google Sheet with this classification. This helps in categorizing keywords for targeted SEO campaigns, content creation, or market analysis. How this workflow works Fetches keyword data from a Google Sheet Processes keywords in batches to prevent rate limiting Uses an AI agent (OpenAI) to analyze each keyword and determine if it contains a reference to an IT service/software Updates the original Google Sheet with the results in a "Service?" column Continues processing until all keywords are analyzed Set up steps Connect your Google Sheets account credentials Set the Google Sheet document ID (currently using "Copy of Sheet1 1") Configure the OpenAI API credentials for the AI agent Adjust the batch size (currently 6) if needed based on your API rate limits Ensure the Google Sheet has the required columns: "Number", "Keyword", and "Service?" The AI agent's prompt is highly customizable to match different identification needs. For example, instead of looking for IT software/services, you could modify the prompt to identify: Industry-specific terms (healthcare, finance, education) Geographic references (cities, countries, regions) Product categories (electronics, clothing, food) Competitor brand mentions Here's how you could modify the prompt for different use cases: Copy // For identifying educational content keywords "Check the keyword I provided and define if this keyword relates to educational content, courses, or learning materials and return yes or no." // For identifying local service keywords "Check the keyword I provided and determine if it contains location-specific terms (city names, neighborhoods, regions) that suggest local service intent and return yes or no." // For identifying competitor mentions "Check the keyword I provided and determine if it mentions any of our competitors (CompetitorA, CompetitorB, CompetitorC) and return yes or no." `
by Harshil Agrawal
This workflow demonstrates the use of the Split In Batches node and the Wait node to avoid API rate limits. Customer Datastore node: The workflow fetches data from the Customer Datastore node. Based on your use case, replace it with a relevant node. Split In Batches node: This node splits the items into a single item. Based on the API limit, you can configure the Batch Size. HTTP Request node: This node makes API calls to a placeholder URL. If the Split In Batches node returns 5 items, the HTTP Request node will make 5 different API calls. Wait node: This node will pause the workflow for the time you specify. On resume, the Split In Batches node gets executed node, and the next batch is processed. Replace Me (NoOp node): This node is optional. If you want to continue your workflow and process the items, replace this node with the corresponding node(s).
by Samir Saci
Tags: Automation, Finance, Google Sheets, API Note: This workflow uses the Exchange rate API and requires a valid API key. Context I’m a Supply Chain Data Scientist who builds automations to streamline operations, reduce manual tasks, and boost decision-making through real-time data. In this workflow, I automated the task of fetching live currency exchange rates, updating a Google Sheet with the latest values, and archiving historical records — all without writing any code. > Improve your productivity by automating admin tasks with n8n! 📬 For business inquiries, you can add me on LinkedIn Who is this template for? This template is perfect for: Finance teams** tracking multi-currency cashflows Analysts** building dashboards or models requiring updated FX data Anyone working with spreadsheets** who needs up-to-date exchange rates It updates: A live sheet with the latest USD-based exchange rates An archive tab to track historical changes over time How does it work? This workflow runs in N8N and performs the following steps: 🌐 Calls the ExchangeRate API to get the latest rates based on USD 🧠 Extracts and formats key fields: base currency, timestamp, and conversion values 📊 Updates a main Google Sheet with the latest data (using upsert logic) 🗂️ Appends all rates to a second Google Sheet tab for historical tracking You can schedule this workflow to run daily, hourly, or on-demand. What do I need to start? You don’t need to write a single line of code. Prerequisites: A Google Sheet with two tabs: Rate Sheet and Archives (Link of the publicly available example in the template) A valid Exchangerate API key Google Sheets API** connected via OAuth2 Next Steps Use the sticky notes in the workflow to understand how to: Add your Exchangerate API key Map the fields to match your Google Sheet layout Schedule the run frequency using the Cron node Optionally add Slack or email alerts if the base rate changes For more information, check my tutorial: 🎥 Watch My Tutorial 🚀 Want to build finance automation workflows like this? 📬 Let’s connect on LinkedIn Notes You can adapt this template for other currencies by changing the API endpoint This workflow was built using *n8n 1.85.4** Submitted: April 15th, 2025*
by CustomJS
This n8n template demonstrates how to convert HTML into a PDF, compress the generated PDF, and return it as a binary response using the PDF Toolkit from www.customjs.space. Notice Community nodes can only be installed on self-hosted instances of n8n. @custom-js/n8n-nodes-pdf-toolkit What this workflow does Convert** the requested HTML to PDF. Compress** the PDF file. Use** a Code node to handle URLs pointing to PDF files if they exceed 6MB. Compress** the PDF pages. Requirements Self-hosted** n8n instance CustomJS API key** for compressing PDF files. HTML** Data to convert PDF files Code node** for handling URL that indicates PDF file. Workflow Steps: Manual Trigger: Runs with user interaction. HTML to PDF: Request HTML Data Convert HTML to PDF Request PDF from URL. Compress Pages from PDF: Compress PDF as a binary file. Usage Get API key from customJS Sign up to customJS platform. Navigate to your profile page Press "Show" button to get API key Set Credentials for CustomJS API on n8n Copy and paste your API key generated from CustomJS here. Design workflow A Manual Trigger for starting workflow. HTTP Request Nodes for downloading PDF files. Code node for handling URL that indicates PDF file. Compress PDF files. You can replace logic for triggering and returning results. For example, you can trigger this workflow by calling a webhook and get a result as a response from webhook. Simply replace Manual Trigger and Write to Disk nodes.
by Aayushman Sharma
Sync Youtube Videos with Google Sheets (Part 1 of Youtube comments sentiment analyze automation along with detailed dashboard) This workflow is the first part of a multi-part automation system designed to perform large-scale YouTube comment sentiment analysis alongwith detailed dashboard. It solves the problem of manually tracking new videos across multiple YouTube channels by automatically fetching and organizing video URLs in a Google Sheet, setting the stage for deeper analysis in Part 2. What It Does Reads Channel IDs from Sheet3 of a connected Google Sheet. Fetches the latest videos from each Channel ID using the YouTube Data API. Extracts video URLs and metadata (like title and publish date). Appends the video data to Sheet2 of the same Google Sheet — this sheet is later used by Part 2 for further processing. Part of a Multi-Step System This is Part 1 of a 2-workflow system: Part 1 (this workflow)** populates a sheet with the latest videos from a list of channels. Part 2* reads the video URLs from Sheet2, fetches comments for each video, analyzes their sentiment using *OpenAI**, and stores structured results in Sheet1. 👉 Continue to Part 2 – YouTube Comment Sentiment Analyzer with Google Sheets & OpenAI ✅ Use Cases Monitor and organize new videos from a list of YouTube channels Automate content pipelines for social media teams and analysts Build scalable datasets for comment and sentiment analysis Perfect for creators, agencies, or data analysts managing multiple YouTube accounts 🔧 Apps Used Google Sheets** – To read and write channel/video data YouTube** – To fetch video data from public channels 💡 Why Use This? Manually checking YouTube channels for new content is time-consuming and error-prone. This automation ensures your data stays current and structured — enabling consistent tracking and deeper analysis (especially when paired with Part 2). It brings speed, scale, and automation to your YouTube content operations. How to Customize 1. Modify Trigger Settings Change the Google Sheet (Sheet 3) channel ID entry to track other channels. Use a time-based trigger to fetch new videos regularly, ensuring your data stays up to date. 2. Adjust Output Fields Fetch additional details from YouTube, such as view count, description, or thumbnails. Add custom columns in Sheet 2 for organizing videos by different criteria, such as: "Published Date" "Video Type" "View Count" "Video Description" 3. Extend with Integrations Integrate with other workflows like YouTube Comment Sentiment Analysis (Part 2) for a deeper dive into content analysis. Use filters to fetch videos by certain tags, keywords, or publish dates. 4. Adjust Sheet Structure Modify the structure of Sheet 2 to categorize videos based on criteria like: Channel Video Status (e.g., "Published," "Scheduled") Video Type (e.g., "Tutorial," "Review") 5. Schedule Regular Fetching Set a schedule trigger to fetch videos at regular intervals (e.g., daily or weekly), ensuring new content is automatically added to your sheet. 6. Customize Google Sheet Layout Change the layout of Sheet 2 to better fit your needs. For example, you can add additional columns for
by Zacharia Kimotho
Create new Clickup Tasks from Slack commands This workflow aims to make it easy to create new tasks on Clickup from normal Slack messages using simple slack command. For example We can have a slack command as /newTask Set task to update new contacts on CRM and assign them to the sales team This will have an new task on Clickup with the same title and description on Clickup For most teams, getting tasks from Slack to Clickup involves manually entering the new tasks into Clickup. What if we could do this with a simple slash command? Step 1 The first step is to Create an endpoint URL for your slack command by creating an events API from the link [below] https://api.slack.com/apps/) STEP 2 Next step is defining the endpoint for your URL Create a new webhook endpoint from your n8n with a POST and paste the endpoint URL to your event API. This will send all slash commands associated with the Slash to the desired endpoint Step 3 Log on to slack API (https://api.slack.com/) and create an application. This is the one we use to run all automation and commands from Slack. Once your app is ready, navigate to the Slash Commands and create a new command This will include the command, the webhook URL and a description of what the slash command is all about Now that this is saved you can do a test by sending a demo task to your endpoint Once you have tested the webhook slash command is working with the webhook, create a new Clickup API that can be used to create new tasks in ClickUp This workflow creates a new task with the start dates on Clikup that can be assigned to the respective team members More details about the document setup can be found on this document below Happy Productivity