统一传递中的分配方法
适用于:Dynamics 365 Contact Center—嵌入、Dynamics 365 Contact Center—独立 和 Dynamics 365 Customer Service
使用分配方法确定如何分配工作项。 您可以使用现成的分配方法,也可以通过配置优先级规则和分配规则集来构建自定义分配规则。
自动分配的工作原理
统一路由中的自动分配过程根据配置的分配规则将传入的工作项与最适合的客户服务代表(服务代表或代表)进行匹配。 此连续过程包含多个分配周期和工作项的默认块大小。
每个周期都选取适用的默认块大小中排名靠前的未分配工作项,并尝试将每个工作项与适当的代表匹配。 由于不可用或未找到匹配技能而未分配给代表的工作项将路由回队列。 下一个分配周期将选择下一组包含新工作项的最高优先级项目。
如果找不到工作项的合格代表,则分配周期会不断重新尝试分配适用于渠道的默认大小块项的最高数量。
对于数字消息传递和语音,默认块大小为 100 个最高优先级的工作项。
对于记录渠道,
- 每个队列优先处理的工作项为 10,000 个
- 默认情况下,进行处理以供分配的工作项为 2,000 个
有关详细信息,请参阅管理队列的最佳做法。
统一路由如何确定工作项的优先级
统一路由优先处理单个队列内和跨队列的工作。 队列中的优先级可以是以下类型:
- 先进先出是默认的优先级逻辑,适用于没有优先级规则的现成分配方法和自定义分配方法。
- 可以使用自定义分配方法定义的自定义优先级。
首先分配队列中最早的对话或工作项。 对于异步消息传递渠道(例如持续聊天、WhatsApp 和 Facebook),根据上次交互时间确定最早的对话。 例如,如果客户在 WhatsApp 上首次联系的时间是星期一,初始问题在星期二得到解决,但对话未关闭,则它将进入等待状态。 如果同一客户在周四下午带着新问题回来,而新客户从周四早上开始排队等候,则只有在周四早上以来一直等待的客户之后,才会优先考虑回头客。
当客户服务代表订阅了多个队列时,您可以使用队列的队列优先级字段来确定跨队列的工作优先级。 与优先级较低的队列相比,优先级较高的队列中的工作会优先分配。 队列也可以被赋予相同的优先级。 在这种情况下:
- 如果它们具有默认的先进先出顺序,则首先分配所有这些队列中最早的项目。
- 如果队列具有自定义优先级规则,则队列将根据队列名称的字母顺序排序,以确定最高优先级的工作。
如果已根据现成的分配方法和自定义优先级规则配置队列,则首先确定现成分配方法的队列的优先级,然后根据自定义优先级规则确定队列的优先级。
例如,让我们看一下具有以下四个队列的设置,所有队列的组号都定义为 1:
- VIP 支持和高级支持:默认先进先出优先级
- 订单支持和发票查询:自定义优先级规则
对于订阅了所有四个队列的支持代表,他们会收到 VIP 支持和高级支持队列中最早的项目。 如果这两个队列没有符合代表的项,则接下来分配发票查询队列中的工作,然后分配订单支持队列中的工作。
备注
我们建议您为具有自定义优先级规则的队列分配不同的队列优先级。 即使队列具有相同的优先级规则集,它们也被视为不同的。
分配方法的类型
开箱即用的分配方法将在以下各节中进行说明。
最高容量
系统将工作项分配给具有最高可用容量的服务代表。 选定的代表具有在分类阶段确定的技能,以及与工作流中允许的状态之一匹配的状态。 如果具有相同容量的多个代表可用,则根据循环顺序分配工作项。
如果要使用基于技能的路由,可以使用“完全匹配”和“最接近匹配”选项。
如果您将工作流程中的默认技能匹配算法设置为完全匹配,则系统将使用完全技能匹配、允许的工作流程状态、产能要求筛选代表,并按可用产能对筛选出的代表进行排序。
如果将工作流中的默认技能匹配算法设置为最接近匹配,则系统将根据工作流程允许的状态和产能要求筛选代表。 然后,系统按最接近的匹配项和可用产能对筛选出的代表进行排序。 了解更多信息,请参阅最接近匹配。
如果您需要在代表之间公平分配工作,您应该考虑切换到轮循机制分配策略。
备注
当您修改评分模型时,具有该评分模型技能的正在进行的对话或打开的工作项将继续具有现有评分。 有时,这可能会导致没有符合分配条件的代表。
高级轮循机制
系统将工作项分配给与技能、状态和产能条件相匹配的代表。 初始顺序基于用户被添加到队列中的时间。 然后,根据分配更新顺序。 与在最高产能方法中分配工作项的方式类似,在循环机制分配中确定工作项的优先级,如统一传递如何确定工作项的优先级所述。
轮循分配的顺序是按队列维护的。 某些代表可以是多个队列的一部分。 因此,根据队列中代表的最后一个分配时间戳,可能会为代表分配连续或同时的但来自不同队列的工作项。 如果多个代表与工作项要求匹配,并且“顺序依据”中出现平局,例如,具有相同可用容量的多个匹配代表,则系统会根据上次分配的最早时间使用循环来解决分配。
例如,Lesa、Alicia 和 Alan 三位代表可以使用咖啡退款技能,一次最多可以处理三个聊天。 他们上一次的分配时间戳分别是上午 10:30、上午 10:35 和上午 10:37。 关于咖啡退款的工作项于上午 10:40 到达队列。 将顺序设置为“基于配置文件的可用容量”后,上午 10:40 的所有代表都具有相同的可用容量,即每个代表 2 个。 为打破代表之间的联系,系统会使用轮循机制。 因此,传入聊天将被分配给 Lesa,因为她的上次分配时间上午 10:30 是最早时间。 上午 10:45 以后,如果有另一个咖啡退款工作项目进入,系统会将其分配给 Alicia。 这还基于 Alicia 和 Alan 之间的轮循机制分配顺序,因为他们的可用产能是每人 2 个,而且 Alicia 比 Alan 上午 10:35 的分配时间要早。
最不活跃
系统将工作项分配给代表,该代表在语音队列中与所需技能、状态和产能匹配的所有代表中最空闲。
分配方法使用工作流中配置的“自上次为语音呼叫释放产能以来的时间”和阻止处于总结状态的产能设置来确定最空闲的代表并将下一个传入呼叫传递给他们。
例如,奥斯卡·沃德(Oscar Ward)和维多利亚·伯克(Victoria Burke)是两个具有相同技能的代表,他们在订单和退款语音队列中工作。 Oscar 在下午 1:00 在订单队列中接到一个来电。 Victoria 在下午 1:05 在退款队列中接到一个来电。 Oscar 的问题处理需要 15 分钟。 维多利亚在五分钟内解决了他们的客户问题。 下午 1:20 订单队列中进入另一个来电。
由于最不活跃的路由考虑了代表的空闲时间,并且 Victoria 的上一次容量释放早于 Oscar,因此将新呼叫分配给 Victoria。
路由到最不活跃的代表分配策略有助于在代表之间平衡分配工作项,并提高代表效率和客户满意度。
您还可以构建自定义报告来跟踪代表的“上次产能释放时间”,并了解代表之间的工作分配。
重要提示
最不活跃分配方法仅对语音渠道可用,是创建语音队列时的默认选择。
此功能用于帮助客户服务经理或主管提高其团队的绩效并提高客户满意度。 此功能不适用于(也不应该用于)作出会影响员工或员工团体的雇佣的决定,包括薪酬、奖励、资历或其他权利。 客户对使用 Dynamics 365、此功能以及任何关联的功能或服务时遵守所有适用法律全权负责,包括与访问员工个人的分析信息以及监视、记录和存储与最终用户的通信相关的法律。 另外还包括充分通知最终用户他们与代表之间的通信可能会根据适用法律的规定受到监视、记录或存储,并在对最终用户使用此功能前获取他们的同意。 另外还建议客户建立机制来通知代表他们与最终用户之间的通信可能会受到监视、记录或存储。
您还可以创建自定义分配方法来满足您的业务需要。
新建
系统允许您创建和使用自己的规则集和规则,以配置用于选择需要将工作项传递到的队列的优先级、严重性和产能。 您可以创建以下规则集:
- 优先级规则集:您可以定义代表可以承担更多工作时向其分配工作项的顺序。
- 分配规则集:表示一组用于选择代表和使用排序选项对匹配的代表进行排序的条件。
重要提示
- 您必须在自定义分配方法中配置状态、产能和技能匹配规则,因为在自定义分配方法中不会使用为工作流定义的默认设置。
- 开箱即用的分配策略不考虑代表工作时间。 您必须在规则定义中使用“is_working”运算符来编写自定义分配方法。
分配周期
分配周期是根据分配规则对工作项、工作项的选择以及将它们分配给最适合的代表的优先级排序。 统一传递可优化组织中多个队列的分配周期,以获得最佳性能。
分配周期从以下其中一个触发器开始:
- 队列中的新工作项到达。
- 对代表状态进行更改。
- 对代表容量的更新:如果在运行时更新了容量,则容量更改会触发分配。 如果手动更新容量,则更改不会触发分配。
- 向队列中添加代表。
- 工作项的记录类型每五分钟定期触发一次。
优先级规则集如何工作
优先级规则集是优先级规则的已排序列表。 每个优先级规则代表队列中的一个优先级桶。 在优先级规则中,您可以指定一组条件和排序属性。 在评估过程中,优先级规则将按照它们列出的顺序运行。 对于第一个优先级规则,队列中与其条件匹配的工作项将被放入同一个优先级桶。 在优先级桶中,将按照优先级规则中指定的顺序对项目进行进一步排序。 第二个规则将在队列中的其余项目上运行,来识别下一个优先级桶,并按排序依据属性对桶进行排序,直到所有规则全部完成评估。
每个队列只能创建一个优先级规则集。
例如,考虑如以下屏幕截图中所示的具有四个规则的优先级规则集。
在任何分配周期中,都会运行此优先级划分规则集,规则集中的规则将按它们列出的顺序运行。
第一个规则“高优先级和优先”将查找队列中关联案例优先级为“高”且案例类别为“优先”的所有工作项。 系统将创建包含这些工作项的最高优先级桶,并按照排序依据属性中指定的“先进先出”方式对它们进行排序。 要分配的队列中的第一个工作项将是此桶中最早的项。
下一个优先级桶将是案例类别为“优先”的工作项。 具有“优先”案例类别和“高”优先级的工作项已经按照前面的规则放在了最高优先级桶中,因此此规则将只考虑具有“优先”案例优先级的其他工作项。 在这种情况下,排序依据属性也是“先进先出”。
下一个优先级桶由案例优先级为高且尚未被分配桶的工作项组成。 在这里,工作项按其“第一个响应者”字段的升序排序—即需要最早进行第一响应的工作项将被优先考虑。
关于优先级划分规则的一些要点如下:
- 每个队列只能创建一个优先级规则集。
- 优先级划分规则在每个分配周期运行。 如果您更改了工作项的任何属性,如案例的优先级,将在下一个分配周期考虑该更改。
- 默认情况下,队列按“先进先出”方式排序。 如果您未创建优先级划分规则,将首先分配最早的工作项。
- 在正常情况下,当有足够数量的代表可以处理工作项时,处理时间仅为几秒钟。 按优先级顺序为代表分配工作项。 但是,如果由于符合条件的代表较少而导致工作项堆积,然后在处理期间有代表可用,将根据优先级顺序为代表提供下一个工作项。 此策略可能会造成最高优先级项目未被分配的感觉;尤其是在尝试分配一些最高优先级项目后,他们仍在队列中的情况。
- 不符合任何优先级划分规则集条件的工作项将留在最后一个优先级桶中,按“先进先出”排序。
- 针对相关性工作项跳过优先级规则,此类工作项将优先于队列中的其他工作项进行分配。 在代理相似性中了解有关相似性的更多信息。
分配规则集如何工作
分配规则集是分配规则的已排序列表。 每个分配规则代表一组条件,用于确定要选择的代表,以及用于对匹配的代表进行排序的排序字段。 在运行时,将首先评估顺序在最上面的分配规则。 代表根据规则中指定的条件进行匹配。 如果存在多个匹配代表,将按字段排序,并为最上面的代表分配工作。 如果没有匹配的代表,则将评估规则集中的下一个分配规则集。 此方法可以被视为分配中约束的逐渐放宽,以便首先应用最严格的条件,然后减少条件,以便找到最佳代表。 如果没有找到匹配代表,工作项将保留在队列中。
在分配规则中,系统用户属性与工作项的要求匹配。 选择静态匹配时,条件将基于系统用户实体属性和静态值形成。 选择动态匹配时,左侧的条件基于系统用户根实体,右侧的条件基于对话根实体。 您可以在对话根实体上向下钻取到两个级别以形成规则条件。 具有动态匹配和静态匹配的分配规则如下所示。
分配规则的组成部分
分配规则由以下各项组成:
顺序:指定评估规则集中分配规则的顺序。 顺序排序较小的规则首先运行。 如果任何规则有匹配的用户,将不评估下一组规则。
名称:唯一的规则名称。
条件:进行计算,将用户与传入工作的属性相匹配的表达式。 条件包括三个部分:
用户属性:可用于将用户与传入工作进行比较的用户属性。 用户属性可以是以下其中一项:
- 在系统用户表上选择属性。
- 状态:由统一路由服务根据用户工作负荷和人工选择进行维护。
- 产能:由统一路由服务根据用户工作负荷和人工选择进行维护。
- 用户技能:表示与用户关联的可用于执行基于技能的分配的技能。
- 日历计划:用户服务计划日历中表示的用户的计划。
- 机器人属性:只能在您将机器人配置为用户并希望对其进行一些比较时使用。
运算符:定义用户属性和传入工作项属性之间的比较关系。
统一传递将筛选属性特定的运算符供您选择。 可用于属性类型的一些特殊运算符如下。
属性类型 操作员 定义 状态 等于、不等于、包含数据、不包含数据 使用运算符以查找与在工作项中指定的当前状态相匹配的代表。 容量 等于、不等于、包含数据、不包含数据 使用运算符以比较代表是否有足够的产能来处理指定项。 用户技能 完全匹配 使用运算符以查找具有传入工作项需要的所有技能的代表。 用户技能 自定义匹配 使用运算符以基于工作项上的所选查找属性查找其技能将在运行时匹配的代表。 日历日程安排 正在工作 使用此运算符以查找正在按照其服务计划日历工作的代表。 值:将用户属性与此值进行比较来查找合适的代表。 此值可以是静态的,如“Address 1: County equals "USA"”。 此值也可以是动态的,您可以动态地将用户属性与工作项上的值进行比较。 在动态值中,您可以选择工作项或相关记录上的任何属性。 例如,以下条件查找与案例关联的客户所在国家/地区相同的用户。
对于一些运算符,值不是必需的。 它们可以是条件,例如“包含数据”、“不包含数据”和“日历日程安排:正在工作”。
对于用户技能,为运算符预定义值。 详细信息请参阅设置基于技能的传递。
排序依据:如果多个代表符合某个规则中的条件,您可以使用“排序依据”子句查找最适合的代表。 您可以指定以下排序依据子句:
排序属性:
- 最不活跃:仅可用于语音队列。 工作项将路由到与技能、状态和能力匹配的所有代表中最不活跃的代表。 有关详细信息,请参阅分配方法的类型部分。
- 轮循机制
- 基于单位的可用容量
- 基于配置文件的可用容量
- 精通度
- 技能计数
用户属性:这些属性在系统用户实体上定义。
屏幕截图中的以下场景说明了分配规则的一个示例。
第一个条件指定运算符是完全匹配项的“user skills”。 然后对用户属性进行评估。 不同的用户属性使用每个属性的运算符和值指定,如状态属性应等于“Available”或“Busy”。 在运算符的右侧,您可以指定要与属性匹配的值。 这些值可以是“静态”的,如“presence status equals Available or Busy”。 如果指定为“动态”,条件将在运行时根据您指定的表达式进行匹配。 例如,如果您指定“Preferred Customer Type Equals Conversation.Contact.Membership Level”,每个代表的“preferred customer type”将与与聊天关联的客户的动态计算的成员身份级别进行匹配。
动态匹配可以减少必须为可能值的每个排列和组合编写和维护多个静态规则的工作量。
向代表重复提供工作项的限制
代表可以接受或拒绝通过自动分配获得的工作项。 拒绝和允许通知超时都视为拒绝工作项。 如果代表通过任一方法拒绝工作项,则在下次尝试分配时,他们对该对话的优先级会降低。 在以下情况下,对于同一工作项,最多可以重新考虑代表三次或指定的限制:
- 如果代表是唯一符合被拒绝对话的条件,并且满足容量和状态要求。
- 如果所有其他符合条件的代表也拒绝。
如果代表三次拒绝同一工作项或达到配置的限制,则不再考虑将代表用于该特定工作项的自动分配。 然后,系统会尝试将被拒绝的工作项分配给队列中的其他符合条件的代表。 代表仍然可以手动选取工作项。
例如,代表 Serena Davis 两次拒绝客户 Ana Bowman 的聊天,并且分配通知在第三次尝试中超时。 系统会将此视为三次拒绝,自动分配不会再次向 Serena Davis 提供相同的聊天。 但系统将 Ana Bowman 的聊天提供给其他符合条件的代表。 此外,除了 Ana Bowman 拒绝的聊天外,还会考虑向 Serena Davis 分配其他传入对话。
备注
如果所有匹配的代表都因为代表可用性低或工作需要非常特定的技能和熟练程度而拒绝工作项,则工作将保留在队列中。 同样,如果 100 个代表拒绝某个特定工作项,则自动分配不会在以后的分配周期中考虑该工作项。 它可以由主管手动分配,也可以由其他代表(包括拒绝它的代表)接手。
您可以根据组织要求将默认的三次拒绝限制更新为一到五次。 此限制适用于组织内的所有渠道。
您可以按如下方式进行 OData 调用,来检查您的组织的限制。
<org-url>/api/data/v9.0/msdyn_omnichannelconfigurations?$select=msdyn_number_of_declines_allowed
如果此 OData 调用返回 null 值,表示拒绝限制设置为默认值 3。
您可以按如下方式更新 OData 调用来修改限制。
var data = { "msdyn_number_of_declines_allowed": 3 } // update the record Xrm.WebApi.updateRecord("msdyn_omnichannelconfiguration", "d4d91600-6f21-467b-81fe-6757a2791fa1", data).then( function success(result) { console.log("Omnichannel Configuration updated"); // perform operations on record update }, function (error) { console.log(error.message); // handle error conditions } );
相关信息
配置分配方法和规则
有关 Customer Service、Customer Service 全渠道中的统一路由的常见问题
统一传递诊断
创建工作流
创建队列
为记录设置统一传递
为统一传递设置基于技能的传递