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. Only fields that have been updated will appear in the payload
Field | Description |
---|---|
comments | Array of comments associated with the bar. |
container | Whether or not this bar is a container. |
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. |
description | In-depth explanation of what the bar represents. |
effort | The amount of effort associated with the bar. |
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. |
notes | Additional information to be shared. |
parent | Container of the bar. ID and name of the container provided. |
parked | Whether or not this bar is parked. |
percent_done | Determines the shading of the bar to indicate progress. Null is fully saturated. 0-100 displays a gradual shading until fully saturated. |
starts_on | Date for which work associated with the bar is to begin. |
strategic_value | Why this bar is important. |
tags | Array of keywords and terms associated with the bar. |
updated_at | Date and time the bar was last updated. |
Example bar_update payload:
{
"actor": {
"name": "name",
"email": "[email protected]"
},
"webhook_created": "YYYY-MM-DD HH:MM:SS UTC",
"event": "bar_update",
"data": [
{
"id": 1,
"updated_at": "YYYY-MM-DDTHH:MM:SS.SSS±HH:MM",
"name": "New Name",
"description": "New Description",
"container": false,
"parked": false,
"strategic_value": "This is the value",
"notes": "Time to sail.",
"percent_done": 26,
"starts_on": "YYYY-MM-DD",
"ends_on": "YYYY-MM-DD",
"effort": 1,
"comments": [
{
"body": "This new bar is looking great"
}
],
"lane": [
{
"id": 2,
"value": "Lane 1"
}
],
"legend": [
{
"id": 3,
"value": "Goal 1",
"label": "Super Cool Legend"
}
],
"tags": [
{
"name": "demo"
},
{
"name": "sprint"
}
],
"custom_text_fields": [
{
"label": "Custom Text Field",
"value": "New text"
}
],
"custom_dropdown_fields": [
{
"label": "Custom Dropdown Field",
"value": "Label 3"
},
{
"label": "MultiSelect Field Test",
"value": [
"Label 2",
"Label 3"
]
}
]
}
]
}
As shown above, you should expect to receive a payload containing the actor's name and email, the event, and the specific data objects that had changes associated with the bars updated.