Blackbell webhooks are sent for the following events :
New order
Order status update
New rating about order
About Blackbell Webhooks:
Full information about Blackbell webhooks is via https://www.blackbellapp.com/api/i/swagger
You can use https://editor.swagger.io/ to view in a human readable format
Example:
Customer submits this Blackbell form:
In Blackbell UI it will look like: ( click to enlarge )
The webhook sent will look like:
{
"id": 25782,
"name": "Book a class",
"money_cost": "$40.00",
"status": "placed",
"app_name": "app115991",
"supplier_name": "app115991",
"marketplace_name": null,
"visitor_name": "John Doe",
"visitor_email": "john.doe@gmail.com",
"scheduled_at": "16 June 2019 10:00am",
"request_items": [
{
"id": 26300,
"name": "Book a class",
"money_cost": "$40.00",
"comment": "Looking forward to the class!",
"coupon_code": "",
"request_feature_item_groups": [
{
"id": 16322,
"name": "About you",
"request_feature_items": [
{
"id": 29440,
"name": "Sign to confirm",
"money_cost": "$0.00",
"input_type": "signature",
"value": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgMzAwIDMwMCIgd2lkdGg9IjMwMCIgaGVpZ2h0PSIzMDAiPjxwYXRoIGQ9Ik0gOTIuMDAwLDE2Ni41MDAgQyA5MS41MDAsMTY5LjUwMCA5MS4yMzIsMTY5LjQ3OCA5MS4wMDAsMTcyLjUwMCIgc3Ryb2tlLXdpZHRoPSI1LjM2NSIgc3Ryb2tlPSJibGFjayIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSA5MS4wMDAsMTcyLjUwMCBDIDkwLjczMiwxNzUuOTc4IDg5LjY0NCwxNzYuNTYyIDkxLjAwMCwxNzkuNTAwIiBzdHJva2Utd2lkdGg9IjQuMjU5IiBzdHJva2U9ImJsYWNrIiBmaWxsPSJub25lIiBzdHJva2UtbGluZWNhcD0icm91bmQiPjwvcGF0aD48cGF0aCBkPSJNIDkxLjAwMCwxNzkuNTAwIEMgOTIuNjQ0LDE4My4wNjIgOTMuMTcxLDE4NC41MDEgOTcuMDAwLDE4NS41MDAiIHN0cm9rZS13aWR0aD0iMy44MzMiIHN0cm9rZT0iYmxhY2siIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gOTcuMDAwLDE4NS41MDAgQyAxMDQuNjcxLDE4Ny41MDEgMTA1LjU5MSwxODYuNTA5IDExNC4wMDAsMTg1LjUwMCIgc3Ryb2tlLXdpZHRoPSIzLjA1NyIgc3Ryb2tlPSJibGFjayIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAxMTQuMDAwLDE4NS41MDAgQyAxMzAuNTkxLDE4My41MDkgMTMyLjE0NSwxODYuNDA0IDE0Ny4wMDAsMTc5LjUwMCIgc3Ryb2tlLXdpZHRoPSIyLjA2OCIgc3Ryb2tlPSJibGFjayIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAxNDcuMDAwLDE3OS41MDAgQyAxNjcuNjQ1LDE2OS45MDQgMTY3LjUyOSwxNjcuNzU2IDE4NS4wMDAsMTUyLjUwMCIgc3Ryb2tlLXdpZHRoPSIxLjYzNyIgc3Ryb2tlPSJibGFjayIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAxODUuMDAwLDE1Mi41MDAgQyAyMDMuMDI5LDEzNi43NTYgMjA2LjM3MCwxMzcuOTYxIDIxOC4wMDAsMTE3LjUwMCIgc3Ryb2tlLXdpZHRoPSIxLjQ2NyIgc3Ryb2tlPSJibGFjayIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAyMTguMDAwLDExNy41MDAgQyAyMzMuMzcwLDkwLjQ2MSAyMzkuMDAwLDgwLjA1MCAyMzkuMDAwLDU3LjUwMCIgc3Ryb2tlLXdpZHRoPSIyLjIzNyIgc3Ryb2tlPSJibGFjayIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAyMzkuMDAwLDU3LjUwMCBDIDIzOS4wMDAsNTAuMDUwIDIyNy45NDcsNTUuMjg5IDIxOC4wMDAsNTcuNTAwIiBzdHJva2Utd2lkdGg9IjIuOTgxIiBzdHJva2U9ImJsYWNrIiBmaWxsPSJub25lIiBzdHJva2UtbGluZWNhcD0icm91bmQiPjwvcGF0aD48cGF0aCBkPSJNIDIxOC4wMDAsNTcuNTAwIEMgMjA5Ljk0Nyw1OS4yODkgMjEwLjE1MCw2MC45MjQgMjAzLjAwMCw2NS41MDAiIHN0cm9rZS13aWR0aD0iMi43OTkiIHN0cm9rZT0iYmxhY2siIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjAzLjAwMCw2NS41MDAgQyAxODUuMTUwLDc2LjkyNCAxODUuMDI0LDc2Ljg2MSAxNjguMDAwLDg5LjUwMCIgc3Ryb2tlLXdpZHRoPSIxLjg0NCIgc3Ryb2tlPSJibGFjayIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAxNjguMDAwLDg5LjUwMCBDIDE1Mi4wMjQsMTAxLjM2MSAxNTIuNzMwLDEwMi4zMDEgMTM3LjAwMCwxMTQuNTAwIiBzdHJva2Utd2lkdGg9IjEuNzI4IiBzdHJva2U9ImJsYWNrIiBmaWxsPSJub25lIiBzdHJva2UtbGluZWNhcD0icm91bmQiPjwvcGF0aD48cGF0aCBkPSJNIDEzNy4wMDAsMTE0LjUwMCBDIDEyOC4yMzAsMTIxLjMwMSAxMjcuOTUyLDEyMC45MzUgMTE5LjAwMCwxMjcuNTAwIiBzdHJva2Utd2lkdGg9IjIuMTI0IiBzdHJva2U9ImJsYWNrIiBmaWxsPSJub25lIiBzdHJva2UtbGluZWNhcD0icm91bmQiPjwvcGF0aD48cGF0aCBkPSJNIDExOS4wMDAsMTI3LjUwMCBDIDExMi45NTIsMTMxLjkzNSAxMTMuMDU1LDEzMi4wNzUgMTA3LjAwMCwxMzYuNTAwIiBzdHJva2Utd2lkdGg9IjIuNzA3IiBzdHJva2U9ImJsYWNrIiBmaWxsPSJub25lIiBzdHJva2UtbGluZWNhcD0icm91bmQiPjwvcGF0aD48cGF0aCBkPSJNIDEwNy4wMDAsMTM2LjUwMCBDIDEwMC4wNTUsMTQxLjU3NSAxMDAuMzI4LDE0Mi4yNTcgOTMuMDAwLDE0Ni41MDAiIHN0cm9rZS13aWR0aD0iMi43MTAiIHN0cm9rZT0iYmxhY2siIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gOTMuMDAwLDE0Ni41MDAgQyA5MC44MjgsMTQ3Ljc1NyA4OC42MTgsMTQ4LjczNiA4OC4wMDAsMTQ3LjUwMCIgc3Ryb2tlLXdpZHRoPSIzLjkzMSIgc3Ryb2tlPSJibGFjayIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSA4OC4wMDAsMTQ3LjUwMCBDIDg3LjExOCwxNDUuNzM2IDg4LjMxMSwxNDMuNjM2IDkwLjAwMCwxNDAuNTAwIiBzdHJva2Utd2lkdGg9IjQuNzA5IiBzdHJva2U9ImJsYWNrIiBmaWxsPSJub25lIiBzdHJva2UtbGluZWNhcD0icm91bmQiPjwvcGF0aD48cGF0aCBkPSJNIDkwLjAwMCwxNDAuNTAwIEMgOTEuODExLDEzNy4xMzYgOTIuMDgyLDEzNy4wNTMgOTUuMDAwLDEzNC41MDAiIHN0cm9rZS13aWR0aD0iNC4xNzkiIHN0cm9rZT0iYmxhY2siIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gOTUuMDAwLDEzNC41MDAgQyAxMDAuMDgyLDEzMC4wNTMgMTAwLjI2OSwxMzAuMTIwIDEwNi4wMDAsMTI2LjUwMCIgc3Ryb2tlLXdpZHRoPSIzLjM4MSIgc3Ryb2tlPSJibGFjayIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAxMDYuMDAwLDEyNi41MDAgQyAxMDkuNzY5LDEyNC4xMjAgMTA5LjY1NSwxMjMuNDU3IDExNC4wMDAsMTIyLjUwMCIgc3Ryb2tlLXdpZHRoPSIzLjYzNiIgc3Ryb2tlPSJibGFjayIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAxMTQuMDAwLDEyMi41MDAgQyAxMzkuMTU1LDExNi45NTcgMTM5LjM4NiwxMTYuNzAyIDE2NS4wMDAsMTEzLjUwMCIgc3Ryb2tlLXdpZHRoPSIxLjc3MCIgc3Ryb2tlPSJibGFjayIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAxNjUuMDAwLDExMy41MDAgQyAxNzUuMzg2LDExMi4yMDIgMTc1Ljc2NSwxMTEuNjk0IDE4Ni4wMDAsMTEzLjUwMCIgc3Ryb2tlLXdpZHRoPSIyLjIzNCIgc3Ryb2tlPSJibGFjayIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAxODYuMDAwLDExMy41MDAgQyAyMDEuMjY1LDExNi4xOTQgMjAxLjk0MSwxMTUuOTU1IDIxNi4wMDAsMTIyLjUwMCIgc3Ryb2tlLXdpZHRoPSIxLjk5MSIgc3Ryb2tlPSJibGFjayIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAyMTYuMDAwLDEyMi41MDAgQyAyMzAuOTQxLDEyOS40NTUgMjMwLjQzOCwxMzAuOTA4IDI0NC4wMDAsMTQwLjUwMCIgc3Ryb2tlLXdpZHRoPSIxLjkyNyIgc3Ryb2tlPSJibGFjayIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAyNDQuMDAwLDE0MC41MDAgQyAyNTAuOTM4LDE0NS40MDggMjUwLjYyNCwxNDUuODYwIDI1Ny4wMDAsMTUxLjUwMCIgc3Ryb2tlLXdpZHRoPSIyLjQ3MSIgc3Ryb2tlPSJibGFjayIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAyNTcuMDAwLDE1MS41MDAgQyAyNjMuNjI0LDE1Ny4zNjAgMjYzLjQyNiwxNTcuNTgzIDI3MC4wMDAsMTYzLjUwMCIgc3Ryb2tlLXdpZHRoPSIyLjY2NCIgc3Ryb2tlPSJibGFjayIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAyNzAuMDAwLDE2My41MDAgQyAyNzMuNDI2LDE2Ni41ODMgMjc0LjEwNiwxNjYuMDI3IDI3Ny4wMDAsMTY5LjUwMCIgc3Ryb2tlLXdpZHRoPSIzLjIzOSIgc3Ryb2tlPSJibGFjayIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PC9zdmc+",
"request_feature_item_attachments": []
},
{
"id": 29439,
"name": "Photo of you",
"money_cost": "$0.00",
"input_type": "image attachment",
"value": null,
"request_feature_item_attachments": [
{
"id": 1494,
"default_url": "https://attachments-bbserver2.s3.eu-central-1.amazonaws.com/establishment/app115991/order_attachment/1494-Screen%20Shot%202019-06-13%20at%201.30.03%20PM.png"
}
]
}
]
},
{
"id": 16321,
"name": "How much time would you like the class to last?",
"request_feature_items": [
{
"id": 29438,
"name": "1 hour",
"money_cost": "$0.00",
"input_type": "checkbox",
"value": "Yes",
"request_feature_item_attachments": []
}
]
},
{
"id": 16320,
"name": "How many will you be?",
"request_feature_items": [
{
"id": 29437,
"name": "Adults",
"money_cost": "$40.00",
"input_type": "number",
"value": 2,
"request_feature_item_attachments": []
}
]
},
{
"id": 16319,
"name": "What is your level?",
"request_feature_items": [
{
"id": 29436,
"name": "Intermediate",
"money_cost": "$0.00",
"input_type": "checkbox",
"value": "Yes",
"request_feature_item_attachments": []
}
]
}
]
}
]
}
A webhook will include information about the order including:
Order ID
Order status
Customer name
Customer Email
Order Price
All order options ( see below )
Scheduled Time
Event duration
Services ID
Delivery Location
Star Rating
Customer Review
All order options:
The following options types may be included:
yes / no
checkbox
quantity picker
dropdown
text field
file upload
address
date
phone
signature
number
CRM data
textarea
location
related calendar event date, time and duration
Note: The options yes / no, checkbox, quantity picker dropdown can also include as metadata :
Time selection : how much time was increased by selection
Slot selection: how many slot this selection implies for the booking
How to receive Blackbell webhooks:
Step 1: Get your API key
All API calls require API-KEY request header. To get your API key, navigate to your Settings > Integrations
Step 2: Configure webhooks destination
Configure where the webhook should post data for each new order or updated order status.
curl -X POST "https://YOURDOMAIN.blackbellapp.com/api/i/new_service_requests/web_hooks" -H "accept: application/json" -H "api-key: YOURAPIKEY" -H "Content-Type: application/json" -d "{ \"destination_url\": \"YOURDESTINATION\" }"
copy it:
curl -X POST "https://YOURDOMAIN.blackbellapp.com/api/i/new_service_requests/web_hooks" -H "accept: application/json" -H "api-key: YOURAPIKEY" -H "Content-Type: application/json" -d "{ \"destination_url\": \"YOURDESTINATION\" }"
YOURDOMAIN is your custom domain
YOURAPIKEY is your API key
YOURDESTINATION is your destination. For easy testing, you can get one from https://webhook.site
example with some values of a demo app:
curl -X POST "https://app12365123.blackbellapp.com/api/i/new_service_requests/web_hooks" -H "accept: application/json" -H "api-key: 3b3811b03ea54674d39282374234b4d9577802f" -H "Content-Type: application/json" -d "{ \"destination_url\": \"https://webhook.site/88d6d213-26a9-429234d-9234eab-9458ac7b231f\" }"
copy it:
curl -X POST "https://app12365123.blackbellapp.com/api/i/new_service_requests/web_hooks" -H "accept: application/json" -H "api-key: 3b3811b03ea54674d39282374234b4d9577802f" -H "Content-Type: application/json" -d "{ \"destination_url\": \"https://webhook.site/88d6d213-26a9-429234d-9234eab-9458ac7b231f\" }"
Step 3: Make sure you get good response
Your response should be like
{"id":5,"establishment_id":3877,"event_type":"new_service_requests","destination_url":"https://webhook.site/88d6d213-26a9-429234d-9234eab-9458ac7b231f","created_at":"2019-06-13T08:46:16.500Z","updated_at":"2019-06-13T08:46:16.500Z"}
copy it:
{"id":5,"establishment_id":3877,"event_type":"new_service_requests","destination_url":"https://webhook.site/88d6d213-26a9-429234d-9234eab-9458ac7b231f","created_at":"2019-06-13T08:46:16.500Z","updated_at":"2019-06-13T08:46:16.500Z"}