Trello Integration Guide
Overview
The Trello integration allows your NINA workflows to interact with Trello's API to manage boards, lists, cards, checklists, labels, attachments, and search across objects. It supports API Key + Token authentication and includes dynamic selectors for boards and lists.
Status
Supported resources and operations:
- Board: Create, Get, Update, Delete
- List: Create, Get, Get Many, Get Cards, Update, Archive
- Card: Create, Get, Update, Delete
- Checklist: Create, Get, Get Many, Delete, Create Item
- Label: Create, Get, Get All, Update, Delete, Add to Card, Remove from Card
- Attachment: Create, Get, Get Many, Delete
- Search: Search, Search Members
Credential Configuration
Authentication Method
API Key + Token
| Field | Description | Required |
|---|---|---|
| API Key | API key from your Trello account | Yes |
| API Token | API token from your Trello account | Yes |
| OAuth Secret | Optional OAuth secret | No |
Trello API Credentials Setup
- Create a board (if you don't have any): go to https://trello.com → Create new board
- Go to Power-Up admin: https://trello.com/power-ups/admin
- Click "New" → Fill in basic info → Create Power-Up
- Copy API Key from the Power-Up management page
- Generate Token: Click "Token" link OR visit:
https://trello.com/1/authorize?expiration=never&scope=read,write,account&response_type=token&key=YOUR_API_KEY_HERE
Creating a Trello Credential
- Navigate to the Credentials section in NINA
- Click Add New Credential
- Fill in:
- Integration Service: "Trello"
- API Key: Your Trello API key
- API Token: Your Trello API token
- OAuth Secret: Optional
- Click Test Connection
- Click Save
Supported Resources and Operations
Board
| Operation | Description |
|---|---|
| Create | Create a new board |
| Get | Get a board by ID |
| Update | Update a board's properties |
| Delete | Delete a board |
List
| Operation | Description |
|---|---|
| Create | Create a new list in a board |
| Get | Get a list by ID |
| Get Many | Get lists from a board |
| Get Cards | Get cards from a list |
| Update | Update a list |
| Archive | Archive a list |
Card
| Operation | Description |
|---|---|
| Create | Create a new card in a list |
| Get | Get a card by ID |
| Update | Update a card |
| Delete | Delete a card |
Checklist
| Operation | Description |
|---|---|
| Create | Create a new checklist on a card |
| Get | Get a checklist by ID |
| Get Many | Get checklists from a card |
| Delete | Delete a checklist |
| Create Item | Create a checklist item |
Label
| Operation | Description |
|---|---|
| Create | Create a new label on a board |
| Get | Get a label by ID |
| Get All | Get all labels from a board |
| Update | Update a label |
| Delete | Delete a label |
| Add to Card | Add a label to a card |
| Remove from Card | Remove a label from a card |
Attachment
| Operation | Description |
|---|---|
| Create | Add an attachment to a card |
| Get | Get an attachment by ID |
| Get Many | Get attachments from a card |
| Delete | Delete an attachment |
Search
| Operation | Description |
|---|---|
| Search | Search for boards, cards, members, and organizations |
| Search Members | Search specifically for Trello members |
Parameter Merging
Parameters are merged from:
- Node parameters
- Extracted parameters from input data
- Full input data
Node parameters take precedence. Resource locator fields support list selection or direct ID input.
Examples
Create Card in a List
{
"integration_service": "trello",
"resource": "card",
"operation": "create",
"parameters": {
"list": {"mode": "id", "value": "5e98b8c7b6e8ab0c5c9d1234"},
"name": "Investigate alert: CPU spike on prod",
"additionalFields": {
"desc": "Triggered from monitoring workflow",
"pos": "top",
"due": "2025-01-31T17:00:00Z"
}
}
}
Move Card to Another List
{
"integration_service": "trello",
"resource": "card",
"operation": "update",
"parameters": {
"cardId": "64adbe6a1f2c4c0012a34567",
"updateFields": {
"idList": {"mode": "id", "value": "5e98b8c7b6e8ab0c5c9d5678"},
"pos": "bottom"
}
}
}
Create Board
{
"integration_service": "trello",
"resource": "board",
"operation": "create",
"parameters": {
"name": "Security Operations",
"additionalFields": {
"desc": "SOC daily operations",
"defaultLabels": true,
"defaultLists": true,
"prefs_permissionLevel": "private"
}
}
}
Get Lists of a Board
{
"integration_service": "trello",
"resource": "list",
"operation": "getMany",
"parameters": {
"boardId": "5e98b8c7b6e8ab0c5c9d1111",
"returnAll": true,
"additionalFields": {"filter": "open"}
}
}
Add Label to Card
{
"integration_service": "trello",
"resource": "label",
"operation": "addToCard",
"parameters": {
"cardId": "64adbe6a1f2c4c0012a34567",
"labelId": "64adbe6a1f2c4c0012a39999"
}
}
Attach File to Card (URL)
{
"integration_service": "trello",
"resource": "attachment",
"operation": "create",
"parameters": {
"cardId": "64adbe6a1f2c4c0012a34567",
"binaryData": false,
"url": "https://example.com/report.pdf",
"additionalFields": {"name": "Incident Report"}
}
}
Search Cards by Query
{
"integration_service": "trello",
"resource": "search",
"operation": "search",
"parameters": {
"query": "Incident AND board:Security Operations",
"additionalFields": {
"modelTypes": ["cards"],
"cardsLimit": 20,
"partial": true
}
}
}
Best Practices
- Use least-privilege tokens; revoke or rotate if exposed.
- Use resource locators for reliable board/list selection.
- Prefer IDs for stability; names can change.
- Implement pagination with
returnAll/limitwhere available. - Validate date-time formats (ISO 8601) for
duefields.
Troubleshooting
| Issue | Resolution |
|---|---|
| 401 Unauthorized | Verify API key/token; ensure token scope includes read/write as needed |
| 404 Not Found | Confirm IDs (board/list/card/label) are correct and accessible |
| Rate limiting | Add retries/backoff; reduce request frequency |
| Invalid position | Use top, bottom, or numeric position for pos |
| Permissions errors | Ensure you have access to the board/list and proper organization permissions |