# Custom buttons: let the agent offer a link

> Add a button such as Book a demo that the agent shows under its reply when it fits: set the text, the link and when to show it. intoCHAT never calls the link.

A custom button is a link the agent can show under its reply when the conversation calls for it, such as "Book a demo" pointing at your calendar page. The agent decides when to show it. The text and the link are always the ones you set.

## Create a button

1. On the **Actions** tab, click **Add button**.
2. Fill in the fields:
   - **Name**: for you and the agent, not shown to visitors, for example `Book_demo`. Up to 60 characters, and different from the names of the agent's other actions.
   - **When to show it**: the moments the button helps, so the agent knows when to offer it. For example: "When the visitor wants to book a demo, see the product live, or talk to sales."
   - **Button text**: what the button says, up to 40 characters.
   - **Link**: the full address the button opens, starting with `https://` or `http://`.
3. Check the **Preview**, then click **Create button**.

The link can't contain `{{placeholders}}`, a username or a password, and can be up to 2,000 characters long. In the list on the **Actions** tab, a button shows a **Button** badge and the address it opens. Click **Edit** to change it. **Enable this button** in the editor stops the agent from showing it, without deleting it.

## What visitors see

When a visitor's message matches **When to show it**, the agent shows the button under its reply and mentions it in a short sentence. It doesn't write the link into the text.

- The button uses your **Launcher bubble** color from the [Appearance](/en/docs/appearance) tab, with white or dark text, whichever is easier to read.
- Its corners follow the **Corners** setting on the Appearance tab.
- A click opens the link in a new tab.

Buttons appear in the chat bubble, the inline iframe, the direct link and the **Playground**. They are saved with the reply, so they also show in transcripts on the **Conversations** tab.

## What intoCHAT doesn't do

intoCHAT never calls the link. It sends no request and no data to that page; the visitor's click simply opens it. That is why the editor has no test request. Click **Open the link** under the preview to check where it goes, then ask the agent about it in the **Playground**.

The link is the same for every visitor and can't include values from the conversation. To send data to your systems, use a [server-side API action](/en/docs/api-actions) or a [client-side action](/en/docs/client-actions). The agent can't see what happens after the click, and it is instructed not to promise a result such as a confirmed booking.

## Limits

- Buttons count toward the limit of 25 actions per agent, together with API actions, client-side actions and the actions from [Connect your store](/en/docs/connect-your-store).
- The agent shows at most 3 buttons under one reply, and each button only once.

> The agent decides mainly from **When to show it**. If it offers the button too often or never, describe the moments more precisely and try again in the Playground.
