> For the complete documentation index, see [llms.txt](https://docs.sprinthub.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.sprinthub.com/en/topics/integrations/click-to-call.md).

# Click To Call

The **Click To Call** is a SprintHub integration that allows you to start calls through an **external VoIP provider** with a single click — directly from the phone number that appears on any screen in the system (contacts, tickets, opportunities, etc.).

Unlike native VoIP, Click To Call does not place the call inside SprintHub: it **triggers a URL**from your provider, passing the destination number and any other data it requires. The provider places the call. This way, you connect SprintHub to practically any telephony system that offers a click-trigger API.

This guide shows, step by step, how to enable, configure, and use Click To Call.

{% embed url="<https://youtu.be/zCvngJJhG2o?si=HtGfsMSAqcan_xDh>" %}

***

### Contents

1. [What is Click To Call](#id-1.-o-que-e-o-click-to-call)
2. [Prerequisites](#id-2.-pre-requisitos)
3. [Accessing the integration](#id-3.-acessando-a-integracao)
4. [Listing screen](#id-4.-tela-de-listagem)
5. [Creating a new click](#id-5.-criando-um-novo-click)
   * 5.1 [Basic data](#id-5.1-dados-basicos-nome-e-endereco)
   * 5.2 [Phone number](#id-5.2-numero-de-telefone-categoria-e-campo)
   * 5.3 [Parameters (Params)](#id-5.3-parametros-params)
6. [Advanced settings](#id-6.-configuracoes-avancadas)
   * 6.1 [Method](#id-6.1-metodo)
   * 6.2 [Headers](#id-6.2-cabecalhos-headers)
   * 6.3 [Request body](#id-6.3-corpo-da-requisicao-body)
   * 6.4 [Request preview](#id-6.4-pre-visualizacao-da-requisicao)
7. [Access permissions](#id-7.-permissoes-de-acesso)
8. [Making a call](#id-8.-fazendo-uma-ligacao)
9. [Best practices](#id-9.-boas-praticas)

***

### 1. What is Click To Call

The Click To Call is a bridge between SprintHub and your telephony provider. You register **how** the provider should be called (address, method, parameters, and authentication), and SprintHub then displays, in all phone menus, an option that triggers that call using the number on the screen.

Each registered configuration is called a **click**. You can have several clicks at the same time — for example, one per provider or one per purpose — and control who can see each one.

The complete flow is:

1. Choose a VoIP provider that offers call triggering in Click To Call mode.
2. Register a click with the parameters required by the provider.
3. (Optional) Restrict the click to specific users or departments.
4. Click any phone number in the system and choose the click to call.

***

### 2. Prerequisites

Before configuring, have on hand:

* A **VoIP provider** under contract that supports triggering calls via Click To Call (an API/URL that starts the call).
* The **provider integration documentation**, containing:
  * the **address (URL)** that starts the call;
  * the **HTTP method** accepted (GET or POST);
  * **where the destination number should be entered** (in the route, in a parameter, in a header, or in the body);
  * possible **fixed parameters** (e.g., account ID, source extension);
  * the **authentication credentials** (e.g., token), if required.

> **Tip:** all of this data comes from your provider. If any field in the form is unclear, consult their documentation — SprintHub only reproduces the call exactly as the provider expects to receive it.

***

### 3. Accessing the integration

Open **System Settings → Integrations** and locate the card **Click To Call**. Click **Settings** to open the management screen.

<figure><img src="/files/672c49ab98353ac83cfd4b65dc5243be83bcd3f4" alt=""><figcaption></figcaption></figure>

> The card includes the description *"With the integration with Click To Call, you will be able to make calls externally through a click."*

***

### 4. Listing screen

When you open the settings you reach the click listing. This is where all already-registered configurations are.

<figure><img src="/files/c3f119618cca0e1547b7f87df101495c9c0b57e1" alt=""><figcaption></figcaption></figure>

On this screen you will find:

| Item             | Role                                             |
| ---------------- | ------------------------------------------------ |
| **New click**    | Opens the form to create a new configuration.    |
| **Search by...** | Searches for a click by name.                    |
| **Refresh**      | Reloads the list with the latest configurations. |

The table displays the columns:

| Column             | Description                                                                |
| ------------------ | -------------------------------------------------------------------------- |
| **First name**     | Click identification (this is the text that will appear in the call menu). |
| **Address**        | Provider URL that will be triggered.                                       |
| **Method**         | HTTP method used in the call (GET or POST).                                |
| **Phone category** | Where the destination number is inserted in the request.                   |
| **Phone field**    | Name of the field/key that carries the destination number.                 |
| **Actions**        | Edit (✏️) and, for administrators, delete (🗑️) the click.                 |

> While no click has been created, the table shows *"No items found"*.

***

### 5. Creating a new click

Click on **New click** to open the form. Fill in the fields with the data provided by your provider.

<figure><img src="/files/d6e953d0e770dbbeb31ac15cdb0f06c75c4a0192" alt=""><figcaption></figcaption></figure>

#### 5.1 Basic data (Name and Address)

| Field          | Required | Description                                                                                                                                                     |
| -------------- | :------: | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **First name** |    Yes   | Click identification. This is the text that will appear in each number's call menu (e.g., `Call Provider ABC`). Use a name that operators can easily recognize. |
| **Address**    |    Yes   | Provider base URL that starts the call (e.g., `https://providerabc.com/call_click`).                                                                            |

#### 5.2 Phone number (Category and Field)

This section defines **where** the dialed number will be inserted in the request sent to the provider.

| Field        | Description                                                                                                              |
| ------------ | ------------------------------------------------------------------------------------------------------------------------ |
| **Category** | Place where the destination number will be placed in the request. See the options below.                                 |
| **Field**    | Name of the key that will carry the number (e.g., `phone`, `toNumber`). It appears for all categories, **except Route**. |

Options for **Category**:

| Category         | The destination number is sent...                                                                                                     |
| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| **Route**        | Attached to the end of the address (does not use the field *Field*). E.g.: `https://providerabc.com/call_click/<DESTINATION_NUMBER>`. |
| **Parameters**   | As a parameter in the URL (query string), with the name defined in *Field*. E.g.: `...?phone=<DESTINATION_NUMBER>`.                   |
| **Headers**      | In an HTTP header named according to *Field*.                                                                                         |
| **Request body** | Inside the request body, in the key defined in *Field*. **Available only with the POST method.**                                      |

> `<DESTINATION_NUMBER>` is a placeholder that represents the number on the screen at the moment you click. You do not type this value — SprintHub automatically replaces it with the real phone number when triggering the call.

> **Important:** the automatic insertion of the number in the call occurs in the categories **Route** and **Parameters** (this is what the preview shows with `<DESTINATION_NUMBER>`). When using **Headers** or **Request body**, the values are sent as registered — confirm with your provider the best way to transmit the destination number.

#### 5.3 Parameters (Params)

Besides the destination number, many providers require **fixed parameters** — data that accompanies every call, such as the account, user, or contact identifier.

Each parameter is a pair **Key** / **Value**:

| Field     | Description                                                                     |
| --------- | ------------------------------------------------------------------------------- |
| **Key**   | Name of the parameter expected by the provider (e.g., `user_id`, `contact_id`). |
| **Value** | Content sent in this parameter (e.g., `123`, `456`, `John Doe`).                |

Use **New parameter** to add as many rows as needed and the trash button (🗑️) to remove a row (a confirmation is requested).

> **Example:** with `user_id = 123`, `contact_id = 456` and `contact_name = John Doe`, each call will pass these three fixed pieces of data to the provider, in addition to the destination number.

***

### 6. Advanced settings

Click on **Advanced settings** to expand this section. Here you define the HTTP method and call authentication.

<figure><img src="/files/46eeac739acde957c4033debba257b176721b6ec" alt=""><figcaption></figcaption></figure>

#### 6.1 Method

Defines how the request will be sent to the provider:

| Method   | Behavior                                                                                                                                                                                                                                                                    |
| -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **GET**  | SprintHub opens the provider's address (with the number and parameters in the URL). Recommended for providers where accessing a URL already triggers the call. When headers are configured, the request is also sent in the background so that authentication is respected. |
| **POST** | SprintHub sends an HTTP request in the background, with the configured parameters, headers, and body. Enables the category **Request body**.                                                                                                                                |

> When switching from **POST** to **GET**, the request body is automatically cleared, since GET requests do not have a body.

#### 6.2 Headers

Headers are mainly used for **authentication** (for example, a `token` or `Authorization`header). Click on **Add** to include a header. Each row has:

| Field     | Description                                                                                             |
| --------- | ------------------------------------------------------------------------------------------------------- |
| **Key**   | Header name (e.g., `token`).                                                                            |
| **Type**  | Value type: **Text**, **Number** or **Yes/No**.                                                         |
| **Value** | Header content. The field adapts to the chosen type (free text, number, or a toggle switch for Yes/No). |

#### 6.3 Request body

Available only when the **Method** is **POST**. It works just like headers — pairs of **Key**, **Type** (Text / Number / Yes/No) and **Value** — but the data is sent in the request body. Use this when the provider expects to receive the information in JSON in the body.

#### 6.4 Request preview

At the bottom of the advanced section there is a **dark box** that builds, in real time, the final address that will be triggered. It reflects the address, the parameters, and the position of the destination number as you fill in the form.

For the example in the images, the preview shows:

```
https://providerabc.com/call_click?user_id=123&contact_id=456&contact_name=John Doe&phone=<DESTINATION_NUMBER>
```

> Use this preview to check whether the call is being built exactly as the provider expects before saving.

***

### 7. Access permissions

Click on **Access Permissions** to expand this section and control **who sees the call option** for this click.

<figure><img src="/files/c643a1546871bb1205fdb28ed88e479f9f2dfe06" alt=""><figcaption></figcaption></figure>

| Field                       | Description                                                                           |
| --------------------------- | ------------------------------------------------------------------------------------- |
| **Users**                   | Specific users who will be able to use this click.                                    |
| **Departments**             | Departments whose members will be able to use this click.                             |
| **Include subdepartments?** | When enabled, users from the selected departments' subdepartments also see the click. |

How visibility is resolved:

* **Administrators and master users** always see all clicks.
* If **if no user and no department** are selected, the click is **visible to everyone**.
* Otherwise, the click appears only to the **listed users** and to the **members of the selected departments** (including subdepartments, if the option is enabled).

> **Tip:** leave the permissions blank to make the click available to the whole team, or restrict by department when only one team (e.g., Sales and Support) should use that provider.

When finished, click **Save** (or **Edit**, when changing an existing click). To discard, click **Cancel**.

***

### 8. Making a call

With the click configured, simply click **any phone number** in the system. In the number's options menu, in addition to the standard actions (open in dialer, copy number, send SMS, call via VoIP, etc.), the option appears with the **click name** that you created.

<figure><img src="/files/2c3b4c15b2a01fac3103f0e5d4af91517f0f539b" alt=""><figcaption></figcaption></figure>

In the example, the click called **"Call Provider ABC"** appears at the end of the menu. When you click it, SprintHub replaces `<DESTINATION_NUMBER>` with the number on screen and triggers the provider according to the configuration. A message confirms the trigger (*"Click-to-call triggered successfully"*) or warns in case of an error.

> If a user does not see the expected option, check the **Access permissions** of the click and whether it belongs to the user or the configured department.

***

### 9. Best practices

* **Use clear names.** The click name is what appears in the call menu — prefer something like `Call Provider ABC` over generic names.
* **Follow the provider's documentation.** Method, category, fields, and headers must exactly mirror what the provider requires; the preview helps you verify.
* **Check the preview before saving.** It shows the final URL and where the destination number goes — an error here means calls that do not go through.
* **Protect credentials in the headers.** Tokens and authentication keys should go in **Headers**, not exposed as URL parameters whenever the provider allows it.
* **Restrict by permission when it makes sense.** If only one team uses a given provider, limit the click to those users or departments to keep the call menu concise.
* **Create one click per purpose.** You can have several clicks at once (by provider, by operation, or by country) — organize them according to how the team uses them.

***

Done! With Click To Call configured, your team can trigger the telephony provider with a single click, directly from any number displayed in SprintHub.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.sprinthub.com/en/topics/integrations/click-to-call.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
