https://github.com/atreyu4evr/teamdynamix
Unofficial Python SDK for TeamDynamix API integration. Features authentication handling, ticket management, and AI-powered test data generation. Built for educational and IT service management teams.
https://github.com/atreyu4evr/teamdynamix
artificial-intelligence itil teamdynamix ticketing-system
Last synced: 8 months ago
JSON representation
Unofficial Python SDK for TeamDynamix API integration. Features authentication handling, ticket management, and AI-powered test data generation. Built for educational and IT service management teams.
- Host: GitHub
- URL: https://github.com/atreyu4evr/teamdynamix
- Owner: Atreyu4EVR
- License: other
- Created: 2024-12-06T05:47:58.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-12-06T17:43:21.000Z (over 1 year ago)
- Last Synced: 2025-10-09T01:09:53.102Z (8 months ago)
- Topics: artificial-intelligence, itil, teamdynamix, ticketing-system
- Language: Python
- Homepage:
- Size: 34.2 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# TeamDynamix Python Library
An unofficial Python library for interacting with the [TeamDynamix REST APIs](https://solutions.teamdynamix.com/TDWebApi/), providing a simple and intuitive scripts for managing TeamDynamix resources.
TeamDynamix is a powerful, enterprise-grade IT Service Management (ITSM) platform used by many respected educational and government organizations to manage ITIL-based operations and services. To learn more about TeamDynamix, visit [TeamDynamix.com](https://www.teamdynamix.com/).
> **Note**: This is an unofficial SDK and is not sanctioned or supported by TeamDynamix. Use at your own discretion and at your own risk.
## Status
This project is currently under active development. While some core functionality is implemented, we're continuously working on expanding coverage to remaining TeamDynamix APIs.
## Standard Client Patterns Implemented
Robust Base Client Class
```python
tdx_client = TeamDynamix(
base_url="https://your-instance.teamdynamix.com",
username="username",
password="password"
)
```
- Single responsibility as HTTP client
- Handles authentication and requests
- Configurable through initialization
## Features
- Authentication handling with automatic token refresh
- Rate limiting support
- Comprehensive ticket management
- Type hints for better IDE support
- Dataclass-based models
- AI-powered test ticket generation using OpenAI
## Test Ticket Creation Tool
The `create_ticket.py` script provides an interactive way to generate test tickets with AI-generated content:
### Features
- Generates realistic ticket titles and descriptions using OpenAI
- Allows selection of ticket status (New, Open, In Process, etc.)
- Configurable through environment variables
- Interactive prompt for creating multiple tickets
### Setup
1. Copy `.env.example` to `.env`
2. Fill in your TeamDynamix credentials and API details
3. Add your OpenAI API key if using AI-generated content
### Usage
```bash
pip install teamdynamix
```
## Usage
```python
from teamdynamix import TDClient
client = TeamDynamix(
base_url='https://your-instance.teamdynamix.com/TDWebApi',
username='username',
password='password'
)
```
### Test Ticket Generation
The library includes a utility for generating test tickets with synthetic data using OpenAI. This can be useful for testing and development purposes:
```python
from teamdynamix.utils import TicketGenerator
generator = TicketGenerator(client)
test_ticket = generator.create_test_ticket(category="Network Issues")
```
### Or initialize with BEID/Web Services Key
```python
client = TeamDynamix(
base_url="https://your-instance.teamdynamix.com",
beid="your_beid",
web_services_key="your_web_services_key"
)
```
## Creating a Ticket
```python
ticket = client.tickets.create(
AppID=123,
TypeID=456,
Title="Test Ticket",
AccountID=789,
StatusID=1,
PriorityID=1,
RequestorUid="user@example.com",
Description="Test ticket description"
)
```
### Update ticket
```python
ticket.update({
"Comments": "New comment",
"NewStatus": 2
})
```
## Authentication
The library supports two authentication methods:
1. Username/Password
2. BEID/Web Services Key (Administrative access)
Environment variables can be used for admin credentials:
- `BEID`
- `WEB_SERVICES_KEY`
## Rate Limiting
All API methods are automatically rate-limited to comply with TeamDynamix API restrictions. The default limits are:
- Standard endpoints: 60 calls per minute
- Ticket creation: 120 calls per minute
## License
**Intent**: _This project was developed as a free service for fellow TeamDynamix users and is not supported by TeamDynamix. The license is intended to cover the use of the software for non-profit, educational, research, or personal projects._
**Non-Commercial Use:**
This project is provided under the [PolyForm Noncommercial License](https://polyformproject.org/licenses/noncommercial/1.0.0/). Feel free to use it for educational, research, or personal projects.
**Commercial Use:**
If you intend to use this software for profit-generating, revenue-driven, or otherwise commercial endeavors, please obtain a separate commercial license.
**Contact for Commercial License:**
[Ron Vallejo](https://github.com/Atreyu4EVR)
Email: [vallejor@byui.edu](mailto:vallejor@byui.edu)
## Reporting Issues
If you encounter any bugs or have feature requests, please file an issue on GitHub:
1. First, check if the issue has already been reported in the [Issues](https://github.com/Atreyu4EVR/TeamDynamix/issues) section.
2. If not, create a new issue with:
- A clear, descriptive title
- A detailed description of the issue
- Steps to reproduce the problem
- Expected vs actual behavior
- Your environment details:
- Python version
- Library version
- TeamDynamix instance (if relevant)
- Operating system
Example bug report format: