How infinityabir/omnichannel works
Omnichannel is a multi-tenant customer-support platform: channel messages are normalized into conversations for a shared agent inbox, with automation and a configurable AI assistant able to respond or escalate. Agents and administrators also manage channels, knowledge, AI, business rules, and review analytics. The backend separates API, application services, infrastructure, and domain; the Angular app provides the inbox and settings. Relationships below follow explicit README statements and SOURCE INDEX references; unsampled feature wiring is not inferred.
Main entry points: AiAutoReplyService.cs AI auto-reply · app.ts Angular app · AppDbContext.cs Tenant data · ConversationService.cs Conversation handling
Components 22
Web app
- Angular app
web/src/app/app.ts - Agent inbox
web/src/app/features/inbox/inbox-page/inbox-page.ts - Admin settings
web/src/app/features/settings/settings-page/settings-page.ts
API surface
- HTTP API
src/Omnichannel.Api/Program.cs - Channel webhooks
src/Omnichannel.Api/Endpoints/ChannelWebhookEndpoints.cs
Conversation workflow
- Conversation handling
src/Omnichannel.Application/Conversations/ConversationService.cs - Inbound ingestion
src/Omnichannel.Application/Channels/WebhookIngestionService.cs - Channel adapters
src/Omnichannel.Infrastructure/Channels/ChannelAdapterRegistry.cs - Outbound delivery
src/Omnichannel.Application/Channels/ChannelSendService.cs
Support capabilities
- Rules and escalation
src/Omnichannel.Application/Automation/AutomationRuleService.cs - AI auto-reply
src/Omnichannel.Application/Ai/AiAutoReplyService.cs - Knowledge retrieval
src/Omnichannel.Infrastructure/Knowledge/PgVectorKnowledgeRetrievalService.cs - Analytics
src/Omnichannel.Application/Analytics/AnalyticsService.cs - Audit trail
src/Omnichannel.Application/Audit/AuditService.cs
Platform services
- Authentication
src/Omnichannel.Application/Auth/AuthService.cs - Realtime updates
src/Omnichannel.Infrastructure/Realtime/SignalRNotifier.cs - Tenant data
src/Omnichannel.Infrastructure/Persistence/AppDbContext.cs - AI providers
src/Omnichannel.Infrastructure/Ai/AiProviderResolver.cs
Other components
- Customers
- Support agents
- Business admins
- Channel platforms
Connections 26
- Support agents → Angular app: use inbox
README.md - Business admins → Angular app: manage settings
README.md - Angular app → Agent inbox: routes to
- Angular app → Admin settings: routes to
- Angular app → HTTP API: uses API
README.md - Channel platforms → Channel webhooks: send events
README.md - Channel webhooks → Inbound ingestion: invokes
src/Omnichannel.Api/Endpoints/ChannelWebhookEndpoints.cs - Inbound ingestion → Channel adapters: resolves adapter
src/Omnichannel.Application/Channels/WebhookIngestionService.cs - Inbound ingestion → Rules and escalation: evaluates rules
src/Omnichannel.Application/Channels/WebhookIngestionService.cs - Inbound ingestion → AI auto-reply: evaluates reply
src/Omnichannel.Application/Channels/WebhookIngestionService.cs - Agent inbox → Conversation handling: handles conversations
README.md - Conversation handling → Rules and escalation: evaluates rules
src/Omnichannel.Application/Conversations/ConversationService.cs - Conversation handling → AI auto-reply: evaluates reply
src/Omnichannel.Application/Conversations/ConversationService.cs - AI auto-reply → Knowledge retrieval: retrieves context
src/Omnichannel.Application/Ai/AiAutoReplyService.cs - AI auto-reply → AI providers: resolves provider
src/Omnichannel.Application/Ai/AiAutoReplyService.cs - AI auto-reply → Outbound delivery: routes reply
src/Omnichannel.Application/Ai/AiAutoReplyService.cs - Outbound delivery → Channel adapters: dispatches through
- Rules and escalation → Realtime updates: notifies changes
src/Omnichannel.Application/Automation/AutomationRuleService.cs - Rules and escalation → Audit trail: records actions
src/Omnichannel.Application/Automation/AutomationRuleService.cs - Analytics → Tenant data: queries metrics
- Knowledge retrieval → Tenant data: reads vectors
src/Omnichannel.Infrastructure/Knowledge/PgVectorKnowledgeRetrievalService.cs - Authentication → Tenant data: persists profiles
src/Omnichannel.Application/Auth/AuthService.cs - Conversation handling → Tenant data: reads and writes
src/Omnichannel.Application/Conversations/ConversationService.cs - AI auto-reply → Tenant data: reads and writes
src/Omnichannel.Application/Ai/AiAutoReplyService.cs - Admin settings → HTTP API: configures features
README.md - Customers → Channel platforms: message via
README.md