通过NetSuite REST API获取客户运营联系人的正确方法
NetSuite SuiteTalk REST API获取客户联系人角色问题
问题描述
- 基于SuiteTalk REST API搭建NetSuite集成时,需要获取客户下所有关联联系人的角色,筛选出客户的Primary Contact(首要联系人)和Operational contact(运营联系人)。
- 最初调用接口端点
record/v1/customer/{customerId}/contact/{contactId}/contactrole时,所有客户联系人记录均返回角色ID 14(对应Customer Center),和NetSuite UI界面中各联系人实际标注的角色完全不符,结果存在错误。后续尝试通过query端点使用SuiteQL查询,也得到了类似的错误结果,无法确认是查询写法问题还是需要调用其他接口。
可行解决方案
通过关联客户-联系人关系中间表的SuiteQL查询,可以成功获取准确的客户联系人角色信息,查询示例如下:
{ "q" : "SELECT Contact.email, Contact.entityid, ContactRole.name as role FROM Customer LEFT JOIN CustomerCompanyContact ON ( CustomerCompanyContact.ContactsCompany = Customer.ID ) LEFT JOIN Contact ON ( CustomerCompanyContact.contact = Contact.ID ) LEFT JOIN ContactRole ON ( Contact.ContactRole = ContactRole.id ) WHERE ContactRole.name IN ('Primary Contact','Operational contact') AND Customer.entityid IN ('exampleCompanyId') ORDER BY Contact.datecreated DESC" }
原接口返回错误角色的核心原因:原接口路径返回的
contactrole是联系人实体的系统访问角色,并非客户关联关系上配置的业务联系人角色,未关联CustomerCompanyContact客户联系人关系中间表时,取到的是联系人自带的默认访问角色字段,和UI上展示的业务角色不是同一字段。
内容的提问来源于stack exchange,提问作者Mintelek
相关产品推荐
相关产品推荐

