Skip to content

Favro Support #222

@cybtachyon

Description

@cybtachyon

Favro https://www.favro.com currently does not support Discord (which sends a 400 error if the message body is missing). Favro disables the webhook based on the error response, as it does not send a message body for test webhook activations.

If I'm doing a first pass, it's probably just adding a messaged to the Ping event and globbing together a text string from the fields for the rest of them.

Second pass might be translating lane colors to Discord message decorations, but that would be down the line.

Creating an issue just in case someone else was working on Favro support, since I only have time to work on this about every 3 weekends.

https://favro.com/developer/#webhook-responses

Ping

{
    "payloadId": "ZnvqwjdLh1wmbnEj6vOfHhv8ARY=",
    "action": "ping",
    "hookId": "67973f72db34592d8fc96c48",
    "hook": {
        "url" : "https://yourserver.com/webhookfromfavro"
    }
}

Card created

{
    "payloadId": "ZnvqwjdLh1wmbnEj6vOfHhv8ARY=",
    "action": "created",
    "card": {
        "cardId": "67973f72db34592d8fc96c48",
        "organizationId": "zk4CJpg5uozhL4R2W",
        "widgetCommonId": "ff440e8f358c08513a86c8d6",
        "columnId": "b4d8c6283d9d58f9a39108e7",
        "name": "This is a card",
        "createdByUserId": "p3tB8yWgtaMnDYdzW",
        "createdAt": "2023-02-06T12:46:45.945+00:00",
        "customFields": [{
            "customFieldId": "kj4qQzhLMJ73dybBR",
            "total": 50400000,
            "reports": {
                "XTdS5bP6qX9Ta3rwt": {
                    "reportId": "29ed6478b55f90d91c5f4727",
                    "createdAt": "2016-01-13T00:00:00.000Z",
                    "value": 50400000,
                    "description": "Timesheet report description"
                }
            }
        }],
        "archived": false,
        "timeOnBoard": {
            "time": 72000000,
            "isStopped": true
        },
        "timeOnColumns": {
            "b4d8c6283d9d58f9a39108e7": 54000000,
            "as4d566783d9d58onuf8538f": 18000000
        }
    },
    "column": {
        "columnId": "67973f72db34592d8fc96c48",
        "organizationId": "zk4CJpg5uozhL4R2W",
        "widgetCommonId": "ff440e8f358c08513a86c8d6",
        "name": "This is a column",
        "position": 0,
        "cardCount": 3,
        "timeSum": 609111150,
        "estimationSum": 22
    },
    "sender": {
        "userId": "67973f72db34592d8fc96c48",
        "name": "Favro user",
        "email": "[email protected]",
        "organizationRole": "administrator"
    },
    "widget": {
        "widgetCommonId": "67973f72db34592d8fc96c48",
        "organizationId": "zk4CJpg5uozhL4R2W",
        "collectionIds": [
            "8cc57b1d8a218fa639c8a0fa"
        ],
        "name": "This is a widget",
        "type": "board",
        "color": "purple",
        "ownerRole": "fullMembers",
        "editRole": "guests",
        "archived": false,
        "lanes": [
            {
                "laneId": "1dd704ad8cee4eed2b89f917",
                "name": "Not main lane"
            },
            {
                "laneId": "4360cdf5be3d42b679e74422",
                "name": "Main lane"
            }
        ],
        "columns": [
            {
                "columnId": "1360cdf5be3d42b679e74422",
                "name": "To do",
                "color": "gray"
            },
            {
                "columnId": "2360cdf5be3d42b679e74422",
                "name": "Doing",
                "color": "orange"
            },
            {
                "columnId": "3360cdf5be3d42b679e74422",
                "name": "Done",
                "color": "green"
            }
        ]
    }
}

Card committed event

