Skip to main content

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ý api

1. renderTooltip

Là 1 array chứa các object dùng để định vị vị trí chèn nút clicktocall

Mỗ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
Ví dụ:
{
"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 callbox

Mỗi object gồm:

  • name: Tên biến của checkbox.
  • label: Label được hiển thị ở phần setting.
Ví dụ:
{
"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 crm

Mỗ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.
Ví dụ:
{
"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ống

Mỗ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.
Ví dụ:
{
{
"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.
Ví dụ:
{
"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
Ví dụ:
{
"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 box

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.
  • 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.
Ví dụ:
{
"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 box

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.
  • 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.
Ví dụ:
{
"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 iframe

Mỗ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.
Ví dụ:
[
{
"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"
}
]
}
}
]