To ensure that the requests you're getting at your webhook endpoint are actually coming from ProductPlan, ProductPlan populates a X-PRODUCTPLAN-WEBHOOK-TOKEN
header if the webhook is configured with a token.
Use the tables below to view details about fields that may be contained in the payload.
Field | Description |
---|---|
container | Whether or not this bar is a container. |
created_at | Date and time the bar was first created. |
custom_dropdown_fields | Array of custom dropdown fields created in ProductPlan. ID and value of the field provided. Custom dropdown fields consist of team or company level single select fields, multi-select fields, and any associated objectives. |
custom_text_fields | Array of custom text fields created in ProductPlan. ID and value of the field provided. |
deleted | Whether or not this bar is deleted. |
ends_on | Date for which work associated with the bar is to end. |
id | The ID of the bar. |
lane | The lane assigned to the bar. ID and value of the lane provided. |
legend | The legend assigned to the bar. ID, value, and label of the legend provided. |
name | Title of the bar. |
parked | Whether or not this bar is parked. |
parent | Container of the bar. ID and name of the container provided. |
roadmap | Related roadmap resource, to which the bar belongs. ID and name of the roadmap provided. |
starts_on | Date for which work associated with the bar is to begin. |
tags | Array of keywords and terms associated with the bar. |
updated_at | Date and time the bar was last updated. |
Example bar_create payload:
{
"actor": {
"name": "name",
"email": "[email protected]"
},
"webhook_created": "YYYY-MM-DD HH:MM:SS UTC",
"event": "bar_create",
"data": [
{
"id": 1,
"name": "New Bar",
"container": false,
"deleted": false,
"parked": false,
"starts_on": "YYYY-MM-DD",
"ends_on": "YYYY-MM-DD",
"created_at": "YYYY-MM-DDTHH:MM:SS.SSS±HH:MM",
"updated_at": "YYYY-MM-DDTHH:MM:SS.SSS±HH:MM",
"parent": {
"id": 2,
"name": "New Container"
},
"lane": {
"id": 1,
"value": "Lane 1"
},
"legend": {
"id": 2,
"value": "Goal 1",
"label": "Strategic Importance"
},
"roadmap": {
"id": 3,
"name": "Awesome Roadmap"
},
"custom_text_fields": [
{
"label": "Custom Text Field",
"value": "Product"
},
{
"label": "Custom Text Field 2",
"value": "Plan"
}
],
"custom_dropdown_fields": [
{
"label": "Super Cool Dropdown",
"value": "Label 2"
}
],
"tags": [
{
"name": "demo"
},
{
"name": "sprint"
}
],
},
{
"id": 2,
"name": "New Container",
"container": true,
"deleted": false,
"parked": false,
"starts_on": "YYYY-MM-DD",
"ends_on": "YYYY-MM-DD",
"created_at": "YYYY-MM-DDTHH:MM:SS.SSS±HH:MM",
"updated_at": "YYYY-MM-DDTHH:MM:SS.SSS±HH:MM",
"lane": {
"id": 1,
"value": "Lane 2"
},
"legend": {
"id": 2,
"value": "Goal 1",
"label": "Strategic Importance"
},
"roadmap": {
"id": 3,
"name": "Awesome Roadmap"
}
}
]
}
As shown above, you should expect to receive a payload containing the actor's name and email, the event, and all the data associated with the bars created in an array of objects.