Pinnova Fleet Intelligence · Docs

District Admin Onboarding

What to do in the first 10 minutes after your district is created.

1. First login

When your Stripe payment completes, Pinnova auto-creates your district and emails the admin a welcome link. Click it, pick a password, and you'll land on your admin dashboard at https://{your-slug}.pinnovatms.com/admin.

The welcome link is one-time use. If it expires, email support@pinnovatms.com and we'll regenerate it.

2. Invite your team

From Admin → Users, invite the people who will use Pinnova daily. Roles:

When you invite someone, the API returns a one-time password. Share it securely (e.g. 1Password, Signal). They'll change it on first login.

3. Import your buses and routes

Dispatcher → BusesImport CSV. Column names we accept: id, capacity, type, status, driver_id, route_id, area, hub.

For routes, use Routes → Import CSV. Columns: id, school, level, area, hub.

4. Run your first dispatch

Dispatcher → Dispatch BoardNew Dispatch. Pick a bus, a route, and a driver. Status goes from scheduledrunningcompleted. Drivers see it immediately in their mobile app.

5. Check FERPA audit trail

Admin → Audit. Every parent lookup and every student-record read is logged with the caller's IP, the subject, and the timestamp. Filter by event (parent_lookup.rate_limited surfaces brute-force attempts) or by date range. Retained for 7 years per FERPA.

API cheat sheet

# Auth — get a token
curl -XPOST https://{slug}.pinnovatms.com/api/auth/login \
  -d '{"username":"admin","password":"..."}'

# List users in your district
curl -H 'Authorization: Bearer $TOKEN' \
  https://{slug}.pinnovatms.com/api/tenant/admin/users

# Invite a dispatcher
curl -XPOST -H 'Authorization: Bearer $TOKEN' \
  -d '{"username":"jane","role":"dispatcher","email":"jane@district.edu"}' \
  https://{slug}.pinnovatms.com/api/tenant/admin/users

# Rolling audit view
curl -H 'Authorization: Bearer $TOKEN' \
  'https://{slug}.pinnovatms.com/api/tenant/admin/audit?page=1&page_size=50'