# Links

Nodes can be connected using **Links**. When you draw a line from one node to another it will create a link between the two. There are two kinds of special links. They are both only available in **Ask** node types:

* Labelled links
* Dialog triggers

## Labelled links

The available choices are managed by drawing lines (= node links) from this node to other nodes. When the line is drawn without a target node, the system will automatically ask you to choose a node type to create for you. The link type will be automatically set to "labelled".

A "labelled" link represents the expected choices that will satisfy the question. Every link represents one choice.

<figure><img src="https://3356808761-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEBQHGJABNTj5ISSOTRxM%2Fuploads%2Fsz9zSRfvRZgbsvDX0yge%2Fimage.png?alt=media&#x26;token=054dcc6f-8ada-4916-b629-4250a3913ca6" alt=""><figcaption><p>Labeled triggers used in <strong>Ask: Choice</strong></p></figcaption></figure>

Labelled links are mainly used for the node **Ask: Choice**. A node link consists of the following details:

<figure><img src="https://3356808761-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEBQHGJABNTj5ISSOTRxM%2Fuploads%2FYJIPBBA3pyxXNgxlJ99F%2Fimage.png?alt=media&#x26;token=c22945a5-1d75-4a7f-93c1-a4aae6af7a78" alt=""><figcaption><p>Labelled trigger properties</p></figcaption></figure>

| Property        | Description                                                                   | Explanation                                                                                                                                                                                         |
| --------------- | ----------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Label           | The label of the choice.                                                      | Will be used to match the input of the user to the right choice. On visual channels the choices are represented as quick replies. On voice channels the choices are also available as DTMF choices. |
| Strict matching | The label is matched strictly.                                                | When the label is "A" the choice will not be triggered when "AA" is given if **Strict matching** is enabled.                                                                                        |
| Intent          | To be able to match the choice to the user input using a trained user intent. | User intents can be trained in the [Training section](https://manuals.dialox.ai/studio/ai/intents) of the platform.                                                                                 |
| DTMF Key        | To be able to use a DTMF key on your phone to select the trigger.             | DTMF are the keys on your phone, therefore this option will only be relevant for bots that answer the phone.                                                                                        |
| Custom Value    | To set a value to store in the associated **Ask: Choice** node                |                                                                                                                                                                                                     |

### Strict matching

When **Strict Matching** is enabled, the platform will be strict when using the label for matching the trigger. For example, if the label is "Sales", the trigger will **not** match if the user says "The Sales Department". It will only match when the user says specifically and only the word "Sales".

This is useful in situations where two or more choices have overlap, like a "Sales" and a "Sales Questions" option. Using Strict Matching will prevent the system from always matching "Sales", even when the user says "Sales Questions".

### Custom value

If using an [**Ask: Choice**](https://manuals.dialox.ai/studio/flows/nodes/ask-choice) node, the default value stored in its variable is the Label of the Link associated with the choice made by the user. You can opt to store a Custom Value instead, which can be set here. Make sure to select 'link value' as the stored value on the **Ask: Choice** node.

## Dialog triggers

Dialog triggers can be used on **Ask** nodes to handle user input or events that do not belong to the main choices of the **Ask**, the Labelled links. Dialog triggers can trigger by user intents or by system events.

The following example shows two types of dialog triggers. The first is using a trained user intent and the second an unknown event.

<figure><img src="https://3356808761-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEBQHGJABNTj5ISSOTRxM%2Fuploads%2F0vdUYFWsCxUjyFE8RYf1%2Fimage.png?alt=media&#x26;token=5d87bf3e-83c9-40a3-9e24-f844c35ae1d3" alt=""><figcaption><p>Dialog triggers used in Ask: choice</p></figcaption></figure>

The user intent for "Why?" can be used like this:

![](https://3356808761-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEBQHGJABNTj5ISSOTRxM%2Fuploads%2Fu3WAKoXhKjkyjigfxFHX%2Fimage.png?alt=media\&token=79309e05-4605-4b27-b5b7-fb8deea85ff1)

The trigger links have slightly different properties that can be configured. It shares the intent property, but instead of a label it offers a system dialog (to handle the "unknown" situation)

<figure><img src="https://3356808761-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEBQHGJABNTj5ISSOTRxM%2Fuploads%2FIrWSbj9jBMEvz6ZOEwpk%2Fimage.png?alt=media&#x26;token=1ff221dd-124c-4d8d-830d-bf849ccaaaf1" alt=""><figcaption></figcaption></figure>

| Property      | Description                                                                   | Explanation                                                                                                           |
| ------------- | ----------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
| Intent        | To be able to match the choice to the user input using a trained user intent. | User intents can be configured in the [Intents](https://manuals.dialox.ai/studio/ai/intents) section of the platform. |
| System dialog | To be able to respond to system dialogs, like **unknown**                     | Unknown is used to handle any unmatched user input                                                                    |

Once the flow that is triggered by the dialog trigger is finished, it will return to the original **Ask** it came from.

### System dialog triggers

System dialog triggers are triggers related to **Ask**. These triggers take place when the **Ask** is not satisfied. They will execute the nodes that are linked and then directly return to the **Ask**, prompting the **Try again** question.

**Dialog triggers that are triggered by a specific system event**

Certain system events can also trigger another dialog. These are:

* \_\_unknown\_\_
* \_\_ask\_max\_unknown\_\_
* \_\_no\_input\_\_
* \_\_ask\_timeout\_\_

#### **\_\_unknown\_\_** and \_\_ask\_max\_unknown\_\_

The trigger dialog **\_\_unknown\_\_** can be very helpful to handle unmatched user intent so proper fallback can be arranged like explaining what is needed or asked from a user.

After 3 \_\_unknown\_\_ dialogs, the \_\_max\_unknown\_\_ dialog will be triggered. This is to prevent users from endless looping in an **Ask** node.

#### **\_\_no\_input\_\_ and \_\_ask\_timeout\_\_**

The **No input** dialog is activated when a user doesn't provide any response within a predefined time period. For phone conversations, this is 8 to 15 seconds (depending on whether we ask with the 'patiently' option). This dialog can be used to prompt users for input, provide clarification, or offer assistance when they seem hesitant to respond.

The number of times the no **Ask** will be triggered is controlled by the `@ask_max_no_input` variable. For example, when `@ask_max_no_input` is set to 3, the system will:

* Ask the original question
* Trigger the no input dialog up to 2 times (after which we have had 3 times no input)
* Finally trigger the timeout dialog

This is the default behavior for DialoX Smart Apps.

**Example timeline**

Variables

* `@ask_max_no_input 3`
* `@no_input_timeout 8`
* `@ask_timeout 8`

Timeline

1. **Ask question** - Initial question is presented
2. **Wait 8 seconds** - No input timeout period
3. **No input dialog** - First \_\_no\_input\_\_ dialog is triggered
4. **Wait 8 seconds** - No input timeout period
5. **No input dialog** - Second \_\_no\_input\_\_ dialog is triggered
6. **Wait 8 seconds** - Final ask\_timeout period
7. **Ask timeout dialog** - Final \_\_ask\_timeout\_\_ dialog is triggered

<figure><img src="https://3356808761-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEBQHGJABNTj5ISSOTRxM%2Fuploads%2FRVe46eXEUUs5zYc3tFGW%2FCleanShot%202025-06-04%20at%2012.32.56%402x.png?alt=media&#x26;token=88e7e41d-9609-41e8-97e9-340c03cddf9c" alt=""><figcaption><p>Click to enlarge</p></figcaption></figure>


---

# 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://manuals.dialox.ai/studio/flows/links.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.
