by Jimleuk
This n8n template demonstrates the beginnings of building your own n8n-powered WhatsApp chatbot! Under the hood, utilise n8n's powerful AI features to handle different message types and use an AI agent to respond to the user. A powerful tool for any use-case! How it works Incoming WhatsApp Trigger provides a way to get messages into the workflow. The message received is extracted and sent through 1 of 4 branches for processing. Each processing branch uses AI to analyse, summarize or transcribe the message so that the AI agent can understand it. The supported types are text, image, audio (voice notes) and video. The AI Agent is used to generate a response generally and uses a wikipedia tool for more complex queries. Finally, the response message is sent back to the WhatsApp user using the WhatsApp node. How to use Once you have setup and configured your WhatsApp account, you'll need to activate your workflow to start processing messages. Good to know: Large media files may negatively impact workflow performance. Requirements WhatsApp Buisness account Google Gemini for LLM. Gemini is used specifically because it can accept audio and video files whereas at time of writing, many other providers like OpenAI's GPT, do not. Customising this workflow For performance reasons, consider detecting large audio and video before sending to the LLM. Pre-processing such files may allow your agent to perform better. Go beyond and create rich and engagement customer experiences by responding using images, audio and video instead of just text!
by n8n Team
This workflow pushes Stripe charges to HubSpot contacts. It uses the Stripe API to get all charges and the HubSpot API to update the contacts. The workflow will create a new HubSpot property to store the total amount charged. If the property already exists, it will update the property. Prerequisites Stripe credentials. HubSpot credentials. How it works On a schedule, check if the property exists in HubSpot. If it doesn't exist, create it. The default schedule is once a day at midnight. Once property is acertained, the first Stripe node gets all charges. Once the charges are returned, the second Stripe node gets extra customer information. Once the customer information is returned, Merge data node will merge the customer information with the charges so that the next node Aggregate totals can calculate the total amount charged per contact. Once we have the total amount charged per contact, the Create or update customer node will create a new HubSpot contact if it doesn't exist or update the contact if it does exist with the total amount charged.
by Billy Christi
Who is this for? This workflow is ideal for: HR professionals* and *recruiters** who want to automate and enhance the hiring process Organizations** seeking AI-driven, consistent, and data-backed candidate evaluations Hiring managers** using Airtable as their recruitment database What problem is this workflow solving? Screening candidates manually is time-consuming, inconsistent, and difficult to scale. This workflow solves that by: Automating resume intake and AI evaluation** Matching candidates to job postings dynamically** Generating standardized suitability reports** Notifying HR only when candidates meet the criteria** Storing all applications in a structured Airtable database** What this workflow does This workflow builds an end-to-end AI-powered hiring pipeline using Airtable, OpenAI, and Google Drive. Here's how it works: Accept candidate applications via a public web form, including resume upload (PDF only) Extract text from uploaded resumes for processing Store resumes in Google Drive and generate shareable links Match the application to a job posting stored in Airtable Use AI to evaluate candidates (via OpenAI GPT-4) against job descriptions and requirements Generate suitability results including: Match percentage Screening status: Suitable, Not Suitable, Under Review Detailed notes Combine AI output and files into one data object Create a new candidate record in Airtable with all application data Automatically notify HR via Gmail if a candidate is marked “Suitable” Setup View & Copy the Airtable base here: 👉 Candidate Screening – Airtable Base Template Set up Google Drive folder Connect your OpenAI API key for the AI agent model Connect your Gmail account for email notifications Deploy the public-facing form to start receiving applications Test the workflow using a sample job and resume How to customize this workflow to your needs Expand file support**: Allow DOC or DOCX uploads by adding format conversion nodes Add multi-recipient email alerts**: Extend Gmail node for multiple HR recipients Handle “Under Review” differently**: Add additional logic to notify or flag these candidates Send rejection emails automatically**: Extend the IF branch for “Not Suitable” candidates Schedule interviews**: Integrate with Google Calendar or Calendly APIs Add Slack notifications**: Send alerts to team channels for real-time updates
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 Jimleuk
This n8n template demonstrates how to calculate the evaluation metric "Correctness" which in this scenario, measures the compares and classifies the agent's response against a set of ground truths. The scoring approach is adapted from the open-source evaluations project RAGAS and you can see the source here https://github.com/explodinggradients/ragas/blob/main/ragas/src/ragas/metrics/_answer_correctness.py How it works This evaluation works best where the agent's response is allowed to be more verbose and conversational. For our scoring, we classify the agent's response into 3 buckets: True Positive (in answer and ground truth), False Positive (in answer but not ground truth) and False Negative (not in answer but in ground truth). We also calculate an average similarity score on the agent's response against all ground truths. The classification and the similarity score is then averaged to give the final score. A high score indicates the agent is accurate whereas a low score could indicate the agent has incorrect training data or is not providing a comprehensive enough answer. Requirements n8n version 1.94+ Check out this Google Sheet for a sample data https://docs.google.com/spreadsheets/d/1YOnu2JJjlxd787AuYcg-wKbkjyjyZFgASYVV0jsij5Y/edit?usp=sharing
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 Eric Mooney
Usecase: When a new service ticket is created in Taiga, it's often unclear whether it contains sufficient details to begin work. This workflow automates the triage process by: Using an AI model to extract key information from the ticket description. Automatically assigning values for: Type (Bug, Enhancement, Onboarding, Question) Severity (Wishlist, Minor, Normal, Important, Critical) Priority (Low, Normal, High) Status (New, Needs More Info, etc.) Detecting missing critical data and blocking the ticket if incomplete. Setup instructions here: https://github.com/emooney/Service_Ticket_Triage_Helper
by Kumar Shivam
🧠 AI Blog Generator for Shopify Products using GPT-4o The AI Blog Generator is an advanced automation workflow powered by n8n, integrating GPT-4o and Google Sheets to generate SEO-rich blog articles for Shopify products. It automates the entire process — from pulling product data, analyzing images for nutritional information, to producing structured HTML content ready for publishing — with zero manual writing. 💡 Key Advantages 🔗 Shopify Product Sync** Automatically pulls product data (title, description, images, etc.) via Shopify API. 🤖 AI-Powered Nutrition Extraction** Uses GPT-4o to intelligently analyze product images and extract nutritional information. ✍️ SEO Blog Generation** GPT-4o generates blog titles, meta descriptions, and complete articles using both product metadata and extracted nutritional info. 🗂️ Structured Content Output** Produces well-formatted HTML with headers, bullet points, and nutrition tables for seamless Shopify blog integration. 📄 Google Sheets Integration** Tracks blog creation, manages retries, and prevents duplicate publishing using a centralized Google Sheet. 📤 Shopify Blog API Integration** Publishes the generated blog to Shopify using a two-step blog + article API call. ⚙️ How It Works Manual Trigger Initiate the process using a test trigger or a scheduler. Fetch Products from Shopify Retrieves all product details including descriptions and images. Extract Product Images Splits and processes each image individually. OCR + Nutrition AI GPT-4o reads nutrition facts from product images. Skips items without valid info. Check Existing Logs References a Google Sheet to avoid duplicates and determine retry status. AI Blog Generation Creates a blog with headings, bullet points, intro, and a nutrition table. Shopify Blog + Article Posting Uses the Shopify API to publish the blog and its content. Update Google Sheet Logs the blog URL, HTML content, errors, and status for future reference. 🛠️ Setup Steps Shopify Node**: Connects to your Shopify store and fetches product data. Split Out Node**: Divides product images for individual OCR processing. OpenAI Node**: Uses GPT-4o to extract nutrition data from images. If Node**: Filters for entries with valid nutrition information. Edit Fields Node**: Formats the product data for AI processing. AI Agent Node**: Generates SEO blog content. Google Sheets Nodes**: Reads and updates blog creation status. HTTP Request Nodes**: Posts the blog and article via Shopify’s API. 🔐 Credentials Required Shopify Access Token** – For retrieving product data and posting blogs OpenAI API Key** – For GPT-4o-based AI generation and image processing Google Sheets OAuth** – For accessing the log sheet 👤 Ideal For Ecommerce teams looking to automate content for hundreds of products Shopify store owners aiming to boost organic traffic through blogging Marketing teams building scalable, AI-driven content workflows 💬 Bonus Tip The workflow is modular. You can easily extend it with internal linking, language translation, or even social media sharing — all within the same n8n flow.
by Jimleuk
This n8n workflow demonstrates how you can summarise and automate post-meeting actions from video transcripts fed into an AI Agent. Save time between meetings by allowing AI handle the chores of organising follow-up meetings and invites. How it works This workflow scans for the calendar for client or team meetings which were held online. * Attempts will be made to fetch any recorded transcripts which are then sent to the AI agent. The AI agent summarises and identifies if any follow-on meetings are required. If found, the Agent will use its Calendar Tool to to create the event for the time, date and place for the next meeting as well as add known attendees. Requirements Google Calendar and the ability to fetch Meeting Transcripts (There is a special OAuth permission for this action!) OpenAI account for access to the LLM. Customising the workflow This example only books follow-on meetings but could be extended to generate reports or send emails.
by lin@davoy.tech
The YogiAI workflow automates sending daily yoga pose reminders and related information via Line Push Messages . This automation leverages data from a Google Sheets database containing yoga pose details such as names, image URLs, and links to ensure users receive personalized and engaging content every day. Purpose Provide users with daily yoga pose suggestions tailored to their practice. Deliver visually appealing and informative content through Line's Flex Messages, including images and clickable links. Log user interactions and preferences back into Google Sheets to refine future recommendations. Key Features Automated Daily Reminders : Sends a curated list of yoga poses at a scheduled time (21:30 Bangkok time). Dynamic Content Generation : Uses AI to rewrite and format messages in a user-friendly manner, complete with emojis and clear instructions. Integration with Google Sheets : Pulls data from a predefined Google Sheet and logs interactions for continuous improvement. Customizable Messaging : Ensures JSON outputs are properly formatted for Line’s Flex Message API, allowing for interactive and visually rich content. Data Source Google Sheets Structure The workflow relies on a Google Sheet structured as follows: PoseName : The name of the yoga pose. uri : The image URL representing the pose. url : A clickable link directing users to more information about the pose. Sample Data Layout Supine Angle https://example.com/SupineAngle-tn146.png https://example.com/pose/SupineAngle Warrior II https://example.com/WarriorII-tn146.png https://example.com/pose/WarriorII *Note : Ensure that you update the Google Sheet with your own data. Refer to this sample sheet for reference. * Scheduled Trigger The workflow is triggered daily at 21:30 (9:30 PM) Bangkok Time (Asia/Bangkok) . This ensures timely delivery of reminders to users, keeping them engaged with their yoga practice. Workflow Process Data Retrieval Node: Get PoseName Fetches yoga pose details from the specified range in the Google Sheet. Content Generation Node: WritePosesToday Utilizes Azure OpenAI to craft user-friendly text, complete with emojis and clear instructions. Node: RewritePosesToday Formats the AI-generated text specifically for Line messaging, ensuring compatibility and visual appeal. JSON Formatting Node: WriteJSONflex Generates JSON structures required for Line’s Flex Messages, enabling carousel displays of yoga pose images and links. Node: Fix JSON Ensures all JSON outputs are correctly formatted before being sent via Line. Message Delivery Node: Line Push with Flex Bubble Sends the final message, including both text and Flex Message carousels, directly to users via Line Push Messages. Logging Interactions Nodes: YogaLog & YogaLog2 Logs each interaction back into Google Sheets to track which poses were sent and how often they appear, refining future recommendations. Setup Prerequisites Google Sheets Account : Set up a Google Sheet with the required structure and populate it with your yoga pose data. Line Developer Account : Create a Line channel to obtain necessary credentials for sending push messages. Azure OpenAI Account : Configure access to Azure OpenAI services for generating and formatting content. Intended Audience This workflow is ideal for: Yoga Instructors : Seeking to engage students with daily pose suggestions. Fitness Enthusiasts : Looking to maintain consistency in their yoga practice. Content Creators : Interested in automating personalized and visually appealing content distribution.