ServiceNow ITSM → Workload (REST v1)

Not a Marketplace connector. Not an ITSM write. Optional Table API is read-only (approved change/demand → existing Workload project). Keep incidents, changes, and CMDB in ServiceNow. Put named allocations in Workload using the REST v1 capacity SoR already shipped.

Scopes and paths: docs/openapi/v1.yaml (TeamMembers, Allocations, Timesheet).

OpenAPI v1 scopes

  • POST /api/v1/team-membersteam-members:write
  • GET /api/v1/team-membersteam-members:read
  • POST /api/v1/allocationsallocations:write
  • GET /api/v1/allocationsallocations:read
  • GET /api/v1/timesheet-entriestimesheet:read

Recipe A — CSV (no IntegrationHub)

  1. Export people from ServiceNow (sys_user / group): name, email, role.
  2. Create members with POST /api/v1/team-members (or the existing Workload CSV import).
  3. For an approved change or demand — not an incident — pick the Workload project by hand, then POST /api/v1/allocations with notes = the SN number (CHG0012345).
  4. Connect a native timesheet (Tempo / Azure / Toggl / Clockify / CSV). The /dashboard/ops pack proposes variances — a human votes.

Recipe B — IntegrationHub (REST Message)

Flow Designer example: Change Request moves to closed / approved. REST Message POST member (store u_workload_member_id on sys_user). REST Message POST allocation on a Workload projectId stored on the change (u_workload_project_id, filled by a human — never derived from an incident). Store u_workload_allocation_id to avoid duplicates.

POST /team-members

curl -X POST https://api.workload.com/api/v1/team-members \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Alice Martin","email":"alice@example.com","role":"Developer","level":"SENIOR","capacity":20}'

POST /allocations

curl -X POST https://api.workload.com/api/v1/allocations \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"projectId":"WORKLOAD_PROJECT_ID","teamMemberId":"WORKLOAD_MEMBER_ID","allocationType":"SOFT","days":5,"notes":"SN CHG0012345"}'

Do not map

Workload must not become a mini-ITSM.

  • Incident → automatic project. Duplicates the run queue. Create the project by hand (or from an approved change with a human mapping).
  • CMDB CI → automatic team. CMDB is not the capacity org. Teams are managed in Workload.
  • Single incident → one allocation. Allocations are named 8–12 weeks, not a ticket.
  • Workload → ITSM write (Table API / insert incident / CMDB). Read-only. One-way: SN demand/change → existing Workload project mapping. S8 drafts the pack HITL; apply only after Approuver.
  • Marketplace connector as available. Does not exist. Opt-in Table API is read-only (change/demand), never ITSM write, never Marketplace.

Keep ServiceNow. Put capacity in WorkloadREST API documentation