Execute major Miro migrations — migrate boards between teams/orgs,
export board content to external systems, import data into Miro,
and re-platform from competing whiteboard tools using REST API v2.
Trigger with phrases like "migrate miro", "miro migration",
"export miro boards", "import to miro", "miro data migration".
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
A direct command skips the review prompt. Inspect the source before running it.
Execute major Miro migrations — migrate boards between teams/orgs,
export board content to external systems, import data into Miro,
and re-platform from competing whiteboard tools using REST API v2.
Trigger with phrases like "migrate miro", "miro migration",
"export miro boards", "import to miro", "miro data migration".
allowed-tools
Read, Write, Edit, Bash(npm:*), Bash(node:*)
version
1.6.0
license
MIT
author
Jeremy Longshore <jeremy@intentsolutions.io>
tags
["saas","miro","migration","data-export"]
compatibility
Designed for Claude Code
Miro Migration Deep Dive
Overview
Comprehensive guide for migrating Miro boards between teams and organizations, updating
from REST API v1 to v2, and re-platforming from competing whiteboard tools (Lucidchart,
FigJam). Covers board content export with cursor pagination, bulk import with rate-limit
aware queuing, widget API changes between v1 and v2, and the new app framework patterns.
Typical migration scope: dozens to thousands of boards with connectors, tags, and members.
Migration Assessment
// Scan current integration for deprecated v1 patterns and board inventoryasyncfunctionassessMigration(teamId: string) {
const boards = awaitmiroFetch(`/v2/boards?team_id=${teamId}&limit=50`);
let totalItems = 0;
for (const board of boards.data) {
const items = awaitmiroFetch(`/v2/boards/${board.id}/items?limit=1`);
totalItems += items.total ?? 0;
}
console.log(`Team ${teamId}: ${boards.data.length} boards, ~${totalItems} items`);
console.log('API version: v2 (v1 deprecated 2024-01)');
console.log('Widget types to migrate: sticky_note, shape, card, text, frame, image, connector');
return { boardCount: boards.data., totalItems };
}
length
Step-by-Step Migration
Phase 1: Prepare — Export Source Boards
Export every item on a board to a structured JSON file with cursor-paginated reads: