# Turn Typeform answers into color-coded Miro sticky notes

> Every survey response lands on your research board as a sticky note, colored by satisfaction score and tagged by source, so the team can cluster feedback live.

- Workflow type: code
- Services: Typeform, Miro, Slack
- Categories: Product, Customer Support
- Published: 2026-08-07

## What it does

- Adds every new customer research survey response to your Miro board as a sticky note within seconds of it being submitted.
- Puts the respondent's name and company on the first line of the note, with their open text answer underneath.
- Colors each note by the satisfaction rating: red for 1 and 2, yellow for 3, green for 4 and 5.
- Lays notes out in a neat grid so they never stack on top of each other, tags each one by survey source, and posts a Slack alert when an unhappy response comes in.

## What you'll need

- A Typeform account and the customer research form you want to track
- A Miro account, plus the research board where the notes should land
- A Slack workspace and the channel that should hear about low scores
- A satisfaction rating question and an open text question on the form
- A tag already set up on the Miro board for this survey, so notes can be filtered by source

## Prompt

Whenever someone submits my customer research Typeform, add their answer to a fixed Miro research board as a sticky note, so the team can cluster feedback visually as it arrives instead of exporting a spreadsheet later. Trigger this on the Typeform webhook that fires on each new submission. Everything in this workflow is deterministic field mapping, a rating to color lookup, a position calculation, and a threshold check, so build it as code with no AI reasoning step.

Configure the Typeform form ID, the Miro board ID, the survey tag name, and the Slack channel as constants at the top of the workflow. Miro board IDs look like uXjVJ_fzYUs=, with URL-unsafe characters and a trailing equals sign, so always URL-encode the board ID when putting it into a request path. Getting this wrong is the most common reason these calls fail.

From the webhook payload, read the respondent's name, their company, their open text answer, and their satisfaction rating. Match these on the Typeform field refs or titles rather than on answer position, since reordering questions in the form would otherwise silently shift the mapping.

Work out where the note goes before creating it. Do not try to keep a counter between runs, because each run starts fresh and has no memory of the last one. Instead use Miro List Board Items on the research board, filtered to sticky notes, paging through with the returned cursor until it comes back empty, and count how many already exist. Call that count N. Place the new note at x = N modulo 6, multiplied by 220, and y = the floor of N divided by 6, multiplied by 220. That fills six notes per row, left to right, then starts a new row underneath, so notes never stack on top of one another and the board stays readable as responses come in.

Create the note with Miro Create Sticky Note on that board. The first line of the note body is the respondent's name and company, separated by a comma, for example "Jane Doe, Acme Corp". Their open text answer follows on the lines underneath. If the company answer is blank, just show the name rather than leaving a trailing comma.

Set the sticky note fill color from the satisfaction rating: red for a rating of 1 or 2, yellow for 3, and green for 4 or 5. If the rating is missing or is not a number, still create the note with the written answer, but use gray so it is visibly unrated, and skip the Slack alert for it. Losing a written answer because a rating was skipped would defeat the point of the board.

Then tag the note so every sticky is filterable by source. Miro tags are board-scoped and are meant to be created once and reused, not recreated per submission. Call Miro List Tags on the board, find the tag whose title matches the configured survey tag name, and attach that tag to the sticky note you just created using Miro Attach Tag to Item with the new note's item ID. Never call Create Tag when a matching tag already exists, or the board will fill up with duplicate tags that break filtering. Only if List Tags returns no match at all should the workflow create the tag a single time, so that every later run finds it through List Tags.

Finally, when and only when the rating is 1 or 2, post a short notification with Slack Send a Message to the configured channel. Keep it to a few lines: the respondent's name and company, the rating, the first couple of hundred characters of their answer, and a link to the board at https://miro.com/app/board/<boardId>/ so someone can click straight through. Ratings of 3 and above must not post anything, so the channel does not get spammed by every response.

One note on the trigger. Typeform's own API documentation warns that very recent submissions may not show up in the Responses API for around 30 minutes, and recommends webhooks for real-time delivery, which is why this is built on the submission webhook. If I would rather not configure a webhook on the form, the fallback is a cron schedule that calls Typeform Retrieve Responses on an interval and processes anything submitted since the last run, accepting that notes will appear in batches rather than instantly.

## How to customize

- Change the color rules, for example treating a 3 as red if you hold a higher bar for satisfaction.
- Adjust which answers appear on the note and how the name and company header line reads.
- Move the alert threshold or send low-score alerts to a different channel, and change how many notes sit in each row of the grid.

## FAQ

### How quickly does a sticky note appear after someone submits?

Within seconds. The workflow runs the moment Typeform reports a new submission, rather than checking the form on a timer, so the board fills up live while research is still going on.

### Will the sticky notes end up on top of each other?

No. Before adding a note, the workflow checks how many are already on the board and places the new one in the next free slot in a grid, filling left to right and then starting a new row.

### What happens if someone skips the rating question?

The note is still created with their written answer so no feedback is lost. It gets a neutral color instead of red, yellow, or green, and it will not trigger a Slack alert.

### Do I need a paid Miro plan for this?

A free Miro plan is enough to add sticky notes and tags to an existing board. Free and team plans do limit how many boards you can have, so this workflow reuses one research board you set up in advance rather than creating new ones.

### Can I use this with a different survey tool?

This version is built around Typeform submissions. The same board layout, color rules, and Slack alert would work with another form tool, but the starting step would need to be swapped for whatever your form sends when someone responds.

### Will my Slack channel get a message for every response?

No. Only ratings of 1 or 2 trigger a message, so the channel stays quiet unless someone is genuinely unhappy. Every response still lands on the board.

Use this prompt in General Input: https://www.generalinput.com/prompts/turn-typeform-answers-into-color-coded-miro-sticky-notes