To connect OpenClaw to Trello, store your TRELLO_API_KEY and TRELLO_TOKEN in OpenClaw's config and configure direct HTTP calls to the Trello REST API. This is a Direct API integration — no ClawHub skill required. Once configured, OpenClaw can create cards, move them between lists, add comments, read board data, and manage Trello boards and checklists through Trello's REST API.
Automate Trello Kanban Workflows From OpenClaw
Trello's simplicity is its greatest strength — boards, lists, and cards are a universally understood way to visualize work, and nearly every team has an intuitive model of how to use them. The Trello REST API exposes this same simplicity programmatically: creating a card is a single HTTP POST, moving it is a PUT on the card's `idList` field, and adding a comment is a POST to the card's actions. The OpenClaw Direct API integration puts these operations into a configuration-driven layer that makes Trello card management part of any larger workflow.
Trello's two-credential authentication model (API key + user token) is slightly different from most REST APIs. The API key identifies your integration, while the token grants permission to act on behalf of a specific Trello user. Both are included as query parameters on every API request. This model allows the same API key to be used across multiple users, each with their own token — useful for team deployments where multiple people need to create cards under their own Trello accounts.
The most common OpenClaw + Trello pattern is using Trello as a kanban-style task queue: OpenClaw creates cards in an 'Incoming' or 'To Do' list as work arrives, processes them, moves them through 'In Progress', and archives them on completion. This turns any Trello board into a visual monitor for an OpenClaw automation workflow.
Integration method
Trello integration in OpenClaw uses the Trello REST API directly. Unlike many APIs, Trello uses two separate credentials: TRELLO_API_KEY (a static key identifying your Power-Up or integration) and TRELLO_TOKEN (a user-specific OAuth token granting access to boards). You store both in OpenClaw's config and include them as query parameters on every API request. The integration supports full CRUD on cards, lists, boards, comments, checklists, labels, attachments, and members.
Prerequisites
- OpenClaw installed and running (see openclaw.ai for installation instructions)
- A Trello account with access to at least one board
- Access to Trello Developer portal (trello.com/app-key) to generate an API key
- A Trello user token generated from your API key (process described in Step 1)
- Your Trello board ID and list IDs (found via the API or Trello URLs)
Step-by-step guide
Generate Trello API Key and User Token
Generate Trello API Key and User Token
Trello requires two credentials: an API key tied to your developer account and a user token that grants access to boards on behalf of a specific Trello user. **API Key:** Navigate to trello.com/app-key while logged into your Trello account. Your API key is displayed on the page — it is a 32-character string. Copy it. **User Token:** On the same trello.com/app-key page, click the 'Token' link next to your API key. This opens an OAuth authorization page showing the permissions the token will grant. For OpenClaw integration you typically want read/write access. Click 'Allow'. Trello redirects to a page showing your token — a 64-character string. Copy it. Note: Trello user tokens can be generated with different expiration options (30 days, 1 day, or never). Select 'never expiring' for a long-lived OpenClaw integration token so you do not need to regenerate it monthly. Store both values in OpenClaw's config as TRELLO_API_KEY and TRELLO_TOKEN.
1# Set both Trello credentials in OpenClaw config2clawhub config set TRELLO_API_KEY YOUR_32_CHAR_API_KEY3clawhub config set TRELLO_TOKEN YOUR_64_CHAR_USER_TOKEN45# Verify both are set6clawhub config get TRELLO_API_KEY7clawhub config get TRELLO_TOKEN89# Test the connection — should return your Trello member info10curl "https://api.trello.com/1/members/me?key=YOUR_API_KEY&token=YOUR_TOKEN"Pro tip: When generating the user token, select 'never' for expiration if this is a long-lived automation integration. A 30-day token will stop working after a month and require regeneration. The API key itself does not expire.
Expected result: Both credentials set in OpenClaw config. The test curl call returns a JSON object with your Trello username, email, and member ID.
Find Your Board ID and List IDs
Find Your Board ID and List IDs
Trello identifies boards and lists with opaque alphanumeric IDs (not numeric like ClickUp or Asana). You need the board ID for board-level operations and list IDs for creating cards in specific lists. **Board ID from URL:** Open your Trello board in a browser. The URL format is `https://trello.com/b/{BOARD_ID}/{board-name}`. The `BOARD_ID` is the short alphanumeric segment after `/b/`. **Board ID from API:** Call `/members/me/boards` to list all boards your account has access to. Each board has a full `id` field (24-char) — this is what API calls use, not the short URL ID. **List IDs:** Once you have the board ID, call `/boards/{board_id}/lists` to get all lists on that board with their IDs. Note the `id` values for the lists you want to create cards in. Store board and list IDs in your OpenClaw config by descriptive name.
1# List all boards for your account2curl "https://api.trello.com/1/members/me/boards?key=YOUR_API_KEY&token=YOUR_TOKEN&fields=id,name,shortUrl"34# Get all lists on a board5curl "https://api.trello.com/1/boards/BOARD_ID/lists?key=YOUR_API_KEY&token=YOUR_TOKEN&fields=id,name"67# Note: URL board ID (short) vs API board ID (24 chars) differ8# URL: https://trello.com/b/AbCd1234 → short ID: AbCd12349# API: {"id": "5f9a3b2c1d0e4f8a7b6c5d9e", ...} → full 24-char IDPro tip: Always use the full 24-character board ID from the API response in your config — not the short 8-character ID from the URL. They look different but refer to the same board; the API only accepts the full ID.
Expected result: You have full 24-character IDs for the board(s) and list(s) you want to work with, confirmed from the API response.
Configure Trello Integration in OpenClaw
Configure Trello Integration in OpenClaw
Add the Trello integration configuration to your OpenClaw config file. Store your board and list IDs under descriptive names so workflows reference them by name rather than raw IDs. TRELLO_API_KEY and TRELLO_TOKEN are read automatically from your environment config. Trello labels and members also use IDs — you can fetch label IDs with GET `/boards/{board_id}/labels` and member IDs with GET `/boards/{board_id}/members`. Store the label and member IDs you use frequently in your config for easy reference.
1# ~/.openclaw/config.yaml2integrations:3 trello:4 # Named board references5 boards:6 engineering: "BOARD_24_CHAR_ID_1"7 content_pipeline: "BOARD_24_CHAR_ID_2"8 support: "BOARD_24_CHAR_ID_3"9 # Named list references (by board)10 lists:11 engineering_todo: "LIST_ID_1"12 engineering_in_progress: "LIST_ID_2"13 engineering_done: "LIST_ID_3"14 content_incoming: "LIST_ID_4"15 content_scheduled: "LIST_ID_5"16 # Named label references17 labels:18 urgent: "LABEL_ID_RED"19 bug: "LABEL_ID_ORANGE"20 feature: "LABEL_ID_BLUE"Pro tip: Get label IDs for a board with: `curl 'https://api.trello.com/1/boards/BOARD_ID/labels?key=KEY&token=TOKEN'`. Labels have colors (red, orange, yellow, green, blue, purple) and optional custom names.
Expected result: Config file saved with Trello board, list, and label references. `clawhub reload` completes without errors.
Create Cards and Add Card Details
Create Cards and Add Card Details
Test card creation with the Trello API. POST to `/cards` with the list ID and card name at minimum. Optional fields include description, due date (ISO 8601 format), label IDs, member IDs, position in the list, and URL attachments. After creating a card, the response includes the full card object with its new ID — save this ID if you need to add more details like checklists or attachments in follow-up calls. Trello cards support checklists (ordered lists of items within a card), which are created via a separate POST to `/cards/{card_id}/checklists`. Checklist items are added with POST to `/checklists/{checklist_id}/checkItems`. This hierarchy is useful for tracking subtasks within a card without creating separate cards.
1# Create a card in a list2curl -X POST \3 "https://api.trello.com/1/cards?key=YOUR_API_KEY&token=YOUR_TOKEN" \4 -H "Content-Type: application/json" \5 -d '{6 "idList": "LIST_ID",7 "name": "Implement dark mode toggle",8 "desc": "Add a dark/light mode toggle to the user preferences page. Reference: design ticket #234",9 "due": "2026-04-15T23:59:00.000Z",10 "idLabels": ["LABEL_ID_BLUE"],11 "idMembers": ["MEMBER_ID"]12 }'1314# Add a checklist to a card15curl -X POST \16 "https://api.trello.com/1/checklists?key=YOUR_API_KEY&token=YOUR_TOKEN" \17 -H "Content-Type: application/json" \18 -d '{"idCard": "CARD_ID", "name": "Implementation Steps"}'Pro tip: Trello due dates use ISO 8601 format with UTC timezone: `2026-04-15T23:59:00.000Z`. The Trello UI shows due dates in the user's local timezone, but the API always stores and accepts UTC.
Expected result: POST creates a new card visible on the Trello board in the specified list with the correct label, member, and due date.
Move Cards and Update Card Fields
Move Cards and Update Card Fields
Card movement between lists is the core kanban operation. Use PUT on a card's `idList` field to move it to a different list — this works across lists on the same board or even across different boards. Other common updates: mark a card complete with `dueComplete: true`, archive (close) a card with `closed: true`, change the card name, update the description, or modify labels and members. For reading card data, GET `/lists/{list_id}/cards` returns all cards in a list with optional field filtering. Use `fields=id,name,due,dueComplete,idList,labels` to get a lightweight response without unnecessary data. GET `/boards/{board_id}/cards` returns all cards on an entire board — add `filter=overdue` to get only cards past their due date. RapidDev recommends building a daily or weekly Trello board health check as an OpenClaw automation — querying for overdue cards, cards with no due date, and cards that have been in 'In Progress' for more than a configurable number of days. This surfaces workflow blockers without manual board review.
1# Move a card to a different list2curl -X PUT \3 "https://api.trello.com/1/cards/CARD_ID?key=YOUR_API_KEY&token=YOUR_TOKEN" \4 -H "Content-Type: application/json" \5 -d '{"idList": "TARGET_LIST_ID", "pos": "bottom"}'67# Mark a card's due date as complete8curl -X PUT \9 "https://api.trello.com/1/cards/CARD_ID?key=YOUR_API_KEY&token=YOUR_TOKEN" \10 -H "Content-Type: application/json" \11 -d '{"dueComplete": true}'1213# Get all overdue cards on a board14curl "https://api.trello.com/1/boards/BOARD_ID/cards/overdue?key=YOUR_API_KEY&token=YOUR_TOKEN&fields=id,name,due,idList"1516# Add a comment to a card17curl -X POST \18 "https://api.trello.com/1/cards/CARD_ID/actions/comments?key=YOUR_API_KEY&token=YOUR_TOKEN" \19 -H "Content-Type: application/json" \20 -d '{"text": "Automated update: moved to review by OpenClaw"}'Pro tip: The `pos` parameter when moving cards accepts 'top', 'bottom', or a positive float position value. Use 'bottom' to add moved cards to the end of the target list and 'top' to add them to the front.
Expected result: Card moves to the target list and appears at the correct position. Comments appear in the card's activity feed. Due dates marked complete show a green checkmark in the Trello UI.
Common use cases
Automated Card Creation from Triggers
Create Trello cards automatically when workflow events fire — new support tickets become cards on the support board, form submissions become cards in a backlog list, or meeting action items become cards assigned to the right person.
Configure OpenClaw to create a Trello card in my 'To Do' list on the 'Engineering' board with the title 'Investigate API timeout issue', labeled red, and assigned to me.
Copy this prompt to try it in OpenClaw
Card Status Progression
Move cards between lists as work progresses through stages — automatically advancing cards from 'In Progress' to 'Ready for Review' when a condition is met, or moving cards to 'Blocked' when a dependency is identified.
Build an OpenClaw workflow that reads all Trello cards in the 'In Review' list of my 'Content Pipeline' board and moves them to 'Published' after marking them as approved.
Copy this prompt to try it in OpenClaw
Board Status Reporting
Query a Trello board to generate a status report — how many cards are in each list, which cards are overdue, who has the most cards assigned, and what labels are most frequently used this sprint.
Read all cards from my 'Sprint 42' Trello board. Tell me how many are in each list, which ones have no due date, and which are labeled 'blocked'.
Copy this prompt to try it in OpenClaw
Troubleshooting
API returns '401 Unauthorized' or 'invalid key'
Cause: TRELLO_API_KEY or TRELLO_TOKEN is missing or incorrect. Both must be included as query parameters on every Trello API request.
Solution: Verify both are set with `clawhub config get TRELLO_API_KEY` and `clawhub config get TRELLO_TOKEN`. Test with the `/members/me` endpoint using both params. If the token is expired (30-day tokens expire), regenerate it at trello.com/app-key by clicking 'Token' again.
1# Test both credentials together2curl "https://api.trello.com/1/members/me?key=YOUR_API_KEY&token=YOUR_TOKEN"34# Re-set if needed5clawhub config set TRELLO_API_KEY YOUR_KEY6clawhub config set TRELLO_TOKEN YOUR_TOKEN7clawhub reloadCard creation returns '404 Not Found' on the list endpoint
Cause: The list ID used in the card creation request is incorrect or belongs to a board the token does not have access to.
Solution: Verify the list ID by calling GET `/boards/{board_id}/lists` with your credentials and confirming the ID matches. List IDs are 24-character alphanumeric strings — shorter values are incorrect.
1# List all lists on a board to verify IDs2curl "https://api.trello.com/1/boards/BOARD_ID/lists?key=KEY&token=TOKEN&fields=id,name"Token expires after 30 days — integration stops working
Cause: The user token was generated with a 30-day expiration at trello.com/app-key.
Solution: Regenerate the token at trello.com/app-key by clicking 'Token'. On the authorization page, select 'Never expires' before clicking Allow. Update TRELLO_TOKEN in OpenClaw config.
1# Update the token after regeneration2clawhub config set TRELLO_TOKEN YOUR_NEW_NEVER_EXPIRING_TOKEN3clawhub reloadTrello API rate limit — 'API rate limit exceeded' errors
Cause: Trello limits API requests to 100 per 10 seconds per token (10/second). Bulk processing without delays can hit this limit.
Solution: Add a 100-150ms delay between API calls in bulk operation loops. For batch card creation, space requests to stay under 10/second. Trello's rate limit resets every 10 seconds.
1# Add delay between bulk operations (100ms = 10 requests/second max)2sleep 0.1Best practices
- Generate your Trello user token with 'never expires' selected — a 30-day token will break your integration monthly and require manual regeneration.
- Store board and list IDs under descriptive names in your OpenClaw config rather than using raw IDs in workflow scripts — this makes configurations readable and easy to update when boards are reorganized.
- Use the full 24-character board ID from the API response, not the short 8-character ID from the Trello URL — API calls only accept the full ID.
- Add rate limiting delays (100ms between calls) when processing cards in bulk to stay within Trello's 10 requests/second limit.
- Mark automated comments with a prefix like '[OpenClaw]' or 'Automated:' so team members can easily distinguish automated updates from human activity in card history.
- Use label IDs rather than label names in API calls — label names can be changed by any board member, while IDs are stable. Fetch and cache label IDs at the start of any workflow.
- For recurring workflows that query the same board repeatedly, use GET `/boards/{board_id}/cards?filter=open` to get only active cards rather than fetching all cards including archived ones.
Alternatives
Asana offers more sophisticated project management features including timelines and portfolios — use it instead of Trello if your team needs structured workflows beyond simple kanban boards.
ClickUp combines kanban views with extensive customization including custom fields and multiple project views — use it instead of Trello when you need more than kanban boards in a single tool.
Notion offers kanban database views alongside rich document support — use it instead of Trello when your team manages tasks alongside documentation in the same workspace.
Airtable provides kanban views alongside grid, calendar, and gallery views with a relational database model — use it instead of Trello when you need structured relational data alongside visual task management.
Frequently asked questions
How do I set up Trello integration in OpenClaw?
Go to trello.com/app-key to get your API key. Click 'Token' on the same page and authorize to get your user token — select 'Never expires'. Set both in OpenClaw: `clawhub config set TRELLO_API_KEY your-key` and `clawhub config set TRELLO_TOKEN your-token`. Find board and list IDs via the API, then add them to `~/.openclaw/config.yaml` under `integrations.trello`.
What are TRELLO_API_KEY and TRELLO_TOKEN for OpenClaw?
TRELLO_API_KEY is a static 32-character key from trello.com/app-key that identifies your integration. TRELLO_TOKEN is a user-specific 64-character OAuth token that grants permission to read and write boards on behalf of your Trello account. Both are required for every API request — Trello includes them as query parameters rather than an Authorization header.
How do I find my Trello board ID for OpenClaw?
Call the Trello API at `https://api.trello.com/1/members/me/boards?key=KEY&token=TOKEN` to list all your boards and their 24-character IDs. Alternatively, open the board's URL in a browser: `https://trello.com/b/{SHORT_ID}/...` — the short ID in the URL is different from the full API ID, so always use the one from the API response.
Why does my Trello token stop working after 30 days?
Trello user tokens have configurable expiration. If your token was generated with 30-day expiration, it stops working after 30 days. To fix this permanently, go to trello.com/app-key, click 'Token', and on the authorization page select 'Never expires' before clicking Allow. Update TRELLO_TOKEN in your OpenClaw config with the new token.
Can OpenClaw move Trello cards between lists?
Yes — moving a card between lists is a PUT request updating the card's `idList` field to the target list ID. You can move cards between lists on the same board or across different boards. Include `pos: 'top'` or `pos: 'bottom'` to control where in the target list the card appears.
Does RapidDev offer help with Trello OpenClaw integration?
Yes — RapidDev can assist with configuring Trello automation in OpenClaw, including multi-board workflows, automated kanban state machines, and integrating Trello card management into broader AI-assisted pipelines. Reach out to RapidDev for configuration support on complex Trello automation scenarios.
Does OpenClaw Trello integration work with Trello Power-Ups?
The core Trello REST API (which this integration uses) does not have direct access to Power-Up data — Power-Ups use their own extension APIs that are separate from the main Trello REST API. Standard card fields, checklists, labels, members, due dates, and attachments all work via the REST API. For Power-Up-specific data, you would need to use that Power-Up's own API if it provides one.
Talk to an Expert
Our team has built 600+ apps. Get personalized help with your project.
Book a free consultation