π Bug Report
Describe the bug
In card.moved webhook payloads, the numeric IDs in data.list.id and changes.listId.from/to
are inconsistent β they appear to come from two different ID sequences, making it impossible
to reliably map list IDs to list names.
To Reproduce
- Configure a webhook for
card.moved events on any board
- Move a card from In Progress to Review
- Observe the payload β
data.list.id and changes.listId.to have different values for the same destination list
Example payload (moving In Progress β Review):
{
"event": "card.moved",
"data": {
"list": {
"id": "6",
"name": "Review"
},
"changes": {
"listId": {
"from": 5,
"to": 6
}
}
}
}
Then moving Review β Done:
{
"event": "card.moved",
"data": {
"list": {
"id": "5",
"name": "Done"
},
"changes": {
"listId": {
"from": 6,
"to": 5
}
}
}
}
data.list.id = 5 maps to "Done" here, but changes.listId.from = 5 in the previous payload referred to "In Progress".
Expected behavior
data.list.id should be consistent with the IDs used in changes.listId.from/to so webhook
consumers can reliably resolve list names from IDs.
Suggested fix β include list names in the changes object:
"changes": {
"listId": {
"from": { "id": 5, "name": "In Progress" },
"to": { "id": 6, "name": "Review" }
}
}
Screenshots
N/A
Environment:
- OS: Linux (self-hosted)
- Browser: N/A (webhook consumer)
- Node version: N/A
- App version/commit: 0.5.6
Additional context
This makes it impossible to build webhook integrations (e.g. Rocket.Chat, Slack notifications)
that show meaningful list names for the source list in card.moved events.
The only reliable field is data.list.name for the destination list.
π Bug Report
Describe the bug
In
card.movedwebhook payloads, the numeric IDs indata.list.idandchanges.listId.from/toare inconsistent β they appear to come from two different ID sequences, making it impossible
to reliably map list IDs to list names.
To Reproduce
card.movedevents on any boarddata.list.idandchanges.listId.tohave different values for the same destination listExample payload (moving In Progress β Review):
{ "event": "card.moved", "data": { "list": { "id": "6", "name": "Review" }, "changes": { "listId": { "from": 5, "to": 6 } } } }Then moving Review β Done:
{ "event": "card.moved", "data": { "list": { "id": "5", "name": "Done" }, "changes": { "listId": { "from": 6, "to": 5 } } } }data.list.id = 5maps to"Done"here, butchanges.listId.from = 5in the previous payload referred to"In Progress".Expected behavior
data.list.idshould be consistent with the IDs used inchanges.listId.from/toso webhookconsumers can reliably resolve list names from IDs.
Suggested fix β include list names in the
changesobject:Screenshots
N/A
Environment:
Additional context
This makes it impossible to build webhook integrations (e.g. Rocket.Chat, Slack notifications)
that show meaningful list names for the source list in
card.movedevents.The only reliable field is
data.list.namefor the destination list.