Webhook tasks

Workflow plans can be configured to POST data to Webhook endpoints, either your organization's custom infrastructure, or other cloud apps that provide Incoming Webhook support.

Overview

Workflows can include Webhook tasks, that once available, will send an out-bound contextual payload to a pre-configured URL. These tasks can be included in any of your Workflow plans (onboarding, off-boarding, vendor workflows, etc).

Tasks in a workflow are available if it is past their "Start after" date, or when all the tasks they depend upon have been completed, unblocking them from execution. This allows you to more carefully time when your Webhook tasks can fire. Otherwise, they will fire by-default the moment your Workflow is launched.

Adding a Webhook Task to a Plan

To use Webhook Tasks, you must configure a Webhook integration. If you have done so, please see the Webhook Integration instructions.

From any Workflow Plan, you may add a Webhook Task (note: if you haven't yet configured a Webhook Integration, you'll be asked to set one up first. Learn how to create an Outbound Webhook here)

A Webhook Task needs only be told which particular named Webhook you wish to send a payload to. You may then choose to configure which other tasks in the plan block the Webhook task - it will only execute after those tasks are completed. Additionally, you can specify a "Start after" date, anchored around a workflow-relevant event. The Webhook task will not execute before this date.

Blissfully's Webhook tasks can be used with Zapier or with custom code to trigger actions in other applications as a part of any of Blissfully's workflow types.

Payload Format (v1)

Webhook Tasks will send an HTTPPOST request with a JSON body at the moment of execution.

post
Webhook Task - Execute

https://webhook-integration-url/path
A Webhook Task will send the following request with a JSON body at the moment of execution. The status code your Webhook URL responds with determines how Blissfully
Request
Response
Request
Headers
X-Signature
optional
string
If the Webhook being posted too has a Secret configured, this header will contain a hash value confirming Blissfully produced the payload
Body Parameters
task
required
object
Key information concerning the task, and the workflow it belongs to.
action
required
string
The action being taken on the entity described by the payload
entity
required
string
The type of Blissfully entity the payload describes
version
required
string
The payload version
Response
200: OK
If your endpoint returns this status, the Workflow Task will successfully be marked "Completed". (Any other status will place the task in a state of error, notifying all interested parties of the problem by email)

Example payloads:

Onboarding
Offboarding
Vendor
Simple
Onboarding
{
"version": "v1",
"entity": "task",
"action": "execute",
"task": {
"id": "abcd-1234",
"dependencies": [],
"workflow": {
"type": "Onboarding",
"title": "Onboarding Saasha Bliss",
"id": "xyz-098",
"details": {
"subject": {
"onboardee": {
"id": "efgh-5678",
"primaryEmail": "sbliss@blissfully.com",
"fullName": "Saasha Bliss"
}
}
}
}
}
}
Offboarding
{
"version": "v1",
"entity": "task",
"action": "execute",
"task": {
"id": "abcd-1234",
"dependencies": [],
"workflow": {
"type": "Offboarding",
"title": "Offboarding Saasha Bliss",
"id": "xyz-098",
"details": {
"subject": {
"offboardee": {
"id": "efgh-5678",
"primaryEmail": "sbliss@blissfully.com",
"fullName": "Saasha Bliss"
}
}
}
}
}
}
Vendor
{
"version": "v1",
"entity": "task",
"action": "execute",
"task": {
"id": "abcd-1234",
"dependencies": [],
"workflow": {
"type": "Vendor Approval", //Vendor Renewal, Vendor Termination
"title": "Vendor Approval for AcmeCorp",
"id": "xyz-098",
"details": {
"subject": {
"vendor": {
"id": "efgh-5678",
"name": "AcmeCorp"
}
}
}
}
}
}
Simple
{
"version": "v1",
"entity": "task",
"action": "execute",
"task": {
"id": "abcd-1234",
"dependencies": [],
"workflow": {
"type": "Simple", //Vendor Renewal, Vendor Termination
"title": "My Simple Workflow",
"id": "xyz-098"
}
}
}