Skip to main content

Trello ExecModule

Overview

TrelloModule connects ValkyrAI workflows to Trello REST API v1 through the native map I/O ExecModule ABI. Workflow Studio discovers it as TrelloModule. The Trello API key and member API token resolve only from encrypted fields on a bound IntegrationAccount.

The first production operation set covers the board-to-card lifecycle used by delivery, sales, support, and release workflows:

  • get_member, list_boards, get_board, create_board, update_board, and guarded delete_board
  • list_lists and create_list
  • list_cards, get_card, create_card, update_card, and guarded delete_card
  • add_comment

Read-only operations can retry transient failures. Board, list, card, and comment mutations run once so an ambiguous timeout cannot duplicate a write. Permanent board and card deletion requires explicit confirmation.

Usage

  1. Create or select a dedicated Trello automation member.
  2. Generate a Trello API key and authorize a member API token with only the boards and Workspaces required by the workflow.
  3. Store the API key in the encrypted IntegrationAccount.apiKey field and the API token in the encrypted IntegrationAccount.password field.
  4. Set the account status to READY and bind it through ExecModuleConfig.authConfig.integrationAccount.
  5. Run get_member with memberId: "me", then list_boards, before configuring board, list, or card mutations.
  6. Reconcile Trello state by board, list, card, or action ID before repeating any write after an ambiguous network failure.

Workflow input cannot provide credentials or redirect the connector away from the trusted Trello API endpoint. The provider requires both the API key and member token on each request; ValkyrAI appends them only after validating the fixed route and never includes them in outputs or logs.

Inputs

NameTypeRequirementDefaultDescription and constraints
operationstringRequiredNoneOne of the 14 documented operations.
memberIdstringMember/board discoverymeTrello member ID, username, or me; 1–128 safe ID characters.
boardIdstringBoard/list operationsNoneBoard ID or short link; 1–128 safe ID characters.
listIdstringCard list/createNoneTrello list ID; 1–128 safe ID characters.
cardIdstringCard/comment operationsNoneCard ID or short link; 1–128 safe ID characters.
organizationIdstringOptional board create/updateNoneTrello Workspace ID. Trello still calls this provider field idOrganization.
namestringCreate board/list/cardNoneNon-empty name, at most 4,096 characters.
descriptionstringOptional board/card writeNoneMaps to Trello desc; at most 16,384 characters.
cardobject or JSON stringOptional card writeNoneAdditional allowlisted card fields; 256 KiB maximum.
commentTextstringadd_commentNonePlain-text comment, 1–16,384 characters.
positionstringOptional list/card writeNonetop, bottom, or a non-negative numeric Trello position.
duestringOptional card writeNoneISO-8601 timestamp or literal null to clear.
startstringOptional card writeNoneISO-8601 timestamp or literal null to clear.
idMembersstring arrayOptional card writeNoneUp to 100 bounded Trello member IDs.
idLabelsstring arrayOptional card writeNoneUp to 100 bounded Trello label IDs.
closedbooleanOptional updateUnsetArchives or reopens a board or card when explicitly supplied.
dueCompletebooleanOptional card updateUnsetChanges the card due-completion state when explicitly supplied.
filterstringOptional list readopenopen, closed, or all; board discovery also permits starred.
beforestringOptional list_cardsNoneCard ID or ISO timestamp used as Trello's page continuation.
limitintegerOptional list read100Client result cap from 1 through 1,000.
defaultListsbooleanOptional create_boardtrueAsks Trello to create its default lists.
confirmDeletebooleanDelete operationsfalseMust be true before a permanent board or card delete request is sent.

The card object accepts only name, desc, closed, idList, idMembers, idLabels, due, start, dueComplete, pos, address, and locationName. Typed inputs override matching fields. Nested arbitrary payloads, unknown fields, credential-like fields, oversized values, and more than 100 member or label IDs fail before a provider request.

Outputs