{
    "payloadId": "ZnvqwjdLh1wmbnEj6vOfHhv8ARY=",
    "action": "committed",
    "card": {
        "cardId": "67973f72db34592d8fc96c48",
        "organizationId": "zk4CJpg5uozhL4R2W",
        "widgetCommonId": "ff440e8f358c08513a86c8d6",
        "columnId": "b4d8c6283d9d58f9a39108e7",
        "name": "This is a card",
        "createdByUserId": "p3tB8yWgtaMnDYdzW",
        "createdAt": "2023-02-06T12:46:45.945+00:00",
        "customFields": [{
            "customFieldId": "kj4qQzhLMJ73dybBR",
            "total": 50400000,
            "reports": {
                "XTdS5bP6qX9Ta3rwt": {
                    "reportId": "29ed6478b55f90d91c5f4727",
                    "createdAt": "2016-01-13T00:00:00.000Z",
                    "value": 50400000,
                    "description": "Timesheet report description"
                }
            }
        }],
        "archived": false,
        "timeOnBoard": {
            "time": 72000000,
            "isStopped": true
        },
        "timeOnColumns": {
            "b4d8c6283d9d58f9a39108e7": 54000000,
            "as4d566783d9d58onuf8538f": 18000000
        }
    },
    "column": {
        "columnId": "67973f72db34592d8fc96c48",
        "organizationId": "zk4CJpg5uozhL4R2W",
        "widgetCommonId": "ff440e8f358c08513a86c8d6",
        "name": "This is a column",
        "position": 0,
        "cardCount": 3,
        "timeSum": 609111150,
        "estimationSum": 22
    },
    "sender": {
        "userId": "67973f72db34592d8fc96c48",
        "name": "Favro user",
        "email": "[email protected]",
        "organizationRole": "administrator"
    },
    "widget": {
        "widgetCommonId": "67973f72db34592d8fc96c48",
        "organizationId": "zk4CJpg5uozhL4R2W",
        "collectionIds": [
            "8cc57b1d8a218fa639c8a0fa"
        ],
        "name": "This is a widget",
        "type": "board",
        "color": "purple",
        "ownerRole": "fullMembers",
        "editRole": "guests",
        "archived": false,
        "lanes": [
            {
                "laneId": "1dd704ad8cee4eed2b89f917",
                "name": "Not main lane"
            },
            {
                "laneId": "4360cdf5be3d42b679e74422",
                "name": "Main lane"
            }
        ],
        "columns": [
            {
                "columnId": "1360cdf5be3d42b679e74422",
                "name": "To do",
                "color": "gray"
            },
            {
                "columnId": "2360cdf5be3d42b679e74422",
                "name": "Doing",
                "color": "orange"
            },
            {
                "columnId": "3360cdf5be3d42b679e74422",
                "name": "Done",
                "color": "green"
            }
        ]
    },
    "sourceWidget": {
        "widgetCommonId": "67973f72db34592d8fc96c48",
        "organizationId": "zk4CJpg5uozhL4R2W",
        "collectionIds": [
            "8cc57b1d8a218fa639c8a0fa"
        ],
        "name": "This is a widget",
        "type": "board",
        "color": "purple",
        "ownerRole": "fullMembers",
        "editRole": "guests",
        "archived": false,
        "lanes": [
            {
                laneId: "1dd704ad8cee4eed2b89f917",
                name: "Not main lane"
            },
            {
                laneId: "4360cdf5be3d42b679e74422",
                name: "Main lane"
            }
        ],
        "columns": [
            {
                "columnId": "1360cdf5be3d42b679e74422",
                "name": "To do",
                "color": "gray"
            },
            {
                "columnId": "2360cdf5be3d42b679e74422",
                "name": "Doing",
                "color": "orange"
            },
            {
                "columnId": "3360cdf5be3d42b679e74422",
                "name": "Done",
                "color": "green"
            }
        ]
    }
}

Card moved

