Package Information
Documentation
n8n-nodes-xmpp-english

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

