Eldric Communication Worker

Unified Messaging Across All Channels - Email, SMS, WhatsApp, Signal, Teams, and XMPP with AI-Powered Auto-Response and Semantic Search

v4.0.0

Architecture Overview

Communication Worker - Unified Messaging Hub
Comm Worker eldric-commd | Port 8895 Unified Messaging Hub Protocol Adapters Email IMAP/SMTP OAuth Support SMS Twilio HTTP Gateway WhatsApp Business API Self-hosted Bridge Signal signal-cli E2E Encrypted Teams Graph API OAuth 2.0 XMPP Jabber MUC, Presence Core Services Unified Messages Cross-protocol format AI Auto-Response LLM-powered replies Webhook Manager Port 8896 Data Worker Message Storage & RAG Port 8892 AI Worker LLM for Auto-Response Port 8890 Controller License & Orchestration Port 8880 Incoming Webhooks /webhooks/whatsapp /webhooks/twilio /webhooks/teams Port 8896 Supported Protocols Email (IMAP/SMTP) SMS (Twilio) WhatsApp Business Signal (E2E) MS Teams XMPP/Jabber

Supported Protocols

💬
SMS

Twilio, HTTP gateways, MMS support

📱
WhatsApp

Business API, templates, media

🔒
Signal

E2E encryption, groups, attachments

👥
Teams

Graph API, channels, adaptive cards

🗨
XMPP

Jabber, MUC, presence, chat states

AI Auto-Response

Let AI handle routine messages with intelligent auto-response and approval workflow.

1. Receive

Message arrives via any protocol

2. Analyze

LLM understands context

3. Generate

Draft appropriate response

4. Review

Optional human approval

5. Send

Reply via same channel

# Enable AI auto-response ./eldric-commd --enable-ai \ --ai-model llama3.2:3b \ --ai-approval # Require human approval # View pending responses curl http://comm-worker:8895/api/v1/comm/ai/queue # Response { "pending": [ { "id": "resp-123", "message_id": "msg-456", "from": "customer@example.com", "original_text": "When will my order arrive?", "response_text": "Your order #12345 is scheduled for delivery tomorrow...", "confidence": 0.92 } ] } # Approve or reject curl -X POST http://comm-worker:8895/api/v1/comm/ai/queue/resp-123/approve curl -X POST http://comm-worker:8895/api/v1/comm/ai/queue/resp-123/reject

Protocol Details

💬 SMS

Standard+

SMS messaging via Twilio and HTTP gateways.

  • Twilio integration
  • Custom HTTP gateways
  • MMS attachments
  • Delivery receipts
  • Bulk sending

📱 WhatsApp

Professional+

WhatsApp Business API for customer communication.

  • Business API integration
  • Self-hosted bridge option
  • Message templates
  • Media messages
  • Read receipts

🔒 Signal

Enterprise

End-to-end encrypted messaging via Signal.

  • signal-cli integration
  • Full E2E encryption
  • Group messaging
  • File attachments
  • Identity verification

👥 Teams

Professional+

Microsoft Teams via Graph API.

  • Microsoft Graph API
  • Channel messaging
  • @mentions
  • Adaptive cards
  • Meeting integration

🗨 XMPP/Jabber

Standard+

Native XMPP protocol support.

  • SASL authentication
  • TLS encryption
  • Multi-User Chat (MUC)
  • Presence updates
  • Chat states

REST API

Method Endpoint Description
GET /health Health check with account status
GET /dashboard Web dashboard for monitoring
GET /api/v1/comm/accounts List configured accounts
POST /api/v1/comm/accounts Add new messaging account
POST /api/v1/comm/accounts/{id}/test Test account connection
GET /api/v1/comm/messages List messages with filters
POST /api/v1/comm/messages Send a message
POST /api/v1/comm/messages/{id}/reply Reply to a message
GET /api/v1/comm/conversations List conversations
POST /api/v1/comm/search Semantic search across messages
GET /api/v1/comm/ai/queue Pending AI responses
POST /api/v1/comm/ai/queue/{id}/approve Approve AI response
POST /api/v1/comm/webhooks/whatsapp WhatsApp webhook endpoint
POST /api/v1/comm/webhooks/twilio Twilio SMS webhook endpoint
POST /api/v1/comm/webhooks/teams Teams webhook endpoint

