Search docs ⌘K
esc
Type to search across all documentation pages
Matching

Matching

Domain-agnostic constrained assignment primitives for solving caller-defined matching problems. Provide your own nodes, capacities, edges, costs, and scores, then let SaaSignal return a deterministic assignment result or async operation.

Boundary: Matching computes assignments. It does not geocode addresses, reserve inventory, mutate orders, or perform side effects in your domain model.

Create Matching Operation

GET
typescript
const result = await ss.infra.decisioning.matching.createOperation({ problem: { objective: 'min_cost', left_nodes: [{ id: 'driver_1' }], right_nodes: [{ id: 'order_1' }], edges: [{ left_id: 'driver_1', right_id: 'order_1', cost: 2.4 }] } })
  1. Open Dashboard → Decisioning and select your project
  2. Go to the Matching workspace
  3. Paste the solve payload into the matching solver card, run it synchronously or asynchronously, and inspect the returned assignment or operation record.

Create Batch Matching Operation

GET
typescript
const result = await ss.infra.decisioning.matching.createBatchOperation({ problems: [{ left_nodes: [{ id: 'a' }], right_nodes: [{ id: 'b' }], edges: [{ left_id: 'a', right_id: 'b', cost: 1 }] }] })
  1. Open Dashboard → API Console and select your project
  2. Choose POST /infra/decisioning/matching/operations/batch from the route list
  3. Fill in the JSON body or Storage references, then send the request and inspect the response directly in the console

Get Matching Operation

GET
typescript
const operation = await ss.infra.decisioning.matching.getOperation('mop_123')
  1. Open Dashboard → Decisioning and select your project
  2. Go to the Matching workspace
  3. Enter the `mop_...` identifier in the operator rail to inspect the async solve status, result payload, or error details.

Cancel Matching Operation

GET
typescript
const operation = await ss.infra.decisioning.matching.cancelOperation('mop_123')
  1. Open Dashboard → Decisioning and select your project
  2. Go to the Matching workspace
  3. Load the async operation in the operator rail, then use the cancel action to stop queued or in-flight solve work.

Create Matching Template

GET
typescript
const template = await ss.infra.decisioning.matching.createTemplate({ name: 'dispatch-default', problem: { objective: 'min_cost', left_nodes: [{ id: 'left_seed' }], right_nodes: [{ id: 'right_seed' }], edges: [{ left_id: 'left_seed', right_id: 'right_seed', cost: 1 }] } })
  1. Open Dashboard → API Console and select your project
  2. Choose POST /infra/decisioning/matching/templates from the route list
  3. Fill in the JSON body or Storage references, then send the request and inspect the response directly in the console

List Matching Templates

GET
typescript
const { templates } = await ss.infra.decisioning.matching.listTemplates()
  1. Open Dashboard → API Console and select your project
  2. Choose GET /infra/decisioning/matching/templates from the route list
  3. Fill in the JSON body or Storage references, then send the request and inspect the response directly in the console

Get Matching Template

GET
typescript
const template = await ss.infra.decisioning.matching.getTemplate('mtpl_123')
  1. Open Dashboard → API Console and select your project
  2. Choose GET /infra/decisioning/matching/templates/{template_id} from the route list
  3. Fill in the JSON body or Storage references, then send the request and inspect the response directly in the console

Update Matching Template

GET
typescript
const template = await ss.infra.decisioning.matching.updateTemplate('mtpl_123', { description: 'Default driver assignment constraints' })
  1. Open Dashboard → API Console and select your project
  2. Choose PATCH /infra/decisioning/matching/templates/{template_id} from the route list
  3. Fill in the JSON body or Storage references, then send the request and inspect the response directly in the console

Delete Matching Template

GET
typescript
await ss.infra.decisioning.matching.deleteTemplate('mtpl_123')
  1. Open Dashboard → API Console and select your project
  2. Choose DELETE /infra/decisioning/matching/templates/{template_id} from the route list
  3. Fill in the JSON body or Storage references, then send the request and inspect the response directly in the console

Create Template Matching Operation

GET
typescript
const result = await ss.infra.decisioning.matching.createTemplateOperation('mtpl_123', { override: { left_nodes: [{ id: 'driver_1' }], right_nodes: [{ id: 'order_1' }], edges: [{ left_id: 'driver_1', right_id: 'order_1', cost: 1.2 }] } })
  1. Open Dashboard → API Console and select your project
  2. Choose POST /infra/decisioning/matching/templates/{template_id}/operations from the route list
  3. Fill in the JSON body or Storage references, then send the request and inspect the response directly in the console