Create IVR Mapping Job
createMappingCreate an IVR mapping job that will call the specified phone number, navigate the menu tree via DTMF and/or voice prompts, transcribe audio, and analyse with AI to discover all branches. Returns a job resource immediately with status="idle". To start the actual mapping, call the startMapping REST endpoint (not yet exposed via MCP — use the REST API or wait for follow-up phases). Mapping completion typically takes 2-15 minutes depending on tree depth.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"name": "<name>",
"phoneNumber": "<phoneNumber>",
"config": "<config>"
},
"name": "createMapping"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Job display name. | |
| tags | No | Up to 10 lowercase kebab-case labels for filtering and organisation. Normalised server-side (trimmed, lowercased, de-duplicated). | |
| config | Yes | ||
| profileId | No | Data profile used to supply scripted input values during the run. | |
| phoneNumber | Yes | Target phone number in E.164 format. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Unique mapping-job identifier. | |
| name | Yes | Job display name. | |
| tags | No | String labels for filtering and grouping. Lowercase alphanumeric + hyphens. | |
| error | No | Error message if the job failed. | |
| stats | No | Aggregate statistics for the current run, populated while the job executes. | |
| config | Yes | Per-job configuration knobs that govern exploration shape and call orchestration. Sensible defaults are applied server-side when fields are omitted on create. | |
| status | Yes | Current job status. Note: mapping jobs typically cycle `running` → `idle` after each run completes — they rarely persist `completed` state. | |
| userId | Yes | User who created the job. | |
| createdAt | Yes | Creation timestamp. | |
| runNumber | No | Flat-merged run number from the active or requested (via `?version=`) run. Phase 04 D-09 — preserved at top level for frontend back-compat alongside the new nested `currentRun` object. | |
| startedAt | No | Most-recent run start timestamp. | |
| updatedAt | Yes | Last update timestamp. | |
| currentRun | No | Nested run summary on single-job responses (Phase 04 D-09 / D-10). Unlike the job-level `status` (which cycles `running` ↔ `idle` and never reaches `completed`), `currentRun.status` CAN reach `completed`/`failed`/`limited`. Read this field to decide whether the discovery is done — do NOT poll for `status === 'completed'` on the job itself. The field name stays `currentRun` even when `?version=N` is supplied — the wrapper describes the run this response describes (active by default, or the historical run identified by `version`). | |
| completedAt | No | Most-recent run completion timestamp. | |
| limitReason | No | Reason the run stopped early (only present when `status` is `limited`). | |
| phoneNumber | Yes | Target phone number in E.164 format. | |
| workspaceId | Yes | Owning workspace. | |
| currentRunId | No | Identifier of the most-recent run (absent if never started). | |
| inFlightCount | No | Currently executing calls. |