Skip to Content

Trello

Connect a Trello board to drive its cards from a process. metamorphOS calls the Trello REST API to create, move, comment on and archive cards, and Trello notifies metamorphOS by webhook whenever anything on the board changes.

What you can do

  • Cards: create, view, update, archive and delete cards.
  • Move cards: advance a card to another list — this is how a process walks work across the board.
  • Comments, labels, members: comment on a card, apply a label, assign a member.
  • Lists: read a board’s lists, and the cards in a list.
  • Board events: trigger a process automatically when a card is created, moved, commented on, or otherwise changed.

Before you start

You need a Trello account with access to the board you want to automate. The API key you create belongs to a Power-Up, which Trello requires even for private, internal automation.

Set up Trello

  1. Create a Power-Up. Go to trello.com/power-ups/admin  and choose New. Give it a name (for example, metamorphOS) and pick the Workspace that owns the board. You do not need to publish it.

  2. Generate the API key. Open the Power-Up’s API key tab and select Generate a new API key. That tab then shows two values: the API key (public — Trello sends it on every call) and the Secret (private). Copy both. The Secret is the key Trello signs webhooks with; you need it only if you want Trello to trigger processes, and it is never part of the login.

  3. Generate a token. Do not use the bare Token link on that tab — it does not pin an expiration, and Trello does not document what you get by default. Instead, put your API key into this URL, open it, approve, and copy the token it shows you:

    https://trello.com/1/authorize?key=YOUR_API_KEY&name=metamorphOS&scope=read,write&expiration=never&response_type=token

    scope=read,write is the minimum: reading a board’s lists and cards, and creating, moving and deleting cards.

[!WARNING] Trello has no token refresh. A token that carries a 1hour, 1day or 30days expiration stops working when it lapses, and the connector then fails with invalid token until a human authorizes a new one. expiration=never in the URL above is what keeps the connector alive.

Connect in metamorphOS

Activate the Trello connector from the marketplace, add an account, and provide:

  • Token: the token from step 3. This is the secret half of the credential.
  • API key (connector parameter key): the API key from step 2. Paste it as shown on the Power-Up page — it is public, and Trello sends it alongside the token on every call.
  • Webhook signing secret: the Secret from step 2 — the field literally labelled Secret on the Power-Up’s API key tab. That value is the webhook key; Trello does not issue a separate one, and there is nowhere else to look for it. Only needed if you want Trello to trigger processes.

Paste each value exactly as Trello shows it. Nothing needs to be combined or reformatted.

The Power-Up page shows three values and they are not interchangeable. The API key and the token are the login, and they are two separate fields above. The secret is not part of the login at all — Trello uses it only to sign webhook deliveries, so it belongs in the webhook field, and you can leave it empty if you only make outbound calls.

Trigger processes from board changes

Registering the webhook is a one-time setup step per board, not something a process does each run. Do it once and leave it in place — every process that listens for board events shares it.

  1. Copy the inbound receiver URL metamorphOS shows for the Trello connector. It must be reachable over HTTPS: Trello sends it a test request at registration and refuses the webhook if it does not answer.

  2. Register the subscription by running the Register Trello Webhook process once, with that URL as the callback and your board id as the model (a board id watches every card on the board).

    Trello has no screen for this — its webhooks are API-only — so this one-step process is the click-path for the single call Trello requires. If you would rather do it from a terminal, the equivalent is:

    curl -X POST "https://api.trello.com/1/webhooks/" \ -d "key=YOUR_API_KEY" -d "token=YOUR_TOKEN" \ -d "idModel=YOUR_BOARD_ID" \ -d "callbackURL=YOUR_RECEIVER_URL" \ -d "description=metamorphOS"

    Keep the returned webhook id — it is what removes the subscription later.

  3. Supply the Secret from the Power-Up’s API key tab as the webhook signing secret, so metamorphOS can verify each delivery is genuinely from Trello.

That is the whole setup. From then on, processes simply listen — they neither create nor delete the subscription.

Trello signs each delivery so metamorphOS can confirm it is genuine, and rejects any delivery that fails verification.

Pick the event you want

You do not have to catch every board change and sort it out yourself. Each lifecycle phase has its own trigger, so a process listens only for the thing it cares about:

TriggerFires when
Card Createda card is added to the board
Card Moveda card changes list — gives you the list it left and the list it landed in, by name
Card Completeda card’s due date is ticked complete
Card Archived / Card Restoreda card is archived, or brought back
Card Renameda card’s title changes
Card Commentedsomeone comments
Card Member Assigned / Unassigneda member is added to or removed from a card
Card Label Added / Removeda label is applied or removed
Checklist Item Completedan item inside a card is ticked off
Card Deleteda card is permanently deleted
Board Activityeverything, unsorted — use it only if none of the above fit

Decide what “done” means

Trello has no built-in status field and no notion of a finished card. There is nothing in Trello that says a card is done, so you have to tell metamorphOS what done means on your board. There are three honest answers, and the right one depends on how your team already works.

A card reaches a particular list. This is what most teams mean by done — the card lands in “Done”, “Shipped”, “Approved”. Use the Card Moved trigger and condition it on the destination list’s name. Trello identifies lists by id, but the trigger hands you the list name as well, so you can simply match on Done (or whatever your column is called). This is the flexible option: your column names are yours, and different boards can mean different things.

[!NOTE] The list name is the one piece metamorphOS cannot guess for you — a board that calls its final column “Shipped” is just as valid as one that calls it “Done”. That is why this lives in your process’s trigger condition rather than in the connector.

A card’s due date is ticked complete. The Card Completed trigger. This is the only place Trello itself records completion, so it works on any board without configuration — but only if your team actually uses due dates.

A card is archived. The Card Archived trigger. Be careful with this one: archiving means “off the board”, not “succeeded”. Teams archive abandoned and duplicate cards too, so this fires on failure as often as on success.

Most setups use the first. If you are unsure, start with Card Moved into your final column.

Good to know

  • Deleting a card is permanent. To keep a card recoverable, archive it instead (update the card and mark it closed).
  • Labels and members must already exist on the board before you can apply or assign them; the connector attaches existing ones rather than creating new ones.
  • List ids, not list names. Cards are created into, and moved between, lists identified by id. Read a board’s lists first to turn a column name like In Progress into the id the card actions need.
  • Trello revokes tokens from Account → Applications; a revoked token fails the same way an expired one does, and is fixed by connecting a new token.
Last updated on