How integrations work
VMS Agent connects to 71+ downstream systems through one adapter pattern. You author intent once in the Common Workforce Model; the adapter handles each platform's auth, object model, required fields and back-sync. This page explains that universal flow before you dive into a specific platform.
Every system — VMS, procurement, HRIS, ATS, ERP or ITSM — is reached through the same five stages. Only the final adapter step differs per platform.
1 · Intent
A canonical IntentRecord is created (keyed by intent_id) carrying diagnostics, routing and admin payloads in neutral field names.
2 · Plan
The Channel Map resolves the intent to one or more destinations (e.g. a contingent requisition to your VMS, an SOW to a sourcing tool).
3 · Preflight
The intent is validated against the destination's required + tenant-specific fields. Gaps emit an enrichment_request back to intake.
4 · Publish
The adapter maps canonical fields to the platform dialect and writes the record idempotently, recording external IDs + a receipt.
5 · Reconcile
Webhooks or polling detect changes humans make inside the platform; drift is flagged against the canonical intent.
Passthrough
An escape hatch (POST /passthrough) sends raw JSON to any platform endpoint, still anchored to intent_id for audit.
The adapter abstracts each platform's authentication behind one connected-destination credential model. The common shapes:
| Strategy | Used by (examples) | How VMS Agent handles it |
|---|---|---|
| OAuth 2.0 client-credentials | Coupa, Globality (Auth0), Workday ISU, SAP BTP (XSUAA), GEP | Token minted + cached per destination; refreshed before expiry. |
| OAuth token + per-API app key | SAP Ariba (apiKey + Bearer) | Two-secret model; one application registered per API + realm. |
| SOAP / WS-Security via service user | Workday (Integration System User), SAP Ariba SOAP | Credential bound to an ISU in an integration security group. |
| Document exchange | SAP Ariba cXML over Ariba Network | Transactional PO/invoice docs pushed/received over the Network. |
A MappingProfile is the per-tenant template that translates Common Workforce Model paths to a platform's field names, with transforms and required-by-platform flags. The same canonical start_date becomes WorkStartDate in Fieldglass, a requisition field in Coupa, or a Staffing business-process input in Workday.
Canonical (you write this)
Adapter resolves (per platform)
These are VMS Agent's own endpoints (base https://api.vmsagent.dev) — the same regardless of which downstream platform you target. See the API Reference for full schemas.
| Method | Path | Summary |
|---|---|---|
| POST | /intent | Create an intent record (returns intent_id). |
| PATCH | /intent/{intent_id} | Patch diagnostics/routing/admin fields. |
| POST | /plan | Generate destination plan from Channel Map + intent. |
| POST | /preflight | Validate intent against platform requirements. |
| POST | /publish | Idempotent publish to target platform via adapter. |
| GET | /intent/{intent_id} | Fetch the canonical intent record. |
| GET | /intent/{intent_id}/timeline | Fetch timeline events for audit. |
| GET | /platforms | List platforms and doc availability. |
| GET | /destinations | List connected destinations and capabilities. |
| GET | /destinations/{id}/capabilities | Capability matrix + required fields per object/op. |
| POST | /passthrough | Send raw JSON to a platform endpoint. |
| POST | /reconcile | Detect drift between VMS state and canonical intent. |
| POST | /enrichment-request | Emit missing fields back to Triage/Intake. |
Platforms differ: some push events (Globality, SAP Event Mesh, Coupa Events API), most are poll-first (Workday RaaS, Ariba, GEP). VMS Agent normalises both into one WebhookEvent envelope and reconciles against the canonical intent.
| Event | Meaning |
|---|---|
| vms.requisition.updated | A requisition changed in the VMS. |
| vms.assignment.updated | An assignment changed. |
| vms.timesheet.updated | Timesheet changed. |
| vms.connection.revoked | Tenant auth revoked. |
Each platform page shows its real API facts, minimum viable mapping and tenant-specific notes.