AIRUDDER API
  1. Workflow
AIRUDDER API
  • Introductions
  • Quick Start
  • Get the Authorization token
    • Token Authentication and Obtain
      POST
  • Error Codes
    • Error Codes
  • Workflow
    • Webhooks of the Info of Predictive Dialer System
      • Webhook of Predictive Dialer Task Status Changes
      • Webhook of Predictive Dialer Contacts Status Changes
      • Webhook of Predictive Dialer Agents Status Changes
    • Create a New WorkFlow Task
      POST
    • Obtain the List of Workflow Templates
      GET
    • Add lists to an workflow task
      POST
    • Update the List Info of Workflow Task
      POST
    • Cancel the processes for a specific list
      POST
    • Notification of Call Completion in Workflow (Debt Collection/Marketing/E-commerce)
      POST
    • Notification of Call Completion in Workflow(Info Check)
      POST
    • Custom API Node Data Push
      POST
    • Verify the Custom API Node Data Push
      POST
    • Stop the Workflow Task
      POST
    • Obtain the Workflow Task List
      GET
    • Obtain the Subtask List of the Workflow
      GET
    • Obtain the Outbound Task List of Workflow
      POST
    • Obtain the Outbound Task Details of Workflow(Collection/Telemarketing/E-commerce)
      POST
    • Obtain the Outbound Task Details of Workflow(Info Check)
      POST
    • Obtain Call Information and Recording Links by callee/caseid and taskid/workflow_id
      GET
    • Obtian Call Information and Recording Link by Call ID
      GET
    • Obtain All the Recordings of a Single Number in the Workflow
      GET
    • Query workflow_id using case_id/callee
      POST
    • Notification for Workflow List Completion
      POST
    • Notification of Workflow Status Change
      POST
    • Obtain the WABA Tasks List of Workflow
      GET
    • Obtain the WABA Task Details of Workflow
      GET
    • Notification of WABA Message Status Alteration in Workflow
      POST
    • Chatbot Session End Notification in Workflow
      POST
  1. Workflow

Notification of Call Completion in Workflow(Info Check)

Production
Production
POST
The integrating party should provide this URL for configuration by our side.
When the phone call for a task is completed (connected or reaching the maximum dialing attempts), whether connected or not, notify the integrating party of the call data.
For example, task1 have three numbers (number1, number2, and number3). When the task starts dialing, if number1 is connected, the callback for number1's call information should be initiated. If number2 and number3 are not connected, the system should perform the configured number of redial attempts until the call is connected or the maximum attempts are reached, and then initiate the callback.
If the provided URL encounters an exception, our system will retry at 1-minute intervals, for a maximum of 5 retries. After 5 failed attempts, no further notifications will be sent. Please respond within 10 seconds upon receiving the data and handle the data storage and subsequent logic asynchronously.
The integrating party needs to provide two parameters for configuration:
URL: The callback address.
KEY: The key used for parameter signing, with the default signature using "airudder".

Request

