# Slots (custom)

### What are custom slots?

Slots are variables your AI captures to fulfill a user’s intent. Custom slots are values you define for your business. They're typically a fixed set of options that can be recognized by your NLP engine and, in chat experiences, may appear as selectable choices.

For example: “I want to book the deluxe room.”\
Deluxe is a slot value representing room type.

Common custom slot examples

* Yes / No
* Small / Medium / Large
* “I want to sign up” / “I want something else”

{% hint style="warning" %}
Looking for standard inputs like date, time, email, or freeform text?\
Those are built-in (system) slots. You don’t create them through the custom slots resource. Select a system slot when attaching slots to a flow. See: [Built-in slots](https://docs.nlx.ai/platform/nlx-platform-guide/overview/setup#custom-vs-built-in-slots).
{% endhint %}

To access, click *Resources* in your workspace menu and choose *Slots*:

{% @arcade/embed flowId="yci1OYsB1LNxRMnP3L2e" url="<https://app.arcade.software/share/yci1OYsB1LNxRMnP3L2e>" %}

### Requirements

* [ ] One or more values entered
* [ ] [Attached to a flow](https://docs.nlx.ai/platform/nlx-platform-guide/overview/setup#attached-slots) for use

### Values

After creating a new custom slot:

* Click *+ Add new value* > Enter custom slot value and repeat as needed
* Click *Save*

{% hint style="warning" %}
Refrain from closely-named values (*value 1 = Yes, value 2 = Yes, please*).&#x20;
{% endhint %}

{% @arcade/embed flowId="ZhpzpON6cmG5DBU5oPxn" url="<https://app.arcade.software/share/ZhpzpON6cmG5DBU5oPxn>" %}

> Optional (expand a value):
>
> * *Choice payload*: Defines a custom payload for how a value is displayed when shown as a user selection. You can insert previously set [Context variables](https://docs.nlx.ai/platform/nlx-platform-guide/flows-and-building-blocks/advanced/context-variables) using the placeholder menu `{` within the field. Payloads can also be used to control sorting or order. For example, adding `isLastValue` ensures the value appears last in the list

<figure><img src="https://2737319166-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHCxYxhIU0Bqkjj942mGk%2Fuploads%2Fq5pSIKwdhKurWbhMIS5w%2FSlots_Documentation_Choice%20payload.png?alt=media&#x26;token=0ab9d652-e3c3-4430-b834-3a0397002975" alt=""><figcaption><p>Choice payload field of a custom slot value</p></figcaption></figure>

### Synonyms

Synonyms allow you to add alternate terms to a custom slot value that users are likely to provide when making a choice (e.g., a user may respond with *Sure* or *OK* instead of *Yes*). In these cases, synonyms can be added to expand the scope of responses that capture the same value:

{% @arcade/embed flowId="tDCRKMnmVvdFcxu4NHvb" url="<https://app.arcade.software/share/tDCRKMnmVvdFcxu4NHvb>" %}

* Expand a value > Select *+ Add synonym*
* Enter one or more synonyms for the value > Click *Save*

### Adding translations

*Languages* manages the translations of all values and synonyms belonging to a custom slot.

Want to know what languages are available? See [Supported languages](https://docs.nlx.ai/platform/nlx-platform-guide/flows-and-building-blocks/translations#supported-languages)

{% hint style="info" %}
Ensure custom slots used in flows have been translated to match the language(s) your application ultimately needs to support.
{% endhint %}

{% @arcade/embed flowId="MZZQ4oCoxxJq3cXax0Mx" url="<https://app.arcade.software/share/MZZQ4oCoxxJq3cXax0Mx>" %}

* Select *Languages* tab > Click *+ Add new language* and choose from list
* Click *Save*

{% tabs %}
{% tab title="Auto-translation" %}
{% @arcade/embed flowId="zOFMugPhIJ6P0paL5kZk" url="<https://app.arcade.software/share/zOFMugPhIJ6P0paL5kZk>" %}

* Select *Manage translations* next to supported language
* Choose *Auto-translate all* > *Confirm*
  {% endtab %}

{% tab title="Manual translation" %}
{% @arcade/embed flowId="a4jDIdLu3wPVZWK7YsKx" url="<https://app.arcade.software/share/a4jDIdLu3wPVZWK7YsKx>" %}

* Select *Manage translations* next to supported language
* Type translation for each value of a custom slot
* Expand slot value > Provide synonyms of the custom value in supported language, if applicable
* Click *Save*

> Optional (expand a value):
>
> * *Mark as translated* overrides auto-translation
> * *Skip translation* prevents the value from being automatically translated when a language is assigned to the slot
>   {% endtab %}
>   {% endtabs %}

### Slot settings

* *Sensitive*: Prevents the slot's values from being stored in conversation logs

{% hint style="info" %}
To delete a custom *Slot* and all of its values, select the *Delete* option under *Danger zone.* If the *Slot* is attached to a flow, create a [new application build and re-deploy](https://docs.nlx.ai/platform/nlx-platform-guide/ai-applications/setup#deployment) to experience the change.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.nlx.ai/platform/nlx-platform-guide/flows-and-building-blocks/advanced/slots-custom.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
