Webhook
Overview
Webhooks, a robust feature offered by VoIPBIN, empower users to receive real-time event data for their calls and associated resources directly on their servers. By establishing custom endpoints, users can seamlessly configure their servers to receive timely notifications and updates related to VoIPBIN resources, thereby enhancing control, customization, and real-time visibility within their communication workflows.
Notification Mechanism
Webhook events act as notifications sent by VoIPBIN, triggering when specific events or actions unfold within the system, such as call events, message events, or changes to resources like queues or agents. Configured webhook endpoints receive these events, ensuring users promptly receive pertinent data related to their VoIPBIN resources.
Types of Webhooks
VoIPBIN tailors webhooks for each resource type, ensuring users receive granular progress and updates for various events. This resource-specific approach allows users to monitor their VoIPBIN resources with precision, obtaining notifications and data tailored to each resource type. For instance, call-specific webhook events furnish details on call status, duration, and caller ID, while message-specific events offer insights into SMS or MMS messages, including content, sender ID, and delivery status.
Custom Endpoints
To harness webhooks, users must configure custom webhook endpoints on their servers. These endpoints, serving as URLs, dictate where VoIPBIN transmits webhook events. Upon an event occurrence, VoIPBIN initiates an HTTP request to the configured endpoint, incorporating relevant data in the payload. This empowers users to process and respond to events according to their unique requirements.
Benefits of Webhooks
Webhooks deliver a range of advantages for VoIPBIN users:
Real-Time Updates: Offering immediate event notifications, webhooks keep users abreast of real-time changes to their VoIPBIN resources.
Customization: Users can tailor webhook endpoints and process data as per their specific needs, facilitating the creation of customized workflows and integrations.
Automated Actions: Webhooks enable users to automate actions based on event data, such as record updates, notifications, or the initiation of additional processes.
Enhanced Monitoring: Providing a proactive monitoring solution, webhooks empower users to track and respond promptly to changes within the VoIPBIN system, ensuring informed decision-making.
Webhook
activeflow_created
The notification message for the activeflow create.
{
"type": "activeflow_created",
"data": {
...
}
}
type: The webhook type.
data: The detail of activeflow. See detail here.
Example
{
"type": "activeflow_created",
"data": {
"id": "74ac5405-7c70-4184-9388-1c9f8f8ce25f",
"flow_id": "d157ce07-0360-4cad-9007-c8ab89fccf9c",
"customer_id": "00000000-0000-0000-0000-000000000000",
"reference_type": "call",
"reference_id": "5371e9db-d035-4db6-a8d6-0994d33e744e",
"current_action": {
"id": "00000000-0000-0000-0000-000000000001",
"next_id": "00000000-0000-0000-0000-000000000000",
"type": ""
},
"forward_action_id": "00000000-0000-0000-0000-000000000000",
"actions": [
{
"id": "df25724f-e308-4c89-9325-cf56cd09249e",
"next_id": "00000000-0000-0000-0000-000000000000",
"type": "answer"
},
{
"id": "2e7ec294-fc66-4039-8446-6590b82ed54f",
"next_id": "00000000-0000-0000-0000-000000000000",
"type": "talk",
"option": {
"text": "hello. welcome to voipbin. This is test message. Please enjoy the voipbin's service. thank you.",
"gender": "female",
"language": "en-US"
}
}
],
"tm_create": "2022-04-11 00:23:54.724620",
"tm_update": "2022-04-11 00:23:54.724620",
"tm_delete": "9999-01-01 00:00:00.000000"
}
}
activeflow_updated
The notification message for the activeflow update.
{
"type": "activeflow_updated",
"data": {
...
}
}
type: The webhook type.
data: The detail of activeflow. See detail here.
Example
{
"type": "activeflow_updated",
"data": {
"id": "74ac5405-7c70-4184-9388-1c9f8f8ce25f",
"flow_id": "d157ce07-0360-4cad-9007-c8ab89fccf9c",
"customer_id": "00000000-0000-0000-0000-000000000000",
"reference_type": "call",
"reference_id": "5371e9db-d035-4db6-a8d6-0994d33e744e",
"current_action": {
"id": "df25724f-e308-4c89-9325-cf56cd09249e",
"next_id": "00000000-0000-0000-0000-000000000000",
"type": "answer"
},
"forward_action_id": "00000000-0000-0000-0000-000000000000",
"actions": [
{
"id": "df25724f-e308-4c89-9325-cf56cd09249e",
"next_id": "00000000-0000-0000-0000-000000000000",
"type": "answer"
},
{
"id": "2e7ec294-fc66-4039-8446-6590b82ed54f",
"next_id": "00000000-0000-0000-0000-000000000000",
"type": "talk",
"option": {
"text": "hello. welcome to voipbin. This is test message. Please enjoy the voipbin's service. thank you.",
"gender": "female",
"language": "en-US"
}
}
],
"tm_create": "2022-04-11 00:23:54.724620",
"tm_update": "2022-04-11 00:23:54.840938",
"tm_delete": "9999-01-01 00:00:00.000000"
}
}
activeflow_deleted
The notification message for the activeflow delete.
{
"type": "activeflow_deleted",
"data": {
...
}
}
type: The webhook type.
data: The detail of activeflow. See detail here.
Example
{
"type": "activeflow_deleted",
"data": {
"id": "74ac5405-7c70-4184-9388-1c9f8f8ce25f",
"flow_id": "d157ce07-0360-4cad-9007-c8ab89fccf9c",
"customer_id": "00000000-0000-0000-0000-000000000000",
"reference_type": "call",
"reference_id": "5371e9db-d035-4db6-a8d6-0994d33e744e",
"current_action": {
"id": "2e7ec294-fc66-4039-8446-6590b82ed54f",
"next_id": "00000000-0000-0000-0000-000000000000",
"type": "talk",
"option": {
"text": "hello. welcome to voipbin. This is test message. Please enjoy the voipbin's service. thank you.",
"gender": "female",
"language": "en-US"
}
},
"forward_action_id": "00000000-0000-0000-0000-000000000000",
"actions": [
{
"id": "df25724f-e308-4c89-9325-cf56cd09249e",
"next_id": "00000000-0000-0000-0000-000000000000",
"type": "answer"
},
{
"id": "2e7ec294-fc66-4039-8446-6590b82ed54f",
"next_id": "00000000-0000-0000-0000-000000000000",
"type": "talk",
"option": {
"text": "hello. welcome to voipbin. This is test message. Please enjoy the voipbin's service. thank you.",
"gender": "female",
"language": "en-US"
}
}
],
"tm_create": "2022-04-11 00:23:54.724620",
"tm_update": "2022-04-11 00:23:55.134500",
"tm_delete": "9999-01-01 00:00:00.000000"
}
}
call_created
The notification message for the call create.
{
"type": "call_created",
"data": {
...
}
}
type: The webhook type.
data: The detail of call. See detail here.
Example
{
"type": "call_created",
"data": {
"id": "5371e9db-d035-4db6-a8d6-0994d33e744e",
"flow_id": "d157ce07-0360-4cad-9007-c8ab89fccf9c",
"type": "flow",
"master_call_id": "00000000-0000-0000-0000-000000000000",
"chained_call_ids": [],
"recording_id": "00000000-0000-0000-0000-000000000000",
"recording_ids": [],
"source": {
"type": "tel",
"target": "+821100000002",
"target_name": "",
"name": "",
"detail": ""
},
"destination": {
"type": "tel",
"target": "+821100000001",
"target_name": "",
"name": "",
"detail": ""
},
"status": "ringing",
"action": {
"id": "00000000-0000-0000-0000-000000000001",
"next_id": "00000000-0000-0000-0000-000000000000",
"type": ""
},
"direction": "incoming",
"hangup_by": "",
"hangup_reason": "",
"tm_create": "2022-04-11 00:23:53.636000",
"tm_update": "9999-01-01 00:00:00.000000",
"tm_progressing": "9999-01-01 00:00:00.000000",
"tm_ringing": "9999-01-01 00:00:00.000000",
"tm_hangup": "9999-01-01 00:00:00.000000"
}
}
call_ringing
The notification message for the call ringing.
{
"type": "call_ringing",
"data": {
...
}
}
type: The webhook type.
data: The detail of call. See detail here.
Example
{
"type": "call_ringing",
"data": {
"id": "ad132775-1ab2-485e-856f-72c2e383cdc6",
"flow_id": "6da52ef9-7d7d-48e4-8bca-921e7b78e47c",
"type": "flow",
"master_call_id": "1fe1356f-3f7f-4ff9-9d33-08136b38f506",
"chained_call_ids": [],
"recording_id": "00000000-0000-0000-0000-000000000000",
"recording_ids": [],
"source": {
"type": "tel",
"target": "+821021656521",
"target_name": "",
"name": "",
"detail": ""
},
"destination": {
"type": "tel",
"target": "+821021656521",
"target_name": "",
"name": "",
"detail": ""
},
"status": "ringing",
"action": {
"id": "00000000-0000-0000-0000-000000000001",
"next_id": "00000000-0000-0000-0000-000000000000",
"type": ""
},
"direction": "outgoing",
"hangup_by": "",
"hangup_reason": "",
"tm_create": "2022-03-29 15:08:01.815004",
"tm_update": "2022-03-29 15:08:03.421646",
"tm_progressing": "9999-01-01 00:00:00.000000",
"tm_ringing": "2022-03-29 15:08:03.314000",
"tm_hangup": "9999-01-01 00:00:00.000000"
}
}
call_answered
The notification message for the call answer.
{
"type": "call_answered",
"data": {
...
}
}
type: The webhook type.
data: The detail of call. See detail here.
Example
{
"type": "call_answered",
"data": {
"id": "5371e9db-d035-4db6-a8d6-0994d33e744e",
"flow_id": "d157ce07-0360-4cad-9007-c8ab89fccf9c",
"type": "flow",
"master_call_id": "00000000-0000-0000-0000-000000000000",
"chained_call_ids": [],
"recording_id": "00000000-0000-0000-0000-000000000000",
"recording_ids": [],
"source": {
"type": "tel",
"target": "+821100000002",
"target_name": "",
"name": "",
"detail": ""
},
"destination": {
"type": "tel",
"target": "+821100000001",
"target_name": "",
"name": "",
"detail": ""
},
"status": "progressing",
"action": {
"id": "df25724f-e308-4c89-9325-cf56cd09249e",
"next_id": "00000000-0000-0000-0000-000000000000",
"type": "answer",
"tm_execute": "2022-04-11 00:23:55.012416032"
},
"direction": "incoming",
"hangup_by": "",
"hangup_reason": "",
"tm_create": "2022-04-11 00:23:53.636000",
"tm_update": "2022-04-11 00:23:55.130190",
"tm_progressing": "2022-04-11 00:23:55.026000",
"tm_ringing": "9999-01-01 00:00:00.000000",
"tm_hangup": "9999-01-01 00:00:00.000000"
}
}
call_updated
The notification message for the call update.
{
"type": "call_updated",
"data": {
...
}
}
type: The webhook type.
data: The detail of call. See detail here.
Example
{
"type": "call_updated",
"data": {
"id": "bf682a17-6b3f-412c-bbac-faa81fb9ada3",
"flow_id": "70875796-0497-4ff9-acd0-e226a14495a9",
"type": "flow",
"master_call_id": "00000000-0000-0000-0000-000000000000",
"chained_call_ids": [
"a876f057-bb20-4b87-824c-d7afa3e71af5"
],
"recording_id": "00000000-0000-0000-0000-000000000000",
"recording_ids": [],
"source": {
"type": "tel",
"target": "test11",
"target_name": "",
"name": "",
"detail": ""
},
"destination": {
"type": "tel",
"target": "+821100000004",
"target_name": "",
"name": "",
"detail": ""
},
"status": "hangup",
"action": {
"id": "4aae4342-d702-4e23-9c14-64dc20d2075d",
"next_id": "00000000-0000-0000-0000-000000000000",
"type": "confbridge_join",
"option": {
"confbridge_id": "821fc304-0ed8-4e93-8a0a-c23312c062be"
},
"tm_execute": "2022-03-29 14:10:06.409155828"
},
"direction": "incoming",
"hangup_by": "remote",
"hangup_reason": "normal",
"tm_create": "2022-03-29 14:09:52.886000",
"tm_update": "2022-03-29 14:10:33.709605",
"tm_progressing": "2022-03-29 14:09:54.629000",
"tm_ringing": "9999-01-01 00:00:00.000000",
"tm_hangup": "2022-03-29 14:10:33.105000"
}
}
call_hungup
The notification message for the call hangup.
{
"type": "call_hungup",
"data": {
...
}
}
type: The webhook type.
data: The detail of call. See detail here.
Example
{
"type": "call_hungup",
"data": {
"id": "593555d2-787e-4b06-862f-407bb2e43be1",
"flow_id": "d157ce07-0360-4cad-9007-c8ab89fccf9c",
"type": "flow",
"master_call_id": "00000000-0000-0000-0000-000000000000",
"chained_call_ids": [],
"recording_id": "00000000-0000-0000-0000-000000000000",
"recording_ids": [],
"source": {
"type": "tel",
"target": "+821100000002",
"target_name": "",
"name": "",
"detail": ""
},
"destination": {
"type": "tel",
"target": "+821100000001",
"target_name": "",
"name": "",
"detail": ""
},
"status": "hangup",
"action": {
"id": "2e7ec294-fc66-4039-8446-6590b82ed54f",
"next_id": "00000000-0000-0000-0000-000000000000",
"type": "talk",
"option": {
"text": "hello. welcome to voipbin. This is test message. Please enjoy the voipbin's service. thank you.",
"gender": "female",
"language": "en-US"
},
"tm_execute": "2022-04-11 06:10:55.918010931"
},
"direction": "incoming",
"hangup_by": "remote",
"hangup_reason": "normal",
"tm_create": "2022-04-11 06:10:54.788000",
"tm_update": "2022-04-11 06:10:58.431000",
"tm_progressing": "2022-04-11 06:10:55.765000",
"tm_ringing": "9999-01-01 00:00:00.000000",
"tm_hangup": "2022-04-11 06:10:58.431000"
}
}
queue_created
Notification message for queue create.
{
"type": "queue_created",
"data": {
...
}
}
type: The webhook type.
data: The detail of call. See detail here.
queue_updated
The notification message for the queue update.
{
"type": "queue_updated",
"data": {
...
}
}
type: The webhook type.
data: The detail of call. See detail here.
queue_deleted
The notification message for the queue delete.
{
"type": "queue_deleted",
"data": {
...
}
}
type: The webhook type.
data: The detail of call. See detail here.
queuecall_created
The notification message for the queuecall create.
{
"type": "queuecall_created",
"data": {
...
}
}
type: The webhook type.
data: The detail of queuecall. See detail here.
Example
{
"type": "queuecall_created",
"data": {
"id": "c7c1e226-8c86-4b43-9606-2d5bb2059a09",
"reference_type": "call",
"reference_id": "1fe1356f-3f7f-4ff9-9d33-08136b38f506",
"status": "wait",
"service_agent_id": "00000000-0000-0000-0000-000000000000",
"tm_create": "2022-03-29 15:07:46.111715",
"tm_service": "9999-01-01 00:00:00.000000",
"tm_update": "9999-01-01 00:00:00.000000",
"tm_delete": "9999-01-01 00:00:00.000000"
}
}
queuecall_entering
Notification message for queuecall is entering to the agent’s conference room.
{
"type": "queuecall_entering",
"data": {
...
}
}
type: The webhook type.
data: The detail of queuecall. See detail here.
Example
{
"type": "queuecall_entering",
"data": {
"id": "c7c1e226-8c86-4b43-9606-2d5bb2059a09",
"reference_type": "call",
"reference_id": "1fe1356f-3f7f-4ff9-9d33-08136b38f506",
"status": "entering",
"service_agent_id": "eb1ac5c0-ff63-47e2-bcdb-5da9c336eb4b",
"tm_create": "2022-03-29 15:07:46.111715",
"tm_service": "2022-03-29 15:08:02.233858",
"tm_update": "2022-03-29 15:08:02.233858",
"tm_delete": "9999-01-01 00:00:00.000000"
}
}
queuecall_kicking
The notification message for the queuecall is being kicked.
{
"type": "queuecall_kicking",
"data": {
...
}
}
type: The webhook type.
data: The detail of queuecall. See detail here.
Example
{
"type": "queuecall_kicking",
"data": {
"id": "c7c1e226-8c86-4b43-9606-2d5bb2059a09",
"reference_type": "call",
"reference_id": "1fe1356f-3f7f-4ff9-9d33-08136b38f506",
"status": "entering",
"service_agent_id": "eb1ac5c0-ff63-47e2-bcdb-5da9c336eb4b",
"tm_create": "2022-03-29 15:07:46.111715",
"tm_service": "2022-03-29 15:08:02.233858",
"tm_update": "2022-03-29 15:08:02.233858",
"tm_delete": "9999-01-01 00:00:00.000000"
}
}
queuecall_serviced
The notification message for the queuecall is serviced.
{
"type": "queuecall_serviced",
"data": {
...
}
}
type: The webhook type.
data: The detail of queuecall. See detail here.
Example
{
"type": "queuecall_serviced",
"data": {
"id": "c7c1e226-8c86-4b43-9606-2d5bb2059a09",
"reference_type": "call",
"reference_id": "1fe1356f-3f7f-4ff9-9d33-08136b38f506",
"status": "service",
"service_agent_id": "eb1ac5c0-ff63-47e2-bcdb-5da9c336eb4b",
"tm_create": "2022-03-29 15:07:46.111715",
"tm_service": "2022-03-29 15:08:04.811442",
"tm_update": "2022-03-29 15:08:04.811442",
"tm_delete": "9999-01-01 00:00:00.000000"
}
}
queuecall_done
The notification message for the queuecall is done.
{
"type": "queuecall_done",
"data": {
...
}
}
type: The webhook type.
data: The detail of queuecall. See detail here.
Example
{
"type": "queuecall_done",
"data": {
"id": "c7c1e226-8c86-4b43-9606-2d5bb2059a09",
"reference_type": "call",
"reference_id": "1fe1356f-3f7f-4ff9-9d33-08136b38f506",
"status": "done",
"service_agent_id": "eb1ac5c0-ff63-47e2-bcdb-5da9c336eb4b",
"tm_create": "2022-03-29 15:07:46.111715",
"tm_service": "2022-03-29 15:08:04.811442",
"tm_update": "2022-03-29 15:08:25.814885",
"tm_delete": "2022-03-29 15:08:25.814885"
}
}
queuecall_abandoned
The notification message for the queuecall is abandoned.
{
"type": "queuecall_abandoned",
"data": {
...
}
}
type: The webhook type.
data: The detail of queuecall. See detail here.
agent_created
The notification message for the agent create.
{
"type": "agent_created",
"data": {
...
}
}
type: The webhook type.
data: The detail of agent. See detail here.
agent_updated
Notification message for agent update.
The notification message for the agent update.
{
"type": "agent_updated",
"data": {
...
}
}
type: The webhook type.
data: The detail of agent. See detail here.
agent_deleted
The notification message for the agent delete.
{
"type": "agent_deleted",
"data": {
...
}
}
type: The webhook type.
data: The detail of agent. See detail here.
agent_status_updated
The notification message for the agent’s status update.
{
"type": "agent_status_updated",
"data": {
...
}
}
type: The webhook type.
data: The detail of agent. See detail here.
Example
{
"type": "agent_status_updated",
"data": {
"id": "eb1ac5c0-ff63-47e2-bcdb-5da9c336eb4b",
"username": "test1",
"name": "test agent 1",
"detail": "test agent. username test1",
"ring_method": "ringall",
"status": "available",
"permission": 0,
"tag_ids": [
"d7450dda-21e0-4611-b09a-8d771c50a5e6"
],
"addresses": [
{
"type": "tel",
"target": "+821021656521",
"target_name": "",
"name": "",
"detail": ""
}
],
"tm_create": "2021-11-29 06:09:07.263846",
"tm_update": "2022-03-29 15:08:00.814900",
"tm_delete": "9999-01-01 00:00:00.000000"
}
}