跳转至

iOS

客服业务

IMLib 中客服功能集成使用说明:

  • 在进入到客服聊天界面时,调用 startCustomService:onSuccess:onError:onModeType:onQuit 来启动客服服务。
  • 根据 onModeType 的回调来处理不同的键盘输入。在机器人优先模式下,需要在界面上加上转人工的按钮。
  • onQuit 时,离开客服会话或者提示客服服务已经结束。
  • 当用户按下转人工服务时,调用 switchToHumanMode 来切换到人工服务。如果调用成功,onModeType 回调返回服务类型。
  • 当离开界面时,调用 stopCustomeService 来结束客服。
  • 在适当的时机对客服进行评价。
  • onSelectGroup 时,App 需要弹出技能组选择界面供用户选择
  • 当用户选择技能组后,调用 selectCustomerServiceGroup:withGroupId 来启动对应技能组客服,如果用户没有选择,也必须调用 selectCustomerServiceGroup:withGroupId 来启动默认客服,groupId 此时为 nil

注意

如果你使用 IMKit,请不要使用下面接口方法,RCConversationViewController 默认已经做了处理。

RongIMClient 类文件中的客服相关接口:

启动客服服务

提示

有些客服提供商可能会主动邀请评价,有些不会,所以用 lib 开发客服需要注意对 pullEvaluationBlock 的处理。在 pullEvaluationBlock 里应该弹出评价。如果 pullEvaluationBlock 没有被调用到,需要在结束客服时(之前之后都可以)弹出评价框并评价。如果客服有分组,selectGroupBlock 会被回调,此时必须让用户选择分组然后调用 selectCustomerServiceGroup:withGroupId:

参数 说明
kefuId 客服 Id
csInfo 客服信息
successBlock 发起客服会话成功的回调
errorBlock 发起客服会话失败的回调 [errorCode:失败的错误码 errMsg:错误信息]
modeTypeBlock 客服模式变化
pullEvaluationBlock 客服请求评价
selectGroupBlock 客服分组选择
quitBlock 客服被动结束。如果主动调用 stopCustomerService,则不会调用到该 block

- (void)
startCustomerService:(NSString *)kefuId
                info:(RCCustomerServiceInfo *)csInfo
           onSuccess:(void (^)(RCCustomerServiceConfig *config))successBlock
             onError:(void (^)(int errorCode, NSString *errMsg))errorBlock
          onModeType:(void (^)(RCCSModeType mode))modeTypeBlock
    onPullEvaluation:(void (^)(NSString *dialogId))pullEvaluationBlock
       onSelectGroup:(void (^)(NSArray <RCCustomerServiceGroupItem*> *groupList))selectGroupBlock
              onQuit:(void (^)(NSString *quitMsg))quitBlock;

切换人工客服服务

参数 说明
kefuId 客服 Id

- (void)switchToHumanMode:(NSString *)kefuId;
 

选择客服分组模式

参数 说明
kefuId 客服 Id
groupId 分组 Id

- (void)selectCustomerServiceGroup:(NSString *)kefuId withGroupId:(NSString *)groupId;

评价机器人客服,用于对单条机器人应答的评价。

提示

有些客服服务商需要对机器人回答的词条进行评价,机器人回答的文本消息的 extra 带有 {“robotEva”:”1”, “sid”:”xxx”} 字段,当用户对这一条消息评价后调用本函数同步到服务器,knownledgedIDextra 中的 sid。若是离开会话触发的评价或者在加号扩展中主动触发的评价,knownledgedIDnil

参数 说明
kefuId 客服 Id
knownledgeId 知识点 Id
isRobotResolved 是否解决问题
suggest 客户建议

- (void)evaluateCustomerService:(NSString *)kefuId
                   knownledgeId:(NSString *)knownledgeId
                     robotValue:(BOOL)isRobotResolved
                        suggest:(NSString *)suggest;

对人工客服评价

提示

有些客服服务商会主动邀请评价,pullEvaluationBlock 会被调用到,当评价完成后调用本函数同步到服务器,dialogIdpullEvaluationBlock 返回的 dialogId。若是离开会话触发的评价或者在加号扩展中主动触发的评价,dialogIDnil

参数 说明
kefuId 客服 Id
dialogId 对话 Id,客服请求评价的对话 Id
value 分数,取值范围 1-5
suggest 客户建议
resolveStatus 解决状态,如果没有解决状态,这里可以随意赋值,SDK 不会处理
tagText 客户评价的标签
extra 扩展内容

- (void)evaluateCustomerService:(NSString *)kefuId
                       dialogId:(NSString *)dialogId
                      starValue:(int)value
                        suggest:(NSString *)suggest
                  resolveStatus:(RCCSResolveStatus)resolveStatus
                        tagText:(NSString *)tagText
                          extra:(NSDictionary *)extra;

通用客服评价,不区分机器人人工

提示

有些客服服务商会主动邀请评价,pullEvaluationBlock 会被调用到,当评价完成后调用本函数同步到服务器,dialogIdpullEvaluationBlock 返回的 dialogId。若是离开会话触发的评价或者在加号扩展中主动触发的评价,dialogIDnil

参数 说明
kefuId 客服 Id
dialogId 对话 Id,客服请求评价的对话 Id
value 分数,取值范围 1-5
suggest 客户建议
resolveStatus 解决状态,如果没有解决状态,这里可以随意赋值,SDK 不会处理`

- (void)evaluateCustomerService:(NSString *)kefuId
                       dialogId:(NSString *)dialogId
                      starValue:(int)value
                        suggest:(NSString *)suggest
                  resolveStatus:(RCCSResolveStatus)resolveStatus;

结束客服

参数 说明
kefuId 客服 Id

- (void)stopCustomerService:(NSString *)kefuId;