Zulip HITL

Human-in-the-loop integration with Zulip

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.

Links and References

Discussion