Header Params
Content-Type
string 
required
Default:
application/json
User-Agent
string 
optional
Default:
Airudder
Body Params application/json
workflow_id
string 
required
Workflow uniquely id.
workflow_name
string 
required
Workflow name.
nodetask_id
string 
required
Workflow node details ID, no need to follow.
nodetask_name
string 
required
Workflow node task name.
task_id
string 
required
Task ID.
task_name
string 
required
Task name.
status
enum<string> 
required
Allowed values:
createdpendingfinishedcallingcanceledpaused
created_at
string 
required
Task creation time, in account's time zone.
repeat_interval
integer 
required
Repeated call time interval, measured in minutes.
repeat_number
integer 
required
Number of repeated call attempts.
robot_hash
string 
required
Robot hash ID.
robot_method
string 
required
Type of robot used.
sip_line
string 
required
Name of the line used.
schedule_start_time
string 
required
Estimated start time of the task, in account's time zone.
schedule_end_time
string 
required
Estimated end time of the task, in account's time zone.
details
array [object {22}] 
required
1.This is an array structure because concurrent phone calls are made, and there may be cases where phone calls start and end at the same time. Here, notifications will be aggregated. Please refer to the example below.
2.Time zone is in account's time zone.
id
integer 
required
Phone details ID, no need to follow
callee
string 
required
Called party number.
result
enum<string> 
required
Allowed values:
createdpendingfinishedcancelledfailed
result_label
string 
required
Intent Labels, different robots have different intent labels.
duration
integer 
required
Duration of the phone call, measured in seconds.
hangup_type
enum<string> 
required
Hangup Category, initial value is ByRobot.
Allowed values:
ByCalleeByRobotCanceled
ring_type
enum<string> 
required
Ring Category, initial value is null.
Allowed values:
busycantuseholdlineswitchoffoutofareaunregisterwrongnumnotmatchnormalnull
question_answer
array [object {10}] 
required
NerSlots
object 
optional
Slot key and value information for the call. (This field varies by country/region. If you need more information, please contact us.)
robot_hash
string 
required
The Robot hash id of the robot use in the call
call_id
string 
required
A unique ID for each call
call_times
integer 
required
Number of calls, which counts the number of dialed call before it is picked up.
call_start_time
string 
required
User connected time, excluding ringing time, in account's time zone.
call_end_time
string 
required
End the call time, in account's time zone.
ring_time
integer 
required
Ring duration of the call. (This field varies by country/region. If you need more information, please contact us.)
talk_round
integer 
required
Conversation rounds. (This field varies by country/region. If you need more information, please contact us.)
redail_call
array [object {8}] 
optional
Specific information on redialing within the rounds for the call. (This field varies by country, please contact us if needed.)
intention_description
string 
optional
Intent description, different robots have different intent descriptions. (This field varies by country/region. If you need more information, please contact us.)
EventLabel
object 
optional
Event labels hit during the call. (This field varies by country, please contact us if needed.)
caller_number
string 
optional
Caller's phone number for the call. (This field varies by country/region. If you need more information, please contact us.)
CaseID
string 
required
The unique id of the customer.
Variables
object 
required
Custom variables
Example
{
  "workflow_id": "8e364f6729exxxxxxxxxx5c2d9b2a2c2",
  "workflow_name": "test_wf_call_webhook3",
  "nodetask_id": "5e4e48c5a8axxxxxxxxxxb4ac4b8",
  "nodetask_name": "Voicebot Call1_67554d",
  "task_id": "ea617807492xxxxxxxxxx09c11650",
  "task_name": "wf_test_wf_call_webhook_Voicebot Call1_d01cb6",
  "status": "calling",
  "created_at": "2024-03-11 13:19:52",
  "repeat_interval": 0,
  "repeat_number": 3,
  "robot_hash": "a37e555fxxxxxxxxxxca7ac3575d8",
  "robot_method": "single",
  "sip_line": "CH_SOFTPHONE_Lyntest_HK_LINE",
  "schedule_start_time": "2024-03-11 13:21:27",
  "schedule_end_time": "2024-03-11 13:52:52",
  "details": [
    {
      "id": 2124875281,
      "callee": "+8618xxxxx721",
      "result": "finished",
      "result_label": "E",
      "duration": 43,
      "hangup_type": "ByCallee",
      "ring_type": "normal",
      "question_answer": [
        {
          "question_name": "Q0",
          "answer": "/",
          "answer_text": "",
          "status": "Completed",
          "answer_text_slot": "-",
          "var": "-",
          "verification_results": "-",
          "question_content": "\\u610f\\u613f\\u786e\\u8ba4 Willingness Check",
          "question_type": "whether",
          "whether_answer": "Hangup"
        },
        {
          "question_name": "Q1",
          "answer": "/",
          "answer_text": "",
          "status": "Skip",
          "answer_text_slot": "-",
          "var": "-",
          "verification_results": "-",
          "question_content": "\\u59d3\\u540d\\u786e\\u8ba4 NameCheck",
          "question_type": "whether",
          "whether_answer": "Skip"
        },
        {
          "question_name": "Q2",
          "answer": "/",
          "answer_text": "",
          "status": "Skip",
          "answer_text_slot": "-",
          "var": "-",
          "verification_results": "-",
          "question_content": "\\u8d37\\u6b3e\\u4eba\\u786e\\u8ba4 BorrowerCheck",
          "question_type": "whether",
          "whether_answer": "Skip"
        },
        {
          "question_name": "Q3",
          "answer": "/",
          "answer_text": "",
          "status": "Skip",
          "answer_text_slot": "/",
          "var": "200",
          "verification_results": "/",
          "question_content": "CURP\\u6838\\u9a8c CURP Verification",
          "question_type": "open",
          "whether_answer": "Skip"
        },
        {
          "question_name": "Q3N",
          "answer": "/",
          "answer_text": "",
          "status": "Skip",
          "answer_text_slot": "/",
          "var": "200",
          "verification_results": "/",
          "question_content": "CURP\\u518d\\u6b21\\u6838\\u9a8c CURP Reverification",
          "question_type": "open",
          "whether_answer": "Skip"
        },
        {
          "question_name": "Q4",
          "answer": "/",
          "answer_text": "",
          "status": "Skip",
          "answer_text_slot": "/",
          "var": "1101",
          "verification_results": "/",
          "question_content": "\\u751f\\u65e5\\u6838\\u9a8c DoB Verification",
          "question_type": "open",
          "whether_answer": "Skip"
        },
        {
          "question_name": "Q4N",
          "answer": "/",
          "answer_text": "",
          "status": "Skip",
          "answer_text_slot": "/",
          "var": "1101",
          "verification_results": "/",
          "question_content": "\\u751f\\u65e5\\u518d\\u6b21\\u6838\\u9a8c DoB Reverification",
          "question_type": "open",
          "whether_answer": "Skip"
        },
        {
          "question_name": "Q5",
          "answer": "/",
          "answer_text": "",
          "status": "Skip",
          "answer_text_slot": "/",
          "var": "200",
          "verification_results": "/",
          "question_content": "CURP2\\u4f4d\\u6838\\u9a8c CURP Verification for 2 character",
          "question_type": "open",
          "whether_answer": "Skip"
        }
      ],
      "NerSlots": {
        "PaymentMethod": "Transfer",
        "PaymentTime": "Time_0"
      },
      "robot_hash": "a37e555fxxxxxxxxxxa7ac3575d8",
      "call_id": "ic1689265xxxxxxxxxxfe7b7da5b5",
      "call_times": 2,
      "call_start_time": "2024-03-11 13:24:29",
      "call_end_time": "2024-03-11 13:25:12",
      "ring_time": 2,
      "talk_round": 3,
      "redail_call": [
        {
          "call_id": "icea62exxxxxxxxxx70982a5c2f7",
          "call_start_time": "2024-03-11 13:23:34",
          "ring_type": "normal",
          "ring_time": 3,
          "hangup_type": "ByCallee",
          "result_label": "F",
          "callee_number": "+861xxxxxxxxxx5721",
          "caller_number": "+95xxxxxxxxxx088"
        }
      ],
      "intention_description": "No Answer",
      "EventLabel": {
        "A0": "A0",
        "Correct_Person": "identity_correct_person",
        "Request_Installment": "action_item_request_installment"
      },
      "caller_number": "+95xxxxxxxxxx088",
      "CaseID": "",
      "Variables": {
        "DoB": "1101",
        "CURP": "200",
        "name": "lyn",
        "gender": "male"
      }
    }
  ]
}

