No description
Find a file
lorentz f27b23bec8 fix: pre-populate classifications instead of syncing from Autotask API
- Autotask REST API doesn't expose ClassificationIcons endpoint
- Created migration to populate 17 standard classification icons
- Removed sync button from UI (classifications are pre-loaded)
- Includes: Tools Only, Co-Managed, Wulf 365 Essentials, Partner, etc.
- Users can now select any classification to exclude from kiosk
2026-02-03 20:54:35 -05:00
app fix: pre-populate classifications instead of syncing from Autotask API 2026-02-03 20:54:35 -05:00
components feat: increase ticket font sizes and fix company name display 2026-02-03 09:09:46 -05:00
dev feat: add authentication, user management, and admin features 2026-01-31 12:43:14 -05:00
docs feat: add authentication, user management, and admin features 2026-01-31 12:43:14 -05:00
hooks Add comprehensive admin features and multi-system integration 2025-11-19 14:18:16 -05:00
lib fix: pre-populate classifications instead of syncing from Autotask API 2026-02-03 20:54:35 -05:00
migrations fix: pre-populate classifications instead of syncing from Autotask API 2026-02-03 20:54:35 -05:00
public feat: update favicon to match dashboard Activity icon 2026-02-02 21:29:52 -05:00
scripts feat: implement structured logging for sync operations 2026-01-23 08:02:02 -05:00
tasks feat: add authentication, user management, and admin features 2026-01-31 12:43:14 -05:00
.dockerignore Restructure: rename to Pulse and move app to root 2025-10-28 23:08:54 -04:00
.gitignore chore: remove build artifacts and update gitignore 2025-10-28 23:21:59 -04:00
_clientMiddlewareManifest.json Restructure: rename to Pulse and move app to root 2025-10-28 23:08:54 -04:00
ADDIGY_API_GUIDE.md Add Addigy API integration and Docker deployment with Redis caching 2025-10-28 22:49:08 -04:00
AUTOTASK_API_GUIDE.md Add comprehensive admin features and multi-system integration 2025-11-19 14:18:16 -05:00
components.json Restructure: rename to Pulse and move app to root 2025-10-28 23:08:54 -04:00
docker-compose.yml feat: add authentication, user management, and admin features 2026-01-31 12:43:14 -05:00
DOCKER_README.md Restructure: rename to Pulse and move app to root 2025-10-28 23:08:54 -04:00
Dockerfile Restructure: rename to Pulse and move app to root 2025-10-28 23:08:54 -04:00
eslint.config.mjs Restructure: rename to Pulse and move app to root 2025-10-28 23:08:54 -04:00
favicon.0b3bf435.ico Restructure: rename to Pulse and move app to root 2025-10-28 23:08:54 -04:00
FIX_TICKET_SYNC.md Add comprehensive admin features and multi-system integration 2025-11-19 14:18:16 -05:00
get-config-text.js Add comprehensive admin features and multi-system integration 2025-11-19 14:18:16 -05:00
mcp.json feat: add authentication, user management, and admin features 2026-01-31 12:43:14 -05:00
middleware.ts feat: add authentication, user management, and admin features 2026-01-31 12:43:14 -05:00
next-development.log Restructure: rename to Pulse and move app to root 2025-10-28 23:08:54 -04:00
next-devtools-config.json Restructure: rename to Pulse and move app to root 2025-10-28 23:08:54 -04:00
next.config.ts Restructure: rename to Pulse and move app to root 2025-10-28 23:08:54 -04:00
package-lock.json feat: add scheduled sync system with admin UI 2026-01-26 10:24:58 -05:00
package.json feat: add scheduled sync system with admin UI 2026-01-26 10:24:58 -05:00
postcss.config.mjs Restructure: rename to Pulse and move app to root 2025-10-28 23:08:54 -04:00
POSTGRES_SYNC_SETUP.md Add comprehensive admin features and multi-system integration 2025-11-19 14:18:16 -05:00
README.md Restructure: rename to Pulse and move app to root 2025-10-28 23:08:54 -04:00
routes.d.ts Restructure: rename to Pulse and move app to root 2025-10-28 23:08:54 -04:00
test-config.js Add comprehensive admin features and multi-system integration 2025-11-19 14:18:16 -05:00
test-time-entry.js Add comprehensive admin features and multi-system integration 2025-11-19 14:18:16 -05:00
tsconfig.json Restructure: rename to Pulse and move app to root 2025-10-28 23:08:54 -04:00

Autotask API Integration Dashboard

A modern Next.js application for interacting with the Autotask PSA REST API, built with React, TypeScript, shadcn/ui, and Tailwind CSS.

