BlabberJax REST APIs and Webhooks Integration
REST APIs
The REST APIs below allow you to manage nearly all facts of how you manage your content schedule. Combined with our powerful webhooks engine, you can customize your content engine to meet your extensibility needs. See below for API specifications for each service which you can access.
Service | API Docs | Purpose |
---|---|---|
Content Scheduler | Create and update projects, documents, content schedule, keywords, and prompt chains. | |
Content Publisher | Manage and publish to webhook connections, CMS connections, and social connections | |
Web Crawler | Ingest sitemap for website, run text analysis and embeddings generation, and check the status of jobs related to website ingestion and analysis. |
Webhooks
Webhooks can be configured on the BlabberJax Content Scheduler page in the BlabberJax workflow engine. You can use webhooks to push events to external systems whenever a document is in a specific state.
To create a new webhook, you can click here.
Enter a name for the webhook and which project the webhook should be used for.
Next, enter a URL for the webhook to POST to, starting with https://.
If your webhook requires authorization (sent via the Authorization) header, then enter the exact authorization header value in the Authorization Header Value textbox.
Last, select which conditions should trigger this webhook. Conditions represent the ‘status’ of an article and follow the https://blabberjax.atlassian.net/wiki/x/AQCFGQ state machine. For example, if you want to call your webhook every time an article is in the state ‘pending content’ then select the condition “PENDING_CONTENT.” You may select any number of conditions to trigger the webhook, just make sure your webhook logic handles the different article states independently.
Last, click on ‘Save and Test Connection’ to immediately call your webhook with dummy data. If the test succeeds, then click on ‘Save.’ Otherwise, edit the webhook settings and try again.
Important Notes About Webhook Specifications
Your webhook must accept and respond with the content type “application/json.”
Your webhook must listen to POST requests.
Your webhook must handle that the same event could be triggered multiple times (i.e. idempotency).
The body of all requests to your webhook will look like the following:
{
"requestId" : "string",
"condition" : "PLANNED" | "PENDING_CONTENT" | "PENDING_APPROVAL" | "REJECTED" | "PREPUBLISHED" | "PUBLISHED" | "ACCEPTED" | "ERROR",
"document" : { ... } //matches `Document` schema on https://schedule.blabberjax.com/schedule/swagger/index.html
}