Tiledesk is a free, open source automation project written in TypeScript and released under MIT. It has 15 GitHub stars, 5 forks and 56 open issues, and was last pushed 7 hours ago. On this registry it ranks #54 of 54 tracked projects in Automation, and is listed as an open source replacement for 1 paid product, with 5 head-to-head comparisons available. It gained 1 stars over the last 6 tracked days.

What is Tiledesk?

Tiledesk is an open-source, MIT-licensed platform for building LLM-powered AI agents and automating customer support, and this repository is the Angular backoffice dashboard used to manage it, aimed at support teams and developers who want a self-hosted alternative to Intercom and Voiceflow.

What it is

Tiledesk is an open-source conversational platform for customer service, written in Node.js and Express on the server side with an Angular dashboard as the operator interface. This repository holds the WebApp dashboard, published to npm as @tiledesk/tiledesk-dashboard, which is the console where agents, departments, chatbot flows and conversation data are configured and monitored. It lives in the JavaScript and TypeScript ecosystem, with Firebase and Firestore used as part of the stack, and it depends on a separately deployed tiledesk-server instance for its API. Chat components come from the companion Chat21 project rather than being reimplemented here, and the platform ships multichannel support for web, Android and iOS.

The concrete problem it solves is the cost and lock-in of commercial conversational support suites. Instead of paying for a hosted product and handing conversation data to a vendor, an operator can run the whole stack on their own infrastructure and connect their own systems through APIs and webhooks. It replaces Intercom as the live chat and support desk layer, and it replaces Voiceflow as the tool for building LLM-powered agents with human-in-the-loop (HITL) escalation. Bot replies are configured once and adapted per channel, covering WhatsApp, Facebook Messenger and Telegram alongside the web widget, so a team does not maintain a separate script per messaging network.

Key capabilities

  • No-code construction of LLM-powered AI agents with human-in-the-loop escalation, driven from the Angular dashboard.
  • Multichannel delivery across web widget, Android, iOS, WhatsApp, Facebook Messenger and Telegram, with replies authored once and auto-adapted per channel.
  • Unlimited chat conversations with chat history, conversation labels and notes, canned responses and a ticketing system built in.
  • Departments and agent groups for routing work across a support organisation, plus operating hours configuration.
  • Apps marketplace and CRM features, with data export and analytics for reporting on conversation volume.
  • Extension through public APIs and webhooks, and through visual applications deployed directly inside a conversation.
  • Widget customization tools and bundled Chat21 chat components, with a free tier that permits up to 200,000 messages from the bot per month.

Who uses it and how

  • Support organisations that need departments and agent groups to route conversations to the right queue, with operating hours and canned responses to keep replies consistent.
  • Product and engineering teams that embed the web widget, then extend the flow with their own services over APIs and webhooks rather than rebuilding chat internally.
  • Teams selling or supporting through messaging apps, who write a bot script once and let Tiledesk adapt responses to WhatsApp, Facebook Messenger or Telegram.
  • Operators who deploy the full component set on their own servers using the Docker Compose deployment guide, keeping Firestore-backed conversation data in their own account.
  • Small teams handling high bot volumes, since the documented allowance reaches 200,000 bot messages per month before any paid consideration.

Getting started

Install from source by cloning the repository, running cd tiledesk-dashboard and then npm install, after setting up Node, npm and @angular/cli; alternatively install every component at once with the Docker Compose Tiledesk installation guide. Either path requires a running tiledesk-server instance, and API URL and other settings go into environment.*.ts when remoteConfig is false or into dashboard-config.json under src when it is true.

How it compares

Intercom is a commercial hosted support product, while Tiledesk is MIT-licensed and can be self-hosted, so the code and the conversation data stay under the operator's control rather than a vendor's. The cost model shifts accordingly: there is no per-conversation commercial meter on the software itself, though the operator carries the infrastructure and operational cost of running the Node.js server, Firestore and the dashboard. Against Voiceflow, which it is explicitly positioned as an open-source alternative to, the same distinction holds: the agent builder is open source and deployable rather than a closed hosted service.

When to use it — and when not to

