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 }] } })
- Open Dashboard → Decisioning and select your project
- Go to the Matching workspace
- 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 }] }] })
- Open Dashboard → API Console and select your project
- Choose POST /infra/decisioning/matching/operations/batch from the route list
- 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')
- Open Dashboard → Decisioning and select your project
- Go to the Matching workspace
- 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')
- Open Dashboard → Decisioning and select your project
- Go to the Matching workspace
- 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 }] } })
- Open Dashboard → API Console and select your project
- Choose POST /infra/decisioning/matching/templates from the route list
- 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()
- Open Dashboard → API Console and select your project
- Choose GET /infra/decisioning/matching/templates from the route list
- 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')
- Open Dashboard → API Console and select your project
- Choose GET /infra/decisioning/matching/templates/{template_id} from the route list
- 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' })
- Open Dashboard → API Console and select your project
- Choose PATCH /infra/decisioning/matching/templates/{template_id} from the route list
- 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')
- Open Dashboard → API Console and select your project
- Choose DELETE /infra/decisioning/matching/templates/{template_id} from the route list
- 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 }] } })
- Open Dashboard → API Console and select your project
- Choose POST /infra/decisioning/matching/templates/{template_id}/operations from the route list
- Fill in the JSON body or Storage references, then send the request and inspect the response directly in the console