Push Report Webhook
Webhooks are important to integrate your CRM into Deepcall’s environment. Report webhook is one of them. You can add multiple webhooks in the panel to get reports on your CRM. You can set different webhooks based on call type, DID numbers, campaigns, etc. or can simply set one webhook for all.
Once a webhook is added in the panel, the system will verify and activate it. To be an active webhook it should be a valid URL and must respond as GODBLESSYOU.
Once it is active and verified, a webhook qualifies to receive reports on it. System will send reports in Json format. Attributes of this json format are as follows.
Data Format
Field | Type | Description |
---|---|---|
callId | string | It is a unique id for each call. |
callStatus | integer | This is the status of the call. |
cType | string |
Possible Values
|
DID | string | null |
DID Number For IBD call only |
campId | integer | 0 |
Campaign id
-1 campaign id stands for default campaign |
ivrSTime | "YYYY-MM-DD HH:MM:SS" HH is in 24 hrs format |
IVR Start Time
|
ivrETime | "YYYY-MM-DD HH:MM:SS" HH is in 24 hrs format |
IVR End Time
|
ivrDuration | integer |
Difference between ivrETime and ivrSTime in seconds |
userId | string |
User Id |
cNumber | string | null |
Customer Number
Definition in case of,
|
masterNumCTC | string | null |
|
masterAgent | integer |
It is possible that more than one agent is involved in a call. This parameter will hold the agent id whoever attends the call first |
masterAgentNumber | string | null |
Phone/Landline number in of masterAgent in E164 format |
masterGroupId | integer |
Id of the Agent Group for which masterAgent received the call |
firstAttended | string |
It holds the category of the person who answered the call first. Possible values are,
In case of,
Null value means, nobody has answered the call. |
firstAnswerTime | "YYYY-MM-DD HH:MM:SS" |
Answer time of firstAttended From this point of time the call actually starts. |
lastHangupTime | "YYYY-MM-DD HH:MM:SS" |
Hangup time of person who disconnected the call in the last From this point of time the call ends. |
lastFirstDuration | integer |
Duration between lastHangupTime and firstAnswerTime This is actually the call duration. This duration is in seconds |
talkDuration | integer |
Total talk duration in the call. It is in seconds |
custAnswerSTime | "YYYY-MM-DD HH:MM:SS" |
In case of,
|
custAnswerETime | "YYYY-MM-DD HH:MM:SS" |
When customer / caller / to number hangups the call |
custAnswerDuration | integer |
It is the answer duration of customer/caller/ to number in seconds. custAnswerDuration = custAnswerETime - custAnswerSTime |
agentOnCallDuration | integer |
Total duration when agents are connected. It is possible that more than one agent is involved in the call. It is the sum of durations of all agents. |
totalHoldDuration | integer |
Total hold duration during the call. It is in seconds. |
forward | string |
If the call is being forwarded by an agent then the value of this field will be true otherwise false Possible Values
|
ivrExecuteFlow | string |
INode by node execution of the IVR during the call. Each node is prefixed by # and separated by comma. Example "#2,#8,#9,HANGUP" |
HangupBySourceDetected | integer |
It specifies that if the call is terminated by the caller or system. Possible Values
|
ivrIdArr | integer Array |
It contains the IVR id of used during the call. Example [315] |
totalCreditsUsed | json |
Details of the used credits. It contains three attributes,
All the attributes are integers but amount is float Example { "freeHit": 0, "paidHit": 0, "amount": 0 } |
aH | integer array |
This field refers to Agent History. It contains ids of all the agents who have been called during the call whether they answer or not. Example [202,301,258] |
aAnsH | integer array |
This field refers to Agent Answered History. It contains ids of all the agents who have answered the call. Example [202,301] |
aHDetail | json array |
This field refers to Agent History Detail. It contains meta information about the aH field. aHDetail stores the data in the same order as aH. For example if agent id 301 is on the 1st index of the aH then its meta information will also be on the 1st index of aHDetail. Example [ {...}, {...}, {...} ] |
nH | string array |
This field refers to Number History. This field will be non-empty only in the case of CTC. This field contains all the phone numbers which have been called during the call. It doesn’t matter whether the number is in from or to field. Format of the phone/landline number will be E164 Example ["919000000000","919000000001"] |
nHDetail | json array |
This field refers to Number History Detail. It contains meta information about the nH field. nHDetail stores the data in the same order as nH. For example if 919000000000 is on the 1st index of the nH then its meta information will also be on the 1st index of nHDetail. Format of the phone/landline number will be E164 Example [ {...}, {...}, {...} ] |
recordings | json array |
It contains information about the recordings in json format. For each recording there are following attributes,
Example
|
exitCode | integer |
This contains the reason of call end. |
contactId | string |
unique id of the contact from contact list (only in case of campaign) |
callStatus
Value of callStatus can have slightly different meaning in the case of Click to Call (CTC). So here is a comparison list of description between CTC and general cases, i.e., cases when call type is Inbound, Campaign, Quick Call, etc.
Status Code | Description (general) | Description (CTC) |
---|---|---|
3 | Both Answered | Both Answered |
4 | Cust. Ans. - Agent Unans. | To Ans. - From Unans. |
5 | Cust. Ans | To Ans |
6 | Cust. Unans - Agent Ans. | To Unans - From Ans. |
7 | Agent Unanswered | From Unanswered |
8 | Cust. Unans. | To Unans. |
9 | Both Unanswered | Both Unanswered |
10 | Agent Ans. | From Ans. |
11 | Rejected Call | Rejected Call |
12 | Skipped | Skipped |
13 | Agent Failed | From Failed |
14 | Cust. Failed - Agent Ans. | To Failed - From Ans. |
15 | Cust. Failed | To Failed |
16 | Cust. Ans - Agent Failed | To Ans - From Failed |
17 | Agent Busy | From Busy |
18 | Cust. Ans - Agent Not Found | To Ans. - From Not Found |
19 | Cust. Unans - Agent Busy | To Unans. - From Busy |
aHDetail
Attribute | Type | Description |
---|---|---|
CTC | string | null |
Possible Values
|
agentId | integer |
Id of the agent |
groupId | integer |
Id of the group in which agent was present at the time of calling |
status | string |
Possible Values
|
recording | string |
Path of the recording file |
ping | string |
Possible Values
|
agentNumber | string | E164 |
Destination number of the agent at the time of calling |
visitId | string |
Unique visit id |
nodeId | string |
Example "#7" |
totalRingDuration | integer |
Total ring duration in seconds |
totalHoldDuration | integer |
Total hold duration in seconds |
talkDuration | integer |
Total talk duration in seconds |
talkSTime | "YYYY-MM-DD HH:MM:SS" | |
talkETime | "YYYY-MM-DD HH:MM:SS" | |
answerSTime | "YYYY-MM-DD HH:MM:SS" | |
answerETime | "YYYY-MM-DD HH:MM:SS" | |
answerDuration | integer | Answer duration by agent in seconds |
cli | string | E164 | Caller id in E164 format |
retry | integer |
nHDetail
Attribute | Type | Description |
---|---|---|
CTC | string | null |
Possible Values
|
status | string |
Possible Values
|
recording | string |
Path of the recording file |
ping | string |
Possible Values
|
number | string | E164 |
Number passed during CTC API request |
visitId | string |
Unique visit id |
nodeId | string | null |
Node id prefixed with # Example "#7" |
totalRingDuration | integer |
Total ring duration in seconds |
totalHoldDuration | integer |
Total hold duration in seconds |
talkDuration | integer |
Total talk duration in seconds |
talkSTime | "YYYY-MM-DD HH:MM:SS" | |
talkETime | "YYYY-MM-DD HH:MM:SS" | |
answerSTime | "YYYY-MM-DD HH:MM:SS" | |
answerETime | "YYYY-MM-DD HH:MM:SS" | |
answerDuration | integer | Answer duration by agent in seconds |
cli | string | E164 | Caller id in E164 format |
retry | integer |
Exit Code
Exit Code | Description |
---|---|
1 |
Account Suspended |
2 |
Agent Busy |
3 |
Blocked DID |
4 |
Caller : Busy |
5 |
Caller : Invalid Number |
6 |
Caller : Not Reachable |
7 |
Caller : Switch Off |
8 |
Caller Blacklisted |
9 |
Caller Hangedup |
10 |
Channel Limit |
11 |
Contact List Issue |
12 |
DID Not Found |
13 |
Hangup From Live Action |
14 |
Inactive Module |
15 |
Invalid API Parameter |
16 |
Invalid IVR Flow |
17 |
IVR Configuration Issue |
18 |
IVR Flow Finished |
19 |
Lock Amount Not Found |
20 |
Low Credit |
21 |
Next Due Date Passed |
22 |
No IVR Is Mapped |
23 |
Omit Call |
24 |
Operator Issue |
25 |
Plan Not Found |
26 |
SMS Response Issue |
27 |
SMS Setting Invalid |
28 |
System Issue |
Sample Data
{
"did": null,
"cType": "QC",
"campId": -1,
"ivrSTime": "2021-04-16 17:00:50",
"ivrETime": "2021-04-16 17:04:45",
"ivrDuration": 235,
"userId": "87164080",
"cNumber": "9190000XXXXX",
"masterNumCTC": null,
"masterAgent": 136,
"masterAgentNumber": "9197828XXXXX",
"masterGroupId": 0,
"talkDuration": 235,
"agentOnCallDuration": 247,
"callId": "knk1qft1161857267828372659",
"firstAttended": "agent",
"firstAnswerTime": "2021-04-16 17:00:38",
"lastHangupTime": "2021-04-16 17:04:45",
"lastFirstDuration": 247,
"custAnswerSTime": "2021-04-16 17:00:50",
"custAnswerETime": "2021-04-16 17:04:45",
"custAnswerDuration": 235,
"callStatus": 3,
"ivrExecuteFlow": "#2,#3,#1,HANGUP",
"HangupBySourceDetected": 0,
"forward": "false",
"totalHoldDuration": 0,
"totalCreditsUsed": {
"freeHit": 0,
"paidHit": 0,
"amount": 0
},
"ivrIdArr": [
176
],
"aAnsH": [
136
],
"aH": [
136
],
"nH": [ ],
"recordings": [
{
"nodeid": "#3",
"visitId": "1618572632763",
"file": "/202104/knk1qft1161857267828372659_97828XXXXX_2021-4-16-17-0-49_QC.wav",
"time": "2021-04-16 17:00:49"
}
],
"cliArr": {
"136": [
"9197828XXXXX"
],
"customer": [
"9190000XXXXX"
]
},
"aHDetail": [
{
"CTC": null,
"agentId": 136,
"groupId": 0,
"status": "answered",
"recording": "/202104/knk1qft1161857267828372659_97828XXXXX_2021-4-16-17-0-49_QC.wav",
"ping": "direct",
"agentNumber": "9197828XXXXX",
"visitId": "1618572632763_0",
"nodeId": "#3",
"totalRingDuration": 4,
"totalHoldDuration": 0,
"talkDuration": 235,
"talkSTime": "2021-04-16 17:00:50",
"talkETime": "2021-04-16 17:04:45",
"answerSTime": "2021-04-16 17:00:38",
"answerETime": "2021-04-16 17:04:45",
"answerDuration": 247,
"cli": "917447133300",
"retry": 0
}
],
"nHDetail": [ ]
}