by Camille Roux
Automatically publish Lightroom photos to Instagram with short, human-sounding AI captions. This workflow pulls the next item from your Data Table queue, generates an on-brand caption from alt text + metadata, uploads via Instagram Graph API, and marks it posted. Use it together with “Lightroom Cloud → Photos Queue (AI Alt Text)” and “Lightroom Image Webhook (Direct JPEG for Instagram).” What it’s for Hands-free Lightroom-to-Instagram posting: schedule, caption with AI, and publish consistently using the Instagram Graph API. Parameters to set Instagram Graph API access token and Instagram Business/Creator account ID Posting schedule (cron/interval) + max posts per run Data Table name & status fields (posted timestamp, IG media ID) Caption rules: tone, max length, hashtags policy, CTA style Image source URL: public endpoint of Workflow 2 (Lightroom Image Webhook) Works best with Workflow 1: Lightroom Cloud → Photos Queue (AI Alt Text) Workflow 2: Lightroom Image Webhook (Direct JPEG for Instagram) Learn more & stay in the loop Want the full story (decisions, trade-offs, and tips) behind this Lightroom Cloud → Instagram automation? 👉 Read the write-up on my blog: camilleroux.com If you enjoy street & urban photography or you’re curious how I use these n8n workflows day-to-day: 👉 Follow my photo account on Instagram: @camillerouxphoto 👉 Follow me on other networks: links available on my site (X, Bluesky, Mastodon, Threads)
by Noriwal AlMa Jr
WhatsApp Audio Transcriber Bot Overview Automatically transcribe WhatsApp audio messages to text using AI-powered speech recognition. This workflow receives audio messages via webhook, processes them through Groq's Whisper API, and replies with the transcribed text in the same conversation. Use Cases Accessibility**: Help users with hearing impairments access audio content Workplace Communication**: Quickly scan audio messages in professional settings Language Learning**: Get text versions of audio for better comprehension Meeting Notes**: Convert voice messages to searchable text format Multilingual Support**: Transcribe audio in Portuguese (configurable for other languages) How it Works Message Reception: Webhook receives WhatsApp messages in real-time Audio Detection: Filters only audio messages using Switch node Format Conversion: Converts base64 audio to MP3 file format AI Transcription: Processes audio through Groq API with Whisper Large V3 model Response Delivery: Sends transcribed text back to the original conversation Key Features ✅ Real-time Processing: Instant transcription of incoming audio messages ✅ High Accuracy: Uses Whisper Large V3 model for reliable transcription ✅ Auto-Reply: Automatically responds in the same WhatsApp conversation ✅ Message Quoting: References the original audio message in the reply ✅ Portuguese Optimized: Configured for Brazilian Portuguese transcription ✅ Self-Message Filtering: Ignores messages sent by the bot itself Prerequisites Required Services Evolution API**: WhatsApp integration service Groq API**: AI transcription service (Whisper model) n8n Instance**: Workflow automation platform API Keys & Configuration Groq API key (set as environment variable: GROQ_API_KEY) Evolution API instance properly configured Webhook URL configured in Evolution API Setup Instructions Import Workflow: Import the JSON workflow into your n8n instance Configure Environment: Set GROQ_API_KEY environment variable Setup Webhook: Configure Evolution API to send messages to the webhook endpoint Test Connection: Send a test audio message to verify the workflow Workflow Nodes Webhook**: Receives WhatsApp messages from Evolution API Edit Fields**: Extracts relevant data (number, name, message, audio) Switch**: Filters only audio messages (audioMessage type) Convert to File**: Transforms base64 audio to MP3 format HTTP Request**: Sends audio to Groq API for transcription Evolution API**: Sends transcribed text back to WhatsApp Configuration Options Groq API Settings Model**: whisper-large-v3 Language**: pt (Portuguese) Temperature**: 0 (maximum accuracy) Response Format**: json Customization Options Change language by modifying the language parameter Adjust temperature for different accuracy/creativity balance Modify response format for different output styles Response Format Mensagem transcrita automaticamente. [Transcribed text content] Technical Specifications Input**: Base64 encoded audio from WhatsApp Output**: Plain text transcription Processing Time**: Typically 2-5 seconds per audio message Supported Audio**: MP3 format (converted from WhatsApp audio) Language**: Portuguese (configurable) Troubleshooting No Response**: Check Groq API key and webhook configuration Poor Transcription**: Ensure audio quality and check language settings Error Messages**: Monitor n8n execution logs for detailed error information Version History v0.0.1**: Initial release with basic transcription functionality
by Joseph
This n8n workflow converts various file formats (.pdf, .doc, .png, .jpg, .webp) to clean markdown text using the datalab.to API. Perfect for AI agents, LLM processing, and RAG (Retrieval Augmented Generation) data preparation for vector databases. Workflow Description Input Trigger Node**: Form trigger or webhook to accept file uploads Supported Formats**: PDF documents, Word documents (.doc/.docx), and images (PNG, JPG, WEBP) Processing Steps File Validation: Check file type and size constraints HTTP Request Node: Method: POST to https://api.datalab.to/v1/marker Headers: X-API-Key with your datalab.to API key Body: Multipart form data with the file Response Processing: Extract the converted markdown text Output Formatting: Clean and structure the markdown for downstream use Output Clean, structured markdown text ready for: LLM prompt injection Vector database ingestion AI agent knowledge base processing Document analysis workflows Setup Instructions Get API Access: Sign up at datalab.to to obtain your API key Configure Credentials: Create a new credential in n8n Add Generic Header: X-API-Key with your API key as the value Import Workflow: Ready to process files immediately Use Cases AI Workflows**: Convert documents for LLM analysis and processing RAG Systems**: Prepare clean text for vector database ingestion Content Management**: Batch convert files to searchable markdown format Document Processing**: Extract text from mixed file types in automated pipelines The workflow handles the complexity of different file formats while delivering consistent, AI-ready markdown output for your automation needs.
by Gegenfeld
AI Image Generator Workflow This workflow lets you automatically generate AI images with the APImage API 🡥, download the generated image, and upload it to any serivce you want (e.g., Google Drive, Notion, Social Media, etc.). 🧩 Nodes Overview 1. Generate Image (Trigger) This node contains the following fields: Image Prompt*: *(text input) Dimensions**: Square, Landscape, Portrait AI Model**: Basic, Premium This acts as the entry point to your workflow. It collects input and sends it to the APImage API node. Note: You can swap this node with any other node that lets you define the parameters shown above._** 2. APImage API (HTTP Request) This node sends a POST request to: https://apimage.org/api/ai-image-generate The request body is dynamically filled with values from the first node: { "prompt": "{{ $json['Describe the image you want'] }}", "dimensions": "{{ $json['Dimensions'] }}", "model": "{{ $json['AI Model'] }}" } ✅ Make sure to set your API Key in the Authorization header like this: Bearer YOUR_API_KEY 🔐 You can find your API Key in your APImage Dashboard 🡥 3. Download Image (HTTP Request) Once the image is generated, this node downloads the image file using the URL returned by the API: {{ $json.images[0] }} The image is stored in the output field: generated_image 4. Upload to Google Drive This node takes the image from the generated_image field and uploads it to your connected Google Drive. 📁 You can configure a different target folder or replace this node with: Dropbox WordPress Notion Shopify Any other destination Make sure to pass the correct filename and file field, as defined in the "Download Image" node. Set up Google Drive credentials 🡥 ✨ How To Get Started Double-click the APImage API node. Replace YOUR_API_KEY with your actual key (keep Bearer prefix). Open the Generate Image node and test the form. 🔗 Open the Dashboard 🡥 🔧 How to Customize Replace the Form Trigger with another node if you're collecting data elsewhere (e.g., via Airtable, Notion, Webhook, Database, etc.) Modify the Upload node if you'd like to send the image to other tools like Slack, Notion, Email, or an S3 bucket. 📚 API Docs & Resources APImage API Docs 🡥 n8n Documentation 🡥 🖇️ Node Connections Generate Image → APImage API → Download Image → Upload to Google Drive ✅ This template is ideal for: Content creators automating media generation SaaS integrations for AI tools Text-to-image pipelines
by Wevanta Infotech
LinkedIn Auto-Post Agent for n8n 🚀 Automate your LinkedIn presence with AI-powered content generation This n8n workflow automatically generates and publishes engaging LinkedIn posts using OpenAI's GPT models. Perfect for professionals and businesses who want to maintain an active LinkedIn presence without manual effort. ✨ Features 🤖 AI-Powered Content**: Generate professional LinkedIn posts using OpenAI GPT-3.5-turbo or GPT-4 ⏰ Automated Scheduling**: Post content automatically on weekdays at 9 AM (customizable) 🎯 Manual Trigger**: Generate and post content on-demand 🔒 Secure**: All credentials stored securely in n8n's encrypted credential system 📊 Error Handling**: Built-in retry logic and error notifications 🎨 Customizable**: Easily modify prompts, scheduling, and content parameters 🏗️ Architecture This workflow uses a streamlined 3-node architecture: Schedule/Manual Trigger → OpenAI Content Generation → LinkedIn Post Node Details Schedule Trigger: Automatically triggers the workflow (default: weekdays at 9 AM) Manual Trigger: Allows on-demand content generation OpenAI Content Generation: Creates LinkedIn-optimized content using AI LinkedIn Post: Publishes the generated content to LinkedIn 📋 Prerequisites n8n instance (self-hosted or cloud) OpenAI API account and API key LinkedIn account with API access Basic familiarity with n8n workflows 🚀 Quick Start 1. Import the Workflow Download the linkedin-auto-post-agent.json file In your n8n instance, go to Workflows → Import from File Select the downloaded JSON file Click Import 2. Set Up Credentials OpenAI API Credentials Go to Credentials in your n8n instance Click Create New Credential Select OpenAI Enter your OpenAI API key Name it "OpenAI API" and save LinkedIn OAuth2 Credentials Create a LinkedIn App at LinkedIn Developer Portal Configure OAuth 2.0 settings: Redirect URL: https://your-n8n-instance.com/rest/oauth2-credential/callback Scopes: r_liteprofile, w_member_social In n8n, create new LinkedIn OAuth2 credentials Enter your LinkedIn App's Client ID and Client Secret Complete the OAuth authorization flow 3. Configure the Workflow Open the imported workflow Click on the OpenAI Content Generation node Select your OpenAI credentials Customize the content prompt if desired Click on the LinkedIn Post node Select your LinkedIn OAuth2 credentials Save the workflow 4. Test the Workflow Click the Manual Trigger node Click Execute Node to test content generation Verify the generated content in the LinkedIn node output Check your LinkedIn profile to confirm the post was published 5. Activate Automated Posting Click the Active toggle in the top-right corner The workflow will now run automatically based on the schedule ⚙️ Configuration Options Scheduling The default schedule posts content on weekdays at 9 AM. To modify: Click the Schedule Trigger node Modify the Cron Expression: 0 9 * * 1-5 0 9 * * 1-5: Weekdays at 9 AM 0 12 * * *: Daily at noon 0 9 * * 1,3,5: Monday, Wednesday, Friday at 9 AM Content Customization Modify the OpenAI prompt to change content style: Click the OpenAI Content Generation node Edit the System Message to adjust tone and style Modify the User Message to change topic focus Example Prompts Professional Development Focus: Create a LinkedIn post about professional growth, skill development, or career advancement. Keep it under 280 characters and include 2-3 relevant hashtags. Industry Insights: Generate a LinkedIn post sharing an industry insight or trend in technology. Make it thought-provoking and include relevant hashtags. Motivational Content: Write an inspiring LinkedIn post about overcoming challenges or achieving goals. Keep it positive and engaging with appropriate hashtags. Model Selection Choose between OpenAI models based on your needs: gpt-3.5-turbo**: Cost-effective, good quality gpt-4**: Higher quality, more expensive gpt-4-turbo**: Latest model with improved performance 🔧 Advanced Configuration Error Handling The workflow includes built-in error handling: Retry Logic**: 3 attempts with 1-second delays Continue on Fail**: Workflow continues even if individual nodes fail Error Notifications**: Optional email/Slack notifications on failures Content Review Workflow (Optional) To add manual content review before posting: Add a Wait node between OpenAI and LinkedIn nodes Configure webhook trigger for approval Add conditional logic based on approval status Rate Limiting To respect API limits: OpenAI: 3 requests per minute (default) LinkedIn: 100 posts per day per user Adjust scheduling frequency accordingly 📊 Monitoring and Analytics Execution History Go to Executions in your n8n instance Filter by workflow name to see all runs Click on individual executions to see detailed logs Key Metrics to Monitor Success Rate**: Percentage of successful executions Content Quality**: Review generated posts periodically API Usage**: Monitor OpenAI token consumption LinkedIn Engagement**: Track post performance on LinkedIn 🛠️ Troubleshooting Common Issues OpenAI Node Fails Verify API key is correct and has sufficient credits Check if you've exceeded rate limits Ensure the model name is spelled correctly LinkedIn Node Fails Verify OAuth2 credentials are properly configured Check if LinkedIn app has required permissions Ensure the content doesn't violate LinkedIn's posting policies Workflow Doesn't Trigger Confirm the workflow is marked as "Active" Verify the cron expression syntax Check n8n's timezone settings Debug Mode Enable Save Manual Executions in workflow settings Run the workflow manually to see detailed execution data Check each node's input/output data 🔒 Security Best Practices Store all API keys in n8n's encrypted credential system Regularly rotate API keys (monthly recommended) Use environment variables for sensitive configuration Enable execution logging for audit trails Monitor for unusual API usage patterns 📈 Optimization Tips Content Quality Review and refine prompts based on output quality A/B test different prompt variations Monitor LinkedIn engagement metrics Adjust posting frequency based on audience response Cost Optimization Use gpt-3.5-turbo for cost-effective content generation Set appropriate token limits (200 tokens recommended) Monitor OpenAI usage in your dashboard Performance Keep workflows simple with minimal nodes Use appropriate retry settings Monitor execution times and optimize if needed 🤝 Contributing We welcome contributions to improve this workflow: Fork the repository Create a feature branch Make your improvements Submit a pull request 📄 License This project is licensed under the MIT License - see the LICENSE file for details. 🆘 Support If you encounter issues or have questions: Check the troubleshooting section above Review n8n's official documentation Join the n8n community forum Create an issue in this repository 🔗 Useful Links n8n Documentation OpenAI API Documentation LinkedIn API Documentation n8n Community Forum Happy Automating! 🚀 This workflow helps you maintain a consistent LinkedIn presence while focusing on what matters most - your business and professional growth.
by Juan Cristóbal Andrews
Who's it for This template is designed for filmmakers, content creators, social media managers, and AI developers who want to harness OpenAI's Sora 2 for creating physically accurate, cinematic videos with synchronized audio. Whether you're generating realistic scenes from text prompts or reference images with proper physics simulation, creating multi-shot sequences with persistent world state, or producing content with integrated dialogue and sound effects, this workflow streamlines the entire video generation process from prompt to preview and Google Drive upload. What it does This workflow: Accepts a text prompt, optional reference image, OpenAI API key, and generation settings via form submission Validates reference image format (jpg, png, or webp only) Sends the prompt and optional reference to the Sora 2 API endpoint to request video generation Continuously polls the video rendering status (queued → in progress → completed) Waits 30 seconds between status checks to avoid rate limiting Handles common generation errors with descriptive error messages Automatically fetches the generated video once rendering is complete Downloads the final .mp4 file Uploads the resulting video to your Google Drive Displays the download link and video preview/screenshot upon completion How to set up 1. Get Your OpenAI API Key You'll need an OpenAI API key to use this workflow. Here's the general process: Create an OpenAI account at https://platform.openai.com Set up billing - Add payment information to enable API access Generate your API key through the API keys section in your OpenAI dashboard Copy and save your key immediately - you won't be able to view it again! ⚠️ Important: Your API key will start with sk- and should be kept secure. If you lose it, you'll need to generate a new one. 2. Connect Google Drive Add your Google Drive OAuth2 credential to n8n Grant necessary permissions for file uploads 3. Import and Run Import this workflow into n8n Execute the workflow via the form trigger Enter your API key, prompt, and desired settings in the form Optionally upload a reference image** to guide the video generation All generation settings are configured through the form, including: Model**: Choose between sora-2 or sora-2-pro Duration**: 4, 8, or 12 seconds Resolution**: Portrait or Landscape options Reference Image** (optional): Upload jpg, png, or webp matching your target resolution ⚠️ Sora 2 Pricing The workflow supports two Sora models which have the following API pricing: Sora 2 - $0.10/sec Portrait: 720x1280 Landscape: 1280x720 Sora 2 Pro - $0.30/sec (720p) or $0.50/sec (1080p) 720p - Portrait: 720x1280, Landscape: 1280x720 1080p - Portrait: 1024x1792, Landscape: 1792x1024 Duration options: 4, 8, 12 seconds (default: 4) Example costs: 4-second video with Sora 2: $0.40 12-second video with Sora 2 Pro (1080p): $6.00 Requirements Valid OpenAI API key (starting with sk-) Google Drive OAuth2 credential connected to n8n Reference image** (optional): jpg, png, or webp format - should match your selected video resolution for best results How to customize the workflow Modify generation parameters Edit the form fields to include additional options: Style presets (cinematic, anime, realistic) Camera movement preferences Audio generation options Image reference strength/influence settings It's recommended to visit the official documentation on prompting for a detailed Sora 2 guide. Adjust polling behavior Change the Wait node duration (default: 30 seconds) Modify the Check Status polling frequency based on typical generation times Add timeout logic for very long renders Customize error handling Extend error messages for additional failure scenarios Add retry logic for transient errors Configure notification webhooks for error alerts Alternative upload destinations Replace the Google Drive node with: Dropbox AWS S3 Azure Blob Storage YouTube direct upload Slack/Discord notification with video attachment Enhance result display Customize the completion form to show additional metadata Add video thumbnail generation Include generation parameters in the results page Enable direct playback in the completion form Workflow Architecture Step-by-step flow: Form Submission → User inputs text prompt, optional reference image, API key, and generation settings Create Video → Sends request to Sora 2 API endpoint with all parameters and reference image (if provided) Check Status → Polls the API for video generation status Status Decision → Routes based on status: Queued → Wait 30 seconds → Check Status again In Progress → Wait 30 seconds → Check Status again Completed → Proceed to download Failed → Display descriptive error message Wait → 30-second delay between status checks Download → Fetches the generated video file Google Drive → Uploads .mp4 to your Drive Completion Form → Displays download link and video preview/screenshot If you have any questions, just contact me on Linkedin Ready to create cinematic AI videos with physics-accurate motion, synchronized audio, and optional image references? Import this workflow and start generating! 🎬✨
by System Admin
Tagged with: , , , ,
by System Admin
Tagged with: , , , ,
by Viktor Klepikovskyi
n8n Asynchronous Workflow with Wait Node POC This template contains a two-part workflow designed to demonstrate a proof-of-concept for asynchronous and parallel execution of tasks in n8n. Purpose The purpose of this template is to showcase how you can run multiple long-running tasks simultaneously without blocking your main workflow. It utilizes the "Wait For Sub-workflow Completion" option and the "Wait" node to effectively manage concurrent execution and collect results from sub-workflows via webhooks. This pattern is ideal for use cases involving batch processing or any scenario where a workflow needs to trigger multiple independent tasks and wait for all of them to report back. Setup Instructions Import: Import both the "Main Orchestrator" and "Asynchronous Worker" workflows into your n8n instance. Link Workflows: In the "Main Orchestrator" workflow, ensure the "Execute Workflow" node is correctly configured to call the "Asynchronous Worker" workflow. You can select it by its name from the dropdown menu. Configure: The template is pre-configured to run two parallel tasks with different wait durations to simulate a real-world scenario. You can adjust the parameters on the "Execute Workflow" node to test different wait times. Execution: Execute the "Main Orchestrator" workflow. You will see the workflow pause at the "Wait" nodes while the "Asynchronous Worker" workflows run in the background. Once they complete, they will call back via the webhook, allowing the main workflow to resume and summarize the results. For a detailed walkthrough of how this template works and an explanation of the underlying concepts, please read the full blog post here
by KlickTipp
Community Node Disclaimer: This workflow uses KlickTipp community nodes. Introduction This workflow monitors orders and customers in Adobe Commerce, automatically creating or updating contacts in KlickTipp, enriching profiles for segmentation and automated messaging. Tags are applied dynamically: high-value orders (≥100) receive a "Premium Customer" tag, and purchases with certain SKUs (e.g., clothing) are assigned product-based tags. Perfect for e-commerce businesses, online retailers, and digital shops that want to eliminate manual data entry and ensure every buyer and customer receives the right messages. Setup Instructions KlickTipp Preparation Prepare custom fields Payment ID Total Receipt URL Products Prepare tags: Premium customer Clothing buyer Credential Configuration Connect your Magento account using an Access Token/Base URL from the Magento Admin Dashboard (System → Extensions → Integrations). Authenticate your KlickTipp connection with username/password credentials (API access required). Customization Trigger options:* If your Commerce edition supports *webhooks, you can replace polling with a **Webhook trigger. Cadence & overlap:** 1–30 min are typical; a 1–2 min overlap in the filter to avoid gaps. Routing variants:** Change the SKU list, switch to category checks, or add more value tiers.
by Rahul Joshi
Description: Bridge the gap between Monday.com and Jira with this intelligent n8n automation template. The workflow listens for new or updated Monday.com items, normalizes data fields, and syncs them with your Jira backlog—automatically detecting duplicates using fuzzy matching logic. It then creates or updates Jira issues accordingly and logs the results back into Monday.com, ensuring your product and engineering teams stay aligned in real time. Ideal for project managers, product ops, and agile teams who manage intake in Monday.com but execute tasks in Jira. ✅ What This Template Does (Step-by-Step) 🌐 Webhook Trigger from Monday.com: Starts automatically whenever a new task or update occurs in Monday.com. 🔄 Normalize Monday.com Data: Extracts and cleans key data fields such as summary, component, severity, and description for consistent formatting before sending to Jira. 📊 Query Jira Backlog: Fetches all existing issues from Jira to establish a baseline for duplicate detection. 🔍 Detect Duplicates with Fuzzy Matching: Compares Monday item titles with Jira summaries using character-level similarity (>80% threshold) to detect potential duplicates even with minor variations. ⚖️ Decision Gate: Duplicate or New: If duplicate found: updates the existing Jira issue with new data. If no match: creates a new Jira task in the appropriate project and issue type. 🔧 Update Existing Jira Issues: Automatically enhances Jira tickets with latest information from Monday.com including updated priority, description, and reference links. ✨ Create New Jira Issues: For new requests, generates a Jira task with details mapped from Monday—complete with severity, component, and description. 📝 Log Actions Back to Monday.com: Posts an update back to the originating Monday item confirming whether the action created or updated a Jira issue, including timestamp and Jira key link. 📋 (Optional) Create New Monday Board: Can also auto-create a private board in Monday.com for project-specific task organization. 🧠 Key Features 🔍 Smart fuzzy duplicate detection (>80% match threshold) ⚙️ Full bidirectional visibility between Monday.com and Jira 📢 Automatic task creation and update logic 🧾 Real-time status logging and audit trail in Monday.com 🔐 Secure API-based connections for both platforms 💼 Use Cases 💡 Sync product feedback and feature requests from Monday to Jira 🎯 Centralize intake forms and align engineering backlogs 🤝 Eliminate duplicate Jira issues from multiple product submissions 📈 Maintain transparent traceability across tools 📦 Required Integrations Monday.com API – for item intake and updates Jira Software Cloud API – for issue creation and modification 🎯 Why Use This Template? ✅ Eliminates duplicate Jira issues automatically ✅ Keeps Monday.Com and Jira perfectly aligned ✅ Saves hours of manual task reconciliation ✅ Ideal for agile and cross-functional collaboration
by Guy
General principles This template automates the management of marketing campaign from a CRM based on Airtable, using Brevo for sending and tracking emails. It is based on two main steps: Sending emails to targeted companies in Airtable, creating an interaction record for each sent email. Real-time tracking of events (email delivered / opened / clicked, unsubscribe request) via a n8n webhook, updating the corresponding interaction or company record. This workflow provides precise tracking of marketing actions and facilitates the history of interactions with prospects or clients. Prerequisites Airtable with at least 3 tables: Company: Contains information about your clients or prospects. Interaction: Log of exchanges and events. Campaign: Information about the ongoing campaign. Brevo: A predefined email template, which can include a link to a form. API access for sending and tracking emails. Step-by-step description Part 1: Sending Emails Selecting targeted companies The workflow queries the Company table in Airtable, filtering on a tag or a specific field related to the campaign (e.g., Campaign = "1"). Preparing data for Brevo For each company, retrieves the necessary information: email address. Sending the email via Brevo Uses a Brevo Send Template node with a predefined template. Brevo returns a unique identifier for each email sent. Creating an interaction in Airtable A record is added to the Interaction table containing: Company Date and time of interaction Media = email Brevo email identifier Part 2: Tracking Events Receiving Brevo events Brevo triggers a webhook to n8n for each event: Delivered Opened Clicked Unsubscribed Matching with the interaction Based on the Brevo identifier received, the workflow finds the corresponding Interaction in Airtable. Updating the interaction The interaction status is updated based on the event (e.g., "Opened" with date and time). Managing unsubscribes In case of an unsubscribe: The workflow finds the Company associated via the interaction. A specific field in the Company table (e.g., Opt-in) is updated to "No" in order to exclude this company from future campaigns. ✅ Benefits of this template Automated sending and real-time tracking. Interaction history stored in the CRM. RGPD (European regulations) compliance through automatic unsubscribe management. Clear view of campaign effectiveness (open rates, clicks, etc.).