Hướng dẫn Tích hợp Salesforce
I. Điều kiện tiên quyết
- Nhận tài khoản Salesforce từ Sale, có đầy đủ quyền hạn
- Salesforce SOQL Workbench
- JSON formatter
- Tài khoản Portal
- Git repository
II. Đối tượng đọc
- Stage Owner
- Customer Success Engineer
- Customer Success Specialist
III. Hướng dẫn cài đặt
1. Cách sử dụng SOQL Workbench
Step 1: Đăng nhập vào Salesforce
Step 2: Đăng nhập vào SOQL Workbench

a. Sau khi đăng nhập workbench
Chọn: SOQL query
Object: Contact
> Chọn 'Select' và nextb. Trong trang query
SELECT Name,Email,AccountId FROM ContactKết quả :
Name Email AccountId Rose Gonzalez rose@edge.com 0012w00001FWbG9AAL SELECT Name,Email,Account.Name,Account.Id,AccountId FROM ContactResult :
Name Email Account. Name AccountId Account. Id Rose Gonzalez rose@edge.com Edge Communications 0012w00001FWbG9AAL 0012w00001FWbG9AAL Tập sử dụng workbench để kiểm tra thông tin các object và query data cần thiết
2. Tích hợp
Bấm vào setup icon ở đầu trang, tay phải và chọn Object Management Settings.
Xem ví dụ:
How to Add a Custom Field in Salesforce (Lightning Experience)
Bước 1: Thêm custom fields vào Activity and User objects:
- Activity fields :
| Field Label | Field Name | DataType |
|---|---|---|
| Gcalls Call Duration | Gcalls_Call_Duration__c | Number(18,0) |
| Gcalls Call Flowid | Gcalls_Call_Flowid__c | Text(100) |
| Gcalls Call Status | Gcalls_Call_Status__c | Text(100) |
| Gcalls Call Type | Gcalls_Call_Type__c | Picklist (Note : Enter values Inbound , outbound) |
| Gcalls Customer Phone | Gcalls_Customer_Phone__c | Phone |
| Gcalls End Time | Gcalls_End_Time__c | Date/Time |
| Gcalls SMS Content | Gcalls_SMS_Content__c | Text(255) |
| Gcalls Start Time | Gcalls_Start_Time__c | Date/Time |
| Gcalls URL Recorder | Gcalls_URL_Recorder__c | URL(255) |
| Gcalls_ActivitId | Gcalls_ActivitId__c | Text(255) |
- User fields :
| Field Label | Field Name | DataType |
|---|---|---|
| Gcalls Extension | Gcalls_Extension__c | Text(255) |
| Gcalls Password | Gcalls_Password__c | Text(100) |
| Gcalls Proxy | Gcalls_Proxy__c | Text(255) |
| Gcalls Websocket | Gcalls_Websocket__c | Text(255) |
Bước 2: Tạo Salesforce Lightning app với OpenCTI component
Watch a Demo:
How to Create a Lightning App in Salesforce (Lightning Experience)
Cài đặt theo hướng dẫn :
- Navigation Style: Console navigation
- In Utility Items, select Open CTI Softphone and click Next
- Select Navigation Items, then select User Profile. Finally, click on "Save and Finish" to exit the wizard
- Kiểm tra App vừa tạo trong App Launcher
Bước 3: Cài đặt Apex code
Trong Salesforce, mở the Developer console (góc phải phía trên chỗ đăng nhập). Chọn File > New > Apex Class :
Class name: RCPhoneHelperCopy RCPhoneHelper từ gcalls-shell/market-driven/Salesforce repo and paste vào
Tạo Class tên RCPhoneHelperTest và copy nội dung RCPhoneHelperTest vào
Chọn File > Save All
Chạy tests trong Salesforce, chọn Test trên navigation bar > Run All.
Bước 4: Tạo callcenter trong Salesforce
- Tải call-center.xml
- Vào màn hình Setup, Tìm "Call Centers" (gõ chữ call centers vào ô search tay trái), bấm chọn Call Center sau đó import file
Đổi url omnibox lại https://callbox.gcalls.co cho prod, https://callbox.gcalls.vn cho demo
Note: change the CTI Adapter URL to the production URL)
- Để thêm Users cho Call Center in Salesforce:
- Chọn call center record > Manage Call center Users > Add more User > Thêm tất cả User vào
Bước 5 : Tạo Connected App

- Từ Setup > Search App Manager trên ô search > chọn App Manager > chọn "Create New Connected App"
- Thêm thông tin sau và "Save"
Connected App Name : Gcall Integration
API Name : Gcall_integration
Contact Email : developer@gcalls.co
Enable OAuth Setting : true
Callback URL : http://localhost
Selected OAuth Scopes: Full access (full)
- Bấm Setup chỗ login > bấm search App Manager ô search, tìm connected app vừa tạo > chọn Manage > edit Policy > Save
IP Relaxation : Relax IP restrictions
Permitted Users : All users may self-authorize

