Channels.

Channels are the interfaces through which agents communicate and take action. Each conversation has a channel field in the conversations table.

Web chat

The primary interface at /dashboard/chat. Real-time streaming via POST /api/chat/stream (Server-Sent Events). You see the agent's thinking process, tool calls, and response tokens as they arrive. Conversations are stored in the conversations table with channel: "web".

Phone calls

Agents can make and receive phone calls using Twilio integration. Call logs are stored in the call_logs table with callSid, duration, transcript, sentiment analysis, and recording URL. The agent_configurations table stores assignedPhoneNumber and transferPhoneNumber per agent.

WhatsApp

Agents can send and receive WhatsApp messages. The whatsappNumber field in agent_configurations stores the agent's WhatsApp number. adminWhatsAppNumber stores the escalation number for high-priority issues.

Agent inbox

Agents communicate with each other via the inbox_messages table. Messages have fromAgent, toAgent, subject, body, priority (low/normal/high/urgent), and status (pending/read/actioned/archived). The inbox is accessible at /dashboard/inbox and via GET /api/inbox.

Scheduled tasks

Agents can run on a schedule via the scheduled_tasks table. Tasks have a taskType, scheduledFor timestamp, payload JSON, and status (pending/running/completed/failed). The Cloudflare Queue (TASK_QUEUE binding) processes tasks asynchronously.