by Lucas Walter
Who's it for This template is perfect for sales professionals, marketers, and business developers who need to quickly gather contact information from company websites. Whether you're building prospect lists, researching potential partners, or collecting leads for outreach campaigns, this automation saves hours of manual email hunting. What it does This workflow automatically discovers and extracts email addresses from any website by: Taking a website URL as input through a simple form Using Firecrawl's mapping API to find relevant pages (about, contact, team pages) Batch scraping those pages to extract email addresses Intelligently handling common email obfuscations like "(at)" and "(dot)" Returning a clean, deduplicated list of valid email addresses The automation handles rate limiting, retries failed requests, and filters out invalid or hidden email addresses to ensure you get quality results. How to set up Get Firecrawl API access: Sign up at firecrawl.dev and obtain your API key Configure credentials: In n8n, create a new HTTP Header Auth credential named "Firecrawl" with: Header Name: Authorization Header Value: Bearer YOUR_API_KEY Import the workflow: Copy the workflow JSON into your n8n instance Test the form: Activate the workflow and test with a sample website URL How to customize the workflow Search parameters: Modify the search parameter in the map_website node to target different page types (currently searches for "about contact company authors team") Extraction limits: Adjust the limit parameter to scrape more or fewer pages per website Retry logic: The workflow includes retry logic with a 12-attempt limit - modify the check_retry_count node to change this Output format: The set_result node formats the final output - customize this to match your preferred data structure Email validation: The JSON schema in start_batch_scrape defines how emails are extracted - modify the prompt or schema for different extraction rules The workflow is designed to be reliable and handle common edge cases like rate limiting and failed requests, making it production-ready for regular use.
by PiAPI
Who is the template for? This workflow is specifically designed for content creators and social media professionals, enabling Instagram and X (Twitter) influencers to produce highly artistic visual posts, empowering marketing teams to quickly generate event promotional graphics, assisting blog authors in creating featured images and illustrations, and helping knowledge-based creators transform key insights into easily shareable card visuals. Set up Instructions Fill in your API key from PiAPI. Fill in Basic Params Node following the sticky note guidelines. Set up a design template in Canvas Switchboard. Make a simple template in Switchboard. Click Crul and get the API code to fill in JSON of Design in Canvas. Click Test Workflow and get a url result. Use Case Here we will provide some setting examples to help users find a proper way to use this workflow. User could change these settings based on specific purposes. Basic Params Setting: theme: Hope scenario: Don't know about the future, confused and feel lost with tech-development. style: Cinematic Grandeur, Sci-Tech Aesthetic, 3D style example: 1. March. Because of your faith, it will happen. 2. Something in me will save me. 3. To everyone carrying a heavy heart in silence. You are going to be okay. 4. Tomorrow will be better. image prompt: A cinematic sci-fi metropolis where Deep Neural Nets control a hyper-connected society. Holographic interfaces glow in the air as robotic agents move among humans, symbolizing Industry 4.0. The scene contrasts organic human emotion with cold machine precision, rendered in a hyper-realistic 3D style with futuristic lighting. Epic wide shots showcase the grandeur of this civilization’s industrial evolution. Output Image: More Example Results for Reference
by Davide
This workflow contains community nodes that are only compatible with the self-hosted version of n8n. This n8n workflow integrates the powerful Pipedream MCP server with AI capabilities to create a smart, extensible assistant that can interact with over 2,700 APIs and 10,000+ tools — all within a secure and modular structure. This setup seamlessly integrates Pipedream's MCP server with n8n, enabling your AI assistant to leverage thousands of APIs and tools securely. Benefits Massive Tool Access**: Instantly connect 2,700+ APIs using Pipedream MCP tools — from productivity apps to custom APIs — with zero-code integration. Dynamic AI Agent**: The use of a LangChain agent allows for flexible tool execution and contextual conversations, powered by GPT. Easy Customization**: Simply copy your MCP tool URL into the respective sseEndpoint field to extend the agent’s capabilities. Scalable and Modular**: Add or remove tools (like Slack, Notion, Stripe, etc.) without altering the core logic. Secure and Revocable**: Credentials and API access can be managed directly via Pipedream’s MCP dashboard. How It Works Chat Trigger: The workflow begins when a chat message is received via the When chat message received node, which acts as the entry point. AI Agent Processing: The message is passed to the AI Agent node, which orchestrates the interaction using the connected tools and memory. Language Model: The OpenAI Chat Model (GPT-4.1-mini) processes the user's input and generates responses or actions. Memory: The Simple Memory node retains context from the conversation to enable coherent multi-turn interactions. Tool Integration: The Calendly and Gmail nodes (connected via Pipedream's MCP server) allow the AI to perform actions like scheduling events or sending emails. These tools use SSE (Server-Sent Events) endpoints provided by Pipedream. Response: The AI Agent combines the model's output and tool responses to deliver a final reply to the user. Set Up Steps Sign Up for Pipedream: Create an account on and set up your MCP server. Configure MCP Tools: Connect your accounts (e.g., Calendly, Gmail) in Pipedream and obtain the SSE endpoints for each tool (e.g., https://mcp.pipedream.net/xxx/calendly_v2). Update n8n Nodes: Replace the placeholder SSE endpoints in the Calendly and Gmail nodes with your Pipedream MCP URLs. OpenAI Credentials: Ensure the OpenAI Chat Model node has valid API credentials (configured under "OpenAi account"). Activate Workflow: Enable the When chat message received node (currently disabled) and deploy the workflow. Need help customizing? Contact me for consulting and support or add me on Linkedin.
by Shiva
This workflow enables users to submit food images to a Telegram bot, which uses OpenAI’s GPT-4 Vision to identify the item and estimate its caloric value. The results are stored in Google Sheets and sent back to the user. What it does: Triggers on a photo sent via Telegram. Acknowledges the user with a sticky note message. Downloads the image file securely using Telegram's API. Sends the image to GPT-4 Vision with a prompt: “Describe this food and estimate its calories.” Logs the GPT response to a Google Sheet (with timestamp). Replies to the user with the result (e.g., food name and estimated calories). Use cases: Personal food tracking Nutrition logging via chat Meal journaling for fitness or health Requirements: Telegram Bot Token (via credentials) OpenAI GPT-4 Vision access Google Sheets credential with access to the target sheet Notes: You can extend this template to calculate daily totals, categorize meals (breakfast/lunch/dinner), or even integrate with calorie goals. The sticky note node confirms receipt to enhance UX. Ideal for wellness apps, chat-based food journals, or AI-powered health bots.
by Robert Breen
This workflow automates invoice creation using Google Sheets for structured input and Google Docs for templated output — all built inside n8n. 🛠️ Step-by-Step Instructions ### Step 1: Manual Trigger Start the workflow manually for testing or development purposes. ### Step 2: Google Sheets — Load Invoice Data Pulls invoice data from a Google Sheet. 📄 Sheet URL: Copy This Sheet Expected Columns**: Company From Company To Terms Invoice Description Amount > 🔑 Credentials Required: > Connect to Google Sheets OAuth2 API in n8n. > Be sure your sheet is shared with the connected Google account. ### Step 3: Get Invoice Template — Load Google Doc Loads a static Google Docs template containing placeholder values. 🧾 Template URL: Copy This Template Required Placeholders** in the document: FromCompany# ToCompany# Terms# Invoice# Description# Amount# > 🔑 Credentials Required: > Connect to Google Docs OAuth2 API in n8n. ### Step 4: Create New Doc — Make Invoice File Creates a new Google Doc by duplicating the invoice template. Title Format**: Invoice: {{ $json.Invoice }} Destination Folder ID**: 1TnDibwPPPUm3VbmETiqWDVhtaUTLJ6mn (You can change this to your own Google Drive folder) > 🔐 Make sure your Google Docs credential has write access to this folder. ### Step 5: Merge — Combine Data Merges the loaded document and spreadsheet row together for downstream updates. ### Step 6: Insert Content into Doc (Optional) You can insert additional content here if needed. For example, a note, header, or footer pulled from your database or a custom field. ### Step 7: Input Invoice Details — Replace Fields Uses Google Docs API to replace all placeholders from the original template with the actual values. Replacements: | Placeholder | Replaced With | |----------------|------------------------------| | FromCompany# | Company From from sheet | | ToCompany# | Company To from sheet | | Terms# | Terms from sheet | | Invoice# | Invoice number | | Description# | Description of service | | Amount# | Amount of invoice | 📤 Final Output Each row from the Google Sheet results in a completed, branded Google Doc invoice stored in your Drive. 🙋 Need Help? Robert Breen Automation Consultant 🌐 ynteractive.com 📧 robert.j.breen@gmail.com 🔗 LinkedIn 🔒 Required APIs | Service | Purpose | |------------------|--------------------------| | Google Sheets API | Pull structured invoice data | | Google Docs API | Load & modify invoice documents | | n8n OAuth2 | Connect both services securely | Let me know if you'd like a follow-up step to export invoices as PDFs or auto-email them to clients!
by Yaron Been
Bytedance Seedance 1 Lite Video Generator Description A video generation model that offers text-to-video and image-to-video support for 5s or 10s videos, at 480p and 720p resolution Overview This n8n workflow integrates with the Replicate API to use the bytedance/seedance-1-lite model. This powerful AI model can generate high-quality video content based on your inputs. Features Easy integration with Replicate API Automated status checking and result retrieval Support for all model parameters Error handling and retry logic Clean output formatting Parameters Required Parameters prompt** (string): Text prompt for video generation Optional Parameters fps** (string, default: 24): Frame rate (frames per second) seed** (integer, default: None): Random seed. Set for reproducible generation image** (string, default: None): Input image for image-to-video generation duration** (string, default: 5): Video duration in seconds resolution** (string, default: 720p): Video resolution aspect_ratio** (string, default: 16:9): Video aspect ratio. Ignored if an image is used. camera_fixed** (boolean, default: False): Whether to fix camera position last_frame_image** (string, default: None): Input image for last frame generation. This only works if an image start frame is given too. How to Use Set up your Replicate API key in the workflow Configure the required parameters for your use case Run the workflow to generate video content Access the generated output from the final node API Reference Model: bytedance/seedance-1-lite API Endpoint: https://api.replicate.com/v1/predictions Requirements Replicate API key n8n instance Basic understanding of video generation parameters
by MilanWR
Telegram N8N workflow (de)activator What does it do? This workflow helps you to quickly activate or deactivate a workflow through Telegram. Sometimes we are not able to access a PC to resolve an issue if something goes wrong with a workflow. If you, like me, use Telegram to send yourself error reports, you can quickly react in case of urgency. Just by sending '/stop' combined with the name you use for a workflow, you can deactivate a workflow, or reactivate it with '/start'. For example '/stop marketing'. Walkthrough: https://watch.screencastify.com/v/uWQ88gZKj57WTGOOqSW2 (6min) Instructions Create a Telegram API key through botfather (https://t.me/botfather). Add it to the telegram credentials. For the N8N nodes, go to settings in your n8n instance. Then 'n8n API' and 'create an API key'. To ensure that only we can send commands to the bot, we need the chat ID of our DM with our newly created bot. Open the the Telegram trigger and click on 'listen to events'. Go to Telegram and send a direct message to the bot, this will trigger the Telegram node. Go to the filter node and fill in the chat id you want to filter for with the data you got from the test event in the Telegram node. In the first Switch node you can find the commands, in this case it is '/start' and '/stop'. When you send a message to your bot starting with either of those, it will go to the next switch nodes. Next it will check what other word it contains. As an example I have used the words 'marketing' and 'sales', both corresponding to a marketing and sales workflow. The last nodes will either activate or deactivate a workflow.
by Raymond Camden
This n8n template demonstrates how to add a tie form data to a new PDF. The idea is to automate the creation of a professional looking job posting. Use cases would be organizations who need to automate the creation of job postings. How it Works The trigger is a form that asks for job position, salary, office location, and responsiblities When the form is posted, it kicks off the workflow's next steps A Word document is downloaded from a Dropbox folder. This Word document is used as the template for the posting. The Word document is converted to base64. A call to Foxit's Document Generation endpoint includes the encoded Word document along with the form information. The resulting PDF is downloaded and converted from base64 into binary. At this point, the PDF is just there, but it could be emailed, sent to another workflow, etc. Requirements A Dropbox account. The workflow's first step points to a Word template. See our doc gen APIs for information on how to craft the Word doc, but the easiest way is to copy text like so: Job Position We are pleased to announce the opening of a new job, {{ jobPosition }}. This job pays ${{ salary }} per year and is in our {{ office }} location. The details of this job are: {{ responsibilities }} Foxit developer account (https://developer-api.foxit.com) Next Steps As mentioned above, you could do anything with the resulting PDF when done.
by Yaron Been
Lucataco Seed X Ppo Text Generator Description Seed-X-PPO-7B by ByteDance-Seed, a powerful series of open-source multilingual translation language models Overview This n8n workflow integrates with the Replicate API to use the lucataco/seed-x-ppo model. This powerful AI model can generate high-quality text content based on your inputs. Features Easy integration with Replicate API Automated status checking and result retrieval Support for all model parameters Error handling and retry logic Clean output formatting Parameters Required Parameters text** (string): Text to translate target_language** (string): Target language (e.g., 'Chinese', 'French', 'Spanish') Optional Parameters num_beams** (integer, default: 4): Number of beams for beam search max_length** (integer, default: 512): Maximum length of generated text source_language** (string, default: auto): Source language (use 'auto' for automatic detection) How to Use Set up your Replicate API key in the workflow Configure the required parameters for your use case Run the workflow to generate text content Access the generated output from the final node API Reference Model: lucataco/seed-x-ppo API Endpoint: https://api.replicate.com/v1/predictions Requirements Replicate API key n8n instance Basic understanding of text generation parameters
by Robert Breen
This guide walks you through building an intelligent AI Agent in n8n that routes tasks to the appropriate sub-agent using the new @n8n/n8n-nodes-langchain agent framework. You’ll create a Manager Agent that evaluates user input and delegates it to either an Email Agent or a Data Agent—each with its own role, memory, and OpenAI model. This is perfect for use cases where you want a single entry point but intelligent branching behind the scenes. 🔧 Step 1: Set Up the Manager Agent Start by dragging in an Agent node and name it something like ManagerAgent. This agent will act as the “brain” of your system, analyzing the user's input and determining whether it should be handled by the email-writing sub-agent or the data-summary sub-agent. Open the node’s settings and paste the following into the System Message: You are an AI Manager that delegates tasks to specialized agents. Your job is to analyze the user's message and decide whether it requires: An EmailAgent for writing outreach, follow-up, or templated emails, or A DataAgent for tasks involving data summaries, metrics, or analysis. Send the instructions to the sub agents. This instruction gives the Manager Agent clarity on what roles exist and what types of tasks belong to each one. 🧠 Step 2: Add Memory to the Manager Agent Drag in a Memory (BufferWindow) node and label it Manager Memory. Connect it to the ai_memory input of the Manager Agent. This ensures the agent can remember recent inputs and outputs from the user and agents during the conversation. No extra configuration is needed in this memory node—just connect it to the agent. 🔌 Step 3: Connect a Language Model to the Manager Agent Next, add a Language Model node and choose OpenAI Chat Model. Select a model like gpt-4o-mini or gpt-4, depending on what you have access to. Under Credentials, connect your OpenAI API key. If you haven’t created this credential yet: Click "OpenAI API" under Credentials. Choose "Create New". Paste your OpenAI API key (found at https://platform.openai.com/account/api-keys). Save it and return to the workflow. Once the model is set, connect it to the ai_languageModel input of the Manager Agent. ✉️ Step 4: Create the Email Agent Tool Now you’ll create a specialized sub-agent that only writes emails. Add an Agent Tool node and call it EmailAgent. In the tool’s settings, describe its job clearly. For example: Writes professional, friendly, or action-oriented emails based on instructions. Then scroll down to the System Message section and enter the following: You are a professional Email Writing Assistant. You write polished, effective emails for tasks such as outreach, follow-ups, and client communication. Follow the instruction provided exactly and return only the email content. Use a warm, business-appropriate tone. For the text input field, use the expression: {{ $fromAI('Prompt__User_Message_', ``, 'string') }} This allows the Email Agent to receive exactly what the Manager Agent wants it to handle. Add another Memory node and link it to this tool to help it maintain short-term context. Then add a second Language Model node, configured just like the first one (you can even clone it), and connect it to the EmailAgent. Finally, connect this entire EmailAgent setup back to the ManagerAgent by attaching it to its ai_tool input. 📊 Step 5: Create the Data Agent Tool Repeat the same steps, but this time for data summaries and analysis. Add another Agent Tool node and name it DataAgent. In the Tool Description, write something like: Responds to instructions requiring metrics, summaries, or data analysis explanations. For its input text field, you can use: {{json.query}} If desired, provide a system message that gives the agent more detailed instruction on how to behave: You are a helpful Data Analyst. Summarize trends, explain metrics, and break down data clearly based on user instructions. As with the EmailAgent, you’ll also need: A dedicated Memory node A dedicated Language Model node A connection to the ai_tool input of the Manager Agent Now the Manager Agent has two tools it can delegate to: one for communication and one for insights. 🧪 Step 6: Test Your AI Agent System Deploy the workflow and start testing by sending prompts like: > “Write a cold outreach email to a software company.” The ManagerAgent should route that to the EmailAgent. Then try: > “Summarize how our lead volume changed last month.” The DataAgent should receive that task. If routing isn’t working as expected, double-check your system messages and input bindings in each agent tool. ✅ You’re Done! You now have a modular, multi-agent AI system powered by n8n. The Manager Agent delegates intelligently, each sub-agent is optimized for its role, and all of them benefit from context memory. For more advanced setups, you can chain tools, add additional memory types, or use retrieval (RAG) tools for external document support.
by Ange Russell
This workflow fetches real-time air quality and pollen data using Ambee’s APIs and sends a friendly, personalized daily summary by email. It uses a scheduler to automate data collection, AI-generated health tips, and clear, actionable messages—perfect for sensitive users (e.g. kids with asthma, allergy sufferers). Use Case: Ideal for individuals with respiratory conditions, allergies, or those who want to stay informed about environmental conditions affecting their health. Set up steps Estimated time: 10–15 minutes You'll need: Ambee API key (free registration) OpenAI API key Email credentials (Gmail) User Profile 💡 Keep in mind: You’ll need to input your location coordinates (we’ve pre-filled Braunschweig as an example). The AI Agent node uses a ready-made prompt that’s tailored for email—but feel free to adapt it to other messaging platforms.
by Robert Breen
A step-by-step demo that shows how to pull your Outlook calendar events for the week and ask GPT-4o to write a short summary. Along the way you’ll practice basic data-transform nodes (Code, Filter, Aggregate) and see where to attach the required API credentials. 1️⃣ Manual Trigger — Run Workflow | Why | Lets you click “Execute” in the n8n editor so you can test each change. | | --- | --- | 2️⃣ Get Outlook Events — Get many events Node type: Microsoft Outlook → Event → Get All Fields selected: subject, start API setup (inside this node): Click Credentials ▸ Microsoft Outlook OAuth2 API If you haven’t connected before: Choose “Microsoft Outlook OAuth2 API” → “Create New”. Sign in and grant the Calendars.Read permission. Save the credential (e.g., “Microsoft Outlook account”). Output: A list of events with the raw ISO start time. > Teaching moment: Outlook returns a full dateTime string. We’ll normalize it next so it’s easy to filter. 3️⃣ Normalize Dates — Convert to Date Format // Code node contents return $input.all().map(item => { const startDateTime = new Date(item.json.start.dateTime); const formattedDate = startDateTime.toISOString().split('T')[0]; // YYYY-MM-DD return { json: { ...item.json, startDateFormatted: formattedDate } }; }); 4️⃣ Filter the Events Down to This Week After we’ve normalised the start date-time into a simple YYYY-MM-DD string, we drop in a Filter node. Add one rule for every day you want to keep—for example 2025-08-07 or 2025-08-08. Rows that match any of those dates will continue through the workflow; everything else is quietly discarded. Why we’re doing this: we only want to summarise tomorrow’s and the following day’s meetings, not the entire calendar. 5️⃣ Roll All Subjects Into a Single Item Next comes an Aggregate node. Tell it to aggregate the subject field and choose the option “Only aggregated fields.” The result is one clean item whose subject property is now a tidy list of every meeting title. It’s far easier (and cheaper) to pass one prompt to GPT than dozens of small ones. 6️⃣ Turn That List Into Plain Text Insert a small Code node right after the aggregation: return [{ json: { text: items .map(item => JSON.stringify(item.json)) .join('\n') } }]; Need a Hand? I’m always happy to chat automation, n8n, or Outlook API quirks. Robert Breen – Automation Consultant & n8n Instructor 📧 robert@ynteractive.com | LinkedIn