Use Cases

1. Customer Support Inbox

Unify all customer communication channels into a single AI-powered inbox.

1 Customer contacts via any channel
2 Unified message format
3 AI drafts response
4 Agent approves
5 Reply sent

2. Notification Broadcasting

Send notifications across multiple channels with a single API call.

# Broadcast to multiple channels curl -X POST http://comm-worker:8895/api/v1/comm/broadcast \ -H 'Content-Type: application/json' \ -d '{ "message": "System maintenance scheduled for tonight at 10 PM", "channels": ["email", "sms", "teams"], "recipients": { "email": ["team@company.com"], "sms": ["+1234567890"], "teams": ["engineering-channel"] } }'

3. Message Archive & Search

Index all communications for semantic search and compliance.

1 Messages stored
2 Data Worker indexes
3 Semantic search
4 AI summarization
# Search messages semantically curl -X POST http://comm-worker:8895/api/v1/comm/search \ -d '{"query": "meetings scheduled next week", "limit": 10}' # Response with relevance scores { "results": [ { "message_id": "msg-789", "protocol": "email", "from": "boss@company.com", "subject": "Team sync next Tuesday", "snippet": "Let's schedule our weekly sync for...", "relevance": 0.94 } ] }

4. Secure Team Communication

Use Signal for E2E encrypted internal communication with full message history.

# Add Signal account (Enterprise) curl -X POST http://comm-worker:8895/api/v1/comm/accounts \ -d '{ "name": "Security Team", "protocol": "signal", "credentials": { "phone_number": "+1234567890" } }' # Send encrypted message curl -X POST http://comm-worker:8895/api/v1/comm/messages \ -d '{ "account_id": "acc-signal-123", "to": [{"phone": "+0987654321"}], "body": "Security incident report attached", "attachments": [{"path": "/reports/incident-42.pdf"}] }'

Quick Start

1. Start Communication Worker

# Run with AI auto-response ./eldric-commd --port 8895 \ --controller http://controller:8880 \ --data-workers http://data-worker:8892 \ --inference-workers http://ai-worker:8890 \ --webhook-port 8896 \ --enable-ai \ --ai-approval

2. Add Email Account

# Add Gmail account with OAuth curl -X POST http://localhost:8895/api/v1/comm/accounts \ -H 'Content-Type: application/json' \ -d '{ "name": "Support Inbox", "protocol": "email", "credentials": { "imap_server": "imap.gmail.com", "smtp_server": "smtp.gmail.com", "username": "support@company.com", "oauth_token": "ya29.xxx..." } }' # Test connection curl -X POST http://localhost:8895/api/v1/comm/accounts/acc-123/test

3. Send a Message

# Send email curl -X POST http://localhost:8895/api/v1/comm/messages \ -H 'Content-Type: application/json' \ -d '{ "account_id": "acc-123", "to": [{"email": "customer@example.com"}], "subject": "Your support ticket #456", "body": "Thank you for contacting us..." }'

4. Configure WhatsApp Webhook

# In WhatsApp Business Manager, set webhook URL: https://your-domain.com:8896/api/v1/comm/webhooks/whatsapp # Verify token in Comm Worker config: { "webhooks": { "whatsapp_verify_token": "your-secret-token", "allowed_ips": ["157.240.0.0/16"] // Meta IP ranges } }

Licensing

Feature Free Standard Professional Enterprise
Protocols Email only Email, SMS, XMPP All except Signal All protocols
Accounts per protocol 1 3 10 Unlimited
Total accounts 2 10 50 Unlimited
Message storage 1,000 10,000 100,000 Unlimited
RAG search - Yes Yes Yes
AI auto-response - - Yes Yes
Multi-tenant - Yes Yes Yes
E2E encryption (Signal) - - - Yes
Comm workers 1 2 5 Unlimited

Port Reference

Component Port Protocol Description
Comm Worker 8895 HTTP/REST Main API for messaging operations
Webhooks 8896 HTTP Incoming webhooks from external services
Data Worker 8892 HTTP/REST Message storage and RAG search
AI Worker 8890 HTTP/REST LLM for AI auto-response
Controller 8880 HTTP/REST Cluster management & licensing