by n8n Team
This workflow automatically sends Zendesk tickets to Pipedrive contacts and makes them task assignees. The automation is triggered every 5 minutes, with Zendesk checking and collecting new tickets which are then individually assigned to a Pipedrive contact. Prerequisites Pipedrive account and Pipedrive credentials Zendesk account and Zendesk credentials Note: The Pipedrive and the Zendesk accounts need to be created by the same person / with the same email. How it works Cron node triggers the workflow every 5 minutes. Zendesk node collects all the tickets received after the last execution timestamp. Set node passes only the requester`s email and ID further to the Merge node. Merge by key node merges both inputs together, the tickets and their contact emails. Pipedrive node then searches for the requester. HTTP Request node gets owner information of Pipedrive contact. Set nodes keep only the requester owner's email and the agent`s email and id. Merge by key node merges the information and adds the contact owner to ticket data. Zendesk node changes the assignee to the Pipedrive contact owner or adds a note if the requester is not found. The Function Item node sets the new last execution timestamp.
by Oskar
This workflow uses AI to analyze the content of every new message in Gmail and then assigns specific labels, according to the context of the email. Default configuration of the workflow includes 3 labels: „Partnership” - email about sponsored content or cooperation, „Inquiry” - email about products, services, „Notification” - email that doesn't require response. You can add or edit labels and descriptions according to your use case. 🎬 See this workflow in action in my YouTube video about automating Gmail. How it works? Gmail trigger performs polling every minute for new messages (you can change the trigger interval according to your needs). The email content is then downloaded and forwarded to an AI chain. 💡 The prompt in the AI chain node includes instructions for applying labels according to the email content - change label names and instructions to fit your use case. Next, the workflow retrieves all labels from the Gmail account and compares them with the label names returned from the AI chain. Label IDs are aggregated and applied to processed email messages. ⚠️ Label names in the Gmail account and workflow (prompt, JSON schema) must be the same. Set up steps Set credentials for Gmail and OpenAI. Add labels to your Gmail account (e.g. „Partnership”, „Inquiry” and „Notification”). Change prompt in AI chain node (update list of label names and instructions). Change list of available labels in JSON schema in parser node. Optionally: change polling interval in Gmail trigger (by default interval is 1 minute). If you like this workflow, please subscribe to my YouTube channel and/or my newsletter.
by Pauline
This workflow automatically does the following: Scrapes comments and likes from a LinkedIn post. Adds contact data (nominative and verified email address, gender, standardized first name and last name, all legal company information). Adds these contacts to Airtable. Sends an ultra-personalized cold email sequence. Sends a Linkedin invitation after the cold email sending. Pushes all contacts to HubSpot. Prerequisites A Phantombuster account and credentials A Lemlist account and credentials A Dropcontact account and credentials A HubSpot account and credentials How it works Cron node executes the workflow every hour. Phantombuster node (Launch agent) launches the "LinkedIn Post Likers" phantom and the "LinkedIn Post Commenters" phantom. Note that you have to create these phantoms before setting your workflow automation. Phantombuster node (Get Output agent)** gets results from the previous phantoms. Dropcontact node fetches the new contact information and returns the data of the person and the company associated with the email address, job function, and all legal information. Airtable node (List) lists all the records in the Contacts table. IF node routes the workflow based on whether a contact is in Airtable. Set node sets the required data for the following nodes. Airtable node (Update)** updates the record's name. Airtable node (Append)** creates a record if the account doesn't exist yet. Lemlist node adds a contact to an existing campaign. Phantombuster node (Launch agent)** launches the "LinkedIn Network Booster" phantom. Note that you have to create these phantoms before setting your automation. Hubspot node creates or updates the contacts in the HubSpot CRM.
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 Hubschrauber
Overview This template integrates an IOT multi-button switch (meant for controlling a dimmable light) with Spotify playback functions, via MQTT messages. This isn't likely to work without some tinkering, but should be a good head start on receiving/routing IOT/MQTT messages and hooking up to a Spotify-like API. Requirements An IOT device capable of generating events that can be delivered as MQTT messages through an MQTT Broker e.g. Ikea Strybar remote An MQTT Broker to which n8n can connect and consume messages e.g. Zigbee2MQTT in HomeAssistant A Spotify developer-account (which provides access to API functions via OAuth2 authorization) A Spotify user-account (which provides access to Spotify streamed content, user settings, etc.) Setup Create an MQTT Credential item in n8n and assign it to the MQTT Trigger node Modify the MQTT trigger node to match the topic for your IOT device messages Modify the switch/router nodes to map to the message text from your IOT button (e.g. arrow_left_click, brightness_up_click, etc.) Create a Spotify developer-account (or use the login for a user-account) Create an "App" in the developer-account to represent the n8n workflow Chicken/Egg ALERT: The n8n Spotify Credentials dialog box will display the "OAuth Redirect URL" required to create the App in Spotify, but the n8n Credential item itself cannot be created until AFTER the App has been created. Create a Spotify Credentials item in n8n Open the Settings on the Spotify App to find the required Client ID and Client Secret information. ALERT: Save this before proceeding to the Connect step. Connect the n8n Spotify Credential item to the Spotify user-account ALERT: Expect n8n to open a separate OAuth2 window on authorization.spotify.com here, which may require a login to the Spotify user-account Open each of the HTTP and Spotify nodes, one by one, and re-assign to your Spotify Credential (try not to miss any). (Then, probably, upvote this feature request: https://community.n8n.io/t/select-credentials-via-expression/5150 Modify the variable values in the Globals node to match your own environment. target_spotify_playback_device_name - The name of a playback device available to the Spotify user-account favorite_playlist_name - The name of a playlist to start when one of the button actions is indicated in the MQTT message. Used in example "Custom Function 2" sequence. Notes You're on your own for getting the multi-button remote switch talking to MQTT, figuring out what the exact MQTT topic name is, and mapping the message parts to the workflow (actions, etc.). The next / previous actions are wired up to not transfer control to the target device. This alternative routing just illustrates a different behavior than the remaining actions/functions, which include activation of the target device when required. Some of the Spotify API interactions use the Spotify node in n8n, but many of the available Spotify API functions are limited or not implemented at all in the Spotify node. So, in other cases, a regular HTTP node is used with the Spotify OAuth2 API credential instead. By modifying one of the examples included in the template, it should be possible to call nearly anything the Spotify API has to offer. Spotify+n8n OAuth Mini-Tutorial Definitions The developer-account is the Spotify login for creating a spotify-app which will be associated with a client id and client secret. The user-account is the Spotify login that has permission to stream songs, set up playback devices, etc. ++A spotify-login allows access to a Spotify user-account, or a Spotify developer-account, OR BOTH++ The spotify-app, which has a client id and client secret, is an object created in the developer-account. The app-implementation (in this case, an ++n8n workflow++) uses the spotify-app's credentials (client id / client secret) to call Spotify API endpoints on behalf of a user-account. Using One Spotify Login as Both User and Developer When an n8n Spotify-node or HTTP-node (i.e. an app-implementation) calls a Spotify API endpoint, the Credentials item may be using the client id and client secret from a spotify-app, which was created in a developer-account that is ++one and the same spotify-login as the user-account++. However, it helps to remind yourself that from the Spotify API server's perspective, the developer-account + spotify-app, and the user-account, are ++two independent entities++. n8n Spotify-OAuth2-API Credential Authorization Process The 2 layers/steps, in the process of authorizing an n8n Spotify-OAuth2-API credential to make API calls, are: n8n must identify itself to Spotify as the app-implementation associated with the developer-account/spotify-app by sending the app's credentials (client id and client secret) to Spotify. The Client ID and Client Secret are supplied in the n8n Spotify OAuth2 Credentials UI/dialog-box Separately, n8n must obtain an authorization token from Spotify to represent the permissions granted by the user to execute actions (call API endpoints) on behalf of the user (i.e. access things that belong to the user-account). This authorization for the user-account access is obtained when the "Connect" or "Reconnect" button is clicked in the n8n Spotify Credentials UI/dialog-box (which pops up a separate authorization UI/browser-window managed by Spotify). The Authorization for a given spotify-app stays "registered" in the user-account until revoked. See: https://support.spotify.com/us/article/spotify-on-other-apps/ Direct Link: https://www.spotify.com/account/apps/ More than one user-account can be authorized for a given spotify-app. A particular n8n Spotify-OAuth2-API credential item appears to cache an authorization token for the user-account that was most recently authorized. Up to 25 users can be allowed access to a spotify-app in Developer-Mode, but any user-account other than the one associated with the developer-account must be added by email address at https://developer.spotify.com/dashboard/{{app-credential-id}}/users ALERT: IF the browser running the n8n UI is ALSO logged into a Spotify account, and the spotify-app is already authorized for that Spotify account, the "reconnect" button in the Spotify-OAuth2-API credential dialog may automatically grab a token for that logged in user-account, offering no opportunity to select a different user-account. This can be managed somewhat by using "incognito" browser windows for n8n, Spotify, or both. References n8n Spotify Credentials Docs Spotify Authorization Docs
by hana
How it works Fetch transaction notification emails (including attachments) Clean up data Let AI (Basic LLM Chain node) generate bookkeeping item Send to Google sheet Details The example fetch email from Gmail lables, suggested using filters to automatically orgianize email into the labels Data will send to "raw data" sheet Example google sheet: https://docs.google.com/spreadsheets/d/1_IhdHj8bxtsfH2MRqKuU2LzJuzm4DaeKSw46eFcyYts/edit?gid=1617968863#gid=1617968863
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 Automate With Marc
This workflow contains community nodes that are only compatible with the self-hosted version of n8n. Automate your entire video content creation pipeline with this AI-powered, no-code workflow built in n8n. Watch Step-by-step video guide here: https://www.youtube.com/watch?v=x7nHpcggpX8&t=5s This template connects a suite of smart tools to help you generate scroll-stopping short video ideas based on daily trending topics and auto-deliver them via email—ready for production in Veo 3. 🔧 How it works: Scheduled Trigger (Daily) Kicks off the process each day at your chosen time. Tavily Agent (Web Search) Searches the latest trends, viral moments, or market news based on your e-commerce brand (e.g. “Sally’s Closet”). OpenAI GPT-4 Agent (Creative Brainstorming) Generates high-conversion marketing video ideas based on your brand’s tone and what’s trending. Prompt Formatter for Veo 3 Converts the idea into a cinematic-style prompt, optimized for Veo’s video generation engine (via FAL API). Send via Gmail The final Veo 3 prompt is emailed to you or your creative team for immediate use or manual refinement. Watch full step-by-step Tutorial Build Video: https://youtu.be/x7nHpcggpX8 🧠 Use Cases: E-commerce brands that need fresh daily content Marketing teams looking to automate creative ideation Solopreneurs building a lean video production engine Anyone experimenting with Veo 3 prompt-based storytelling 🛠️ Tools used: n8n Scheduled Trigger Tavily Node (for real-time web search) Langchain Agent (GPT-4 via OpenAI) FAL API (Veo 3 prompt delivery) Gmail Node (send final output) ⚡️ Ready-to-use. Fully editable. Zero coding required. 💡 Pro Tip: You can hook this up with the Veo 3 generation API (FAL) to complete the automation end-to-end!
by Floyd Mahou
🔍 How it works This workflow turns WhatsApp into a smart email command center using AI. Users can speak or type instructions like: "Send a follow-up to Claire” "Write a draft email to Claire to confirm tomorrow’s meeting at 5 PM” "What is the name of Claire's firm?” The agent transcribes voice notes, extracts intent with GPT, interacts with Gmail (send, draft, search), and replies with a confirmation via WhatsApp — either as text or a voice message. ⚙️ Key Modules Used WhatsApp Business Webhook (Meta) OpenAI Whisper (voice transcription) GPT (intent + content generation) Gmail (search, draft, send) Airtable (contact lookup + memory logging) 🧠 Memory Layer (Optional) The agent logs key fields in Airtable: Recipient email Company / job title And more... This creates a lightweight "gut memory” so the agent feels context-aware. 🗺️ Setup Steps Connect WhatsApp Business API (via Meta Developer Console) Add OpenAI and Gmail credentials in n8n Link your Airtable base for contacts and logging 🧩 Best Use Cases Hands-free email reply while commuting Fast Gmail access for busy consultants / solopreneurs Custom business agents for service-based professionals ⏱️ Estimated Setup Time 30–60 minutes ✅ Requirements WhatsApp Business Cloud access OpenAI API Key Gmail or Google Workspace Airtable account (free plan OK) n8n instance (cloud or self-hosted with HTTPS)
by Jesse Davids
SSL Expiry Alert System Who is this for? This workflow is ideal for administrators or IT professionals responsible for monitoring SSL certificates of multiple websites to ensure they do not expire unexpectedly. Problem SSL certificates play a crucial role in ensuring secure communication over the internet. However, if not monitored closely, they can expire, leading to potential security risks and service disruption. This workflow helps in proactively monitoring SSL certificate expiry dates. Functionality Pulls URLs to monitor from a Google Sheet. Checks SSL certificates using SSL-Checker.io. Updates Google Sheet with SSL details such as expiry date and certificate status. Sends email alerts for SSL certificates nearing expiry (<30 days) or invalid certificates. Setup Clone the provided Google Sheet and update the Google Sheet URL in the "URLs to Monitor" node. Set up Google Sheets and Gmail credentials in n8n. Configure the Discourse Trigger for weekly monitoring. Customize email/telegram/ntfy alert settings as needed. Customization Modify the frequency of monitoring by adjusting the trigger interval in the "Weekly Trigger" node. Customize email content and recipients in the "Send Alert Email" node. Extend functionality by adding additional checks or actions based on SSL certificate status. Note Ensure proper authentication and authorization for accessing Google Sheets, SSL-Checker.io, and Gmail accounts within the workflow.
by Shahrear
This workflow contains community nodes that are only compatible with the self-hosted version of n8n. Automatically transform resume submissions into comprehensive candidate profiles with AI-powered parsing, GitHub analysis, and instant team notifications. What this workflow does Monitors Gmail for incoming resume attachments Extracts structured data using VLM Run AI document parsing Analyzes GitHub profiles with deep repository intelligence (30+ frameworks detected) Creates comprehensive candidate profiles with technical skills assessment Delivers multi-channel notifications via Google Sheets, Slack, and candidate emails Setup Prerequisites: Gmail account, VLM Run API credentials, Google Sheets access, Slack workspace, self-hosted n8n. You need to install VLM Run community node Quick Setup: Configure Gmail OAuth2 for resume monitoring Add VLM Run API credentials for document parsing Create Google Sheets candidate database Set up Slack integration for team notifications Update spreadsheet/channel IDs in workflow nodes Test with sample resume and activate Perfect for HR departments and technical recruiting teams Startup hiring and talent acquisition agencies Developer assessment and skill evaluation Remote team hiring and candidate screening Any organization seeking data-driven hiring decisions Key Benefits Eliminates manual data entry** - AI extracts all contact info, skills, and experience GitHub intelligence engine** - Analyzes repositories, calculates experience, detects technologies Comprehensive skill assessment** - Identifies programming languages, frameworks, and project metrics Professional candidate experience** - Automated acknowledgment emails with personalized touches Instant team collaboration** - Rich Slack notifications with GitHub profile highlights Structured data storage** - Searchable candidate database with 20+ data columns Saves hours per candidate** - Transforms 30-minute manual reviews into instant insights How to customize Extend by adding: Integration with ATS systems (Greenhouse, Lever, BambooHR) LinkedIn profile analysis and social media insights Automated interview scheduling based on qualifications Skills-based candidate scoring and ranking algorithms Integration with code assessment platforms Multi-language resume support and translation Custom evaluation criteria and filtering rules Advanced GitHub metrics (code quality, contribution patterns) This workflow revolutionizes technical hiring by combining AI-powered resume parsing with deep GitHub analysis, delivering comprehensive candidate intelligence that empowers data-driven hiring decisions while maintaining a professional candidate experience.
by Davide
This workflow automates the process of creating a complete SEO-optimized blog post, including generating content, titles, images, and meta tags, and publishing it on WordPress. It leverages AI models (like DeepSeek and OpenRouter) for content generation and SEO optimization, and integrates with Google Sheets, WordPress, and OpenAI for image generation. This is a powerful tool for automating the creation and optimization of blog posts, saving time and ensuring high-quality, SEO-friendly content. It integrates multiple tools and AI models to deliver a seamless content creation experience. Below is a breakdown of the workflow: 1. How It Works The workflow is designed to streamline the creation of SEO-friendly blog posts. Here's how it works: Trigger: The workflow starts with a Manual Trigger node, which initiates the process when the user clicks "Test workflow." Fetch Context: The Google Sheets node retrieves the blog post context (e.g., topic, keywords) from a predefined Google Sheet. Generate Content: The Generate Article node uses an AI model (DeepSeek) to create an SEO-friendly blog post based on the fetched context. The Generate Title node creates a compelling, keyword-rich title for the blog post. Publish to WordPress: The Add Draft to WP node creates a draft post in WordPress with the generated content and title. Generate and Upload Image: The Generate Image node uses OpenAI to create a realistic, blog-appropriate image. The Upload Image node uploads the image to WordPress media. The Set Image node associates the uploaded image as the featured image for the blog post. SEO Optimization: The SEO Expert node analyzes the blog post and generates optimized meta titles and descriptions using an AI model (OpenRouter). The Set Metatag node updates the WordPress post with the generated meta tags. Update Google Sheets: The Update Sheet and Finish Work nodes update the Google Sheet with the post's details, including the URL, title, and metadata. 2. Set Up Steps To set up and use this workflow in n8n, follow these steps: Google Sheets Setup: Create a Google Sheet with columns for ID POST, PROMPT, TITLE, URL, METATITLE, and METADESCRIPTION. Link the Google Sheet to the Get Context node by providing the Document ID and Sheet Name. WordPress Integration: Set up WordPress credentials in n8n for the Add Draft to WP, Upload Image, and Set Image nodes. Ensure the WordPress site is accessible via its REST API. AI Model Configuration: Configure the DeepSeek and OpenRouter credentials in n8n for the Generate Article, Generate Title, and SEO Expert nodes. Ensure the AI models are correctly set up to generate content and meta tags. Image Generation: Set up OpenAI credentials for the Generate Image node to create blog post images. Meta Tag Optimization: The SEO Expert node uses OpenRouter to generate meta titles and descriptions. Ensure the node is configured to analyze the blog post content and produce SEO-friendly tags. Workflow Execution: Click the "Test workflow" button to trigger the workflow. The workflow will: Fetch the blog post context from Google Sheets. Generate the article, title, and image. Publish the draft to WordPress. Upload and set the featured image. Generate and apply meta tags. Update the Google Sheet with the post details. Optional Customization: Modify the workflow to include additional SEO optimizations, such as internal linking, keyword density analysis, or social media sharing. Need help customizing? Contact me for consulting and support or add me on Linkedin.