Miro integration | Zervanor
← All connectors

Miro

Also an agent tool
productivity

Miro integration (REST API v2 — boards, board members, typed items (app_card, card, document, doc, embed, frame, image, shape, sticky_note, text), generic items, connectors, tags, groups). OAuth 2.0. Polling trigger on board items — Miro removed its experimental webhook API (Dec 2025), so there is no signed webhook in v1.

76 actions · 1 triggers

The Miro integration lets you connect Miro to your automations with 76 actions and 1 triggers — and every action is also a tool an AI agent can call. Examples: Get Token Context, List Boards, Get Board, Create Board, Update Board. No blank-canvas wiring — connect it and use it in your workflows.

Every action below is also a tool an AI agent can call — the same pack powers your workflows and your agents.

Triggers 1

Events in Miro that can start a workflow.

polling

Miro board item changed

Polls a board's items; compares modifiedAt with the last run to detect new/updated items. Requires a board_id (Miro has no account-wide change feed).

Actions 76

What Zervanor can do in Miro.

Boards75

GET

List Boards

List the current user's boards (Miro: GET /v2/boards). Offset/limit paginated; optional filters team_id, project_id, query, owner, sort.

GET

Get Board

Retrieve a specific board's details (Miro: GET /v2/boards/{board_id}).

POST

Create Board

Create a new board (Miro: POST /v2/boards). All fields optional; a bare {} creates an empty default board. Returns BoardWithLinks with top-level id. WRITE test target (paired with delete_board cleanup).

PATCH

Update Board

Update a board's name, description, policy, or sharing settings (Miro: PATCH /v2/boards/{board_id}).

PUT

Copy Board

Create a copy of an existing board (Miro: PUT /v2/boards). The source board is supplied via the copy_from query parameter; body fields (name, description, policy) apply to the new copy.

DELETE

Delete Board

Delete a board (Miro: DELETE /v2/boards/{board_id}). CLEANUP test target for create_board.

POST

Share Board

Share a board by inviting members via email and role (Miro: POST /v2/boards/{board_id}/members).

GET

List Board Members

Get all members of a board (Miro: GET /v2/boards/{board_id}/members).

GET

Get Board Member

Get a specific board member (Miro: GET /v2/boards/{board_id}/members/{board_member_id}).

PATCH

Update Board Member

Update a board member's role (Miro: PATCH /v2/boards/{board_id}/members/{board_member_id}).

DELETE

Remove Board Member

Remove a member from a board (Miro: DELETE /v2/boards/{board_id}/members/{board_member_id}).

GET

List Items

Get items on a board (Miro: GET /v2/boards/{board_id}/items). Cursor paginated; optional type and parent_item_id filters. Polling source for the board-item-changed trigger.

GET

Get Item

Get a specific item of any type (Miro: GET /v2/boards/{board_id}/items/{item_id}).

PATCH

Update Item

Update an item's position or parent (Miro: PATCH /v2/boards/{board_id}/items/{item_id}).

DELETE

Delete Item

Delete an item of any type (Miro: DELETE /v2/boards/{board_id}/items/{item_id}). Also the delete path for sticky notes and texts (no dedicated typed delete).

POST

Create Items (Bulk)

Create multiple items of mixed types in one call (Miro: POST /v2/boards/{board_id}/items/bulk).

POST

Create Sticky Note

Create a sticky note item (Miro: POST /v2/boards/{board_id}/sticky_notes). Returns top-level id.

GET

Get Sticky Note

Get a sticky note item (Miro: GET /v2/boards/{board_id}/sticky_notes/{item_id}).

PATCH

Update Sticky Note

Update a sticky note item (Miro: PATCH /v2/boards/{board_id}/sticky_notes/{item_id}).

DELETE

Delete Sticky Note

Delete a sticky note via the generic items endpoint (Miro: DELETE /v2/boards/{board_id}/items/{item_id} — sticky notes have no dedicated typed delete).

