External Messages
Where to view messages exchanged between workflows and external channels like Telegram, and how they map to execution details.
Once a workflow is running, it often needs to send things out to external channels: ask a question in Telegram and wait for your reply, post a daily report to a Slack channel, or push an alert to a DingTalk group. The console's "External messages" page collects these messages, scattered across executions, into one searchable list, and each message links back to the execution that produced it in one click. Find it under Console sidebar → External messages.
Where Messages Come From
Every record in the list comes from an execution, mainly from three sources:
- An Agent's IM tool calls — sendMessageToUser (send a message), sendFileToUser (send a file), askUserViaIM (ask and wait for a reply)
- Structured external-message events in a step's event stream — recorded alongside events as the workflow runs
- Output from delivery steps — the delivery record left after a report or file is successfully delivered to Slack or Telegram
External messages have no separate ingestion channel: the list is indexed from each execution's event stream, and execution data is always the source of truth. Message content reflects the text recorded at send time.
Supported Channels
Outbound messages cover 7 IM channels: Telegram, Slack, Discord, WhatsApp, WeCom, DingTalk, and Feishu. Telegram is bidirectional: a workflow can ask a question mid-run and wait for your reply before continuing. This page lists the messages a workflow sends; your replies are viewable in the event timeline of the corresponding execution details.
List And Filters
The list is sorted by send time, newest first, with columns for time, channel, direction, workflow, execution ID, execution status, step, and message content. Filters can be stacked:
| Filter | Description |
|---|---|
| Keyword search | Matches message content, execution ID, workflow name, step name, and channel |
| Execution Status | Waiting / Running / Completed / Failed / Cancelled / Interrupted |
| Workflow | See only messages sent by a specific workflow |
| external channels | Filter by channel, such as Telegram, Slack, or DingTalk |
| Message direction | Send (text message) or send file |
Page sizes of 20 / 50 / 100 / 200 are available. Clicking the message content or "Details" opens a drawer with the full original message (links in it are clickable), the send time, the owning workflow and step, and two buttons: "Copy message" and "View execution details."
Relationship To Execution Details
The same messages have three entry points in the console, from coarse to fine:
- The External messages page (this page) — an aggregated list across all executions, good for tracking a message by channel or keyword
- The execution list — executions that sent external messages carry a message badge; hover to see the count and a preview of the latest one
- Execution details — the "External messages" tab lists only the messages this execution sent; the event timeline shows the full context around a message, such as what the user replied after a question and whether it timed out
Every message records the name of the step that produced it. When a message's content is wrong, clicking through to the execution details and locating that step's logs is much faster than scrolling through a chat history.
Pull the Message List via the API
# 最近的外部消息(时间倒序)
curl "https://braidrun.com/api/executions/external-messages?page=1&size=50" \
-H "Authorization: Bearer <token>"
# 只看某条工作流发到 Telegram 的文本消息
curl "https://braidrun.com/api/executions/external-messages?workflowId=<workflow-id>&service=telegram&direction=outgoing" \
-H "Authorization: Bearer <token>"| Parameters | Description |
|---|---|
page / size | Pagination; size defaults to 50, max 200 (the web UI defaults to 20 per page) |
workflowId | See only a specific workflow |
status | Filter by execution status, such as COMPLETED or FAILED |
service | Channel, lowercase, such as telegram, slack, dingtalk, or feishu |
direction | Message direction: outgoing (text) or outgoing_file (file) |
search | Keyword, matching the same range as the page's search box |
Each returned record includes executionId, workflowId, workflowName, executionStatus, service, direction, content, stepName, and timestamp — enough to reconstruct in an external system "which step of which workflow sent what, when, and to which channel."
Related Pages
- Execution Monitoring and Logging — the timeline and event stream in execution details
- Public Artifact Sharing — the public links commonly seen in messages come from here
- Agent Configuration — enable IM tools in the Agent's tool set