Use cases
The paths.
The jobs. Alert to ticket through check an asset.
1. Alert to ticket
A finding becomes a ticket we created. We keep the link. You can update, append a note, or close with evidence on that ticket. Create and update accept board, status, and priority ids from GET /tenants/{tenant_id}/ticket-boards, ticket-statuses, and ticket-priorities (ConnectWise and Halo); unknown id → 422.
2. Two-way tickets
Tickets are two-way when the MSP grants it. You can create, update, and close. You can subscribe to events when the MSP changes the ticket in their PSA. Grants: psa.ticket.create, psa.ticket.update, psa.ticket.events. When a ticket is created, updated, noted, closed, or reopened, you can list those events or get a signed webhook. After a tenant sync, GET /tenants/{id}/connections/events?kind=ticket.closed (also created, updated, noted, reopened). Optional signed webhook. Grant is the connection (psa.ticket.events). Missing is grant_missing. When a device is created or updated, you can list those events or get a signed webhook. After a tenant sync, GET /tenants/{id}/connections/events?kind=device.updated (also created). Optional signed webhook. Grant is the connection (rmm.device.events). Missing is grant_missing. When a company is created or updated, you can list those events or get a signed webhook. After a tenant sync, GET /tenants/{id}/connections/events?kind=company.updated (also created). Optional signed webhook. Grant is the connection (psa.company.events). Missing is grant_missing.
3. Map customers
Map customers to companies that already exist. Exact-name auto-Match fills Match only (never auto-import); ambiguous names stay Needs match. A leftover is Match, company import from PSA, Skip, or Needs match (unset). Bulk unmatched import is available with dry_run preview. Contacts are Match only — list and match, no contact create.
4. Create a company
Creating a company is a separate grant. Grant psa.company.create, dry_run, match-first.
5. Time on the ticket
Hours on a ticket Bitlync already linked. Hours, stated billable, required member. List members with GET /tenants/{tenant_id}/members (Halo and ConnectWise live when permitted; Autotask → honest 501; permission miss is honest English). The picker uses the listed id.
6. Billing reconciliation
Read agreements and lines. Write lines on an existing agreement.
7. Create action items
Create the follow-up the MSP already tracks.
8. Create initiatives
Create the workstream those items sit on.
9. Add to an existing project
Add notes or items on a project that already exists.
10. Create an order
Place a third-party licensing order.
11. Write a document
Write into the MSP's documentation tool.
12. Read devices
Pull the device roster.
13. Software inventory
Pull installed software.
14. Check an asset
Pull the documented asset.
If you are this kind of ISV
Alerting/security — map companies, do not create. Tickets create, update, close, and events. Optional agreement lines for billing counts.
Network monitoring — companies must already exist. Two-way tickets. Create-only is not enough.
Backup — failed job to ticket, close when it succeeds. Optional usage on agreement lines.
Documentation — PSA companies are the source of truth. Document write. No company create.
vCIO / QBR — map companies, findings to tickets, add to an existing project.
Commerce / distributor — map, plus company-create grant, orders, lines on existing agreements.
Quoting — map, company create for a new logo.
Time / scheduling — ticket update (status, notes), time write with member from the members list. Not the watch.
Identity / comms — full two-way tickets plus time.
Onboarding / import — Match contacts; company import from PSA for unmatched leftovers when the ISV book supports it (bulk + dry_run). PSA company create is a separate grant plus match-first.
AI copilot — read plus ticket write plus events. Do not lead with creating companies or agreements.