by n8n Team
This is an example workflow that imports an XML file into an SQL database. The ReadBinaryFiles node loads the XML file from the server. Then the Code node extracts the file content from the binary buffer. Afterwards, an XML node converts the XML string into a JSON structure. Finally, in the MySQL node inserts the data records into the SQL table. In the upper part of the workflow there is another MySQL node that is disabled. This node creates a new table with all the required variables based on the sample SQL database: https://www.mysqltutorial.org/mysql-sample-database.aspx
by David w/ SimpleGrow
Receive Webhook Notification The workflow starts when a webhook receives a POST request from Whapi, notifying that a new participant has joined a WhatsApp group. Filter the Event The workflow checks two conditions: The event is for the correct WhatsApp group (matching the specific group ID). The action type is "add" (meaning a user was added to the group). Send Welcome Message If both conditions are met, the workflow sends a personalized welcome message to the new participant via Whapi. The message explains the group rules and how the user can earn points and participate in weekly raffles. Create Airtable Record After sending the welcome message, the workflow creates a new record in the Airtable database for the new participant. The record includes: The participant’s WhatsApp ID An initial engagement count of 100 points The date of the last interaction (set to today) Result Every new group member is automatically welcomed and registered in your engagement database with starter points, ready to participate in your group’s activities and rewards. This workflow ensures new users are greeted, informed, and instantly included in your engagement tracking system.
by Dataki
This workflow enriches new Pipedrive organization's data by adding a note to the organization object in Pipedrive. It assumes there is a custom "website" field in your Pipedrive setup, as data will be scraped from this website to generate a note using OpenAI. Then, a notification is sent in Slack. ⚠️ Disclaimer This workflow uses a scraping API. Before using it, ensure you comply with the regulations regarding web scraping in your country or state. Important Notes The OpenAI model used is GPT-4o, chosen for its large input token capacity. However, it is not the cheapest model if cost is very important to you. The system prompt in the OpenAI Node generates output with relevant information, but feel free to improve or modify it according to your needs. How It Works Node 1: Pipedrive Trigger - An Organization is Created This is the trigger of the workflow. When an organization object is created in Pipedrive, this node is triggered and retrieves the data. Make sure you have a "website" custom field in Pipedrive (the name of the field in the n8n node will appear as a random ID and not with the Pipedrive custom field name). Node 2: ScrapingBee - Get Organization's Website's Homepage Content This node scrapes the content from the URL of the website associated with the Pipedrive Organization created in Node 1. The workflow uses the ScrapingBee API, but you can use any preferred API or simply the HTTP request node in n8n. Node 3: OpenAI - Message GPT-4o with Scraped Data This node sends HTML-scraped data from the previous node to the OpenAI GPT-4o model. The system prompt instructs the model to extract company data, such as products or services offered and competitors (if known by the model), and format it as HTML for optimal use in a Pipedrive Note. Node 4: Pipedrive - Create a Note with OpenAI Output This node adds a Note to the Organization created in Pipedrive using the OpenAI node output. The Note will include the company description, target market, selling products, and competitors (if GPT-4o was able to determine them). Node 5 & 6: HTML To Markdown & Code - Markdown to Slack Markdown These two nodes format the HTML output to Slack Markdown. The Note created in Pipedrive is in HTML format, as specified by the System Prompt of the OpenAI Node. To send it to Slack, it needs to be converted to Markdown and then to Slack Markdown. Node 7: Slack - Notify This node sends a message in Slack containing the Pipedrive Organization Note created with this workflow.
by n8n Team
This automated workflow takes a Typeform form, and once it is filled out, it is automatically uploaded as a Lead in Pipedrive. There is an option for custom fields (this workflow works with company size), and leaves notes in the note section based on questions answered. Prerequisites Typeform account and Typeform credentials and a form for people to fill out Pipedrive account and Pipedrive credentials Nodes Typeform node gets the data after the survey is completed Set node extracts data from the Typeform node and keeps only relevant data Function node maps the company size Pipedrive node populates a pipeline with a deal and adds custom fields
by Fernanda Silva
Workflow Description Your workflow is an intelligent chatbot, using ++OpenAI assistant++, integrated with a backend that supports WhatsApp Business, designed to handle various use cases such as sales and customer support. Below is a breakdown of its functionality and key components: Workflow Structure and Functionality Chat Input (Chat Trigger) The flow starts by receiving messages from customers via WhatsApp Business. Collects basic information, such as session_id, to organize interactions. Condition Check (If Node) Checks if additional customer data (e.g., name, age, dependents) is sent along with the message. If additional data is present, a customized prompt is generated, which includes this information. The prompt specifies that this data is for the assistant's awareness and doesn’t require a response. Data Preparation (Edit Fields Nodes) Formats customer data and the interaction details to be processed by the AI assistant. Compiles the customer data and their query into a single text block. AI Responses (OpenAI Nodes) The assistant’s prompt is carefully designed to guide the AI in providing accurate and relevant responses based on the customer’s query and data provided. Prompts describe the available functionalities, including which APIs to call and their specific purposes, helping to prevent “hallucinated” or irrelevant responses. Memory and Context (Postgres Chat Memory) Stores context and messages in continuous sessions using a database, ensuring the chatbot maintains conversation history. API Calls The workflow allows the use of APIs with any endpoints you choose, depending on your specific use case. This flexibility enables integration with various services tailored to your needs. The OpenAI assistant understands JSON structures, and you can define in the prompt how the responses should be formatted. This allows you to structure responses neatly for the client, ensuring clarity and professionalism. Make sure to describe the purpose of each endpoint in the assistant’s prompt to help guide the AI and prevent misinterpretation. Customer Response Delivery After processing and querying APIs, the generated response is sent to the backend and ultimately delivered to the customer through WhatsApp Business. Best Practices Implemented Preventing Hallucinations** Every API has a clear description in its prompt, ensuring the AI understands its intended use case. Versatile Functionality** The chatbot is modular and flexible, capable of handling both sales and general customer inquiries. Context Persistence** By utilizing persistent memory, the flow maintains continuous interaction context, which is crucial for longer conversations or follow-up queries. Additional Recommendations Include practical examples in the assistant’s prompt, such as frequently asked questions or decision-making flows based on API calls. Ensure all responses align with the customer’s objectives (e.g., making a purchase or resolving technical queries). Log interactions in detail for future analysis and workflow optimization. This workflow provides a solid foundation for a robust and multifunctional virtual assistant 🚀
by Ron
This flow monitors a file for changes of its content. If changed, an alert is sent out and you receive it as push, SMS or voice call on SIGNL4. User cases: Log-file monitoring Monitoring of production data Integration with third-party systems via file interface Etc. Sample file "alert-data.json": { "Body": "Alert in building A2.", "Done": false, "eventId": "2518088743722201372_4ee5617b-2731-4d38-8e16-e4148b8fb8a0" } Body: The alert text to be sent. Done: If false this is a new alert. If true this indicated the alert has been closed. eventId: Last SIGNL4 event ID written by SIGNL4. This flow can be easily adapted for database monitoring as well.
by WeblineIndia
This n8n workflow automates the process of converting a newly stored PDF file from Google Drive into an HTML file and saving it back to Google Drive. The workflow is triggered whenever a new PDF is uploaded to a specific folder, ensuring seamless conversion and storage without any manual intervention. This workflow provides an efficient, automated solution for converting PDFs to HTML, eliminating the need for manual file handling and ensuring a smooth document transformation process. It is particularly useful for scenarios where PDFs need to be dynamically converted and stored in an organised manner for web usage, archiving, or further processing. Prerequisites : Before setting up this workflow, ensure the following: PDF.co API Key: Sign up at PDF.co and obtain an API key for PDF to HTML conversion. Proper Authentication: Ensure authentication is configured for Google Drive in n8n. Customisation Options : Modify the API request to convert PDFs to other formats like Text, CSV, or XML. Extend the IF Node to reject files based on size or other properties. Send a notification once the conversion is complete using an Email or Telegram Node. Steps : Step 1: Google Drive Trigger Node (Watch for New Files) Click "Add Node" and search for Google Drive. Select "Google Drive Trigger" and add it to the workflow. Authenticate with your Google Account. Select the folder to monitor. Set the trigger to activate whenever a new file is added. Click "Execute Node" to test. Click "Save". Step 2: IF Node (Check if File is a PDF) Click "Add Node" and search for IF. Add a condition to check if the file extension is .pdf If true → Send the file to the next step. If false → Stop the workflow. Click "Execute Node" to test. Click "Save". Step 3: HTTP Request Node (Convert PDF to HTML) Click "Add Node" and search for HTTP Request. Set the Method to POST. Enter the PDF.co API endpoint for PDF to HTML conversion. In the Headers, add API key which we have get from pdf.co Send the binary PDF data as the request body. Click "Execute Node" to test. Click "Save". Step 4: Function Node (Convert Response to Binary) Click "Add Node" and search for Function. Write a JavaScript function to transform the API response into a binary file. Click "Execute Node" to test. Click "Save". Step 5: Google Drive Node (Save Converted HTML File) Click "Add Node" and search for Google Drive. Select "Upload File" as the action. Authenticate with your Google Account. Set the destination folder for storing the HTML file. Map the binary data from the Function Node. Click "Execute Node" to test. Click "Save". Step 6: Connect & Test the Workflow Link the nodes in this order (Google Drive Trigger → IF Node → HTTP Request → Function Node → Google Drive Upload) Run the workflow manually. Upload a test PDF to Google Drive. Check Google Drive for the converted HTML file. Who’s behind this? WeblineIndia’s AI development team. We've delivered 3500+ software projects across 25+ countries since 1999. From no-code automations to complex AI systems — our AI team builds tools that drive results. Looking to hire AI developers? Start with us.
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 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 Yaron Been
0xdino Cyberrealistic Pony V125 AI Generator Description None Overview This n8n workflow integrates with the Replicate API to use the 0xdino/cyberrealistic-pony-v125 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 Optional Parameters cfg** (number, default: 4): CFG scale seed** (integer, default: 0): Random seed (0 = random) steps** (integer, default: 40): Sampling steps width** (integer, default: 768): Image width height** (integer, default: 1152): Image height prompt** (string, default: score_9, score_8_up, score_7_up, super-detailed fashion portrait of a young woman in ripped denim shorts and ribbed tank top, colorful accessories, RAW photography style, soft cinematic lighting, dramatic shadows across her face and body, brown hair gently tousled, (fine-art editorial atmosphere), moody tone, high-resolution textures and rich natural detail, solo subject): Positive prompt denoise** (number, default: 0.98): Denoise strength scheduler** (string, default: karras): Scheduler type facerestore** (boolean, default: True): Enable face restoration sampler_name** (string, default: dpmpp_3m_sde): Sampler name 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: 0xdino/cyberrealistic-pony-v125 API Endpoint: https://api.replicate.com/v1/predictions Requirements Replicate API key n8n instance Basic understanding of other generation parameters
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 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.