framely / community

MIT License
0 stars 2 forks source link

[Feature Request] [chatwoot]: How do we know customers? #259

Open Zeng666666 opened 2 years ago

Zeng666666 commented 2 years ago

Is there an existing issue for this?

Summary

在 chatwoot 中,客服怎么知道 end-user 是谁,以及 omnichannel 下,end-user 是同一个人?

image

这部分内容是客服可以维护的( https://www.chatwoot.com/docs/user-guide/contacts ) 但,意义是 conversation 中的 end-user 可以通过 Email 或 phone number 匹配得上:

image

Motivation

/

Describe alternatives you've considered

/

Additional context

No response

hisunnymay commented 2 years ago

关于Contact

  1. Contact的email是不能重复的,如果添加的contact的email和已有的contact的email重复,会无法添加该contact,并提示:Email has already been taken

esk1rRGTZM

  1. Contact的phone number也是不能重复的,如果添加的contact的phone number和已有的l重复,会无法添加该contact,并提示:Phone number has already been taken

C3sk1s4Ij2

目前

客服只能通过查看end-user的“邮箱”来知道end-user是谁。

比如“邮箱”:c|wechatpa|test|o_nii5tz8stmpdr9zwjbhtrxti3a,说明end-user是来自wechat public account channel,对应的chatbot是:test,他的channel dependent user id为:o_nii5tz8stmpdr9zwjbhtrxti3a

image

可供选择的优化方法

客服可以通过查看end-user的“name”来知道end-user是谁。

  1. 对于Multichannel (如果允许Multichannel开启support的话)
    1. 按照一定的格式为contact添加name,比如:Wechat | o_nii5tz8stmpdr9zwjbhtrxti3a
    2. 按照一定的格式为contact添加“邮箱” (如果有别的方法可以保证contact唯一的话,或许也不用添加“邮箱”。但用邮箱来确保contact唯一的缺点在于:如果agent修改了该“邮箱”,那么该end-user开启下一次session时,会为end-user创建新的contact)

image

  1. 对于Omnichannel
    1. 同1.i
    2. 用end-user绑定的手机号添加contact的phone number

注:基于目前omnichannel的绑定方式是发送短信验证码,通过这种方式添加contact可以保证绑定同一个phone number的end-user是同一个人

image

Zeng666666 commented 2 years ago

我的理解大概是这样: 对于 support,我们希望给 builder 或 customer service team 的体验是相对恰当的;即该显示的内容应当显示到恰当的区域内。

End-user 是从 channel 来,经过 platform 定义的交互,最终来到 support 端;且 platform 无论是 multi-channel 还是 omni-channel,end-user 都是唯一确定的,对于 end-user,platform 已知以下“部分”或“全部”内容:

  1. channelType
  2. userId
  3. channelLabel
  4. phoneNumber
  5. name
  6. email

因此,对于 support 只需要将已知内容展示在恰当的地方即可。

我目前不太确定的地方有:

  1. 下图中红框中的是 userId 吗?如果是的话,userId 是唯一相对于一个 channel 中的真实用户吗?比如我的微信永远对应于“oo4sfxge-wdchjwvpc06ghgyzjyo”

    image
  2. 在 chatwoot,我们把哪个或哪些字段作为 customer_identifier 呢?是“channelType + channelLabel + userId”吗?应该不是单纯的 phonenumber 或 email 把?

  3. 如果是 omni-channel,是多组“channelType + channelLabel + userId”对应一个 customer_identifier 吗?(类似的体验,在 chatwoot 有一个 merge contact 得行为,即客服可以手动把来自不同 channel 的 end-user 合并为同一个用户)

hisunnymay commented 2 years ago

我们调用的创建Contact的API是:Create Contact,所以我理解你这里的提到的 customer_identifier 对应的是API中的 identifier 字段

  1. 是userId,这里的userId对应的是Wechat中的openId,是唯一相对于一个 channel 中的真实用户
  2. 目前 identifier 字段是为null的,如果要使用该字段的话,感觉应该是用是“channelType + channelLabel + userId”

image

  1. 如果是 omni-channel,或许可以用 channel independent user id 作为 identifier
xiaoyunwu commented 2 years ago

channel independent user id is a good idea.

On Mon, Apr 18, 2022 at 5:01 AM ChangMei @.***> wrote:

我们调用的创建Contact的API是:Create Contact https://www.chatwoot.com/developers/api/#operation/contactCreate,所以我理解你这里的提到的 customer_identifier 对应的是API中的 identifier 字段

  1. 是userId,这里的userId对应的是Wechat中的openId,是唯一相对于一个 channel 中的真实用户
  2. 目前 identifier 字段是为null的,如果要使用该字段的话,感觉应该是用是“channelType + channelLabel + userId”

[image: image] https://user-images.githubusercontent.com/95261974/163803330-7a260a21-bb8d-4223-b3d1-c2f27548dfa6.png

  1. 如果是 omni-channel,或许可以用 channel independent user id 作为 identifier ?

— Reply to this email directly, view it on GitHub https://github.com/framely/community/issues/259#issuecomment-1101345274, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABJYKUJU232GJA24VTNFJ7DVFVFI3ANCNFSM5TKAPNRQ . You are receiving this because you are subscribed to this thread.Message ID: @.***>