- Add admin dashboard with sync controls and data browser - Implement RMM, Auvik, and Addigy organization mappings - Add chunked ticket sync with progress tracking - Implement entity sync service with rate limiting - Add analytics engine and performance optimizer - Create data browser for all PSA entities - Add navigation components and UI improvements - Implement background processing and sync services - Add comprehensive documentation and migration scripts - Update configuration items with multi-system support - Enhance contact management and purchase history - Add issue type assignment and LLM analyzer - Improve error handling and logging utilities
5 KiB
5 KiB
Auvik Integration Testing Guide
Quick Start
Step 1: Map Auvik Tenants
- Navigate to:
https://pulse.wulfconsulting.cloud/auvik-mappings - You'll see all Auvik tenants (17 total based on logs)
- For each tenant you want to use, select the matching Autotask company from the dropdown
- Click "Save"
Step 2: Verify Mapping
- Status badge should change from orange "Unmapped" to green "Mapped"
- Stats at the top should update
Step 3: View Auvik Data
- Go to:
https://pulse.wulfconsulting.cloud/configuration-items - Select a company that you just mapped
- You should now see:
- ✅ Checkmarks in the "Auvik" column for matched devices
- Auvik tab in the device detail modal with full device information
How the Matching Works
Priority Order:
-
Database Mapping (NEW) - Uses explicit tenant-to-company mappings
- Most accurate
- User-controlled
- Recommended approach
-
Fuzzy Name Matching (Fallback) - Automatic matching by name similarity
- Less reliable
- Used when no mapping exists
- May miss matches if names differ
Matching Flow:
User selects company →
Check database for mapping →
If found: Use mapped tenant → Fetch devices → Match by serial/hostname/MAC
If not found: Try fuzzy name match → Fetch devices → Match by serial/hostname/MAC
Example Test Case
Test with "Wulf Consulting"
-
Map the tenant:
- Go to
/auvik-mappings - Find tenant "wulfconsulting"
- Select "Wulf Consulting" from company dropdown
- Click Save
- Go to
-
View devices:
- Go to
/configuration-items - Select "Wulf Consulting" from company dropdown
- Look for devices with Auvik checkmarks
- Go to
-
View details:
- Click on a device with an Auvik checkmark
- Click the "Auvik Data" tab
- You should see:
- Device name
- Serial number
- Online/offline status
- IP addresses
- MAC addresses
- Network interfaces
- Firmware version
Troubleshooting
No Auvik Data Showing
Check 1: Is the tenant mapped?
docker exec pulse-postgres psql -U pulse_user -d pulse_autotask -c "SELECT * FROM auvik_tenant_mappings;"
Check 2: Are devices being fetched?
docker logs pulse-app --tail 100 | grep -i auvik
You should see:
- "Found Auvik tenant via mapping: [tenant] for company ID: [id]"
- "Fetched X Auvik devices"
- "Matched Auvik device by [serial/hostname/MAC]"
Check 3: Test the API directly
# Test tenant mappings endpoint
curl http://localhost:3100/api/auvik/tenant-mappings
# Test devices endpoint (replace with your company ID)
curl "http://localhost:3100/api/rmm-devices?companyId=29682574&companyName=Wulf%20Consulting"
Mapping Not Saving
Check database connection:
docker exec pulse-postgres psql -U pulse_user -d pulse_autotask -c "SELECT version();"
Check API logs:
docker logs pulse-app --tail 50
Devices Not Matching
Check matching logic: The system matches devices in this priority:
- Serial number (exact match)
- Hostname (exact match)
- MAC address (normalized)
View matching logs:
docker logs pulse-app --tail 200 | grep -E "(Matched|No match)"
Expected Behavior
When Mapping Exists:
✅ Fast lookup (database query)
✅ Accurate tenant selection
✅ Consistent results
✅ User-controlled
When No Mapping:
⚠️ Slower (fuzzy matching)
⚠️ May miss matches
⚠️ Depends on name similarity
⚠️ Automatic (no control)
Recommended Workflow
-
Initial Setup:
- Map all active Auvik tenants to their corresponding companies
- Test with 2-3 companies to verify
-
Ongoing:
- When adding a new company to Auvik, add the mapping
- Review unmapped tenants monthly
-
Maintenance:
- Check logs for "No mapping found" messages
- Add mappings as needed
API Endpoints Reference
GET /api/auvik/tenant-mappings
Fetch all mappings
- Query:
?includeUnmapped=true- includes unmapped tenants
POST /api/auvik/tenant-mappings
Create/update mapping
{
"auvikTenantId": "123abc",
"auvikTenantName": "wulfconsulting",
"autotaskCompanyId": 29682574,
"autotaskCompanyName": "Wulf Consulting"
}
DELETE /api/auvik/tenant-mappings?id={id}
Remove mapping
GET /api/rmm-devices?companyId={id}&companyName={name}
Fetch devices (includes Auvik)
- Now uses mapping first, then falls back to name matching
GET /api/configuration-items/{id}?type=autotask
Fetch device details (includes Auvik)
- Now uses mapping first, then falls back to name matching
Success Metrics
After mapping tenants, you should see:
- ✅ Green checkmarks in Auvik column
- ✅ "Auvik Data" tab populated in device modals
- ✅ Logs showing "Found tenant via mapping"
- ✅ Device counts matching between Auvik and Autotask
Next Steps
- Map all 17 Auvik tenants to their companies
- Verify device data appears correctly
- Report any issues with matching logic
- Consider adding more matching fields if needed (IP address, etc.)