Keelvar (platform)

Keelvar is a sourcing optimisation and autonomous sourcing platform: buyers run RFx events and auctions with lots, bid sheets and optimisation scenarios in Sourcing Optimizer, and Sourcing Automation bots run tactical events end to end from a requisition, handing awards back to the buyer's source-to-pay suite. Keelvar markets API-based integration with SAP Ariba, Coupa, JAGGAER and Ivalua, but publishes no self-service endpoint reference, so path-level detail is confirmed per tenant. composerID publishes an approved services or managed-service decision as the sourcing event Keelvar runs, writes the Intent ID as a fixed token in the event description, and records the event id linkage on its own side until a reference field is confirmed at onboarding.

Publish path
Via onboarding
endpoints and credentials provisioned by Keelvar at onboarding; no public endpoint reference
Events back
No native events
relay or poll reconciliation
API access
No portal evident
posture drawn from the vendor's integration material; confirmed at onboarding
Contract tier
Tier B
publish + poll reconciliation
composerID carrier
Linked
sourcing_event event.description: linkage held by composerID; indicative until confirmed at onboarding
Tenant configuration (mandatory fields, approval chains, picklists) is a separate gate from vendor capability: it is discovered at preflight before first publish and may need destination admin changes. How composerID connects →
Reference
API at a glance

The public API facts composerID's adapter relies on. Tenant-specific details (custom fields, picklists, approval chains) are confirmed during connection and folded into the MappingProfile.

AuthenticationNot publicly documented. Keelvar describes API-based integration with the major source-to-pay suites and ships packaged connectors for them; credentials and the token model are issued per tenant at onboarding. Assume per-tenant token-based auth (indicative until confirmed at onboarding).
API styleREST over JSON per Keelvar's integration material; no public OpenAPI document or endpoint reference is evident, so no paths are stated here.
Base URLPer tenant, provisioned by Keelvar at onboarding (not publicly documented).
Objectssourcing events (RFI, RFQ, RFP, auctions), lots and items, bid sheets and bids, suppliers and invitations, optimisation scenarios and awards, Sourcing Automation bot runs
Events / webhooksNo public webhook or event-subscription specification is evident. Keelvar's own connectors push award results into the buyer's source-to-pay suite; any event-out from Keelvar to composerID is indicative until confirmed at onboarding.
Rate limitsNot publicly documented; confirm per tenant at onboarding.
Readiness
Docs confidence: Customer

No developer portal evident. We could not find a public self-service developer portal or endpoint reference for this platform; the API posture above is drawn from the vendor's own integration material and is confirmed at onboarding.

“Docs confidence” describes how deterministic our mapping templates can be before we connect to a tenant. Even with public docs, implementations vary, especially around custom fields, approval flows and object extensions.

Deterministic mapping

Common Workforce Model fields map to known API fields. Best for standard objects (requisitions, assignments, timesheets, POs).

Tenant discovery

composerID can scan tenant configuration (custom fields, picklists, required fields) where the platform permits it, then generate a tenant‑specific MappingProfile.

Enrichment loop

If the target platform requires a field the Intent record doesn't yet have, composerID emits an enrichment_request back to the intake layer.

Mapping
Minimum viable mapping for Keelvar

An opinionated baseline. The platform adapter enforces additional requirements via preflight. “Tenant required” fields are discovered during connection and added to the MappingProfile.

Object Canonical fields Platform target Required status Notes
Sourcing event (services RFx)
Publish the decided services demand as the event Keelvar runs
service_category, sow.summary, deliverables[], budget, start_date, end_date, supplier_shortlist[] Sourcing event (Sourcing Optimizer) or a Sourcing Automation bot run Required Event templates, bid sheets and lot structure are tenant-configured; event creation by API is indicative until confirmed at onboarding
Intent ID correlation
Carry the Intent ID
intent_id -> event.description (fixed token), intent_version Sourcing event: description (event name suffix as fallback), with the event id linkage recorded by composerID Required Link-only carrier: no stock external reference or custom event field is publicly documented, so the token is readable in the event but not filterable. Deep link https://{tenant_host}/events/{external_id} (illustrative)
Supplier invitations
Who is asked to bid
supplier_name, p2p_supplier_id, contact, incumbent Event supplier list / invitations Tenant required The supplier master usually mirrors the source-to-pay suite through Keelvar's connector; composerID passes the shortlist from the decision, not new supplier records
Award (read-back)
Close the loop
awarded_supplier, award_amount, lots[], event_status Award / scenario result on the event (read), or the PO or contract Keelvar's connector creates in the source-to-pay suite Read scope only Keelvar writes awards to the source-to-pay suite through its own connectors; a composerID read of award results is indicative until confirmed at onboarding
Idempotency & drift: publish + reconcileExpand

Publish operations are idempotent using a deterministic key {intent_id}-{intent_version}-{target_system}. Because humans can change records inside the platform, composerID supports reconciliation: it compares the platform record snapshot to the canonical intent and flags drift.

Tenant specifics
Custom fields & unique mapping

Real deployments rely on program-specific custom fields (for compliance, approvals, GL coding, rate rules or supplier constraints). composerID is designed to generate tenant‑specific mappings rather than forcing you to redesign your intake.

How scanning works

High-level flow

connect_destination() → read required fields + picklists (where permitted) → detect custom fields / extensions → build MappingProfile + validation rules → preflight intent against tenant requirements

What gets produced

Portable artefacts

MappingProfile (tenant-scoped) Capabilities matrix Required-field rules Picklist dictionaries Enrichment prompts Audit spine links (defence_file_ref)
Important: where this platform is tenant-definedExpand

Keelvar's public material describes integration capability, not an endpoint reference: base URL, credentials, the token model, rate limits and any event-out mechanism are provisioned per tenant at onboarding, and every path-level claim here is indicative until then. Event templates, bid sheets, lot structure and supplier lists are tenant-configured, and awards flow to the buyer's source-to-pay suite (SAP Ariba, Coupa, JAGGAER or Ivalua) through Keelvar's own connectors, so the PO or contract of record lives there, not in Keelvar. At onboarding, check whether the tenant's event template exposes a reference or custom field; if it does, move the Intent ID off the description into that field and switch the carrier from link to stamp.

Next
Implement the adapter

Use this page alongside the API + Schemas docs to implement: destination connection, preflight validation, publish, webhook back-sync and reconciliation.