by Aitor | 1Node
Stay ahead of the curve and keep your followers informed—automatically. This n8n workflow uses Perplexity AI to generate insightful answers to scheduled queries, then auto-posts the responses directly to X (Twitter). ⚙️ What this workflow does Scheduled Trigger – Runs at set times (daily, hourly, etc.). searchQuery – Define what kind of trending or relevant insight you want (e.g. “latest AI trends”). set API Key – Securely insert your Perplexity API key. Perplexity API Call – Fetches a short, insightful response to your query. Post to X – Automatically publishes the result as a tweet. 🧩 Requirements An n8n account (self-hosted or cloud) A Perplexity API key A connected X (Twitter) account via n8n’s credentials ✅ Setup Steps Add this workflow into your n8n account. Edit the searchQuery node with a topic (e.g. “What’s new in ecommerce automation?”). Paste your Perplexity API key into the set API key node. Connect your X (Twitter) account in the final node. Adjust the schedule timing to suit your content frequency. 💡 Ideas to Improve 💬 Add a formatting step to shorten or hashtag the response. 📊 Pull multiple trending questions and auto-schedule posts. 🔁 Loop responses to queue a full week of content. 🌐 Translate content before posting to reach a global audience. 🆘 Need help? Feel free to contact us at 1 Node. Get instant access to a library of free resources we created.
by Jakkrapat Ampring
Description This workflow automatically generates personalized certificates in Google Slides and emails them to respondents only if they meet a minimum score threshold, using data submitted via Google Forms (stored in Google Sheets). Ideal for: Online courses Quizzes and workshops Event participation certificates Sheet Requirements Your connected Google Sheet (from the Google Form) must contain: Full Name – The name to appear on the certificate. Email – Recipient’s email address. Score – The test/quiz score used for threshold logic. Setup Instructions Connect Google Sheets – Make sure your Form responses are linked to a Sheet with the columns mentioned above. Set Score Threshold – Modify the If node to your desired minimum score (e.g., >= 80). Customize Certificate Template – Use a Google Slides file with text placeholders like {{Full Name}}. Connect Gmail & Google Drive – For sending emails and saving generated certificates. Update File IDs – Replace any placeholder Slide and Drive file IDs with your own. Services Used Google Sheets (Form responses) Google Slides (Certificate template) Google Drive (Storage) Gmail (Email delivery) Troubleshooting Issue: "Cannot read property 'Score'" → Ensure your column names match exactly (Score, Full Name, etc.). Slides not replacing placeholders → Double-check placeholder format ({{Full Name}}) and capitalization. Emails not sending → Verify Gmail authentication and make sure the If node is correctly filtering results.
by Chris Carr
Use Case When creating chatbots that interface through applications such as Telegram and WhatsApp, users can often sends multiple shorter messages in quick succession, in place of a single, longer message. This workflow accounts for this behaviour. What it Does This workflow allows users to send several messages in quick succession, treating them as one coherent conversation instead of separate messages requiring individual responses. How it Works When messages arrive, they are stored in a Supabase PostgreSQL table The system waits briefly to see if additional messages arrive If no new messages arrive within the waiting period, all queued messages are: Combined and processed as a single conversation Responded to with one unified reply Deleted from the queue Setup Create a table in Supabase called message_queue. It needs to have the following columns: user_id (uint8), message (text), and message_id (uint8) Add your Telegram, Supabase, OpenAI, and PostgreSQL credentials Activate the workflow and test by sending multiple messages the Telegram bot in one go Wait ten seconds after which you will receive a single reply to all of your messages How to Modify it to Your Needs Change the value of Wait Amount in the Wait 10 Seconds node in order to to modify the buffering window Add a System Message to the AI Agent to tailor it to your specific use case Replace the OpenAI sub-node to use a different language model
by David
Who might benfit from this workflow? Everyone organizing him/herself by using a notion database for tasks but losing track on some important tasks having a deadline. The weekly reminder helps you to not forget about your notion tasks. How it works: The workflow fetches all your notion tasks from a desired database but the closed ones It generates a html template for each tasks containing a headline and a short list of key data (prio, status deadline, tags) It creates two groups based on the deadline date if a task is already overdue or not It generates a complete html email containing both groups and some sugar around them It sends the email to your desired email It uses Pushover to send you a push notification to your phone It is scheduled by the beginning of each week How to set it up: Fill out the "Set Workflow vars" node with your data Connect your notion account and select the database your tasks are stored at define the status filters to the ones you are using for your tasks Setup your email server to enable the email node to deliver your html email Create a Pushover account and setup the authentication for the Pushover node Adjust the last html node to change email style for your desire How to customize this workflow for your needs? You might adjust the filtering of the notion fetch node to filter for other statuses than provided in the example. You apply your custom design to the html email You could remove the filter which is filtering for tasks having a deadline and just send yourself a reminder for all tasks 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)
by Jay Hartley
Release yourself from the pain of user login with this simple solution! Who this is for This is for everyone that wants to provide a simple login solution to their users/colleagues What this template does This workflow utilizes Auth0 to provide a simple and easy authentication page that allows login via gmail or any email address. Setup To use this workflow, simply sign up at https://auth0.com and create a new Single Page Application, then from Dashboard/Applications, copy the values as instructed in the workflow. It should not take more than ten minutes to setup. First, go to https://auth0.com and create a Single Page Application. From Dashboard/Applications, click on your new app settings. The first step is to add the following to allowed callback URLs: http://localhost:5678, http://localhost:5678/webhook/receive-token (If you do not run n8n locally, replace localhost with your server where you run n8n. You must also replace it in Set Application Details 'my_server' field) From the same settings page, retrieve the Domain, Client_ID, and Client_Secret of your application. Fill in Set Application Details and Set Application Details1 Login from https:///webhook/login! It can also be extended to allow login via Github, Facebook, and other socials.
by Oskar
This workflow uses OpenAI Assistant to compose draft replies for labeled email messages. It automatically connects the drafts to Gmail threads. 💡 You can add knowledge base to your OpenAI Assistant and make your reply drafts very customized (e.g. compose response with product information in response to inquiry from customer). 🎬 See this workflow in action in my YouTube video about automating Gmail. How it works? The workflow is triggered at regular intervals (default: every 1 minute – you can change this value) to check for messages with a specific label (e.g., "AI"). The content of the retrieved email message is then forwarded to the OpenAI Assistant node, and a reply draft is generated. Next, the response from the Assistant is converted to HTML, and a raw message in RFC standard is composed. 💡 You can learn more about composing drafts with the Gmail API in the official Google documentation. The raw email message (reply draft) is encoded and attached to the original thread ID. Finally, the trigger label (in this case: "AI") is removed to prevent the workflow from looping. Set up steps Set credentials for Gmail and OpenAI. Add new label in Gmail account for messages that should be handled by the workflow (e.g. name it "AI"). Select this label in the first and last Gmail nodes in workflow. Create and configure your OpenAI Assistant. Select your assistant in "OpenAI Assistant" node. Optionally: change trigger interval (by default interval is 1 minute). If you like this workflow, please subscribe to my YouTube channel and/or my newsletter.
by Miquel Colomer
This n8n workflow template uses uProc's "Get Email by Domain, Firstname and Lastname" tool to discover a professional email address, and then sends that email to a Telegram channel. > ⚠️ Note: You must set up your *uProc credentials (Email + API Key)* from the *Integration settings* before running this workflow. 🚀 What It Does Uses user-provided data: first name, last name, and company domain Calls uProc to discover the most likely email address for that person Sends the discovered email and confidence level to a Telegram group 🛠️ Step-by-Step Setup Add uProc Credentials Go to the uProc integration page and copy your email and API key. Add them as credentials in your n8n instance. Set Tool Parameters Use the Set node to define: firstname: First name of the person lastname: Last name of the person domain: Their company domain Replace the Set Node (Optional) You can dynamically fetch the firstname, lastname, and domain from other sources like: Google Sheets MySQL or Postgres Webhook or Form submissions Run the Workflow Trigger the flow manually or integrate it with a larger automation. 🔍 uProc Parameters Explained domain**: The company domain (e.g., uproc.io) firstname**: First name of the person lastname** (in parameter: language): Last name of the person mode**: verify: Verifies email in real-time with mail server guess: Guesses based on company format (e.g., firstname.lastname@domain.com) 📦 uProc Response Fields email: Discovered email address confidence: Indicates if the result is verified or risky (e.g., catch-all) score: Reliability score from 0 (unreliable) to 99 (highly reliable) 📬 Notification via Telegram After discovering the email, the result is sent to a specified Telegram channel with this format: User Miquel Colomer has next email on uproc.io: contact@uproc.io (verified - 99) Clicking the email allows you to send a message directly to the recipient. 🔐 Credentials Used uProc API** – For discovering email addresses Telegram API** – To send messages to a specific group/channel ✨ Customization Tips Loop over a list of people**: Replace the set node with a data source that contains multiple people. Filter by score or confidence** before sending. Add additional outputs**: You can send the data via Email, Slack, or save it to a database. Trigger automatically**: Combine with a webhook or time-based trigger for automation. ❓Questions? Template created by Miquel Colomer and n8nhackers.com. Need help customizing or deploying? Contact us for consulting and support.
by Łukasz
Who is it for If you are a postmaster or you manage email server, you can set up DKIM and SPF records to ensure that spoofing your email address is hard. On your domain you can also set up DMARC record to receive XML reports from email providers (rua tag). Those reports contain data if email they received passed DKIM and SPF verifications. Since DMARC email is public, you will receive a lot of emails from email providers, not only if DKIM/SPF fail. There is no need for it - you probably only need to know if SPF/DKIM failed. So this script is intended to automatically parse all DMARC reports that come from email providers, but ONLY send you notification if SPF or DKIM failed - meaning that either someone tries to spoof your email or your DKIM/SPF is improperly set up. How it works script monitors postmaster email for DMARC reprots (rua) unpacks report and parses XML into JSON maps JSON and formats fields for MySQL/MariaDB input inputs into database sends notification on DKIM or SPF failure Remember to set up email input mailbox notification channels for slack for email
by Marcel Claus-Ahrens
Instructions This automation streamlines the process of collecting user information using a Form Node, enabling individuals to join a waitlist managed via Google Sheets. It also generates a verification code, prompting users to input this code in the Second Form Step. If the code is _nvalid, the workflow keeps the user in a verification loop until a valid code is entered. Once a valid code is provided, the workflow proceeds to the final step, where additional information can be collected. All entered data and intermediate states are securely stored in the Google Sheet. Structure of the GoogleSheet Firstname | Lastname | Email | Company | Verification-Code | Verified | Intended Use Marcel | Claus-Ahrens | foo[at]bar| foobar | abc123 | TRUE | Just testing Setup Set Up a Google Sheet: Create a Google Sheet with the specified columns, or customize them to suit your needs. Verify the "Send Mail" Node: Ensure your "Send Mail" node is functional, or replace it with another email-sending node. Customize Texts and Fields: Update email content, form texts, and form fields to align with your specific use case. Done! Enjoy the workflow! ❤️ let the workf low — Workflow Automation & Development
by Eric
Use case Instead of this: https://us06web.zoom.us/j/83456429326?pwd=1hVesbyHCsOfstyVU3z4CR6D46A8K.1 share this: mydomain.com/meet-me Do you ever wish you had one, simple URL that you can share with people to hop on a Zoom meeting? 😃 You could waste time: 👎👎 creating a recurring Zoom meeting 😫 saving the link somewhere 😵💫 finding it, copying it each time you need it 😭 sharing an ugly long link with everyone 🤢 Or... You could create a 🌹 beautiful link using your own domain/website that redirects to your Zoom meeting, and share that beautified URL with everyone. 😌 And it will be easy for you to remember 💡 > NOTE Zoom now forces a one-year max lifetime on recurring videos. 😐 So I created this simple workflow to solve a few headaches. ☺️ What this workflow does Triggers once, annually (360 days) Creates a new, recurring meeting in Zoom Updates a redirect script with the new Zoom URL on a Wordpress Page Notifies you in a Slack channel What this workflow lacks in breakthrough innovation, it makes up for with usefulness and peace of mind. Have fun and make it your own! Setup Add your credentials in each node this pre-requires you have a Zoom, Wordpress and Slack account, and have gotten API access on those accounts Create a Page in Wordpress, and get its ID. (Or create a new Page in WP.) Configure node parameters according to your needs. TEST!!!! Don't ever skip this step. Ever. Set it and forget it. > NOTE You can replace the Wordpress node with another website CMS node, or generic HTTP request for a non-wordpress site. You can also remove or replace the Slack node with other notification functionality (eg. sms, whatsapp, email...) Template was created in n8n v1.58.2
by Extruct AI
Automatic lead enrichment in Slack: monitors your Slack channel for new lead emails posted there, extracts each company’s name or domain, sends it to the Extruct API for data enrichment, then posts back a structured Slack card with company name, website, LinkedIn profile, number of employees, industry, recent news, and key contacts. Who’s it for: Sales teams, SDRs, and marketing ops who capture new lead information in Slack and want instant enrichment without leaving the channel. How it works: When a lead email is posted into your designated Slack channel, the workflow: Monitors for any new message containing a company name or domain. Extracts that company identifier. Sends it to Extruct API for research. Waits for enrichment to complete. Posts back into the same Slack thread a formatted card with: Company name Website LinkedIn profile Number of employees Industry Recent news Key contacts How to set up: Sign up for Extruct AI Copy the Extruct table ID Create & install your Slack app Configure n8n credentials & channel Activate & use Requirements: Extruct account & API token Extruct table template Slack workspace with permission to install apps
by Chris Carr
Avoid Asking Redundant Questions with Dynamically Generated Forms using OpenAI Target Audience This workflow has been built for those who require a form to capture as much data as possible as well as the answers to predefined questions, whilst optimising the user experience by avoiding asking redundant questions. Use Case When creating a form to capture information, it can be useful to give the user an opportunity to input a long answer to a large, open-ended question. We then want to drill down to answer specific questions that we require the answer to. When doing this, we don't want to ask duplicate questions. This particular scenario imagines an AI consultancy capturing leads. What it Does This workflow requires users to input basic information and then answer an open ended question. The specific questions on the next page will only be those that weren't answered in the open-ended question. How it Works The open-ended question (and relevant basic information) is analysed by an LLM to determine which specific questions have not been answered. Chain-of-thought reasoning is utilised and the output structure is specified with the Structured Output Parser. Those questions that have already been answered are filtered out nodes. The remaining items are then used to generate the last page of the form. Once the user has filled in the final page of the form, they are shown a form completion page. Setup Add your OpenAI credentials Go to the Get Basic Information node and click Test Step Complete the form to test the generic use case Modify the prompt in Analyse Response to fit your use case Next Steps Add additional nodes to send an email to the form owner Add a subsequent LLM call to analyse the form response - those that are qualified should be given the opportunity to book an appointment