Json Integration Data
I. INFO
Là 1 object chứa các object nhỏ để định hình click to call button và các event xử lý api1. renderTooltip
Là 1 array chứa các object dùng để định vị vị trí chèn nút clicktocallMỗi object gồm:
- path: xác định path url chèn nút call, nếu url hiện tại có chứa giá trị biến này sẽ tiến hành chèn theo điều kiện của element.
- element: xác định phần tử chèn nút call
{
"renderTooltip":[
{
"path":"/requested_tickets",
"element":"[class='value'] >[class='ember-view'] > [class='ember-view item'] > div"
}
]
}
2. listOptions
Là 1 array chứa các object dùng để thêm các checkbox ở phần setting của callboxMỗi object gồm:
- name: Tên biến của checkbox.
- label: Label được hiển thị ở phần setting.
{
"listOptions":[
{
"name":"auto_create_ticket_hubspot",
"label":"Auto creating a ticket for each call"
},
{
"name":"auto_copy_hubspot_gcalls",
"label":"Sync contacts to Gcalls"
}
]
}
3. userInfo
Là 1 array chứa các object dùng để xác định vị trí lấy các thông tin từ ui crmMỗi object gồm:
- field: Tên biến được sử dụng để lưu dữ liệu.
- path: xác định path url có dữ liệu cần lấy, nếu url hiện tại có chứa giá trị biến này sẽ tiến hành chèn theo điều kiện của element.
- element: xác định phần tử chứa dữ liệu.
{
"userInfo":[
{
"field":"hubspotEmail",
"path":"/",
"element":".user-info-email"
},
{
"field":"hubspotUserName",
"path":"/",
"element":".user-info-name"
}
]
}
4. dataFunction
Là 1 array chứa các object dùng để xử lý sự kiện get api khi bắt đầu cuộc gọi, mỗi object là 1 api, gọi theo thứ tự từ trên xuốngMỗi object gồm:
- objectName: tên object lưu dữ liệu lấy được từ api, object có thể được gọi ra ở các sự kiện khác như lưu log hoặc render iframe
- templateName: Templatename của tích hợp hiện tại
- endpointName: Endpoint api cần gọi.
- arrayResponse: xác định tên array cần lấy trong response api trả về, để trống nếu chỉ muốn lấy 1 object.
- responseData: Là 1 array chứa các object xác định giá trị lấy từ response trả về, mỗi object có value là giá trị trả về từ api ( nếu có arrayResponse, giá trị sẽ là $arrayResponse.$value ).
- data: body data api.
- replaceData: là 1 array chứa các object dùng để replace giá trị của data trước khi tiến hành call api.
{
{
"objectName":"organization",
"templateName":"zendesk",
"endpointName":"get_organization_zendesk",
"arrayResponse":"",
"responseData":[
{
"organization_name":"organizations[0]?.name"
},
{
"id":"organizations[0]?.id"
}
],
"data":{
"id":":id"
},
"replaceData":[
{
":id":"iframeDatas?.contact[0][0]?.id"
}
]
}
}
5. preLogFunction
Là 1 array chứa các object để xử lý sự kiện create khi cuộc gọi được kết nối.Mỗi object gồm:
- templateName: Templatename của tích hợp hiện tại
- endpointName: Endpoint api cần gọi.
- data: body data api.
- replaceData: là 1 array chứa các object dùng để replace giá trị của data trước khi tiến hành call api.
- responseData: Là 1 array chứa các object xác định giá trị lấy từ response trả về, mỗi object có value là giá trị trả về từ api
- quickOpenUrl: thông tin tự động mở create thành công:
- Url: url được mở
- replaceData: là 1 array chứa các object dùng để replace giá trị của url.
{
"preLogFunction":[
{
"templateName":"zendesk",
"endpointName":"create_ticket_zendesk",
"data":{
"ticket":{
"subject":"subjectData",
"comment":{
"body":"contentData"
},
"requester_id":"requesterIdData",
"brand_id":7574464357145,
"tags":[
"gcalls",
":direction",
"answered"
]
}
},
"replaceData":[
{
"subjectData":"subjectTitle"
},
{
"contentData":"TextContent"
},
{
"requesterIdData":"iframeData?.contact[0][0]?.id"
},
{
":direction":"directionCustom"
}
],
"responseData":[
{
"ticket.id":"result?.data?.ticket?.id"
}
],
"quickOpenUrl":{
"Url":"https://:hostName/agent/tickets/:ticketId",
"replaceData":[
{
":ticketId":"result?.data?.ticket?.id"
},
{
":hostName":"parrentHostname"
}
]
}
}
]
}
6. logFunction
Là 1 array chứa các object để xử lý sự kiện create khi cuộc gọi kết thúc.Mỗi object gồm:
- templateName: Templatename của tích hợp hiện tại
- endpointName: Endpoint api cần gọi.
- data: body data api.
- replaceData: là 1 array chứa các object dùng để replace giá trị của data trước khi tiến hành call api.
- responseData: Là 1 array chứa các object xác định giá trị lấy từ response trả về, mỗi object có value là giá trị trả về từ api
{
"logFunction":[
{
"templateName":"zendesk",
"endpointName":"update_ticket_zendesk",
"data":{
"ticket":{
"comment":{
"body":"contentData",
"public":true
},
"custom_fields":[
{
"id":8441228836249,
"value":"calllogStartTime"
},
{
"id":8441234894873,
"value":"calllogEndTime"
},
{
"id":8441236503833,
"value":"calllogDuration"
}
]
},
"id":"idTicket"
},
"replaceData":[
{
"contentData":"TextContent"
},
{
"idTicket":"iframeData?.ticket?.id"
},
{
"calllogStartTime":"handleTimeCreate2(calllog_info?.start, false)"
},
{
"calllogEndTime":"handleTimeCreate2(calllog_info?.end, false)"
},
{
"calllogDuration":"callDuration"
}
]
}
]
}
7. handleCreate
Là 1 array chứa các object xử lý render create contact boxMỗi object gồm:
- templateName: Templatename của tích hợp hiện tại
- endpointName: Endpoint api cần gọi.
- data: body data api.
- replaceData: là 1 array chứa các object dùng để replace giá trị của data trước khi tiến hành call api.
- inputElm: là 1 array chứa các object xử lý render các input, mỗi object gồm:
- id: id input, dùng để định danh và lưu trữ giá trị input, được gọi ở replaceData với định dạng: objectValue.$idValue
- type: loại input ( input, textarea )
- placeholder: input placeholder
- quickOpenUrl: thông tin tự động mở create thành công:
- Url: url được mở
- replaceData: là 1 array chứa các object dùng để replace giá trị của url.
{
"handleCreate":[
{
"templateName":"zendesk",
"endpointName":"create_contact_zendesk",
"data":{
"user":{
"name":":name",
"phone":":phone",
"role":"end-user"
}
},
"replaceData":[
{
":name":"objectValue?.userName"
},
{
":phone":"iframeData?.phone"
}
],
"inputElm":[
{
"id":"userName",
"type":"input",
"placeholder":"Name"
}
]
}
]
}
8. handleTicket
Là 1 array chứa các object xử lý render create ticket boxMỗi object gồm:
- templateName: Templatename của tích hợp hiện tại
- endpointName: Endpoint api cần gọi.
- data: body data api.
- replaceData: là 1 array chứa các object dùng để replace giá trị của data trước khi tiến hành call api.
- label: label input
- inputElm: là 1 array chứa các object xử lý render các input, mỗi object gồm:
- id: id input, dùng để định danh và lưu trữ giá trị input, được gọi ở replaceData với định dạng: objectValue.$idValue
- type: loại input ( input, textarea )
- placeholder: input placeholder
- quickOpenUrl: thông tin tự động mở create thành công:
- Url: url được mở
- replaceData: là 1 array chứa các object dùng để replace giá trị của url.
{
"handleTicket":[
{
"label":"Ticket",
"templateName":"zendesk",
"endpointName":"create_ticket_zendesk",
"data":{
"ticket":{
"subject":"subjectData",
"comment":{
"body":"contentData"
},
"requester_id":"requesterIdData",
"brand_id":7574464357145,
"tags":[
"gcalls"
]
}
},
"replaceData":[
{
"subjectData":"objectValue?.subjectTicket"
},
{
"contentData":"objectValue?.contentTicket"
},
{
"requesterIdData":"iframeData?.contact[0][0]?.id"
}
],
"inputElm":[
{
"id":"subjectTicket",
"type":"input",
"placeholder":"Subject"
},
{
"id":"contentTicket",
"type":"textarea",
"placeholder":"Content"
}
],
"quickOpenUrl":{
"Url":"https://:hostName/agent/tickets/:ticketId",
"replaceData":[
{
":ticketId":"res?.data?.ticket?.id"
},
{
":hostName":"parrentHostname"
}
]
}
}
]
}
9. Lock Diapad
Sử dụng khi muốn lock bàn phím gọi của tích hợp
{
"isLockDiapad":false,
}
10. Chọn language
- Sử dụng khi muốn thay đổi ngôn ngữ của tích hợp, nếu chưa dịch hay ngôn ngữ chưa có thì có thể dev trong Omnibox
{
"lang":"vi"
}
11. Chọn Region Code
- Sử dụng khi cần chọn đầu số theo vùng miền khi gọi, có thể liên hệ tel4 để thiết kế theo kiểu random hay chọn trước đầu số
- Nếu chọn trước đầu số thì thêm số hotline vào value, số hotline này sẽ được gửi qua field hotlineCallout ở chromeExt qua SIP header cho Tel4
{
"regionCode":
[{"label":"Default","name":"Default","value":"default"},{"label":"North","name":"North","value":"vi_north"},{"label":"South","name":"South","value":"vi_south"}]}
}
II. IFRAME
Là 1 array chứa các object xử lý việc định dạng iframeMỗi object gồm:
- col: số lượng data hiển thị trên 1 hàng.
- label: box label
- objectName: objectName được lấy từ thông tin lưu ở Info
- arrayData: Trường hợp info có arrayData, hiển thị tối đa 3 object, để trống hiển thị object đầu tiên.
- Fields: là 1 array chứa các object xử lý việc render thông tin.
- quickOpenUrl: thông tin tự động mở create thành công:
- Url: url được mở
- replaceData: là 1 array chứa các object dùng để replace giá trị của url.
[
{
"col":"3",
"label":"Contact",
"objectName":"contact",
"arrayData":"",
"fields":[
{
"Name":"name"
},
{
"Phone":"phone"
}
],
"quickOpenUrl":{
"Url":"https://:hostName.zendesk.com/agent/users/:userId/",
"replaceData":[
{
":userId":"data?.contact[0][0]?.id"
},
{
":hostName": "parrentHostname"
}
]
}
}
]