Blackbell Webhooks API

Easily automate your workflows by integrating Blackbell webhooks to third party softwares.

David Brahka avatar
Written by David Brahka
Updated over a week ago

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

email

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 

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"}

Did this answer your question?