NameTypeWhen presentDescription
statusstringAlwayssuccess or error.
operationstringAlwaysNormalized operation name.
attemptsintegerAlwaysTotal provider HTTP attempts.
httpStatusintegerProvider respondedLast Trello HTTP status.
dataobjectSingle-resource or mutation successTrello resource or an empty object for an empty successful response.
idstringProvider returned itConvenience resource or action ID.
url / shortUrlstringProvider returned themConvenience Trello URLs.
items / countarray / integerList successBounded resources and returned count.
hasMorebooleanList successtrue only when a full card page indicates another page may exist.
nextBeforestringFull card pageLast returned card ID for a subsequent before request.
requestIdstringProvider supplies oneSafe request trace reference.
errorobjectFailureSafe {code, message, httpStatus?, retryable} details.

The API key, member token, and credential-bearing request query never enter outputs. Provider error text passes through ValkyrAI's shared sensitive-data redaction policy and explicit replacement for both Trello secrets.

IntegrationAccount Requirements

SettingRequirement
ProviderTrello API key plus a member-authorized API token
AuthorizationToken limited to the boards and Workspace objects required by the workflow
accountNameHuman-readable Trello automation identity
apiKeyRequired encrypted SecureField containing the Trello API key
passwordRequired encrypted SecureField containing the Trello member API token
statusREADY or legacy unset status; CLOSED and ERROR fail closed

Trello API tokens act with the authorizing member's permissions. Use a dedicated member with least-privilege board membership, rotate both secrets through the IntegrationAccount lifecycle, and revoke the token from Trello when the workflow is retired. OAuth1 authorization, token refresh, webhook secrets, and Power-Up administration remain outside this module's workflow inputs.

Configuration

{
"version": "1.0.0",
"authConfig": {
"authStrategy": 1,
"integrationAccount": "integration-account:trello-release-ops"
},
"retryPolicy": {
"maxAttempts": 3,
"backoffStrategy": "EXPONENTIAL",
"initialDelayMs": 1000,
"maxDelayMs": 60000,
"jitter": false
},
"executionConfig": {"timeoutMs": 30000},
"payloadConfig": {
"parameters": "{\"operation\":\"list_cards\",\"listId\":\"64f2234567890abcdef12345\",\"limit\":100}"
}
}

The integration-account value is symbolic. Persisted workflows use the generated relationship and never plaintext Trello credentials.

Operations

OperationTrello behaviorSide effect
get_memberReads the authorized member identity by ID, username, or me.Read-only; safe retries.
list_boardsLists open, closed, all, or starred boards visible to a member.Read-only; safe retries; client result cap.
get_boardReads one board's safe core fields.Read-only; safe retries.
create_boardCreates a named board, optionally in a Workspace and with default lists.New board; single attempt.
update_boardUpdates explicitly supplied name, description, Workspace, or closed state.Mutation; single attempt.
delete_boardPermanently deletes one board after confirmation.Irreversible; single attempt.
list_listsLists open, closed, or all lists on one board.Read-only; safe retries; client result cap.
create_listCreates a named list on one board at an optional position.New list; single attempt.
list_cardsLists up to 1,000 cards from one list with filter and before continuation.Read-only; safe retries.
get_cardReads one card's safe core fields.Read-only; safe retries.
create_cardCreates one bounded card on a list.New card; single attempt.
update_cardUpdates explicitly supplied card fields, including movement or archival.Mutation; single attempt.
delete_cardPermanently deletes one card after confirmation.Irreversible; single attempt.
add_commentAdds one plain-text comment to a card.New action/comment; single attempt.

Errors and Failure Modes