{
    "payloadId": "ZnvqwjdLh1wmbnEj6vOfHhv8ARY=",
    "action": "moved",
    "card": {
        "cardId": "67973f72db34592d8fc96c48",
        "organizationId": "zk4CJpg5uozhL4R2W",
        "widgetCommonId": "ff440e8f358c08513a86c8d6",
        "columnId": "b4d8c6283d9d58f9a39108e7",
        "name": "This is a card",
        "createdByUserId": "p3tB8yWgtaMnDYdzW",
        "createdAt": "2023-02-06T12:46:45.945+00:00",
        "customFields": [{
            "customFieldId": "kj4qQzhLMJ73dybBR",
            "total": 50400000,
            "reports": {
                "XTdS5bP6qX9Ta3rwt": {
                    "reportId": "29ed6478b55f90d91c5f4727",
                    "createdAt": "2016-01-13T00:00:00.000Z",
                    "value": 50400000,
                    "description": "Timesheet report description"
                }
            }
        }],
        "archived": false,
        "timeOnBoard": {
            "time": 72000000,
            "isStopped": true
        },
        "timeOnColumns": {
            "b4d8c6283d9d58f9a39108e7": 54000000,
            "as4d566783d9d58onuf8538f": 18000000
        }
    },
    "column": {
        "columnId": "67973f72db34592d8fc96c48",
        "organizationId": "zk4CJpg5uozhL4R2W",
        "widgetCommonId": "ff440e8f358c08513a86c8d6",
        "name": "This is a column",
        "position": 0,
        "cardCount": 3,
        "timeSum": 609111150,
        "estimationSum": 22
    },
    "sender": {
        "userId": "67973f72db34592d8fc96c48",
        "name": "Favro user",
        "email": "[email protected]",
        "organizationRole": "administrator"
    },
    "sourceColumn": {
        "columnId": "67973f72db34592d8fc96c48",
        "organizationId": "zk4CJpg5uozhL4R2W",
        "widgetCommonId": "ff440e8f358c08513a86c8d6",
        "name": "This is a column",
        "position": 0,
        "cardCount": 3,
        "timeSum": 609111150,
        "estimationSum": 22
    },
    "widget": {
        "widgetCommonId": "67973f72db34592d8fc96c48",
        "organizationId": "zk4CJpg5uozhL4R2W",
        "collectionIds": [
            "8cc57b1d8a218fa639c8a0fa"
        ],
        "name": "This is a widget",
        "type": "board",
        "color": "purple",
        "ownerRole": "fullMembers",
        "editRole": "guests",
        "archived": false,
        "lanes": [
            {
                laneId: "1dd704ad8cee4eed2b89f917",
                name: "Not main lane"
            },
            {
                laneId: "4360cdf5be3d42b679e74422",
                name: "Main lane"
            }
        ],
        "columns": [
            {
                "columnId": "1360cdf5be3d42b679e74422",
                "name": "To do",
                "color": "gray"
            },
            {
                "columnId": "2360cdf5be3d42b679e74422",
                "name": "Doing",
                "color": "orange"
            },
            {
                "columnId": "3360cdf5be3d42b679e74422",
                "name": "Done",
                "color": "green"
            }
        ]
    }
}

Card updated

{
    "payloadId": "ZnvqwjdLh1wmbnEj6vOfHhv8ARY=",
    "action": "updated",
    "card": {
        "cardId": "67973f72db34592d8fc96c48",
        "organizationId": "zk4CJpg5uozhL4R2W",
        "widgetCommonId": "ff440e8f358c08513a86c8d6",
        "columnId": "b4d8c6283d9d58f9a39108e7",
        "name": "This is a card",
        "createdByUserId": "p3tB8yWgtaMnDYdzW",
        "createdAt": "2023-02-06T12:46:45.945+00:00",
        "customFields": [{
            "customFieldId": "kj4qQzhLMJ73dybBR",
            "total": 50400000,
            "reports": {
                "XTdS5bP6qX9Ta3rwt": {
                    "reportId": "29ed6478b55f90d91c5f4727",
                    "createdAt": "2016-01-13T00:00:00.000Z",
                    "value": 50400000,
                    "description": "Timesheet report description"
                }
            }
        }],
        "archived": false,
        "timeOnBoard": {
            "time": 72000000,
            "isStopped": true
        },
        "timeOnColumns": {
            "b4d8c6283d9d58f9a39108e7": 54000000,
            "as4d566783d9d58onuf8538f": 18000000
        }
    },
    "sender": {
        "userId": "67973f72db34592d8fc96c48",
        "name": "Favro user",
        "email": "[email protected]",
        "organizationRole": "administrator"
    }
}

