Skip to content

InteractionProcess

A run of an interaction: what it was started with, where it has got to, the whole conversation and its answer.

Kind: an object, used in responses.

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

FieldTypeDescription
interactionVersionReferenceThe interaction, and the version of it, that this run runs.
dateStarteddatetime | nullWhen the run started (UTC). Null until it does.
dateEndeddatetime | nullWhen the run ended (UTC). Null while it is still going.
executionTimetimespanHow long the run has spent working, not counting time spent waiting for a person. While the run is Running, add the time since dateRunnerClaimed for the current stretch.
inputsNameValuePair[]The inputs the run was started with.
outputstring | nullThe run’s answer: text, or JSON matching the interaction’s schema (or responseJsonSchema). Null until there is one.
failureDetailsstring | nullWhy the run failed or was stopped, as text. Null when it has not.
statusInteractionProcessStatusWhere the run has got to: waiting to start, running, waiting (for a person, an approval or its sub-interactions), or ended.
contextInteractionProcessContextThe run’s conversation: every message, tool call and result, grouped by kind. Sort the items by sequence to read them in order.
dateRunnerPingdatetime | nullWhen the worker running the run last reported that it was still working (UTC). Null before a worker picks it up.
dateRunnerClaimeddatetime | nullWhen a worker last picked the run up (UTC): the start of its current stretch of work. A run that resumes after waiting for a person gets a new value, and executionTime holds the time worked before it. Null until a worker picks the run up.
waitingForLaneSinceUtcdatetime | nullWhen the run started waiting for a lane, in UTC; null when it isn’t waiting. A waiting run is in status New, and GET /processes/{type}/{id}/lane says why it waits. Set by Maitento.
hostnamestring | nullThe name of the worker that last ran the run, for diagnostics. Null until a worker picks it up.
parentProcessIduuid | nullThe run that started this one: an app run, or the interaction run whose participant started this sub-interaction. Null when no other run started it.
parentProcessTypeProcessType| nullWhat kind of run parentProcessId is. Null exactly when that is null.
rootProcessIduuid | nullThe run at the top of the tree this run belongs to: the same for every run in the tree, so you can group them without following parent links. Null when no other run started this one.
triggeredByAutomatedActionIduuid | nullThe automation that started this run (on its schedule, from a message, or by hand), or null when something else started it.
triggeredByAutomatedActionNamestring | nullThe automation’s name at the time it started this run. Null exactly when triggeredByAutomatedActionId is.
retentionLeaseActiveboolean | nullTrue while a retention lease keeps this run: its own, or one inherited from a retained run that started it. A retained run is never deleted when the tenant’s retention period ends. Null or false: not retained.
retentionLeaseAppliedAtUtcdatetime | nullWhen the lease was taken, in UTC. For an inherited lease, when the ancestor’s lease was taken.
retentionLeaseAppliedByUserIduuid | nullThe id of the user who took the lease.
retentionLeaseAppliedByUserNamestring | nullThe name of the user who took the lease, as it was when they took it.
retentionLeaseNotestring | nullWhy it is retained, as the person who retained it wrote it (optional, at most 500 characters).
retentionLeaseInheritedFromProcessIduuid | nullNull when the lease is this run’s own. Otherwise the id of the ancestor run whose lease keeps this one; releasing that run’s lease releases this one too.
beforeTimeoutStatusInteractionProcessStatus| nullWhen the run ended because a person did not reply in time: the status it was waiting in. Null otherwise.
responseJsonSchemastring | nullA JSON Schema the run’s answer must match in place of the interaction’s own, as given when the run started. Null: the interaction’s schema applies.
pendingApprovalPendingToolCallApproval| nullThe tool call waiting for a person’s approval, while the run is PendingApproval. Null otherwise.
deferredToolCallsDeferredToolCall[] | nullTool calls the model asked for in the same reply as the one awaiting approval. They run, in order, once that approval is decided. Null when there are none.
disabledToolsstring[] | nullThe names of tools this run’s agents are not given, as listed when the run started.
webDownloadPartitionIduuid | nullThe temporary knowledge base (partition) the run’s web fetches are kept in: the one given when the run started, else the namespace’s default, else the tenant’s. Runs it starts use it too. Null: no agent of this run may fetch.
webAccessOverridesWebAccessOverride[] | nullThe run’s per-agent overrides of the agents’ web tools, as given when it started.
loomsLoomMapping[]Which loom each agent of the run wakes up with, settled when the run started.
loomGiftsLoomStartGift[]Threads handed to the run’s agents when it started, which each agent learns the first time it wakes.
aiModelOverridesAiModelOverride[]The agents of this run that use a different model from the one their definition names.
durationAutoTerminationtimespan | nullThe longest this run may take: the limit given when it started (or by the run that started it), else the interaction’s own. The run stops with an error when it is reached; time spent waiting for a person does not count. Null: no limit.
durationWarningToAitimespan | nullHow long into the run the agents are told that time is running short: the value given when it started, else the interaction’s own. Null: they are not told.
tokenUsageInteractionProcessTokenUsage[]The tokens the run’s model calls used: one record per turn, or more when a turn moved to another key or model. A turn’s record is updated as the turn goes, and is complete once its finished is true.
routingDecisionsInteractionRoutingDecision[]For participants whose agent is a router: which agent took each turn, and why, oldest first.
managedDispatchInteractionProcessManagedDispatch| nullIn a managed interaction: a dispatch held up by a person’s approval of a tool call the dispatched agent made. It is finished first when the run resumes. Null otherwise.
swarmInteractionProcessSwarm| nullThis run’s place in a tree of sub-interactions: present when its interaction lets participants start them, and on every run one of them started. Null otherwise.
credentialsInteractionProcessCredential[]The model provider keys the run was started with (the keys themselves are never returned). Calls use these first, then your tenant’s model keys. Empty when none were given.
allowMaitentoFallbackboolean | nullWhether an agent may fall back to Maitento’s own key once your keys for its provider are used up or have failed (and only when your tenant allows it). Null or false: it may not, and the turn fails instead.
credentialStackCredentialStackSnapshot| nullThe credential stack the run uses, as it stood when the run started: which stack, its version, where it was resolved from, and its entries and rules. No secrets: keys are read live at each call. When set, every model call uses only this stack. Null: the run uses the credentials it was started with and the tenant’s model keys.
credentialFailuresInteractionProcessCredentialFailure[]Keys that failed during the run and were skipped: which, why and when.
userCreatedByIduuidThe id of the user who created it. A call made with an API key is recorded as the key’s user.
tenantIduuidThe id of the tenant it belongs to.
iduuidThe unique id. Use it in by-id routes and wherever another object refers to this one.
dateCreateddatetimeWhen it was created, in UTC.
dateUpdateddatetimeWhen it was last changed, in UTC.
{
"interaction": {
"id": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
"version": 0
},
"dateStarted": "2026-10-26T12:00:00.0000000Z",
"dateEnded": "2026-10-26T12:00:00.0000000Z",
"executionTime": "00:05:00",
"inputs": [
{
"name": "...",
"value": "..."
}
],
"output": "...",
"failureDetails": "...",
"status": "New",
"context": {
"agentMessage": [
{}
],
"agree": [
{}
],
"directQuestionAnswer": [
{}
],
"directQuestionAsk": [
{}
],
"disagree": [
{}
],
"humanMessage": [
{}
],
"injectedSystemMessage": [
{}
],
"noAction": [
{}
],
"orchestratorMessage": [
{}
],
"solutionProposal": [
{}
],
"systemPrompt": [
{}
],
"toolCall": [
{}
],
"toolResult": [
{}
],
"voteProposal": [
{}
],
"summary": [
{}
]
},
"dateRunnerPing": "2026-10-26T12:00:00.0000000Z",
"dateRunnerClaimed": "2026-10-26T12:00:00.0000000Z",
"waitingForLaneSinceUtc": "2026-10-26T12:00:00.0000000Z",
"hostname": "...",
"parentProcessId": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
"parentProcessType": "App",
"rootProcessId": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
"triggeredByAutomatedActionId": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
"triggeredByAutomatedActionName": "...",
"retentionLeaseActive": false,
"retentionLeaseAppliedAtUtc": "2026-10-26T12:00:00.0000000Z",
"retentionLeaseAppliedByUserId": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
"retentionLeaseAppliedByUserName": "...",
"retentionLeaseNote": "...",
"retentionLeaseInheritedFromProcessId": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
"beforeTimeoutStatus": "New",
"responseJsonSchema": "...",
"pendingApproval": {
"id": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
"functionName": "...",
"argumentsJson": "...",
"toolCallId": "...",
"dateRequested": "2026-10-26T12:00:00.0000000Z",
"status": "Pending",
"agentId": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
"agentName": "..."
},
"deferredToolCalls": [
{
"toolCallId": "...",
"functionName": "...",
"argumentsJson": "...",
"agentId": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
"agentName": "..."
}
],
"disabledTools": [
"..."
],
"webDownloadPartitionId": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
"webAccessOverrides": [
{
"agentName": "...",
"search": false,
"fetch": false
}
],
"looms": [
{
"agentName": "...",
"loom": "..."
}
],
"loomGifts": [
{
"agentName": "...",
"fromLoomId": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
"threadIds": [],
"note": "...",
"givenBy": "...",
"origin": {}
}
],
"aiModelOverrides": [
{
"agentName": "...",
"aiModelId": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
"customModel": {},
"purpose": "Agent"
}
],
"durationAutoTermination": "00:05:00",
"durationWarningToAi": "00:05:00",
"tokenUsage": [
{
"turnId": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
"date": "2026-10-26T12:00:00.0000000Z",
"provider": "...",
"model": "...",
"agentName": "...",
"agentId": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
"usages": [],
"finished": false,
"credentialId": "...",
"isOwnLicense": false,
"tier": "..."
}
],
"routingDecisions": [
{
"date": "2026-10-26T12:00:00.0000000Z",
"participantName": "...",
"router": {},
"chosen": {},
"reason": "...",
"isFallback": false,
"depth": 0
}
],
"managedDispatch": {
"id": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
"agentName": "...",
"message": "...",
"threadId": "...",
"recordThreadId": "...",
"mode": "OneTime",
"dateStarted": "2026-10-26T12:00:00.0000000Z"
},
"swarm": {
"rootId": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
"depth": 0,
"limits": {
"maxDepth": 0,
"maxConcurrent": 0,
"maxTotal": 0
},
"started": 0,
"running": 0,
"children": [
{}
],
"released": false,
"await": {
"id": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
"processIds": [],
"all": false,
"participantName": "...",
"threadId": "...",
"takenBy": {},
"dateStarted": "2026-10-26T12:00:00.0000000Z"
}
},
"credentials": [
{
"provider": "...",
"baseUrl": "...",
"modelNameOverrides": {
"key": "..."
},
"credentialId": "...",
"isOwnLicense": false,
"priority": 0
}
],
"allowMaitentoFallback": false,
"credentialStack": {
"stackId": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
"stackName": "...",
"stackVersion": 0,
"source": "Start",
"resolvedAtUtc": "2026-10-26T12:00:00.0000000Z",
"entries": [
{}
],
"passesToChildren": false
},
"credentialFailures": [
{
"credentialId": "...",
"provider": "...",
"failureReason": "...",
"detail": "...",
"dateUtc": "2026-10-26T12:00:00.0000000Z",
"retryAfterSeconds": 0
}
],
"userCreatedById": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
"tenantId": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
"id": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
"dateCreated": "2026-10-26T12:00:00.0000000Z",
"dateUpdated": "2026-10-26T12:00:00.0000000Z"
}