Request samples

Shell
JavaScript
Java
Swift
Go
PHP
Python
HTTP
C
C#
Objective-C
Ruby
OCaml
Dart
R
Request Request Example
Shell
JavaScript
Java
Swift
curl --location --request POST 'The integrating party should provide this URL for configuration by our side.' \
--header 'User-Agent: Airudder' \
--header 'Content-Type: application/json' \
--data-raw '{
  "workflow_id": "8e364f6729exxxxxxxxxx5c2d9b2a2c2",
  "workflow_name": "test_wf_call_webhook3",
  "nodetask_id": "5e4e48c5a8axxxxxxxxxxb4ac4b8",
  "nodetask_name": "Voicebot Call1_67554d",
  "task_id": "ea617807492xxxxxxxxxx09c11650",
  "task_name": "wf_test_wf_call_webhook_Voicebot Call1_d01cb6",
  "status": "calling",
  "created_at": "2024-03-11 13:19:52",
  "repeat_interval": 0,
  "repeat_number": 3,
  "robot_hash": "a37e555fxxxxxxxxxxca7ac3575d8",
  "robot_method": "single",
  "sip_line": "CH_SOFTPHONE_Lyntest_HK_LINE",
  "schedule_start_time": "2024-03-11 13:21:27",
  "schedule_end_time": "2024-03-11 13:52:52",
  "details": [
    {
      "id": 2124875281,
      "callee": "+8618xxxxx721",
      "result": "finished",
      "result_label": "E",
      "duration": 43,
      "hangup_type": "ByCallee",
      "ring_type": "normal",
      "question_answer": [
        {
          "question_name": "Q0",
          "answer": "/",
          "answer_text": "",
          "status": "Completed",
          "answer_text_slot": "-",
          "var": "-",
          "verification_results": "-",
          "question_content": "\\u610f\\u613f\\u786e\\u8ba4 Willingness Check",
          "question_type": "whether",
          "whether_answer": "Hangup"
        },
        {
          "question_name": "Q1",
          "answer": "/",
          "answer_text": "",
          "status": "Skip",
          "answer_text_slot": "-",
          "var": "-",
          "verification_results": "-",
          "question_content": "\\u59d3\\u540d\\u786e\\u8ba4 NameCheck",
          "question_type": "whether",
          "whether_answer": "Skip"
        },
        {
          "question_name": "Q2",
          "answer": "/",
          "answer_text": "",
          "status": "Skip",
          "answer_text_slot": "-",
          "var": "-",
          "verification_results": "-",
          "question_content": "\\u8d37\\u6b3e\\u4eba\\u786e\\u8ba4 BorrowerCheck",
          "question_type": "whether",
          "whether_answer": "Skip"
        },
        {
          "question_name": "Q3",
          "answer": "/",
          "answer_text": "",
          "status": "Skip",
          "answer_text_slot": "/",
          "var": "200",
          "verification_results": "/",
          "question_content": "CURP\\u6838\\u9a8c CURP Verification",
          "question_type": "open",
          "whether_answer": "Skip"
        },
        {
          "question_name": "Q3N",
          "answer": "/",
          "answer_text": "",
          "status": "Skip",
          "answer_text_slot": "/",
          "var": "200",
          "verification_results": "/",
          "question_content": "CURP\\u518d\\u6b21\\u6838\\u9a8c CURP Reverification",
          "question_type": "open",
          "whether_answer": "Skip"
        },
        {
          "question_name": "Q4",
          "answer": "/",
          "answer_text": "",
          "status": "Skip",
          "answer_text_slot": "/",
          "var": "1101",
          "verification_results": "/",
          "question_content": "\\u751f\\u65e5\\u6838\\u9a8c DoB Verification",
          "question_type": "open",
          "whether_answer": "Skip"
        },
        {
          "question_name": "Q4N",
          "answer": "/",
          "answer_text": "",
          "status": "Skip",
          "answer_text_slot": "/",
          "var": "1101",
          "verification_results": "/",
          "question_content": "\\u751f\\u65e5\\u518d\\u6b21\\u6838\\u9a8c DoB Reverification",
          "question_type": "open",
          "whether_answer": "Skip"
        },
        {
          "question_name": "Q5",
          "answer": "/",
          "answer_text": "",
          "status": "Skip",
          "answer_text_slot": "/",
          "var": "200",
          "verification_results": "/",
          "question_content": "CURP2\\u4f4d\\u6838\\u9a8c CURP Verification for 2 character",
          "question_type": "open",
          "whether_answer": "Skip"
        }
      ],
      "NerSlots": {
        "PaymentMethod": "Transfer",
        "PaymentTime": "Time_0"
      },
      "robot_hash": "a37e555fxxxxxxxxxxa7ac3575d8",
      "call_id": "ic1689265xxxxxxxxxxfe7b7da5b5",
      "call_times": 2,
      "call_start_time": "2024-03-11 13:24:29",
      "call_end_time": "2024-03-11 13:25:12",
      "ring_time": 2,
      "talk_round": 3,
      "redail_call": [
        {
          "call_id": "icea62exxxxxxxxxx70982a5c2f7",
          "call_start_time": "2024-03-11 13:23:34",
          "ring_type": "normal",
          "ring_time": 3,
          "hangup_type": "ByCallee",
          "result_label": "F",
          "callee_number": "+861xxxxxxxxxx5721",
          "caller_number": "+95xxxxxxxxxx088"
        }
      ],
      "intention_description": "No Answer",
      "EventLabel": {
        "A0": "A0",
        "Correct_Person": "identity_correct_person",
        "Request_Installment": "action_item_request_installment"
      },
      "caller_number": "+95xxxxxxxxxx088",
      "CaseID": "",
      "Variables": {
        "DoB": "1101",
        "CURP": "200",
        "name": "lyn",
        "gender": "male"
      }
    }
  ]
}'

Responses

🟢200success
application/json
Body
object {0}
Example
{}
Modified at 2025-03-18 07:08:05
Previous
Notification of Call Completion in Workflow (Debt Collection/Marketing/E-commerce)
Next
Custom API Node Data Push
Built with