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

> Node: Twake (`twake`) · Action · v1
> Category: Productivity · Credentials: Twake Cloud API (`twakeCloudApi`)
> Updated: 2026-08-16

# Twake

> Send messages to channels on the Twake collaboration platform.

## Overview

Twake is a team collaboration platform by Linagora. This tool sends messages to Twake channels via the Twake Cloud plugin API. Messages support custom sender names and icons. Authentication uses a workspace key sent as a Bearer token. The API base URL is https://plugins.twake.app/plugins/n8n.

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

**Appearance:** Icon: `lucide-MessageCircle` | Color: `#7B68EE`

## Node Type

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

## Input / Output

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

## Credentials

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

### Resources

| Resource | Value |
|----------|-------|
| Message | `message` |

### Operations

**Message** (`message`)

| Operation | Value | Description |
|-----------|-------|-------------|
| Send | `send` | Send a message to a channel. |

### Parameters

#### Message: Send

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Channel ID | `string` | Yes | — | The ID of the target Twake channel. Find it in the Twake app under channel settings or use the Twake API to list channels. Supports expressions like {{ $json.channelId }}. |
| Content | `string` | Yes | — | The text content of the message to send. Supports expressions like {{ $json.message }}. |
| Additional Fields | `collection` | No | `{}` | Additional optional fields for the message. |
| — Sender Icon | `string` | No | — | URL of a custom image/icon to use as the sender avatar. |
| — Sender Name | `string` | No | — | Custom display name for the message sender. |

#### All Operations

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

## Output Data

One output item per input item — this node never fans out. The saved message object returned by Twake is merged into the item JSON at the top level, so the rest of the incoming item's fields pass through alongside it, and binary data on the input item is forwarded unchanged.

Every operation on this node (`message` / `send`) returns a single saved message, so there is no list-style operation and no empty-result case to guard against. Fields of the saved message sit directly on the item — reference them downstream as `{{ $json.fieldName }}`.

## Usage Examples

- Send a message to a Twake channel
- Post a notification to a Twake workspace channel
- Send a Twake message with a custom sender name
- Send a Twake message with a custom sender icon

## Example Configuration

Send plain text to a channel:

```json
{
  "type": "twake",
  "parameters": {
    "resource": "message",
    "operation": "send",
    "channelId": "ch_abc123def456",
    "content": "Hello team! This is a test message from the automation."
  }
}
```

Send a message under a custom sender name and avatar:

```json
{
  "type": "twake",
  "parameters": {
    "resource": "message",
    "operation": "send",
    "channelId": "ch_abc123def456",
    "content": "Automated deployment notification: Version 2.1.3 has been successfully deployed to production.",
    "additionalFields": {
      "senderName": "Deploy Bot",
      "senderIcon": "https://example.com/icons/deploy-bot.png"
    }
  }
}
```

Override only the sender name and keep the default avatar:

```json
{
  "type": "twake",
  "parameters": {
    "resource": "message",
    "operation": "send",
    "channelId": "ch_abc123def456",
    "content": "Daily backup completed successfully at 03:00 AM.",
    "additionalFields": {
      "senderName": "Backup System"
    }
  }
}
```

Throttle a large batch of messages by lowering the concurrency:

```json
{
  "type": "twake",
  "parameters": {
    "resource": "message",
    "operation": "send",
    "channelId": "ch_abc123def456",
    "content": "Batch notification message",
    "maxConcurrency": 5
  }
}
```

Use a custom sender name and icon to create a branded notification experience:

```json
{
  "type": "twake",
  "parameters": {
    "resource": "message",
    "operation": "send",
    "channelId": "ch_notifications",
    "content": "New feature released: Real-time collaboration is now available!",
    "additionalFields": {
      "senderName": "Feature Bot",
      "senderIcon": "https://company.com/bots/feature-bot.png"
    }
  }
}
```

Send urgent system messages with appropriate sender identification:

```json
{
  "type": "twake",
  "parameters": {
    "resource": "message",
    "operation": "send",
    "channelId": "ch_alerts",
    "content": "HIGH: Database connection pool is approaching capacity (85%)",
    "additionalFields": {
      "senderName": "System Monitor",
      "senderIcon": "https://company.com/icons/alert.png"
    }
  }
}
```

Post a plain team update built from the incoming item:

```json
{
  "type": "twake",
  "parameters": {
    "resource": "message",
    "operation": "send",
    "channelId": "ch_general",
    "content": "{{ $json.summary }}"
  }
}
```

### 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

Send messages to Twake channels via the Twake Cloud plugin API with optional custom sender name and icon.

### Important Notes

- The `channelId` must be a valid Twake channel identifier
- The `content` field supports plain text; check Twake documentation for any markdown or formatting support
- The `additionalFields` collection uses a flat structure - do not wrap fields in arrays or use `_default` keys
- All sender customization through `additionalFields` is optional and can be used independently