WhatsApp to Chatwoot message forwarder with media support
Description
Automates the forwarding of messages from WhatsApp (via Evolution API) to Chatwoot, enabling seamless integration between external WhatsApp users and internal Chatwoot agents. It supports both text and media messages, ensuring that customer conversations are centralized and accessible for support teams.
What Problem Does This Solve?
Managing conversations across multiple platforms can lead to fragmented support and lost context. This subworkflow bridges the gap between WhatsApp and Chatwoot, automatically forwarding messages received via the Evolution API to a Chatwoot inbox. It simplifies communication flow, centralizes conversations, and enhances the support team's productivity.
Features
- Support for plain text messages
- Support for media messages: images, videos, documents, and audio
- Automatic media upload to Chatwoot with proper attachment rendering
- Automatic contact association using WhatsApp number and Chatwoot API
- Designed to work with Evolution API webhooks or any message source
Prerequisites
Before using this automate, make sure you have:
- Evolution API credentials with incoming message webhook configured
- A Chatwoot instance with access token and API endpoint
- An existing Chatwoot inbox (preferably API channel)
- A configured HTTP Request node in n8n for Chatwoot API calls
Suggested Usage
This subworkflow should be attached to a parent workflow that receives WhatsApp messages via the Evolution API webhook. Ideal for:
Centralized customer service operations
WhatsApp-to-CRM/chat routing
Hybrid automation workflows where human agents need to reply from Chatwoot
It ensures that all incoming WhatsApp messages are properly converted and forwarded to Chatwoot, preserving message content and structure.
n8n Workflow: WhatsApp to Chatwoot Message Forwarder with Media Support
This n8n workflow automates the forwarding of WhatsApp messages, including media, to a Chatwoot inbox. It acts as a bridge, ensuring that customer inquiries and their associated media received via WhatsApp are seamlessly transferred to your Chatwoot customer support platform for efficient management.
What it does
This workflow is designed to process incoming data (likely from a WhatsApp webhook) and intelligently forward it to a Chatwoot instance. Here's a step-by-step breakdown:
- Triggered by External Execution: The workflow starts when it's executed by another workflow, indicating it's likely a sub-workflow or part of a larger automation.
- Initial Data Transformation: It uses a "Code" node to manipulate the incoming data, likely extracting relevant fields or reformatting the payload for subsequent steps.
- Conditional Logic for Media: An "If" node checks for the presence of media in the incoming message.
- If Media Exists:
- It converts the binary media data into a file.
- It then makes an HTTP Request to an external API (likely Chatwoot's API) to create a message with the attached media.
- If No Media:
- It directly makes an HTTP Request to an external API (likely Chatwoot's API) to create a text-only message.
- If Media Exists:
- Data Storage (Postgres/Redis - currently unused): The workflow includes "Postgres" and "Redis" nodes, which are currently disconnected. This suggests potential for future enhancements to store message data or conversation states in a database or cache.
- Flow Control (Switch/Wait - currently unused): "Switch" and "Wait" nodes are present but not connected. These could be used for more complex routing logic or to introduce delays in the workflow if needed in future iterations.
Prerequisites/Requirements
- n8n Instance: A running n8n instance to host and execute the workflow.
- WhatsApp Webhook: An external system (e.g., a WhatsApp Business API integration or a WhatsApp webhook provider) configured to send message data to the n8n workflow's trigger.
- Chatwoot Account: An active Chatwoot account with an inbox configured to receive messages.
- Chatwoot API Access: API credentials (e.g., API Key, Account ID, Inbox ID) for your Chatwoot instance to allow the workflow to create messages.
- HTTP Request Node Configuration: The "HTTP Request" nodes will need to be configured with the correct Chatwoot API endpoints and authentication.
Setup/Usage
- Import the Workflow: Download the provided JSON and import it into your n8n instance.
- Configure Credentials:
- Ensure any necessary HTTP Request credentials (e.g., for Chatwoot API authentication) are set up in n8n.
- Configure "When Executed by Another Workflow" Node: This node acts as the entry point. You'll need to ensure the calling workflow is correctly configured to execute this workflow and pass the WhatsApp message payload.
- Review "Code" Node: Examine the JavaScript in the "Code" node to understand how it processes the incoming WhatsApp message data. Adjust it if your incoming payload structure differs.
- Configure "HTTP Request" Nodes:
- URL: Update the URLs in both "HTTP Request" nodes to point to your Chatwoot API endpoint for creating messages (e.g.,
https://your-chatwoot-instance.com/api/v1/accounts/YOUR_ACCOUNT_ID/inboxes/YOUR_INBOX_ID/messages). - Headers: Add any required headers, such as
Authorizationwith your Chatwoot API token. - Body: Verify the JSON body sent to Chatwoot matches your requirements, using expressions to map WhatsApp message data to Chatwoot message fields.
- URL: Update the URLs in both "HTTP Request" nodes to point to your Chatwoot API endpoint for creating messages (e.g.,
- Activate the Workflow: Once configured, activate the workflow in n8n.
- Test: Send a test WhatsApp message (with and without media) to your configured WhatsApp webhook to ensure messages are forwarded correctly to Chatwoot.
Related Templates
Synchronizing WooCommerce inventory and creating products with Google Gemini AI and BrowserAct
Synchronize WooCommerce Inventory & Create Products with Gemini AI & BrowserAct This sophisticated n8n template automates WooCommerce inventory management by scraping supplier data, updating existing products, and intelligently creating new ones with AI-formatted descriptions. This workflow is essential for e-commerce operators, dropshippers, and inventory managers who need to ensure their product pricing and stock levels are synchronized with multiple third-party suppliers, minimizing overselling and maximizing profit. --- Self-Hosted Only This Workflow uses a community contribution and is designed and tested for self-hosted n8n instances only. --- How it works The workflow is typically run by a Schedule Trigger (though a Manual Trigger is also shown) to check stock automatically. It reads a list of suppliers and their inventory page URLs from a central Google Sheet. The workflow loops through each supplier: A BrowserAct node scrapes the current stock and price data from the supplier's inventory page. A Code node parses this bulk data into individual product items. It then loops through each individual product found. The workflow checks WooCommerce to see if the product already exists based on its name. If the product exists: It proceeds to update the existing product's price and stock quantity. If the product DOES NOT exist: An If node checks if the missing product's category matches a predefined type (optional filtering). If it passes the filter, a second BrowserAct workflow scrapes detailed product attributes from a dedicated product page (e.g., DigiKey). An AI Agent (Gemini) transforms these attributes into a specific, styled HTML table for the product description. Finally, the product is created in WooCommerce with all scraped details and the AI-generated description. Error Handling: Multiple Slack nodes are configured to alert your team immediately if any scraping task fails or if the product update/creation process encounters an issue. Note: This workflow does not support image uploads for new products. To enable this functionality, you must modify both the n8n and BrowserAct workflows. --- Requirements BrowserAct API account for web scraping BrowserAct n8n Community Node -> (n8n Nodes BrowserAct) BrowserAct templates named “WooCommerce Inventory & Stock Synchronization” and “WooCommerce Product Data Reconciliation” Google Sheets credentials for the supplier list WooCommerce credentials for product management Google Gemini account for the AI Agent Slack credentials for error alerts --- Need Help? How to Find Your BrowseAct API Key & Workflow ID How to Connect n8n to Browseract How to Use & Customize BrowserAct Templates How to Use the BrowserAct N8N Community Node --- Workflow Guidance and Showcase STOP Overselling! Auto-Sync WooCommerce Inventory from ANY Supplier
Tax deadline management & compliance alerts with GPT-4, Google Sheets & Slack
AI-Driven Tax Compliance & Deadline Management System Description Automate tax deadline monitoring with AI-powered insights. This workflow checks your tax calendar daily at 8 AM, uses GPT-4 to analyze upcoming deadlines across multiple jurisdictions, detects overdue and critical items, and sends intelligent alerts via email and Slack only when immediate action is required. Perfect for finance teams and accounting firms who need proactive compliance management without manual tracking. 🏛️🤖📊 Good to Know AI-Powered: GPT-4 provides risk assessment and strategic recommendations Multi-Jurisdiction: Handles Federal, State, and Local tax requirements automatically Smart Alerts: Only notifies executives when deadlines are overdue or critical (≤3 days) Priority Classification: Categorizes deadlines as Overdue, Critical, High, or Medium priority Dual Notifications: Critical alerts to leadership + daily summaries to team channel Complete Audit Trail: Logs all checks and deadlines to Google Sheets for compliance records How It Works Daily Trigger - Runs at 8:00 AM every morning Fetch Data - Pulls tax calendar and company configuration from Google Sheets Analyze Deadlines - Calculates days remaining, filters by jurisdiction/entity type, categorizes by priority AI Analysis - GPT-4 provides strategic insights and risk assessment on upcoming deadlines Smart Routing - Only sends alerts if overdue or critical deadlines exist Critical Alerts - HTML email to executives + Slack alert for urgent items Team Updates - Slack summary to finance channel with all upcoming deadlines Logging - Records compliance check results to Google Sheets for audit trail Requirements Google Sheets Structure Sheet 1: TaxCalendar DeadlineID | DeadlineName | DeadlineDate | Jurisdiction | Category | AssignedTo | IsActive FED-Q1 | Form 1120 Q1 | 2025-04-15 | Federal | Income | John Doe | TRUE Sheet 2: CompanyConfig (single row) Jurisdictions | EntityType | FiscalYearEnd Federal, California | Corporation | 12-31 Sheet 3: ComplianceLog (auto-populated) Date | AlertLevel | TotalUpcoming | CriticalCount | OverdueCount 2025-01-15 | HIGH | 12 | 3 | 1 Credentials Needed Google Sheets - Service Account OAuth2 OpenAI - API Key (GPT-4 access required) SMTP - Email account for sending alerts Slack - Bot Token with chat:write permission Setup Steps Import workflow JSON into n8n Add all 4 credentials Replace these placeholders: YOURTAXCALENDAR_ID - Tax calendar sheet ID YOURCONFIGID - Company config sheet ID YOURLOGID - Compliance log sheet ID C12345678 - Slack channel ID tax@company.com - Sender email cfo@company.com - Recipient email Share all sheets with Google service account email Invite Slack bot to channels Test workflow manually Activate the trigger Customizing This Workflow Change Alert Thresholds: Edit "Analyze Deadlines" node: Critical: Change <= 3 to <= 5 for 5-day warning High: Change <= 7 to <= 14 for 2-week notice Medium: Change <= 30 to <= 60 for 2-month lookout Adjust Schedule: Edit "Daily Tax Check" trigger: Change hour/minute for different run time Add multiple trigger times for tax season (8 AM, 2 PM, 6 PM) Add More Recipients: Edit "Send Email" node: To: cfo@company.com, director@company.com CC: accounting@company.com BCC: archive@company.com Customize Email Design: Edit "Format Email" node to change colors, add logo, or modify layout Add SMS Alerts: Insert Twilio node after "Is Critical" for emergency notifications Integrate Task Management: Add HTTP Request node to create tasks in Asana/Jira for critical deadlines Troubleshooting | Issue | Solution | |-------|----------| | No deadlines found | Check date format (YYYY-MM-DD) and IsActive = TRUE | | AI analysis failed | Verify OpenAI API key and account credits | | Email not sending | Test SMTP credentials and check if critical condition met | | Slack not posting | Invite bot to channel and verify channel ID format | | Permission denied | Share Google Sheets with service account email | 📞 Professional Services Need help with implementation or customization? Our team offers: 🎯 Custom workflow development 🏢 Enterprise deployment support 🎓 Team training sessions 🔧 Ongoing maintenance 📊 Custom reporting & dashboards 🔗 Additional API integrations Discover more workflows – Get in touch with us
Weekly job discovery and CV matching with Gemini 1.5 Pro and Decodo Scraper
Header 1Smart Weekly Job Discovery Powered by Decodo This workflow automates the entire search process: every week, it uses Decodo’s reliable scraping engine to scan the web for fresh opportunities in your region and industry — no manual searching, no endless scrolling. Decodo handles the heavy lifting behind the scenes: it gathers search results, opens each job link, and extracts clean, readable text from pages that are normally full of scripts and formatting noise. The workflow always receives structured, usable information ready for AI analysis. Intelligent Matching — Not Just Scraping Once the jobs are collected, the system analyzes the candidate’s CV and compares it to each posting. It evaluates: Skill alignment Experience relevance Domain match Seniority level Then it generates a Match Percentage for each role, filtering out weak options and keeping only meaningful opportunities. A Weekly Report That Feels Human Every week, the workflow sends a polished report straight to your inbox: A quick overview of the candidate’s strengths Best-fit roles sorted by match score Clear reasons why each job fits Posted dates and direct links Insights on skills and market trends It reads like a personalized career briefing — generated automatically. How to Configure It Decodo Setup Add your Decodo API credentials to n8n. The Google Search + Scraper nodes rely on Decodo’s Web Scraping API. Make sure your plan supports scraping LinkedIn/Indeed pages. AI Setup Add your Google Gemini API key. The workflow uses two Gemini models: one for summarizing, one for job-matching. You can switch to OpenAI or Claude if you prefer. CV Input Add your CV text into the workflow (or connect Google Drive/Sheets for auto-loading). The Job Matcher Agent will use this text to compute match percentages. Email Setup Add your Gmail credentials and choose where the final report should be sent. Flexible and Easy to Customize Change the search region. Target different industries. Store all job data in Notion or Google Sheets. With Decodo’s scraping pipeline at the core, the whole process stays consistent, fast, and dependable. If you need any help Get in Touch