Overview
The "Send Message" operation of the Zulip HITL (Human-in-the-loop) node sends a formatted message to a specified Zulip stream and topic. This operation is useful for notifying teams, sharing updates, or triggering conversations within Zulip streams directly from an n8n workflow.
Typical scenarios include:
- Sending alerts or notifications to a team channel.
- Posting workflow status updates or results.
- Sharing information that requires team visibility without waiting for approval or response.
For example, you can send a message like "Deployment completed successfully" to a "devops-updates" stream under the topic "Deployments".
Properties
| Name | Meaning |
|---|---|
| Stream Name | The name of the Zulip stream where the message will be sent. Must be lowercase, 1-60 characters, and follow Zulip naming conventions (letters, numbers, hyphens). |
| Topic | The topic within the stream to organize the message. Helps group related messages. Required and must be 1-60 characters. |
| Query Content | The actual message content to send. Supports Markdown formatting for rich text (bold, italic, code, links, tables, math, mentions, spoilers, emojis, etc.). Required with 1-10000 characters. |
| Formatting Options | Collection of options to control how the message content is processed and formatted, including: |
| - Allowed HTML Tags (comma-separated list) | |
| - Enable Emoji (boolean) | |
| - Enable Markdown (boolean) | |
| - Enable Math Blocks (boolean) | |
| - Enable Mentions (boolean) | |
| - Enable Spoilers (boolean) | |
| - Enable Tables (boolean) | |
| - Forbidden HTML Tags (comma-separated list) | |
| - Message Style (Plain Text, Basic Markdown, Rich Markdown, Zulip Enhanced) | |
| - XSS Protection (boolean, recommended) | |
| Enable Debug Mode | Whether to enable detailed debug logging for troubleshooting. Shows detailed logs about operations, API calls, and internal processing. Use only when needed as it may impact performance. |
| Debug Level | Level of detail for debug logging (Debug, Error Only, Info, Trace, Verbose, Warnings). Only shown if debug mode enabled. |
| Debug Categories | Specific categories to enable debug logging for (e.g., API Calls, Authentication, Network, Performance). Only shown if debug mode enabled. |
| Debug Output Format | Format for debug log output: JSON (machine-readable) or Pretty (human-readable). Only shown if debug mode enabled. |
| Performance Tracking | Whether to track operation timing and memory usage. Helps identify performance bottlenecks but adds slight overhead. Only shown if debug mode enabled. |
| Include Stack Traces | Whether to include stack traces in error and debug logs. Useful for debugging but increases log volume significantly. Only shown if debug mode enabled. |
Output
The output JSON object includes:
success: Boolean indicating if the message was sent successfully.messageId: The unique identifier of the sent message in Zulip.streamName: The name of the stream where the message was sent.topic: The topic under which the message was posted.content: The processed message content as sent (HTML/Markdown processed).timestamp: ISO timestamp of when the message was sent.userFeedback: A structured success message describing the outcome, useful for logging or user display.
No binary data is output by this operation.
Dependencies
- Requires valid credentials for Zulip API access, including server URL, bot email, and API key.
- Uses the Zulip API client internally to send messages.
- Supports Markdown processing with configurable options.
- Optional debug logging depends on internal logger and debug configuration modules.
Troubleshooting
- Missing or invalid credentials: The node throws an error if no valid API credentials are provided.
- Invalid stream or topic names: Validation errors occur if the stream name or topic does not meet Zulip's naming rules or length constraints.
- Empty or invalid message content: The node validates that the message content is not empty after processing; otherwise, it throws an error.
- API errors when sending message: If the Zulip API returns an error, the node surfaces this with a descriptive message.
- Debug mode impact: Enabling debug mode with high verbosity levels may affect performance; use only when necessary.
- XSS protection: By default, XSS protection is enabled to sanitize message content; disabling it may expose security risks.