New to Kestra?
Use blueprints to kickstart your first workflows.
Report on your whole monday.com account with Kestra. One raw GraphQL query lists active boards and item counts, Python computes KPIs, Slack gets the digest.
The dedicated monday.com tasks cover items, boards, and groups one entity at a time, but portfolio questions, how many boards, how much work, where is it piling up, want one shaped query. This blueprint uses io.kestra.plugin.monday.query.Query to send raw GraphQL asking for every active board with its items_count, then a small Python step turns the JSON payload into scalar KPIs that flow straight into a Slack digest.
portfolio_query (io.kestra.plugin.monday.query.Query) runs the raw GraphQL query boards(limit: 100, state: active) { id name items_count }. The API's data payload is exposed as {{ outputs.portfolio_query.data }}.summarize (io.kestra.plugin.scripts.python.Script on the io.kestra.plugin.core.runner.Process task runner) receives that payload as JSON through the PORTFOLIO_JSON environment variable, computes the board count, total items, and the busiest board, and emits them with Kestra's ::{"outputs": ...}:: protocol. No third-party packages are needed, so the Process runner is enough.notify interpolates the four scalars, {{ outputs.summarize.vars.total_boards }}, total_items, top_board_name, and top_board_items, into a Slack message.errors block posts a distinct Slack alert when the query or the summary fails.Schedule trigger publishes the digest every Monday at 08:00.A GraphQL query answers the question once; a report needs it answered every Monday, transformed identically, delivered to the same channel, and flagged when it fails. Kestra provides the schedule, retries on transient API errors, the Python transform with output passing, and an execution history that makes every past digest auditable.
MONDAY_API_TOKEN: monday.com personal API v2 token, from Profile, Developers, My Access Tokens.SLACK_WEBHOOK_URL: Slack incoming webhook URL.disabled: false on the weekly trigger.state, board_folder_id, or subscribers, and extend the Python KPIs accordingly.limit or add pagination inside the query for accounts with more than 100 boards.io.kestra.plugin.core.flow.If, for example when total_items jumps week over week.