> ## Documentation Index
> Fetch the complete documentation index at: https://docs-classic.cognigy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Input

[Updated in 4.90](https://docs-classic.cognigy.com/release-notes/4.90.md)

The *Input Object* is a JSON object that serves as the short-term AI Agent memory. The Input object is generated each time the user sends a message or provides a voice input to an AI Agent.

The Input object stores:

* General data about the user input, such as time and type of input
* Endpoint-specific data
* Results from the NLU Intent mapping process, such as the recognized [Intent](https://docs-classic.cognigy.com/ai/platform-features/nlu/intents/overview) and [Slots](https://docs-classic.cognigy.com/ai/platform-features/nlu/slots/overview)

## Limitations

* You can store up to 1.5 MB in the Input object. For on-premises installations, you can configure the limit using the `MAX_MEMORY_OBJECT_SIZE` variable in the `values.yaml` file. Increasing the object size could lead to performance issues.

## Properties

> [!NOTE]
>
> The data in the Input object depends on the Endpoint through which the user input is received. This article doesn't include all possible property variations.

> [!WARNING]
>
> As of Cognigy 4.91.0, the Understood Messages concept is deprecated. Use the [Goals and Tasks](https://docs-classic.cognigy.com/ai/agents/analyze/goals-and-tasks/overview) concepts to evaluate whether your AI Agent understood a particular phrase. In Cognigy 2025.19, the charts related to this concept were removed from Insights reports.
>
> As of Cognigy 4.91.0, the `understood` field in the Cognigy OData endpoint is deprecated. The `understood` field has been removed from the Cognigy OData endpoint. Use the [Goals collection](https://docs-classic.cognigy.com/ai/agents/analyze/odata.md#goals) in the Cognigy OData endpoint.
>
> Refer to the list of all upcoming removals on the [Deprecations and Removals](https://docs-classic.cognigy.com/release-notes/deprecations-and-removals.md) page.

The Input object contains the following properties:

> [accordion] Input Object Properties
>
> | Key | Type | Description |
> | - | - | - |
> | `text` | String | The text of the user input. |
> | `intent`<sup>[1](#footnote1)</sup> | String | The detected Intent name. If no Intent is detected, the property value is `null`. |
> | `intentScore`<sup>[1](#footnote1)</sup> | Number | The detected Intent score. If no Intent is detected, the property value is `null`. |
> | `intentFlow` | String | The Flow ID in which the Intent is detected. If no Intent is detected, the property value is `null`. |
> | `slots` | Array | Contains the detected [system-defined](https://docs-classic.cognigy.com/ai/platform-features/nlu/slots/system-defined.md) and [user-defined Slots](https://docs-classic.cognigy.com/ai/platform-features/nlu/slots/user-defined/overview). |
> | `nlu`<sup>[1](#footnote1)</sup> | [Object](#nested-objects) | Contains the detailed NLU processing results. |
> | `mode` | String | The type of input received by Cognigy. Can be either **TextOnly** or **TextData**. |
> | `type`<sup>[1](#footnote1)</sup> | String | The type of input sentence as determined by the NLU engine (Statement, Command, Greeting, BGreeting, whQuestion, howQuestion, ynQuestion, pAnswer, nAnswer). |
> | `intentOutOfState` | String | Contains the detected Intent that has been excluded in the current Flow state. If no detected Intent was excluded in the current Flow state, the value is `null`. |
> | `currentTime` | [Object](#nested-objects) | Contains the timestamp data of the user input reception. |
> | `language` | String | The locale language that was used to process the user input. For example, `en-US`, `de-DE`. |
> | `ip` | String | The IP address of the user. If the IP address isn't available, for example, due to [privacy or masking settings](https://docs-classic.cognigy.com/ai/agents/deploy/endpoints/data-protection-and-analytics.md), the value is `null`. |
> | `hashedIp` | String | The hashed IP address of the user. |
> | `state` | String | The current state of the Flow. By default, the value is `default`. |
> | `channel` | String | The channel through which the user input was received. This property is also available in the OData records to allow channel-based analytics filtering. |
> | `endpointType` | String | The type of Endpoint through which the message was received, for example, Alexa or Facebook (Meta) Messenger. You can't change this value. |
> | `entrypoint` | String | The ID of this property varies based on Snapshot usage:<ul><li>The Project ID when no Snapshot is used.</li><li>The Snapshot ID when a Snapshot is used.</li></ul> |
> | `userId` | String | The current user's ID. Cognigy uses the user ID to identify their individual contact profile. See [Contact Profiles](https://docs-classic.cognigy.com/ai/agents/analyze/contact-profiles.md) for more information. |
> | `inputId` | String | A unique ID that is generated for each user input received by Cognigy. |
> | `sessionId` | String | The current session ID. The session ID either provided by the channel or generated by Cognigy. Most Endpoints allow defining an individual session expiration (TTL). |
> | `flowName` | String | The name of the Flow in execution. |
> | `URLToken` | String | The [Endpoint URL Token](https://docs-classic.cognigy.com/ai/agents/deploy/endpoints/overview). |
> | `frustration` | Number | Indicates user frustration by representing how often the user repeatedly takes the same path in the Flow. |
> | `completedGoals` | Array | The [Goals](https://docs-classic.cognigy.com/insights/reports/goals.md) that have been at the current stage in the Flow. |
> | `execution` | Number | The number of messages received in the current session. |
> | `traceId` | String | A unique identifier for the user input. |
> | `activeQuestion` | [Object](#nested-objects) | Contains information about an active question. |
> | `apps` | [Object](#nested-objects) | Contains information about the xApps that are active in the current session. |
> | `intentLevel`<sup>[1](#footnote1)</sup> | [Object](#nested-objects) | Contains information about the Intent Hierarchy level of the detected Intent. If no Intent was detected, the object is `{"level1": null, "level2": null, "level3": null}` |
> | `understood`<sup>[1](#footnote1)</sup> | Boolean | An input is considered `understood` if any of the following conditions are met:<ul><li>An Intent or Slot is identified.</li><li>The input is marked as understood through the Nodes: Code, Overwrite Analytics, Search Extract Output, or AI Agent.</li><li>The sentence type is `pAnswer`, `nAnswer`, or `Greeting`, if the [Confirmation Word logic](https://docs-classic.cognigy.com/ai/platform-features/nlu/intents/confirmation-words.md) is activated.</li></ul> An input is considered `not understood` if any of the following conditions are met:<ul><li>There is an active handover without triggering an Agent Copilot Whisper Flow.</li><li>The message is explicitly marked as `Don't count` or `Null`.</li></ul> |
> | `data` | Object | The data payload of the input. This object depends on the Endpoint through which the user input is received. |
> | `attachments` | Array | An array of URLs pointing to the attachments uploaded to the chat. |
> | `localeId`<sup>[1](#footnote1)</sup> | String | The unique ID for the current locale used to process the input message. |
> | `result` | String | The answer from the user to a question from a [Question](https://docs-classic.cognigy.com/ai/agents/develop/node-reference/basic/question.md) or [Optional Question](https://docs-classic.cognigy.com/ai/agents/develop/node-reference/basic/optional-question.md). |
> | `conditionalEntrypointWasExecuted`<sup>[1](#footnote1)</sup> | Boolean | Indicates if the Flow was executed on a conditional Node. |
> | `transcript` | [Object](#nested-objects) | Contains information about the conversation transcript generated via the Get Transcript Node. |

### Nested Objects

> [accordion] nlu Object
>
> | Key | Property | | Type | Description |
> | - | - | - | - | - |
> | `intentMapperResults` | | | Object | Provides details about the NLU Intent mapping results. |
> | | `finalIntentName` | | String | The name of the detected Intent. |
> | | `finalIntentScore` | | Number | The score of the detected Intent. |
> | | `finalIntentNegated` | | Boolean | Indicates whether the detected Intent was negated. |
> | | `finalIntentConfirmationSentence` | | String | The confirmation sentence of the detected Intent. |
> | | `finalIntentDisambiguationSentence` | | String | The disambiguation sentence of the detected Intent. |
> | | `highestFlow` | | String | Reference ID of the Flow in which the highest-scoring Intent was detected. |
> | | `intentPath` | | String | The path of the Intent. |
> | | `intentPathIds` | | Array | The IDs of the Intents in the path. |
> | | `intentPathFlowReferenceIds` | | Array | The reference IDs of the Flows in which the Intents in the path were found. |
> | | `scores` | | Array | Contains the results for the highest-scoring Intents for the current user input. |
> | | | `id` | String | The ID of the Intent. |
> | | | `name` | String | The name of the Intent. |
> | | | `score` | Number | The score of the Intent. |
> | | | `negated` | Boolean | Indicates whether the Intent was negated. |
> | | | `confirmationSentence` | String | The confirmation sentence of the Intent. |
> | | | `confirmationSentences` | Array | The confirmation sentences of the Intent. |
> | | | `disambiguationSentence` | String | The disambiguation sentence of the Intent. |
> | | | `flow` | String | The reference ID of the Flow in which the Intent was detected. |
> | | | `description` | String | The description of the detected Intent. |
> | `intentFlow` | | | String | A unique ID assigned to the Flow in which the Intent was detected. |
> | `uniqueIntentFlowId` | | | String | A unique identifier for the Flow in which the Intent was detected. |
> | `intentId` | | | String | A unique ID assigned to the Intent that was selected by the NLU processing. |
> | `uniqueIntentId` | | | String | A unique identifier for the selected Intent. |
> | `detailedSlots` | | | Array | Contains the detected [system-defined](https://docs-classic.cognigy.com/ai/platform-features/nlu/slots/system-defined.md) and [user-defined Slots](https://docs-classic.cognigy.com/ai/platform-features/nlu/slots/user-defined/overview), with more detailed information about the system-defined Slots. |
> | `tokens` | | | Array | Contains the user input tokens. |
> | `yesNoIntentResults` | | | Object | Contains the results of the Yes/No Intents model evaluation. See [Yes/No Intents](https://docs-classic.cognigy.com/ai/platform-features/nlu/intents/yes-no-intents.md) for more information. |
> | | `finalIntentName` | | String | The name of the detected Yes/No Intent. |
> | | `finalIntentScore` | | Number | The score of the detected Yes/No Intent. |
> | | `scores` | | Array | Contains the results for the highest-scoring Yes/No Intents. |
> | | | `id` | String | The ID of the Intent. |
> | | | `name` | String | The name of the Intent. |
> | | | `score` | Number | The score of the Intent. |
> | | | `negated` | Boolean | Indicates whether the Yes/No Intent was negated. |
> | | | `confirmationSentence` | String | The confirmation sentence of the Yes/No Intent. |
> | | | `confirmationSentences` | Array | The confirmation sentences of the Yes/No Intent. |
> | | | `disambiguationSentence` | String | The disambiguation sentence of the Yes/No Intent. |
> | | | `flow` | String | The reference ID of the Flow in which the Yes/No Intent was detected. |
> | | | `description` | String | The description of the detected Yes/No Intent. |

> [accordion] currentTime Object
>
> | Key | Type | Description |
> | - | - | - |
> | `year` | Number | The year. |
> | `month` | Number | The month of the year. |
> | `day` | Number | The day of the month. |
> | `hour` | Number | The hour of the day. |
> | `minute` | Number | The minute of the hour. |
> | `second` | Number | The second of the minute. |
> | `milliseconds` | Number | The milliseconds of the current time. |
> | `weekday` | Number | The day of the week. |
> | `dayOfWeek` | String | The day of the week. |
> | `ISODate` | String | The date and time in ISO 8601 format. |
> | `plain` | String | The current date and time in plain text. |
> | `grain` | String | The grain of the current time. |
> | `timezoneOffset` | String | The timezone offset of the current time. |

> [accordion] activeQuestion Object
>
> | Key | Type | Description |
> | - | - | - |
> | `nodeId` | String | The question Node's ID. |
> | `type` | String | The type of question. |
> | `lastExecutedAt` | String | The timestamp of the last execution of the active question. |
> | `forgetQuestionThreshold` | Number | The threshold for forgetting the question. |
> | `repromptCount` | Number | The number of times the question was reprompted. |
> | `escalationCount` | Number | The number of times the question was escalated. |

> [accordion] apps Object
>
> | Key | Property | Type | Description |
> | - | - | - | - |
> | `customization` | | Object | Contains the style customization options for the xApp Session as configured in the [xApp: Init Session Node](https://docs-classic.cognigy.com/ai/agents/develop/node-reference/xApp/init-xApp-session.md). |
> | `session` | | Object | Contains xApp session-specific data. |
> | | `token` | String | The xApp session token used to start a real-time connection with the xApp Shell Page. |
> | | `pin` | String | The xApp session PIN, if the xApp: Get Session PIN Node is used. |
> | `baseUrl` | | String | Base URL of the xApp Shell Page. |
> | `url` | | String | The xApp session URL for the current conversation. |

> [accordion] intentLevel Object
>
> | Key | Type | Description |
> | - | - | - |
> | `level1` | String | Level 1 Intent name. If no Intent was detected, the property value is `null`. |
> | `level2` | String | Level 2 Intent name. If no child Intent was detected, the property value is `null`. |
> | `level3` | String | Level 3 Intent name. If no grandchild Intent was detected, the property value is `null`. |

> [accordion] transcript Object
>
> > [!NOTE]
> >
> > The `transcript` object is only available if the [Get Transcript](https://docs-classic.cognigy.com/ai/agents/develop/node-reference/service/get-transcript.md) Node is used in the Flow.
>
> | Key | Property | Type | Description |
> | - | - | - | - |
> | `role` | | String | Defines who sent the message. Possible values:  - `assistant` — the message is sent by the AI Agent.  - `user` — the message is sent by the end user.  - `agent` — a human agent.  - `system` — a system message.  - `tool` — an external tool. |
> | `type` | | String | The type of the message. Possible values:  - `input` — a user input.  - `output` — an AI Agent output.  - `toolCall` — a request to a tool.  - `toolAnswer` — a tool response.  - `debugLog` — a system debug message. |
> | `source` | | String | The origin of the message. Possible values are `user`, `assistant`, `agent`, or `system`. Helps distinguish between different actors in the conversation. |
> | `payload` | | Object | The main content of the message. Its structure depends on the message type. |
> | | **For type `input` or `output`** | | Represents the messages exchanged between the end user and the AI Agent. |
> | | `text` | String | The text of the message. |
> | | `textAlternative` | String | The alternative text shown if the main payload is non-text, for example, for images, buttons, or other rich media. Available only for messages of the `output` type. |
> | | `data` | Object | The additional structured information, such as metadata, attachments, or rich media. |
> | | **For type `toolCall`** | | Represents a request sent by the AI Agent to an external tool. |
> | | `name` | String | The name of the tool being called. |
> | | `id` | String | The unique identifier for the tool call. |
> | | `input` | Object | The parameters or data sent to the tool for processing. |
> | | **For type `toolAnswer`** | | Represents the response returned from a tool call. |
> | | `toolCallId` | String | References the original tool call ID that this answer corresponds to. |
> | | `name` | String | The name of the tool that provided the answer. |
> | | `content` | String | The output content returned by the tool. |
> | | **For type `debugLog`** | | Represents a system debug message. |
> | | `header` | String | The header describing the debug log. |
> | | `message` | String | The detailed debug message content. |
> | | `metadata` | Object | The additional structured data related to the debug log (for example, key-value pairs for internal debugging). |
> | `id` | | String | The unique identifier for each message. Ensures that the messages are traceable, maintain order, and prevent duplicates. |
> | `traceId` | | String | The identifier used to group related messages within the same session, allowing easier tracking of conversation threads. |
> | `timestamp` | | Number | The UNIX timestamp representing when the message was created. It is useful for ordering and analyzing the message history. |

## Working with the Input Object

You can view the Input object by navigating to **Info > Input** in the [Interaction Panel](https://docs-classic.cognigy.com/ai/agents/test/interaction-panel/overview). You can copy the exact JSON path of an Input object value by right-clicking it and selecting **Copy JSON Path**.

### Accessing Input Properties

Nodes can dynamically access Input properties with [CognigyScript](https://docs-classic.cognigy.com/ai/platform-features/cognigyscript), for example, `{{input.property}}` or [Tokens](https://docs-classic.cognigy.com/ai/platform-features/tokens.md). The CognigyScript expression you use to access the input object follows the dot notation for JSON objects: `property.child.child`.

#### Examples

* `{{input.text}}` returns the text that the user sent to the Flow.
* `{{input.nlu.tokens}}` returns the tokens of the user input in an array.
* `{{input.attachments[0].url}}` returns the URL of the first attachment uploaded to the chat.

## More Information

* [Interaction Panel](https://docs-classic.cognigy.com/ai/agents/test/interaction-panel/overview)

***

<sup id="footnote1">1</sup>: The NLU properties are computed by the NLU Connector and stored after the NLU processing. For this reason, [Rules](https://docs-classic.cognigy.com/ai/platform-features/nlu/intents/rules.md) and [Intent Conditions](https://docs-classic.cognigy.com/ai/platform-features/nlu/intents/conditions.md) can't access these properties.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.