消息流程是 PPMESSAGE 消息系统的核心组件,消息流程通过响应消息渠道的事件,执行预定义的流程,每个流程由开始和结束节点以及中间的若干节点组成,节点执行数据处理或者指定的动作,返回执行的结果,通过对节点结果的处理就将引导流程走向下一个节点,使节点间形成连接关系,构成流程。
简介
消息流程是 PPMESSAGE 最复杂和难于理解的部分,也是驱动 PPMESSAGE 工作的系统核心。
一个完整的流程由开始节点开始,结束节点结束,中间包含若干节点,每个节点对应一个独立的操作,节点间通过操作结果和事件响应、变量参数传递建立联系,从而构成一个完成的流程。下图是一个例子。
流程界面
左边栏是流程列表,流程列表中的每一项都代表一个流程。每个流程有四个元素,状态指示,流程名称,流程类型,流程菜单。
状态指示指明这个流程是否是处于激活状态,流程名字用于标示流程,可以取同样的名字,因为系统内部并没有以名字区分,即使是同样的名字也可以是不同的流程,流程类型是指这个流程的类别,目前对于网站渠道的访客行为,PPMESSAGE 支持的流程类型有三种,
- LOAD CHAT WIDGET (客户加载聊天组件)
- OPEN CHAT WIDGET (客户打开聊天组件)
- SEND MESSAGE (客户在聊天组件上发送了一条消息)
这几个类型的含义分别是,客户加载聊天窗口,客户打开聊天窗口,客户发送了一个消息。一中类型只能运行一个流程是激活的。
右侧的流程编辑窗口,上边一条是工具栏,工具栏中加载对应于流程类型的节点按钮,这些节点只适用于与当前的流程类型,不同的流程类型需要不同的节点支持。
以 LOAD CHAT WIDGET 流程类型为例,这个流程是在客户加载聊天窗口的时候有效,指网页刚刚加载,聊天的气泡开始闪现的时刻。
LOAD CHAT WIDGET 支持的节点有:
- 逻辑操作
- 正则表达式匹配
- 客户信息获取
- 分配给所有座席服务人员
- 分配给指定的组
- 分配给某个座席人员
- 分配给指定的座席人员
- 与外部 WEB 服务交互
- 定时
- 设置 TITLE
- 设置 欢迎词
- 设置界面特效
- 结束流程
除了一些必须遵循的原则,这些节点可以任意组合构成一个流程。
一个流程必须有一个入口节点,必须以结束节点结束,每个节点可以产生的结果必须配置下一个响应的节点以构成完整路径。
每个节点可能都有一个 FAILED 的结果,这个结果的产生的原因来与对节点属性配置的不正确,如果没有响应 FAILED 结果 (即没有为这个结果连接下一个节点),那么系统会自动执行 退出 节点,结束整个流程。往往我们在调试流程的时候需要响应 FAILED 节点,当流程投入使用的时候可以不用配置 FAILED 的响应节点。
节点属性
通过 DRAG AND DROP (在 PC 系统上,MOBILE 还不支持)将工具栏上的节点放置于空白处,建立节点,单击节点,节点会处于选中的状态。一个选中状态的节点,四周会被 HIGHLIGHT,并且会出现一个3个点的图标按钮,点击这个按钮或者双击当前节点会换出节点属性页面。
这是一个节点的属性,这个窗口可以通过双击节点弹出,也可以通过单击节点的右上角的 ‘更多’ 按键实现。
每个节点都有其特别的属性,但类别分为:
- 基本信息:节点名称,是否有超时设置
- 输入参数:可以是选择框有内置的选项供选择,可以文本框用来直接输入
- 输出结果:输出结果是指这个节点操作结束后,会产生一个结果数据,这个结果数据会保存在以输出结果命名的变量中
- 路径:路径是这个节点执行结果对应的下一个节点
对于 GET CUSTOMER DATA (获取客户变量) 这个节点类型来说,它需要 INPUT PARAMETER (输入参数),这个参数是客户数据的属性名称,如用户的电子邮件,用户正在浏览的网页 URL 等等。
获取这个结果后会保存的输出变量命名的变量中,这个变量命名必须以 var_开头,避免与系统变量冲突。这个变量可以用在逻辑运算或者正则表达式匹配的节点中使用,这个变量的值会对应于每个访客,虽然同一流程,不同访客,不同的值。系统内置了很多关于访客内容的变量,可以在‘以座席回复消息’这样的节点中直接引用。如在 ppmessage.cn 的网站上,打开聊天窗口,就会自动发送一个欢迎的消息,这个消息引用了用户属性变量:
"欢迎来自" + user_country + " " + user_city + "的您"
其中 user_country 和 user_city 就是内置的访客信息变量。
这些变量还包括:
["user_fullname", "user_email", "user_mobile", "user_language",
"user_country", "user_city", "browser_name", "app_name",
"is_anonymous_user", "is_app_user", "is_browser_user",
"is_sms_user", "is_email_user", "is_telephone_user",
"is_wechat_public_user", "is_wechat_private_user",
"user_web_sessions", "page_title", "page_url", "browser_language", "is_assigned_user",
"message_subtype", "message_body", "email_body", "email_subject",
"email_recipient", "email_attachments", "called_number", "caller_number",
"sms_from", "sms_to", "sms_body", "service_type", "service_key", "user_input_dtmf"]
很多,可以顾名思义。
上图是一个界面特效节点,这个节点能够将聊天气泡附加以各种动画特效,用来提示浏览者 ---- 这里有个东西在活动。
这个界面特效节点有两个结果,一个是 SUCCESS 一个是 FAILED,这也是大多数操作性节点的结果,SUCCESS 是执行成功,FAILED 是失败,失败的原因一般来说是配置的不对,如没有指定某个具体的界面特性。上图里面指定了一个界面特性 “HINGE” 这是个类似铰链的顶点转动动画。
另外FLOW 界面是支持移动端浏览和操作的。 (目前从工具栏上 DRAG AND DROP 节点还不能支持在 移动端操作。)