# InteractionRoutingDecision

One router's choice for one turn: which agent took the participant's turn, and why. It is never part of any participant's conversation, so to everyone else the participant stays one participant.

**Kind:** an object, used in responses.

## Fields

Every field is present in a response; empty ones are `null`.

| Field | Type | Description |
|---|---|---|
| `date` | `datetime` | When the choice was made (UTC). |
| `participantName` | `string` | The participant whose turn was routed. |
| `router` | [`VersionReference`](https://docs.maitento.com/reference/types/version-reference.md) | The router that chose (the innermost one, when a router chose another router). |
| `chosen` | [`VersionReference`](https://docs.maitento.com/reference/types/version-reference.md) | The agent that took the turn. |
| `reason` | `string \| null` | The router's own one-sentence reason, or why it fell back. |
| `isFallback` | `boolean` | True when the router's reply could not be used (no reply, or no candidate named) and the first candidate took the turn instead. |
| `depth` | `integer` | How many routers chose on the way to `chosen`: 1 when the participant's router chose directly. |

## Example

```json
{
  "date": "2026-10-26T12:00:00.0000000Z",
  "participantName": "...",
  "router": {
    "id": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
    "version": 0
  },
  "chosen": {
    "id": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
    "version": 0
  },
  "reason": "...",
  "isFallback": false,
  "depth": 0
}
```

## Where it's used

- Inside [`InteractionProcess`](https://docs.maitento.com/reference/types/interaction-process.md)
- Inside [`InteractionProcessWithDetails`](https://docs.maitento.com/reference/types/interaction-process-with-details.md)
