by Cong Nguyen
📄 What this workflow does This workflow automatically turns a topic and a reference image URL into a finished, branded article image. It uses GPT-4o to generate a short, detailed image prompt, sends it to FAL Flux image-to-image for rendering, polls until the job is completed, downloads and resizes the image, overlays your company logo, and finally saves the branded result into a specified Google Drive folder. 👤 Who is this for Content teams who need consistent, on-brand article images. Marketing teams looking to scale blog and landing page visuals. Designers who want to automate repetitive resizing and branding tasks. Anyone who needs a pipeline from topic → AI illustration → Google Drive asset. ✅ Requirements OpenAI (GPT-4o) API credentials (for image prompt generation). FAL API key for Flux image-to-image generation. Google Drive OAuth2 connection + target folder ID for saving images. A company logo file/URL (direct download link from Google Drive or any public URL). ⚙️ How to set up Connect OpenAI GPT-4o in the “Create prompt” node. Add your FAL API key to all HTTP Request nodes (generate image, check image finish, Get image link). Replace the logo link in “Get company’s logo” with your own logo URL. Configure the Google Drive node with your OAuth2 credentials and set the correct Folder ID. Update the image_url in “Link image” (or pass from upstream data). Test the workflow end-to-end with a sample subject and image. 🔁 How it works Form/Manual Trigger → Input subject + reference image URL. GPT-4o → Generates a <70-word sharp/detailed prompt (no text/logos). FAL Flux (HTTP Request) → Submits job for image-to-image generation. Polling Loop → Wait + check status until COMPLETED. Download Image → Retrieves generated image link. Resize Image → Standardize to 800×500 pixels. Get & Resize Logo → Fetch company logo, resize for branding. Composite → Overlay logo onto article image. Save to Google Drive → Final branded image saved in target folder. 💡 About Margin AI Margin AI is your AI Service Companion. We help organizations design intelligent, human-centric automation — from content pipelines and branding workflows to customer insights and sales enablement. Our tailored AI solutions scale marketing, operations, and creative processes with ease.
by Jinash Rouniyar
PROBLEM Evaluating and comparing responses from multiple LLMs (OpenAI, Claude, Gemini) can be challenging when done manually. Each model produces outputs that differ in clarity, tone, and reasoning structure. Traditional evaluation metrics like ROUGE or BLEU fail to capture nuanced quality differences. Human evaluations are inconsistent, slow, and difficult to scale. This workflow automates LLM response quality evaluation using Contextual AI’s LMUnit, a natural language unit testing framework that provides systematic, fine-grained feedback on response clarity and conciseness. > Note: LMUnit offers natural language-based evaluation with a 1–5 scoring scale, enabling consistent and interpretable results across different model outputs. How it works A chat trigger node collects responses from multiple LLMs such as OpenAI GPT-4.1, **Claude 4.5 Sonnet, and Gemini 2.5 Flash. Each model receives the same input prompt to ensure fair comparison, which is then aggregated and associated with each test cases We use Contextual AI's LMUnit node to evaluate each response using predefined quality criteria: “Is the response clear and easy to understand?” - Clarity “Is the response concise and free from redundancy?” - Conciseness LMUnit** then produces evaluation scores (1–5) for each test Results are aggregated and formatted into a structured summary showing model-wise performance and overall averages. How to set up Create a free Contextual AI account and obtain your CONTEXTUALAI_API_KEY. In your n8n instance, add this key as a credential under “Contextual AI.” Obtain and add credentials for each model provider you wish to test: OpenAI API Key: platform.openai.com/account/api-keys Anthropic API Key: console.anthropic.com/settings/keys Gemini API Key: ai.google.dev/gemini-api/docs/api-key Start sending prompts using chat interface to automatically generate model outputs and evaluations. How to customize the workflow Add more evaluation criteria (e.g., factual accuracy, tone, completeness) in the LMUnit test configuration. Include additional LLM providers by duplicating the response generation nodes. Adjust thresholds and aggregation logic to suit your evaluation goals. Enhance the final summary formatting for dashboards, tables, or JSON exports. For detailed API parameters, refer to the LMUnit API reference. If you have feedback or need support, please email feedback@contextual.ai.
by Olivier
This template qualifies and segments B2B prospects in ProspectPro using live web data and AI. It retrieves website content and search snippets, processes them with an LLM, and updates the prospect record in ProspectPro with qualification labels and tags. The workflow ensures each prospect is processed once and can be reused as a sub-flow or direct trigger. ✨ Features Automatically qualify B2B companies based on website and search content Flexible business logic: qualify and segment prospects by your own criteria Updates ProspectPro records with labels and tags Live data retrieval via Bedrijfsdata.nl RAG API nodes Easy customization through flexible AI setup Extendable and modular: use as a trigger workflow or callable sub-flow ⚙ Requirements n8n instance or cloud workspace Install the Bedrijfsdata.nl Verified Community Node Bedrijfsdata.nl developer account (14-day free trial, 500 credits) Install the ProspectPro Verified Community Node ProspectPro account & API credentials (14-day free trial) OpenAI API credentials (or another LLM) 🔧 Setup Instructions Import the template and set your credentials (Bedrijfsdata.nl, ProspectPro, OpenAI). Connect to a trigger (e.g., ProspectPro "New website visitor") or call as a sub-workflow. Adjust qualification logic in the Qualify & Tag Prospect node to match your ICP. Optional: extend tags, integrate with Slack/CRM, or add error logging. 🔐 Security Notes Prevents re-processing of the same prospect using tags Error branches included for invalid input or API failures LLM output validated via a structured parser 🧪 Testing Run with a ProspectPro ID of a company with a known domain Check execution history and ProspectPro for enrichment results Verify updated tags and qualification label in ProspectPro 📌 About Bedrijfsdata.nl Bedrijfsdata.nl operates the most comprehensive company database in the Netherlands. With real-time data on 3.7M+ businesses and AI-ready APIs, they help Dutch SMEs enrich CRM, workflows, and marketing automation. Website: https://www.bedrijfsdata.nl Developer Platform: https://developers.bedrijfsdata.nl API docs: docs.bedrijfsdata.nl Support: https://www.bedrijfsdata.nl/klantenservice Support hours: Monday–Friday, 09:00–17:00 CET 📌 About ProspectPro ProspectPro is a B2B Prospecting Platform for Dutch B2B SMEs. It helps sales teams identify prospects, identify website visitors and more. Website: https://www.prospectpro.nl Platform: https://mijn.prospectpro.nl API docs: https://www.docs.bedrijfsdata.nl Support: https://www.prospectpro.nl/klantenservice Support hours: Monday–Friday, 09:00–17:00 CET
by higashiyama
Personalized Learning Content Aggregator with AI Filtering Who’s it for This workflow is for learners, educators, and professionals who want to automatically collect and filter the most relevant educational articles, tutorials, and resources based on specific keywords. How it works Fetches content from RSS feeds and Reddit based on user-defined keywords. AI analyzes and filters the articles to keep only relevant, educational, and non-promotional posts. Saves curated results into a Google Sheet for easy review. How to set up Connect your Google Sheets and AI (OpenAI or LangChain) credentials. Add your RSS feed URLs and keywords to Google Sheets. Adjust schedule timing in the trigger node (default: 8 AM & 6 PM daily). Run the workflow and check the results in your Google Sheet. Requirements Google Sheets account for storage. RSS feed URLs and keyword list. AI node (OpenAI / Gemini / Claude) for filtering logic. How to customize Change or add new content sources (e.g., YouTube, Medium, Dev.to). Adjust AI prompt criteria to match your learning goals. Save results to other platforms (e.g., Notion, Slack, or Airtable). Note: This workflow uses no personal identifiers or API keys directly in nodes. All credentials are safely stored in n8n’s credential manager.
by 長谷 真宏
Who is this for This template is perfect for sales professionals, account managers, and business development teams who want to make memorable impressions on their clients. It automates the tedious task of researching gift shops and preparation spots before important meetings. What it does This workflow automatically prepares personalized recommendations for client visits by monitoring your Google Calendar, enriching data from Notion, and using AI to select the perfect options. How it works Trigger: Activates when a calendar event containing keywords like "visit," "meeting," "client," or "dinner" is created or updated Extract: Parses company name from the event title Enrich: Fetches customer preferences from your Notion database Search: Google Places API finds nearby gift shops and quiet cafes Analyze: GPT-4 recommends the best options based on customer preferences Notify: Sends a personalized message to Slack with recommendations Example Slack Output Here's what the final notification looks like: 🎁 Recommended Gift Shop Patisserie Sadaharu AOKI (★4.6) 3-5-2 Marunouchi, Chiyoda-ku 💡 Reason: The customer loves French desserts, so this patisserie's macarons would be perfect! ☕ Pre-Meeting Cafe Starbucks Reserve Roastery (★4.5) 5 min walk from meeting location Set up steps Setup time: approximately 15 minutes Google Calendar: Connect your Google Calendar account and select your calendar Notion Database: Create a customer database with "Company Name" (title) and "Preferences" (text) fields Google Places API: Get an API key from Google Cloud Console and add it to the Configuration node OpenAI: Connect your OpenAI account for AI-powered recommendations Slack: Connect your Slack workspace and update the channel ID in the final node Requirements Google Calendar account Notion account with a customer database Google Places API key (requires Google Cloud account) OpenAI API key Slack workspace with bot permissions How to customize Search radius: Adjust the searchRadius parameter in the Configuration node (default: 1000 meters) Event keywords: Modify the Filter node conditions to match your calendar naming conventions Notification channel: Change the Slack channel ID to your preferred channel
by Robert Breen
This workflow pulls marketing data from Google Sheets, aggregates spend by channel, generates an AI-written summary, and outputs a formatted PDF report using a custom HTML template on PDF.co. ⚙️ Setup Instructions 1️⃣ Prepare Your Google Sheet Copy this template into your Google Drive: Sample Marketing Data Add or update your marketing spend data in rows 2–100. Connect Google Sheets in n8n Go to n8n → Credentials → New → Google Sheets (OAuth2) Log in with your Google account and grant access Select the Spreadsheet ID and Worksheet in the workflow 2️⃣ Set Up PDF.co for PDF Reports Create a free account at PDF.co In PDF.co Dashboard → HTML to PDF Templates, create a new Mustache template Paste the HTML provided at the bottom of this description Save, and note your Template ID In n8n → Credentials → New → PDF.co API, paste your API Key and save In the workflow, select your PDF.co credential in the Create PDF node Replace the templateId with your Template ID 🧠 How It Works Google Sheets Node**: Pulls marketing spend data Summarize Nodes**: Aggregate total spend and spend per channel OpenAI Node**: Writes a daily summary of marketing performance Code Node**: Converts aggregated data into the correct shape for the PDF template PDF.co Node: Generates a final, formatted **PDF report 📬 Contact Need help customizing this (e.g., filtering by campaign, sending reports by email, or formatting your PDF)? 📧 robert@ynteractive.com 🔗 Robert Breen 🌐 ynteractive.com 📄 HTML Template (for PDF.co) > Paste this into a new HTML Template on PDF.co and reference its Template ID in your workflow. <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Invoice {{invoiceNumber}}</title> <style> body { font-family: Arial, Helvetica, sans-serif; margin: 36px; color: #222; } .header { display: flex; justify-content: space-between; align-items: center; } .brand { max-height: 56px; } h1 { margin: 12px 0 4px; font-size: 22px; } .meta { font-size: 12px; color: #555; } .two-col { display: flex; gap: 24px; margin-top: 16px; } .box { flex: 1; border: 1px solid #ddd; padding: 12px; border-radius: 6px; } .label { font-size: 11px; color: #666; text-transform: uppercase; letter-spacing: .02em; } table { width: 100%; border-collapse: collapse; margin-top: 16px; } th, td { border-bottom: 1px solid #eee; padding: 10px 8px; font-size: 13px; } th { background: #fafafa; text-align: left; } tfoot td { border-top: 2px solid #ddd; font-size: 13px; } .right { text-align: right; } .totals td { padding: 6px 8px; } .grand { font-weight: 700; font-size: 14px; } .notes { margin-top: 18px; font-size: 12px; color: #444; } </style> </head> <body> Invoice {{invoiceNumber}} Date: {{invoiceDate}} | Due: {{dueDate}} {{#company.logoUrl}} {{/company.logoUrl}} From {{company.name}} {{company.address}} {{company.phone}} {{company.email}} Bill To {{billTo.name}} {{billTo.address}} {{billTo.email}} Description Qty Unit Price Line Total {{#items}} {{line}} {{description}} {{qty}} {{unitPriceFmt}} {{lineTotalFmt}} {{/items}} Subtotal {{subTotalFmt}} Tax ({{taxRatePct}}) {{taxAmountFmt}} Discount -{{discountFmt}} Total {{totalFmt}} Notes: {{notes}} Terms: {{terms}} </body> </html>
by David Olusola
🎥 Auto-Summarize Zoom Recordings → Slack & Email Never lose meeting insights again! This workflow automatically summarizes Zoom meeting recordings using OpenAI GPT-4 and delivers structured notes directly to Slack and Email. ⚙️ How It Works Zoom Webhook – triggers when a recording is completed. Normalize Data – extracts meeting details + transcript. OpenAI GPT-4 – creates structured meeting summary. Slack – posts summary to your chosen channel. Email – delivers summary to your inbox. 🛠️ Setup Steps 1. Zoom Create a Zoom App with the recording.completed event. Add workflow webhook URL. 2. OpenAI Add your API key to n8n. Use GPT-4 for best results. 3. Slack Connect Slack credentials. Replace YOUR_SLACK_CHANNEL with your channel ID. 4. Email Connect Gmail or SMTP. Replace recipient email(s). 📊 Example Slack Message 📌 Zoom Summary Topic: Sales Demo Pitch Host: alex@company.com Date: 2025-08-30 Summary: Reviewed Q3 sales pipeline Discussed objections handling Assigned action items for next week ⚡ Get instant summaries from every Zoom meeting — no more manual note-taking!
by Don Jayamaha Jr
Create your own Bitcoin Liquidity Exchange Channel with an AI Agent—fully integrated with 10 major centralized exchanges. This workflow acts as a liquidity intelligence agent, connecting multiple exchange order books into a unified dataset, then applying AI analysis to generate actionable trading insights. It’s the ultimate tool for Bitcoin traders, analysts, community managers, and researchers who need cross-exchange liquidity monitoring—delivered instantly through Telegram. 🔌 Supported Exchanges (Integrated) Binance Coinbase Bybit MEXC Gate.io Bitget OKX Kraken HTX (Huobi) Crypto.com 🌟 What Makes This Workflow Special? This isn’t just raw order book data—it’s an AI-powered aggregator that: Fetches BTC/USDT order books (up to 5000 levels deep) from 10 exchanges Normalizes & merges** liquidity data into a single view Uses GPT-4.1 or GPT-4.1-mini to detect liquidity clusters, imbalances, and support/resistance Generates two structured outputs: Liquidity Report (raw snapshots from all exchanges) AI Trading Brief (intraday + weekly signals) Publishes insights directly into a Telegram channel 🔍 What You Can Do 📊 Cross-Exchange Liquidity View Monitor total liquidity depth across top 10 exchanges Spot hidden bid/ask clusters and weak order book levels ⚡ Real-Time Signals Detect when liquidity evaporates at key price points Receive intraday + weekly trading briefs 📢 Community Ready Run your own public or private Telegram channel with automated liquidity updates ✅ Example Alerts “BTC liquidity depth update: $30M bid wall forming at $62,000 across Binance & OKX.” “Ask-side liquidity dropped 20% in the last hour on Bybit + Coinbase.” “Daily summary: Cross-exchange liquidity balanced, net inflow +3.2%.” “Liquidity cluster detected: strong support between $61,800 – $62,150.” 🛠️ Setup Instructions Create a Telegram Bot Use @BotFather to generate a bot token Add the bot to your channel and get the channel ID Configure API Keys OpenAI API Key (GPT-4.1 or GPT-4.1-mini) Telegram Bot Token + Channel ID Import Workflow into n8n Add credentials in the Set node (no hardcoding in HTTP nodes) Configure schedule trigger (15m, hourly, daily, etc.) Deploy & Test Run the workflow and confirm liquidity + AI insights appear in Telegram ⚙️ Workflow Architecture AI Brain** → GPT-4.1 or GPT-4.1-mini Data Sources** → 10 centralized exchanges (BTC/USDT order books) Data Normalization** → Unified liquidity dataset Outputs** → Liquidity Report (raw exchange stats) AI Trading Brief (signals + summaries) Delivery** → Telegram Channel 📝 Included Sticky Notes System Overview** (workflow purpose & design) Exchange Data Integration** (order book depth per CEX) Setup Guide** (Telegram + API keys) Customization Notes** (change frequency, extend signals) Legal Disclaimer** (AI analysis, not financial advice) Your Bitcoin liquidity insights—unified, AI-analyzed, and delivered in real time to Telegram.
by Konrad Roziewski
Currently Work-In-Progress This n8n template creates an intelligent AI assistant that responds to chat messages, providing conversational access to your Meta Ads data. Powered by an OpenAI GPT-5 model and equipped with memory to maintain context, this agent can interact with your Meta Ads accounts via the Facebook Graph API. Users can ask it to: List all connected ad accounts.** Retrieve detailed information** for a specific ad account, including active campaigns, ad sets, and individual ads. Fetch performance insights** (e.g., spend, impressions, conversions, CPC, CPM, CTR, ROAS) for a given account and time range. Ideal for marketers, advertisers, or anyone needing quick, conversational access to their Meta Ads performance data and campaign structure without logging into the Ad Manager directly. Requires: OpenAI and Facebook Graph API credentials.
by Vladimir
This workflow contains community nodes that are only compatible with the self-hosted version of n8n. Automated Meeting Bot: Google Meet → AI Summary → Slack How it works Automatically joins Google Meet calls, transcribes conversations, and posts AI-generated summaries to Slack - completely hands-free meeting notes for busy teams. The workflow triggers when a Google Meet starts in your calendar, joins the meeting with a bot, waits for completion, then generates and posts a structured summary to your Slack channel. Set up steps Connect Google Calendar API for meeting detection Set up Vexa.ai account and obtain API key for meeting bot functionality Configure OpenAI API credentials for AI-powered summarization Create Slack bot token and add to desired channel Update calendar ID and Slack channel in workflow settings Test with a sample meeting to verify end-to-end functionality Keep detailed descriptions in sticky notes inside your workflow for easy configuration and troubleshooting.
by Ali Muthana
Who’s it for This template is for professionals, students, and investors who want a simple daily finance briefing. It is useful for anyone who follows private equity, mergers & acquisitions, and general market news but prefers short summaries instead of reading long articles. How it works The workflow runs twice a day using a schedule trigger (default 09:00 and 15:00). It pulls articles from three RSS feeds: NYT Private Equity, DealLawyers M&A, and Yahoo Finance. The items are merged and limited to the five most recent stories. A code node formats them into a clean block of text. An AI Agent rewrites each article into a short, engaging 5–6 sentence summary. The results are delivered directly to your inbox via Gmail. How to set up Add your Gmail credential and replace {{RECIPIENT_EMAIL}} with your email. Insert your OpenAI API key. (Optional) Replace the RSS feed URLs with your preferred sources. Adjust the schedule times if needed. Requirements n8n v1.112+ Gmail credential OpenAI API key How to customize You can add more feeds, increase the number of articles, or translate summaries into another language. You can also deliver the summaries to Slack, Notion, or Google Sheets instead of email.
by Joe Swink
This template has a two part setup: Ingest PDF files from S3, extract text, chunk, embed with OpenAI embeddings, and index into a Qdrant collection with metadata. Provide a chat entry point that uses an Agent with OpenAI to retrieve from the same Qdrant collection as a tool and answer proposal knowledge questions. What it does Lists objects in an S3 bucket, loops through keys, downloads each file, and extracts text from PDFs. Chunks text and loads it into Qdrant with metadata for retrieval. Exposes a chat trigger wired to an Agent using an OpenAI chat model. Adds a retrieve as tool Qdrant node so the Agent can ground answers in the indexed corpus. Why it is useful Simple pattern for building a proposal or knowledge base from PDFs stored in S3. End to end path from ingestion to retrieval augmented answers. Easy to swap models or collections, and to extend with more tools. Setup notes Attach your own AWS credentials to the two S3 nodes and set your bucket name. Attach your Qdrant credentials to both Qdrant nodes and set your collection. Attach your OpenAI credentials to the embedding and chat nodes. The sanitized template uses placeholders for bucket and collection names.