On a schedule
Email yourself a weekly text backup of your boards
Each week you get the text of every sticky note and card on your boards, organised by board.
- Runs
- On a schedule
- Apps
- Miro
- AI
- Not needed
- Access
- boards:read
Send this to your assistant
Create a ClickRuntime automation: every Sunday at 3am export the text of all sticky notes and cards on my Miro boards 'Q3 Roadmap' and 'Customer Research', one section per board, and email it to me.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A Miro board can hold months of work: workshop results, research clusters, roadmap sticky notes, architecture diagrams. If someone deletes a frame, a team member leaves and their account is removed, or an admin closes a plan, that work may be hard or impossible to recover. Miro is not a place most people export from regularly, so a text copy of the content is rarely there when it is needed.
Each week, ClickRuntime lists your boards, pages through all the items on each of the boards you chose, builds a text or CSV file of their content, and emails it to you. The result is a plain, searchable copy of what your boards contained that week.
Facilitators, product teams and agencies that rely on Miro for their key work use it as insurance.
What you get out of it
Work survives accidents
If a frame is deleted or a board is overwritten, you have last week's content in plain text. That turns a disaster into a few minutes of retyping. Restoring it takes minutes.
People leaving does not mean losing their boards
Boards owned by departing team members may disappear with their accounts. A weekly copy keeps what they created available for whoever takes over. That protects the team's investment of time.
Content is searchable outside Miro
A text export can be searched with the tools you already use, which is hard to do inside a large board. You can find that one sticky note from the March workshop in seconds.
Evidence of past decisions
A weekly record shows what was on the board when a decision was made. That helps in reviews and with clients who ask what was agreed at the workshop. That helps when a client disputes it later.
Independence from one vendor
Having your content outside any one product reduces risk if plans change or access is lost. You can move to a different tool without starting from scratch. Choice of tools stays yours.
Easy to audit and archive
Plain files can be stored with project documents. When a project closes, the archive is already there, instead of needing a manual export before access is turned off. That also saves time when a project is closed down.
How it works
What happens, step by step
Every Sunday at 3am, ClickRuntime lists all your Miro boards.
It reads the text of every sticky note, card and shape on each board.
It turns each board into a simple text list.
You get the backup by email, with the number of items on each board.
Before it runs live
- Connect Miro
What you get
Build your own
Need it to work differently?
Your own rules
Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.
Any number of apps
One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.
AI where it helps
Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.
On a schedule or on each event
Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.
Changes you can ask for
- Run it at a different time, more or less often, or only on weekdays
- Add an AI step, for example to summarize, sort or draft a reply
- Add another app, for example also send it to Slack
- Combine it with other Miro steps into one automation
Under the hood
The code that runs this automation
import re
from clickruntime import on_trigger, notify, http, credentials
API = "https://api.miro.com/v2"
BOARDS = ["Q3 Roadmap", "Customer Research"]
@on_trigger
def run(event):
headers = {"Authorization": "Bearer " + credentials.connection("miro", "main")}
sections = []
for name in BOARDS:
board = next(b for b in http.get(f"{API}/boards", headers=headers, params={"query": name}).json()["data"] if b["name"] == name)
texts, cursor = [], None
while True:
page = http.get(f"{API}/boards/{board['id']}/items", headers=headers, params={"limit": 50, **({"cursor": cursor} if cursor else {})}).json()
for item in page["data"]:
if item["type"] in ("sticky_note", "card"):
content = (item.get("data") or {}).get("content") or (item.get("data") or {}).get("title") or ""
texts.append("- " + re.sub(r"<[^>]+>", "", content).strip())
cursor = page.get("cursor")
if not cursor:
break
sections.append(f"{name} ({len(texts)} items)\n" + "\n".join(texts))
notify.email_me("Miro board backup", "\n\n".join(sections))
return {"boards": len(sections)}FAQ
Common questions
Does the backup include images and drawings?
Which boards are backed up?
How large can the backup be?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
Get a daily digest of edits on a Miro board
Each evening one email lists everything added or edited on the board that day, with the person behind each change.
See how it worksPost new sticky notes from a Miro board to Slack
As your team adds notes to a retro board, they appear in Slack within 15 minutes.
See how it worksKnow when someone new joins your Miro boards
You get an email whenever a new member or guest gains access to one of your boards, with their role.
See how it worksKeep exploring
Set up “Email yourself a weekly text backup of your boards” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.