Skip to main content
RapidDev - Software Development Agency
openclaw-integrationsDirect API Integration

How to Connect Trello to OpenClaw

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.

What you'll learn

  • How to generate a Trello API key and user token and configure both in OpenClaw
  • How to find your Trello board ID, list ID, and card ID for API calls
  • How to create cards with labels, due dates, members, and checklists from OpenClaw
  • How to move cards between lists and update card fields via the Trello API
  • How to query board data and filter cards by list, label, or member
Book a free consultation
4.9Clutch rating
600+Happy partners
17+Countries served
190+Team members
Intermediate12 min read20 minutesProductivityMarch 2026RapidDev Engineering Team
TL;DR

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

Direct API Integration

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

1

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.

terminal
1# Set both Trello credentials in OpenClaw config
2clawhub config set TRELLO_API_KEY YOUR_32_CHAR_API_KEY
3clawhub config set TRELLO_TOKEN YOUR_64_CHAR_USER_TOKEN
4
5# Verify both are set
6clawhub config get TRELLO_API_KEY
7clawhub config get TRELLO_TOKEN
8
9# Test the connection should return your Trello member info
10curl "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.

2

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.

terminal
1# List all boards for your account
2curl "https://api.trello.com/1/members/me/boards?key=YOUR_API_KEY&token=YOUR_TOKEN&fields=id,name,shortUrl"
3
4# Get all lists on a board
5curl "https://api.trello.com/1/boards/BOARD_ID/lists?key=YOUR_API_KEY&token=YOUR_TOKEN&fields=id,name"
6
7# Note: URL board ID (short) vs API board ID (24 chars) differ
8# URL: https://trello.com/b/AbCd1234 → short ID: AbCd1234
9# API: {"id": "5f9a3b2c1d0e4f8a7b6c5d9e", ...} full 24-char ID

Pro 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.

3

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.

~/.openclaw/config.yaml
1# ~/.openclaw/config.yaml
2integrations:
3 trello:
4 # Named board references
5 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 references
17 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.

4

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.

terminal
1# Create a card in a list
2curl -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 }'
13
14# Add a checklist to a card
15curl -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.

5

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.

terminal
1# Move a card to a different list
2curl -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"}'
6
7# Mark a card's due date as complete
8curl -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}'
12
13# Get all overdue cards on a board
14curl "https://api.trello.com/1/boards/BOARD_ID/cards/overdue?key=YOUR_API_KEY&token=YOUR_TOKEN&fields=id,name,due,idList"
15
16# Add a comment to a card
17curl -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.

OpenClaw Prompt

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.

OpenClaw Prompt

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.

OpenClaw Prompt

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.

typescript
1# Test both credentials together
2curl "https://api.trello.com/1/members/me?key=YOUR_API_KEY&token=YOUR_TOKEN"
3
4# Re-set if needed
5clawhub config set TRELLO_API_KEY YOUR_KEY
6clawhub config set TRELLO_TOKEN YOUR_TOKEN
7clawhub reload

Card 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.

typescript
1# List all lists on a board to verify IDs
2curl "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.

typescript
1# Update the token after regeneration
2clawhub config set TRELLO_TOKEN YOUR_NEW_NEVER_EXPIRING_TOKEN
3clawhub reload

Trello 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.

typescript
1# Add delay between bulk operations (100ms = 10 requests/second max)
2sleep 0.1

Best 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

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.

RapidDev

Talk to an Expert

Our team has built 600+ apps. Get personalized help with your project.

Book a free consultation

Need help with your project?

Our experts have built 600+ apps and can accelerate your development. Book a free consultation — no strings attached.

Book a free consultation

We put the rapid in RapidDev

Need a dedicated strategic tech and growth partner? Discover what RapidDev can do for your business! Book a call with our team to schedule a free, no-obligation consultation. We'll discuss your project and provide a custom quote at no cost.