Skip to content

指定由哪个技能组接待 ​

你的系统知道这个客户是谁,把接待归属交给你来定。

开始之前 ​

什么时候用得上 ​

合从自己的分配规则只知道「这通对话从哪个渠道来」,不知道「这个客户是谁」。而这件事你的系统往往一清二楚:他买的是哪条产品线、是不是签了年框的大客户、上一单还在售后流程里。

setRouting() 就是把这个判断交给你:咨询发起前,由你的代码指定这次由哪个技能组接待。

常见的几种用法:

  • 会员等级不同走不同的组,白金客户直接进专属组
  • 按产品线分流,买 A 产品的进 A 组,不用客户自己在菜单里选
  • 帮助中心的不同栏目挂不同的组,退换货页面进售后组

只能指定技能组,不能指定到某个客服

指定到组,你的系统里就不用维护一份客服工号对照表。

技能组在 设置 > 成员管理 里建,用法见让不同渠道的咨询分给指定客服。

怎么用 ​

拿到命令对象 hc 之后,传技能组的名字,和工作台里建的那个名字一模一样,中文照写:

js
hc.setRouting('售后组')

要细配指定不到人时怎么办,传对象:

js
hc.setRouting({
  skillGroup: '售后组',
  fallback: 'group',
  fallbackGroup: '综合组'
})
字段必填说明
skillGroup是技能组名称。传 null 或空串等于清除
fallback否指定的组没人能接时怎么办,见下表。默认 normal
fallbackGroupfallback 为 group 时必填兜底技能组的名称

传 null 是清除,不传是保持原样,两者不一样:

js
hc.setRouting(null)   // 清除,之后按系统规则正常分配
hc.setRouting()       // 什么也没做,之前设的值还在

指定的组没人能接,怎么办 ​

技能组是绝对隔离的:指定了售后组,就只在售后组里挑人,组里没人能接不会扩散到组外。这时按你配的 fallback 走:

fallback行为
normal(默认)当作没指定过,在全公司范围内正常分配
group换到 fallbackGroup 这个组再挑一次
leave_message不再尝试,直接进留言

「没人能接」指的是组里没有一个人在线

客服都在线但接待量满了,不算没人能接 —— 客户按渠道的排队设置等着,仍然由这个组接待。降级只在组里一个在线的人都没有时才发生。

所以选 normal 之外的档位之前,先确认这个组的排班能覆盖客户来咨询的时段,见在线规则。

只降一级,不会连环找下去

兜底组里也没人能接,对话就进留言,不会再往下找第三个组。兜底组的名字打错、或者那个组后来被删了,同样直接进留言。

三条路的终点其实是同一个:都不会让客户没人管。差别只在于你愿不愿意让他被组外的人接待。

生效范围与优先级 ​

值绑这一通对话,对话结束就自然失效,下次咨询重新算。所以你不需要在客户登出时清理,也不用担心存量数据,想停用不再传这个值即可。

它的优先级最高,压过渠道设置里的默认技能组。两边都配了,以代码里的为准,不取交集。

它只管自动分配。主管改派、客服转给同事,都是活人当场看着现场做的决定,不受这个值影响。

组名匹配不上就当没指定过:打错字、组被改名、组被删掉,对话照常按系统规则分配,客户那边毫无影响,浏览器控制台会打一条警告。它不会报错,也不会拦住客户的消息。

如果这通对话已经由人工接待,而当前这位客服不在你指定的组里,合从会在聊天窗里问客户一句愿不愿意转,客户同意才转过去。客户拒绝就维持原样。

怎么确认生效了 ​

客服在对话详情右栏的 对话动态 里能看到这通对话的分配过程:指定了哪个组、是直接生效还是走了降级、组名有没有匹配上,逐条记着。配完走一遍完整流程,对照这里确认。

什么时候调 ​

setRouting() 要在客户发出第一条消息之前调好,之后再调只对下一通对话生效。

拿到命令对象就可以调,不用等聊天窗打开——客户还没点开咨询按钮时,命令会先存下来:

js
window.hecong((hc) => {
  // 页面上已经知道客户身份时,可以和 identify 一起调
  hc.identify({ id: currentUser.id, profile: { name: currentUser.name } })
  hc.setRouting(currentUser.level === 'platinum' ? '白金客户组' : '综合组')
})

同一个页面里多次调用,最后一次生效。

下一步 ​