Skip to main content
Back to How-to Guides nlMeta lets you programmatically control the AI Agent’s conversation flow. Use it to trigger a specific intent, pre-populate entity values, or override the NLP engine’s detection—based on external data such as backend system responses or the hosting webpage. Common scenarios:
  • A backend system provides context suggesting a different task than what the NLP engine identified.
  • A welcome message shows flight deals; when a user selects one, the “Book Flight” task is triggered with pre-filled travel details.
You can send nlMeta via the BotKit SDK, Widget SDK, or Web SDK.

nlMeta Object

The nlMeta object is processed by the AI Agent before any other NLP evaluation. If the specified task isn’t found, the agent responds: “Dialog task required for conversation not available.”

Structure

Parameters

interruptionOptions: hr


Usage

BotKit SDK

Pass nlMeta as part of the metaInfo object:

Web SDK

Send nlMeta using the sendMessage function in chatWindow.js:
The Authenticate User intent is triggered when the text field equals "Existing".

Widget SDK

Include nlMeta in the payload for templates such as button, menu, or list. See Widget SDK Message Formatting and Templates.

FAQs

Does the platform honor interruption settings when receiving a new intent via NLMeta from BotKit? Yes. All interruption settings are honored. Does BotKit provide access to the current node and dialog name? Yes. BotKit has full access to the context object, which includes the current task and entity details. Can I set an entity value directly from BotKit using NLMeta? Yes. You can set entity values for an ongoing dialog task. Can I trigger an FAQ using NLMeta? Yes. Add "intentType": "KG" to the nlMeta object. By default, NLMeta triggers dialog tasks; this key triggers FAQs from the Knowledge Graph instead.