影刀RPA 智能客服辅助:工单分类与自动回复
作者:林焱
一、什么情况用影刀辅助客服
客服工作中有大量重复性高、判断简单的环节——查订单状态、回复同一类问题、把工单分配给对应部门。客服在这些事情上花的时间,完全可以让RPA接管,让人专注于真正需要处理的复杂问题。
适合RPA做的客服工作:
- 自动回复常见问题(物流查询、退款流程咨询)
- 工单自动分类并路由到对应团队
- 查询系统数据后生成回复草稿,供客服确认发送
二、实战一:工单自动分类
拼多多店群自动化上架方案
场景
每天收到几百条客服工单,大部分是10类常见问题,需要人工判断后分配给对应团队。
Step 1:读取新工单
【打开网页】URL:https://crm.company.com/tickets/unprocessed 【等待元素出现】选择器:.ticket-listtickets=[]items=yingdao.find_elements('.ticket-item')foriteminitems:ticket_id=item.find_element('.ticket-id').text content=item.find_element('.ticket-content').text user=item.find_element('.ticket-user').text tickets.append({'id':ticket_id,'content':content,'user':user})Step 2:基于关键词分类
# 分类规则配置(可外置到Excel,由运营维护)classify_rules={'物流查询':['快递','物流','发货','包裹','签收','运单'],'退款申请':['退款','退货','退钱','申请退'],'产品问题':['质量','坏了','损坏','瑕疵','不好用','失效'],'账号问题':['登录','密码','账号','注册','找回'],'发票请求':['发票','增值税','税务','开票'],'其他咨询':[]# 默认分类}defclassify_ticket(content):content_lower=content.lower()forcategory,keywordsinclassify_rules.items():ifcategory=='其他咨询':continueifany(kwincontent_lowerforkwinkeywords):returncategoryreturn'其他咨询'forticketintickets:ticket['分类']=classify_ticket(ticket['content'])可选:调用大模型提升分类准确率
importrequestsdefai_classify(content):resp=requests.post('https://api.openai.com/v1/chat/completions',headers={'Authorization':f'Bearer{API_KEY}'},json={'model':'gpt-3.5-turbo','messages':[{'role':'system','content':'你是一个客服工单分类专家,请将工单分为:物流查询/退款申请/产品问题/账号问题/发票请求/其他咨询,只输出分类名称'},{'role':'user','content':content}]}).json()returnresp['choices'][0]['message']['content'].strip()Step 3:自动分配工单
team_routing={'物流查询':'物流客服组','退款申请':'售后客服组','产品问题':'售后客服组','账号问题':'技术支持组','发票请求':'财务组','其他咨询':'通用客服组'}forticketintickets:team=team_routing[ticket['分类']]# 在CRM中分配yingdao.open_url(f'https://crm.company.com/tickets/{ticket["id"]}/assign')yingdao.find_element('#team-select').select_by_text(team)yingdao.find_element('#assign-btn').click()yingdao.wait(0.5)三、实战二:自动查单后生成回复草稿
当工单是物流查询时,RPA自动查完物流状态,生成回复草稿,客服只需确认发送。
defgenerate_logistics_reply(order_no,customer_name):# 查询物流状态yingdao.open_url(f'https://express.company.com/track?no={order_no}')yingdao.wait_for_element('.tracking-list')latest_status=yingdao.find_element('.tracking-latest').text carrier=yingdao.find_element('.carrier-name').text estimate_date=yingdao.find_element('.estimate-date').textifyingdao.element_exists('.estimate-date')else'暂无'# 生成标准化回复reply=f"""您好{customer_name},感谢您联系我们! 您的订单({order_no})物流信息如下: - 承运商:{carrier}- 最新状态:{latest_status}- 预计到达:{estimate_date}如有疑问,请随时联系我们。祝您购物愉快!"""returnreply# 对物流查询工单生成草稿logistics_tickets=[tfortinticketsift['分类']=='物流查询']forticketinlogistics_tickets:order_no=extract_order_no(ticket['content'])# 用正则提取订单号iforder_no:draft=generate_logistics_reply(order_no,ticket['user'])# 将草稿填入CRM回复框yingdao.find_element('#reply-draft').send_keys(draft)# 注意:不自动发送,等客服确认四、实战三:客服绩效数据自动汇总
TEMU店群如何管理运营?
每日下班前汇总当天各客服的工单处理量、平均响应时间、满意度评分。
yingdao.open_url('https://crm.company.com/reports/daily')yingdao.wait_for_element('.agent-stats-table')stats=[]rows=yingdao.find_elements('.agent-stats-row')forrowinrows:stats.append({'客服姓名':row.find_element('.agent-name').text,'处理工单数':row.find_element('.ticket-count').text,'平均响应时长(分钟)':row.find_element('.avg-response').text,'满意度评分':row.find_element('.satisfaction').text,'未解决工单':row.find_element('.pending-count').text,})df=pd.DataFrame(stats)df.to_excel(f'C:\\客服\\绩效日报_{today}.xlsx',index=False)# 发送到客服主管yingdao.send_email(to='cs_manager@company.com',subject=f'客服日报{today}',body='今日客服绩效数据请查收。',attachments=[f'C:\\客服\\绩效日报_{today}.xlsx'])五、踩坑记录
坑1:工单内容乱码
用户有时用繁体字或特殊符号,读取时要统一编码处理:
content=content.encode('utf-8',errors='ignore').decode('utf-8')坑2:关键词分类会误判
“我退出账号了,什么时候发货?“同时含"退"和"发货”,可能被错分。解决方案:规则匹配时按优先级排序,或者先匹配"退款申请”,命中则不再匹配其他。
坑3:CRM系统分配弹窗有延迟
分配工单点击确认后,系统需要1-2秒刷新状态,紧接着跳下一条可能出现界面渲染不完整。加入等待状态确认:
yingdao.wait_for_element('.assignment-success-badge',timeout=5)坑4:不要让RPA直接发送客服回复
草稿生成是安全的,但自动发送有风险——万一信息查错,发出去的回复造成客户误解更难处理。始终让客服人员确认后再发送。
适用人群:电商客服、客服主管、CRM运营
难度:⭐⭐(规则分类简单,AI分类稍复杂)