List Messages
zulip.get_messages
ActionChat & messagingconnection required
Calls the Zulip API with the connection's credentials.
Read a window of messages around an anchor, optionally narrowed.
Connection
- Required
- Yes — the node will not save without one
- Auth type
- Username & password
- Providers
- Zulip
- Secret shape
- {"email": "…", "api_key": "…"} — HTTP Basic, email as the username
- Config it needs
- base_url
- Resolved by
- config.connection_id, else node.connection_id
Configuration
5 fields, none required. A dotted path is a nested object and name[] an array of objects — the editor renders the same tree.
| Field | Type | Required | Default | Constraints | Example |
|---|---|---|---|---|---|
anchor Where the window is centred: a message id, or newest, oldest or first_unread. | string | No | newest | — | newest |
num_before How many messages older than the anchor to return. | number | No | 50 | ≥ 0 | — |
num_after How many messages newer than the anchor to return. | number | No | 0 | ≥ 0 | — |
narrow Zulip narrow filters, each an object with an operator and an operand, such as {"operator": "channel", "operand": "general"}. | array | No | — | array of object | — |
apply_markdown Return message content as rendered HTML; switch it off to get the raw Markdown. | boolean | No | true | — | — |
Example configuration
Every value below is the contract’s own example or default — nothing invented.
{
"anchor": "newest",
"apply_markdown": true,
"num_after": 0,
"num_before": 50
}Output
One shape.
result
| Field | Type | Example |
|---|---|---|
items The records Zulip returned. | array | — |
count How many records this response carried. | number | — |
items[].id The message id. | number | — |
items[].content The message body, rendered or raw per apply_markdown. | string | — |
items[].sender_id User id of whoever sent the message. | number | — |
items[].sender_email Email address of the sender. | string | — |
items[].sender_full_name Display name of the sender. | string | — |
items[].type Either 'stream' for a channel message or 'private' for a direct one. | string | — |
items[].stream_id The channel the message was sent to, for a channel message. | number | — |
items[].subject The topic of a channel message. | string | — |
items[].timestamp When the message was sent, as a Unix timestamp. | number | — |
items[].reactions Reactions on the message. | array | — |
items[].flags The current user's flags on the message, such as 'read'. | array | — |
anchor The anchor message id Zulip actually used. | number | — |
found_newest True when the window reached the newest one. | boolean | — |
found_oldest True when the window reached the oldest one. | boolean | — |
history_limited True when the organization's plan cut the history short. | boolean | — |
{
"anchor": 0,
"count": 0,
"found_newest": false,
"found_oldest": false,
"history_limited": false,
"items": [
{
"content": "",
"flags": [],
"id": 0,
"reactions": [],
"sender_email": "",
"sender_full_name": "",
"sender_id": 0,
"stream_id": 0,
"subject": "",
"timestamp": 0,
"type": ""
}
]
}See List Messages run in a workflow.
In a technical demo we add the Zulip connection, drop the node on the canvas and let Workflow Health pre-flight it before the first real run.