mirror of
https://github.com/abhinavxd/libredesk.git
synced 2026-09-25 03:42:02 +00:00
aa0deedd48e5126ca51e8daa2923f52259eaf272
An automation rule that listens on an event and then writes the same field re-fires its own event, so the rule matches again and loops forever. Status already returned early on a no-op write, but priority and user assignment did not, so those two could spin a worker doing a DB write per lap. Add the same unchanged-value guard to both. Suppression while the engine applies actions was a plain flag in a sync.Map, so with more than one worker on the same conversation the first one to finish deleted the key while the other was still applying actions. Make it a refcount so each worker releases only its own claim. The starts with operator is only implemented by the automation evaluator, not the SQL filter builder, so give automation text fields their own operator list instead of adding it to the shared one. Also switch the notify action to its own recipients field type, fix the snooze duration hint since the backend only takes Go duration units, trim and lowercase notify recipient entries, and treat a missing previous value as no match rather than an empty string.
Modern, open source, self-hosted omnichannel customer support desk. Live chat, email, and more in a single binary.
Visit libredesk.io for more info. Check out the live demo.
Features
- Omnichannel inbox
Live chat and email in one inbox. Every conversation lands in the same place, whichever channel it came from. - Live chat widget
Embed a real-time chat widget on your website. Replies go out from the same inbox your team already works in. - AI assistant
Answer live chat conversations automatically with an AI assistant grounded in your knowledge base. Hands off to a human when it can't help. - Agent copilot
Draft replies, summarize conversations, and look up answers from the knowledge base without leaving the inbox. - Automations
Rules that run on conversation events. Tag, assign, and route conversations based on conditions you define. - Granular permissions
Role-based access control. Create custom roles with per-action permissions for teams and individual agents. - CSAT & analytics
Send CSAT surveys automatically after a conversation closes. Track response times, resolution rates, and agent activity. - Custom attributes
Create custom attributes for contacts or conversations such as the subscription plan or the date of their first purchase. - Macros
Save replies you send often. One macro can send the message, set tags, and assign the conversation to a team. - Organization
Tags, custom statuses, and snoozing to keep the inbox in order. Search covers every conversation. - Auto assignment
Assign incoming conversations automatically, based on agent capacity or on criteria you define. - SLA management
Set and track response time targets. Get notified when conversations are at risk of breaching SLA commitments. - SSO logins
Google, Microsoft, and any OIDC provider are supported out of the box. - API
HTTP/JSON APIs and webhooks for custom integrations and workflows. - Activity logs
Track all actions performed by agents and admins, for auditing and accountability. - Command bar
Opens with a simple shortcut (CTRL+K) and lets you quickly perform actions on conversations.
And more — checkout libredesk.io or try the live demo.
Installation
Docker
The latest image is available on DockerHub at libredesk/libredesk:latest
# Download the compose file and sample config file in the current directory.
curl -LO https://github.com/abhinavxd/libredesk/raw/main/docker-compose.yml
curl -LO https://github.com/abhinavxd/libredesk/raw/main/config.sample.toml
# Copy the config.sample.toml to config.toml and edit it as needed.
cp config.sample.toml config.toml
# Run the services in the background.
docker compose up -d
# Setting System user password.
docker exec -it libredesk_app ./libredesk --set-system-user-password
Go to http://localhost:9000 and login with username System and the password you set using the --set-system-user-password command.
Binary
- Download the latest release and extract the libredesk binary.
- Edit config.toml as needed.
./libredesk --installto setup the Postgres DB.- Run
./libredesk --set-system-user-passwordto set the password for the System user. - Run
./libredeskand visithttp://localhost:9000and login with emailSystemand the password you set using the --set-system-user-password command.
Developers
- If you are interested in contributing, please read CONTRIBUTING.md first.
- For local development and setup, refer to the developer setup.
- For planned features and project direction, see ROADMAP.md.
The backend is written in Go and the frontend is Vue.js 3 with Shadcn UI.
Translators
You can help translate libredesk into your language on Crowdin.
Description
Open-source, self-hosted customer support desk in a single binary. Email and live chat. A lightweight alternative to Intercom, Zendesk, Chatwoot.
chat-widgetcustomer-servicecustomer-successcustomer-supportcustomer-support-automationgolanghelpcenterhelpdeskintercomknowledge-baselivechatomnichannelself-hostedsupportticketing-systemvuezendesk
Readme
AGPL-3.0
34 MiB
Languages
Go
41.9%
Vue
29.8%
JavaScript
23.9%
HTML
1.6%
CSS
1.3%
Other
1.3%