Card deleted

{
    "payloadId": "ZnvqwjdLh1wmbnEj6vOfHhv8ARY=",
    "action": "deleted",
    "card": {
        "cardId": "67973f72db34592d8fc96c48",
        "organizationId": "zk4CJpg5uozhL4R2W",
        "widgetCommonId": "ff440e8f358c08513a86c8d6",
        "columnId": "b4d8c6283d9d58f9a39108e7",
        "name": "This is a card",
        "createdByUserId": "p3tB8yWgtaMnDYdzW",
        "createdAt": "2023-02-06T12:46:45.945+00:00",
        "customFields": [{
            "customFieldId": "kj4qQzhLMJ73dybBR",
            "total": 50400000,
            "reports": {
                "XTdS5bP6qX9Ta3rwt": {
                    "reportId": "29ed6478b55f90d91c5f4727",
                    "createdAt": "2016-01-13T00:00:00.000Z",
                    "value": 50400000,
                    "description": "Timesheet report description"
                }
            }
        }],
        "archived": false,
        "timeOnBoard": {
            "time": 72000000,
            "isStopped": true
        },
        "timeOnColumns": {
            "b4d8c6283d9d58f9a39108e7": 54000000,
            "as4d566783d9d58onuf8538f": 18000000
        }
    },
    "sender": {
        "userId": "67973f72db34592d8fc96c48",
        "name": "Favro user",
        "email": "[email protected]",
        "organizationRole": "administrator"
    }
}

Comment created

{
    "payloadId": "ZnvqwjdLh1wmbnEj6vOfHhv8ARY=",
    "action": "created",
    "card": {
        "cardId": "67973f72db34592d8fc96c48",
        "organizationId": "zk4CJpg5uozhL4R2W",
        "widgetCommonId": "ff440e8f358c08513a86c8d6",
        "columnId": "b4d8c6283d9d58f9a39108e7",
        "name": "This is a card",
        "createdByUserId": "p3tB8yWgtaMnDYdzW",
        "createdAt": "2023-02-06T12:46:45.945+00:00",
        "customFields": [{
            "customFieldId": "kj4qQzhLMJ73dybBR",
            "total": 50400000,
            "reports": {
                "XTdS5bP6qX9Ta3rwt": {
                    "reportId": "29ed6478b55f90d91c5f4727",
                    "createdAt": "2016-01-13T00:00:00.000Z",
                    "value": 50400000,
                    "description": "Timesheet report description"
                }
            }
        }],
        "archived": false,
        "timeOnBoard": {
            "time": 72000000,
            "isStopped": true
        },
        "timeOnColumns": {
            "b4d8c6283d9d58f9a39108e7": 54000000,
            "as4d566783d9d58onuf8538f": 18000000
        }
    },
    "comment": {
        "commentId": "67973f72db34592d8fc96c48",
        "cardCommonId": "ff440e8f358c08513a86c8d6",
        "organizationId": "zk4CJpg5uozhL4R2W",
        "userId": "b4d8c6283d9d58f9a39108e7",
        "comment": "This is a comment",
        "created": "2016-04-18T11:18:42.901Z",
        "lastUpdated": "2016-04-18T11:18:42.901Z"
    },
    "sender": {
        "userId": "67973f72db34592d8fc96c48",
        "name": "Favro user",
        "email": "[email protected]",
        "organizationRole": "administrator"
    }
}

