Communication Nodes
Communication nodes deliver messages, alerts, and reports to users and channels. Use them as the terminal step of automation pipelines or as alert gates in error-handling branches.
| Node | Type | Output |
|---|---|---|
| Email Send | email_send | json |
| Slack Notify | slack_notify | json |
| Discord Notify | discord_notify | json |
| Telegram Notify | telegram_notify | json |
| Push Notification | push_notification | json |
| SMS Send | sms_send | json |
Email Send
Type: email_send · Category: Communication
Send an email with mapped subject, body, recipients, and optional attachments.
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
message | text | No | Body text from upstream. |
payload | json | No | Structured data for template rendering. |
attachments | file | No | File attachments. |
Outputs
| Name | Type | Shape |
|---|---|---|
delivery | json | { status: text, messageId: text, provider: text } |
Required Config
| Field | Type | Description |
|---|---|---|
to | string | Recipient email or mapping (e.g. {{workspace.owner.email}}). |
subject | template | Subject template. |
body | template | Body template (markdown supported by most providers). |
Optional Config
| Field | Type | Default | Description |
|---|---|---|---|
fromProfile | string | default | Sender profile configured in workspace settings. |
attachments | json | — | Attachment mappings: [{ name, filePath }]. |
provider | select | resend | resend · smtp |
retry | json | — | Retry policy: { attempts, backoffMs }. |
Example
{
"fromProfile": "founder-updates",
"to": "{{workspace.owner.email}}",
"subject": "LenserFight weekly AI digest - {{formatDate $.firedAt}}",
"body": "{{$.summary}}",
"attachments": [{ "name": "leaderboard.csv", "filePath": "$.leaderboardFile.url" }],
"provider": "resend",
"retry": { "attempts": 3, "backoffMs": 2000 }
}Scenario: Send the weekly AI digest to founders.
Expected output: { "status": "sent", "messageId": "resend_abc123", "provider": "resend" }
Downstream: → logger with { "message": "$.messageId" }
Valid Connections
→ logger (delivery audit)
→ Any upstream node that produces text, json, or file.
Execution Notes
- Runs in
worker/serverenvironments. fromProfilemust be configured in Workspace Settings → Email Profiles.- Use
{{secrets.keyName}}to reference API keys from secret storage.
Troubleshooting
- "Delivery failed" — check the provider configuration and
fromProfile. - "Missing attachment" — ensure
filePathresolves to a valid URL; use Object Storage Upload first. - "Template not rendering" — verify that
{{variable}}paths exist in the upstream payload.
Related Nodes
File Writer · Object Storage Upload · Schedule Trigger · Logger
Slack Notify
Type: slack_notify · Category: Communication
Send a Slack message to a channel using the configured workspace Slack integration.
Required Config
| Field | Type | Description |
|---|---|---|
channel | string | Channel name (e.g. #arena-alerts) or user id. |
text | template | Message template. Supports {{variable}} interpolation. |
Optional Config
| Field | Type | Default |
|---|---|---|
provider | string | slack |
retry | json | { attempts: 3, backoffMs: 2000 } |
Example
{
"channel": "#arena-alerts",
"text": "Battle {{$.battleId}} winner: {{$.winner}}",
"provider": "slack"
}Expected output: { "status": "sent", "ts": "1715850000.000100" }
Downstream: → logger
Related Nodes
Discord Notify · Email Send · Error Catch
Discord Notify
Type: discord_notify · Category: Communication
Send a Discord message through a webhook URL.
Required Config
| Field | Type | Description |
|---|---|---|
webhookUrl | string | Discord webhook URL or secret reference. |
content | template | Message content. |
Example
{
"webhookUrl": "{{secrets.discordArenaWebhook}}",
"content": "New battle result: {{$.winner}}"
}Expected output: { "status": "sent", "messageId": "discord_123" }
Telegram Notify
Type: telegram_notify · Category: Communication
Send a Telegram chat message through the configured bot.
Required Config
| Field | Type | Description |
|---|---|---|
chatId | string | Chat id or secret reference. |
text | template | Message text. |
Example
{
"chatId": "{{secrets.telegramOpsChat}}",
"text": "Workflow failed: {{$.error.message}}"
}Push Notification
Type: push_notification · Category: Communication
Send an in-app or device push notification to a workspace audience.
Required Config
| Field | Type | Description |
|---|---|---|
audience | string | Target audience (e.g. workspace_admins). |
title | template | Notification title. |
Optional Config
| Field | Type | Description |
|---|---|---|
body | template | Notification body. |
Example
{
"audience": "workspace_admins",
"title": "Digest ready",
"body": "{{$.summaryTitle}}"
}Expected output: { "status": "queued", "notificationId": "push_123" }
SMS Send
Type: sms_send · Category: Communication
Send an SMS alert through the configured provider (default: Twilio).
Required Config
| Field | Type | Description |
|---|---|---|
to | string | Recipient phone number or mapping. |
body | template | SMS body. |
Example
{
"to": "{{workspace.owner.phone}}",
"body": "Critical workflow failed: {{$.workflowName}}"
}Expected output: { "status": "sent", "messageId": "sms_123" }
See also: Node Catalog Index · Integration Nodes · Storage Nodes · Workflow Studio