How clairton/chatwoot works
Chatwoot is a self-hosted customer-engagement platform: customers contact businesses through messaging channels or the website widget; agents manage conversations and customer records in the dashboard, while teams can publish help content, run campaigns, and review reports. The map groups the principal interaction paths and major documented capabilities. The tree and route excerpt identify endpoint areas, but most controller and frontend implementations and the persistence layer were not sampled, so internal calls and storage links are intentionally limited.
Main entry points: App.vue Agent dashboard · conversations_controller.rb Conversation API · messages_controller.rb Message API · dispatcher.rb Event dispatch
Components 23
Conversation management
- Agent dashboard
app/javascript/dashboard/App.vue - Conversation API
app/controllers/api/v1/accounts/conversations_controller.rb - Message API
app/controllers/api/v1/accounts/conversations/messages_controller.rb - Realtime updates
app/channels/room_channel.rb
Customer channels
- Website widget
app/controllers/api/v1/widget/conversations_controller.rb - Public inbox API
app/controllers/public/api/v1/inboxes/conversations_controller.rb - Channel webhooks
app/controllers/webhooks/whatsapp_controller.rb - Channel setup
app/controllers/api/v1/accounts/channels/twilio_channels_controller.rb - Integrations
app/controllers/api/v1/accounts/integrations/slack_controller.rb
Customer tools
- Contact API
app/controllers/api/v1/accounts/contacts_controller.rb - Contact tools
app/controllers/api/v1/accounts/contacts/notes_controller.rb - Custom attributes
app/controllers/api/v1/accounts/custom_attribute_definitions_controller.rb
Knowledge and campaigns
- Help center
app/controllers/public/api/v1/portals/articles_controller.rb - Campaigns
app/controllers/api/v1/accounts/campaigns_controller.rb
Operations and reporting
- Automation rules
app/controllers/api/v1/accounts/automation_rules_controller.rb - Event dispatch
app/dispatchers/dispatcher.rb - Reports API
app/controllers/api/v2/accounts/reports_controller.rb - Report builders
app/builders/v2/report_builder.rb - CSAT responses
app/controllers/api/v1/accounts/csat_survey_responses_controller.rb
Other components
- Customer
- Agent
- Messaging providers
- Application data
Connections 27
- Customer → Website widget: starts chat
- Customer → Public inbox API: opens conversation
- Messaging providers → Channel webhooks: delivers events
- Agent → Agent dashboard: manages work
- Agent dashboard → Conversation API: requests conversations
- Agent dashboard → Message API: sends messages
- Agent dashboard → Contact API: manages contacts
- Conversation API → Application data: reads and writes
- Message API → Application data: reads and writes
- Contact API → Application data: reads and writes
- Website widget → Application data: reads and writes
- Public inbox API → Application data: reads and writes
- Channel webhooks → Application data: records events
- Agent dashboard → Channel setup: configures channels
- Agent dashboard → Integrations: configures integrations
- Agent dashboard → Contact tools: records notes
- Agent dashboard → Custom attributes: defines fields
- Customer → Help center: reads articles
- Agent dashboard → Help center: manages content
- Agent dashboard → Campaigns: manages campaigns
- Agent dashboard → Automation rules: configures rules
- Conversation API → Event dispatch: dispatches events
- Message API → Event dispatch: dispatches events
- Event dispatch → Realtime updates: broadcasts updates
- Agent dashboard → Reports API: requests reports
- Reports API → Report builders: builds reports
- Agent dashboard → CSAT responses: reviews feedback