客戶對話
三個平台,一條隊列
WhatsApp、Instagram、Messenger 各有各的 app、各有各的通知,也各有一個「剛好在看」的同事。把三者合成一條隊列是容易的一半。真正重要的另一半,是三個渠道各自跑著不同的時鐘——而一段沒有寫上名字的對話,人人都會假設有其他人在處理。
- 觸發
- 兩個
- 執行頻率
- 每條訊息
- 工具
- 5 件
- 需要 durable execution
- 不需要
流程
兩種 webhook 進來,一種行格式出去。分支只問一件事:這段對話寫上名字了沒有。
WhatsApp 訊息
WhatsApp Cloud API
統一格式
n8n · Make
寫入隊列
Sheets · Airtable
Instagram 或 Messenger 訊息
Instagram · Messenger API
查負責人
n8n · Make
尚未有人負責?
n8n IF
指派並通知
Slack · WhatsApp
維持原負責人
—
逐步拆解
- 01
WhatsApp 訊息
WhatsApp Cloud APICloud API 的 webhook,帶住發送者的 WhatsApp id、profile 名稱和訊息內容。同一刻,這個渠道自己的 24 小時時鐘開始走。
- 02
統一格式
n8n · Make把每個渠道映射成同一種格式:誰、哪個渠道、說了什麼、按該渠道規則最遲幾時要回。期限要逐個渠道存,因為三者並不共用同一條。
- 03
寫入隊列
Sheets · Airtable一段對話一行,不是一條訊息一行。渠道、客戶、負責人、期限。這一行本身就是隊列,不需要再維持第二個儀表板跟它同步。
- 04
Instagram 或 Messenger 訊息
Instagram · Messenger API第二種 webhook 格式。兩者都經 Meta 平台送達,但視窗長度不同,對「誰可以先開口」的規定也不同。
- 05
查負責人
n8n · Make讀取這位客戶在這個渠道的隊列行,看看是否已經有人的名字在上面。
- 06
尚未有人負責?
n8n IF刻意只問一條。因為來了新訊息就重新指派一段進行中的對話,正是兩個同事對同一位客戶給出兩種答案的成因。
- 07
指派並通知
Slack · WhatsApp由當值表指派,並把對話連同該渠道的期限一併發給那位同事。沒有寫上名字的提示是通知,不是指派。
平台不容許的事
一條隊列不等於一套規則。每個渠道保留自己的視窗,而共用的那一行必須把差異存下來,不能取平均。
WhatsApp:「When a WhatsApp user messages you or calls you, a 24-hour timer called a customer service window starts」,對方再發訊息會重置,而且「when the window closes, you can only send pre-approved template messages」。
WhatsApp Cloud API — Send messagesMessenger:「Businesses have up to 24 hours to respond to a user」;超出之後要用 message tag 對應特定已批准用途,而 Human Agent tag「allows businesses to manually respond to user messages within a 7-day period」。Messenger 的緩衝比 WhatsApp 長得多,但只限人手回覆。
Messenger Platform — Policy overviewInstagram:「Your app has 24 hours to respond to any message sent from an Instagram user to your app user」;對方未先聯絡你就發不出訊息,而且「group messaging is not supported. An Instagram professional account can only converse with one customer per conversation.」
Instagram Platform — Messaging APIMessenger 把「誰負責這段對話」當成平台概念:pass_thread_control 回呼「will occur when thread ownership for a user has been passed to your application」。
Messenger Platform — messaging_handovers webhookInstagram 也有自己的 Conversation Routing 控制。Meta 文件列出目前 thread owner、pass thread control,以及由 Handover Protocol 遷移到 Conversation Routing;所以 Instagram 的負責權也可以由平台支撐。
Instagram Platform — Conversation Routing
什麼情況不值得做
以下三種情況,維護成本會高於漏訊息的代價。
三個 app 都由同一個人回。為一個人而設的隊列,只是把他本來就知道的事抄一次,而且過時的速度比他忘記的速度更快。
三個渠道服務的其實是不同生意——Instagram 做零售、WhatsApp 做批發、Messenger 做保養。合成一條線就是把性質不同的工作排在一起,兩邊互相排隊,而且沒有理由。
你不會維持當值表。一段對話一個負責人是人手安排的決定,流程只負責記錄。沒有當值表,指派那一步只是隨機挑一個名字,然後叫它做問責。