Skip to content

Releases: evolution-foundation/evolution-api

2.4.0-rc1

06 May 20:50

Choose a tag to compare

2.4.0-rc1 Pre-release
Pre-release

Pre-release candidate for 2.4.0. Built from develop (commit af4db31). Not merged to main. Use for validation only; do not deploy to production without further testing.


2.4.0 (2026-05-06)

⚠️ BREAKING CHANGE — License activation is now required

Starting with v2.4.0, every Evolution API instance must be activated against the
Evolution Foundation licensing server before serving API traffic. Until activation,
all business endpoints return:

HTTP 503 Service Unavailable
{
  "error": "service not activated",
  "code": "LICENSE_REQUIRED",
  "register_url": "https://<your-host>/manager/login",
  "instance_id": "<uuid>",
  "docs_url": "https://docs.evolutionfoundation.com.br/licensing",
  "message": "..."
}

The following routes always remain public so the operator can recover:
/license/status, /license/register, /license/activate, /manager/**,
/health, /server/ok, /ws, static assets.

Migration guide

  1. Pull the new version and install dependencies:

    git pull
    npm install
  2. Apply the new migration (creates the RuntimeConfig table). Required:

    npm run db:deploy

    If you skip this step, the server now fails fast with a clear error
    asking you to run db:deploy.

  3. Start the service. There are three activation paths:

    • Already have a valid licensing key? Set it as AUTHENTICATION_API_KEY
      in your .env and restart. The bootstrap step will validate the key with
      the licensing server, persist it, and activate the instance automatically.

    • First-time activation via the manager UI? Open
      https://<your-host>/manager/login. The manager detects that the
      instance is unlicensed and redirects you to the registration page on
      the licensing server. After you complete the form, you are sent back
      to /manager/license/callback?code=..., the manager exchanges the code,
      and the dashboard becomes accessible.

    • Calling the API from code (n8n, Make, custom scripts) without a valid
      license?
      Every request will receive 503 LICENSE_REQUIRED with the
      register_url field pointing to the manager. Open it in a browser to
      activate.

Added

Manager v2 — completely redesigned dashboard

The embedded manager (served at /manager) was rebuilt from the ground up
on Tailwind v4 + the new @evoapi/design-system, using the same
visual language as the rest of the Evolution Foundation product line.
Every screen was refactored — no surface remains untouched.

Highlights:

  • Modern dashboard with skeleton loading, illustrated empty state,
    and a typed-name confirmation modal for instance deletion (no more
    accidental clicks).
  • Dual-provider support: the manager now talks to either
    evolution-api or evolution-go (selected at login, persisted in
    localStorage). When connected to a GO backend, the sidebar/router
    automatically hide the modules GO does not implement.
  • Sessions panels for the seven chatbot integrations (OpenAI, Dify,
    N8N, EvoAI, EvolutionBot, Flowise, Typebot) gained advanced filters
    (name / number / status / time presets + custom),
    bulk-status-change actions, client-side pagination, and a real
    send-message modal calling /message/sendText.
  • License-aware login — see the Licensing section below for the
    details.
  • 🧪 Test Interactive modal on each instance card — a 5-tab
    payload editor (Reply / CTA / PIX / List / Carousel) for
    smoke-testing the new interactive-message endpoints from the
    dashboard. Replaces the legacy stand-alone test-interactive.js
    vanilla script that used to be injected into index.html.
  • Full i18n coverage in pt-BR / en-US / es-ES / fr-FR — every
    screen, every toast, every modal.
  • Branding refresh — sidebar/footer/login point to
    docs.evolutionfoundation.com.br, GitHub links to
    evolution-foundation/evolution-manager-v2, contact to
    suporte@evofoundation.com.br.

The new bundle is shipped pre-built under manager/dist/. The manager
source repository moved to evolution-foundation/evolution-manager-v2
(private) — the previous in-repo submodule was dropped.

Licensing

  • Licensing module under src/licensing/ — RuntimeContext, gate middleware,
    signed/unsigned HTTP transport, hardware-based instance ID, fire-and-forget
    heartbeat (every 30 min), graceful shutdown deactivation. Mirrors the
    evolution-go pkg/core/ reference implementation.
  • Public license endpoints:
    • GET /license/status — current activation state and (masked) api_key
    • GET /license/register?redirect_uri= — initiates registration on the
      licensing server, returns register_url
    • GET /license/activate?code= — exchanges the authorization code received
      on the callback for a real api_key, persists it, marks the runtime active.
  • New Prisma model RuntimeConfig (key/value rows in RuntimeConfig table)
    for both PostgreSQL and MySQL schemas.
  • Auto-detect missing migration: if the RuntimeConfig table is absent,
    the server prints a clear banner explaining npm run db:deploy and exits 1
    instead of throwing a stack trace from the Prisma client.
  • Manager v2 ships with the new license-aware login flow that recognises
    HTTP 503 / LICENSE_REQUIRED, calls /license/register, and redirects to
    the registration server. After the callback, it lands on
    /manager/license/callback?code=... and finalises activation. The new
    manager bundle is included under manager/dist/.

Interactive Messages (Buttons / List / CTA / PIX / Carousel)

  • New endpoint POST /message/sendCarousel/{instance} — multi-card
    product carousel built on top of interactiveMessage + carouselMessage.
    Single-card-without-image falls back to nativeFlowMessage for iOS
    compatibility. New DTO SendCarouselDto, schema carouselMessageSchema.
  • Button rendering fixed on WhatsApp Web/Desktop/iOS/Android — removed the
    viewOnceMessage wrapper that prevented buttons from rendering and started
    injecting the required <biz><interactive type=native_flow v=1> <native_flow v=9 name=mixed/></interactive></biz> node into the
    relayMessage stanza via Baileys' official additionalNodes option.
  • List messages fixed on WhatsApp Web/Desktop — switched to legacy
    listMessage with SINGLE_SELECT listType (the modern
    interactiveMessage + single_select format does not render on Web/Desktop)
    and added <biz><list type=product_list v=2/></biz>.
  • Interactive buttons via deviceSentMessage + corrected CTA limits
    (max 2 CTA buttons, no mixing with reply or PIX), aligning with the
    WhatsApp Business message contract.
  • PIX support for interactive button messages (payment_info button
    type — exactly 1 button, isolated).
  • Quoted product / Catalog orderMessage support — handles
    quotedMessage.productMessage and the catalog orderMessage shape,
    including getTypeMessage enrichment, deduplication cache for
    processed order IDs, and propagation through Chatwoot integration.
  • Manager UI: a 🧪 Test Interactive button on each instance card opens
    a modal with five tabs (Reply / CTA / PIX / List / Carousel) and an
    editable JSON payload — useful for smoke-testing every kind of
    interactive message without leaving the dashboard.

History Sync

  • New event messaging-history.set emitted on sync completion, with
    cumulative counts (chats, contacts, messages, isLatest, progress).
    Allows downstream consumers to know exactly when a history sync has
    finished and how much was imported.
  • Cumulative counters reset on a new sync start to avoid carry-over
    between consecutive syncs.

Other

  • New endpoint POST /chat/markMessageAsPlayed/{instance} — emits the
    audio "played" receipt (PTT/VOICE), completing the read/delivered/played
    triplet for voice messages.
  • SQS integration now accepts a custom base_url (useful for
    LocalStack and corporate VPC endpoints).
  • LID → phone-number mapping and caching — translates the new
    @lid identifiers WhatsApp uses for hidden-phone profiles into the
    real @s.whatsapp.net JID for downstream processing, with a cache
    to avoid redundant lookups.

Branding / Documentation

  • README, LICENSE, NOTICE, TRADEMARKS standardised under the
    Evolution Foundation 2026 identity.
  • All GitHub URLs migrated from EvolutionAPI to evolution-foundation.
  • New README section "License Activation" linking to
    https://docs.evolutionfoundation.com.br/licensing.

Fixed

  • mentionsEveryOne honours false — earlier the flag was always
    applied regardless of value (#2470).
  • getLastMessage: corrected the Prisma JSON path filter so the
    query returns the actual last message (#2495 / #2515).
  • markMessageAsRead: corrected JID filter to cover all user types
    (regular, business, broadcast, group).
  • List messages: removed destructive JSON cloning that triggered
    this.isZero when the message contained Long-typed fields (#2461).
  • History sync race condition: completion event is now emitted
    before the contact upsert, so consumers don't observe the sync as
    finished while contacts are still being written (#2510).
  • Business API (Cloud): race condition in sender identification
    resolved (#2493); execution order normalised; chatwootIds
    correctly propagated.
  • /instance/logout/{instance} — idempotent: returns SUCCESS instead
    of 400 when the instance is already closed, so the manager UI delete
    flow (logout-then-delete) does not surface a misleading error.
  • remove.instance event — emitted even when logout itself fails,
    preventing zombie instances after a partially failed delete (#2520).
  • Chatbot session: a closed session no longer blocks bot
    re-activation.
  • Docker compose: fresh-install startup failures resolved.
  • WhatsApp chats: accountLid handling, remoteJid normalisation
    and `cha...
Read more

v2.3.7

05 Dec 14:29

Choose a tag to compare

Features

  • WhatsApp Business Meta Templates: Add update and delete endpoints for Meta templates

    • New endpoints to edit and delete WhatsApp Business templates
    • Added DTOs and validation schemas for template management
    • Enhanced template lifecycle management capabilities
  • Events API: Add isLatest and progress to messages.set event

    • Allows consumers to know when history sync is complete (isLatest=true)
    • Track sync progress percentage through webhooks
    • Added extra field to EmitData type for additional payload properties
    • Updated all event controllers (webhook, rabbitmq, sqs, websocket, pusher, kafka, nats)
  • N8N Integration: Add quotedMessage to payload in sendMessageToBot

    • Support for quoted messages in N8N chatbot integration
    • Enhanced message context information
  • WebSocket: Add wildcard "*" to allow all hosts to connect via websocket

    • More flexible host configuration for WebSocket connections
    • Improved host validation logic in WebsocketController
  • Pix Support: Handle interactive button message for pix

    • Support for interactive Pix button messages
    • Enhanced payment flow integration

Fixed

  • Baileys Message Processor: Fix incoming message events not working after reconnection

    • Added cleanup logic in mount() to prevent memory leaks from multiple subscriptions
    • Recreate messageSubject if it was completed during logout
    • Remount messageProcessor in connectToWhatsapp() to ensure subscription is active
    • Fixed issue where onDestroy() calls complete() on RxJS Subject, making it permanently closed
    • Ensures old subscriptions are properly cleaned up before creating new ones
  • Baileys Authentication: Resolve "waiting for message" state after reconnection

    • Fixed Redis keys not being properly removed during instance logout
    • Prevented loading of old/invalid cryptographic keys on reconnection
    • Fixed blocking state where instances authenticate but cannot send messages
    • Ensures new credentials (creds) are properly used after reconnection
  • OnWhatsapp Cache: Prevent unique constraint errors and optimize database writes

    • Fixed Unique constraint failed on the fields: (remoteJid) error when sending to groups
    • Refactored query to use OR condition finding by jidOptions or remoteJid
    • Added deep comparison to skip unnecessary database updates
    • Replaced sequential processing with Promise.allSettled for parallel execution
    • Sorted JIDs alphabetically in jidOptions for accurate change detection
    • Added normalizeJid helper function for cleaner code
  • Proxy Integration: Fix "Media upload failed on all hosts" error when using proxy

    • Created makeProxyAgentUndici() for Undici-compatible proxy agents
    • Fixed compatibility with Node.js 18+ native fetch() implementation
    • Replaced traditional HttpsProxyAgent/SocksProxyAgent with Undici ProxyAgent
    • Maintained legacy makeProxyAgent() for Axios compatibility
    • Fixed protocol handling in makeProxyAgent to prevent undefined errors
  • WhatsApp Business API: Fix base64, filename and caption handling

    • Corrected base64 media conversion in Business API
    • Fixed filename handling for document messages
    • Improved caption processing for media messages
    • Enhanced remoteJid validation and processing
  • Chat Service: Fix fetchChats and message panel errors

    • Fixed cleanMessageData errors in Manager message panel
    • Improved chat fetching reliability
    • Enhanced message data sanitization
  • Contact Filtering: Apply where filters correctly in findContacts endpoint

    • Fixed endpoint to process all where clause fields (id, remoteJid, pushName)
    • Previously only processed remoteJid field, ignoring other filters
    • Added remoteJid field to contactValidateSchema for proper validation
    • Maintained multi-tenant isolation with instanceId filtering
    • Allows filtering contacts by any supported field instead of returning all contacts
  • Chatwoot and Baileys Integration: Multiple integration improvements

    • Enhanced code formatting and consistency
    • Fixed integration issues between Chatwoot and Baileys services
    • Improved message handling and delivery
  • Baileys Message Loss: Prevent message loss from WhatsApp stub placeholders

    • Fixed messages being lost and not saved to database, especially for channels/newsletters (@lid)
    • Detects WhatsApp stubs through messageStubParameters containing 'Message absent from node'
    • Prevents adding stubs to duplicate message cache
    • Allows real message to be processed when it arrives after decryption
    • Maintains stub discard to avoid saving empty placeholders
  • Database Contacts: Respect DATABASE_SAVE_DATA_CONTACTS in contact updates

    • Added missing conditional checks for DATABASE_SAVE_DATA_CONTACTS configuration
    • Fixed profile picture updates attempting to save when database save is disabled
    • Fixed unawaited promise in contacts.upsert handler
  • Prisma/PostgreSQL: Add unique constraint to Chat model

    • Generated migration to add unique index on instanceId and remoteJid
    • Added deduplication step before creating index to prevent constraint violations
    • Prevents chat duplication in database
  • MinIO Upload: Handle messageContextInfo in media upload to prevent MinIO errors

    • Prevents errors when uploading media with messageContextInfo metadata
    • Improved error handling for media storage operations
  • Typebot: Fix message routing for @lid JIDs

    • Typebot now responds to messages from JIDs ending with @lid
    • Maintains complete JID for @lid instead of extracting only number
    • Fixed condition: remoteJid.includes('@lid') ? remoteJid : remoteJid.split('@')[0]
    • Handles both @s.whatsapp.net and @lid message formats
  • Message Filtering: Unify remoteJid filtering using OR with remoteJidAlt

    • Improved message filtering with alternative JID support
    • Better handling of messages with different JID formats
  • @lid Integration: Multiple fixes for @lid problems, message events and chatwoot errors

    • Reorganized imports and improved message handling in BaileysStartupService
    • Enhanced remoteJid processing to handle @lid cases
    • Improved jid normalization and type safety in Chatwoot integration
    • Streamlined message handling logic and cache management
    • Refactored message handling and polling updates with decryption logic for poll votes
    • Improved event processing flow for various message types
  • Chatwoot Contacts: Fix contact duplication error on import

    • Resolved 'ON CONFLICT DO UPDATE command cannot affect row a second time' error
    • Removed attempt to update identifier field in conflict (part of constraint)
    • Changed to update only updated_at field: updated_at = NOW()
    • Allows duplicate contacts to be updated correctly without errors
  • Chatwoot Service: Fix async handling in update_last_seen method

    • Added missing await for chatwootRequest in read message processing
    • Prevents service failure when processing read messages
  • Metrics Access: Fix IP validation including x-forwarded-for

    • Uses all IPs including x-forwarded-for header when checking metrics access
    • Improved security and access control for metrics endpoint

Dependencies

  • Baileys: Updated to version 7.0.0-rc.9

    • Latest release candidate with multiple improvements and bug fixes
  • AWS SDK: Updated packages to version 3.936.0

    • Enhanced functionality and compatibility
    • Performance improvements

Code Quality & Refactoring

  • Template Management: Remove unused template edit/delete DTOs after refactoring
  • Proxy Utilities: Improve makeProxyAgent for Undici compatibility
  • Code Formatting: Enhance code formatting and consistency across services
  • BaileysStartupService: Fix indentation and remove unnecessary blank lines
  • Event Controllers: Guard extra spread and prevent core field override in all event controllers
  • Import Organization: Reorganize imports for better code structure and maintainability

What's Changed

Read more

v2.3.6

21 Oct 14:41

Choose a tag to compare

Features

  • Baileys, Chatwoot, OnWhatsapp Cache: Multiple implementations and fixes
    • Fixed cache for PN, LID and g.us numbers to send correct number
    • Fixed audio and document sending via Chatwoot in Baileys channel
    • Multiple fixes in Chatwoot integration
    • Fixed ignored messages when receiving leads

Fixed

  • Baileys: Fix buffer storage in database
    • Correctly save Uint8Array values to database
  • Baileys: Simplify logging of messageSent object
    • Fixed "this.isZero not is function" error

Chore

  • Version: Bump version to 2.3.6 and update Baileys dependency to 7.0.0-rc.6
  • Workflows: Update checkout step to include submodules
    • Added 'submodules: recursive' option to checkout step in multiple workflow files to ensure submodules are properly initialized during CI/CD processes
  • Manager: Update asset files and install process
    • Updated subproject reference in evolution-manager-v2 to the latest commit
    • Enhanced the manager_install.sh script to include npm install and build steps
    • Replaced old JavaScript asset file with a new version for improved performance
    • Added a new CSS file for consistent styling across the application

What's Changed

  • feat(baileys,chatwoot,on-whatsapp-cache): implementações e correções na baileys e chatwoot by @KokeroO in #2103
  • fix: Simplify logging of messageSent object by @KokeroO in #2105
  • fix( baileys.service ): Corrige ao salvar no DB valores Uint8Array by @KokeroO in #2107
  • chore: bump version to 2.3.6 and update baileys dependency to 7.0.0-rc.6 by @KokeroO in #2108

Full Changelog: 2.3.5...2.3.6

v2.3.5

15 Oct 12:59

Choose a tag to compare

Features

  • Chatwoot Enhancements: Comprehensive improvements to message handling, editing, deletion and i18n
  • Participants Data: Add participantsData field maintaining backward compatibility for group participants
  • LID to Phone Number: Convert LID to phoneNumber on group participants
  • Docker Configurations: Add Kafka and frontend services to Docker configurations

Fixed

  • Kafka Migration: Fixed PostgreSQL migration error for Kafka integration
    • Corrected table reference from "public"."Instance" to "Instance" in foreign key constraint
    • Fixed ERROR: relation "public.Instance" does not exist issue in migration 20250918182355_add_kafka_integration
    • Aligned table naming convention with other Evolution API migrations for consistency
    • Resolved database migration failure that prevented Kafka integration setup
  • Update Baileys Version: v7.0.0-rc.5 with compatibility fixes
    • Fixed assertSessions signature compatibility using type assertion
    • Fixed incompatibility in voice call (wavoip) with new Baileys version
    • Handle undefined status in update by defaulting to 'DELETED'
  • Chatwoot Improvements: Multiple fixes for enhanced reliability
    • Correct chatId extraction for non-group JIDs
    • Resolve webhook timeout on deletion with 5+ images
    • Improve error handling in Chatwoot messages
    • Adjust conversation verification logic and cache
    • Optimize conversation reopening logic and connection notification
    • Fix conversation reopening and connection loop
  • Baileys Message Handling: Enhanced message processing
    • Add warning log for messages not found
    • Fix message verification in Baileys service
    • Simplify linkPreview handling in BaileysStartupService
  • Media Validation: Fix media content validation
  • PostgreSQL Connection: Refactor connection with PostgreSQL and improve message handling

Code Quality & Refactoring

  • Exponential Backoff: Implement exponential backoff patterns and extract magic numbers to constants
  • TypeScript Build: Update TypeScript build process and dependencies

What's Changed

  • Fix Chatwoot DB Connection Instability and Implement Stale Conversation Cache Handling by @Vitordotpy in #2017
  • fix(baileys): message update and i18n errors by @Vitordotpy in #2021
  • fix(chatwoot): Corrige Reabertura de Conversas e Loop de Mensagem de Conexão by @Vitordotpy in #2023
  • feat(chatwoot): comprehensive improvements to message handling, editing, deletion and i18n (translate messages) by @dersonbsb2022 in #2048
  • feat: convert LID to phoneNumber on GROUP_PARTICIPANTS_UPDATE webhook by @guispiller in #2025
  • fix/media content validation by @nolramaf in #2072
  • Implementations and corrections of previous commits in the chatwoot and baileys services by @KokeroO in #2076
  • Convert LIDs to PN by sending a call rejection message by @KokeroO in #2085
  • fix: correct the error of hardcoded prisma/kafka schema by @davidmnzs in #2083

New Contributors

Full Changelog: 2.3.4...2.3.5

v2.3.4

23 Sep 14:43

Choose a tag to compare

Features

  • Kafka Integration: Added Apache Kafka event integration for real-time event streaming

    • New Kafka controller, router, and schema for event publishing
    • Support for instance-specific and global event topics
    • Configurable SASL/SSL authentication and connection settings
    • Auto-creation of topics with configurable partitions and replication
    • Consumer group management for reliable event processing
    • Integration with existing event manager for seamless event distribution
  • Evolution Manager v2 Open Source: Evolution Manager v2 is now available as open source

    • Added as git submodule with HTTPS URL for easy access
    • Complete open source setup with Apache 2.0 license + Evolution API custom conditions
    • GitHub templates for issues, pull requests, and workflows
    • Comprehensive documentation and contribution guidelines
    • Docker support for development and production environments
    • CI/CD workflows for code quality, security audits, and automated builds
    • Multi-language support (English, Portuguese, Spanish, French)
    • Modern React + TypeScript + Vite frontend with Tailwind CSS
  • EvolutionBot Enhancements: Improved EvolutionBot functionality and message handling

    • Implemented splitMessages functionality for better message segmentation
    • Added linkPreview support for enhanced message presentation
    • Centralized split logic across chatbot services for consistency
    • Enhanced message formatting and delivery capabilities

Fixed

  • MySQL Schema: Fixed invalid default value errors for createdAt fields in Evoai and EvoaiSetting models

    • Changed @default(now()) to @default(dbgenerated("CURRENT_TIMESTAMP")) for MySQL compatibility
    • Added missing relation fields (N8n, N8nSetting, Evoai, EvoaiSetting) in Instance model
    • Resolved Prisma schema validation errors for MySQL provider
  • Prisma Schema Validation: Fixed instanceName field error in message creation

    • Removed invalid instanceName field from message objects before database insertion
    • Resolved Unknown argument 'instanceName' Prisma validation error
    • Streamlined message data structure to match Prisma schema requirements
  • Media Message Processing: Enhanced media handling across chatbot services

    • Fixed base64 conversion in EvoAI service for proper image processing
    • Converted ArrayBuffer to base64 string using Buffer.from().toString('base64')
    • Improved media URL handling and base64 encoding for better chatbot integration
    • Enhanced image message detection and processing workflow
  • Evolution Manager v2 Linting: Resolved ESLint configuration conflicts

    • Disabled conflicting Prettier rules in ESLint configuration
    • Added comprehensive rule overrides for TypeScript and React patterns
    • Fixed import ordering and code formatting issues
    • Updated security vulnerabilities in dependencies (Vite, esbuild)

Code Quality & Refactoring

  • Chatbot Services: Streamlined media message handling across all chatbot integrations

    • Standardized base64 and mediaUrl processing patterns
    • Improved code readability and maintainability in media handling logic
    • Enhanced error handling for media download and conversion processes
    • Unified image message detection across different chatbot services
  • Database Operations: Improved data consistency and validation

    • Enhanced Prisma schema compliance across all message operations
    • Removed redundant instance name references for better data integrity
    • Optimized message creation workflow with proper field validation

Environment Variables

  • Added comprehensive Kafka configuration options:
    • KAFKA_ENABLED, KAFKA_CLIENT_ID, KAFKA_BROKERS
    • KAFKA_CONSUMER_GROUP_ID, KAFKA_TOPIC_PREFIX
    • KAFKA_SASL_* and KAFKA_SSL_* for authentication
    • KAFKA_EVENTS_* for event type configuration

What's Changed

  • fix(docker): change private image to public image in docker-compose by @JamsMendez in #1989
  • fix(evolutionbot): Fixing the correct message sending method so that messages are split. by @dersonbsb2022 in #1986

New Contributors

Full Changelog: 2.3.3...2.3.4

v2.3.3

18 Sep 18:00

Choose a tag to compare

Features

  • Add extra fields to object sent to Flowise bot
  • Add Prometheus-compatible /metrics endpoint (gated by PROMETHEUS_METRICS)
  • Implement linkPreview support for Evolution Bot

Fixed

  • Address Path Traversal vulnerability in /assets endpoint by implementing security checks
  • Configure Husky and lint-staged for automated code quality checks on commits and pushes
  • Convert mediaKey from media messages to avoid bad decrypt errors
  • Improve code formatting for better readability in WhatsApp service files
  • Format messageGroupId assignment for improved readability
  • Improve linkPreview implementation based on PR feedback
  • Clean up code formatting for linkPreview implementation
  • Use 'unknown' as fallback for clientName label
  • Remove abort process when status is paused, allowing the chatbot return after the time expires and after being paused due to human interaction (stopBotFromMe)
  • Enhance message content sanitization in Baileys service and improve message retrieval logic in Chatwoot service
  • Integrate Typebot status change events for webhook in chatbot controller and service
  • Mimetype of videos video

Security

  • CRITICAL: Fixed Path Traversal vulnerability in /assets endpoint that allowed unauthenticated local file read
  • Customizable Websockets Security

Testing

  • Baileys Updates: v7.0.0-rc.3 (Link)

What's Changed

  • Revert "Ignore events that are not messages (like EPHEMERAL_SYNC_RESPONSE)" by @DavidsonGomes in #1919
  • feat: implement disable/enable linkPreview support for Evolution Bot by @dersonbsb2022 in #1908
  • fix: Prevent Duplicate Cron Jobs for Chatwoot Message Sync by @andres99x in #1906
  • fix: integrate Typebot status change events for webhook in chatbot controller e service by @josiasmaceda in #1927
  • fix: allowing the chatbot return after the time expires and after human interaction (stopBotFromMe) by @josiasmaceda in #1928
  • Customizable Websockets Security by @moothz in #1929
  • fix: convert mediaKey from media messages to avoid bad decrypt errors by @furious in #1948
  • feat: implement standardized error handling for WhatsApp API responses by @ricaelchiquetti in #1918
  • feat: add extra fields to object sent to Flowise bot by @Nocelli in #1951
  • Feat/prometheus metrics by @elizandropacheco in #1947
  • feat/add global SQS mode with single-queue-per-event and payload size control by @nolramaf in #1896
  • feat/validate video type before uploading to S3 by @nolramaf in #1897
  • Fix/Adjust remote message key handling in WhatsApp service to include alternative JID by @ricaelchiquetti in #1955

New Contributors

Full Changelog: 2.3.2...2.3.3

v2.3.2

02 Sep 16:33

Choose a tag to compare

Features

  • Add support to socks proxy

Fixed

  • Added key id into webhook payload in n8n service
  • Enhance RabbitMQ controller with improved connection management and shutdown procedures
  • Convert outgoing images to JPEG before sending with Chatwoot
  • Update baileys dependency to version 6.7.19

What's Changed

New Contributors

Full Changelog: 2.3.1...2.3.2

v2.3.1

29 Jul 12:21

Choose a tag to compare

Feature

  • Add BaileysMessageProcessor for improved message handling and integrate rxjs for asynchronous processing
  • Enhance message processing with retry logic for error handling

Fixed

  • Update Baileys Version
  • Update Dockerhub Repository and Delete Config Session Variable
  • Fixed sending variables in typebot
  • Add unreadMessages in the response
  • Phone number as message ID for Evo AI
  • Fix upload to s3 when media message
  • Simplify edited message check in BaileysStartupService
  • Avoid corrupting URLs with query strings
  • Removed CONFIG_SESSION_PHONE_VERSION environment variable

What's Changed

New Contributors

Full Changelog: 2.3.0...2.3.1

v2.3.0

17 Jun 20:03

Choose a tag to compare

Feature

  • Add support to get Catalogs and Collections with new routes: '{{baseUrl}}/chat/fetchCatalogs' and '{{baseUrl}}/chat/fetchCollections'
  • Add NATS integration support to the event system
  • Add message location support meta
  • Add S3_SKIP_POLICY env variable to disable setBucketPolicy for incompatible providers
  • Add EvoAI integration with models, services, and routes
  • Add N8n integration with models, services, and routes

Fixed

  • Shell injection vulnerability
  • Update Baileys Version v6.7.18
  • Audio send duplicate from chatwoot
  • Chatwoot csat creating new conversation in another language
  • Refactor SQS controller to correct bug in sqs events by instance
  • Adjustin cloud api send audio and video
  • Preserve animation in GIF and WebP stickers
  • Preventing use conversation from other inbox for the same user
  • Ensure full WhatsApp compatibility for audio conversion (libopus, 48kHz, mono)
  • Enhance message fetching and processing logic
  • Added lid on whatsapp numbers router
  • Now if the CONFIG_SESSION_PHONE_VERSION variable is not filled in it automatically searches for the most updated version

What's Changed

  • Refactor edit and delete message functionality in BaileyStartupService by @GrimBit1 in #1195
  • Feat: Adicionei suporte para obter o Catálogos de Produtos e as Coleções de Produtos para a versão 2.2.3 by @wayre in #1201
  • Adicionado suporte para obter Catálogos e Coleções no WhatsApp Business by @wayre in #1214
  • feat: notconvertsticket for animated stickers by @joaosouz4dev in #1211
  • Fix instance creation on v2.2.3 by @rafwell in #1215
  • feat: add message location support whatsapp meta by @tmsdesarrollo3 in #1217
  • Fix audio send duplicate from chatwoot. by @mbap-dev in #1221
  • fix: chatwoot csat creating new conversation in another language by @tmsdesarrollo3 in #1226
  • 🐛 Fix: Add migration for missing wavoipToken column in MySQL build env (#1234) by @julianoaj in #1235
  • Refactor Editing Message events and update message handler by @GrimBit1 in #1237
  • fix: change mediaId optional chaining and list response message text obtain by @ygorsantana in #1240
  • hotfix(migration): add missing wavoipToken column in MySQL schema by @AndersonSilvaCavalcante in #1244
  • ✨ Feat: Remover a reação de uma mensagem. by @julianoaj in #1259
  • fix: Refactor SQS controller to correct bug in sqs events by instance by @fernandoralha in #1251
  • Fix: Expiration being useless on awaitUser false by @ygorsantana in #1264
  • fix: adjusting cloud api send audio and video by @pedroepif in #1287
  • Corrige validação de URL para permitir localhost e endereços IP by @jrCleber in #1290
  • Add eventos referente a instancia que estavam faltando by @rafwell in #1304
  • Corrigindo um bug no endpoint de findChats e permitindo paginação nos endpoints de findChats e findContacts by @pedro-php in #1334
  • Adicionando um novo webhook no endpoint de updateMessage by @pedro-php in #1343
  • Fix/animated stickers by @marceloapd in #1322
  • Adicionando um timestamp ao filename para possibilitar enviar o mesmo arquivo mais de uma vez na mesma conversa. by @alvestassio in #1344
  • Hotfix - shell injection vulnerability by @jeffersonfelixdev in #1354
  • feat(s3): add S3_SKIP_POLICY env variable to disable setBucketPolicy by @Deyvi-dev in #1362
  • Correção para quando enviar uma localização. by @ricocorreia1 in #1351
  • Corrigindo um bug ao atualizar o push name no evento MESSAGES_UPSERT e MESSAGES_UPDATE by @pedro-php in #1366
  • fix(api): modifica fetchChats para trazer mensagens de contatos não salvos by @leandrosroc in #1384
  • fix(audio): ensure full WhatsApp compatibility for audio conversion by @edisonmartinsmkt in #1425
  • Tornando Webhook mais seguro com JWT token by @victoreduardo in #1318
  • Corrigir utilização do linkPreview no WhatsApp Business API by @onerrogus in #1414
  • fix: Erro na criação de conversation quando já existe uma conversation de outro inbox para o mesmo usuário by @victoreduardo in #1415
  • fix mysql wavoip token by @paulocoutinhox in #1433
  • fix(chatwoot): avoid "undefined" caption on group audio messages by @edisonmartinsmkt in #1434
  • Defininando TTL no userDivicesCache igual usado no Baileys by @theeusmartins in #1332
  • fix: when you set jpegThumbnail, image not appear on app mobile by @Faelst in #1406
  • Update package.json by @icaro-andrade in #1422
  • fix(chatwoot): only fallback audio caption when audioMessage exists by @edisonmartinsmkt in #1435
  • Findchat group name treatment by @luiis716 in #1420
  • fix: remove postinstall script from package.json to fix GitHub Action by @gomessguii in #1450
  • Add N8n integration with models, services, and routes by @gomessguii in #1448
  • feat(whatsapp): enhance message fetching and processing logic by @gomessguii in #1449
  • feat(evoai): add EvoAI integration with models, services, and routes by @gomessguii in #1451
  • feat: updated manager to the last version with suport to n8n and EvoA… by @gomessguii in #1452
  • feat(evoai): add Evoai and EvoaiSetting tables with foreign key const… by @gomessguii in #1453
  • feat(channel): enhance pushName logic for messages by @gomessguii in #1457
  • Fixes issue #879 by @thiagoomatheus in #1456
  • fix: Deadlock errors and undefined arguments by @KokeroO in #1473
  • Fix-chatwoot-import by @AlexSzefezuk in #1481
  • Refatoração da funcionalidade de chatbots (em andamento) by @gomessguii in #1482
  • fix: melhora consistência e formatação dos chatbots (N8N e Evolution Bot) by @oriondesign2015 in #1484
  • chore: possibilita o envio de medias do tipo [svg, tiff] vindas do Chatwoot by @KokeroO in #1483
  • fix: Corrige envio da apiKey da instância nos payloads do Evolution Bot e N8N by @oriondesign2015 in #1485
  • fix: Corrige envio da apiKey da instância nos payloads do Flowise e do Dify by @oriondesign2015 in #1486
  • fix: Corrige o PR1481 by @KokeroO in #1490
  • corrige estrutura de if/else e bloco try/catch em chatwoot-import-helper.ts by @oriondesign2015 in #1493
  • fix: melhora a formatação e tratamento de erros na função getExistingSourceIds by @KokeroO in #1494
  • Inclusão do parâmetro frame_max para compatibilidade com RabbitMQ 4.1+ by @thrsouza in #1498
  • fix: Melhora o método createConversation (evita conversas criadas duplicadas Chatwoot) by @KokeroO in #1504
  • refactor: improve chatbot integrations by @gomessguii in #1508
  • fix: change service image version and change to latest config session phone version by @samuelterra22 in #1513
  • Update fetchStatusMessage to handle empty offset / page by @Daquisu in #1536
  • fix: adjustment in audio transcription with official api by @splusoficial in #1556
  • feat(audio): support LPCM and fix waveform distortion by @edisonmartinsmkt in #1574
  • refactor(chatwoot): Melhora e ajusta tratamento de números @lid by @KokeroO in https://github.com...
Read more

v2.2.3

03 Feb 14:53

Choose a tag to compare

Fixed

  • Fix cache in local file system
  • Update Baileys Version

What's Changed

New Contributors

Full Changelog: 2.2.2...2.2.3