Skip to main content
Hậu Ngô
Minh Nông
Huỳnh Minh
💬
0 discussions

Hướng dẫn tích hợp ZOHO CRM

1. Thao tác trên Zoho

  • Tiếp tục nhập các thông tin sau tại GENERATE CODE

SCOPE: dán đoạn sau vào, lưu ý dán đầy đủ, không thiếu, không dư

ZohoCRM.modules.leads.READ,ZohoCRM.modules.leads.CREATE,ZohoCRM.modules.contacts.READ,ZohoCRM.modules.contacts.CREATE,ZohoCRM.modules.accounts.READ,ZohoCRM.modules.calls.CREATE,ZohoCRM.modules.notes.CREATE,ZohoCRM.users.READ

TIME DURATION: Tuỳ ý, nên chọn là 10

SCOPE DESCRIPTION: Không được để trống nhưng có thể điền tuỳ ý

Sau đó bấm CREATE

- Tiếp tục thao tác như sau

- Sau đó copy CODE hiện lên như hình và tiến hành gọi API để để lấy refresh token

Method gọi API: POST

URL:

https://accounts.zoho.com/oauth/v2/token?grant_type=authorization_code&client_id=<client_id>&client_secret=<client_secret>&code=<:Code>

Trong đó:

client_idclient_secret lấy ở tab CLIENT SECRET kế bên tab GENERATE CODE

Ví dụ, dùng Postman gọi API để lấy refresh token

*Về cách sử dụng POSTMAN để gọi API, có thể tham khảo tại đây *

2. Thao tác trên Portal

Sau khi có được thông tin Client ID, Client SecretRefresh Token, tiến hành truy cập portal để tích hợp

  • Bấm vào Add Integrator và nhập các thông tin vào các trường ở popup lên như sau

    • ID Call Center: nhập ID của tổng đài đang tích hợp
    • Host: nhập tên miền của zoho đang tích hợp
    • Description: nhập tên tổng đài đang tích hợp
    • Info: copy chính xác đoạn script sau dán vào

    {"renderTooltip":[{"path":"/tab/Contacts/","element":"#subvalue_PHONE;#headertextarea_PHONE > input;#subvalue_MOBILE;#headertextarea_MOBILE > input;.phoneRtl"},{"path":"/tab/Leads/","element":"#subvalue_PHONE;#headertextarea_PHONE > input;#subvalue_MOBILE;#headertextarea_MOBILE > input;.phoneRtl"},{"path":"/tab/Accounts/","element":"#subvalue_PHONE;#headertextarea_PHONE > input;#subvalue_MOBILE;#headertextarea_MOBILE > input;.phoneRtl"},{"path":"/tab/Calls/","element":"lyte-tr>lyte-td>span;.feedsInfoInnerEle tr>td>div"}],"dataFunction":[{"objectName":"Contacts","templateName":"zoho","endpointName":"search_contact_zoho","arrayResponse":"","responseData":[{"id":"data?.at(-1)?.id"},{"Full_Name":"data?.at(-1)?.Full_Name"},{"Owner":"data?.at(-1)?.Owner?.name"},{"Title":"data?.at(-1)?.Title"},{"Department":"data?.at(-1)?.Department"},{"Email":"data?.at(-1)?.Email"},{"Designation":"data?.at(-1)?.Designation"},{"Company":"data?.at(-1)?.Company"}],"data":{"objectName":"Contacts","criteria":"((Phone:equals:{phone})or(Mobile:equals:{phone}))"},"replaceData":[{"{phone}":"iframeDatas?.phone"}]},{"objectName":"Leads","templateName":"zoho","endpointName":"search_contact_zoho","arrayResponse":"","responseData":[{"id":"data?.at(-1)?.id"},{"Full_Name":"data?.at(-1)?.Full_Name"},{"Owner":"data?.at(-1)?.Owner?.name"},{"Lead_Status":"data?.at(-1)?.Lead_Status"},{"Email":"data?.at(-1)?.Email"},{"Designation":"data?.at(-1)?.Designation"},{"Lead_Source":"data?.at(-1)?.Lead_Source"}],"data":{"objectName":"Leads","criteria":"((Phone:equals:{phone})or(Mobile:equals:{phone}))"},"replaceData":[{"{phone}":"iframeDatas?.phone"}]},{"objectName":"Accounts","templateName":"zoho","endpointName":"search_contact_zoho","arrayResponse":"","responseData":[{"id":"data?.at(-1)?.id"},{"Account_Name":"data?.at(-1)?.Account_Name"},{"Account_Type":"data?.at(-1)?.Account_Type"},{"Annual_Revenue":"data?.at(-1)?.Annual_Revenue"},{"Owner":"data?.at(-1)?.Owner?.name"}],"data":{"objectName":"Accounts","criteria":"(Phone:equals:{phone})"},"replaceData":[{"{phone}":"iframeDatas?.phone"}]}],"logFunction":[{"templateName":"zoho","endpointName":"create_object_zoho","data":{"object":"Calls","data":[{"Subject":":subjectData","Call_Type":":directionCustom","Call_Start_Time":":startTime","Call_Duration":":duration","Who_Id":":Who_Id","Description":":contentData","What_Id":":What_Id",":se_module":":se_id","Owner":":ownerid"}]},"replaceData":[{":subjectData":"subjectTitle2"},{":directionCustom":"directionCustom"},{":startTime":"startTimeZoho"},{":duration":"callDuration"},{":Who_Id":"iframeData?.Contacts[0][0]?.id"},{":contentData":"TextContent"},{":What_Id":"checkValue('eval','ie','!!iframeData?.Accounts[0][0]?.id','iframeData?.Accounts[0][0]?.id','iframeData?.Leads[0][0]?.id')"},{":se_module":"se_module"},{":se_id":"checkValue('','ie','!!iframeData?.Accounts[0][0]?.id','Accounts','Leads')"},{":ownerid":"checkValue('eval','ie','!!iframeData?.currentCrmUser','iframeData?.currentCrmUser?.zohoUserId[0].split(`:`)[1].trim()','')"}]}],"userInfo":[{"field":"zohoEmail","path":"/","element":".zcrmp-ProfEmail>:nth-child(2)"},{"field":"zohoUserId","path":"/","element":".zcrmp-ProfEmail>:nth-child(3)"}],"logSystemSchedule":{"endpoints":{"getId":[{"objectName":"ContactZoho","templateName":"zoho","endpointName":"search_contact_zoho","arrayResponse":"","responseData":[{"id":"data[0].id"}],"data":{"objectName":"Contacts","criteria":"((Phone:equals:{phone})or(Mobile:equals:{phone}))"},"replaceData":[{"{phone}":"calllog.body.phone"}]},{"objectName":"LeadZoho","templateName":"zoho","endpointName":"search_contact_zoho","arrayResponse":"","responseData":[{"id":"data[0].id"}],"data":{"objectName":"Leads","criteria":"((Phone:equals:{phone})or(Mobile:equals:{phone}))"},"replaceData":[{"{phone}":"calllog.body.phone"}]},{"objectName":"AccountZoho","templateName":"zoho","endpointName":"search_contact_zoho","arrayResponse":"","responseData":[{"id":"data[0].id"}],"data":{"objectName":"Accounts","criteria":"(Phone:equals:{phone})"},"replaceData":[{"{phone}":"calllog.body.phone"}]}],"saveLog":[{"templateName":"zoho","endpointName":"create_object_zoho","data":{"object":"Calls","data":[{"Subject":":subjectData","Call_Type":":directionCustom","Call_Start_Time":":startTime","Call_Duration":":duration","Who_Id":":Who_Id","Description":":contentData","What_Id":":What_Id",":se_module":":se_id"}]},"replaceData":[{":subjectData":"subjectTitle2"},{":directionCustom":"directionCustom"},{":startTime":"startTimeZoho"},{":duration":"handleDuration2(calllog_info.body.duration)"},{":Who_Id":"getIdData.ContactZoho[0].id"},{":contentData":"TextContent"},{":What_Id":"checkValue('eval','ie','!!getIdData.ContactZoho[0]','getIdData.AccountZoho[0].id','getIdData.LeadZoho[0].id')"},{":se_module":"se_module"},{":se_id":"checkValue('','ie','!!getIdData?.AccountZoho[0]','Accounts','Leads')"}]}]}}}

  • Iframe: copy chính xác đoạn script sau dán vào

