> ## Documentation Index
> Fetch the complete documentation index at: https://docs.b3os.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Telegram: Button Click / Interaction

Triggers when a user clicks an inline keyboard button in a Telegram message. Useful for building approval workflows and interactive automations via Telegram bots. NOTE: Currently designed for wait nodes only (not as a root trigger). Frontend has no dedicated trigger config UI for this type yet.

Trigger Communications

Triggers when a user clicks an inline keyboard button in a Telegram message. Useful for building approval workflows and interactive automations via Telegram bots. NOTE: Currently designed for wait nodes only (not as a root trigger). Frontend has no dedicated trigger config UI for this type yet.

## At a Glance

| Field | Value |
| --- | --- |
| Trigger ID | `telegram-new-interaction-event` |
| Category | Communications |
| Tags | `telegram`, `messaging`, `interaction`, `button`, `approval`, `callback` |

## Trigger Configuration

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `chatId` | `string` | No | Telegram chat ID to listen for button clicks. Leave empty for all chats. |

## Trigger Result

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `triggeredAt` | `string` | Yes | Timestamp when the callback query was received \(UTC, RFC3339 format\) |
| `platform` | `string` | Yes | Platform identifier \(always 'telegram'\) |
| `callbackData` | `string` | No | Data associated with the callback button that was clicked |
| `callbackQueryId` | `string` | No | Unique identifier for the callback query |
| `chatId` | `string` | No | Telegram chat ID where the button was clicked \(string-encoded\) |
| `messageId` | `string` | No | Message ID of the message containing the button \(string-encoded\) |
| `messageText` | `string` | No | Text of the message containing the button |
| `userId` | `string` | No | Telegram user ID of the user who clicked the button \(string-encoded\) |
| `username` | `string` | No | Username of the user who clicked \(without @ prefix\) |

## Workflow Root Example

```json
{
  "nodes": {
    "root": {
      "type": "telegram-new-interaction-event",
      "payload": {
        "chatId": "example-chatId"
      },
      "children": [
        "log_event"
      ]
    },
    "log_event": {
      "type": "log",
      "payload": {
        "message": "Triggered at {{$trigger.triggeredAt}}"
      },
      "children": []
    }
  }
}
```

**Reference trigger output**

Downstream nodes can use `{{$trigger.triggeredAt}}` and any result fields listed above. Event triggers usually expose the raw source payload under a field such as `event`, `body`, `trade`, or `raw`.