by Miquel Colomer
Do you want to know where a web visitor lives? This workflow enriches any lead by IP address using the uProc.io Location By IP address tool and sends an email in Spanish or English depending on the detected web visitor country. You need to add your credentials (Email and API Key - real -) located at Integration section to n8n. Node "Create IP and Email Item" can be replaced by any other supported service with IP and Email values, like Mailchimp, Calendly, or MySQL. The "uProc" node returns the location of the provided IP address. "If" node checks if the web visitor country code belongs to Spain (ES Isocode). If positive, we use the Spanish language in our emails. Otherwise, we will use the English language in our communications. Depending on the detected country code, we use the Amazon SES node to send the customized email adapted to the right language.
by Yulia
This n8n workflow was developed to collect and summarize feedback from an event that was collected via a Google Form and saved in a Google Sheets document. The workflow is triggered manually by clicking on the "Test workflow" button. The Google Sheets node retrieves the responses from the feedback form. The Aggregate node then combines all responses for each question into arrays and prepares the data for analysis. The OpenAI node processes the aggregated feedback data. System Prompt instructs the model to analyze the responses and generate a summary report that includes the overall sentiment regarding the event and constructive suggestions for improvement. The Markdown node converts the summary report, which is in Markdown format, into HTML. Finally, the Gmail node sends an HTML-formatted email to the specified email address.
by Emmanuel Bernard
🎉 Do you want to master AI automation, so you can save time and build cool stuff? I’ve created a welcoming Skool community for non-technical yet resourceful learners. 👉🏻 Join the AI Atelier 👈🏻 This is probably the most straightforward way to schedule your tweets. This n8n workflow addresses a simple problem: how to maintain consistency in your publications on X. 📋 Blog post 📺 Youtube Video The workflow is direct and to the point. In a Google spreadsheet, write all your tweets, one tweet per line. Then, at a defined pace (for example, every 6 hours), the workflow will publish the first tweet from the list on your X account and remove it from the sheet. This method is really simple but very efficient if you are looking for a direct and super fast solution to share regularly on X! Created by the n8ninja.
by Marcel Claus-Ahrens
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
by ConvertAPI
Who is this for? For developers and organizations that need to convert HTML files to PDF. What problem is this workflow solving? The file format conversion problem. What this workflow does Converts HTML to file. Converts the HTML file to PDF. Stores the PDF file in the local file system. How to customize this workflow to your needs Open the HTTP Request node. Adjust the URL parameter (all endpoints can be found here). Add your secret to the Query Auth account parameter. Please create a ConvertAPI account to get an authentication secret. Optionally, additional Body Parameters can be added for the converter.
by Akhil Varma Gadiraju
🚀 Form-Based X/Twitter Poster (v2) A user-friendly n8n workflow that enables users to submit tweets through a simple web form — with optional image, video, or GIF uploads — and posts them to a connected X/Twitter account. Designed for ease of use, this workflow handles both media and text-only posts, providing clear feedback upon submission. 🧭 Overview Workflow Name: Form-Based X/Twitter Poster (v2) Goal: Provide a web form for users to create tweets, upload optional media, and post directly to X/Twitter. 🛠 How It Works 1. Form Submission Trigger Node:** On form submission Type:** formTrigger Purpose:** Renders a web form for tweet creation. Fields:** Post Content: Required textarea for tweet text. Media: Optional file upload (.jpg, .png, .gif, .mp4, etc.). Button:** "Submit" Output:** JSON with text and binary media (if any). 2. Extract Media Details Node:** Extract Media Details Type:** code Purpose:** Extracts tweet text, checks for media, determines media type. Output Example:** { "content": "My tweet!", "mime_type": "image/jpeg", "media_type": "IMAGE" } 3. If Media Exists Node:** If Media Exists Type:** if Purpose:** Checks whether media was uploaded. True Path:** Media was uploaded. False Path:** No media uploaded. 4. Upload Media to X/Twitter (True path only) Node:** Upload Media (X) Type:** httpRequest Purpose:** Uploads media to Twitter via API v1.1. Media Category:** TWEET_IMAGE (can be customized) Auth:** Twitter OAuth1 API Output:** Includes media_id_string 5. Post Tweet with Media (True path) Node:** X Type:** twitter Purpose:** Posts tweet with uploaded media. Auth:** Twitter OAuth2 API 6. Post Text-Only Tweet (False path) Node:** X1 Type:** twitter Purpose:** Posts tweet without media. Auth:** Twitter OAuth2 API 7. Show Confirmation Message Node:** End Form Type:** form Purpose:** Displays thank-you message post-submission. Title:** Thank you so much for sharing your experience on X! 🖤 Message:** We truly appreciate your support and are so glad we could make a positive impact. Your words mean the world to us! 🛠 How to Customize Form Fields:** Change form title, labels, help texts, or file formats. Media Logic:** Add logic for distinguishing GIF vs VIDEO. Adjust media upload URL dynamically: https://upload.twitter.com/1.1/media/upload.json?media_category={{ $json.media_type === 'VIDEO' ? 'TWEET_VIDEO' : ($json.media_type === 'GIF' ? 'TWEET_GIF' : 'TWEET_IMAGE') }} Error Handling:** Add Error Trigger nodes to catch and manage failures gracefully. Tweet Text:** Customize tweet text with extra formatting or default content. Advanced Ideas:** Schedule tweets Post to multiple accounts Add content approval steps 🔐 Required Credentials 1. Twitter OAuth1 API Used by:** Upload Media (X) Required for:** Media upload via v1.1 Credentials:** Consumer Key, Consumer Secret, Access Token, Access Token Secret Workflow Credential Name:** X OAuth - Akhil 2. Twitter OAuth2 API Used by:** X, X1 Required for:** Posting tweets Scopes:** tweet.read, tweet.write, users.read, offline.access Workflow Credential Name:** X OAuth2 - Akhil 💡 Use Cases Easy Tweet Tool:** For non-technical users to share content. Content Approval:** Internal review system before posting. Announcements:** Quickly broadcast updates. Campaign Posting:** Streamline recurring content sharing. 🧑💻 Node Naming Suggestions | Old Name | Suggested Name | |--------------------|--------------------------| | If Image Exists | If Media Exists | | X | Post Tweet with Media | | X1 | Post Text-Only Tweet | ❤️ Made with love by Akhil using n8n
by Ger Longstacks
contract input: length of the strings and number of copies output: random strings as specified. randomness determined by Crypto node (generate/base64) How to run the workflow Import the workflow into your n8n project Click the Form Trigger to specify the length of the strings and how many copies to generate The workflow runs then displays the generated random strings How to set up No additional set up is necessary to execute the workflow manually. integration Patterns of interests formTrigger node to submit a form, then use form (end) node to display results at the end of the triggered workflow. set(dup)-summarize(concatenate) to run a part of the workflow multiple times then merge the results to one piece of data
by Ron
Get weather alerts on your mobile phone via push, SMS or voice call. This flow gets weather information every morning and sends out an alert to your SIGNL4 on-call team. For example you can send out weather alerts in case of freezing temperatures, snow, rain, hail storms, hot weather, etc. The flow also supports automatic alert resolution. So, for example if the temperature goes up again the alert is closed automatically in the app. User cases: Dispatch snow removal teams Inform car dealers to protect the cars outside in case of hail storms Set sails if there are high winds And much more ... Can be adapted easily to other weather warnings, like rain, hail storm, etc.
by n8n Team
This workflow demonstrates two ways of exporting data from SQL to XML. First, several random records are received from the MySQL database. Then, in the upper part of the workflow, the structure of an XML is defined in the Set node. After that, the ItemLists node combines all items into an array. This allows an XML node to create a simple XML file. The lower part of the workflow shows how to create an XML with attributes. It is almost identical except that a $ (dollar sign) JSON key is used to define XML attributes. Finally, both files are saved locally.
by n8n Team
This workflow is designed to compare two datasets (Dataset 1 and Dataset 2) based on a common field, "fruit," and provide insights into the differences. Here are the steps: Manual Trigger: The workflow begins when a user clicks "Execute Workflow." Dataset 1: This node generates the first dataset containing information about fruits, such as apple, orange, grape, strawberry, and banana, along with their colors. Dataset 2: This node generates the second dataset, also containing information about fruits, but with some variations in color. For example, it includes a "kiwi" with the color "mostly green." Compare Datasets: The "Compare Datasets" node takes both datasets and compares them based on the "fruit" field. It identifies any differences or matches between the two datasets. In summary, this workflow is used to compare two datasets of fruits and their colors, identify differences, and provide guidance on how to explore the comparison results.
by WeblineIndia
Ensure you never miss a birthday with this automated workflow designed by WeblineIndia. It retrieves your Google Contacts, identifies birthdays happening today, and sends personalized reminders directly to a designated Slack channel. This daily automation keeps your team informed and makes birthday celebrations effortless. Steps Set Daily Schedule (Cron Node) Configure a Cron node to trigger the workflow daily at a specific time (e.g., 8 AM). This ensures the workflow runs consistently every day to check for birthdays. Retrieve Contacts (Google Contacts - Get Contact Node) Use the Google Contacts (Get Contact) node to fetch your contact list. Ensure your contacts have birthday details stored for accurate filtering. Filter Birthdays (IF Node) Add an IF Node to compare the current date with each contact’s birthday. Only contacts whose birthdays match today’s date will move to the next step. Send Birthday Notifications to Slack (Slack - Send Message Node) Use the Slack node to send a personalized birthday message to your chosen Slack channel (e.g., #general or #birthdays). Customize the message to include the contact’s name, e.g., "🎉 Today is John Doe's birthday! Let’s celebrate!" Configure the node to target a specific Slack channel for seamless notifications. Activate Workflow Save and activate the workflow. From now on, the workflow will automatically check for birthdays daily and send timely reminders to your Slack team. Outcome This hassle-free automation keeps your team engaged and ensures no birthday goes unnoticed. Celebrate special days of your contacts effortlessly and maintain meaningful connections. About WeblineIndia This workflow showcases our commitment to delivering innovative automation solutions that enhance productivity and foster better relationships. Let us help you build the AI automation tools that make a difference.
by David Ashby
What it is- Very simple connection to your Discord MCP Server and 4o. How to set it up- Just specify your MCP Server's url, select your OpenAI credential, and you're set! How to use it- You can now send a chat message to the production URL from anywhere and the actions will occur on discord! It really is that easy. Note: If you don't yet have a Discord MCP server set up, there is a template called "Discord MCP Server" to get you a jumpstart! Need help? Want access to more workflows and even live Q&A sessions with a top verified n8n creator.. All 100% free? Join the community