n8n-nodes-umich-tdx
v1.0.5
Published
An n8n Node to connect to UM's TDX Proxy APIs.
Maintainers
Readme
n8n-nodes-umich-tdx
This is an n8n community node that provides integration with the University of Michigan (UMich) TeamDynamix (TDX) API. It enables you to interact with UMich TDX services directly from your n8n workflows, including ticket creation, modification, search, and user lookup operations.
The UMich TDX API is a service that allows programmatic access to TeamDynamix ticket management functionality for University of Michigan systems.
n8n is a fair-code licensed workflow automation platform.
Table of Contents
Installation
Credentials
Resources and Operations
Validation and Security
Test vs Production Environment
Usage Examples
Compatibility
Resources
Installation
Follow the installation guide in the n8n community nodes documentation.
In summary:
- Install the package in your n8n instance
- Restart n8n
- The "UMich TDX" node will be available in the node palette
Credentials
To use this node, you need to set up OAuth2 credentials with the U-M API Directory.
Prerequisites
- U-M API Directory Account: You need access to the U-M API Directory or alternatively the U-M Test API Directory.
- API Application: Create an application in the U-M API Directory with the
tdxticketscope - API Key and Secret: Obtain your API Key (Client ID) and API Secret (Client Secret) from your application
Setting Up Credentials
- In n8n, add a new credential of type "UMich TDX OAuth2 API"
- Configure the following fields:
- Environment: Choose either "Test" or "Production" (see Test vs Production Environment below)
- App ID: Your TeamDynamix App ID (numeric value)
- API Key: The "Key" value from your app in the U-M API Directory
- API Secret: The "Secret" value from your app in the U-M API Directory
- Click "Connect my account" to authenticate
- The credentials will automatically handle OAuth2 token management
Credential Fields
| Field | Description | Required | |-------|-------------|----------| | Environment | Choose between Test or Production environment | Yes | | App ID | Your TeamDynamix App ID (numeric) | Yes | | API Key | Client ID from U-M API Directory | Yes | | API Secret | Client Secret from U-M API Directory | Yes |
Resources and Operations
The UMich TDX node supports four main resources, each with specific operations:
1. Ticket Search
Search and retrieve ticket information from TDX.
Operations
- Get Ticket by ID: Retrieve a single TDX ticket by its ID
- Parameters:
Ticket ID(required): The numeric ID of the ticket to retrieve
- Parameters:
2. Ticket Creation
Create new tickets in TDX.
Operations
- Create Ticket: Create a new TDX ticket
- Required Parameters:
Title: The title of the ticket (max 500 characters)Body: The description/body of the ticket (max 2000 characters)Requestor: Email address of the requestor (must be a valid@umich.eduemail)Service ID: The service ID that the ticket is related to (numeric)
- Optional Parameters:
Responsible Group ID: The responsible group ID to assign the ticket to (numeric)
- Additional Fields (optional):
Apply Defaults: Whether to apply default values for unspecified properties (default:true)Enable Notify Reviewer: Whether reviewer notifications should be enabled (default:false)Notify Requestor: Whether the requestor should be notified on ticket creation (default:false)Notify Responsible: Whether responsible resources should be notified (default:false)Allow Requestor Creation: Whether to create a requestor if not found (default:true)Prefer Requestor Account and Priority: Use requestor's default account/priority (default:false)
- Hidden Parameters (automatically set):
Source ID: Set to8(Systems) by defaultStatus ID: Set to0by default
- Required Parameters:
3. Ticket Modification
Modify existing tickets in TDX.
Operations
Add Comment to Ticket: Add a comment to an existing TDX ticket
- Parameters:
Ticket ID(required): The ID of the ticket to modify (numeric)New Comment(required): The comment text to add (max 2000 characters)
- Parameters:
Add Ticket Contact: Add a contact (user) to a TDX ticket
- Parameters:
Ticket ID(required): The ID of the ticket to modify (numeric)TDX User UID(required): The internal TDX UID of the user to assign (alphanumeric)
- Parameters:
4. User Lookup
Look up user information in TDX.
Operations
- Find UID by Uniqname: Find a user's internal TDX UID by their U-M Uniqname
- Parameters:
U-M Uniqname(required): The uniqname to search for (3-8 lowercase letters only)
- Parameters:
Validation and Security
The node includes comprehensive validation measures to ensure data integrity and security:
Input Validation
Email Validation:
- Must be a valid email format
- Must be a
@umich.eduemail address (enforced) - Used for: Requestor Email
Uniqname Validation:
- Must be 3-8 characters long
- Must contain only lowercase letters
- Used for: User Lookup operations
UID Validation:
- Must be alphanumeric (letters, numbers, dots, hyphens, underscores)
- Prevents path traversal attacks
- Used for: Contact UID, Ticket ID
Numeric ID Validation:
- Must be numeric only
- Used for: Service ID, Responsible Group ID, Status ID, Source ID, Ticket ID
Text Length Validation:
- Title: Maximum 500 characters
- Description/Body: Maximum 2000 characters
- Comments: Maximum 2000 characters
- Prevents DoS attacks from excessively large payloads
Source ID Validation:
- Only allows specific source IDs
- Currently only allows
8(Systems) - Can be expanded in the future
Security Features
- Path Traversal Protection: URL path segments are validated to prevent directory traversal attacks (
../, query strings, etc.) - OAuth2 Authentication: All requests use secure OAuth2 bearer token authentication
- Input Sanitization: All user inputs are validated before being sent to the API
- Environment Isolation: Test and production environments are completely separate
Test vs Production Environment
The node supports both Test and Production environments. The environment is selected when configuring credentials.
Test Environment
- Base URL:
https://gw-test.api.it.umich.edu/um/it - Token URL:
https://gw-test.api.it.umich.edu/um/oauth2/token - Use Case: Development, testing, and experimentation
- Data: Separate from production data
Production Environment
- Base URL:
https://gw.api.it.umich.edu/um/it - Token URL:
https://gw.api.it.umich.edu/um/oauth2/token - Use Case: Live production workflows
- Data: Real production TDX data
Switching Environments
To switch between environments:
- Create separate credentials for Test and Production
- Or update your existing credentials and change the "Environment" field
- The node will automatically use the correct API endpoints based on your credential configuration
Important: Always test your workflows in the Test environment before using Production credentials.
Usage Examples
Example 1: Create a Ticket
- Add a "UMich TDX" node to your workflow
- Select Resource: "Ticket Creation"
- Select Operation: "Create Ticket"
- Fill in:
- Title: "Example Ticket"
- Body: "This is an example ticket created via n8n"
- Requestor: "[email protected]"
- Service ID: "31"
- Responsible Group ID: "944" (optional)
- Configure additional fields as needed
- Execute the workflow
Example 2: Look Up User and Add to Ticket
- First node: "User Lookup" → "Find UID by Uniqname"
- Enter uniqname: "jdoe"
- Second node: "Ticket Modification" → "Add Ticket Contact"
- Ticket ID: "12345"
- TDX User UID: Use the UID from the first node's output
Example 3: Get Ticket and Add Comment
- First node: "Ticket Search" → "Get Ticket by ID"
- Ticket ID: "12345"
- Second node: "Ticket Modification" → "Add Comment to Ticket"
- Ticket ID: "12345"
- New Comment: "Status update from automated workflow"
Compatibility
- Minimum n8n version: Compatible with n8n workflow API version 1
- Node.js: Compatible with Node.js versions supported by n8n
- TypeScript: Built with TypeScript 5.9.2
Resources
Documentation
- n8n Community Nodes Documentation
- U-M API Directory - TDX Ticket API Documentation
- TeamDynamix API Documentation
- U-M API Directory
Finding IDs
- Service ID: Found in the JSON response when retrieving a ticket via "Ticket Search"
- Responsible Group ID: In TDX, go to the create ticket form, search for groups in the Responsible field, click "View" under the profile, and find the "Group ID" in the upper-left portion of the page
- TDX User UID: Found in the JSON response when using "User Lookup" → "Find UID by Uniqname"
Support
For issues, questions, or contributions, please refer to the repository:
- Repository: n8n-umich-tdx
- Author: Chris Puzzuoli ([email protected])
Note: This node is designed specifically for University of Michigan TeamDynamix integration. All email addresses must be @umich.edu addresses, and you must have appropriate access to the U-M API Directory to use this node.
