
## WABA消息旅程流程文档
本文档概述了向联系人发送WhatsApp消息的自动化工作流,该流程每小时触发一次,并通过处置状态和消息计数逻辑进行管理。该工作流旨在确保联系人根据其状态和先前交互频率接收消息。
### 触发与数据检索
旅程从基于时间的触发器和从Supabase联系人表检索数据开始。
– **触发器**:”Schedule Trigger3″节点每小时启动一次工作流,确保系统定期检查需要发送消息的联系人。
– **获取联系人**:”Get many rows1″节点(Supabase)然后从Supabase的contacts_ampere表中检索所有相关联系人数据。这会带来联系人详细信息,如姓名、电话、处置状态、计数和last_message_sent。
### 基于处置状态的分隔
在检索联系人后,工作流根据其处置状态对其进行分隔。
– **处置状态切换**:”Disposition Switch”节点充当主要路由机制。它评估每个联系人的处置字段,并根据预定义类别将它们引导到工作流的不同分支。
– **案例0:new_lead**:处置状态为new_lead的联系人被路由到”Count Switch”进行进一步处理。
– **案例1-4**:工作流还包括test_ride、Booking、walk_in和Sale处置状态的分支,尽管这些分支的详细逻辑在提供的JSON中除了切换节点(”Switch2″、”Switch3″、”Switch4″、”Switch5″)之外没有完全展开。文档重点介绍了new_lead处置状态的详细流程,可以为其他状态复制。
### 消息计数逻辑(针对new_lead处置状态)
对于识别为new_lead的联系人,工作流使用”Count Switch”来确定应发送序列中的哪条消息。
– **计数切换**:此节点评估每个new_lead联系人的计数字段。此计数可能表示在此特定旅程中已发送给联系人的消息数量。
– **计数=0**:引导到”Loop Over Items1″(序列中的第一条消息)。
– **计数=1**:引导到”Loop Over Items2″(序列中的第二条消息)。
– **计数=2**:引导到”Loop Over Items3″(序列中的第三条消息)。
– **计数=3**:引导到”Loop Over Items4″(序列中的第四条消息)。
### 循环和间隔检查
每个”Loop Over Items”节点处理批量联系人,并包含”If Interval”检查(Loop Over Items1除外)。
– **循环项目**(例如”Loop Over Items1″、”Loop Over Items2″、”Loop Over Items3″、”Loop Over Items4″):这些节点迭代从”Count Switch”输出接收的联系人。
– **间隔逻辑**:
– “If Interval”(对于来自”Loop Over Items2″的计数=1):检查间隔是否大于或等于4。此间隔值由单独的Supabase cron作业处理,该作业根据当前时间-上次API命中时间(小时)每分钟更新一次。
– “If Interval1″(对于来自”Loop Over Items3″的计数=2):检查间隔是否恰好为24小时。
– “If2″(对于来自”Loop Over Items4″的计数=3):检查间隔是否恰好为24小时。
### 发送WhatsApp消息
如果联系人通过间隔检查(或对于计数=0立即发送),则使用Gallabox API发送WhatsApp消息。
– **HTTP请求节点**(例如”new_lead_0″、”new_lead_”、”new_lead_3″、”new_lead_2″):这些节点负责通过Gallabox API发送实际的WhatsApp消息。它们配置有:
– 方法:POST
– URL:https://server.gallabox.com/devapi/messages/whatsapp
– 认证:在标头中使用apiKey和apiSecret
– 主体:包含channelId、channelType(whatsapp)和recipient(包括姓名和电话)。
– **WhatsApp消息内容**:包括type:”template”和templateName(例如testing_rahi、wu_2、testing_rahi_1)。bodyValues动态插入联系人的姓名和其他详细信息。一些消息还包括buttonValues用于快速回复(例如”Show me Brochure”)。
### 日志记录和更新联系人状态
在发送(或尝试发送)消息后,工作流记录交互并更新联系人的记录。
– **创建日志**(例如”Create Logs”、”Create Logs1″、”Create Logs2″、”Create Logs3″):这些Supabase节点将消息发送尝试的详细信息记录到logs_nurture_ampere表中。这包括:
– message_id(来自Gallabox API响应主体)
– 联系人的电话和姓名
– 处置状态和mes_count(这是来自联系人表的计数+1)
– last_sent(来自Gallabox API响应标头的时间戳)
– status_code和status_message(来自Gallabox API响应或错误)。
– **状态代码检查**(例如”If StatusCode”、”If StatusCode 202″、”If StatusCode 203″、”If StatusCode 204″):在尝试创建日志后立即,”If”节点检查消息发送尝试的status_code是否为”202″(表示消息服务已接受)。
– **更新联系人行**(例如”Update a row1″、”Update a row2″、”Update a row3″、”Update a row4″):如果状态代码为202,这些Supabase节点更新contacts_ampere表中特定联系人的信息。
– 联系人的计数增加1(计数+1)。
– last_message_sent字段使用来自Gallabox API响应标头的日期进行更新。
这种结构化流程确保联系人通过一系列WhatsApp消息进行培养,每次交互都被记录,联系人的状态被更新以供将来参考和旅程的继续。

评论(0)