by Dataki
This template is a simple AI Agent that acts as a Google Calendar Assistant. It is designed for beginners to have their "first AI Agent" performing common tasks and to help them understand how it works. For new users of n8n, AI Agents, and OpenAI: This template involves using an OpenAI API Key. If you are new to AI Agents, make sure to research and understand key concepts such as: "Tokens"** (used for API requests), "Tool calling"** (how the AI interacts with external tools), OpenAI's usage costs** (how you will be billed for API usage). Functionality It has two main functionalities: Create events** in a calendar Retrieve events** from a calendar How you can use it Everything is explained with sticky notes in the workflow. It is ready-to-use: all you need to do is connect your OpenAI credentials, and you can start using the workflow.
by Gulfiia
UX Interview Analysis with OpenAI: Transcipt, Summarize, and Export to Google Sheets!* About Easily analyze and summarize UX interviews. Just upload your files to Google Drive and get the insights directly in Google Sheets. How It Works The workflow is triggered manually Upload the interview recordings in MP3 format to Google Drive (or modify the node “Filter by MP3” to support other formats) OpenAI transcribes the audio An AI agent generates a summary Store the results in Google Sheets How To Use Import the package into your n8n interface Set up credentials for each node to access the required tools Upload your interview files to Google Drive Create a Google Sheet with the following columns: • Persona • User Needs • Pain Points • New Feature Requests Connect the Google Sheets node titled “Insert results to Google Sheets” to your created document Start the workflow Requirements OpenAI for transcription and summarization (you can replace it with Gemini if preferred)
by Danielle Gomes
Quiz Assistant via WhatsApp with Supabase and OpenAI Create a quiz assistant that helps users study a topic of their choice through WhatsApp. Using Supabase and OpenAI, this workflow captures missing user data, stores it, and delivers dynamic quizzes tailored to each topic. Main Use Cases Guide users through personalized study sessions Collect and store user preferences (name + topic) Automate quiz creation with AI Deliver interactive content via WhatsApp How It Works This workflow is composed of three main paths: 1. User Info Collection Triggered by an incoming WhatsApp message Retrieves existing user data from Supabase Checks if the name and topic are already defined If not, sends WhatsApp prompts to collect missing info Updates Supabase with new entries 2. AI Quiz Generation Once name and topic are confirmed, the Merge node consolidates all inputs Data is sent to the AI Agent (OpenAI Chat + Memory) The agent generates a quiz based on the selected topic 3. Response Delivery The quiz is sent back to the user via WhatsApp Flow ends, ready to restart with the next interaction
by @OnePromptMagic
What This Workflow Does Step 1: Analyzes your recent tweets for personality & style Step 2: Generates strategic keywords based on your profile Step 3: Searches for trending tweets in your niche Step 4: Creates personalized responses & original tweets Step 5: Displays results in beautiful HTML format How to Use Execute the workflow Fill out the form with: Your X username (from your URL) Your goals on X (multiple selection) Optional additional info Submit the form Wait for processing (2-3 minutes) Double-click the "Click to show Result" node example clip can be found here
by Yang
🔎 Who is this for? This workflow is designed for podcast creators, content marketers, and video producers who want to convert YouTube videos into podcast-ready scripts. It's perfect for anyone repurposing long-form content to reach audio-first audiences without manual effort. 🧠 What problem is this workflow solving? Creating podcast scripts from YouTube videos manually is time-consuming. This workflow automates the process by pulling transcripts, cleaning the text, organizing the dialogue, summarizing the key points, and saving everything in one place. It removes the need for manual transcription, formatting, and structuring. ⚙️ What this workflow does This workflow uses Dumpling AI and GPT-4o to automate the transformation of YouTube video transcripts into polished podcast scripts. Here's how it works: RSS Feed Trigger Monitors a YouTube RSS feed for new video uploads. When a new video is detected, the workflow begins automatically. Get YouTube Transcript (Dumpling AI) Uses Dumpling AI's get-youtube-transcript endpoint to extract the full transcript from the video URL. Generate Podcast Script with GPT-4o GPT-4o receives the transcript and generates a structured JSON output including: Cleaned transcript with filler words removed Speaker labels for clarity A short, engaging podcast title A concise summary of the episode Save to Airtable The structured data (title, summary, cleaned transcript) is saved to Airtable for easy review, editing, or publishing. This automation is an ideal workflow for repurposing video content into audio-friendly formats, cutting down production time while increasing content output across platforms.
by Yang
This workflow turns trending news into thoughtful first-person commentary for platforms like LinkedIn. It uses Dumpling AI’s News Search and Scraping APIs to find and extract article content, then feeds the cleaned text to GPT-4o to write personalized insights. The final output is saved back to Google Sheets as a draft for easy review or posting. ✅ What this workflow does Triggers daily using a Schedule node. Fetches a list of content topics from a Google Sheet. Uses Dumpling AI to search for relevant news articles based on each topic. Scrapes the article content with Dumpling AI’s /scrape endpoint. Cleans and aggregates the article content using a Code node. Generates first-person commentary with GPT-4o tailored for LinkedIn. Appends the generated post back to the Google Sheet next to its topic. 🧩 Nodes in this workflow Schedule Trigger**: Starts the workflow daily. Google Sheets (Read Topics)**: Pulls topic rows that don’t have a generated commentary yet. Split In Batches**: Processes each topic one at a time. Wait**: Adds a delay to manage API limits. HTTP Request (Search News)**: Uses Dumpling AI's /search-news to find relevant articles for the topic. Split Out**: Iterates over the list of article results. HTTP Request (Scrape Article)**: Extracts the full article text using Dumpling AI’s /scrape. Aggregate**: Collects and merges article content fields. Code (Clean Article)**: Strips links, formatting, and irrelevant text. OpenAI (GPT-4o)**: Generates a short, first-person LinkedIn post-style commentary using a custom prompt. Google Sheets (Write Back)**: Appends the final output next to the original topic in the sheet. 🧑💼 Who is this for? Founders, content creators, marketers, or **agency teams looking to maintain an active presence on LinkedIn or newsletters by sharing smart takes on industry trends. 💡 What problem does this solve? Most people want to comment on current events but don't have the time to summarize articles or write well-structured posts. This automation saves hours of manual work by: Finding the right article. Extracting and cleaning the content. Writing it in a natural, first-person voice using AI. ⚙️ What you need to use this: A Google Sheet with at least two columns: topic and generated commentary. A Dumpling AI API Key with access to the /search-news and /scrape endpoints. An OpenAI GPT-4o connection.
by darrell_tw
Water Reminder Workflow This workflow demonstrates how to use n8n and Slack to build an intelligent water drinking reminder system, combined with Google Sheets for data recording and OpenAI for generating personalized reminder messages. Google Sheet Template The iOS shortcut template: The result in iOS health: The template demo in Youtube Key Features Scheduled Reminders: Automatically sends water reminders at random times every hour. Intelligent Scheduling: Delays the next reminder if you've recently had water. AI-Generated Messages: Uses OpenAI to generate friendly and non-repetitive reminder messages. Data Tracking: Records daily water intake and calculates percentage of goal achievement. Quick Response: Easily record water intake through Slack buttons. iOS Integration: Provides iOS shortcut links to sync data with the Health app. Pre-Configuration Requirements To use this workflow, you need to set up the following: Google Sheets: Create a Google spreadsheet with log and setting sheets The log sheet should include date, time, and value columns The setting sheet is used to store daily water intake goals Slack: Create a Slack app and obtain an API token Configure permissions for interactive buttons OpenAI: Obtain an OpenAI API key iOS Shortcut (optional): Create an iOS shortcut named darrell_water for recording health data Node Configurations 1. Scheduled Triggers and Data Collection 1.1. Schedule Trigger Purpose**: Triggers water reminders on schedule Configuration**: Cron Expression: 0 {{ Math.floor(Math.random() * 11) }} 8-23 * * * Triggers at a random minute every hour, only between 8 AM and 11 PM 1.2. Google Sheets - Get Target Purpose**: Retrieves daily water intake goal Configuration**: Document ID: Your Google spreadsheet ID Sheet Name: setting 1.3. Google Sheets - Get Log Purpose**: Retrieves today's water intake records Configuration**: Document ID: Your Google spreadsheet ID Sheet Name: log Filter Condition: date equals today's date {{ $now.format('yyyy-MM-dd') }} 1.4. Summarize Purpose**: Calculates total water intake for today Configuration**: Fields to Summarize: value (sum) 1.5. Limit Purpose**: Gets the most recent water intake record Configuration**: Keep: Last items 2. Intelligent Reminder Logic 2.1. Combine Data Purpose**: Merges target and actual water intake data Configuration**: Combine By: Combine by position Number of Inputs: 3 2.2. If Purpose**: Checks if water was consumed recently Configuration**: Condition: {{ DateTime.fromISO($json.date+"T"+$json.time).format('yyyy-MM-dd HH:mm:ss') }} is after {{ $now.minus(30, "minutes") }} 2.3. Wait Purpose**: Randomly delays the reminder if water was consumed recently Configuration**: Wait Time: {{ Math.floor(Math.random() * 1) + 1 }} minutes 3. AI Message Generation and Sending 3.1. OpenAI Purpose**: Generates personalized water reminder messages Configuration**: Model: gpt-4o-mini Messages: System prompt: Requests responses in Traditional Chinese and in JSON format User prompt: Includes information about last water time, current time, goal, and progress Temperature: 1 3.2. Slack Send Drink Notification Purpose**: Sends water reminders to Slack channel Configuration**: Channel: Your Slack channel ID Message Type: Block Block UI: Contains AI-generated reminder message and water amount buttons (100ml, 150ml, 200ml, 250ml, 300ml) 4. User Interaction and Data Recording 4.1. Slack Drink Webhook Purpose**: Receives user interactions when water buttons are clicked Configuration**: HTTP Method: POST Path: slack-water-webhook 4.2. Slack Action Payload Purpose**: Parses Slack interaction data Configuration**: Mode: Raw JSON Output: {{ $json.body.payload }} 4.3. Slack Action Drink Data Purpose**: Extracts water amount and message information Configuration**: Assignments: value: {{ $json.actions[0].value }} message_text: {{ $json.message.text }} shortcut_url: shortcuts://run-shortcut?name=darrell_water&input= shortcut_url_data: JSON containing water amount and time message_ts: {{ $json.container.message_ts }} 4.4. Google Sheets Purpose**: Records water intake data to spreadsheet Configuration**: Operation: Append Document ID: Your Google spreadsheet ID Sheet Name: log Column Mapping: date: {{ $now.format('yyyy-MM-dd') }} time: {{ $now.format('HH:mm:ss') }} value: {{ $json.value }} 4.5. Send to Slack with Confirm Purpose**: Sends confirmation message and provides iOS shortcut link Configuration**: Channel: Your Slack channel ID Message Type: Block Block UI: Contains confirmation message and iOS Health app button Reply Settings: Reply to the thread of the original message Author Information This workflow was created by darrell_tw_, an engineer focused on AI and Automation. Contact: X Threads Instagram Website
by n8n Team
This workflow demonstrates how to connect an open-source model to a Basic LLM node. The workflow is triggered when a new manual chat message appears. The message is then run through a Language Model Chain that is set up to process text with a specific prompt to guide the model's responses. Note that open-source LLMs with a small number of parameters require slightly different prompting with more guidance to the model. You can change the default Mistral-7B-Instruct-v0.1 model to any other LLM supported by HuggingFace. You can also connect other nodes, such as Ollama. Note that to use this template, you need to be on n8n version 1.19.4 or later.
by Dataki
This workflow serves as a solid foundation when you need an AI Agent to return output in a specific JSON schema, without relying on the often-unreliable Structured Output Parser. What It Does The example workflow takes a simple input (like a food item) and expects a JSON-formatted output containing its nutritional values. Why Use This Instead of Structured Output Parser? The built-in Structured Output Parser node is known to be unreliable when working with AI Agents. While the n8n documentation recommends using a “Basic LLM Chain” followed by a Structured Output Parser, this alternative workflow completely avoids using the Structured Output Parser node. Instead, it implements a custom loop that manually validates the AI Agent's output. This method has proven especially reliable with OpenAI's gpt-4.1 series (gpt-4.1, gpt-4.1-mini, gpt-4.1-nano), which tend to produce correctly structured JSON on the first try, as long as the System Prompt is well defined. In this template, gpt-4.1-nano is set by default. How It Works Instead of using the Structured Output Parser, this workflow loops the AI Agent through a manual schema validation process: A custom schema check is performed after the AI Agent response. A runIndex counter tracks the number of retries. A Switch node: If the output does not match the expected schema, it routes back to the AI Agent with an updated prompt asking it to return the correct format. The process allows up to 4 retries to avoid infinite loops. If the output does match the schema, it continues to a Set node that serves as chat response (you can customize this part to fit your use case). This approach ensures schema consistency, offers flexibility, and avoids the brittleness of the default parser.
by Mutasem
Use case Automatically create todo items in Todoist every morning. This workflow has two flows At 5am, delete any uncompleted tasks every morning At 5:10 am, copy all template tasks into Inbox In each template task, set the due dates and days to add the task. You can do that like this days:mon,tues; due:8pm which will add the task every Monday and Tuesday and make it due at 8pm. How to setup Add Todoist creds Create a template list to copy from in Todoist. Add days and due times on each task as necessary. Set the projects to copy from and to write to in each Todoist node
by Anthony
How It Works This workflow transforms any webpage into an AI-narrated audio summary delivered via WhatsApp: Receive URL - WhatsApp Trigger captures incoming messages and passes them to URL extraction Extract & validate - Code node extracts URLs using regex and validates format; IF node checks for errors User feedback - Sends either error message ("Please send valid URL") or processing status ("Fetching and analyzing... 10-30 seconds") Fetch webpage - Sub-workflow calls Jina AI Reader (https://r.jina.ai/) to fetch JavaScript-rendered content, bypassing bot blocks Summarize content - GPT-4o-mini processes webpage text in 6000-character chunks, extracts title and generates concise summary Generate audio - OpenAI TTS-1 converts summary text to natural-sounding audio (Opus format for WhatsApp compatibility) Deliver result - WhatsApp node sends audio message back to user with summary Why Jina AI? Many modern websites (like digibyte.io) require JavaScript to load content. Standard HTTP requests only fetch the initial HTML skeleton ("JavaScript must be enabled"). Jina AI executes JavaScript and returns clean, readable text. Setup Steps Time estimate: ~20-25 minutes 1. WhatsApp Business API Setup (10-15 minutes) Create Meta Developer App** - Go to https://developers.facebook.com/, create Business app, add WhatsApp product Get Phone Number ID** - Use Meta's test number or register your own business phone Generate System User Token** - Create at https://business.facebook.com/latest/settings/system_users (permanent token, no 4-hour expiry) Configure Webhook** - Point to your n8n instance URL, subscribe to "messages" events Verify business** - Meta requires 3-5 verification steps (business, app, phone, system user) 2. Configure n8n Credentials (5 minutes) OpenAI** - Add API key in Credentials → OpenAI (used in 2 places: "Convert Summary to Audio" and "OpenAI Chat Model" in sub-workflow) WhatsApp OAuth** - Add in WhatsApp Trigger node using System User token from step 1 WhatsApp API** - Add in all WhatsApp action nodes (Send Error, Send Processing, Send Audio) using same token 3. Link Sub-Workflow (3 minutes) Ensure "[SUB] Get Webpage Summary" workflow is activated In "Get Webpage Summary" node, select the sub-workflow from dropdown Verify workflow ID matches: QglZjvjdZ16BisPN 4. Update Phone Number IDs (2 minutes) Copy your Phone Number ID from Meta console Update in all WhatsApp nodes: Send Error Message, Send Processing Message, Send Audio Summary 5. Test the Flow (2 minutes) Activate both workflows (sub-workflow first, then main) Send test message to WhatsApp: https://example.com Verify: Processing message arrives → Audio summary delivered within 30 seconds Important Notes WhatsApp Caveats: 24-hour window** - Can't auto-message users after 24 hours unless they message first (send "Hi" each morning to reset) Verification fatigue** - Meta requires multiple business verifications; budget 30-60 minutes if first time Test vs Production** - Test numbers work for single users; production requires business verification Audio Format: Using Opus codec (optimal for WhatsApp, smaller file size than MP3) Speed set to 1.0 (normal pace) - adjust in "Convert Summary to Audio" node if needed Cost: ~$0.015 per minute of audio generated Jina AI Integration: Free tier** works for basic use (no API key required) Handles JavaScript-heavy sites automatically Add Authorization: Bearer YOUR_KEY header for higher limits Alternative: Replace with Playwright/Puppeteer for self-hosted rendering Cost Breakdown (per summary): GPT-4o-mini summarization: ~$0.005-0.015 OpenAI TTS audio: ~$0.005-0.015 WhatsApp messages: Free (up to 1,000/month) Total: ~$0.01-0.03 per summary** Troubleshooting: "Cannot read properties of undefined" → Status update, not message (code node returns null correctly) "JavaScript must be enabled" → Website needs Jina AI (already implemented in Fetch site texts node) Audio not sending → Check binary data field is named data in TTS node No webhook received → Verify n8n URL is publicly accessible and webhook subscription includes "messages" Pro Tips: Change voice in TTS node: alloy (neutral), echo (male), nova (female), shimmer (soft) Adjust summary length: Modify chunkSize: 6000 in sub-workflow's Text Splitter node (lower = faster but less detailed) Add rate limiting: Insert Code node after trigger to track user requests per hour Store summaries: Add database node after "Clean up" to archive for later retrieval The Use Cases: Executive commuting - Consume industry news hands-free Research students - Cover 3x more sources while multitasking Visually impaired - Access any webpage via natural audio Sales teams - Research prospects on the go Content creators - Monitor competitors while exercising
by Amit Mehta
N8N Workflow: Printify Automation - Update Title and Description - AlexK1919 This workflow automates the process of getting products from Printify, generating new titles and descriptions using OpenAI, and updating those products. How it Works This workflow automatically retrieves a list of products from a Printify store, processes them to generate new titles and descriptions based on brand guidelines and custom instructions, and then updates the products on Printify with the new information. It also interacts with Google Sheets to track the status of the products being processed. The workflow can be triggered both manually or by an update in a Google Sheet. Use Cases E-commerce Automation**: Automating content updates for a Printify store. Marketing & SEO**: Generating SEO-friendly or seasonal content for products using AI. Product Management**: Batch-updating product titles and descriptions without manual effort. Setup Instructions Printify API Credentials: Set up httpHeaderAuth credentials for Printify to allow the workflow to get and update products. OpenAI API Credentials: Provide an API key for OpenAI in the openAiApi credentials. Google Sheets Credentials: The workflow requires two separate Google Sheets credentials: one for the trigger (googleSheetsTriggerOAuth2Api) and another for appending/updating data (googleSheetsOAuth2Api). Google Sheets Setup: You need a Google Sheet to store product information and track the status of the updates. The workflow is linked to a specific spreadsheet. Brand Guidelines: The Brand Guidelines + Custom Instructions node must be updated with your specific brand details and any custom instructions for the AI. Workflow Logic Trigger: The workflow can be triggered manually or by an update in a Google Sheet when the upload column is changed to "yes". Get Product Info: It fetches the shop ID and then a list of all products from Printify. Process Products: The product data is split, and the workflow loops through each product. AI Content Generation: For each product, the Generate Title and Desc node uses OpenAI to create a new title and description based on the original content, brand guidelines, and custom instructions. Google Sheets Update: The workflow appends the product information and a "Product Processing" status to a Google Sheet. It then updates the row with the newly generated title and description, and changes the status to "Option added". Printify Update: The Printify - Update Product node sends a PUT request to the Printify API to apply the new title and description to the product. Node Descriptions | Node Name | Description | |-----------|-------------| | When clicking 'Test workflow' | A manual trigger for testing the workflow. | | Google Sheets Trigger | An automated trigger that starts the workflow when the upload column in the Google Sheet is updated. | | Printify - Get Shops | Fetches the list of shops associated with the Printify account. | | Printify - Get Products | Retrieves all products from the specified Printify shop. | | Brand Guidelines + Custom Instructions | A Set node to store brand guidelines and custom instructions for the AI. | | Generate Title and Desc | An OpenAI node that generates a new title and description based on the provided inputs. | | GS - Add Product Option | Appends a new row to a Google Sheet to track the processing status of a product. | | Update Product Option | Updates an existing row in the Google Sheet with the new product information and status. | | Printify - Update Product | A PUT request to the Printify API to update a product with new information. | Customization Tips You can swap out the Printify API calls with similar services like Printful or Vistaprint. Modify the Brand Guidelines + Custom Instructions node to change the brand name, tone, or specific instructions for the AI. Change the number of options the workflow should generate by modifying the Number of Options node. You can change the OpenAI model used in the Generate Title and Desc node, for example, from gpt-4o-mini to another model. Suggested Sticky Notes for Workflow "Update your Brand Guidelines before running this workflow. You can also add custom instructions for the AI node." "You can swap out the API calls to similar services like Printful, Vistaprint, etc." "Set the Number of Options you'd like for the Title and Description" Required Files 1V1gcK6vyczRqdZC_Printify_Automation_-Update_Title_and_Description-_AlexK1919.json: The main n8n workflow export for this automation. The Google Sheets template for this workflow. Testing Tips Run the workflow with the manual trigger to see the flow from start to finish. Change the upload column in the Google Sheet to "yes" to test the automated trigger. Verify that the new titles and descriptions are correctly updated on Printify. Suggested Tags & Categories Printify OpenAI