Settings
| Setting | What it is |
|---|---|
| ConnectionRequired | The Slack connection the step signs in with. |
| ChannelRequired | Picked from the list Slack offers. |
| Post it atRequired | An ISO time like 2026-10-01T09:00:00Z, or a Unix second count. Slack accepts up to 120 days ahead, and never a time in the past. |
| Message format | "text" or "blocks" |
| Message | text |
| Blocks | text |
| Reply to (thread timestamp) | text |
Technical details
| Key | Value |
|---|---|
connection | texta connection id from `requires.connections` (provider `slack`) |
channel | texta value from the vendor's own list |
postAt | textits `{{ }}` must give a string |
messageFormat | "text" or "blocks", by default "text" |
text | text |
blocks | textused when `messageFormat` is "blocks" |
threadTs | textits `{{ }}` must give a string |
Output
| Field | Type |
|---|---|
scheduledMessageId | string |
postAtWhen Slack will post it (Unix seconds) | number |
channelChannel id | string |
Sample output, and the expression for each field
- channel"C0123ABCD"
- postAt1790000000
- scheduledMessageId"Q0123ABCD"
Errors
When a step of this node stops a run, the run page shows a code. Look it up:
Example step
The step as a flow file holds it. Replace each value in <…>.
{
"config": {
"blocks": "",
"channel": "<channel>",
"connection": "<connection id>",
"messageFormat": "text",
"postAt": "<post it at>",
"text": "",
"threadTs": ""
},
"label": "Schedule message",
"type": "slack.scheduleMessage",
"version": 1
}