Skip to main content

API overview

Updated this week

The Jebbit Integrations API is a webhook service that Jebbit will provide to our customers as a way to receive real time access to user session data - which includes unique identifiers, attributes, outcomes, channel and more. It enables clients to integrate quickly as opposed to setting up a custom integration with the Jebbit integrations team. You can get setup within 48 hours!

Before you Begin

Here is the API documentation site and below are some articles on how to get started with it.


Authentication

All API interactions require a valid access token obtained from Auth0. You must request your account's Auth0 API client_id and client_secret from your Customer Success Representative.

There are four parameters that need to be included in your request to receive your Auth0 token:

Header

Value

Type

Description

client_id

your client id

string

Provided to you by Jebbit

client_secret

your client secret

string

Provided to you by Jebbit

audience

public-api

string

grant_type

client_credentials

string

Example Request:

curl -X POST "https://auth.jebbit.com/oauth/token" \ -d '{"client_id": "client_id", "client_secret": "client_secret", "audience": "public-api", "grant_type": "client_credentials"}'

Example Response:

{ "access_token":"YOUR.JWT.HERE", "scope":"read:business:abc123 read:integration write:integration", "expires_in":86400, "token_type":"Bearer" }

All generated tokens are valid for 24 hours. Please generate one token and reuse it throughout that time frame.

Making API Requests

Jebbit requires your API key to be included in all API requests to the server in a header that looks like the following: Authorization: Bearer YOUR.JWT.HERE. You must replace YOUR.JWT.HERE with your business API key.

Getting Started with the Integrations API

Once you've gone ahead and generated a JSON Web Token (JWT) as outlined in this article, you're now ready to begin exploring the Integrations API. Your Integrations API credentials are tied to your Jebbit account and all of the experiences you choose to build within that account. To view your currently authenticated Jebbit account, try the following request:

Example HTTP Request

GET /api/v1/self HTTP/1.1 Host: api.jebbx.com Authorization: Bearer <YOUR JWT>

Note: Example is using the staging endpoint. Please use the production endpoint.

Example Response

{ "data": { "id": "bTUIhsye", "type": "businesses", "attributes": { "name": "Jebbit Internal" } } }

We now know that the Jebbit Account ID that is tied to our API credentials is bTUIhsye.

Set Up the Webhook Service

To start receiving user session data, set up the webhook service by making a POST request to /api/v1/integrations. Include the necessary attributes in the request body.

Below is an example request to create a webhook service:

Example Request

POST /api/v1/integrations HTTP/1.1 Host: api.jebbx.com Content-Type: application/vnd.api+json Authorization: Bearer <YOUR JWT> Content-Length: 198{"data": { "attributes": { "endpoint": "<YOUR ENDPOINT>", "region": "us", "additional_options": { "hash_pii": false}, "is_active" : true}, "type": "integrations"}}

Note:

  • This is using the staging endpoint. Please use the production endpoint.

  • Please insert the endpoint of the service receiving our webhook where it says <YOUR ENDPOINT>

Example Response

{ "data": { "id": "L5m24mjs", "type": "integrations", "attributes": { "endpoint": "<YOUR ENDPOINT>", "include_uids": false, "region": "us", "require_opt_in": null, "created_at": "2021-12-16T17:48:14.098Z", "updated_at": "2021-12-16T17:48:14.167Z", "service_name": "webhooks_standard", "include_mapped_attributes": true, "additional_options": { "hash_pii": false }, "is_active": true, "shared_secret": "Qq6niUmvrO320lYbBGKha6cdy22Bz8BVBd" } } }

The above response contains all the details about our newly created integration including its ID, type, and attributes. The shared_secret is one of the critical payload elements for you to retrieve as this is what will be used to authenticate and transmit data between our webhook and your receiving endpoint.

Test the Webhook

After providing the endpoint system with the mutually shared_secret, you can send a test submission to validate it's working. Make a POST request to /api/v1/integrations/{integration_id}/test.

Example Request

POST /api/v1/integrations/L5m24mjs/test HTTP/1.1 Host: api.jebbx.com Authorization: Bearer <YOUR JWT> Content-Type: application/vnd.api+json Content-Length: 2{}

Example Response

["{\"data\":{\"email\":\"[email protected]\",\"test_attribute\":\"attribute_value\",\"test_sata_attribute\":[\"option 1\",\"option 4\"],\"opt_in\":\"true\",\"outcome\":\"example_outcome\"},\"event\":{\"event_number\":0}}"]

Did this answer your question?