by Rohit Dabra
Odoo CRM MCP Server Workflow 📖 Overview This workflow connects an AI Agent with Odoo CRM using the Model Context Protocol (MCP). It allows users to manage CRM data in Odoo through natural language chat commands. The assistant interprets the user’s request, selects the appropriate Odoo action, and executes it seamlessly. 🔹 Key Features Contacts Management**: Create, update, delete, and retrieve contacts. Opportunities Management**: Create, update, delete, and retrieve opportunities. Notes Management**: Create, update, delete, and retrieve notes. Conversational AI Agent**: Understands natural language and maps requests to Odoo actions. Model Used**: OpenAI Chat Model. This makes it easy for end-users to interact with Odoo CRM without needing technical commands—just plain language instructions. ▶️ Demo Video Watch the full demo here: 👉 YouTube Demo Video ⚙️ Setup Guide Follow these steps to set up and run the workflow: 1. Prerequisites An Odoo instance configured with CRM enabled. An n8n or automation platform account where MCP workflows are supported. An OpenAI API key with access to GPT models. MCP Server installed and running. 2. Import the Workflow Download the provided workflow JSON file. In your automation platform (n8n, Langflow, or other MCP-enabled tool), choose Import Workflow. Select the JSON file and confirm. 3. Configure MCP Server Go to your MCP Server Trigger node in the workflow. Configure it to connect with your Odoo instance. Set API endpoint. Provide authentication credentials (API key). Test the connection to ensure the MCP server can reach Odoo. 4. Configure the OpenAI Model Select the OpenAI Chat Model node in the workflow. Enter your OpenAI API Key. Choose the model (e.g., gpt-5 or gpt-5-mini). 5. AI Agent Setup The AI Agent node links the Chat Model, Memory, and MCP Client. Ensure the MCP Client is mapped to the correct Odoo tools (Contacts, Opportunities, Notes). The System Prompt defines assistant behavior—use the tailored system prompt provided earlier. 6. Activate and Test Turn the workflow ON (toggle Active). Open chat and type: "Create a contact named John Doe with email john@example.com." "Show me all opportunities." "Add a note to John Doe saying 'Follow-up scheduled for Friday'." Verify the results in your Odoo CRM. ✅ Next Steps Extend functionality with Tasks, Stages, Companies, and Communication Logs for a complete CRM experience. Add confirmation prompts for destructive actions (delete contact/opportunity/note). Customize the AI Agent’s system prompt for your organization’s workflows.
by Satva Solutions
🟢 Manual Trigger Workflow starts manually to initiate the reconciliation process on demand. 📄 Fetch Invoices & Bank Statements Retrieves invoice data and bank statement data from Google Sheets for comparison. 🔀 Merge Data Combines both datasets into a single structured dataset for processing. 🧩 Format Payload for AI Function node prepares and structures the merged data into a clean JSON payload for AI analysis. 🤖 AI Reconciliation AI Agent analyzes the invoice and bank statement data to identify matches, discrepancies, and reconciled entries. 🧮 Parse AI Output Parses the AI response into a structured format suitable for adding back to Google Sheets. 📊 Update Sheets Adds the reconciled data and reconciliation results into the target Google Sheet for recordkeeping. 🧾 Prerequisites ✅ OpenAI API Credentials Required for the AI Reconciliation node to process and match transactions. Add your OpenAI API key in n8n → Credentials → OpenAI. ✅ Google Sheets Credentials Needed to read invoice and bank statement data and to write reconciled results. Add credentials in n8n → Credentials → Google Sheets. ✅ Google Sheets Setup The connected spreadsheet must contain the following tabs: Invoices – for invoice data Bank_Statement – for bank transaction data Reconciled_Data – for storing the AI-processed reconciliation output ✅ Tab Structure & Required Headers Invoices Sheet Columns: Invoice_ID Invoice_Date Customer_Name Amount Status Bank_Statement Sheet Columns: Transaction_ID Transaction_Date Description Debit/Credit Amount Reconciled_Data Sheet Columns: Invoice_ID Transaction_ID Matched_Status Remarks Confidence_Score ⚙️ n8n Environment Setup Ensure all nodes are connected correctly and the workflow has permission to access the required sheets. Test each fetch and write operation before running the full workflow.
by Bastian Diaz
🎯 Description Automatically generates, designs, stores, and logs complete Instagram carousel posts. It transforms a simple text prompt into a full post with copy, visuals, rendered images, Google Drive storage, and a record in Google Sheets. ⚙️ Use case / What it does This workflow enables creators, educators, or community managers to instantly produce polished, on-brand carousel assets for social media. It integrates OpenAI GPT-4.1, Pixabay, Templated.io, Google Drive, and Google Sheets into one continuous content-production chain. 💡 How it works 1️⃣ Form Trigger – Collects the user prompt via a simple web form. 2️⃣ OpenAI GPT-4.1 – Generates structured carousel JSON: titles, subtitles, topic, description, and visual keywords. 3️⃣ Code (Format content) – Parses the JSON output for downstream use. 4️⃣ Google Drive (Create Folder) – Creates a subfolder for the new carousel inside “RRSS”. 5️⃣ HTTP Request (Pixabay) – Searches for a relevant image using GPT’s visual suggestion. 6️⃣ Code (Get first result) – Extracts the top Pixabay result and image URL. 7️⃣ Templated.io – Fills the design template layers (titles/subtitles/topic/image). 8️⃣ HTTP Request (Download renders) – Downloads the rendered PNGs from Templated.io. 9️⃣ Google Drive (Upload) – Uploads the rendered images into the created folder. 10️⃣ Google Sheets (Save in DB) – Logs metadata (title, topic, folder link, description, timestamp, status). 🔗 Connectors used OpenAI GPT-4.1 (via n8n LangChain node) Templated.io API (design rendering) Pixabay API (stock image search) Google Drive (storage + folder management) Google Sheets (database / logging) Form Trigger (input collection) 🧱 Input / Output Input: User-submitted “Prompt” (text) via form Output: Generated carousel images stored in Google Drive Spreadsheet row in Google Sheets containing title, topic, description, Drive URL, status ⚠️ Requirements / Setup Valid credentials for: OpenAI API (GPT-4.1 access) Templated.io API key Pixabay API key Google Drive + Google Sheets OAuth connections Existing Google Drive folder ID for RRSS storage Spreadsheet with matching column headers (Created At, Title, Topic, Folder URL, Description, Status) Published form URL for user prompts 🌍 Example applications / extensions Educational themes (mental health, fitness, sustainability). Extend to auto-publish to Instagram Business via Meta API. Add Notion logging or automated email notifications. Integrate scheduling (Cron node) to batch-generate weekly carousels.
by yusan25c
How It Works This template is a workflow that registers Jira tickets to Pinecone. By combining it with the Automated Jira Ticket Responses with GPT-4 and Pinecone Knowledge Base template, you can continuously improve the quality of automated responses in Jira. Prerequisites A Jira account and credentials (API key and email address) A Pinecone account and credentials (API key and environment settings) OpenAI credentials (API key) Setup Instructions Jira Credentials Register your Jira credentials (API key and email address) in n8n. Vector Database Setup (Pinecone) Register your Pinecone credentials (API key and environment variables) in n8n. AI Node Configure the OpenAI node with your credentials (API key). Step by Step Scheduled Trigger The workflow runs at regular intervals according to the schedule set in the Scheduled Trigger node. Jira Trigger (Completed Tickets) Retrieves the summary, description, and comments of completed Jira tickets. Register to Pinecone Converts the retrieved ticket information into vectors and registers them in Pinecone. Notes Configure the Scheduled Trigger interval carefully to avoid exceeding API rate limits. Further Reference For a detailed walkthrough (in Japanese), see this article: 👉 Automating knowledge registration to Pinecone with n8n (Qiita) You can find the template file on GitHub here: 👉 Template File on GitHub
by Moe Ahad
How it works User enters name of a city for which most current weather information will be gathered Custom Python code processes the weather data and generates a custom email about the weather AI agent further customizes the email and add a related joke about the weather Recipient gets the custom email for the city Set up instructions Enter city to get the weather data Add OpenWeather API and replace <your_API_key> with your actual API key Add your OpenAI API in OpenAI Chat Model Node Add your Gmail credentials and specify a recipient for the custom email
by Raz Hadas
This n8n template demonstrates how to automate stock market technical analysis to detect key trading signals and send real-time alerts to Discord. It's built to monitor for the Golden Cross (a bullish signal) and the Death Cross (a bearish signal) using simple moving averages. Use cases are many: Automate your personal trading strategy, monitor a portfolio for significant trend changes, or provide automated analysis highlights for a trading community or client group. 💡 Good to know This template relies on the Alpha Vantage API, which has a free tier with usage limits (e.g., API calls per minute and per day). Be mindful of these limits, especially if monitoring many tickers. The data provided by free APIs may have a slight delay and is intended for informational and analysis purposes. Disclaimer**: This workflow is an informational tool and does not constitute financial advice. Always do your own research before making any investment decisions. ⚙️ How it works The workflow triggers automatically every weekday at 5 PM, after the typical market close. It fetches a list of user-defined stock tickers from the Set node. For each stock, it gets the latest daily price data from Alpha Vantage via an HTTP Request and stores the new data in a PostgreSQL database to maintain a history. The workflow then queries the database for the last 121 days of data for each stock. A Code node calculates two Simple Moving Averages (SMAs): a short-term (60-day) and a long-term (120-day) average for both today and the previous day. Using If nodes, it compares the SMAs to see if a Golden Cross (short-term crosses above long-term) or a Death Cross (short-term crosses below long-term) has just occurred. Finally, a formatted alert message is sent to a specified Discord channel via a webhook. 🚀 How to use Configure your credentials for PostgreSQL and select them in the two database nodes. Get a free Alpha Vantage API Key and add it to the "Fetch Daily History" node. For best practice, create a Header Auth credential for it. Paste your Discord Webhook URL into the final "HTTP Request" node. Update the list of stock symbols in the "Set - Ticker List" node to monitor the assets you care about. The workflow is set to run on a schedule, but you can press "Test workflow" to trigger it manually at any time. ✅ Requirements An Alpha Vantage account for an API key. A PostgreSQL database to store historical price data. A Discord account and a server where you can create a webhook. 🎨 Customising this workflow Easily change the moving average periods (e.g., from 60/120 to 50/200) by adjusting the SMA_SHORT and SMA_LONG variables in the "Compute 60/120 SMAs" Code node. Modify the alert messages in the "Set - Golden Cross Msg" and "Set - Death Cross Msg" nodes. Swap out Discord for another notification service like Slack or Telegram by replacing the final HTTP Request node.
by Can KURT
n8n – Outlook AI Categorization & Labeling (Fully Automated) > Zero manual mapping. The workflow automatically discovers your Outlook folders, understands the context, assigns the correct category, and moves the email into the right folder. It uses the original Microsoft Outlook nodes plus an AI Agent. You can connect OpenAI or any other LLM provider. ✨ Features Self-Discovery:** Scans your Outlook folders automatically – no manual mapping required. AI-Powered Decisions:** Considers sender, subject, content, links, attachments, timing, and business context. Label + Move:** Assigns the right Outlook category and moves the email into the correct folder. Dual Category Logic:** Can apply both a primary and a secondary category (e.g., Action + Project). Error Handling:** Captures errors and continues without breaking the workflow. Flexible AI Backend:** Replace OpenAI with your own LLM if preferred. 🚀 Setup (5 Steps) Connect Outlook In n8n → Credentials → Microsoft Outlook, grant at least Mail.ReadWrite. Connect AI In n8n → Credentials, set up OpenAI (or another model). Works best with GPT-4.x or GPT-4o. Import the Workflow n8n → Workflows → Import from File/Clipboard and paste the provided JSON. Enable Trigger Adjust the Schedule Trigger (e.g., every 5 minutes). Run & Verify Test run and watch emails get categorized and moved automatically. 🧠 How It Works Schedule Trigger pulls new emails Loop Over Items processes them one by one Markdown / varEmail cleans the content Get Many Folders fetches Outlook categories and folders Summarize + Code prepare category IDs AI Agent applies deep categorization logic Update Category applies the Outlook category Move Folder places the email in the right folder Error Handling ensures workflow stability 🧩 System Prompt Example You are an advanced AI email categorization system. Your mission is to intelligently analyze and categorize emails with maximum accuracy and context awareness. INTELLIGENT CATEGORIZATION ENGINE: Parse all available categories: {{ $json.category }} Multi-layer analysis: Sender, Subject, Body, Links, Attachments Prioritize: Security threats, Action Required, Business Context Specialized: SaaS, Hosting, E-commerce, Finance, Support, Corporate Anti-Spam: Pattern detection, spoofing, red-flag subjects Dual Logic: Primary + Secondary categories when applicable OUTPUT FORMAT (JSON only): { "subject": "EXACT_EMAIL_SUBJECT", "category": "PRIMARY_CATEGORY_FROM_AVAILABLE_LIST", "subCategory": "SECONDARY_CATEGORY_IF_APPLICABLE", "analysis": "Reasoning", "confidence": "HIGH/MEDIUM/LOW" } Available Categories: {{ $json.category }} ⚙️ Parameters & Notes Uses only existing Outlook categories (never invents new ones). Works with any LLM that supports Chat Completions. Requires Mail.ReadWrite permissions. Safe fallback: if unsure, it uses the Action category. 🛡️ Security Processes only what is needed for classification. No external logging of email content unless you configure it. AI provider can be swapped for self-hosted LLMs for compliance. 📄 License & Sharing License:** MIT (or your choice). Tags:** n8n, Outlook, Email, AI, Automation, Categorization Import Method:** Copy/paste workflow JSON into n8n. ✅ Summary Connect → Import → Run. No manual mapping. AI-powered categorization that labels and organizes your Outlook mailbox automatically.
by Shohani
Overview This n8n workflow automatically fetches the latest post from a Telegram channel, translates it using OpenAI, and republishes it to another channel. It supports text, images, and videos. Features Works Without Admin Privileges** - Does not require any bot to be an admin in the source channel. Scheduled execution** - Runs daily at a configurable time AI-powered translation** - Uses OpenAI GPT-4o-mini for natural translations Multi-media support** - Handles text, images, and videos Easy configuration** - All settings in one centralized node Automatic content cleaning** - Removes original channel signatures Prerequisites Required Credentials Telegram Bot API Create a bot via @BotFather Get your bot token Add the bot as an admin to your target channel OpenAI API Sign up at OpenAI Platform Generate an API key Ensure you have sufficient credits Channel Requirements Source Telegram channel must be public Bot must have admin rights in the target channel Setup Instructions 1. Import the Workflow Copy the workflow JSON and import it into your n8n instance The workflow will be imported in inactive state 2. Configure Credentials Telegram Bot Credentials Go to Credentials → Add Credential Select Telegram Enter your bot token from BotFather Test the connection Save as "TelegramBot" OpenAI Credentials Go to Credentials → Add Credential Select OpenAI Enter your OpenAI API key Save as "OpenAI API" 3. Configure Channel Settings Open the "Set Source Channel" node and modify: sourceChannel: "channel_here", // Source channel username (without @) targetChannel: "@your_channel_here", // Target channel (@channel or chat_id) targetLanguage: "Persian", // Target language for translation channelSignature: "signature text" // The channel signature to replaced 4. Adjust Schedule (Optional) Open the "Daily Schedule" node Default: Runs daily at 9:00 AM Modify triggerAtHour and triggerAtMinute as needed 5. Test the Workflow Click "Execute Workflow" to test manually Check if content appears in your target channel Verify translation quality and formatting 6. Activate the Workflow Toggle the workflow to Active status Monitor execution logs for any errors Content Filtering Modify the "Clean Post Content" node to remove specific text patterns: let cleanPost = $input.first().json.post .replaceAll('unwanted_text', '') .replaceAll(/regex_pattern/g, '') .trim(); Multiple Source Channels To monitor multiple channels: Duplicate the workflow Change the sourceChannel in each copy Use different schedules to avoid conflicts Custom Scheduling The Schedule Trigger supports various patterns: Hourly**: { "triggerAtMinute": 0 } Weekly**: { "triggerAtWeekday": 1, "triggerAtHour": 9 } Multiple times**: Use multiple schedule nodes Troubleshooting Common Issues No content fetched Verify source channel is public Check if channel name is correct (without @) Ensure channel has recent posts Translation fails Verify OpenAI API key is valid Check API usage limits and credits Ensure content is not empty Can't send to target channel Verify bot is admin in target channel Check channel username/ID format Test bot permissions manually Compliance Respect copyright and fair use policies Add proper attribution when required Follow Telegram's Terms of Service
by Sridevi Edupuganti
Telegram Voice → AI Summary & Sentiment Analysis via Gmail This n8n template demonstrates how to capture Telegram voice messages, transcribe them into text using AssemblyAI, analyze the transcript with AI for summary and sentiment insights, and finally deliver a structured email report via Gmail. Use cases Automating meeting or lecture voice note transcriptions. Gathering student feedback or training session insights from voice messages. Quickly summarizing Telegram-delivered audio inputs into structured reports. Reducing manual effort in capturing sentiment and key action items from conversations. How it works A voice message is sent to a connected Telegram Bot. The workflow fetches the file and uploads it to AssemblyAI. AssemblyAI generates a transcript from the audio. The transcript is analyzed by OpenAI to extract: Executive summary (120–180 words) Sentiment label and score Key points Action items (if any) Notable quotes Topics The formatted analysis is sent as an email report using Gmail. The workflow ends with a clean summary email containing actionable insights. How to use Import this workflow into your n8n instance. Set up and connect the required credentials: Telegram Bot API token AssemblyAI API key OpenAI API key Gmail OAuth2 account Replace placeholders (e.g., <<YOUR_EMAIL ID>> and <<YOUR_ASSEMBLYAI_API_KEY>>) with your actual values. Start the workflow. Whenever a voice message is received on the Telegram Bot, the workflow will process it end-to-end and deliver a polished email report. Requirements Telegram Bot account (API token) AssemblyAI account with API key OpenAI account with API key Gmail OAuth2 credentials configured in n8n Active n8n instance Customising this workflow You can customize the email formatting, sentiment thresholds, or extend the workflow to save transcripts into Google Drive, Airtable, or any other connected apps. Additionally, you can trigger the same workflow from multiple input sources (e.g., local audio files, Google Drive links, or Telegram).
by Yaron Been
Create Multi-Channel Content with O3 Director & GPT-4 Specialist Agents This n8n workflow creates a complete AI-powered content department. It starts when a chat request is received, then a Content Director Agent (powered by OpenAI O3) analyzes the request and delegates tasks to specialized agents (blogs, social, video, email, website, strategy). Each agent is powered by GPT-4.1-mini, keeping costs low and quality high. ✅ 📩 Section 1: Trigger & Director Setup ⚙️ Nodes 1️⃣ When Chat Message Received What it does:** Starts the workflow whenever a user sends a content request. Why it’s useful:** Allows real-time or on-demand content creation from chat inputs. 2️⃣ Content Director Agent (O3) What it does:** Analyzes user request, defines the best content mix, and delegates tasks to specialist agents. Why it’s useful:** Keeps your brand voice consistent and ensures all channels align to a unified content strategy. 💡 Beginner Benefit ✅ Single entry point → just type your content idea once ✅ AI Director coordinates everything for you ✅ No need to manage multiple tools ✅ 👥 Section 2: Specialist Content Agents Each request gets routed to one (or several) of these agents, depending on the strategy. 3️⃣ Blog Content Writer Long-form articles, editorials, and thought leadership pieces. 4️⃣ Social Media Content Creator Social posts, captions, hashtags, and community content. 5️⃣ Video Script Writer YouTube scripts, explainer videos, and video marketing content. 6️⃣ Email Newsletter Writer Campaigns, nurture sequences, and newsletter copy. 7️⃣ Website Copy Specialist Landing pages, product descriptions, and conversion-focused web copy. 8️⃣ Content Strategist & Planner Editorial calendars, campaign planning, and audience strategy. 💡 Beginner Benefit ✅ Each agent is an expert in its field ✅ Powered by GPT-4.1-mini → faster and cheaper ✅ Parallel execution → all content types can be generated at once ✅ 🧠 Section 3: Language Models & Execution Flow O3 Model → Content Director** Handles analysis, strategy, and delegation. GPT-4.1-mini → All Specialists** Powers blog, social, video, email, website, and strategy agents. Think Node** Helps the Content Director organize reasoning before delegating tasks. 💡 Beginner Benefit ✅ AI Director (O3) = smart leadership ✅ Specialists (GPT-4.1-mini) = cost-efficient execution ✅ Built-in reasoning = better, more aligned campaigns 📊 Workflow Overview | Section | What Happens | Key Benefit | | --------------------------- | --------------------------------------------------------------- | -------------------------- | | 📩 Trigger & Director Setup | Workflow starts from chat → Content Director interprets request | Centralized control | | 👥 Specialist Agents | Each AI agent produces tailored content | Multi-channel coverage | | 🧠 Models & Flow | O3 for Director, GPT-4.1-mini for specialists | Cost-efficient + strategic | 📌 How You Benefit Overall ✅ One input → full content campaign ✅ Consistent brand voice across all platforms ✅ Cost-effective (O3 only for strategy, GPT-4.1-mini for bulk work) ✅ Ready-to-publish content in minutes ✨ You’ve basically built an AI marketing department inside n8n — no extra staff required! 🚀
by Jitesh Dugar
AI-Powered Incident Report Generator with Severity Alerts & PDF Delivery Description Automate incident reporting from detection to delivery with AI-driven analysis and professional documentation. This workflow transforms raw incident details into a clear, structured incident report, performs AI-based root cause and impact analysis, triggers real-time alerts for high-severity issues, and delivers a polished PDF report to your operations team — all with minimal manual effort. What This Workflow Does Turns incident reporting into a fast, reliable, and repeatable process: 🚨 Receive Incident Details – Accepts incident data via webhook (ID, severity, systems affected, description). 🧠 AI Analysis – Uses AI to generate root cause analysis, impact assessment, and recommended actions. ⚠️ Severity Check – Automatically detects high-severity incidents. 💬 Slack Alerts – Sends instant alerts for critical incidents to the ops channel. 📄 Professional Report Generation – Formats incident details into a clean, readable report. 📑 PDF Creation – Converts the report into a downloadable PDF. 📧 Email Delivery – Sends the report to the operations team. ☁️ Secure Storage – Saves a copy to Google Drive for records and compliance. Key Features 🤖 AI-Generated Analysis – Automated root cause, impact, and action recommendations ⚡ Real-Time Severity Alerts – Immediate Slack notifications for high-risk incidents 📄 Professional PDF Reports – Clean, structured, and ready for audits 📧 Automated Delivery – Email reports without manual follow-ups ☁️ Centralized Storage – Securely archive reports in Google Drive Perfect For 🏢 IT & Operations Teams 🔐 Security & Compliance Teams 🧑💼 Internal Ops & Risk Management 🏭 Enterprises handling system or process incidents 📊 Teams needing audit-ready incident documentation What You’ll Need Required Integrations 🤖 OpenAI – Incident analysis and recommendations 📄 HTMLCSS to PDF – Convert reports into PDFs 📧 Gmail – Send incident reports 💬 Slack – Severity-based alerts Optional ☁️ Google Drive – Store incident reports securely Quick Start 1️⃣ Import the workflow into n8n 2️⃣ Connect OpenAI, Slack, Gmail, and HTMLCSS to PDF credentials 3️⃣ Update Slack channel and email recipients 4️⃣ Trigger the webhook with incident data 5️⃣ Activate the workflow Expected Results ⚡ Faster incident response 🤖 Consistent AI-driven analysis 📉 Reduced manual reporting work 📄 Audit-ready incident documentation 🚨 Immediate visibility into critical incidents
by Manu
Run professional email campaigns with A/B testing, Google Sheets tracking, and Slack analytics. FEATURES: A/B testing with automatic 50/50 split Email validation and deduplication Batch processing with anti-spam delays Professional HTML email templates Complete campaign tracking and logging Real-time Slack notifications WORKFLOW: Trigger campaign (manual, scheduled Monday 9AM, or webhook) Read and validate contacts from Google Sheets Assign A/B variants automatically Send personalized HTML emails via Gmail Log results and update contact status Slack notifications on start/completion/errors SETUP: Create Google Sheet with 4 tabs: Contacts: name, email, segment, sent, unsubscribed, sent_date, campaign, variant, error_msg Campaigns: Campaign ID, Name, Start Date, Total Contacts, Valid, Invalid, Already Sent, Unsubscribed, Variant A, Variant B, Status, End Date, Duration Send Log: Timestamp, Campaign ID, Email, Name, Variant, Subject, Status Metrics: Campaign ID, Opens, Clicks, Unsubscribes Replace YOUR_DOCUMENT_ID in all Sheets nodes Connect Gmail credentials Connect Slack (#marketing, #errors channels) CUSTOMIZABLE: Company name, colors, logo in Configure Campaign node Email content and design in Prepare Email node A/B test subjects Batch size and delays IDEAL FOR: Newsletters, product launches, marketing campaigns, announcements, and any bulk email needs.