Skip to main content

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

FieldDescriptionRequired
API KeyAPI key from your Trello accountYes
API TokenAPI token from your Trello accountYes
OAuth SecretOptional OAuth secretNo

Trello API Credentials Setup

  1. Create a board (if you don't have any): go to https://trello.com → Create new board
  2. Go to Power-Up admin: https://trello.com/power-ups/admin
  3. Click "New" → Fill in basic info → Create Power-Up
  4. Copy API Key from the Power-Up management page
  5. 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

  1. Navigate to the Credentials section in NINA
  2. Click Add New Credential
  3. Fill in:
    • Integration Service: "Trello"
    • API Key: Your Trello API key
    • API Token: Your Trello API token
    • OAuth Secret: Optional
  4. Click Test Connection
  5. Click Save

Supported Resources and Operations

Board

OperationDescription
CreateCreate a new board
GetGet a board by ID
UpdateUpdate a board's properties
DeleteDelete a board

List

OperationDescription
CreateCreate a new list in a board
GetGet a list by ID
Get ManyGet lists from a board
Get CardsGet cards from a list
UpdateUpdate a list
ArchiveArchive a list

Card

OperationDescription
CreateCreate a new card in a list
GetGet a card by ID
UpdateUpdate a card
DeleteDelete a card

Checklist

OperationDescription
CreateCreate a new checklist on a card
GetGet a checklist by ID
Get ManyGet checklists from a card
DeleteDelete a checklist
Create ItemCreate a checklist item

Label

OperationDescription
CreateCreate a new label on a board
GetGet a label by ID
Get AllGet all labels from a board
UpdateUpdate a label
DeleteDelete a label
Add to CardAdd a label to a card
Remove from CardRemove a label from a card

Attachment

OperationDescription
CreateAdd an attachment to a card
GetGet an attachment by ID
Get ManyGet attachments from a card
DeleteDelete an attachment
OperationDescription
SearchSearch for boards, cards, members, and organizations
Search MembersSearch specifically for Trello members

Parameter Merging

Parameters are merged from:

  1. Node parameters
  2. Extracted parameters from input data
  3. 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/limit where available.
  • Validate date-time formats (ISO 8601) for due fields.

Troubleshooting

IssueResolution
401 UnauthorizedVerify API key/token; ensure token scope includes read/write as needed
404 Not FoundConfirm IDs (board/list/card/label) are correct and accessible
Rate limitingAdd retries/backoff; reduce request frequency
Invalid positionUse top, bottom, or numeric position for pos
Permissions errorsEnsure you have access to the board/list and proper organization permissions