Overview
Evolution API manages WhatsApp connections through instances. Each instance represents a separate WhatsApp connection with its own authentication, session, and message queue.Connection behavior differs between providers: Baileys requires active connection management, while Business API connections are always active.
Connection Lifecycle
1
Create Instance
Initialize a new WhatsApp instance:Response:
2
Connect to WhatsApp
For Baileys, authenticate via QR code or pairing code. For Business API, the connection is immediate.Baileys Connection:Business API Connection:
3
Monitor Status
Track connection state through webhooks or API queries:
4
Disconnect or Delete
Gracefully disconnect or remove the instance:
Connection States
Baileys Connection States
- Connecting
- Open
- Close
Instance is establishing connection to WhatsApp servers.What’s happening:
- WebSocket connection opening
- Authenticating session credentials
- Syncing initial data
Reconnection Strategies
Automatic Reconnection
Evolution API handles reconnections automatically for transient failures:Manual Reconnection
Force reconnection of an existing instance:Session Persistence
Evolution API persists session data to enable seamless reconnections:Storage Options
- Database (Prisma)
- Redis Cache
- File Provider
Store encrypted credentials in PostgreSQL or MySQL:Implementation:Pros:
.env
- Persistent across restarts
- Centralized management
- Easy backup
- Database dependency
- Slightly slower than Redis
Connection Monitoring
Webhook Events
Subscribe to connection events via webhooks:.env
API Polling
Query connection status programmatically:Health Checks
Implement health monitoring:Multi-Instance Management
Manage multiple WhatsApp connections:Instance Isolation
Connection Best Practices
1
Monitor Connection Events
Subscribe to
connection.update webhooks to track instance health:2
Enable Session Persistence
Always enable session storage to prevent re-authentication:
.env
3
Handle QR Code Expiration
Baileys QR codes expire after a limit:Monitor
.env
qrcode.updated events and alert users to scan promptly.4
Implement Graceful Shutdown
Properly close connections on application shutdown:
Connection Limits
Baileys Limitations
- Concurrent connections per number: 1 active connection
- QR code timeout: ~45 seconds per code
- Max QR regenerations: Configurable (default 30)
- Reconnection delay: Automatic exponential backoff
Business API Limitations
- No active connection required: Always available
- Rate limits: Based on account tier
- Webhook timeout: 5-second response required
Troubleshooting
Connection Keeps Closing
Check logs for disconnect reason:Session Not Persisting
Verify storage configuration:Instance Not Found
Query instance existence:Next Steps
Baileys Connection
Learn Baileys-specific connection details
Business API
Understand Business API connection flow
Webhooks
Configure connection event webhooks
Instance Management
Create and manage instances