A self-hoster must operate more than one moving part: a running tiledesk-server API, the Angular dashboard, a Firebase and Firestore project for data, and the Chat21 chat components, so this is not a single-container install. The toolchain is also pinned and slightly inconsistent in the documentation, which suggests node v14.15.5 with npm v6.14.11 and an @angular/cli install command that does not match the version stated in the prerequisites text, so expect friction on modern Node releases. Anyone wanting a zero-operations hosted product should not pick it, and the community footprint is small — 15 stars, 5 forks and 56 open issues — with the iOS Widget API still marked work in progress.

project readme (upstream, from github) — read inline

npm version Crowdin

🚀 Do you want to install Tiledesk on your server with just one click?

Use Docker Compose Tiledesk installation guide

Tiledesk Introduction

Tiledesk is an Open Source Live Chat platform with integrated Chatbots written in NodeJs and Express. Build your own customer support with a multi-channel platform for Web, Android and iOS.

Designed to be open source since the beginning, we actively worked on it to create a totally new, first class customer service platform based on instant messaging.

What is Tiledesk today? It became the open source “conversational app development” platform that everyone needs 😌

You can use Tiledesk to increase sales for your website or for post-sales customer service. Every conversation can be automated using our first class native chatbot technology. You can also connect your own applications using our APIs or Webhooks. Moreover you can deploy entire visual applications inside a conversation. And your applications can converse with your chatbots or your end-users! We know this is cool 😎

Tiledesk is multichannel in a totally new way. You can write your chatbot scripts with images, buttons and other cool elements that your channels support. But you will configureyour chatbot replies only once. They will run on every channel, auto-adapting the responses to the target channel whatever it is, Whatsapp, Facebook Messenger, Telegram etc.

Tiledesk-dashboard

home_screenshot

Tiledesk.com backoffice application is available on GitHub under MIT licence.

Follow this instructions to setup the environment.

Consider that Tiledesk.com cloud service makes every module available with the same open source licence.

  • Web Widget component

  • iOS Widget API (work in progress)

  • full iOS App

  • full Android App

  • Tiledesk Dashboard (this repo)

  • All the chat components are available thanks to the Chat21 open source project, also available on GitHub (https://github.com/chat21)

Community? Questions? Support?

  • If you need help or just want to hang out, come, say hi on our Tiledesk discord Discord server.
  • You can also to ask for support on https://tiledesk.com, using the live chat widget on the the website.

Features

  • Unlimited chat conversations
  • Widget customization tools
  • Conversation labels and notes
  • Apps marketplace
  • CRM
  • Operating hours
  • Up to 200,000 messages from bot/month
  • Departments and agents groups
  • Chat history
  • Ticketing System
  • Data export + Analytics
  • Canned responses

And more.

Prerequisites

Run Tiledesk with Docker Compose

Do you want to install all the Tiledesk components on your server with just one click? Use Docker Compose Tiledesk installation guide

Install from source code

Install the latest stable release. Check on Github page the last release under the Releases tab and then run

  • git clone https://github.com/Tiledesk/tiledesk-dashboard.git --branch

  • cd tiledesk-dashboard

  • npm install

Dev configuration

You can put your API URL and the other settings directly in the environment.*.ts if remoteConfig is set to false or in the dashboard-config.json if remoteConfig is set to true.

If remoteConfig is set to true create a file name dashboard-config.json and put it into src folder.

An example of the configuration of the environment.ts file in src/environments/

environment.ts
export  const environment = {

	production: false,

	remoteConfig: true,

	remoteConfigUrl: "/dashboard-config.json",

	VERSION: require('../../package.json').version,

    ...
}
dashboard-config.json

WIDGET_BASE_URL: "https://<YOUR_CHAT21_WEB_WIDGET_URL>:4200/",

botcredendialsURL: "https://<YOUR_BOT_CREDENTIALS_URL>",

SERVER_BASE_URL: "https://<YOUR_TILEDESK_SERVER>/",

CHAT_BASE_URL: "https://<YOUR_CHAT21_IONIC_URL>/chat",

globalRemoteJSSrc: "https://<YOUR_CUSTOM_SCRIPT_1>, https://<YOUR_CUSTOM_SCRIPT_2>" // see the section below "Load external scripts"

firebaseAuth : false,

chatEngine: "mqtt", // OR YOUR CUSTOM CHAT ENGINE

updloaEngine: "native", // OR YOUR CUSTOM UPLOAD ENGINE

pushEngine:"none", // OR YOUR CUSTOM PUSH ENGINE

logLevel: "<YOUR-PREFERRED-LOG-LEVEL>",

wsUrl: 'ws://' + window.location.hostname + '/ws/'

};
  • logLevel: The Dashboard supports 4 log levels. The order is as follows: Error < Warn < Info < Debug

