Tiledesk开源客服平台:从部署到定制的完整指南
1. 项目概述与核心价值
如果你正在为你的网站、应用或者业务寻找一个功能强大、可定制性高,并且能无缝集成智能聊天机器人的开源客服平台,那么 Tiledesk 绝对值得你花时间深入了解。我最初接触它,是因为厌倦了那些要么功能简陋、要么价格昂贵、要么黑盒封闭的 SaaS 客服系统。我需要的是一个能完全掌控在自己手里,从界面到逻辑都能深度定制,同时又能利用现代对话式 AI 来提升效率的解决方案。Tiledesk 完美地契合了这个需求。它不仅仅是一个“在线聊天”插件,更是一个完整的“对话式应用开发平台”。这意味着,你可以用它来构建从售前咨询、自动问答、工单流转到内部协同的完整对话流程,并且这一切都建立在开源和可扩展的架构之上。
它的核心价值在于“一体化”和“智能化”。一体化体现在它原生支持 Web 嵌入式聊天窗口、独立的移动端应用(Android/iOS),以及通过适配器连接主流的即时通讯渠道如 WhatsApp、Facebook Messenger 等。你只需要编写一次对话逻辑,就能让它在所有渠道上运行,系统会自动适配不同渠道的交互特性(比如将按钮转化为纯文本菜单)。智能化则源于其内置的一流聊天机器人引擎,你可以通过可视化的设计器拖拽出复杂的对话流程,结合自然语言处理能力,让机器人不仅能回答固定问题,还能理解用户的意图,实现真正的自动化服务。对于技术团队来说,其基于 Node.js 和 Express 的技术栈非常友好,提供了丰富的 API 和 Webhook,让你能够轻松地将对话能力集成到现有的业务系统中,甚至可以在聊天窗口内部署一个完整的微型应用。接下来,我将从设计思路、部署实操到深度定制,为你完整拆解这个平台。
2. 架构设计与核心组件解析
2.1 整体架构与模块化思想
Tiledesk 的设计采用了清晰的微服务架构,这使得它具备极高的可扩展性和部署灵活性。当你通过 Docker Compose 或 Kubernetes Helm 部署时,实际上是在启动一组协同工作的独立服务。理解这些组件各自的责任,对于后续的运维、故障排查和定制开发至关重要。
整个平台可以划分为三大层次:前端交互层、核心业务逻辑层和数据与基础设施层。前端交互层直接面向最终用户和客服人员,包括了 Tiledesk Dashboard(客服工作台)、Tiledesk Design Studio(机器人流程设计器)、Chat21 Web Widget(嵌入网站的聊天组件)以及 Chat21 Ionic(跨平台移动端应用)。核心业务逻辑层是大脑,包括 Tiledesk Server(处理项目管理、用户认证、渠道集成等核心业务)和 Chat21 Server(专门处理实时消息的路由、分发与状态管理)。数据与基础设施层则由 MongoDB(存储所有对话、用户、机器人脚本等数据)和反向代理(通常用 Nginx,处理 HTTPS、负载均衡)构成。
这种分离的好处显而易见。例如,当对话并发量激增时,你可以单独对 Chat21 Server 进行水平扩展;当需要修改机器人逻辑时,只需在 Design Studio 中操作,不影响在线服务。所有服务之间通过定义良好的 API 进行通信,确保了系统的松耦合。
2.2 核心组件深度剖析
Tiledesk Server:这是系统的中枢。它不处理具体的消息转发,而是负责更上层的业务逻辑:创建和管理项目(每个独立部署的客服系统就是一个项目)、管理团队成员和权限、配置与 WhatsApp 等外部渠道的连接、设置 Webhook 端点以及管理机器人的元数据。它提供了完整的 RESTful API,你所有的管理操作和第三方系统集成,最终都会调用到这里。
Chat21 Server:这是实时通信的引擎。基于 WebSocket 协议,它负责维持客服、用户和机器人之间的长连接,确保消息的实时送达。它处理“在线状态”、“消息已读回执”、“输入状态提示”等即时通讯的核心特性。其高性能是保障聊天体验流畅的关键。
Tiledesk Dashboard:客服人员的作战室。这是一个功能丰富的单页应用,客服在这里可以同时接待多个对话,查看用户历史记录,使用预设快捷回复,并且最重要的是,可以与 AI 机器人进行人机协作。当机器人无法回答时,对话会自动转给人工,客服接手后可以看到机器人之前的交互记录,实现无缝交接。
Tiledesk Design Studio:这是 Tiledesk 的“智能”所在。一个强大的可视化拖拽式编辑器,用于构建聊天机器人的对话流程。它支持条件分支、变量赋值、调用外部 HTTP API、发送富媒体消息(图片、按钮、列表等)。你设计的流程会以一种结构化的 JSON 格式保存,由 Tiledesk Server 解释执行。它的“编写一次,多渠道运行”特性,背后是通过一个消息渲染层来实现的,该层会根据当前渠道的能力,将通用的“按钮”指令转化为渠道支持的交互形式。
数据存储(MongoDB):所有持久化数据都存放在 MongoDB 中,包括用户档案、完整的对话历史、机器人脚本、渠道配置等。选择 MongoDB 非常适合对话这种半结构化、模式易变的数据。在生产环境中,强烈建议使用 MongoDB 的副本集(Replica Set)架构,以确保数据的高可用性和灾难恢复能力。
注意:在开发或测试环境中,Docker Compose 会启动一个单节点的 MongoDB 容器,这很方便。但绝对不要将此配置用于生产环境。单节点容器无数据冗余,一旦容器崩溃或数据损坏,将导致全部数据丢失。生产环境必须使用云数据库服务(如 MongoDB Atlas)或自建的高可用副本集。
3. 部署方案详解与实操指南
Tiledesk 提供了两种主流的部署方式:Docker Compose和Kubernetes Helm。选择哪一种,取决于你的使用场景和技术栈。
3.1 Docker Compose 部署:最适合开发与快速验证
Docker Compose 方案将所有服务定义在一个docker-compose.yml文件中,通过一条命令即可启动全套环境。这是进行功能体验、开发调试或小型概念验证(POC)的理想选择。
实操步骤:
环境准备:确保你的服务器或本地开发机已安装 Docker 和 Docker Compose。可以通过运行
docker --version和docker-compose --version来验证。获取部署文件:从 Tiledesk 的官方 GitHub 仓库克隆代码或直接下载
docker-compose目录下的文件。核心文件就是docker-compose.yml和可能的环境变量配置文件.env。git clone https://github.com/Tiledesk/tiledesk.git cd tiledesk/docker-compose配置环境变量:查看目录下是否有
.env.example文件,将其复制为.env,并根据需要修改。关键配置通常包括:MONGODB_URL:MongoDB 连接字符串。对于 Compose 部署,通常指向内部容器mongodb://mongodb:27017/tiledesk。- 各个服务的端口映射。
- 初始管理员账号密码(如果支持通过环境变量设置)。
启动服务:在
docker-compose.yml所在目录,执行启动命令。-d参数表示在后台运行。docker-compose up -d这条命令会依次拉取所需的 Docker 镜像(如果本地没有),然后创建网络、卷,并启动所有定义的服务容器。你可以通过
docker-compose ps查看所有容器的运行状态。访问与验证:服务启动完成后(通常需要一两分钟等待所有服务初始化),你可以在浏览器中访问:
- 客服工作台 (Dashboard):通常是
http://你的服务器IP:3000。用初始管理员账号登录。 - 设计器 (Design Studio):通常是
http://你的服务器IP:3000/designer(可能集成在 Dashboard 内或独立端口)。 - Web聊天组件:你需要从 Dashboard 中创建一个项目,然后获取到一段 JavaScript 嵌入代码,将其放入一个 HTML 文件即可测试。
- 客服工作台 (Dashboard):通常是
避坑心得:
- 端口冲突:检查
docker-compose.yml中定义的宿主机端口(如3000:3000)是否已被其他程序占用。如果占用,修改冒号前的第一个端口号。 - 容器启动顺序:虽然 Compose 有
depends_on选项控制启动顺序,但不会等待服务“就绪”。有时 Tiledesk Server 会在 MongoDB 完全初始化前尝试连接,导致启动失败。如果遇到此问题,可以尝试重启 Tiledesk Server 容器:docker-compose restart tiledesk-server。 - 资源消耗:全套服务在本地运行会占用相当的内存(预计 2GB 以上)。确保你的开发机有足够资源。
3.2 Kubernetes Helm 部署:面向生产与弹性扩展
对于生产环境或需要弹性伸缩的场景,Kubernetes 结合 Helm 是更专业的选择。Tiledesk 提供的 Helm Chart 是一个打包好的部署模板,可以一键将应用部署到 K8s 集群中。
部署前提:
- 拥有一个可用的 Kubernetes 集群(可以是云服务商的托管集群,如 GKE, EKS, AKS,也可以是自建的)。
- 本地已安装
kubectl命令行工具并配置好集群连接。 - 已安装 Helm 包管理器。
实操步骤:
添加仓库与获取 Chart:首先将包含 Tiledesk Chart 的仓库添加到 Helm。
helm repo add tiledesk https://tiledesk.github.io/helm-charts helm repo update定制化配置(关键步骤):直接安装默认 Chart 仅适用于测试。生产部署必须进行定制。最好的方式是创建一个自定义的
values.yaml文件。# 先将默认的 values 文件导出作为模板 helm show values tiledesk/tiledesk > my-values.yaml然后,用文本编辑器仔细修改
my-values.yaml。以下是最关键的生产级配置项:- 禁用内置 MongoDB:找到
mongodb.enabled选项,将其设置为false。 - 配置外部 MongoDB:找到
externalMongoDB部分,启用并填写你的高可用 MongoDB 连接字符串。例如,如果你使用 MongoDB Atlas,连接串会类似于:externalMongoDB: enabled: true uri: "mongodb+srv://<username>:<password>@cluster0.xxxxx.mongodb.net/tiledesk?retryWrites=true&w=majority" - 配置 Ingress:如果你希望通过域名访问(如
chat.yourcompany.com),需要配置 Ingress。启用ingress.enabled,并设置ingress.hosts和ingress.tls(用于 HTTPS)。这通常需要集群中已安装 Ingress Controller(如 Nginx Ingress 或 Traefik)。 - 资源请求与限制:为每个组件(如
tiledesk-server、chat21-server)设置合理的 CPU 和内存的resources.requests和resources.limits,这是 K8s 进行调度和保证服务稳定的基础。 - 镜像拉取密钥:如果你是企业版用户,需要从私有仓库拉取镜像,在此处配置
imagePullSecrets。
- 禁用内置 MongoDB:找到
执行安装:使用自定义的 values 文件进行安装,并为其指定一个发布名称(如
tiledesk-prod)。helm install tiledesk-prod tiledesk/tiledesk -f my-values.yaml -n tiledesk --create-namespace这条命令会在名为
tiledesk的命名空间中部署所有资源。验证与访问:使用
kubectl命令查看 Pod 状态、Service 和 Ingress。kubectl get pods,svc,ingress -n tiledesk等待所有 Pod 状态变为
Running。然后根据你配置的 Service 类型(如LoadBalancer)或 Ingress 规则,获取访问地址。
生产环境重要建议:
- 分离数据库:如架构解析所述,务必使用外部的、高可用的 MongoDB 服务。这不仅是为了数据安全,也便于专业的数据备份和性能监控。
- 配置持久化存储:虽然 Tiledesk 的有状态数据主要在 MongoDB,但检查 Chart 中是否有其他组件需要持久化卷(Persistent Volume),并确保其配置正确。
- 集成监控与日志:默认 Chart 不包含日志收集和监控。你需要将集群的日志系统(如 EFK Stack)和监控系统(如 Prometheus + Grafana)与 Tiledesk 的 Pod 集成,以便追踪性能指标和排查问题。
- 考虑网络策略:在安全要求高的环境,配置 Kubernetes Network Policies 来限制 Pod 之间的网络流量,遵循最小权限原则。
4. 核心功能配置与机器人开发实战
部署完成只是第一步,让 Tiledesk 真正为你所用,关键在于配置和机器人开发。
4.1 多渠道配置与连接
Tiledesk 的强大之处在于它能统一管理来自不同渠道的对话。配置流程通常如下:
- 在 Dashboard 中创建项目:项目是隔离的单元,包含独立的机器人、客服团队和渠道配置。
- 获取 Web Widget 嵌入代码:在项目设置中找到“Web Chat”或“Widget”选项,生成一段 JavaScript 代码。将其嵌入你的网站页面,即可立即启用网页聊天功能。你可以自定义 Widget 的颜色、位置、欢迎语等。
- 连接即时通讯应用(如 WhatsApp):这通常需要通过一个官方商业 API 提供商(如 Twilio、MessageBird)来桥接。流程是:你在这些云通信平台购买一个 WhatsApp 商业号码并配置 Webhook,然后将 Webhook 地址指向你的 Tiledesk Server 提供的特定 API 端点(例如
https://your-tiledesk-domain/api/v1/whatsapp/twilio)。当用户向你的 WhatsApp 号码发送消息时,消息会通过云通信平台转发到 Tiledesk,Tiledesk 处理后再通过原路返回回复。在 Tiledesk Dashboard 的渠道配置页面,你需要填入从云通信平台获取的账户 SID、认证令牌等信息来完成连接。
4.2 使用 Design Studio 构建智能对话流
Design Studio 是 Tiledesk 的灵魂。让我们通过构建一个简单的“产品咨询”机器人来了解其核心概念。
场景:用户进入聊天,机器人询问其感兴趣的产品类别,然后根据选择推荐具体产品,并询问是否需要转接人工客服。
- 创建新对话流:在 Design Studio 中点击“新建”,给你的流程命名,例如“产品导购”。
- 设置触发意图:流程的入口通常由一个“意图”触发。你可以设置一个简单的关键词意图,如当用户发送“我想买产品”、“咨询”时,进入此流程。更高级的做法是使用 NLP 引擎训练一个“产品咨询”意图。
- 设计对话节点:
- 欢迎节点:第一个节点通常是发送一条欢迎消息:“您好!欢迎咨询我们的产品。请问您对哪类产品感兴趣?A. 电子产品 B. 家居用品 C. 图书”。
- 用户选择节点:添加一个“等待用户输入”节点。然后连接一个“条件”节点。在条件节点中,你可以判断用户输入的内容。例如:
- 条件:
{{user_message}}包含 “A” 或 “电子” -> 跳转到“电子产品推荐”节点。 - 条件:
{{user_message}}包含 “B” 或 “家居” -> 跳转到“家居用品推荐”节点。 - 条件:
{{user_message}}包含 “C” 或 “图书” -> 跳转到“图书推荐”节点。 - 默认条件(其他)-> 跳转到“未理解,请重选”节点。
- 条件:
- 推荐节点:例如“电子产品推荐”节点,可以发送一条包含图片、标题、价格和“了解更多”按钮的富媒体消息。
- 转人工判断节点:在推荐产品后,添加一个“提问”节点:“需要我为您转接人工客服详细解答吗?(回复‘需要’或‘不用’)”。根据用户的回答,通过条件节点判断:如果“需要”,则执行“转接人工”动作;如果“不用”,则发送结束语并结束流程。
- 使用变量:为了让对话更个性化,你可以使用变量。例如,在流程开始时,通过调用 API 节点获取用户姓名并存入
{{customer_name}}变量,然后在后续消息中使用“{{customer_name}},您好!”。变量也可以用来记录用户的选择,为后续客服提供上下文。 - 调用外部 API:这是实现业务集成的关键。Design Studio 支持 HTTP Request 节点。例如,在“电子产品推荐”节点后,可以调用一个内部产品目录 API,获取实时库存和价格信息,动态生成回复消息。你也可以在对话结束后,通过 Webhook 节点将整个对话摘要和用户选择推送到你的 CRM 系统。
实操心得:
- 流程宜简不宜繁:在设计初期,尽量保持每个流程的线性化,避免过于复杂的嵌套和跳转,这有利于调试和后续维护。
- 充分利用“测试”功能:Design Studio 通常提供模拟测试窗口,在发布前务必进行完整测试,模拟各种用户输入路径。
- 预设回复(Quick Replies)是神器:对于常见问题,不要在流程图中用复杂的逻辑判断,而是在 Dashboard 的“预设回复”中配置。客服可以在对话中一键发送,机器人也可以被配置为优先匹配预设回复库中的答案,这能极大提升效率。
5. 运维、监控与故障排查实录
将 Tiledesk 投入生产后,稳定的运维和快速的故障排查能力必不可少。
5.1 系统监控要点
你需要关注以下几个核心指标:
- 服务健康状态:所有核心 Pod/容器是否持续运行(
Running状态)。在 K8s 中,可以配置 Liveness 和 Readiness Probe。 - 资源使用率:CPU 和内存使用率。特别是
chat21-server,在高并发消息时可能成为资源瓶颈。使用kubectl top pods或集成 Prometheus 进行监控。 - 数据库性能:MongoDB 的连接数、操作延迟、磁盘 I/O。如果使用云数据库,利用其提供的监控仪表板。
- 实时连接数:监控 Chat21 Server 的活跃 WebSocket 连接数,这直接反映了当前在线的用户和客服数量。
- 消息队列长度:如果消息处理出现堆积,需要检查相关队列。
5.2 常见问题与排查技巧
以下是我在实际运维中遇到的一些典型问题及解决思路:
问题一:用户发送消息,但客服端收不到,或回复消息用户收不到。
- 排查思路:
- 检查网络连接:确认用户浏览器到你的服务器,以及客服端到服务器的网络是通的,防火墙是否放行了相关端口(如 3000, 9443 等)。
- 检查 WebSocket 连接:在浏览器开发者工具的“网络”(Network)标签页中,过滤
ws://或wss://连接,查看 WebSocket 连接是否成功建立(状态码应为 101 Switching Protocols)。如果连接失败,检查 Chat21 Server 的 Pod 是否健康,以及 Ingress/负载均衡器是否正确配置了 WebSocket 代理(通常需要Upgrade和Connection头)。 - 检查服务日志:这是最直接的途径。查看
chat21-server和tiledesk-server的日志,寻找错误信息。- Docker Compose:
docker-compose logs -f chat21-server - Kubernetes:
kubectl logs -f deployment/chat21-server -n tiledesk
- Docker Compose:
- 检查 MongoDB 连接:在日志中查找 MongoDB 连接错误。确认连接字符串正确,且数据库可访问。
问题二:机器人不响应,或流程执行错误。
- 排查思路:
- 确认机器人已发布且启用:在 Design Studio 中,确保你修改后的对话流程已经点击“发布”,并且在项目设置中,该机器人被分配到了正确的渠道或默认启用。
- 检查流程逻辑:在 Design Studio 中使用测试工具,输入触发语句,一步步跟踪流程执行,看在哪一个节点出现了意外的分支或停止。
- 检查 API 调用节点:如果流程中有调用外部 API 的节点,查看该节点的日志或响应。可能是 API 地址错误、认证失败、超时或返回了非预期的数据格式,导致流程中断。
- 查看 Tiledesk Server 日志:机器人引擎运行在 Tiledesk Server 中,查看其日志可以获得更详细的执行错误信息,比如脚本语法错误、变量未定义等。
问题三:部署后,Dashboard 或 Design Studio 页面无法加载,或样式错乱。
- 排查思路:
- 检查前端静态资源:这通常是前端服务(如
tiledesk-dashboard)的容器没有正确启动,或者构建的静态文件缺失。检查该容器的日志。 - 检查反向代理配置:如果你配置了 Ingress 或独立的 Nginx,确认静态文件(如
.js,.css, 图片)的路由规则正确,并且 MIME 类型设置无误。 - 检查浏览器控制台:打开浏览器开发者工具的“控制台”(Console)和“网络”(Network)标签页,查看是否有 JavaScript 报错或资源加载失败(404 或 500 错误)。根据错误信息定位具体服务。
- 检查前端静态资源:这通常是前端服务(如
问题四:在 Kubernetes 中,Pod 频繁重启。
- 排查思路:
- 查看 Pod 状态和事件:
kubectl describe pod <pod-name> -n tiledesk。在Events部分,通常会看到重启的原因,例如OOMKilled(内存不足)、CrashLoopBackOff(启动即崩溃)、ImagePullBackOff(镜像拉取失败)。 - 查看崩溃容器的日志:
kubectl logs -p <pod-name> -c <container-name> -n tiledesk(-p查看前一个容器的日志,对于已重启的 Pod 非常有用)。 - 检查资源限制:如果是
OOMKilled,需要增加该容器的resources.limits.memory。 - 检查健康检查探针:如果 Liveness Probe 配置过于敏感(例如,检查的路径在服务完全初始化前不可用),会导致服务刚启动就被杀死。可以适当调整
initialDelaySeconds或failureThreshold参数。
- 查看 Pod 状态和事件:
为了更直观,我将一些常见问题、可能原因和排查命令整理成下表:
| 问题现象 | 可能原因 | 首要排查点 | 常用命令/操作 |
|---|---|---|---|
| 消息收发失败 | WebSocket 连接故障 | 1. 浏览器开发者工具网络面板 2. Chat21 Server 日志 | kubectl logs -f deploy/chat21-server |
| 机器人无响应 | 流程未发布/启用,或逻辑错误 | 1. Design Studio 发布状态 2. Tiledesk Server 日志 | kubectl logs -f deploy/tiledesk-server |
| 页面无法访问 | 前端服务异常,或代理配置错误 | 1. 前端服务 Pod 状态 2. 浏览器控制台错误 | kubectl get pods -l app=tiledesk-dashboard |
| Pod 频繁重启 | 内存不足、启动崩溃、镜像问题 | 1. Pod 描述信息中的 Events 2. 前一个容器的日志 | kubectl describe pod <name>kubectl logs -p <pod-name> |
| 数据库连接失败 | 连接字符串错误,或 MongoDB 不可用 | 1. Tiledesk Server 启动日志 2. MongoDB 服务状态 | docker-compose logs mongodbkubectl get svc mongodb |
6. 进阶集成与扩展开发指南
当基础功能满足后,你可能会需要更深的集成和定制,Tiledesk 的开放 API 和 Webhook 系统为此提供了可能。
6.1 利用 Webhook 实现业务闭环
Webhook 允许 Tiledesk 在特定事件发生时,向你的服务器发送一个 HTTP POST 请求。这是将对话数据融入你现有业务系统的桥梁。
典型应用场景:
- 同步用户信息到 CRM:当新用户发起对话时,Tiledesk 会触发
conversation_started事件。你的 Webhook 接收器可以获取用户 ID、渠道信息等,并调用你的 CRM API 创建或更新联系人。 - 对话结束后生成工单:当对话状态变为
closed时,触发 Webhook。你可以将完整的对话记录、用户身份和客服备注打包,在你的工单系统中创建一张新的服务单。 - 实时分析对话情绪:接收每一条消息事件(
message_created),将其内容发送给情感分析 API,如果检测到用户强烈不满,可以立即在内部系统中触发警报,通知主管介入。
配置要点:在 Tiledesk Dashboard 的项目设置中,找到 Webhook 配置页面。你需要提供一个公网可访问的 HTTPS 端点 URL(出于安全考虑,通常不支持 HTTP),并选择要订阅的事件类型。你的接收服务器需要快速返回一个2xx状态码,否则 Tiledesk 可能会重试。
6.2 基于 API 的深度集成
Tiledesk 提供了全面的 REST API,几乎涵盖 Dashboard 上所有能做的操作。这意味着你可以用程序来管理项目、对话、用户和机器人。
API 使用示例:获取特定项目的对话列表
假设你需要定期将未关闭的对话导出进行分析。
- 获取认证令牌:首先,你需要一个 API Token。可以在 Dashboard 的用户设置或项目设置中生成。
- 调用 API:
这个请求会返回所有状态为“开放”的对话请求列表,包含请求ID、用户信息、最后消息时间等。curl -X GET \ 'https://your-tiledesk-domain/api/v1/projects/{PROJECT_ID}/requests?status=open' \ -H 'Authorization: Bearer YOUR_API_TOKEN' \ -H 'Content-Type: application/json'
扩展开发思路:构建自定义渠道适配器
虽然 Tiledesk 支持许多主流渠道,但如果你需要连接一个非常小众的内部通讯工具呢?你可以基于其架构开发一个自定义的“适配器”。
- 理解消息流:所有外部渠道的消息,都会通过一个统一的入口进入 Tiledesk Server。你需要为你的渠道编写一个服务,这个服务扮演两个角色:
- 接收器:监听你的小众工具推送过来的消息,将其转化为 Tiledesk 内部定义的标准消息格式,然后调用 Tiledesk 的
api/v1/public/messages等接口发送进去。 - 发送器:订阅 Tiledesk 的 Webhook(如
message_created),当有消息需要发送到你的小众工具时,你的服务接收到 Webhook,再将标准格式的消息转化为小众工具所需的格式并发送出去。
- 接收器:监听你的小众工具推送过来的消息,将其转化为 Tiledesk 内部定义的标准消息格式,然后调用 Tiledesk 的
- 实现要点:你的自定义服务需要处理认证、消息格式转换、重试机制等。它可以是一个简单的 Node.js 或 Python 服务,与 Tiledesk 并排部署。
通过以上这些步骤,你不仅能够部署和运行 Tiledesk,更能深入其肌理,根据自身业务需求进行量身定制,真正发挥这个开源对话平台的最大价值。从快速启动一个客服系统,到构建一个与企业流程深度绑定的智能对话中台,Tiledesk 提供了一个坚实而灵活的基础。
