{"site":{"name":"Koji","description":"AI-native customer research platform that helps teams conduct, analyze, and synthesize customer interviews at scale.","url":"https://www.koji.so","contentTypes":["blog","documentation"],"lastUpdated":"2026-09-26T10:20:48.443Z"},"content":[{"type":"documentation","id":"e3366579-bc3e-4dde-8a51-a7143ff7cd83","slug":"miro-research-integration","title":"Miro + Koji: Take AI-Clustered Themes Straight Onto an Affinity Board","url":"https://www.koji.so/docs/miro-research-integration","summary":"Koji has no native Miro app and no outbound webhooks. Pull themes and grounded quotes from the Koji API or MCP server and bulk-create Miro sticky notes, one per quote, linked back to the transcript. Koji already does open coding and cross-interview clustering, so the workshop is for meaning and decisions.","content":"## The 60-second answer\n\nKoji has no native Miro app and emits no outbound webhooks, so nothing appears on a board by itself. The working pattern: pull the themes and grounded quotes from a finished Koji study, then bulk-create sticky notes on a Miro board through Miro's REST API, one sticky per quote, coloured or tagged by theme. Each sticky carries a link back to the transcript it came from.\n\nThe more important question is what you should still be doing on the board. Koji has already produced the codes and clustered them. Re-doing that by hand as a team ritual costs a day and usually reproduces the same clusters. Keep the board for the part machines are bad at: arguing about what the clusters mean and deciding what to do.\n\n## Why put research on a board at all\n\nMiro says it is trusted by over 90 million users worldwide, and in research teams it plays one specific role: it is where a group looks at evidence together. That is a genuinely different activity from analysis. Analysis asks *what did people say*. A workshop asks *so what, and what do we do*.\n\nThe traditional affinity-mapping session conflated the two because it had to. Someone had to read 30 transcripts, write a sticky per observation, and physically group them, and the only practical time to do that was together in a room. That constraint is gone.\n\n### What Koji already did for you\n\nBefore you plan a synthesis workshop, know what is already finished:\n\n- **Open coding.** Each open-ended answer is coded into short themes, each grounded in specific messages.\n- **Theme clustering.** Codes are clustered into a canonical theme set when the study report is generated - the cross-interview pass that a wall of stickies is usually trying to perform.\n- **Quote extraction.** Notable verbatim quotes are pulled out with their supporting message identified.\n- **Structured answers.** Typed questions return machine-readable values alongside the conversation.\n\n### What the board is still for\n\n- **Disagreeing productively.** Two people reading the same cluster can reach different conclusions. That argument is valuable and it needs a shared surface.\n- **Relating themes to the product.** Mapping a cluster onto a journey stage or a screen is design work, not coding.\n- **Deciding.** What do we change, what do we test next, what do we ignore for now.\n- **Spotting what is missing.** A board makes an absence visible in a way a list does not.\n\n## Setup: Koji to Miro in four steps\n\n### Step 1 - Export the themes and quotes\n\nPull the finished study through the Koji API, or use `koji_export_data` and `koji_get_report` from the MCP server if you would rather have an assistant assemble the material. For a per-interview build, `GET /api/v1/interviews/{id}` with an `Authorization: Bearer` API key returns the `analysis` object containing `themeTags`, `extractedData.quotes` and `structuredAnswers`. The key needs the `interview:read` permission and an Interviews plan or higher.\n\n### Step 2 - Bulk-create the sticky notes\n\nMiro's REST API creates sticky note items on a board with a position, content and style. Create one sticky per quote rather than per interview, and set the sticky colour from the theme tag so clusters are visible before anyone touches them. Lay them out on a simple grid by theme; the team will rearrange anyway, and a tidy starting grid beats a pile.\n\nTwo practical notes. Miro rate-limits writes, so create items in batches with a small delay rather than firing hundreds of parallel requests. And keep the sticky text short - a sticky holding a 60-word quote is unreadable at board zoom. Put the sharp fragment on the sticky and the full quote in the item's link target.\n\n### Step 3 - Keep the quote attached to the sticky\n\nThis is the step that determines whether the workshop output is usable afterwards. Every sticky should carry a link back to the transcript it came from. Miro stickies support hyperlinked text, so make the sticky itself clickable.\n\nWithout that link, a photo of the finished board is a set of assertions with no provenance, and three weeks later nobody can answer *who actually said this?* With it, the board stays auditable, and the cluster someone challenges in a roadmap review can be defended in one click.\n\n### Step 4 - Run the workshop, then write back\n\nRun the session on the pre-populated board. Afterwards, the decisions and the reframed clusters belong somewhere durable - a research repository page or the study report - not only in a Miro frame that will be buried under the next workshop.\n\n## How Koji handles this\n\n- **Every sticky can be traced to something a real person said.** Extracted themes and quotes each carry a verbatim slice of a respondent message, copied character for character in the participant's original language, filler words and all. Items whose supporting quote cannot be matched back against the transcript are dropped server-side, so a board built from Koji output cannot contain a fabricated quote.\n- **Coding happens per interview, clustering happens across the study.** Open codes are produced as each interview completes; the canonical theme set is assembled at report time. You arrive at the workshop with the analysis done.\n- **All six structured question types come through** - open_ended, scale, single_choice, multiple_choice, ranking and yes_no - so a board can put the distribution from a ranking or scale question next to the quotes explaining it.\n- **Quality scores let you populate the board selectively.** Each interview carries a 1-5 score with a relevance, depth and coverage breakdown, so a board can be built from strong conversations only.\n- **Voice and text interviews produce the same analysis shape**, so a board can mix both without special handling.\n\n## Common mistakes\n\n### Re-doing the coding the AI already did\n\nThe most expensive mistake on this page. A team that spends a day transcribing and writing stickies is paying for work that is already complete, and arriving at the interesting conversation tired. Start from the clustered themes and spend the day on meaning.\n\n### Losing traceability at the sticky-note step\n\nCovered above. A sticky without a link back is an orphan opinion. This is the single highest-value five minutes of setup in the whole integration.\n\n### Treating the board as the record\n\nBoards get buried. Write the conclusions back into a repository page or the study report, and keep the board as the working surface it is.\n\n### Putting whole quotes on stickies\n\nUnreadable at zoom. Fragment on the front, full quote behind the link.\n\n## Governance\n\nA Miro board is frequently shared more widely than a research tool, sometimes by public link. Verbatim quotes can identify a participant even without a name attached, particularly in B2B research with small customer bases. Decide whether stickies carry attribution before you generate them, prefer an account-level identifier over a person's name, and check the board's sharing setting before the session rather than after.\n\n## Frequently asked questions\n\n### Does Koji have a native Miro app?\n\nNo. There is no Koji app in the Miro marketplace and no outbound webhook from Koji. You pull the themes and quotes from the Koji API or the MCP server, then create sticky notes through Miro's REST API from your own script or a no-code tool.\n\n### If Koji already clusters themes, is affinity mapping obsolete?\n\nThe mechanical half is. Coding transcripts and grouping codes is done for you when the study report is generated. The judgement half is not: deciding what a cluster means, relating it to the product, noticing what is absent and agreeing what to do are still best done by a group looking at the evidence together.\n\n### One sticky per interview or per quote?\n\nPer quote. A sticky is a single observation. An interview containing five distinct observations becomes five stickies, which is what makes clustering and re-clustering on the board meaningful.\n\n### How do I keep the board auditable after the workshop?\n\nGive every sticky a hyperlink back to the transcript it came from. Miro sticky notes support hyperlinked text, so the sticky itself becomes clickable, and any cluster challenged later can be traced to the conversation that produced it in one click.\n\n### Will I hit Miro rate limits creating hundreds of stickies?\n\nYou can. Miro rate-limits write operations, so create items in batches with a short delay between them rather than firing everything in parallel, and handle retries. Building a board of a few hundred stickies is routine; doing it in one burst is not.\n\n### What do I need on the Koji side?\n\nFor the API route, an API key with the interview:read permission and an Interviews plan or higher. If you would rather not write code, the MCP server exposes tools such as koji_get_report and koji_export_data so an AI assistant can assemble the theme and quote list for you.\n\n## Related Resources\n\n- [Structured Questions Guide](/docs/structured-questions-guide) - the six question types and what each returns\n- [Affinity Mapping](/docs/affinity-mapping) - the method this integration front-loads\n- [Thematic Analysis Guide](/docs/thematic-analysis-guide) - how coding and clustering work\n- [Understanding Themes and Patterns](/docs/understanding-themes-patterns) - what Koji produces automatically\n- [Figma Research Integration](/docs/figma-research-integration) - the same pattern for design files\n- [Headless API Overview](/docs/headless-api-overview) - the endpoints this integration reads\n- [MCP Overview](/docs/mcp-overview) - assembling board material from an AI assistant\n","category":"API Reference","lastModified":"2026-09-26T03:38:08.89661+00:00","metaTitle":"Miro + Koji: Put AI-Clustered Research Themes on an Affinity Board (2026)","metaDescription":"Move Koji AI interview themes and grounded quotes into Miro as sticky notes, and skip the coding your AI already finished.","keywords":["miro research integration","affinity mapping miro","research synthesis board","miro sticky notes api","user research workshop"],"aiSummary":"Koji has no native Miro app and no outbound webhooks. Pull themes and grounded quotes from the Koji API or MCP server and bulk-create Miro sticky notes, one per quote, linked back to the transcript. Koji already does open coding and cross-interview clustering, so the workshop is for meaning and decisions.","aiPrerequisites":["A completed Koji study with a generated report","A Miro board and REST API access","An API key with interview:read, or an MCP-capable assistant"],"aiLearningOutcomes":["Identify which parts of affinity mapping Koji has already done","Bulk-create one sticky per grounded quote","Preserve traceability from sticky back to transcript","Avoid rate limits and unreadable stickies"],"aiDifficulty":"intermediate","aiEstimatedTime":"11 min read"}],"pagination":{"total":1,"returned":1,"offset":0}}