POST

Create Card

Create a card item (Miro: POST /v2/boards/{board_id}/cards).

GET

Get Card

Get a card item (Miro: GET /v2/boards/{board_id}/cards/{item_id}).

PATCH

Update Card

Update a card item (Miro: PATCH /v2/boards/{board_id}/cards/{item_id}).

DELETE

Delete Card

Delete a card item (Miro: DELETE /v2/boards/{board_id}/cards/{item_id}).

POST

Create Shape

Create a shape item (Miro: POST /v2/boards/{board_id}/shapes).

GET

Get Shape

Get a shape item (Miro: GET /v2/boards/{board_id}/shapes/{item_id}).

PATCH

Update Shape

Update a shape item (Miro: PATCH /v2/boards/{board_id}/shapes/{item_id}).

DELETE

Delete Shape

Delete a shape item (Miro: DELETE /v2/boards/{board_id}/shapes/{item_id}).

POST

Create Text

Create a text item (Miro: POST /v2/boards/{board_id}/texts).

GET

Get Text

Get a text item (Miro: GET /v2/boards/{board_id}/texts/{item_id}).

PATCH

Update Text

Update a text item (Miro: PATCH /v2/boards/{board_id}/texts/{item_id}).

DELETE

Delete Text

Delete a text item via the generic items endpoint (Miro: DELETE /v2/boards/{board_id}/items/{item_id} — texts have no dedicated typed delete).

POST

Create Frame

Create a frame (Miro: POST /v2/boards/{board_id}/frames).

GET

Get Frame

Get a frame (Miro: GET /v2/boards/{board_id}/frames/{item_id}).

PATCH

Update Frame

Update a frame (Miro: PATCH /v2/boards/{board_id}/frames/{item_id}).

DELETE

Delete Frame

Delete a frame (Miro: DELETE /v2/boards/{board_id}/frames/{item_id}).

POST

Create Image (by URL)

Create an image item from a URL (Miro: POST /v2/boards/{board_id}/images). Multipart/local-file image upload is deferred for v1.

GET

Get Image

Get an image item (Miro: GET /v2/boards/{board_id}/images/{item_id}).

PATCH

Update Image (by URL)

Update an image item from a URL (Miro: PATCH /v2/boards/{board_id}/images/{item_id}). Multipart/local-file update is deferred for v1.

DELETE

Delete Image

Delete an image item (Miro: DELETE /v2/boards/{board_id}/images/{item_id}).

POST

Create Document (by URL)

Create a document item from a URL (Miro: POST /v2/boards/{board_id}/documents). Multipart/local-file upload is deferred for v1.

GET

Get Document

Get a document item (Miro: GET /v2/boards/{board_id}/documents/{item_id}).

PATCH

Update Document (by URL)

Update a document item from a URL (Miro: PATCH /v2/boards/{board_id}/documents/{item_id}). Multipart/local-file update is deferred for v1.

DELETE

Delete Document

Delete a document item (Miro: DELETE /v2/boards/{board_id}/documents/{item_id}).

POST

Create Embed

Create an embed item (Miro: POST /v2/boards/{board_id}/embeds).

GET

Get Embed

Get an embed item (Miro: GET /v2/boards/{board_id}/embeds/{item_id}).

PATCH

Update Embed

Update an embed item (Miro: PATCH /v2/boards/{board_id}/embeds/{item_id}).

DELETE

Delete Embed

Delete an embed item (Miro: DELETE /v2/boards/{board_id}/embeds/{item_id}).

POST

Create App Card

Create an app card item (Miro: POST /v2/boards/{board_id}/app_cards).

GET

Get App Card

Get an app card item (Miro: GET /v2/boards/{board_id}/app_cards/{item_id}).

PATCH

Update App Card

Update an app card item (Miro: PATCH /v2/boards/{board_id}/app_cards/{item_id}).