[{"col":"4","label":"Account Info","objectName":"Accounts","arrayData":"","fields":[{"Name":"Account_Name","quickOpenUrl":{"Url":":originCrm/crm/:codeCrm/tab/Accounts/:AccountId","replaceData":[{":AccountId":"data?.Accounts[0][0]?.id"},{":originCrm":"parrentHostname2"},{":codeCrm":"parrentPathname?.split('/')[2]"}]}},{"Type":"Account_Type"},{"Annual Rev.":"Annual_Revenue"},{"Owner":"Owner"}]},{"col":"4","label":"Contact Info","objectName":"Contacts","arrayData":"","fields":[{"Name":"Full_Name","quickOpenUrl":{"Url":":originCrm/crm/:codeCrm/tab/Contacts/:ContactId","replaceData":[{":ContactId":"data?.Contacts[0][0]?.id"},{":originCrm":"parrentHostname2"},{":codeCrm":"parrentPathname?.split('/')[2]"}]}},{"Title":"Title"},{"Department":"Department"},{"Owner":"Owner"}]},{"col":"4","label":"Lead Info","objectName":"Leads","arrayData":"","fields":[{"Name":"Full_Name","quickOpenUrl":{"Url":":originCrm/crm/:codeCrm/tab/Leads/:LeadId","replaceData":[{":LeadId":"data?.Leads[0][0]?.id"},{":originCrm":"parrentHostname2"},{":codeCrm":"parrentPathname?.split('/')[2]"}]}},{"Source":"Lead_Source"},{"Status":"Lead_Status"},{"Owner":"Owner"}]}]

  • Client_id: copy từ trên zoho ở bước tương tác với zoho
  • Client_secret: copy từ trên zoho ở bước tương tác với zoho
  • Refresh token: Copy refresh token vừa gọi được dán vào

Bấm OK để hoàn tất tích hợp

3. Kết luận

Trên đây là bài viết hướng dẫn tích hợp nền tảng Zoho CRM với Gcalls. Sau khi hoàn tất tích hợp, anh chị vào các bạn hãy thực hiện testing kỹ theo bảng test case đối với các trường hợp hợp tích hợp. Hy vọng bài viết sẽ giúp ích được nhiều cho anh chị và các bạn. Nếu có ý kiến đóng góp hoặc thắc mắc gì, anh chị và các bạn vui lòng để lại ở phần bình luận.