Từ Setup > Search App Manage , tìm Connected Apps > select View
- API (Enable OAuth Settings) > Consumer Key and Secret > Chọn Manage Consumer Details > generate Consumer Key And Secret
curl https://login.salesforce.com/services/oauth2/token -d 'grant_type=password&client_id=3MVG9Y6d_Btp4xp5OkM1b4zt4n4eqn2.VASD8jhibLV4goD.76u54WjIqaJwXtK29roDJfFFTTTTX0EO_f84q&client_secret=7894561272718739647&username=salesforcecodes@test.com&password=passwordValueSecurityToken' -H "X-PrettyPrint: 1"
Result :
"access_token" : "00D2w00000Ksypp!ARsAQFT_hyxwityyQt6m4JV0ieyDdHzaUYkzptgN1.7YjwXw2y0D4DSQGVmXIx2aOYinGd_LsuII_TwRwEoivX4z4SNQ1_W1u",
"instance_url" : "https://gcalls-dev-ed.develop.my.salesforce.com",
"id" : "https://login.salesforce.com/id/00D2w00000KsyppEAB/0052w00000C53pLAAR",
"token_type" : "Bearer",
"issued_at" : "1675400977823",
"signature" : "+yfMxMO9toK0HiSuTscu8Uw4oKtRErRo1A6hOFQGJpM="
}
Bước 6 : Thêm tích hợp
Vào https://portal.gcalls.vn > Customer > Integration > Search 'salesforce' > Chọn "eye" icon > cLick Add integrator
ID Callcenter
Vào portal, search thông tin callcenter ở mục Callcenter để lấy ID
Host : yoursalesroce.host.com (Example : my.salesforce.com)
Description : Your description
Info : Quản lý các chức năng objects.Xem topic JSON Integration Data và có thể tham khảo các tích hợp salesforce khác ở portal
Iframe : render UX/UI cho objects,từ Info ở bước trên. Xem JSON Integration Data and có thể tham khảo các tích hợp Salesforce khác ở portal
Fields : Các thông tin của Salesforce như host, token ở bước 5
Bước 7: Tạo folder tích hợp
- Mỗi folder là Id của tích hợp Salesforce đó:
$ cd omnibox/src/customCallbox/salesforce
$ ls
Result :
--62e206a54e4a1c0d633bdaea
--6306f68af2566a2336d42117
--63a4269b102e1b9759a12c2b
- Có thể tìm integratorId sau khi tạo tích hợp ở portal bằng cách search id trong database ở third-party -> integrator (filter bằng hostname) hoặc đăng nhập vào Salesforce, sau đó mở console log của trình duyệt để xem lỗi trả về integratorId
- Login to Salesforce using the Google Chrome browser.

crt + shift + j
Tạo folder với tên folder là integratorId của tích hợp
IV. Thêm chức năng Autolink cho Lead
Chức năng này nhằm mục đích update laị LeadId cho task được tạo lần đầu ở 2 trường hợp user tạo Lead trong khi call (User nhận cuộc gọi từ Lead mới, lúc này Lead chưa có trên hệ thống để search ra Lead ID, tham khảo updateSFTask trong Omnibox) và user tạo Lead sau khi endcall ( Lead có sau task nên task trước đó không có LeadId, làm theo các bước bên dưới).
- Chức năng này bao gồm 2 phần:
- Phần code - kiểm tra code autolink ở omnibox trong các tích hợp khác
- Phần setup trong CRM
Bước 1: Vào object manager , tìm Lead, chọn flow trigger và tạo new flow

Bước 2: Chỉnh sửa thông tin theo hình

Bước 3: Bấm vào dấu cộng và chọn Update Record

Bước 4: Chỉnh sửa thông tin theo hình sau đó bấm vào active ở đầu trang để sử dụng

V. Trường hợp missed call
- Kiểm tra file auth-sf.json ở rawservice. Lưu ý khi cài trên local chỉ được sử dụng thông tin sanbox
VI. TIP
Mỗi User Salesforce được gắn Profile khác nhau, trong profile sẽ có nhiều config để set role cho Profile đó. Hiện tại account tích hợp đăng được sử dụng Profile 'System Admin'. Trong profile của user tích hợp phải được cung cấp đầy đủ quyền hạn để truy xuất dữ liệu
VI. Kết luận
Tài liệu này hướng dẫn cách tích hợp salesforce, nếu có góp ý xin vui lòng điền vào form bên dưới.