CodeTypical causeRetryableResolution
VALIDATION_ERRORMissing/invalid ID, missing create field, bad position/timestamp, unknown card field, invalid JSON, empty update, missing credential, or absent deletion guard.NoCorrect input or reconnect the IntegrationAccount; no unsafe request was sent.
UNSUPPORTED_OPERATIONUnknown operation.NoSelect a documented operation.
INTEGRATION_ACCOUNT_REQUIREDNo bound account.NoBind a Trello IntegrationAccount.
INTEGRATION_ACCOUNT_NOT_READYAccount status is closed/error.NoRepair or replace the account.
TRELLO_HTTP_400Provider validation failed.NoCorrect the bounded request and re-read provider state.
TRELLO_HTTP_401API key or member token is invalid or revoked.NoRotate both IntegrationAccount secrets.
TRELLO_HTTP_403Member lacks access to the board, list, card, or Workspace.NoGrant the dedicated member the minimum required Trello access.
TRELLO_HTTP_404Resource ID is wrong, deleted, or hidden from the member.NoRe-run discovery with the same IntegrationAccount.
TRELLO_HTTP_429 / 5xxRate limit or transient provider failure.Yes for readsHonor Retry-After; reconcile writes before any manual retry.
NETWORK_ERRORTimeout, DNS, TLS, or connectivity failure.Yes for readsVerify connectivity and inspect Trello state before repeating a write.
RESPONSE_TOO_LARGEResponse exceeded 5 MiB.NoNarrow the board/list scope or reduce the card limit.
INVALID_PROVIDER_RESPONSEA list endpoint did not return an array.NoVerify Trello compatibility and use the safe request trace.

Example

Create one approved production release card:

{
"operation": "create_card",
"listId": "64f2234567890abcdef12345",
"name": "Verify public Trello ExecModule launch",
"description": "Confirm canonical documentation, article, header image, and public READ grants.",
"due": "2026-08-14T17:00:00Z",
"position": "top",
"idMembers": ["64f4234567890abcdef12345"],
"idLabels": ["64f5234567890abcdef12345"]
}

Expected result:

{
"status": "success",
"operation": "create_card",
"attempts": 1,
"httpStatus": 200,
"id": "64f3234567890abcdef12345",
"url": "https://trello.com/c/abc123/verify-public-trello-execmodule-launch",
"data": {
"id": "64f3234567890abcdef12345",
"name": "Verify public Trello ExecModule launch",
"idList": "64f2234567890abcdef12345"
}
}

Notes

  • Pagination: list_cards requests up to 1,000 cards. A full page returns the last card ID as nextBefore; reuse it only with the same list and filter. Board and list endpoints return provider arrays that the module caps client-side.
  • Rate limits: only reads retry HTTP 408, 429, 500, 502, 503, and 504 according to RetryPolicy, honoring numeric or HTTP-date Retry-After. Writes never retry automatically.
  • API limits: structured card input is capped at 256 KiB, provider responses at 5 MiB, list results at 1,000, member/label arrays at 100 IDs, comments and descriptions at 16,384 characters, and identifiers at 128 characters.
  • Idempotency: Trello does not provide a universal idempotency key for these mutations. Each write is single-attempt. Reconcile by board, list, card, or action ID before repeating an ambiguous create, update, delete, or comment.
  • Destructive behavior: delete_board and delete_card are permanent and require confirmDelete=true. Prefer update_board or update_card with closed:true when archival satisfies the workflow.
  • Security: the API key and member token remain in separate encrypted IntegrationAccount fields. Fixed-host routing, bounded paths and parameters, card-field allowlisting, redacted provider errors, and absence of arbitrary raw requests prevent secret reflection and SSRF-style routing.
  • API behavior: Trello still uses organization names in parts of API v1 for current Workspace resources. Member permissions, Enterprise restrictions, board visibility, Power-Ups, automation rules, and provider policy can impose constraints beyond local validation.
  • External verification: request construction, dual-secret query authentication, board/list/card routing, card continuation, validation, redaction, read retry, single-attempt writes, deletion guards, and metadata discovery have deterministic local tests. Live Trello authorization and provider behavior require separately authorized Trello credentials and are not exercised in repository tests.
  • Deferred operations: labels, checklists, attachments, board membership changes, card member/label delta endpoints, custom fields, reactions, votes, notifications, search, batch API, webhooks/triggers, OAuth1 lifecycle, Enterprise administration, and arbitrary raw requests.
  • Functional references: n8n Trello node source, n8n Trello operations, and Trello REST API.