Skip to content
MockFlow DevelopersGet an API key

Collect a retro's action items into a checklist and send each one to your tracker.

Updated 14 Oct 20262 min read

A retrospective ends with good actions on sticky notes, and by the next sprint most are forgotten. This example reads the retro board after the meeting, collects the notes in its Actions section, adds them as a checklist beside it, and sends each action to the team's tracker. It also says how many actions still have no owner.

Download the code (Node.js 18 or later, no packages)

What it does

  • Finds the section whose title contains "Action".

  • Reads the text of every item in it, taking the owner from an @name in the note.

  • Adds a checklist to the right of the section, so the next retro starts by ticking them off.

  • Writes actions.csv, sends each action to TRACKER_WEBHOOK_URL if set, and posts a summary to Slack.

How it works

  1. Read the board structure with GET /boards/{boardId}/structure to find the Actions section, its position and size.

  2. List the items inside it with GET /boards/{boardId}/items?sectionId=.... Each item has its plain text and a url that opens the board on it.

  3. Create the checklist beside the section with POST /boards/{boardId}/items.

  4. Send the actions on.

Run the example

Create an API key in the developer console with the scopes user:read and boards:write, then:

cp .env.example .env        # paste your key into .env
node retro-actions.js YOUR_BOARD_ID

The key code

const structure = await mf.get(`/boards/${boardId}/structure`);
const section = structure.sections.find((s) => /action/i.test(s.title || ''));

const items = [];
for await (const item of mf.paginate(`/boards/${boardId}/items?sectionId=${section.id}`)) {
  if (item.text && item.type !== 'section' && item.type !== 'connector') items.push(item);
}

await mf.createItem(boardId, {
  type: 'checklist',
  position: { x: section.position.x + section.size.width + 80, y: section.position.y },
  data: { title: `Actions from ${board.title}`, data: actions.map((a) => ({ item: a.title, checked: false })) },
});

Adapt it

  • Workshops: collect the "Next steps" section of any workshop board into the project plan.

  • Research: gather the notes in a "Findings" section into a report draft.

  • Brainstorms: send the ideas with the most votes to the backlog.

What you need

An API key with user:read and boards:write. Every plan.

Was this page helpful?

Sign in to MockFlow

The same account you use in the app and on the API.

Forgot your password?
or
Continue with GoogleContinue with MicrosoftContinue with Apple