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.
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.
What does this prompt do?
- 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 do I need to use this?
- 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
How can I customize it?
- 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.
FAQs
How quickly does a sticky note appear after someone submits?
Will the sticky notes end up on top of each other?
What happens if someone skips the rating question?
Do I need a paid Miro plan for this?
Can I use this with a different survey tool?
Will my Slack channel get a message for every response?
Related templates
When your flight moves, your calendar times get corrected automatically and you get a Slack note naming the meetings you're about to miss.
Every 15 minutes, forwarded phishing reports get traced back to the server that really sent them, with a verdict in Slack and the worst senders reported.
Every weekday at 7am, sign in to the tender portals you track, filter new notices against your bid criteria, and open a deal for the ones worth chasing.
Every Monday, rank the week's matches by expected demand, put the big ones on your venue calendar, and post a rota-ready summary to Slack.
Every Monday, last week's survey answers and support conversations become one themed report in Notion, with the top five themes posted to Slack.
Every Tuesday we pull your best new reviews, draft social captions, email testimonials and product page quotes, then stage them in Notion for approval.
Stop exporting survey results to a spreadsheet.
Let every response land on your Miro board, color-coded and ready to cluster, the moment it arrives.