Query icon
ForEach icon
If icon
DiscordIncomingWebhook icon
Schedule icon

Audit monday.com Boards Monthly Against a Naming and Description Convention

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.

Categories
Business

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.

How it works

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. A disabled-by-default Schedule trigger runs the audit on the first of each month at 08:00.

What you get

  • A monthly, automatic answer to which boards violate your conventions, instead of a quarterly manual archaeology session.
  • Per-violator reports with board id and workspace id, ready to act on.
  • A closing summary proving the audit ran even when nothing was flagged.
  • A one-line condition that encodes the whole policy, easy to review and change.

Who it's for

  • Workspace admins responsible for keeping a growing monday.com account navigable.
  • IT and ops teams enforcing naming standards across departments.
  • Compliance-minded organizations that need evidence their conventions are checked.

Why orchestrate this with Kestra

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.

Prerequisites

  • A monday.com token that can read the boards you want audited.
  • A naming convention expressible as a required substring (the name_marker input), or adapt the condition.
  • A Discord incoming webhook for reports and failure alerts.

Secrets

  • MONDAY_API_TOKEN: monday.com personal API v2 token, from Profile, Developers, My Access Tokens.
  • DISCORD_WEBHOOK_URL: Discord incoming webhook URL.

Quick start

  1. Add the two secrets to your Kestra namespace.
  2. Set name_marker to your convention, for example a team tag prefix.
  3. Execute the flow and review the flagged boards in Discord.
  4. Set disabled: false on the monthly trigger.

How to extend

  • Auto-archive boards flagged in three consecutive sweeps with io.kestra.plugin.monday.boards.Archive.
  • Scope the audit to selected workspaces with the workspaceIds property on boards.Query.
  • Tighten the convention, for example requiring both a team tag and a minimum description length, by extending the If condition.
  • Track violations over time by writing each sweep's results to a database task before reporting.

Links

See How

New to Kestra?

Use blueprints to kickstart your first workflows.