Comment updated

{
    "payloadId": "ZnvqwjdLh1wmbnEj6vOfHhv8ARY=",
    "action": "updated",
    "card": {
        "cardId": "67973f72db34592d8fc96c48",
        "organizationId": "zk4CJpg5uozhL4R2W",
        "widgetCommonId": "ff440e8f358c08513a86c8d6",
        "columnId": "b4d8c6283d9d58f9a39108e7",
        "name": "This is a card",
        "createdByUserId": "p3tB8yWgtaMnDYdzW",
        "createdAt": "2023-02-06T12:46:45.945+00:00",
        "customFields": [{
            "customFieldId": "kj4qQzhLMJ73dybBR",
            "total": 50400000,
            "reports": {
                "XTdS5bP6qX9Ta3rwt": {
                    "reportId": "29ed6478b55f90d91c5f4727",
                    "createdAt": "2016-01-13T00:00:00.000Z",
                    "value": 50400000,
                    "description": "Timesheet report description"
                }
            }
        }],
        "archived": false,
        "timeOnBoard": {
            "time": 72000000,
            "isStopped": true
        },
        "timeOnColumns": {
            "b4d8c6283d9d58f9a39108e7": 54000000,
            "as4d566783d9d58onuf8538f": 18000000
        }
    },
    "comment": {
        "commentId": "67973f72db34592d8fc96c48",
        "cardCommonId": "ff440e8f358c08513a86c8d6",
        "organizationId": "zk4CJpg5uozhL4R2W",
        "userId": "b4d8c6283d9d58f9a39108e7",
        "comment": "This is a comment",
        "created": "2016-04-18T11:18:42.901Z",
        "lastUpdated": "2016-04-18T11:18:42.901Z"
    },
    "sender": {
        "userId": "67973f72db34592d8fc96c48",
        "name": "Favro user",
        "email": "[email protected]",
        "organizationRole": "administrator"
    }
}

Comment deleted

{
    "payloadId": "ZnvqwjdLh1wmbnEj6vOfHhv8ARY=",
    "action": "deleted",
    "card": {
        "cardId": "67973f72db34592d8fc96c48",
        "organizationId": "zk4CJpg5uozhL4R2W",
        "widgetCommonId": "ff440e8f358c08513a86c8d6",
        "columnId": "b4d8c6283d9d58f9a39108e7",
        "name": "This is a card",
        "createdByUserId": "p3tB8yWgtaMnDYdzW",
        "createdAt": "2023-02-06T12:46:45.945+00:00",
        "customFields": [{
            "customFieldId": "kj4qQzhLMJ73dybBR",
            "total": 50400000,
            "reports": {
                "XTdS5bP6qX9Ta3rwt": {
                    "reportId": "29ed6478b55f90d91c5f4727",
                    "createdAt": "2016-01-13T00:00:00.000Z",
                    "value": 50400000,
                    "description": "Timesheet report description"
                }
            }
        }],
        "archived": false,
        "timeOnBoard": {
            "time": 72000000,
            "isStopped": true
        },
        "timeOnColumns": {
            "b4d8c6283d9d58f9a39108e7": 54000000,
            "as4d566783d9d58onuf8538f": 18000000
        }
    },
    "comment": {
        "commentId": "67973f72db34592d8fc96c48",
        "cardCommonId": "ff440e8f358c08513a86c8d6",
        "organizationId": "zk4CJpg5uozhL4R2W",
        "userId": "b4d8c6283d9d58f9a39108e7",
        "comment": "This is a comment",
        "created": "2016-04-18T11:18:42.901Z",
        "lastUpdated": "2016-04-18T11:18:42.901Z"
    },
    "sender": {
        "userId": "67973f72db34592d8fc96c48",
        "name": "Favro user",
        "email": "[email protected]",
        "organizationRole": "administrator"
    }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions