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

  1. Call in (Call out) starts

  2. Establish call (Customer/Agent answers)

  3. Hang up

  4. Call ends

Explanation of Push Parameters

Parameter NameDescriptionType
call_idcall_id (unique id for a series of calls from the same customer)String
conversation_idconversation_id (id of the current call)Int
nick_namecustomer nameString
customer_phonecustomer phone numberString
display_numberrelay numberString
workflowcall type (in: inbound, out_callback: two-way callback, out_direct: direct outbound, out_auto: automatic outbound)String
from_agent_idsource (id of the previous agent during advanced calls)Int
call_resultcall result (explained below)String
is_leave_messagewhether there is a message (message in call recording)Boolean
total_timecall duration (seconds)Int
record_urlcall recording addressString
surveysatisfaction evaluationString
outline_phone_numberoutbound phone numberString
agent_idagent idInt
customer_ring_atcustomer ring time (e.g., 2018-03-22 11:48:05 +0800)String
agent_ring_atagent ring timeString
customer_answer_atcustomer answer timeString
agent_answer_atagent answer timeString
customer_hangup_atcustomer hang-up timeString
agent_hangup_atagent hang-up timeString
agent_emailagent email accountString
agent_nick_nameagent nameString
categoryadvanced call type (explained below)String
queue_statuequeue statusString
queue_timequeue time consumedInt
dtmfDTMF keyString
device_infodevice typeString
drop_sidecall hang-up sideString
defeat_causeoutbound call failure reason (explained below)String
multi_ring_countring countInt
relevant_agentrelated agentsCharacter array
task_idautomatic outbound task idInt
queue_overflowqueue overflow statisticsString
ivr_timeivr duration (s)Int
ivr_variablesivr variables (explained below)String
ivr_record_urlsivr recording addressArray
ticket_numbersgenerated ticket numbers (explained below)Array
is_blockedwhether in blacklistBoolean
owner_group_nameowner groupString
note_idbusiness record idInt
note_contentbusiness record topicString
note_custom_fieldsbusiness record custom fields (explained below)Array
note_template_idbusiness record template idInt
note_template_namebusiness record template nameString
questionnaire_idquestionnaire idInt
questionnaire_contentsquestionnaire contentsHash
callout_tasksmanual outbound tasks (explained below)Array
occasionexplanation of push timing (explained below)String
biz_idcustom call id (used with call component)String
customer_idcustomer IDLong
customer_tokencustomer open_api_tokenString
customer_web_tokencustomer web_tokenString
customer_sdk_tokencustomer sdk_tokenString
weixin_openidsWeChat public account customer IDsArray
user_group_idagent group IDInt
user_group_nameagent group nameString
call_start_atcall start timeString
ring_timeringing time (seconds)Int
agent_tagsagent tagsArray
created_atcreation timeString

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"}])

1Power offpower offPower off
2Does not existdoes not existDoes not exist
3Out of serviceout of serviceOut of service
4Hold onhold onHold on
5Not convenientnot convenientNot convenient
6Is not reachableis not reachableIs not reachable
7Not in servicenot in serviceNot in service
8Busy nowbusy nowBusy now
9Not a local numbernot a local numberNot a local number
10Barring of incomingbarring of incomingBarring of incoming
12Line is busyline is busyLine is busy
13Not answernot answerNot answer
15Cannot be connectedcannot be connectedCannot be connected
16Number changenumber changeNumber change
17Line faultline faultLine cannot be called out, such as SIM card arrears
18Redial laterredial laterVarious 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:

ValueRepresents Timing
beginStart automatic outbound
agent_answerOutbound callback agent answered
customer_answerOutbound callback customer answered
enqueue_succInbound enqueue success
agent_lockLock agent (Currently, this push needs to be opened separately after being turned on)
agent_incallAgent starts calling
agent_breakoutAssigned agent not answered
transfer_succTransfer successful
transfer_failedTransfer failed
consult_succConsultation successful
consult_failedConsultation failed
listening_succMonitoring successful
listening_failedMonitoring failed
third_party_succThree-party successful
third_party_failedThree-party failed
interpose_succInterpose successful
interpose_failedInterpose failed
substitute_succSubstitute successful
substitute_failedSubstitute failed
whisper_succWhisper successful
whisper_failedWhisper failed
hangupOne party hangs up
endCall ends
end_infoAdvanced 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": [
    "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).