<!-- BusyBot node reference — https://busybot.net/tools/wekan/ -->

> Node: Wekan (`wekan`) · Action · v1
> Category: Productivity · Credentials: Wekan API (`wekanApi`)
> Updated: 2026-08-16

# Wekan

> Manage Wekan kanban boards, lists, cards, checklists, and comments

## Overview

Wekan is an open-source, self-hosted kanban board application. This tool provides full CRUD operations for boards, lists, cards, card comments, checklists, and checklist items via the Wekan REST API. Authentication uses username/password login to obtain a Bearer token for subsequent API calls. All API endpoints follow the pattern {url}/api/{endpoint}.

**Category:** Productivity  
**Tool Name:** `wekan`  
**Version:** 1

**Appearance:** Icon: `lucide-LayoutList` | Color: `#006B75`

## Node Type

**Action** — processes input items and produces output

## Input / Output

| Direction | Port(s) |
|-----------|--------|
| Input | `Input` |
| Output | `Output`, `Error` |

## Credentials

This tool requires **Wekan API** credentials.
See the [Credentials Guide](https://busybot.net/credentials/wekan-api/) for setup instructions.

### Resources

| Resource | Value |
|----------|-------|
| Board | `board` |
| Card | `card` |
| Card Comment | `cardComment` |
| Checklist | `checklist` |
| Checklist Item | `checklistItem` |
| List | `list` |

### Operations

**Board** (`board`)

| Operation | Value | Description |
|-----------|-------|-------------|
| Create | `create` | Create a new board. |
| Delete | `delete` | Delete a board. |
| Get | `get` | Get a single board. |
| Get Many | `getAll` | List the boards belonging to a user. |

**Card** (`card`)

| Operation | Value | Description |
|-----------|-------|-------------|
| Create | `create` | Create a new card in a list. |
| Delete | `delete` | Delete a card. |
| Get | `get` | Get a single card. |
| Get Many | `getAll` | List the cards in a list or a swimlane. |
| Update | `update` | Update an existing card. |

**Card Comment** (`cardComment`)

| Operation | Value | Description |
|-----------|-------|-------------|
| Create | `create` | Add a comment to a card. |
| Delete | `delete` | Delete a comment. |
| Get | `get` | Get a single comment. |
| Get Many | `getAll` | List the comments on a card. |

**Checklist** (`checklist`)

| Operation | Value | Description |
|-----------|-------|-------------|
| Create | `create` | Add a checklist to a card. |
| Delete | `delete` | Delete a checklist. |
| Get | `get` | Get a single checklist. |
| Get Many | `getAll` | List the checklists on a card. |

**Checklist Item** (`checklistItem`)

| Operation | Value | Description |
|-----------|-------|-------------|
| Delete | `delete` | Delete a checklist item. |
| Get | `get` | Get a single checklist item. |
| Update | `update` | Update a checklist item. |

**List** (`list`)

| Operation | Value | Description |
|-----------|-------|-------------|
| Create | `create` | Create a new list on a board. |
| Delete | `delete` | Delete a list. |
| Get | `get` | Get a single list. |
| Get Many | `getAll` | List the lists on a board. |

### Parameters

Every string parameter accepts `{{ $json.field }}` expressions, which are evaluated once per input item.

#### Board: Create

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Title (`title`) | `string` | Yes | — | The title of the board. |
| Owner | `string` | Yes | — | The user ID of the board owner. Find this via the Wekan admin panel or API (GET /api/users). |
| Additional Fields (`additionalFields`) | `collection` | No | `{}` | Optional board settings sent with the create request. |
| — Active | `boolean` | No | `false` | Whether to set the board active. |
| — Admin | `boolean` | No | `false` | Whether to set the owner as admin of the board. |
| — Color | `options` | No | — | The color of the board. |
| | | | | Options: `belize`, `midnight`, `nephritis`, `pomegranate`, `pumpkin`, `wisteria` |
| — Comment Only | `boolean` | No | `false` | Whether to enable comment-only mode. |
| — No Comments | `boolean` | No | `false` | Whether to disable comments. |
| — Permission | `options` | No | `private` | Set the board permission. |
| | | | | Options: `private`, `public` |
| — Worker | `boolean` | No | `false` | Whether to only move cards, assign himself to card and comment. |

#### Board: Delete

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Board ID (`boardId`) | `string` | Yes | — | The ID of the board to delete. |

#### Board: Get

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Board ID (`boardId`) | `string` | Yes | — | The ID of the board to get. |

#### Board: Get Many

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| User ID | `string` | Yes | — | The ID of the user to list boards for. Find this via the Wekan admin panel or API (GET /api/users). |
| Return All | `boolean` | No | `false` | Whether to return all results or only up to a given limit. |
| Limit | `number` | No | `100` | Max number of results to return. Accepts 1–200. _(shown when Return All is `false`)_ |

#### Card: Create

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Board ID (`boardId`) | `string` | Yes | — | The ID of the board that the list belongs to. |
| List ID (`listId`) | `string` | Yes | — | The ID of the list to create the card in. |
| Title (`title`) | `string` | Yes | — | The title of the card. |
| Swimlane ID (`swimlaneId`) | `string` | Yes | — | The swimlane ID for the new card. Find via GET /api/boards/{boardId}/swimlanes. |
| Author ID (`authorId`) | `string` | Yes | — | The user ID of the card author. Find via GET /api/users. |
| Additional Fields (`additionalFields`) | `collection` | No | `{}` | Optional card fields sent with the create request. |
| — Assignees | `string` | No | — | Comma-separated list of assignee user IDs. |
| — Description | `string` | No | — | The description of the card. |
| — Members | `string` | No | — | Comma-separated list of member user IDs. |

#### Card: Delete

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Board ID (`boardId`) | `string` | Yes | — | The ID of the board that the list belongs to. |
| List ID (`listId`) | `string` | Yes | — | The ID of the list that the card belongs to. |
| Card ID (`cardId`) | `string` | Yes | — | The ID of the card to delete. |

#### Card: Get

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Board ID (`boardId`) | `string` | Yes | — | The ID of the board that the list belongs to. |
| List ID (`listId`) | `string` | Yes | — | The ID of the list that the card belongs to. |
| Card ID (`cardId`) | `string` | Yes | — | The ID of the card to get. |

#### Card: Get Many

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Board ID (`boardId`) | `string` | Yes | — | The ID of the board that the list belongs to. |
| From Object | `options` | Yes | `list` | Whether to get cards from a list or a swimlane. |
| | | | | Options: `list`, `swimlane` |
| List ID (`listId`) | `string` | Yes | — | The ID of the list to get cards from. _(shown when From Object is `list`)_ |
| Swimlane ID (`swimlaneId`) | `string` | No | — | The ID of the swimlane to get cards from. Find via GET /api/boards/{boardId}/swimlanes. _(shown when From Object is `swimlane`)_ |
| Return All | `boolean` | No | `false` | Whether to return all results or only up to a given limit. |
| Limit | `number` | No | `100` | Max number of results to return. Accepts 1–200. _(shown when Return All is `false`)_ |

#### Card: Update

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Board ID (`boardId`) | `string` | Yes | — | The ID of the board that the list belongs to. |
| List ID (`listId`) | `string` | Yes | — | The ID of the list that the card belongs to. |
| Card ID (`cardId`) | `string` | Yes | — | The ID of the card to update. |
| Update Fields (`updateFields`) | `collection` | No | `{}` | The card fields to change. Only the fields you add are sent. |
| — Author ID | `string` | No | — | Update the owner of the card (user ID). |
| — Assignees | `string` | No | — | Comma-separated list of assignee user IDs. |
| — Color | `options` | No | — | The new color of the card. |
| | | | | Options: `black`, `blue`, `crimson`, `darkgreen`, `gold`, `gray`, `green`, `indigo`, `lime`, `magenta`, `mistyrose`, `navy`, `orange`, `paleturquoise`, `peachpuff`, `pink`, `plum`, `purple`, `red`, `saddlebrown`, `silver`, `sky`, `slateblue`, `white`, `yellow` |
| — Description | `string` | No | — | The new description of the card. |
| — Due At | `string` | No | — | The due date of the card (ISO 8601 datetime). |
| — End At | `string` | No | — | The end date of the card (ISO 8601 datetime). |
| — Label IDs | `string` | No | — | The label IDs attached to the card (comma-separated). |
| — Move to List ID | `string` | No | — | The new list ID of the card (move operation). |
| — Members | `string` | No | — | Comma-separated list of member user IDs. |
| — Over Time | `boolean` | No | `false` | Whether the card is over time. |
| — Parent ID | `string` | No | — | The parent card ID. |
| — Received At | `string` | No | — | The received date of the card (ISO 8601 datetime). |
| — Sort | `number` | No | `0` | The internally used sort value of a card. |
| — Spent Time | `number` | No | `0` | The spent time on the card (in minutes). |
| — Start At | `string` | No | — | The start date of the card (ISO 8601 datetime). |
| — Swimlane ID | `string` | No | — | The new swimlane ID of the card. |
| — Title | `string` | No | — | The new title of the card. |

#### Card Comment: Create

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Board ID (`boardId`) | `string` | Yes | — | The ID of the board that the card belongs to. |
| Card ID (`cardId`) | `string` | Yes | — | The ID of the card to comment on. |
| Author ID (`authorId`) | `string` | Yes | — | The user ID of the comment author. |
| Comment | `string` | Yes | — | The comment text. |

#### Card Comment: Delete

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Board ID (`boardId`) | `string` | Yes | — | The ID of the board that the card belongs to. |
| Card ID (`cardId`) | `string` | Yes | — | The ID of the card. |
| Comment ID (`commentId`) | `string` | Yes | — | The ID of the comment to delete. |

#### Card Comment: Get

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Board ID (`boardId`) | `string` | Yes | — | The ID of the board that the card belongs to. |
| Card ID (`cardId`) | `string` | Yes | — | The ID of the card. |
| Comment ID (`commentId`) | `string` | Yes | — | The ID of the comment to get. |

#### Card Comment: Get Many

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Board ID (`boardId`) | `string` | Yes | — | The ID of the board that the card belongs to. |
| Card ID (`cardId`) | `string` | Yes | — | The ID of the card to get comments for. |
| Return All | `boolean` | No | `false` | Whether to return all results or only up to a given limit. |
| Limit | `number` | No | `100` | Max number of results to return. Accepts 1–200. _(shown when Return All is `false`)_ |

#### Checklist: Create

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Board ID (`boardId`) | `string` | Yes | — | The ID of the board where the card is in. |
| Card ID (`cardId`) | `string` | Yes | — | The ID of the card to add checklist to. |
| Title (`title`) | `string` | Yes | — | The title of the checklist. |
| Items | `string` | No | — | Comma-separated list of item titles to add to the checklist. |

#### Checklist: Delete

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Board ID (`boardId`) | `string` | Yes | — | The ID of the board that the card belongs to. |
| Card ID (`cardId`) | `string` | Yes | — | The ID of the card that the checklist belongs to. |
| Checklist ID (`checklistId`) | `string` | Yes | — | The ID of the checklist to delete. |

#### Checklist: Get

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Board ID (`boardId`) | `string` | Yes | — | The ID of the board that the card belongs to. |
| Card ID (`cardId`) | `string` | Yes | — | The ID of the card that the checklist belongs to. |
| Checklist ID (`checklistId`) | `string` | Yes | — | The ID of the checklist to get. |

#### Checklist: Get Many

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Board ID (`boardId`) | `string` | Yes | — | The ID of the board that the card belongs to. |
| Card ID (`cardId`) | `string` | Yes | — | The ID of the card to get checklists for. |
| Return All | `boolean` | No | `false` | Whether to return all results or only up to a given limit. |
| Limit | `number` | No | `100` | Max number of results to return. Accepts 1–200. _(shown when Return All is `false`)_ |

#### Checklist Item: Delete

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Board ID (`boardId`) | `string` | Yes | — | The ID of the board that the card belongs to. |
| Card ID (`cardId`) | `string` | Yes | — | The ID of the card that the checklist belongs to. |
| Checklist ID (`checklistId`) | `string` | Yes | — | The ID of the checklist that the item belongs to. |
| Checklist Item ID | `string` | Yes | — | The ID of the checklist item. |

#### Checklist Item: Get

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Board ID (`boardId`) | `string` | Yes | — | The ID of the board that the card belongs to. |
| Card ID (`cardId`) | `string` | Yes | — | The ID of the card that the checklist belongs to. |
| Checklist ID (`checklistId`) | `string` | Yes | — | The ID of the checklist that the item belongs to. |
| Checklist Item ID | `string` | Yes | — | The ID of the checklist item. |

#### Checklist Item: Update

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Board ID (`boardId`) | `string` | Yes | — | The ID of the board that the card belongs to. |
| Card ID (`cardId`) | `string` | Yes | — | The ID of the card that the checklist belongs to. |
| Checklist ID (`checklistId`) | `string` | Yes | — | The ID of the checklist that the item belongs to. |
| Checklist Item ID | `string` | Yes | — | The ID of the checklist item. |
| Update Fields (`updateFields`) | `collection` | No | `{}` | The checklist item fields to change. Only the fields you add are sent. |
| — Title | `string` | No | — | The new title for the checklist item. |
| — Finished | `boolean` | No | `false` | Whether the item is checked/finished. |

#### List: Create

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Board ID (`boardId`) | `string` | Yes | — | The ID of the board to create the list in. |
| Title (`title`) | `string` | Yes | — | The title of the list. |

#### List: Delete

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Board ID (`boardId`) | `string` | Yes | — | The ID of the board that the list belongs to. |
| List ID (`listId`) | `string` | Yes | — | The ID of the list to delete. |

#### List: Get

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Board ID (`boardId`) | `string` | Yes | — | The ID of the board that the list belongs to. |
| List ID (`listId`) | `string` | Yes | — | The ID of the list to get. |

#### List: Get Many

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Board ID (`boardId`) | `string` | Yes | — | The ID of the board to get lists from. |
| Return All | `boolean` | No | `false` | Whether to return all results or only up to a given limit. |
| Limit | `number` | No | `100` | Max number of results to return. Accepts 1–200. _(shown when Return All is `false`)_ |

#### All Operations

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Max Concurrency | `number` | No | `10` | Maximum number of items to process concurrently. Accepts 1–100. |

## Output Data

The Wekan API response is merged into the item JSON at the top level, so the response fields sit alongside the fields the item already carried. The rest of the input item passes through unchanged and binary data is forwarded untouched.

`Create`, `Delete`, `Get` and `Update` return a single record, so one input item produces one output item.

The `Get Many` operations — `Board: Get Many`, `Card: Get Many`, `Card Comment: Get Many`, `Checklist: Get Many` and `List: Get Many` — return an array and fan out: one output item per record, each carrying the input item's JSON plus that record's fields. With Return All off, the array is trimmed to Limit before the items are emitted. When a `Get Many` matches nothing, that input item produces no output items at all, so guard downstream nodes that assume at least one item per input.

Field names come from Wekan itself and are not rewritten, so reference them downstream exactly as the API returns them, e.g. `{{ $json.fieldName }}`.

## Usage Examples

- Create a new card on a Wekan board
- List all boards for a user
- Update a card with new description and labels
- Add a checklist with items to a card
- Get all comments on a card

## Example Configuration

Create a board and set its permission, color and member flags in one call:

```json
{
  "type": "wekan",
  "parameters": {
    "resource": "board",
    "operation": "create",
    "title": "Project Management Board",
    "owner": "user123",
    "additionalFields": {
      "isActive": true,
      "isAdmin": false,
      "color": "nephritis",
      "isCommentOnly": false,
      "isNoComments": false,
      "permission": "private",
      "isWorker": false
    }
  }
}
```

Create a card in a list, with a description and assignees:

```json
{
  "type": "wekan",
  "parameters": {
    "resource": "card",
    "operation": "create",
    "boardId": "board123",
    "listId": "list456",
    "title": "New Task",
    "swimlaneId": "swimlane789",
    "authorId": "user123",
    "additionalFields": {
      "description": "Task description here",
      "assignees": "user456,user789",
      "members": "member1,member2"
    }
  }
}
```

Get every card in a list:

```json
{
  "type": "wekan",
  "parameters": {
    "resource": "card",
    "operation": "getAll",
    "boardId": "board123",
    "fromObject": "list",
    "listId": "list456",
    "returnAll": true
  }
}
```

Update a card — retitle it, recolor it, set a due date and log spent time:

```json
{
  "type": "wekan",
  "parameters": {
    "resource": "card",
    "operation": "update",
    "boardId": "board123",
    "listId": "list456",
    "cardId": "card789",
    "updateFields": {
      "title": "Updated Task Title",
      "description": "Updated task description",
      "color": "orange",
      "dueAt": "2024-12-31T23:59:59Z",
      "assignees": "user456,user789",
      "members": "member1,member2",
      "isOverTime": false,
      "sort": 1,
      "spentTime": 120
    }
  }
}
```

Add a comment to a card:

```json
{
  "type": "wekan",
  "parameters": {
    "resource": "cardComment",
    "operation": "create",
    "boardId": "board123",
    "cardId": "card789",
    "authorId": "user123",
    "comment": "This is a comment on the card"
  }
}
```

Add a checklist and its items in one call — the items are comma-separated:

```json
{
  "type": "wekan",
  "parameters": {
    "resource": "checklist",
    "operation": "create",
    "boardId": "board123",
    "cardId": "card789",
    "title": "Task Checklist",
    "items": "Review requirements,Write code,Test implementation,Deploy"
  }
}
```

Tick off a checklist item and rename it:

```json
{
  "type": "wekan",
  "parameters": {
    "resource": "checklistItem",
    "operation": "update",
    "boardId": "board123",
    "cardId": "card789",
    "checklistId": "checklist456",
    "checklistItemId": "item123",
    "updateFields": {
      "title": "Updated checklist item title",
      "isFinished": true
    }
  }
}
```

Return only the first five cards in a list:

```json
{
  "type": "wekan",
  "parameters": {
    "resource": "card",
    "operation": "getAll",
    "boardId": "board123",
    "fromObject": "list",
    "listId": "list456",
    "returnAll": false,
    "limit": 5
  }
}
```

### Error Handling

| Mode | Behavior |
|------|----------|
| **stop** | Halts workflow on first error |
| **continue** | Skips failed items, passes successful ones through |
| **errorPort** | Routes failed items to Error output port |

## Tips

Manage boards, lists, cards, comments, checklists, and checklist items in a self-hosted Wekan kanban board via its REST API.