{
  "site": {
    "name": "VMSagent Docs",
    "nav": [
      {
        "title": "Overview",
        "path": "index.html"
      },
      {
        "title": "API",
        "path": "api/index.html"
      },
      {
        "title": "MCP",
        "path": "mcp/index.html"
      },
      {
        "title": "Schemas",
        "path": "schemas/index.html"
      },
      {
        "title": "Platforms",
        "path": "platforms/index.html"
      }
    ]
  },
  "schemas": [
    {
      "name": "IntentRecord",
      "version": "1.0.0",
      "schema_url": "https://vmsagent.dev/schemas/intent-record.json",
      "description": "Canonical system-of-engagement record keyed by intent_id.",
      "breaking": false
    },
    {
      "name": "DiagnosticsBundle",
      "version": "1.0.0",
      "schema_url": "https://vmsagent.dev/schemas/diagnostics-bundle.json",
      "description": "Scored diagnostic evidence produced by Triage.",
      "breaking": false
    },
    {
      "name": "RoutingPayload (Common Workforce Model)",
      "version": "1.0.0",
      "schema_url": "https://vmsagent.dev/schemas/routing-payload.json",
      "description": "Channel + destination payload in canonical field names.",
      "breaking": false
    },
    {
      "name": "AdminPayload",
      "version": "1.0.0",
      "schema_url": "https://vmsagent.dev/schemas/admin-payload.json",
      "description": "Dates, budgets, cost centers, approvals, and administrative fields.",
      "breaking": false
    },
    {
      "name": "PublishingBundle",
      "version": "1.0.0",
      "schema_url": "https://vmsagent.dev/schemas/publishing-bundle.json",
      "description": "Publish receipts, external IDs, idempotency keys, and adapter status.",
      "breaking": false
    },
    {
      "name": "MappingProfile",
      "version": "1.0.0",
      "schema_url": "https://vmsagent.dev/schemas/mapping-profile.json",
      "description": "Field translation templates from canonical intent/workforce models to platform-specific API dialects.",
      "breaking": false
    },
    {
      "name": "LinkedDestination",
      "version": "1.0.0",
      "schema_url": "https://vmsagent.dev/schemas/linked-destination.json",
      "description": "Capability + requirements metadata for a connected tenant.",
      "breaking": false
    },
    {
      "name": "TimelineEvent",
      "version": "1.0.0",
      "schema_url": "https://vmsagent.dev/schemas/timeline-event.json",
      "description": "Immutable append-only event stream for auditability.",
      "breaking": false
    },
    {
      "name": "WebhookEvent",
      "version": "1.0.0",
      "schema_url": "https://vmsagent.dev/schemas/webhook-event.json",
      "description": "Back-sync event envelope.",
      "breaking": false
    },
    {
      "name": "PassthroughRequest",
      "version": "1.0.0",
      "schema_url": "https://vmsagent.dev/schemas/passthrough-request.json",
      "description": "Raw platform call anchored to intent_id for escape-hatch fields/endpoints.",
      "breaking": false
    },
    {
      "name": "ReconciliationReport",
      "version": "1.0.0",
      "schema_url": "https://vmsagent.dev/schemas/reconciliation-report.json",
      "description": "Drift detection report when SoR diverges from Intent.",
      "breaking": false
    },
    {
      "name": "EnrichmentRequest",
      "version": "1.0.0",
      "schema_url": "https://vmsagent.dev/schemas/enrichment-request.json",
      "description": "Request for missing platform-required fields emitted back to Triage.",
      "breaking": false
    },
    {
      "name": "DefenceFile (JSON-LD)",
      "version": "1.0.0",
      "schema_url": "https://vmsagent.dev/schemas/defence-file.jsonld",
      "description": "Machine-readable evidence spine linked from intent and published records.",
      "breaking": false
    }
  ],
  "api": {
    "base_url": "https://api.vmsagent.dev",
    "endpoints": [
      {
        "method": "POST",
        "path": "/intent",
        "summary": "Create an intent record (returns intent_id).",
        "request": "IntentCreateRequest",
        "response": "IntentRecord"
      },
      {
        "method": "PATCH",
        "path": "/intent/{intent_id}",
        "summary": "Patch diagnostics/routing/admin fields.",
        "request": "IntentPatchRequest",
        "response": "IntentRecord"
      },
      {
        "method": "POST",
        "path": "/plan",
        "summary": "Generate destination plan from Channel Map + intent.",
        "request": "PlanGenerateRequest",
        "response": "PlanGenerateResponse"
      },
      {
        "method": "POST",
        "path": "/preflight",
        "summary": "Validate intent against platform requirements.",
        "request": "PreflightRequest",
        "response": "PreflightResponse"
      },
      {
        "method": "POST",
        "path": "/publish",
        "summary": "Idempotent publish to target platform via adapter.",
        "request": "PublishRequest",
        "response": "PublishResponse"
      },
      {
        "method": "GET",
        "path": "/intent/{intent_id}",
        "summary": "Fetch the canonical intent record.",
        "request": "—",
        "response": "IntentRecord"
      },
      {
        "method": "GET",
        "path": "/intent/{intent_id}/timeline",
        "summary": "Fetch timeline events for audit.",
        "request": "—",
        "response": "TimelineEvent[]"
      },
      {
        "method": "GET",
        "path": "/platforms",
        "summary": "List platforms and doc availability.",
        "request": "—",
        "response": "PlatformDoc[]"
      },
      {
        "method": "GET",
        "path": "/destinations",
        "summary": "List connected destinations and capabilities.",
        "request": "—",
        "response": "LinkedDestination[]"
      },
      {
        "method": "GET",
        "path": "/destinations/{id}/capabilities",
        "summary": "Capability matrix + required fields per object/op.",
        "request": "—",
        "response": "CapabilitiesResponse"
      },
      {
        "method": "POST",
        "path": "/passthrough",
        "summary": "Send raw JSON to a platform endpoint.",
        "request": "PassthroughRequest",
        "response": "PassthroughResponse"
      },
      {
        "method": "POST",
        "path": "/reconcile",
        "summary": "Detect drift between VMS state and canonical intent.",
        "request": "ReconcileRequest",
        "response": "ReconciliationReport"
      },
      {
        "method": "POST",
        "path": "/enrichment-request",
        "summary": "Emit missing fields back to Triage/Intake.",
        "request": "EnrichmentRequest",
        "response": "EnrichmentAck"
      }
    ],
    "webhooks": [
      {
        "event": "vms.requisition.updated",
        "payload_schema": "WebhookEvent",
        "description": "A requisition changed in the VMS."
      },
      {
        "event": "vms.assignment.updated",
        "payload_schema": "WebhookEvent",
        "description": "An assignment changed."
      },
      {
        "event": "vms.timesheet.updated",
        "payload_schema": "WebhookEvent",
        "description": "Timesheet changed."
      },
      {
        "event": "vms.connection.revoked",
        "payload_schema": "WebhookEvent",
        "description": "Tenant auth revoked."
      }
    ],
    "mcp_tools": [
      {
        "name": "intent_create",
        "input_schema": "IntentCreateRequest",
        "output_schema": "IntentCreateResponse",
        "description": "Initializes a record; returns stable intent_id."
      },
      {
        "name": "intent_patch",
        "input_schema": "IntentPatchRequest",
        "output_schema": "IntentRecord",
        "description": "Updates diagnostics/routing/admin payloads."
      },
      {
        "name": "plan_generate",
        "input_schema": "PlanGenerateRequest",
        "output_schema": "PlanGenerateResponse",
        "description": "Applies Channel Map to identify target destination(s)."
      },
      {
        "name": "mapping_preflight",
        "input_schema": "PreflightRequest",
        "output_schema": "PreflightResponse",
        "description": "Validates intent vs requirements; returns enrichment gaps."
      },
      {
        "name": "adapter_publish",
        "input_schema": "PublishRequest",
        "output_schema": "PublishResponse",
        "description": "Idempotent publish; records external IDs + receipt."
      }
    ]
  },
  "platforms": [
    {
      "platform": "Auth0",
      "category": "Systems Integrations",
      "status": "live"
    },
    {
      "platform": "Azure",
      "category": "Systems Integrations",
      "status": "live"
    },
    {
      "platform": "AWS",
      "category": "Systems Integrations",
      "status": "live"
    },
    {
      "platform": "Google Cloud",
      "category": "Systems Integrations",
      "status": "live"
    },
    {
      "platform": "Okta",
      "category": "Systems Integrations",
      "status": "live"
    },
    {
      "platform": "Domo",
      "category": "Reporting Integrations",
      "status": "live"
    },
    {
      "platform": "Tableau",
      "category": "Reporting Integrations",
      "status": "live"
    },
    {
      "platform": "Power BI",
      "category": "Reporting Integrations",
      "status": "live"
    },
    {
      "platform": "Looker",
      "category": "Reporting Integrations",
      "status": "live"
    },
    {
      "platform": "Qlik",
      "category": "Reporting Integrations",
      "status": "live"
    },
    {
      "platform": "Snowflake",
      "category": "Reporting Integrations",
      "status": "live"
    },
    {
      "platform": "Databricks",
      "category": "Reporting Integrations",
      "status": "live"
    },
    {
      "platform": "ChatGPT",
      "category": "Question Intelligence",
      "status": "live"
    },
    {
      "platform": "Claude",
      "category": "Question Intelligence",
      "status": "live"
    },
    {
      "platform": "Gemini",
      "category": "Question Intelligence",
      "status": "live"
    },
    {
      "platform": "Bright Data",
      "category": "Question Intelligence",
      "status": "live"
    },
    {
      "platform": "Moody's",
      "category": "Question Intelligence",
      "status": "live"
    },
    {
      "platform": "Dun & Bradstreet",
      "category": "Question Intelligence",
      "status": "live"
    },
    {
      "platform": "Perplexity",
      "category": "Question Intelligence",
      "status": "live"
    },
    {
      "platform": "ZoomInfo",
      "category": "Question Intelligence",
      "status": "live"
    },
    {
      "platform": "Crunchbase",
      "category": "Question Intelligence",
      "status": "live"
    },
    {
      "platform": "LexisNexis",
      "category": "Question Intelligence",
      "status": "live"
    },
    {
      "platform": "Beeline",
      "status": "live",
      "docs_url": "https://developers.beeline.com/",
      "capabilities": {
        "passthrough_available": true,
        "webhooks_available": true,
        "objects": []
      },
      "mapping_profiles": [],
      "category": "Vendor Management & Sourcing"
    },
    {
      "platform": "SAP",
      "category": "Vendor Management & Sourcing",
      "status": "live"
    },
    {
      "platform": "SAP Ariba",
      "category": "Vendor Management & Sourcing",
      "status": "live"
    },
    {
      "platform": "Globality",
      "category": "Vendor Management & Sourcing",
      "status": "live"
    },
    {
      "platform": "Coupa",
      "category": "Vendor Management & Sourcing",
      "status": "live"
    },
    {
      "platform": "Workday",
      "category": "Vendor Management & Sourcing",
      "status": "live"
    },
    {
      "platform": "SAP Fieldglass",
      "status": "live",
      "docs_url": "https://help.sap.com/doc/a5fdbd31ebe94832aef0eb79066a8087/cloud/en-US/SAPFieldglassRESTAPIIntegrationGeneralReferenceGuide.pdf",
      "capabilities": {
        "passthrough_available": true,
        "webhooks_available": false,
        "objects": [
          {
            "name": "requisition",
            "operations": [
              {
                "op": "FETCH",
                "required_fields": [
                  "external_id"
                ],
                "supported_fields": [
                  "status",
                  "dates",
                  "cost_center",
                  "custom_fields"
                ]
              },
              {
                "op": "CREATE",
                "required_fields": [
                  "start_date",
                  "end_date",
                  "cost_center_id",
                  "job_title"
                ],
                "supported_fields": [
                  "rate",
                  "location",
                  "custom_fields",
                  "attachments"
                ]
              },
              {
                "op": "UPDATE",
                "required_fields": [
                  "external_id"
                ],
                "supported_fields": [
                  "status",
                  "dates",
                  "rate",
                  "custom_fields"
                ]
              },
              {
                "op": "CANCEL",
                "required_fields": [
                  "external_id"
                ],
                "supported_fields": [
                  "status",
                  "reason"
                ]
              }
            ]
          }
        ]
      },
      "mapping_profiles": [
        {
          "name": "fieldglass.requisition.create",
          "target_object": "requisition",
          "mappings": [
            {
              "source_path": "$.routing.start_date",
              "target_field": "WorkStartDate",
              "transform": "date_iso_to_mdy",
              "required_by_platform": true
            },
            {
              "source_path": "$.routing.end_date",
              "target_field": "WorkEndDate",
              "transform": "date_iso_to_mdy",
              "required_by_platform": true
            },
            {
              "source_path": "$.admin.cost_center_id",
              "target_field": "CostCenter",
              "transform": "lookup",
              "required_by_platform": true
            },
            {
              "source_path": "$.intent_id",
              "target_field": "CustomField.IntentID",
              "transform": "none",
              "required_by_platform": false
            },
            {
              "source_path": "$.diagnostics.defence_file.url",
              "target_field": "Attachment",
              "transform": "none",
              "required_by_platform": false
            }
          ]
        }
      ],
      "category": "Vendor Management & Sourcing"
    },
    {
      "platform": "VNDLY",
      "category": "Vendor Management & Sourcing",
      "status": "live"
    },
    {
      "platform": "GEP",
      "category": "Vendor Management & Sourcing",
      "status": "live"
    },
    {
      "platform": "Icertis",
      "category": "Signature & Contract Management",
      "status": "live"
    },
    {
      "platform": "Ironclad",
      "category": "Signature & Contract Management",
      "status": "live"
    },
    {
      "platform": "DocuSign",
      "category": "Signature & Contract Management",
      "status": "live"
    },
    {
      "platform": "Adobe Sign",
      "category": "Signature & Contract Management",
      "status": "live"
    },
    {
      "platform": "PandaDoc",
      "category": "Signature & Contract Management",
      "status": "live"
    },
    {
      "platform": "Dropbox Sign",
      "category": "Signature & Contract Management",
      "status": "live"
    },
    {
      "platform": "Juro",
      "category": "Signature & Contract Management",
      "status": "live"
    },
    {
      "platform": "Zip",
      "category": "Procurement Orchestration",
      "status": "live"
    },
    {
      "platform": "ORO Labs",
      "category": "Procurement Orchestration",
      "status": "live"
    },
    {
      "platform": "Keelvar",
      "category": "Procurement Orchestration",
      "status": "live"
    },
    {
      "platform": "JAGGAER",
      "category": "Procurement Orchestration",
      "status": "live"
    },
    {
      "platform": "Agiloft",
      "category": "Procurement Orchestration",
      "status": "live"
    },
    {
      "platform": "Ivalua",
      "category": "Procurement Orchestration",
      "status": "live"
    },
    {
      "platform": "GEP",
      "category": "Procurement Orchestration",
      "status": "live"
    },
    {
      "platform": "Tonkean",
      "category": "Procurement Orchestration",
      "status": "live"
    },
    {
      "platform": "Basware",
      "category": "Procurement Orchestration",
      "status": "live"
    },
    {
      "platform": "Fairmarkit",
      "category": "Procurement Orchestration",
      "status": "live"
    },
    {
      "platform": "SharePoint",
      "category": "File Storage",
      "status": "live"
    },
    {
      "platform": "OneDrive",
      "category": "File Storage",
      "status": "live"
    },
    {
      "platform": "Google Drive",
      "category": "File Storage",
      "status": "live"
    },
    {
      "platform": "Oracle HCM",
      "category": "HRIS / HCM",
      "status": "live"
    },
    {
      "platform": "SAP SuccessFactors",
      "category": "HRIS / HCM",
      "status": "live"
    },
    {
      "platform": "UKG",
      "category": "HRIS / HCM",
      "status": "live"
    },
    {
      "platform": "Ceridian Dayforce",
      "category": "HRIS / HCM",
      "status": "live"
    },
    {
      "platform": "ADP",
      "category": "HRIS / HCM",
      "status": "live"
    },
    {
      "platform": "BambooHR",
      "category": "HRIS / HCM",
      "status": "live"
    },
    {
      "platform": "Greenhouse",
      "category": "ATS",
      "status": "live"
    },
    {
      "platform": "Lever",
      "category": "ATS",
      "status": "live"
    },
    {
      "platform": "iCIMS",
      "category": "ATS",
      "status": "live"
    },
    {
      "platform": "SmartRecruiters",
      "category": "ATS",
      "status": "live"
    },
    {
      "platform": "Bullhorn",
      "category": "ATS",
      "status": "live"
    },
    {
      "platform": "Avature",
      "category": "ATS",
      "status": "live"
    },
    {
      "platform": "Eightfold",
      "category": "ATS",
      "status": "live"
    },
    {
      "platform": "Oracle",
      "category": "ERP",
      "status": "live"
    },
    {
      "platform": "SAP S/4HANA",
      "category": "ERP",
      "status": "live"
    },
    {
      "platform": "Microsoft Dynamics 365",
      "category": "ERP",
      "status": "live"
    },
    {
      "platform": "NetSuite",
      "category": "ERP",
      "status": "live"
    },
    {
      "platform": "ServiceNow",
      "category": "ITSM / Service Management",
      "status": "live"
    },
    {
      "platform": "Jira Service Management",
      "category": "ITSM / Service Management",
      "status": "live"
    },
    {
      "platform": "BMC Helix",
      "category": "ITSM / Service Management",
      "status": "live"
    }
  ],
  "platform_docs": [
    {
      "platform": "SAP Fieldglass",
      "key": "fieldglass",
      "docs_confidence": "Public",
      "docs_links": [
        "https://help.sap.com/doc/a5fdbd31ebe94832aef0eb79066a8087/cloud/en-US/SAPFieldglassRESTAPIIntegrationGeneralReferenceGuide.pdf",
        "https://help.sap.com/doc/d63a5197c77a4a35a05e1c338bd7d15d/cloud/en-US/SAPFieldglassApprovalsAPITechnicalSpecifications.pdf"
      ],
      "page": "platforms/providers/fieldglass.html",
      "minimum_viable_mapping": "contingent requisition + timesheet + (optional) SOW",
      "tenant_discovery": "required fields, custom fields, picklists, approval constraints"
    },
    {
      "platform": "Beeline",
      "key": "beeline",
      "docs_confidence": "Public",
      "docs_links": [
        "https://developers.beeline.com/"
      ],
      "page": "platforms/providers/beeline.html",
      "minimum_viable_mapping": "contingent requisition + assignment + timesheet",
      "tenant_discovery": "required fields, custom fields, picklists, approval constraints"
    },
    {
      "platform": "Workday VNDLY",
      "key": "vndly",
      "docs_confidence": "Customer",
      "docs_links": [],
      "page": "platforms/providers/vndly.html",
      "minimum_viable_mapping": "contingent requisition + assignment",
      "tenant_discovery": "required fields, custom fields, picklists, Workday-aligned coding"
    }
  ]
}
