Hello, welcome to use the udesk call event push feature.
Basic Usage
Step 1: Configure the pushed fields
Log in to the Udesk customer service system administrator account, go to Management Center -> Call Center -> Other Settings -> Call Event Push, turn on the push switch, and fill in the push address.
Step 2: Use call event push
Set the push address to automatically trigger the push when a call event occurs.
Call Event Push
Push Timing
Call in (Call out) starts
Establish call (Customer/Agent answers)
Hang up
Call ends
Explanation of Push Parameters
Parameter Name | Description | Type |
---|---|---|
call_id | call_id (unique id for a series of calls from the same customer) | String |
conversation_id | conversation_id (id of the current call) | Int |
timestamp | time | String |
nick_name | customer name | String |
customer_phone | customer phone number | String |
mobile_area | location | String |
display_number | relay number | String |
workflow | call type (in: inbound, out_callback: two-way callback, out_direct: direct outbound, out_auto: automatic outbound) | String |
from_agent_id | source (id of the previous agent during advanced calls) | Int |
call_result | call result (explained below) | String |
is_leave_message | whether there is a message (message in call recording) | Boolean |
total_time | call duration (seconds) | Int |
record_url | call recording address | String |
survey | satisfaction evaluation | String |
outline_phone_number | outbound phone number | String |
agent_id | agent id | Int |
customer_ring_at | customer ring time (e.g., 2018-03-22 11:48:05 +0800) | String |
agent_ring_at | agent ring time | String |
customer_answer_at | customer answer time | String |
agent_answer_at | agent answer time | String |
customer_hangup_at | customer hang-up time | String |
agent_hangup_at | agent hang-up time | String |
agent_email | agent email account | String |
agent_nick_name | agent name | String |
category | advanced call type (explained below) | String |
task_name | task | String |
queue_statue | queue status | String |
queue_time | queue time consumed | Int |
dtmf | DTMF key | String |
device_info | device type | String |
drop_side | call hang-up side | String |
defeat_cause | outbound call failure reason (explained below) | String |
multi_ring_count | ring count | Int |
relevant_agent | related agents | Character array |
task_id | automatic outbound task id | Int |
queue_overflow | queue overflow statistics | String |
ivr_time | ivr duration (s) | Int |
ivr_variables | ivr variables (explained below) | String |
ivr_record_urls | ivr recording address | Array |
ticket_numbers | generated ticket numbers (explained below) | Array |
lang | language | String |
is_blocked | whether in blacklist | Boolean |
level | level | String |
description | description | String |
organization_name | company | String |
owner_name | owner | String |
owner_group_name | owner group | String |
note_id | business record id | Int |
note_content | business record topic | String |
note_custom_fields | business record custom fields (explained below) | Array |
note_template_id | business record template id | Int |
note_template_name | business record template name | String |
questionnaire_id | questionnaire id | Int |
questionnaire_contents | questionnaire contents | Hash |
callout_tasks | manual outbound tasks (explained below) | Array |
occasion | explanation of push timing (explained below) | String |
biz_id | custom call id (used with call component) | String |
customer_id | customer ID | Long |
customer_token | customer open_api_token | String |
customer_web_token | customer web_token | String |
customer_sdk_token | customer sdk_token | String |
weixin_openids | WeChat public account customer IDs | Array |
user_group_id | agent group ID | Int |
user_group_name | agent group name | String |
call_start_at | call start time | String |
ring_time | ringing time (seconds) | Int |
agent_tags | agent tags | Array |
created_at | creation time | String |
Explanation of call result ("Customer not answered", "Customer answered", "Line busy", "Line offline", "Agent not answered", "Agent rejected", "Agent answered", "Customer hung up", "Customer hung up quickly", "Queue timeout", "Abandon queue", "Unselected queue", "External line answered", "External line not answered")
Explanation of category ("normal"=> normal call; "transfer"=> transfer; "transfer_outline"=> outbound transfer; "consult"=> consultation; "consult_outline"=> consultation (external line); "three_party"=> three-party; "three_party_outline"=> three-party (external line); "listening"=> monitoring; "barge_in"=> supervisor intervention; "substitute"=> supervisor removal)
Explanation of defeat cause: Outbound call failure reasons need to be opened separately, please contact Udesk. The detailed explanation is as follows, and the final return value is the "name" field.
Explanation of ivr variables, which are configured for intelligent routing and saved to the ivr variables of the call record, returned format: ("ivr_variables": "aa:11,bb:22")
Explanation of ticket numbers: Generated ticket numbers during the call process, there may be multiple tickets, returned format is as follows: ("ticket_numbers": ["#12","#13"])
Explanation of note custom fields: Custom fields of the business record corresponding to this call record, returned format is as follows: ("note_custom_fields": [{ "id": "TextField_73", "name": "Test Date", "value": "2019-08-09" }])
Note: Deleted custom fields will not be returned
Explanation of callout tasks: Indicates that the call was initiated from an outbound task, and it is possible that multiple outbound tasks contain this number, returned format: ("callout_tasks": [{"id": 85,"name": "Outbound Task 1"},{"id": 86,"name": "Outbound Task 2"}])
id | name | alias | description |
---|---|---|---|
1 | Power off | power off | Power off |
2 | Does not exist | does not exist | Does not exist |
3 | Out of service | out of service | Out of service |
4 | Hold on | hold on | Hold on |
5 | Not convenient | not convenient | Not convenient |
6 | Is not reachable | is not reachable | Is not reachable |
7 | Not in service | not in service | Not in service |
8 | Busy now | busy now | Busy now |
9 | Not a local number | not a local number | Not a local number |
10 | Barring of incoming | barring of incoming | Barring of incoming |
11 | Forwarded | forwarded | Forwarded |
12 | Line is busy | line is busy | Line is busy |
13 | Not answer | not answer | Not answer |
14 | Defaulting | defaulting | Defaulting |
15 | Cannot be connected | cannot be connected | Cannot be connected |
16 | Number change | number change | Number change |
17 | Line fault | line fault | Line cannot be called out, such as SIM card arrears |
18 | Redial later | redial later | Various prompts for redial later |
Explanation of push occasions: The push timing represents the trigger event of this push, and there are differences between inbound and outbound calls and advanced calls, but each call must have one and only one push with occasion "end", indicating the complete end of the call. Currently, the "Lock Agent" push needs to be opened separately due to reasons such as sequential vibration, etc. The field explanations are as follows:
Value | Represents Timing |
---|---|
begin | Start automatic outbound |
agent_answer | Outbound callback agent answered |
customer_answer | Outbound callback customer answered |
enqueue_succ | Inbound enqueue success |
agent_lock | Lock agent (Currently, this push needs to be opened separately after being turned on) |
agent_incall | Agent starts calling |
agent_breakout | Assigned agent not answered |
transfer_succ | Transfer successful |
transfer_failed | Transfer failed |
consult_succ | Consultation successful |
consult_failed | Consultation failed |
listening_succ | Monitoring successful |
listening_failed | Monitoring failed |
third_party_succ | Three-party successful |
third_party_failed | Three-party failed |
interpose_succ | Interpose successful |
interpose_failed | Interpose failed |
substitute_succ | Substitute successful |
substitute_failed | Substitute failed |
whisper_succ | Whisper successful |
whisper_failed | Whisper failed |
hangup | One party hangs up |
end | Call ends |
end_info | Advanced call information |
Example of Push Values
{
"call_id": "8097f59e-0ba7-1111-b6c0-7f70c7a5a962",
"conversation_id": 54093,
"agent_ring_at": null,
"agent_answer_at": null,
"agent_hangup_at": "2019-07-24T15:23:14.000+08:00",
"customer_ring_at": "2019-07-24T15:21:41.000+08:00",
"customer_answer_at": "2019-07-24T15:21:56.000+08:00",
"customer_hangup_at": "2019-07-24T15:23:17.000+08:00",
"timestamp": "2019-07-24 15:23:17 +0800",
"nick_name": "Test Customer 18",
"mobile_area": "Beijing, Beijing",
"workflow": "out_direct",
"category": "normal",
"from_agent_id": null,
"call_result": "Customer answered",
"is_leave_message": false,
"total_time": 81,
"survey": "Not evaluated",
"record_url": "https://xxxx",
"outline_phone_number": null,
"agent_id": 1941,
"agent_email": "demo@udesk.cn",
"agent_nick_name": "Test Agent 01",
"task_name": null,
"queue_statue": null,
"queue_time": null,
"dtmf": "",
"device_info": "Web phone",
"drop_side": "Agent",
"defeat_cause": null,
"multi_ring_count": 0,
"relevant_agent": ["demo2"],
"task_id": null,
"queue_overflow": "No overflow",
"ivr_time": null,
"ivr_variables": null,
"ivr_record_urls": [
{
"id": 50107001,
"ivr_record_url": "https://pro-ccrecords.kefutoutiao.com/linapp/cc_recordings/20200604114352_8b16c1a0-941d-47c0-9fa8-86a302021d50_8b16c1a0-941d-47c0-9fa8-86a302021d50.wav?OSSAccessKeyId=bPexlr6MCcadDhfu&Expires=1622778259&Signature=e6OcyIoJ6AbUM9X7soj%2Bux9VJJg%3D"
}
],
"ticket_numbers": ["#12","#13"],
"lang": "ko",
"is_blocked": true,
"level": "vip",
"description": "Test Customer 18 description",
"organization_name": "ACMILAN",
"owner_name": "demo",
"owner_group_name": "123",
"note_id": 113973,
"note_content": "Topic 1",
"customer_id": 1122333211,
"customer_token": "2lakjer32aw34r123l",
"customer_web_token": "la9df234jasdfqw3",
"customer_sdk_token": "lasdf234ala23234",
"weixin_openids": ["weixin_openids1", "weixin_openids2"],
"note_custom_fields": [
{
"id": "TextField_286",
"name": "zgh-Single line text",
"value": "zgh-Single line text"
},
{
"id": "TextField_287",
"name": "zgh-Date",
"value": "2019-07-24"
},
{
"id": "TextField_288",
"name": "zgh-Time",
"value": "15:21:35"
},
{
"id": "TextField_289",
"name": "zgh-Datetime",
"value": "2019-07-24 15:21"
},
{
"id": "TextField_291",
"name": "zgh-Positive integer",
"value": "111"
},
{
"id": "TextField_292",
"name": "zgh-Link",
"value": "https://baidu.com"
},
{
"id": "TextField_293",
"name": "zgh-Multiple lines of text",
"value": "zgh-Multiple lines of text"
},
{
"id": "TextField_294",
"name": "zgh-Geographical location",
"value": "Geographical location"
},
{
"id": "TextField_33405",
"name": "Jiayun number",
"value": "123"
},
{
"id": "SelectField_257",
"name": "10-item cascading",
"value": [
"Beijing",
"Haidian District",
"Zhichun Road"
]
},
{
"id": "SelectField_364",
"name": "zgh-Dropdown list",
"value": [
"zgh-Dropdown list-Option 2"
]
},
{
"id": "SelectField_366",
"name": "zgh-Radio button",
"value": [
"zgh-Radio button-Option 2"
]
},
{
"id": "SelectField_367",
"name": "zgh-Checkbox",
"value": [
"zgh-Checkbox-Option 1",
"zgh-Checkbox-Option 2"
]
}
],
"note_template_id": 114,
"note_template_name": "Default business record",
"questionnaire_id": "13",
"questionnaire_contents": \{ "What animal do you like?": "Little Blue", "Which city do you like?": "Beijing; Shanghai; Tianjin; Chongqing", "How old are you this year?": "", "Do you go home for the New Year?": "No" \},
"callout_tasks": [
{
"id": 1301,
"name": "Outbound Task 1"
}
],
"occasion": "end",
"biz_id": null,
"customer_phone": "1388888888",
"display_number": "0211234567",
"call_start_at": "2022-03-03 14:27:10",
"ring_time": 17,
"agent_tags": ["Agent Tag", "show case"],
"created_at": "2022-03-03 17:12:42"
}
Examples of Call Event Push Timing
The number of pushes for sequential vibration and advanced calls may vary due to complex call situations. The actual situation depends on the occasion. However, each call must have one and only one push with the occasion "end", indicating that the call is completely over. In the case of enabling retry function, for the same conversation_id, if "end" push has been received before, the subsequent pushes are retries after previous failures.
1. General Outbound Call
In general, the occasions are: "agent_answer"; "customer_answer"; "hangup"; "end". "end" indicates the end of the entire call (the push contains important information such as call duration).
2. General Inbound Call
In general, the occasions are: "enqueue_succ"; "agent_lock" (after the function is enabled); "agent_incall"; "hangup"; "end". "end" indicates the end of the entire call (the push contains satisfaction evaluation, call duration and other important information).