by Yulia
This n8n workflow is designed for working with the WhatsApp Business platform. It allows to send custom replies via WhatsApp in response to incoming user messages. 💡 Take a look at the step-by-step tutorial on how to create a WhatsApp bot. The workflow consists of two parts: The first Verify webhook sends back verification challenge string. You will need this part during the setup process on the Meta for Developers portal: Select your App Go to WhatsApp Configuration Click on the Edit button in the Webhook session Enter your production webhook URL, provide Verify token (can be any text string) Remember to activate the n8n workflow! Finally press "Verify and save" Once the webhook is verified, the Respond webhook receives various POST requests from Meta regarding WhatsApp messages (user messages and status notifications). The workflow checks whether the incoming JSON contains a user message. If this is the case, it sends the text message back to the user. This is a custom message, not a WhatsApp Business template.
by Tom
This workflow shows a no code approach to creating Salesforce accounts and contacts based on data coming from an Excel file. For Excel 365 (the online version of Microsoft Excel) check out this workflow instead. To run the workflow: Make sure your Salesforce account is authenticated with n8n. Have a Microsoft Excel workbook with contacts and their account names ready. The workflow uses this example file, but you probably want to use your own data instead. Hit the Execute Workflow button at the bottom of the n8n canvas. Here is how it works: The workflow first searches for existing Salesforce accounts by name. It then branches out depending on whether the account already exists in Salesforce or not. If an account does not exist yet, it will be created. The data is then normalised before both branches converge again. Finally the contacts are created or updated as needed in Salesforce.
by Tom
This is a workflow that might come handy after using loops. They usually leave you with items spread across different "runs". The Code node in this example workflow merges them into a single run, so you have a single list of items which is often easier to work with. Simply adjust the node name inside the Code node as needed. The idea is based on this older workflow template.
by rangelstoilov
This will send your Github notifications to a discord webhook. Since Github doesn't send push notifications to mobile devices other then @mention this is a great workaround to receive notifications on Discord with this. Using a github trigger was not a good option as there is no trigger for notifications only events (which don't work on org repos). Using http request on notifications api is way better. ++TAGGING USER IN MESSATGE:++ Change ** with your discord Id to get tagged when sending notifications. To find your own id type in any channel backslash followed by your username with the 4 digit hash code You can copy this by clicking on your username next to your profile picture Example: \@username#9999 Enjoy!
by PiAPI
Who is this template for? This workflow creates 360° or 180° spinning videos of high-quality 3D models with PiAPI API. Good for: Designers**: Generate inspiration into 3D designs and make them spin to gain concrete details in a efficient way. Online shoppers**: Show protential products from all angles in videos and preview overall texture of models. Content Creators** (including toy bloggers): Make fun videos of collectible models. 3D beginners:** Get simple spinning animations easily and make fun with them in a convenient way. How to customize this workflow to your need? To use this workflow, usually we need four steps: Fill in x-api-key in Mijdourney Generator node and Generate Kling Video node, fill in Header Parameters of GPT-4o Image Generator (e.g., Bearer + your X-API-Key) Enter your model prompt based on your inspiration. Click Test Workflow. Get the video URL in the last node. Use Case The prompt node concludes the main features of creations. An example for users' reference is listed as follow: Input Prompt A blind box character design, in the chibi style, a super cute little girl wearing a white long-sleeved dress and pearl earrings with her head bowed in a prayer pose, facing upwards, wearing an oversized off-white dress with large round pearls on the shoulders, minimalist simple dress with Ruffles, against a beige background, a full-body shot in a three-quarter profile view, with a black, blue, and gray color scheme, soft lighting, 3D rendering, clay material, high detail, in the Pixar style. Clean white skin, brown renaissance braided bun. --ar 1:1 --niji 6 Output Video An Example for your reference. More Example Results for Reference
by Aitor | 1Node
Turn Gumroad buyers into newsletter subscribers on Beehiiv, log to Google Sheets and get notified on Telegram Requirements Gumroad account** Gumroad application* + *API key** Product listed** on Gumroad Beehiiv account** Publication created** on Beehiiv Beehiiv API key** Google Sheets access** (with API credentials) Telegram Bot** created + Bot Token Telegram Channel** created and Bot added as admin Set Up 1. Trigger on a New Gumroad Sale Create a new application in Gumroad (Settings > Advanced). Copy your API key (access token). Paste it into the Gumroad Sale Trigger node. 2. Connect to Beehiiv Newsletter Create a publication inside Beehiiv. Generate and copy your Beehiiv API key. Use it to list publications and post a new subscription. 3. Load Into CRM (Google Sheets) Set up your Google Sheets API credentials Append the subscriber's data into your CRM 4. Send a Telegram Message Create a Telegram Bot and get your Bot Token. Add the Bot to your Telegram Channel and make it an admin. In the Telegram Send Message node: Use your Bot Token. Set your Channel Username or Chat ID. Customize the message content (e.g., "New Sale from {{customerEmail}} 🎉"). Further Optimizations Add more data to Beehiiv**: Include optional fields like first name, last name, custom tags, etc., when posting the subscription. Customize your Telegram message**: Personalize the message with product name, sale amount, or customer name. Enhance CRM data**: Add additional sale details into Google Sheets, like product ID, purchase timestamp, or affiliate code if available. Error Handling**: Add an error workflow to retry failed Beehiiv or Google Sheets updates automatically or log the error messages in your team chat in Slack or Microsoft Teams. ✅ That's it! Every time a new sale happens, the customer is added to your Beehiiv newsletter, saved in your CRM, and you receive an instant notification on Telegram! Get in touch with us Feel free to contact us at 1 Node. Get instant access to a library of free resources we created.
by FORK SOFTWARE TECHNOLOGIES INC.
Description This n8n workflow template allows users to check if a Tron wallet address is blacklisted on the USDT contract via a Telegram bot. When a user sends the command {walletAddress} through the Telegram bot, the workflow queries the Tronscan API to determine if the provided wallet address is blacklisted. The result is then sent back to the user via the Telegram bot. Detailed Description Workflow Overview This workflow is designed to interact with users through a Telegram bot and check if a given Tron wallet address is blacklisted on the USDT contract. The workflow consists of four main nodes: Telegram Trigger Node: Listens for messages from the Telegram bot. HTTP Request Node: Sends a GET request to the Tronscan API to check the blacklist status of the provided wallet address. Function Node: Processes the API response and formats the message to be sent back to the user. Telegram Send Message Node: Sends the formatted message back to the user via the Telegram bot. Nodes Configuration 1.Telegram Trigger Node Event: Message Update Types: Message Command: /sorgu Description: This node listens for the {walletAddress} command followed by a wallet address from the user. 2.HTTP Request Node Method: GET URL: https://apilist.tronscanapi.com/api/stableCoin/blackList?blackAddress={{ $json.message.text }} Response Format: JSON Description: This node sends a GET request to the Tronscan API using the wallet address provided by the user. 3.Code Node Check Api Response: let message; if (response.total && response.total > 0) { message = 🚨🛑 This Wallet is Blacklisted! 🛑🚨: ${response.data[0].blackAddress}; } else { message = ✅💚 This Wallet is NOT Blacklisted! 💚✅.; } return [ { json: { text: message, }, }, ]; Description:** This node processes the API response to determine if the wallet address is blacklisted and formats the message to be sent back to the user. 4.Telegram Send Message Node Resource: Message Operation: Send Chat ID: ={{$json["chat_id"]}} Text: ={{$json["text"]}} Description: This node sends the formatted message back to the user via the Telegram bot. How to Use Set Up Telegram Bot: Create a Telegram bot and obtain the API token. Configure the bot to listen for the {walletAddress} command. Import Workflow: Import this workflow into your n8n instance. Configure Credentials: Add your Telegram API credentials to the Telegram Trigger and Telegram Send Message nodes. Run Workflow: Start the workflow. Users can now send the {walletAddress} command to the Telegram bot to check if a Tron wallet address is blacklisted. Example Usage User Telegram Command: {TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t} API Request: https://apilist.tronscanapi.com/api/stableCoin/blackList?blackAddress=TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t API Response: "total": 1, "data": [ { "blackAddress": "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t", "tokenName": "USDT", "num": "367583344429", "time": 1593184959, "transHash": "af4bc4d793f82ca5ba500cf13cf93ca3e7a56fccc2aabf8b09e55fc756500ea8", "contractAddress": "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t" } ] } Bot Response: 🚨🛑 This Wallet is Blacklisted! 🛑🚨: TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t > This workflow provides a simple and efficient way to check the blacklist status of Tron wallet addresses via a Telegram bot, making it easy for users to stay informed about the status of their wallets.
by Elliot Scribner
> Disclaimer: this workflow template uses the n8n-nodes-couchbase community package. Community nodes are unverified and usage of them comes with some risks. See here for instructions on installing n8n community nodes. This template is intended for use by those interested in learning more about Agentic AI workflow development, as well as those interested in learning how to use the Couchbase Search Vector Store node for practical applications. This workflow helps users decide on travel destinations based on descriptions of several points of interest loaded into Couchbase and retrieved using Vector Search. How it Works This template contains two workflows: The Data Ingestion workflow uses the following nodes Webhook node (to listen for HTTP requests) OpenAI Embeddings node (to generate embeddings on document insertion) Note: You’ll need to configure OpenAI credentials for this node Couchbase Vector node (configured for document insertion) Default Data Loader and Recursive Character Text Splitter The Chat Application workflow uses the following nodes Chat Trigger node AI Tools Agent node connect to: Gemini (as the Chat Model, for generating responses) Note: You will have to configure Gemini credentials for this node Simple Memory (as the Memory, to maintain conversation context) Couchbase Search Vector node (as the Tool, for search) OpenAI Embeddings node (as the Embedding model for the Couchbase Search Vector node, to convert queries to vectors) Note: You’ll need to configure OpenAI credentials for this node Set up Setting up this workflow is easy and only takes around 10 minutes. Prerequisites A Couchbase Cluster running the Search Service, and corresponding database access credentials Be sure the Couchbase cluster allows the incoming IP address for n8n Create a Vector Search Index using this index definition Create a bucket (called travel-agent), scope (called vectors), and collection (called points-of-interest) in your Cluster OpenAI API Key Gemini API Key Steps Configure all necessary credentials (Couchbase, OpenAI, and Gemini) Select your bucket, scope, and collection for each of the Couchbase vector nodes Ingest data, either using the cURL statements found on the sticky note within the workflow, or using this shell script to ingest 6 points of interest Open the chat and test out your travel agent! Customization and Next Steps This workflow template can be made more robust by enhancing the data model to include more information about each point of interest. For example, the addition of price ranges, ideal seasons to visit, activity types, and accomodation options can help inform the LLM further about each destination, and in turn allow it to provide a more tailored response and be more helpful for travel planning. Alternatively, the data model could be entirely re-configured to suit a wide variety of other use cases. This template can serve as a building block for all sorts of AI Agent applications using RAG and is not limited to only travel recommendations.
by Davide
This workflow builds a conversational AI chatbot agent using Claude 3.7 Sonnet model with the new . It enhances standard LLM capabilities with Anthropic’s features: Web Search and Think: Real-time web search**, to answer up-to-date factual queries. A “Think” function, to support internal reasoning and memory-like behavior by Anthropic. A memory buffer, allowing the agent to maintain conversation history. A system prompt defining clear ethical, functional, and formatting rules for interaction. When a user sends a message (trigger), the chatbot evaluates the query, optionally performs a web search if needed, processes the result using Claude, and responds accordingly. ✅ Advantages 🧠 Enhanced Reasoning Abilities** The Think tool allows the agent to simulate deep thought processes or contextual memory storage, improving conversational intelligence. 🌐 Real-Time Knowledge via Web Search** The integrated web_search tool enables the agent to fetch the latest information from the internet, making it ideal for dynamic or news-driven use cases. 🧾 Contextual Responses with Memory Buffer** The inclusion of a memory buffer allows the agent to maintain state across messages, improving dialogue flow and continuity. 🛡️ Built-in Ethical Guidelines** The system prompt enforces privacy, factual integrity, neutrality, and ethical response generation, making the agent safe for public or enterprise use. How It Works Chat Trigger: The workflow begins when a chat message is received via a webhook. This triggers the AI Agent to process the user's query. AI Agent Processing: The AI Agent analyzes the query to determine if it requires information from the website or external sources. It follows a structured approach: For website-related queries, it uses the provided context. For external information, it employs the web_search tool to fetch up-to-date data from the internet. The Think tool is used for internal reasoning or caching thoughts without altering data. Language Model: The Anthropic Chat Model (Claude 3.7 Sonnet) generates responses based on the analyzed query, incorporating website context or web search results. Memory: A simple memory buffer retains context from previous interactions to maintain continuity in conversations. Output: The final response is delivered to the user, excluding internal processes like web searches or reasoning steps. Set Up Steps Configure Nodes: Chat Trigger: Set up the webhook to receive user messages. AI Agent: Define the system message and rules for handling queries. Anthropic Chat Model: Select the Claude 3.7 Sonnet model and configure parameters like maxTokensToSample. Memory: Initialize the memory buffer to store conversation context. Tools: web_search: Configure the HTTP request to the Anthropic API for web searches, including headers and authentication. Think: Set up the tool for internal reasoning. Connect Nodes: Link the Chat Trigger to the AI Agent. Connect the Anthropic Chat Model, Memory, and Tools (web_search and Think) to the AI Agent. Credentials: Ensure the Anthropic API credentials are correctly configured for both the chat model and the web_search tool. Need help customizing? Contact me for consulting and support or add me on Linkedin.
by Varritech
Workflow: Publish to Contentful with Rich Text Formatting ⚡ About the Creators This workflow was created by Varritech Technologies, an innovative agency that leverages AI to engineer, design, and deliver software development projects 500% faster than traditional agencies. Based in New York City, we specialize in custom software development, web applications, and digital transformation solutions. If you need assistance implementing this workflow or have questions about content management solutions, please reach out to our team. 🏗️ Architecture Overview This workflow takes a JSON article payload, splits its markdown content into logical chunks, converts each chunk into Contentful Rich Text JSON via an AI agent, merges the resulting rich text nodes back into a single document, formats the entire entry according to Contentful's field schema, and finally publishes it to Contentful. Trigger → Executes when called by another workflow Split by Headings → Breaks markdown into ##-delimited chunks Markdown → Rich Text → AI agent converts each chunk to Contentful Rich Text JSON Combine Rich Text Objects → Aggregates all chunk outputs into one document Format Entry → Wraps metadata and rich-text content into Contentful schema Publish Entry → HTTP POST to Contentful API 📦 Node-by-Node Breakdown flowchart LR A[When Executed by Another Workflow] --> B[Split by Headings] B --> C[Markdown to Contentful format] C --> D[Combine Rich Text Objects] D --> E[Merge1] E --> F[Format1] F --> G[Create newly formatted Contentful Entry] 1. When Executed by Another Workflow Type: Execute Workflow Trigger Input Example: title, slug, category.id, description, keywords, content, metaTitle, metaDescription, readingTime, difficulty Purpose: Receives the JSON payload from the upstream workflow. 2. Split by Headings Type: Code Logic: Splits input.content into an array of markdown chunks at each second-level heading (##). Emits one item per chunk with index, slug, title, and contentChunk. 3. Markdown to Contentful format Type: LangChain Agent (+ OpenAI Chat model) System Prompt: Defines rules for generating valid Contentful Rich Text JSON (must include nodeType, data:{}, content:[], etc.). Provides examples for paragraphs, headings, lists, links, and images. User Prompt: Here is the markdown content to convert: Purpose: Converts each markdown chunk into an array of rich-text nodes. 4. Combine Rich Text Objects Type: Code Logic: Parses and merges all content arrays returned by the AI agent into one combined content array under a document root. 5. Merge1 Type: Merge Purpose: Joins the original item (with metadata) and the combined rich-text document into a single data stream. 6. Format1 Type: Code Logic: Maps workflow data into the Contentful entry schema by setting each field (title, slug, category link, description, keywords, rich-text content, metaTitle, metaDescription, readingTime, difficulty) under the appropriate locale and structure required by Contentful. 7. Create newly formatted Contentful Entry Type: HTTP Request Method: POST URL: https://api.contentful.com/spaces Headers: Authorization: Bearer token for Contentful Management API Content-Type: application/vnd.contentful.management.v1+json X-Contentful-Version: entry version number X-Contentful-Content-Type: content type ID Body: The formatted fields object produced by the previous node Purpose: Publishes the new entry with rich-text content to Contentful. 🔍 Design Rationale & Best Practices Chunked Conversion Splitting by headings prevents AI context limits and keeps conversions modular. Strict Rich Text Schema Enforcing nodeType, data, and content structure avoids validation errors on Contentful. Two-Phase Merge Separating "combine AI outputs" and "format entry" keeps transformations clear and testable. Idempotent Publish Uses explicit versioning and content type headers to ensure correct entry creation.
by LukaszB
n8n Workflow Backup to Google Drive – Automated Export of All Your Workflows This workflow is designed to automatically create backups of all your workflows in n8n and store them as individual .json files in Google Drive. It's a fully automated system that helps developers, agencies, or automation teams ensure their automation logic is always safe, versioned, and ready to restore or share. What is this for? If you’re building and managing multiple automations inside n8n, losing a workflow due to accidental deletion or misconfiguration can cost you hours of work. This template solves that by exporting all your workflows into separate files and storing them in a dated Google Drive folder. It helps with disaster recovery, version tracking, and team collaboration — without any manual exporting. How this works: -Once triggered (manually or via a schedule), the workflow performs the following steps: -Creates a new folder in your Google Drive, named with today’s date (e.g. “Workflow Backups Monday 16-05-2025”). -Connects to your n8n instance using the internal API and retrieves a list of all existing workflows. -Iterates over each workflow, converts it into a .json file using the built-in file conversion node. -Uploads each individual .json file to the newly created folder in Google Drive. -Optionally, the workflow finds and deletes old backup folders to keep your Google Drive clean and avoid clutter. You get a clean, timestamped folder with all your flows — ready to restore, send, or store securely. You can trigger it manually or schedule it (e.g., to run weekly on Monday mornings). How to set it up: Import the provided workflow JSON into your n8n instance. Set up your credentials: -Replace the placeholder “Google demo” with your actual Google Drive OAuth2 credentials in all Google Drive nodes. -Replace the placeholder “n8n demo” with your n8n API credentials so the workflow can fetch your flows. -Go to the node “Create new folder” and replace the folder ID with your own destination folder in Google Drive where backups should be stored. -(Optional) Enable the “Schedule Trigger” to run the backup automatically once a week or on your preferred interval. You’re ready to go — test it with the Manual Trigger first and check your Google Drive for results.
by Akhil Varma Gadiraju
Bulk Contact Deletion from HubSpot via Uploaded Excel / CSV File This workflow allows you to automate the deletion of HubSpot contacts based on email addresses provided in an uploaded Excel (.xlsx) file. It's ideal for bulk-cleaning outdated or invalid contact data. ✅ Prerequisites Before using this workflow, ensure you have the following: A valid HubSpot App Token with permissions to search and delete contacts. An Excel (.xlsx) file with a column labeled emails containing the contact emails to be deleted. n8n self-hosted or cloud environment with: Webhook node enabled and accessible. HubSpot node credentials configured. Basic familiarity with n8n node configuration for custom adjustments (optional). 📃Sample Document Download 🧠 n8n Workflow: Delete HubSpot Contacts from an Uploaded Excel File This n8n workflow allows you to upload an Excel file containing contact email addresses. It will check each one in HubSpot and delete the contact if it exists. 🔗 Workflow Overview 📥 1. Trigger via Webhook (POST) The workflow starts when a .xlsx file is uploaded via an HTTP POST request to the webhook. This Excel file should contain a column with contact email addresses. 📄 2. Extract Data from Excel The uploaded file is parsed, and its rows are converted into structured JSON items, making each email address available for further processing. 🧹 3. Normalize Data The data is cleaned and normalized — for example, mapping column headers (e.g., emails) into a standard email field, ensuring consistent downstream logic. 🔁 4. Loop Through Contacts Each row (contact) is processed individually using batch looping. This allows for fine-grained error handling and sequential processing. 🔎 5. Search for Contact in HubSpot For each contact, a search query is made in HubSpot based on the email address. The workflow only fetches the first result (if any). 🧪 6. Check if Contact Exists An IF condition checks whether the contact was found (i.e., if a HubSpot contact ID exists): ✅ Yes → proceed to delete the contact. ❌ No → skip deletion and continue to the next. 🗑️ 7. Delete Contact If a contact exists, it is deleted from HubSpot using its internal contact ID. 🛠️ 8. Optional Placeholder for Post-Processing A placeholder node named “Replace Me” is included for any custom logic you may want to add after the deletion step, such as: Logging Notifications Writing to external storage ✅ Use Cases Bulk delete old or bounced email addresses from HubSpot. Clean up contacts based on external suppression lists. Automate regular CRM hygiene processes. 💡 Suggested Enhancements ✍️ Log results to Google Sheets or a database 📬 Send completion report via email or Slack 🔁 Add retry logic for temporary API failures 🔍 Validate email format before making requests 📎 Requirements n8n (self-hosted or cloud) HubSpot App Token (set up in n8n credentials) Excel file (.xlsx) with a column for email 📦 Files No external files are required. All logic is contained within the n8n workflow. 🚀 Getting Started Deploy the workflow in n8n. Copy the webhook URL and use it in your app or API client (like Postman). Upload an Excel file containing contact emails via POST request. Watch as it searches and deletes matches in HubSpot.