Starting a conversation
Message extras
Whenmessage.platform === "slack", Skyline surfaces:
| Field | Type | Description |
|---|---|---|
isFromMe | boolean | Whether the message was sent by the bot. |
slack.subtype | string (optional) | Slack message subtype, such as "bot_message". |
slack.threadTs | string (optional) | Thread timestamp if the message is in a thread. |
slack.ts | string (optional) | Message timestamp. |
slack.teamId | string | Workspace team id. |
Supported features
| Feature | Support |
|---|---|
| Text messages | Send and receive |
| Media / files | Send (channel.sendFile) |
| Reactions | Send and receive |
| Threaded replies | Send and receive |
| Typing indicators | Accepted (no-op — Slack Web API has no bot typing) |
| Message edits | Send and receive (channel.edit, edited signal) |
| Unsend | Not supported by Slack for bots |
Send and reply
Reactions
Inbound
With Socket Mode (appTokens when you pass credentials, or an app token saved in the dashboard), inbound messages merge into app.incoming with message.platform === "slack".
Without Socket Mode, configure a project webhook and handle Slack Events API deliveries.
Signals
| Signal | When |
|---|---|
reaction | User adds or removes an emoji reaction |
edited | A message body changes (message_changed) |