DELETE

Delete App Card

Delete an app card item (Miro: DELETE /v2/boards/{board_id}/app_cards/{item_id}).

POST

Create Doc

Create a doc-format item (Miro: POST /v2/boards/{board_id}/docs). Distinct from documents; create/get/delete only (no update).

GET

Get Doc

Get a doc-format item (Miro: GET /v2/boards/{board_id}/docs/{item_id}).

DELETE

Delete Doc

Delete a doc-format item (Miro: DELETE /v2/boards/{board_id}/docs/{item_id}).

POST

Create Connector

Create a connector line linking two items on a board (Miro: POST /v2/boards/{board_id}/connectors).

GET

List Connectors

Get all connectors on a board (Miro: GET /v2/boards/{board_id}/connectors). Cursor paginated.

GET

Get Connector

Get a specific connector (Miro: GET /v2/boards/{board_id}/connectors/{connector_id}).

PATCH

Update Connector

Update a connector (Miro: PATCH /v2/boards/{board_id}/connectors/{connector_id}).

DELETE

Delete Connector

Delete a connector (Miro: DELETE /v2/boards/{board_id}/connectors/{connector_id}).

POST

Create Tag

Create a tag on a board (Miro: POST /v2/boards/{board_id}/tags).

GET

List Tags

Get all tags from a board (Miro: GET /v2/boards/{board_id}/tags).

GET

Get Tag

Get a specific tag (Miro: GET /v2/boards/{board_id}/tags/{tag_id}).

PATCH

Update Tag

Update a tag (Miro: PATCH /v2/boards/{board_id}/tags/{tag_id}).

DELETE

Delete Tag

Delete a tag (Miro: DELETE /v2/boards/{board_id}/tags/{tag_id}).

GET

Get Tags From Item

Get all tags attached to an item (Miro: GET /v2/boards/{board_id}/items/{item_id}/tags).

GET

Get Items By Tag

Get items on a board that carry a given tag (Miro: GET /v2/boards/{board_id}/items?tag_id=).

POST

Attach Tag To Item

Attach a tag to an item (Miro: POST /v2/boards/{board_id}/items/{item_id}?tag_id=).

DELETE

Remove Tag From Item

Remove a tag from an item (Miro: DELETE /v2/boards/{board_id}/items/{item_id}?tag_id=).

POST

Create Group

Create a group of items on a board (Miro: POST /v2/boards/{board_id}/groups).

GET

List Groups

Get all groups on a board (Miro: GET /v2/boards/{board_id}/groups).

GET

Get Group

Get a group by ID (Miro: GET /v2/boards/{board_id}/groups/{group_id}).

GET

Get Group Items

Get the items of a group by ID (Miro: GET /v2/boards/{board_id}/groups/items?group_id=).

PUT

Update Group

Update a group with a new set of items (Miro: PUT /v2/boards/{board_id}/groups/{group_id}).

DELETE

Delete / Ungroup Group

Ungroup items (default) or delete the group and its items when delete_items=true (Miro: DELETE /v2/boards/{board_id}/groups/{group_id}).

Oauth Token1

GET

Get Token Context

Return the access token's context (associated user, team, scopes, token type) via token introspection. Safe identity GET used as the connector READ test target (Miro: GET /v1/oauth-token).

Automations using Miro

Build your own automation with Miro in the visual builder.

Frequently asked questions

What can I automate with Miro?

76 actions are available — for example: Get Token Context, List Boards, Get Board, Create Board, Update Board, and more.

Which Miro events can start a workflow?

1 triggers — for example: Miro board item changed.

Can Miro be used as an AI agent tool?

Yes. Every Miro action automatically becomes a tool an AI agent can call — the same pack powers both your workflows and your agents.

How is the Miro integration modelled?

Miro is modelled as a versioned connector pack, and the steps that need reasoning fall to first-party agents hosted in the same runtime as the workflows.