Skip to main content

Blackbell Webhooks API

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

Written by David Brahka

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?