RUN in dev

Run the app with ng serve

Prod configuration

For production installation, configure the environment.prod.ts file in src/environments/.

environment.prod.ts
export  const environment = {

	production: false,

	remoteConfig: false,

	VERSION: require('../../package.json').version,

	...

Build

Run ng build --prod --base-href ./

Deploy

Deploy to a Web Server

Copy the content of the dist folder to your Web Server (for example Apache or Nginx)

Deploy on AWS CloudFront and AWS S3


aws s3 sync ./dist/ s3://tiledesk-dashboard/dashboard

Run with docker

To run Tiledesk-dashboard on port 4500 run:


curl https://raw.githubusercontent.com/Tiledesk/tiledesk-dashboard/master/.env.sample --output .env

nano .env #configure .env file properly

docker run -p 4500:80 --env-file .env tiledesk/tiledesk-dashboard

Run with npm

To run Tiledesk-dashboard with npm:

UNDER DEVELOPMENT


curl https://raw.githubusercontent.com/Tiledesk/tiledesk-dashboard/master/.env.sample --output .env

nano .env #configure .env file properly

npm install -g @tiledesk/tiledesk-dashboard

tiledesk-dashboard
dashboard-config.json

WIDGET_BASE_URL: "https://<YOUR_CHAT21_WEB_WIDGET_URL>:4200/",

botcredendialsURL: "https://<YOUR_BOT_CREDENTIALS_URL>",

SERVER_BASE_URL: "https://<YOUR_TILEDESK_SERVER>/",


...

brandSrc :"https://<YOUR_BRAND_JSON>/",

...

};
docker env.sample file

SERVER_BASE_URL=YOUR_TILEDESK_SERVER_URL


...


BRAND_SRC=https:YOUR_BRAND_SCRIPT_URL

...

Edit the file _variables.scss in the folder src/assets/sass/md/ to customize the colors

Load external scripts

Load external scripts by adding in environment.*.ts (if remoteConfig is set to false or in the dashboard-config.json if remoteConfig is set to true) the key globalRemoteJSSrc with value your scripts separated by commas

dashboard-config.json

WIDGET_BASE_URL: "https://<YOUR_CHAT21_WEB_WIDGET_URL>:4200/",

botcredendialsURL: "https://<YOUR_BOT_CREDENTIALS_URL>",

SERVER_BASE_URL: "https://<YOUR_TILEDESK_SERVER>/",


...


globalRemoteJSSrc :"https://<YOUR_CUSTOM_SCRIPT_1>, https://<YOUR_CUSTOM_SCRIPT_2>",

...

};
docker env.sample file

SERVER_BASE_URL=YOUR_TILEDESK_SERVER_URL


...


REMOTE_JS_SRC=YOUR_CUSTOM_SCRIPT_URL

...

Autologin

To auto login pass the JWT token as a query parameter of your Dashboard url as in the following example:


"http://localhost:4200/#/project/<YOUR_PROJECT_ID>/home?token=<JWT_TOKEN>"

Embedded info mode

You can run an embedded version of the dashboard inside an existing app using, for example an iframe, as in the following example which display the detail of a conversation (CONVERSATION_ID starts with support-group-XYZ)


"<iframe src='http://localhost:4200/#/project/<YOUR_PROJECT_ID>/request-for-panel/support-group-<CONVERSATION_ID>?token=<JWT_TOKEN'></iframe>"

Frequently asked questions

Is Tiledesk free to use?

Tiledesk is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does Tiledesk do?

No-code platform to build AI agents and automate support

What is Tiledesk written in?

Tiledesk is primarily written in TypeScript. Its source is publicly available at https://github.com/tiledesk/tiledesk-dashboard, and it has 15 GitHub stars.

What is a good open source alternative to Intercom?

Tiledesk is one of the open source options listed as an alternative to Intercom. Compare licences, stars and activity side by side on the Tiledesk profile.