Initial Data Import
The Initial Data Import page is a critical setup component that trains QuantumOps on your historical ticket data and imports agent information from HaloPSA. This foundational step enables AI-powered analysis, intelligent routing, and pattern recognition from day one.
Page Location: /InitialDataImport
Required Access: Administrator
[insert screenshot of Initial Data Import page here]
Overview
Why Initial Training Matters
Without proper historical data training, QuantumOps would need to self-train on new tickets only—potentially taking weeks or months to reach optimal performance. The Initial Data Import accelerates this by:
- Training the Semantic Memory Engine — Historical tickets are analyzed by Claude AI to extract knowledge patterns, solutions, and context
- Building Client & Environment Understanding — Learning about your clients' unique environments, technologies, and common issues
- Enabling Pattern Recognition & Categorization — Identifying recurring issues and enabling automatic categorization
- MSP Customization — Adapting to your terminology, processes, SLAs, and service delivery methods
Immediate Benefits After Training
| Capability | Description |
|---|---|
| Knowledge Retrieval | Instant access to solutions from past tickets |
| Accurate Categorization | AI-powered ticket routing and categorization |
| Client-Specific Solutions | Recommendations tailored to each client's environment |
| Reduced Resolution Time | Faster fixes for common issues |
| Smart Summaries | AI-generated ticket insights |
| Proactive Detection | Early identification of recurring problems |
| Enhanced Productivity | Immediate value for your support team |
| Consistent Quality | Uniform service standards across your team |
Getting Started
When you first access the Initial Data Import page, an onboarding modal appears explaining the importance of initial training. Review this information carefully—it contains best practices that directly impact your AI's effectiveness.
Before You Begin
Ensure you have:
- Active HaloPSA connection configured in QuantumOps
- Administrator access to QuantumOps
- Understanding of your ticket volume and types
- Reviewed which clients/ticket types to include or exclude
- Set aside time for the import process (varies by data volume - the import runs in the background after being started and can run for days if a large amount of tickets are being imported or if your rate limits with your AI providers are low)
Import Modes
The Initial Data Import page offers two import modes:
| Mode | Purpose | Duration |
|---|---|---|
| Import Tickets | Train AI on historical ticket data | 10 min – several hours |
| Import Agents | Sync HaloPSA agents for routing | 1-2 minutes |
Select your import mode from the dropdown at the top of the page.
Import Tickets
The ticket import process consists of three steps: selecting filters, choosing a date range, and reviewing cost estimates.
Step 1: Select Filters
Configure which tickets to include in the training dataset.
[insert screenshot of Step 1 Filters section here]
Ticket Types
Select specific ticket types to import, or leave empty to include all types.
Recommended Ticket Types:
- ✅ Incidents — Real issues with documented resolutions
- ✅ Service Requests — Standard requests with established workflows
- ❌ Alerts — Unless SOC or actionable alerts
- ❌ Recurring Jobs — Automated maintenance tickets
- ❌ Internal — Internal team tickets
💡 Tip: Focus on ticket types containing valuable resolution information. Incidents and Service Requests typically provide the most training value.
Client Filter
The client filter supports two modes:
| Mode | Use Case |
|---|---|
| Include Selected | Only import tickets from specific clients |
| Exclude Selected | Import all clients EXCEPT those selected |
Clients to Consider Excluding:
- Catchall or "Unknown" clients - do not train your system on junk tickets
- Former clients no longer serviced
- Test or sandbox clients
- Your internal client (unless valuable knowledge is stored in those tickets)
- Clients with primarily junk/spam tickets
⚠️ Important: The default mode is Exclude Selected, which is typically what you want—importing all clients except problematic ones.
Teams
Select specific teams to filter tickets, or leave empty for all teams. Useful when you want to train on tickets handled by specific service desks or departments.
Ticket Status
| Option | Description |
|---|---|
| All Tickets | Import both open and closed tickets |
| Open Tickets Only | Only import currently open tickets |
| Closed Tickets Only | Only import resolved tickets |
💡 Recommendation: Select All Tickets or Closed Tickets Only for initial training. Closed tickets contain complete resolution data.
Step 2: Select Historical Data Range
Use the slider and unit selector to define how far back to import historical data.
[insert screenshot of Step 2 Date Range section here]
Time Range Controls
| Control | Options | Description |
|---|---|---|
| Slider | 1 to max | Adjust the number of time units |
| Unit | Days, Months, Years | Select time unit scale |
Slider Maximums by Unit:
- Days: 1–365
- Months: 1–36
- Years: 1–10
Displayed Information
| Metric | Description |
|---|---|
| Date Range | Start and end dates for the import |
| Estimated Tickets | Count of tickets matching your filters |
The ticket count is retrieved in real-time from HaloPSA using your filter criteria. This count updates automatically when you change filters or date range.
💡 Recommended Range: Start with 3-6 months of quality data for optimal balance between training depth and cost. More data generally means better results, but also higher processing costs.
Step 3: Review Cost Estimation
Before importing, review the estimated costs and processing time.
[insert screenshot of Step 3 Cost Estimation section here]
Cost Metrics
| Metric | Calculation | Description |
|---|---|---|
| Estimated AI Cost | ~$0.099 per ticket | Based on Claude 4.5 Sonnet pricing |
| Processing Time | ~30 seconds per ticket | Total expected duration |
| Token Usage | ~10,000 tokens per ticket | Combined input/output (most tickets don't come anywhere close to this - the estimate is conservative) |
Pricing Breakdown
Costs are calculated using Claude 4.5 Sonnet pricing:
| Token Type | Price per Million | Percentage of Usage |
|---|---|---|
| Input tokens | $3.30 | 70% |
| Output tokens | $16.50 | 30% |
Example Calculations:
| Ticket Count | Est. AI Cost | Est. Time | Token Usage |
|---|---|---|---|
| 100 tickets | ~$9.90 | ~50 min | ~1M tokens |
| 500 tickets | ~$49.50 | ~4 hours | ~5M tokens |
| 1,000 tickets | ~$99.00 | ~8 hours | ~10M tokens |
| 5,000 tickets | ~$495.00 | ~42 hours | ~50M tokens |
Cost Cap (Optional)
Set a maximum spending limit for the import:
- Enter dollar amount in the Cost Cap field
- Import will automatically stop when this amount is reached
- Leave empty for no cap (process all tickets)
⚠️ Important: Tickets are processed from newest to oldest. If you set a cost cap, your most recent (and typically most relevant) data is prioritized.
Important Disclaimers
- Estimates are approximate — Actual costs vary based on ticket complexity, length, and content
- Processing order — Newest tickets first ensures recent data is prioritized if cost cap is reached
- API rate limiting — Using your own API keys may slow processing due to provider rate limits
Confirming the Import
After reviewing your settings, click Import X Tickets to proceed.
[insert screenshot of Confirmation Dialog here]
Confirmation Dialog
The confirmation dialog displays a summary of your import:
- Total ticket count
- Estimated cost
- Processing time
- Date range
- Cost cap (if set)
Review carefully, then click Confirm Import to start the process.
⚠️ Warning: This operation cannot be undone. Once started, the import runs in the background.
Import Processing
After confirmation, QuantumOps:
- Creates an Import Job — Tracks progress and status
- Fetches ticket IDs — Queries HaloPSA for matching tickets
- Queues tickets for processing — Background worker begins analysis
[insert screenshot of Processing Dialog here]
Processing Dialog Features
| Element | Description |
|---|---|
| Progress Bar | Visual completion percentage |
| Log Output | Real-time processing details |
| Status Indicators | ✓ Success, ✗ Failed, ⚠ Warning |
The log displays:
- Import initialization steps
- Database operations
- Ticket ID retrieval progress
- Any errors or warnings
Import Complete
When the import job is created, a success dialog appears:
[insert screenshot of Import Success Dialog here]
| Information | Description |
|---|---|
| Job ID | Unique identifier for the import job |
| Total Tickets | Number of tickets queued for processing |
| Estimated Cost | Projected AI costs |
Next Steps:
- Click View Import Status to monitor progress
- Or click Close to return to the import page
ℹ️ Note: The import job runs in the background. You can safely navigate away—processing continues automatically.
Import Agents
Agent import syncs your HaloPSA agents into QuantumOps for intelligent routing, workload balancing, and skill-based assignment.
[insert screenshot of Import Agents section here]
How It Works
- Click Import All Agents
- QuantumOps fetches agent list from HaloPSA API
- Each agent is imported with their profile data
- Results are displayed in real-time
Import Results
| Metric | Description |
|---|---|
| Successfully Imported | Agents created/updated in QuantumOps |
| Failed | Agents that encountered errors |
| Skipped (No ID) | Agents without valid HaloPSA IDs |
Processing Log
The agent import displays detailed logs including:
- API response status
- Agent count summaries
- Individual agent import results
- Any errors with stack traces
- Final import summary
When to Import Agents
Agents import automatically once a day to create new team members but should be run manually when setting up the system.
Import agents:
- ✅ During initial setup
- ✅ After adding new team members in HaloPSA
- ✅ After organizational changes
- ✅ Before configuring skill-based routing
💡 Recommendation: Import agents before importing tickets. This ensures proper agent attribution during ticket analysis.
Best Practices
What to Include
| Data Type | Recommendation |
|---|---|
| Incidents | ✅ High value — real issues with resolutions |
| Service Requests | ✅ High value — established workflows |
| Quality closed tickets | ✅ Complete resolution data |
| Recent data (3-6 months) | ✅ Current and relevant patterns |
What to Exclude
| Data Type | Recommendation |
|---|---|
| Alert tickets | ❌ Unless SOC or actionable |
| Catchall/Unknown clients | ❌ Poor quality data |
| Former clients | ❌ No longer relevant |
| Test/junk tickets | ❌ Noise in training data |
| Recurring job tickets | ❌ Automated, low value |
Data Quality Guidelines
| Principle | Impact |
|---|---|
| Quality over quantity | Better results from fewer, quality tickets |
| Representative data | Include variety of issue types |
| Complete resolutions | Closed tickets with documented fixes |
| Exclude noise | Remove irrelevant ticket types |
⚠️ Remember: The AI learns from the data you provide. Poor quality or irrelevant data will negatively impact performance.
Technical Details
How Ticket Import Works
- SQL Query Generation — QuantumOps builds a SQL query based on your filters
- Ticket Count Retrieval — Query is executed against HaloPSA's report endpoint
- Ticket ID Collection — Limited to 10,000 tickets per import (Halo API limit)
- Import Job Creation — Job and ticket records created in database
- Background Processing — Worker processes each ticket with AI analysis
- Semantic Memory Storage — Knowledge is stored for future retrieval
Database Schema
| Entity | Purpose |
|---|---|
ImportJob |
Tracks overall import progress and costs |
ImportJobTicket |
Individual ticket processing status |
ImportJobLog |
Detailed logging of import process |
Processing Constraints
| Constraint | Value | Reason |
|---|---|---|
| Max tickets per query | 10,000 | HaloPSA API limitation |
| Processing rate | ~2/minute | AI processing time |
| Token limit per ticket | Variable | Based on ticket complexity |
Rate Limiting Considerations
| API Key Type | Impact |
|---|---|
| Managed (QuantumOps) | Optimized rate limits, faster processing |
| BYOK (Your keys) | Subject to your Anthropic/OpenAI tier limits |
If using BYOK, rate limits from your AI provider may significantly increase processing time.
Monitoring Import Progress
After starting an import, you can monitor progress on the Import Status page:
Navigation: /import-status/{job-id}
Status Page Features
- Real-time progress updates via SignalR
- Ticket-by-ticket processing log
- Cost tracking (estimated vs. actual)
- Error details and retry counts
- Completion notifications
Troubleshooting
No Tickets Found
Symptoms: Import shows 0 tickets or fails immediately
Solutions:
- Verify HaloPSA connection is active
- Check date range includes tickets
- Review filter criteria—may be too restrictive
- Ensure selected ticket types have data
Slow Processing
Symptoms: Import progresses very slowly
Causes:
- BYOK API keys with low rate limits
- Large ticket content requiring more tokens
- Server resource constraints
Solutions:
- Use managed AI services for optimized limits
- Import smaller date ranges in batches
- Schedule imports during off-hours
Import Fails to Start
Symptoms: Error during job creation
Solutions:
- Check console logs for specific errors
- Verify database connectivity
- Ensure user has administrator permissions
- Try refreshing the page and restarting
High Token Usage
Symptoms: Actual costs exceed estimates
Causes:
- Tickets with long descriptions or many actions
- Complex technical content
- Large attachments or embedded content
Solutions:
- Set a cost cap to limit spending
- Exclude verbose ticket types
- Import in smaller batches to monitor usage
Frequently Asked Questions
How long does initial import take?
Processing time depends on ticket count and content complexity:
| Volume | Approximate Time |
|---|---|
| 100 tickets | ~50 minutes |
| 500 tickets | ~4 hours |
| 1,000 tickets | ~8 hours |
| 5,000 tickets | ~42 hours |
Can I import more than 10,000 tickets?
The HaloPSA API limits queries to 10,000 records. For larger imports:
- Complete first import (newest 10,000)
- Adjust date range to target older tickets
- Run additional import batches
What happens if I set a cost cap?
- Import processes tickets newest-to-oldest
- Stops when cost cap is reached
- Remaining tickets are not processed
- Prioritizes most recent/relevant data
Can I re-import tickets?
Yes, but note:
- Previously imported data will be overwritten
- Consider cost implications of re-processing
Should I import open or closed tickets?
Recommended: Import All or Closed tickets for initial training.
- Closed tickets have complete resolution data
- Open tickets lack outcome information but will pre-seed the dashboards for tickets in Halo already
- You can import open tickets for specific use cases
How often should I import agents?
Import agents:
- Once during initial setup
- After organizational changes
- When new team members join
- Before configuring routing rules
Agents import automatically once a day to create new team members.
Related Documentation
- Setup Wizard — Initial QuantumOps configuration
- Review Prerequisites — Prerequisites and preparation
Summary
The Initial Data Import is a foundational step that:
- Trains your AI on historical patterns and solutions
- Imports agent data for intelligent routing
- Enables immediate value from QuantumOps features
- Builds client profiles and environment understanding
Take time to carefully select quality data for import—the AI's effectiveness directly correlates with training data quality.