matrix-supportbot/README.md

70 lines
3 KiB
Markdown
Raw Permalink Normal View History

# Matrix Support Bot
[![Support Private.coffee!](https://shields.private.coffee/badge/private.coffee-support%20us!-pink?logo=coffeescript)](https://private.coffee)
[![Matrix](https://shields.private.coffee/badge/Matrix-join%20us!-blue?logo=matrix)](https://matrix.to/#/#matrix-supportbot:private.coffee)
[![PyPI](https://shields.private.coffee/pypi/v/matrix-supportbot)](https://pypi.org/project/matrix-supportbot/)
[![PyPI - Python Version](https://shields.private.coffee/pypi/pyversions/matrix-supportbot)](https://pypi.org/project/matrix-supportbot/)
[![PyPI - License](https://shields.private.coffee/pypi/l/matrix-supportbot)](https://pypi.org/project/matrix-supportbot/)
[![Latest Git Commit](https://shields.private.coffee/gitea/last-commit/privatecoffee/matrix-supportbot?gitea_url=https://git.private.coffee)](https://git.private.coffee/privatecoffee/matrix-supportbot)
Matrix Support Bot is a support ticket bot for the Matrix protocol built using the `matrix-nio` library. The bot allows users to open support tickets and communicate with support operators in a structured manner. Operators can manage tickets and relay messages between customer-facing and operator-facing rooms.
## Features
- The bot's state is stored in a Matrix room, so no external database is required.
- Users can invite the bot to a direct message (DM) and receive instructions on how to open a support ticket.
- Users can open support tickets using the `!supportbot openticket` command.
- The bot creates a new customer-facing room for each ticket and invites the user to it.
- Operators are notified of new tickets in a shared operator room.
- Operators can join operator-facing rooms for each ticket and communicate with customers.
- Messages between customer-facing and operator-facing rooms are relayed by the bot.
- Operators can close tickets and list open tickets using bot commands.
- Supports relaying of different message types, including text and media.
## Commands
### User Commands
- `!supportbot openticket` - Opens a new support ticket and creates a customer-facing room.
### Operator Commands
- `!supportbot invite <ticket_id>` - Invites an operator to the operator-facing room for the specified ticket.
- `!supportbot close <ticket_id>` - Closes the specified ticket.
- `!supportbot list` - Lists all open tickets.
## Installation
1. Install from PyPI:
```bash
pip install matrix-supportbot
```
2. Create a `config.yaml` file with your Matrix credentials and operator room ID:
```yaml
homeserver: "https://homeserver.example"
username: "your_username"
password: "your_password"
operator_room_id: "!your_operator_room_id:homeserver.example"
```
## Usage
Run the bot with the following command:
```bash
supportbot
```
The bot will log in to your Matrix server, join the operator room, and start listening for commands and invites.
## Contributing
Contributions are welcome! Please fork the repository and create a pull request with your changes.
## License
This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.