New to Kestra?
Use blueprints to kickstart your first workflows.
Stop monday.com board sprawl with Kestra. List active boards monthly, flag boards missing a naming marker or description to Discord, and post an audit summary.
Work OS adoption has a failure mode: hundreds of boards nobody can attribute, named Test, Copy of Copy, or nothing at all. This blueprint runs a monthly governance sweep with io.kestra.plugin.monday.boards.Query listing every active board, a ForEach plus If pair applying a naming and description convention, and Discord reports for each violator plus a closing audit summary. The convention is deliberately simple, a required marker in the name and a non-empty description, and lives in one condition you can adapt.
list_boards (io.kestra.plugin.monday.boards.Query, fetchType: FETCH, state: ACTIVE) fetches up to 200 active boards. Each element of {{ outputs.list_boards.boards }} carries id, name, description, state, workspace_id, plus its columns and groups, and {{ outputs.list_boards.size }} carries the count.audit (io.kestra.plugin.core.flow.ForEach) iterates the boards. check_convention (io.kestra.plugin.core.flow.If) flags a board when its description is empty or its name does not contain the name_marker input; both fields are guarded with ?? so a missing field is handled predictably.flag_board posts one Discord message per violator. Nested inside the If, it reads the board via {{ fromJson(parent.taskrun.value) }}. The report goes to Discord rather than a monday.com notification because the board payload returned by boards.Query carries no owner id, and notifications.Create targets items or updates, not boards.summary posts the audit total so a clean month is still visibly audited, and the errors block posts a distinct alert when the sweep itself fails.Schedule trigger runs the audit on the first of each month at 08:00.monday.com will happily let boards multiply; it will not police them. Kestra turns the policy into code that runs on schedule, applies identically to every board, survives personnel changes, and leaves an execution history that doubles as an audit trail.
name_marker input), or adapt the condition.MONDAY_API_TOKEN: monday.com personal API v2 token, from Profile, Developers, My Access Tokens.DISCORD_WEBHOOK_URL: Discord incoming webhook URL.name_marker to your convention, for example a team tag prefix.disabled: false on the monthly trigger.io.kestra.plugin.monday.boards.Archive.workspaceIds property on boards.Query.If condition.