As we expend our integrations ability we offer and settings the foundations for our vision to turn your monday.com account into your own personal work hub, we now offer the ability to have a webhook API connection that will allow you to improve your API integrations as the integration we already offer as part of the platform.
So what is a Webhook?
Webhook (also called a web callback or HTTP push API) is a way for an app to provide other applications with real-time information. A Webhook delivers data to other applications as it happens, meaning you get data immediately unlike typical APIs where you would need to poll for data very frequently in order to get it real-time. This makes Webhooks much more efficient for both provider and consumer. The only drawback to Webhooks is the difficulty of initially setting them up.
How to create a new Webhook
Step 1
On your board, click the "integrations" icon and look for the "Webhooks" app while adding new integration.
Once in the integration center, click on Webhook as below:
Step 2
Choose the action you want the webhook to be ״hook״ to :
Step 3
After choosing the action you need, you will need to specify the URL According to the integration that you want to get the webhooks:
From that moment on, using the webhook integration, the API you set will deliver data to other applications the moment it happens, meaning you get data immediately.
How to verify a webhook URL
The URL you specified should be of course controlled by your app, and we're verifying that by a verification request we're making while you're listing a new URL.
We will send a json POST body containing a "challenge" field, which is a random token that we expect you to return as a "challenge" field of your response json body to that request.
Here is how the "Challenge" will look like:
The verification request is a POST request to the defined URL with the following payload:
{
challenge: “3eZbrw1aBm2rZgRNFdxV2595E9CY3gmdALWMmHkvFXO7tYXAYM8P”
}
The response body should be a json object that looks the same:
{
challenge: “3eZbrw1aBm2rZgRNFdxV2595E9CY3gmdALWMmHkvFXO7tYXAYM8P”
}
How the events will look
{
type: 'create_item',
event: {
boardId: 224535,
groupId: '224132',
groupName: 'This Week',
itemId: 983678,
itemName: 'A new task',
userId: 103892
}
}
{
event: {
app: 'monday',
boardId: 224535,
changedAt: 1564587898.712963,
columnId: 'status',
columnType: 'color',
pulseId: 983678,
userId: 103892,
type: 'update_column_value',
value: {
label: {
index: 1,
text: 'Done',
style: {
border: '#00B461',
color: '#00c875',
var_name: 'green-shadow'
}
}
},
previousValue: {
label: {
index: 2,
text: 'Stuck',
style: {
border: '#CE3048',
color: '#e2445c',
var_name: 'red-shadow'
}
}
}
}
}
{
event: {
app: 'monday',
boardId: 224535,
body: '<p>update text</p>',
pulseId: 118613172,
textBody: 'update text',
userId: 103892
updateId: 1733892,
type: 'create_update'
}
}
More assistance
If you need help building custom integrations, we also have an option for paid assistance through our network of certified monday.com partners. If you're interested, please fill out this form and someone will be in touch shortly!
If you have any questions about this or anything else in this article, feel free to reach out to us at customer success at support@monday.com
Comments