🪝 Webhook
Blue Webhooks is a tool that allows users to integrate and synchronize data between Blue and other apps in real-time. This feature allows users to receive HTTP requests whenever an entity (e.g. a todo) is created, updated, or deleted, without the need to write any code.
With Blue Webhooks, users can set up automated messages and updates between apps to streamline their workflow. For example, users can configure a webhook to send a message in a selected tool whenever a new todo is created in Blue.
🛠️ How to use Blue Webhooks
To get started
- Click on the top right icon of your profile
- Go to profile setting
- Underneath, you will see Webhooks BETA
Once you're on the webhooks page, you will see the create new webhooks process
- Enter the Webhooks name (i.e Google-Blue integration)
- Copy the payload URL from the tool you would like to integrate with
- Paste it to the Payload URL bar on Blue
- Select which event types you want to include and which projects you want to get data from.
Under the “Let me choose” options this is where you can customize which Event type you want to include in the process. There’s no limit here, so you can pick and choose more than 1 type of event. (Gifs)
Once you’ve made your decision, click “Create Webhooks”.
A pop-up will appear for you to copy your Secret code, save this on your notes or somewhere you can access later as it only appears once
❤️🩹 Webhooks Health
Under the list of webhooks, you will see each of your webhooks statuses.
There are two types of health statuses that your webhooks has: Healthy or unhealthy
When you activate your webhooks, you can see the graph that indicates if it's healthy or unhealthy.
If it’s red, that means the webhooks is unhealthy and our API has called a maximum of 5 times, we will send you an automatic email to let you know that the webhooks has been disabled.
From there, you will need to configure the payload URL or contact support [email protected].
If it’s green, your webhooks is healthy and active, and you will see the data sent out from Blue to the other tool.
Now you’ll see your first webhooks under the list of webhooks, and you can continue to subscribe to other tools by clicking on the “Create Webhooks” button.
If you decide to end the webhooks, you can easily turn the action off or use the red bin to delete your webhooks integration.
Webhooks Response example:
{
"event": "TODO_CREATED",
"webhook": {
"id": "clb4qaopy0000vt24mlp28v03",
"uid": "edb5b5d51dc9461a952160dbe72153b4",
"name": "Testing webhook",
"url": "https://httpdump.app/dumps/7cc66eda-8e83-4039-ba49-4c36db14d508",
"secret": "",
"status": "HEALTHY",
"enabled": true,
"metadata": {
"events": [
"TODO_CREATED",
"TODO_DELETED",
"TODO_MOVED",
"TODO_NAME_CHANGED",
"TODO_CHECKLIST_CREATED",
"TODO_CHECKLIST_NAME_CHANGED",
"TODO_CHECKLIST_DELETED",
"TODO_CHECKLIST_ITEM_CREATED",
"TODO_LIST_CREATED",
"TODO_LIST_DELETED",
"TODO_LIST_NAME_CHANGED",
"COMMENT_CREATED",
"COMMENT_DELETED",
"COMMENT_UPDATED"
],
"projectIds": [
"clakt90vu000bvt64hhffqleq",
"claulnu1y0000vtrcjurjgds4",
"clb4gay0y000qvtzs8smaays8"
]
},
"createdById": "claksl2ye0000vtas0h0ln71e",
"createdAt": "2022-12-01T07:01:25.014Z",
"updatedAt": "2022-12-01T11:23:00.661Z"
},
"currentValue": {
"id": "clb4zna6x0000vt1swuwso25f",
"uid": "11021cb836f34732b31e5ebd5dd5eb27",
"title": "GGGG",
"html": null,
"text": null,
"position": "32767.5",
"archived": false,
"done": false,
"startedAt": null,
"duedAt": null,
"timezone": null,
"createdAt": "2022-12-01T11:23:09.000Z",
"updatedAt": "2022-12-01T11:23:09.241Z",
"createdById": "claksl2ye0000vtas0h0ln71e",
"todoListId": "clakt9v5t000kvt64f563l90l",
"todoCustomFields": [],
"todoUsers": [],
"todoTags": [],
"todoList": {
"id": "clakt9v5t000kvt64f563l90l",
"uid": "df0e931e6e8f4fc2905ece9da167d2d3",
"createdAt": "2022-11-17T08:29:22.000Z",
"updatedAt": "2022-11-17T08:29:22.050Z",
"title": "ETEST",
"position": 131070,
"createdById": "claksl2ye0000vtas0h0ln71e",
"projectId": "clakt90vu000bvt64hhffqleq",
"project": {
"id": "clakt90vu000bvt64hhffqleq",
"uid": "d7db469a8908496f8e5f5e68030fe4c8",
"slug": "teest",
"name": "TEEST",
"description": "",
"archived": false,
"createdAt": "2022-11-17T08:28:43.000Z",
"updatedAt": "2022-11-17T08:28:42.811Z",
"isTemplate": false,
"isOfficialTemplate": false,
"category": "GENERAL",
"companyId": "clakt8jud0002vt64205yyj10",
"imageId": null,
"hideEmailFromRoles": null,
"company": {
"id": "clakt8jud0002vt64205yyj10",
"uid": "400eb3f8238c486caf40957618be9662",
"slug": "rogue",
"name": "Rogue",
"description": null,
"createdAt": "2022-11-17T08:28:21.000Z",
"updatedAt": "2022-11-17T08:28:20.726Z",
"freeTrialExpiredAt": "2022-12-01T08:28:15.000Z",
"freeTrialStartedAt": "2022-11-17T08:28:15.000Z",
"subscribedAt": null,
"imageId": null,
"subscriptionPlanId": "clakt8jue0003vt64e40q2prj",
"freeTrialExtendedById": null,
"freeTrialExtendedAt": null
}
}
}
}
}
<br>
Webhooks Response Example:
{
"event": "TODO_MOVED",
"webhook": {
"id": "clb4qaopy0000vt24mlp28v03",
"uid": "edb5b5d51dc9461a952160dbe72153b4",
"name": "Testing webhook",
"url": "https://httpdump.app/dumps/7cc66eda-8e83-4039-ba49-4c36db14d508",
"secret": "",
"status": "HEALTHY",
"enabled": true,
"metadata": {
"events": [
"TODO_CREATED",
"TODO_DELETED",
"TODO_MOVED",
"TODO_NAME_CHANGED",
"TODO_CHECKLIST_CREATED",
"TODO_CHECKLIST_NAME_CHANGED",
"TODO_CHECKLIST_DELETED",
"TODO_CHECKLIST_ITEM_CREATED",
"TODO_LIST_CREATED",
"TODO_LIST_DELETED",
"TODO_LIST_NAME_CHANGED",
"COMMENT_CREATED",
"COMMENT_DELETED",
"COMMENT_UPDATED"
],
"projectIds": [
"clakt90vu000bvt64hhffqleq",
"claulnu1y0000vtrcjurjgds4",
"clb4gay0y000qvtzs8smaays8"
]
},
"createdById": "claksl2ye0000vtas0h0ln71e",
"createdAt": "2022-12-01T07:01:25.014Z",
"updatedAt": "2022-12-01T11:23:00.661Z"
},
"previousValue": {
"id": "clb4zna6x0000vt1swuwso25f",
"uid": "11021cb836f34732b31e5ebd5dd5eb27",
"title": "GGGG",
"html": null,
"text": null,
"position": "32767.5",
"archived": false,
"done": false,
"startedAt": null,
"duedAt": null,
"timezone": null,
"createdAt": "2022-12-01T11:23:09.000Z",
"updatedAt": "2022-12-01T11:23:09.241Z",
"createdById": "claksl2ye0000vtas0h0ln71e",
"todoListId": "clakt9v5t000kvt64f563l90l",
"todoList": {
"id": "clakt9v5t000kvt64f563l90l",
"uid": "df0e931e6e8f4fc2905ece9da167d2d3",
"createdAt": "2022-11-17T08:29:22.000Z",
"updatedAt": "2022-11-17T08:29:22.050Z",
"title": "ETEST",
"position": "131070",
"createdById": "claksl2ye0000vtas0h0ln71e",
"projectId": "clakt90vu000bvt64hhffqleq"
}
},
"currentValue": {
"id": "clb4zna6x0000vt1swuwso25f",
"uid": "11021cb836f34732b31e5ebd5dd5eb27",
"title": "GGGG",
"html": null,
"text": null,
"position": "16383.75",
"archived": false,
"done": false,
"startedAt": null,
"duedAt": null,
"timezone": null,
"createdAt": "2022-12-01T11:23:09.000Z",
"updatedAt": "2022-12-01T11:52:13.858Z",
"createdById": "claksl2ye0000vtas0h0ln71e",
"todoListId": "clakt9pa0000fvt64ynzmp570",
"todoCustomFields": [],
"todoUsers": [],
"todoTags": [],
"todoList": {
"id": "clakt9pa0000fvt64ynzmp570",
"uid": "47a193391bdc4b34b979ff123c80273e",
"createdAt": "2022-11-17T08:29:14.000Z",
"updatedAt": "2022-11-17T08:29:14.424Z",
"title": "TEST",
"position": 65535,
"createdById": "claksl2ye0000vtas0h0ln71e",
"projectId": "clakt90vu000bvt64hhffqleq",
"project": {
"id": "clakt90vu000bvt64hhffqleq",
"uid": "d7db469a8908496f8e5f5e68030fe4c8",
"slug": "teest",
"name": "TEEST",
"description": "",
"archived": false,
"createdAt": "2022-11-17T08:28:43.000Z",
"updatedAt": "2022-11-17T08:28:42.811Z",
"isTemplate": false,
"isOfficialTemplate": false,
"category": "GENERAL",
"companyId": "clakt8jud0002vt64205yyj10",
"imageId": null,
"hideEmailFromRoles": null,
"company": {
"id": "clakt8jud0002vt64205yyj10",
"uid": "400eb3f8238c486caf40957618be9662",
"slug": "rogue",
"name": "Rogue",
"description": null,
"createdAt": "2022-11-17T08:28:21.000Z",
"updatedAt": "2022-11-17T08:28:20.726Z",
"freeTrialExpiredAt": "2022-12-01T08:28:15.000Z",
"freeTrialStartedAt": "2022-11-17T08:28:15.000Z",
"subscribedAt": null,
"imageId": null,
"subscriptionPlanId": "clakt8jue0003vt64e40q2prj",
"freeTrialExtendedById": null,
"freeTrialExtendedAt": null
}
}
}
}
}
<br>
Check signature
Node.js example:
const crypto = require('crypto');
const key = 'secret'; // from the webhook object
const body = { ...webhookResponse }
const hash = crypto.createHmac('sha256', key).update(body);
const signature = hash.digest('hex');
<br>
More example in other language: https://github.com/danharper/hmac-examples
Webhook status update email:
🔌 Zapier integration Example
To connect with Zapier, you will need a Zapier account once you have already signup
- Click to create a zap!
- Choose your trigger "Webhooks by Zapier"
- Choose your event , in this Zapier we will select to catch a hook.
- Click "Test" and copy the URL webhooks to Blue payload URL
At Blue
- Set your Webhooks Title
- Paste your Webhooks URL
- Choose the Event that you wan to include and select your projects
- Click to create Webhooks ( 👋 don't forget to save your secret key!)
Once Webhooks is created now choose which app you would like to send data to out of Blue!
In this example, we will go with Google Sheets
- Start by connecting your Google sheet account to Zapier
- Once it is authorized, you can start sending data out of Blue
- By selecting which rows or columns you want to update or choose based on your preferences.
- Click "Test" and instantly, you will see the result on your Google sheet!
🔌 Pabbly integration Example
To connect with Pabbly, you will need a Pabbly account once you have already signup
- Click to create a new workflow!
- Choose your trigger "Webhooks"
- Copy the Webhooks URL and paste it to Blue!
At Blue
- Set your Webhooks Title
- Paste your Webhooks URL
- Choose the Event that you wan to include and select your projects
- Click to create Webhooks ( 👋 don't forget to save your secret key!)
Once Webhooks is created now choose which app you would like to send data to out of Blue!
In this example, we will go with Google Sheets
- Start by connecting your Google sheet account to Pabbly
- Enter the Row number you would like the new data from Blue
- Click "Test" and instantly, you will see the result on your Google sheet!