xmpp-english

English translation of n8n-nodes-xmpp - Component for sending files and messages using the XMPP protocol

Package Information

Released: 9/4/2025
Downloads: 31 weekly / 52 monthly
Latest Version: 1.0.6
Author: dbtx

Documentation

n8n-nodes-xmpp-english

Banner

npm version
GitHub issues
GitHub stars
License: MIT

Custom n8n node for integrating with XMPP servers (Openfire and Spark).
This node allows you to send and receive messages via XMPP, making it easier to automate workflows using instant messaging.

This is an English translation of the original n8n-nodes-xmpp package.


✨ Features

  • 🔄 Send XMPP messages to a given JID
  • 📥 Listen for incoming messages (webhook-like behavior)
  • 📎 Support for file transfer with XEP-0047 (In-Band Bytestreams)
  • 🛠️ Fully compatible with Openfire

📦 Installation

Install the package globally so that n8n can detect it:

npm install -g n8n-nodes-xmpp-english

Restart n8n and refresh the browser. You should now see the XMPP and XMPP Trigger nodes available in the node palette.


🚀 Usage

1. Creating Credentials

Before using the XMPP nodes, you need to set up two types of credentials:

XMPP Credentials

  • XMPP Service: WebSocket URL of your XMPP server (e.g., ws://your-server:5280/ws)
  • XMPP Domain: Domain of your XMPP server
  • JID User: Your XMPP user identifier (e.g., user@domain)
  • Password: Password for the XMPP user

RabbitMQ Credentials

  • Connection Method: Choose between URL or separate credentials
  • Host/Port/Username/Password: RabbitMQ connection details
  • Virtual Host: RabbitMQ virtual host (default: /)

2. XMPP Node

The XMPP node allows you to send messages and files:

Send Message

  • To (JID): Recipient's JID (e.g., recipient@domain)
  • Message: Text message to send

Send File

  • To (JID): Recipient's JID
  • File (Base64): Base64-encoded file content
  • File Name: Name of the file

3. XMPP Trigger Node

The XMPP Trigger node listens for incoming messages and files:

  • Priority: XMPP presence priority (default: 10)
  • IBB Timeout (s): Timeout for In-Band Bytestream file transfers (default: 120)
  • Emit Raw Stanza: Whether to emit raw XMPP stanzas for debugging

Output Format

For Messages:

{
  "status": true,
  "data": {
    "type": "conversation",
    "body": "Message content",
    "from": "sender@domain",
    "file": {}
  }
}

For Files:

{
  "status": true,
  "data": {
    "type": "file",
    "body": "File filename.ext received from sender@domain",
    "from": "sender@domain",
    "file": {
      "fileName": "filename.ext",
      "mime": "",
      "base64": "base64-encoded-content"
    }
  }
}

🔧 Technical Details

This package uses:

  • @xmpp/client for XMPP connections
  • amqplib for RabbitMQ integration
  • XEP-0047 (In-Band Bytestreams) for file transfers
  • XEP-0096 (SI File Transfer) for file transfer negotiation

The nodes use RabbitMQ as a message queue system to handle XMPP message and file sending operations asynchronously.


🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.


📄 License

This project is licensed under the MIT License - see the LICENSE file for details.


🙏 Acknowledgments

  • Original package: n8n-nodes-xmpp by Thiago Vazzoler Loureiro
  • This is an English translation with improved documentation

Discussion