Setting up Webhooks
Use Webhooks to receive notifications about events that happen in your Rinkel account. For example, you can receive a notification when a call is made to one of your Rinkel numbers, or when a call is answered.
Rinkel will send a HTTP POST request to the URL you specify in the Webhook configuration. The request will contain a JSON payload with information about the event that happened. This url:
- must be HTTPS
- must be reachable from the public internet
- must be able to handle HTTP POST requests
- must respond with a HTTP 200 OK status code within 2 seconds
Webhooks are only available in the Expert plan.
Setup in the My Rinkel interface
To start using Webhooks, follow these steps:
- Log into My Rinkel and go to the Webphone page
- Click on the
Settings
icon in the top bar and go toIntegrations
- Click on any of the Events: (
incoming call
,outgoing call
,call start
,call end
,call insights
) - Enter the URL of the endpoint you want to receive the Webhook events on and click the
Test
button
We will send a test Webhook event to the URL you specified. If the test was successful, you will see a green checkmark. If the test failed, you will see a red cross. In that case, please check the logs of your endpoint to see what went wrong.
Select the desired
Content-Type
for the Webhook event:application/json
orapplication/x-www-form-urlencoded
.Enter a description for your Webhook (optional)
Click the
Save
button to save your Webhook configuration
Setup using the Rinkel API
You can use the Rinkel REST API to programmatically subscribe/unsubscribe from webhook events. Check the API Reference for more information.
The Rinkel REST API is now in beta. If you're keen to be part of this beta phase and explore the integration possibilities, request your API key from https://www.rinkel.com/en-nl/integrations/.
Webhook events
Incoming call
This Webhook event is triggered when a call is made to one of your Rinkel numbers. It sends a POST request to the URL you specify in the Webhook configuration with the following JSON payload:
{
"id": "1c8b83a7c690084224ec3984515bc1a2",
"datetime": "2023-06-14T13:56:24.969Z",
"to": "+31850609000",
"from": "+31850609001"
}
id
: The unique ID of the call. This ID will be the same for all Webhook events related to this call.datetime
: The date and time when the call was made.to
: The Rinkel number that was called in E.164 format.from
: The number that made the call in E.164 format, oranonymous
if the caller withheld their number.
Outgoing call
This Webhook event is triggered when a call is made from one of your Rinkel numbers. It sends a POST request to the URL you specify in the Webhook configuration with the following JSON payload:
{
"id": "1c8b83a7c690084224ec3984515bc1a2",
"datetime": "2023-06-14T13:56:24.969Z",
"to": "+31850609000",
"from": "+31850609001"
}
id
: The unique ID of the call. This ID will be the same for all Webhook events related to this call.datetime
: The date and time when the call was made.to
: The number that was called in E.164 format.from
: The Rinkel number that made the call in E.164 format.
Call start
This Webhook event is triggered when an incoming or outgoing call is answered. It sends a POST request to the URL you specify in the Webhook configuration with the following JSON payload:
{
"id": "1c8b83a7c690084224ec3984515bc1a2",
"datetime": "2023-06-14T13:56:24.969Z",
"answeredBy": "[email protected]",
"choice": "1"
}
id
: The unique ID of the call. This ID will be the same for all Webhook events related to this call.datetime
: The date and time when the call was answered.answeredBy
: The e-mail address of the user that answered the call.choice
: The choice that was made by the user in the voice menu, if applicable. This will benull
if the Rinkel number has no voice menu.
Call end
This Webhook event is triggered when an incoming or outgoing call is hung up. It sends a POST request to the URL you specify in the Webhook configuration with the following JSON payload:
{
"id": "1c8b83a7c690084224ec3984515bc1a2",
"datetime": "2023-06-14T13:56:24.969Z",
"cause": "ANSWERED"
}
id
: The unique ID of the call. This ID will be the same for all Webhook events related to this call.datetime
: The date and time when the call was hung up.cause
: The reason why the call was hung up. This will be one of the following values:UNANSWERED
- The call was not answered.ANSWERED
- The call was answered.BLACKLISTED
- The call was blocked by the blacklist.VOICEMAIL
- The call was sent to voicemail.CALLCENTER
- The call was sent to our answering service.OUTSIDE_OPERATION_TIMES
- The call was made out of your operation times. Only applicable if you have operation times configured.
Call insights
This Webhook event is triggered when AI Insights have been generated for the call. It sends a POST request to the URL you specify in the Webhook configuration with the following JSON payload:
{
"id": "1c8b83a7c690084224ec3984515bc1a2",
"sentiment": "POSITIVE",
"topics": ["sales", "support"],
"summary": "This is a summary of the call."
}
id
: The unique ID of the call. This ID will be the same for all Webhook events related to this call.sentiment
: The sentiment of the call, eitherPOSITIVE
,NEUTRAL
orNEGATIVE
.topics
: The topics that were discussed during the call. This will be an array of strings with a maximum of 4 values. Could be a single word or a small phrase.summary
: The summary of the call.
Retry mechanism
If the Webhook endpoint does not respond with a 200
HTTP status code, the Webhook will be retried once every hour for 24 hours. If the Webhook is still not successful after 24 hours, the Webhook will be disabled and you will receive an e-mail notification.