Features

  • Dashboard Overview - View tickets, tasks, and company information
  • Ticket Management - List, filter, and manage support tickets
  • Task Tracking - Monitor and update project tasks
  • Company Selector - Filter data by company
  • Resource Management - Filter by assigned resources
  • Modern UI - Beautiful interface built with shadcn/ui components
  • Dark Mode Support - Automatic dark/light theme
  • Real-time Updates - Fetch latest data from Autotask API
  • Secure Authentication - API credentials stored in environment variables

Tech Stack

  • Framework: Next.js 15 with App Router
  • Language: TypeScript
  • Styling: Tailwind CSS v4
  • UI Components: shadcn/ui
  • Icons: Lucide React
  • Date Handling: date-fns
  • API Integration: Native fetch with custom client

Prerequisites

Before you begin, ensure you have:

  1. Node.js 18+ installed
  2. Autotask API credentials:
    • API Username (format: apiuser@YOURDOMAIN.COM)
    • API Secret/Password
    • API Integration Code
    • API Base URL (e.g., https://webservices1.autotask.net/atservicesrest/v1.0)

Installation

  1. Clone the repository and navigate to the app directory:
cd /Users/lorentz/projects/PSA-Utils/autotask-app
  1. Install dependencies:
npm install
  1. Create a .env.local file in the root directory:
# Autotask API Configuration
AUTOTASK_API_URL=https://webservices1.autotask.net/atservicesrest/v1.0
AUTOTASK_USERNAME=your-api-username@yourdomain.com
AUTOTASK_SECRET=your-api-password
AUTOTASK_API_INTEGRATION_CODE=your-tracking-code
  1. Run the development server:
npm run dev
  1. Open http://localhost:3000 in your browser

Project Structure

autotask-app/
├── app/
│   ├── api/              # API route handlers
│   │   ├── tickets/      # Ticket endpoints
│   │   ├── tasks/        # Task endpoints
│   │   ├── companies/    # Company endpoints
│   │   ├── resources/    # Resource endpoints
│   │   └── picklists/    # Picklist endpoints
│   └── page.tsx          # Main dashboard page
├── components/
│   ├── tickets/          # Ticket-related components
│   ├── tasks/            # Task-related components
│   ├── companies/        # Company-related components
│   └── ui/               # shadcn/ui components
├── lib/
│   ├── services/         # API client and services
│   │   ├── autotask-client.ts
│   │   └── autotask-factory.ts
│   ├── types/            # TypeScript type definitions
│   │   └── autotask.ts
│   └── hooks/            # Custom React hooks
│       └── use-api.ts
└── public/               # Static assets

API Endpoints

The application provides the following API routes:

  • GET /api/tickets - Fetch tickets (with optional filters)
  • POST /api/tickets - Create a new ticket
  • GET /api/tasks - Fetch tasks (with optional filters)
  • POST /api/tasks - Create a new task
  • GET /api/companies - Fetch all active companies
  • GET /api/resources - Fetch resources/users
  • GET /api/picklists - Fetch picklist values for dropdowns

Key Features Implementation

Rate Limiting

The API client includes built-in rate limiting (10 requests/second) to comply with Autotask API limits.

Error Handling

Comprehensive error handling with user-friendly error messages and retry capabilities.

Type Safety

Full TypeScript support with detailed type definitions for all Autotask entities.

Responsive Design

Mobile-friendly interface that works on all device sizes.

Development

Adding New Features

  1. New API Endpoints: Add route handlers in app/api/
  2. New Components: Create components in components/
  3. New Entity Types: Update types in lib/types/autotask.ts
  4. New API Methods: Extend lib/services/autotask-client.ts

Testing

Run the development server and test with your Autotask sandbox environment:

npm run dev

Building for Production

npm run build
npm start

Security Considerations

  • Never commit .env.local or any file containing API credentials
  • Use environment variables for all sensitive configuration
  • Implement proper authentication for production deployment
  • Consider adding user authentication layer
  • Use HTTPS in production

Common Issues & Solutions

API Connection Issues

  • Verify your API credentials are correct
  • Check the API URL matches your Autotask zone
  • Ensure your API user has appropriate permissions

Rate Limiting

  • The client automatically handles rate limiting
  • If you encounter 429 errors, the client will retry

CORS Issues

  • API routes act as a proxy to avoid CORS issues
  • All Autotask API calls go through Next.js API routes

Future Enhancements

  • Add Redis caching for improved performance
  • Implement real-time updates with WebSockets
  • Add attachment upload functionality
  • Create ticket/task editing forms
  • Add user authentication and session management
  • Implement advanced search and filtering
  • Add data export functionality
  • Create dashboard widgets and analytics

Contributing

Feel free to submit issues and enhancement requests!

License

This project is for internal use. Please refer to your organization's policies.

Support

For issues related to:


Built with ❤️ using Next.js, React, and shadcn/ui