# Best practices

{% hint style="info" %}
Please note that these guidelines are important for your app to pass the [iAdvize review process](/apps/build-your-app/submit-your-apps.md).
{% endhint %}

## **Awaits / timeout on Bot Transfers**

Our bot transfer process allows you to set any `timeout` value you might like.

Please be advised that you should not set a timeout value inferior to 15 seconds. Under that delay our system will not have a sufficient amount of time to verify availability.

This delay is perfectly acceptable in term of conversational experience and is required for the transfer to operate correctly.

{% hint style="info" %}
Please note that if you don't specify a `transferOptions,` the timeout value will be 60 seconds
{% endhint %}

You can specify a `timeout` in a `transferOptions` key as below :

```json
{
  "type": "transfer",
  "distributionRule": "ef4670c3-d715-4a21-8226-ed17f354fc44",
  "transferOptions": {
    "timeout": {
      "value": 20,
      "unit": "seconds"
    }
  }
}
```

## **Delay your answers**

We strongly advise to put an `await` between each answer your bot is going to send to the visitor to enhance the conversational experience with your bot. You can use an await of a few seconds for each message you send to the visitor. Answering directly would be too unnatural otherwise.

## **Do not disguise your bot as a human**

We will refuse any integration that masks the fact that a bot isn't a human. According to our experience, we know that it results in important satisfaction drop. You should state at the beginning of the conversation that the operator is not human. Also provide a specific avatar that makes it clear that the agent is a bot.

## **Be careful about the length of your messages**

You should never send a message over 450 characters long (technical limitation). We even advise not to send more than 250 characters per message (optimal Ux). To offer a great conversational experience try to write short and concise answers. If you really need to send a long answer we recommend splitting your entire message in smaller ones of max. 250 characters that are semantically coherent.

## **Do not say hello twice**

A preconfigured welcome message is available for all of our clients. If your bot says hello at the start of every new conversation it will results in the visitor receiving a similar message two times in a few seconds.

To deliver a better conversational experience, your bot can skip any notion of welcoming message and just present itself as a bot.

## **Diversify your answers**

Try and offer multiple versions of your common answers. It will help you deliver a better experience instead of a repetitive robotic one.


---

# 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.iadvize.dev/technologies/external-bot/best-practices.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.
