# Open CTI – Dial

Run the **Open CTI – Dial** action from a handler.

This action opens the **Salesforce Dialpad** and starts a call. It uses the CTI integration configured in your Salesforce org.

Use it to call a contact from a Kanban card in one click. Add a phone icon, link, or menu item to the card.

### Handlers and actions

* **Handler**: defines what happens when a user clicks a Kanban UI element.
* **Action**: an executable operation triggered by the handler.
* **Primary action here**: `Kanban API → Open CTI - Dial`.
* **Optional follow-ups**: configure extra actions on success or failure.

See [Configuring Handlers](https://docs.flexikanban.ai/standard-kanban/tools/configuring-handlers).

### How it works

When the element is clicked:

1. The handler runs.
2. The handler executes the **Open CTI - Dial** action.
3. Flexi Kanban calls the **Salesforce Open CTI API**.
4. Salesforce opens the dialer with your parameters.

Your org must have a CTI provider configured. Examples: Amazon Connect, Five9, Aircall.

### Configuration

Configure the handler on the interactive element.

**Primary action type**\
`Kanban API`

**Primary action**\
`Open CTI - Dial`

**Action parameters**\
See below.

### Parameters

#### value

**Phone number to dial.**

This can be a field reference or a formula expression.

Example:

```
{Contact.Phone}
```

#### recordId

**Related Salesforce record Id.**

This allows the CTI provider to associate the call with a Salesforce record.

Common examples:

* Account Id
* Contact Id
* Opportunity Id
* Custom object Id

Example:

```
{Opportunity.AccountId}
```

#### params (optional)

**Additional Open CTI parameters in JSON format.**

This parameter can be used to pass extra configuration supported by your CTI provider.

Example:

```
{
  "autoDial": true
}
```

### Example Use Case

You can add a **phone icon to a Kanban card** that calls the related contact:

* Icon element → click handler → **Open CTI - Dial**
* value → `{Contact.Phone}`
* recordId → `{Contact.Id}`

When the icon is clicked, the Salesforce dialpad opens and the call can be initiated immediately.

### Notes

* The action requires a **configured CTI integration** in your Salesforce org.
* Behavior may vary depending on the **CTI provider implementation**.
* The `params` JSON must follow the format expected by the CTI provider.

***

## Best Practices

#### Use a clear call action element

Add a **phone icon or clearly labeled element** so users easily recognize that clicking the element will start a call.

Examples:

* Phone icon
* "Call Contact"
* "Dial"

#### Use the correct phone field

Always use the field that contains the **actual phone number used by your sales team**, such as:

* `{Contact.Phone}`
* `{Account.Phone}`
* `{Opportunity.ContactPhone}`

#### Associate calls with a record

Providing the **recordId parameter** helps your CTI provider correctly associate calls with Salesforce records and improves activity tracking.

Example:

```
{Contact.Id}
```

#### Hide the action if the phone number is empty

To prevent users from clicking a call action when no phone number exists, it is recommended to **hide the clickable element dynamically** when the phone value is blank.

You can achieve this by configuring the element's **CSS Styles** using a formula expression.

Use the **`display`** CSS property and return:

* `"none"` when the phone value is blank
* `"block"` when a phone number exists

Value Example for **`display`** CSS property :

```
FORMULA[ISBLANK({Opportunity.Account.Phone},'none', 'block')]
```

With this configuration:

* If the phone field is empty → the element will not be visible on the card
* If the phone field has a value → the element will appear and allow users to initiate a call

This approach helps ensure a **clean UI and prevents accidental clicks on non-functional call actions**.

<figure><img src="https://3097383375-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FK2dgObBO5ydOH2ZXDJLa%2Fuploads%2FNk4ogSXMVAsmVI1QIDls%2Fimage.png?alt=media&#x26;token=468df05e-24e3-4dbf-9e41-8892617b4000" alt=""><figcaption></figcaption></figure>

***

## Troubleshooting

#### Dialpad does not open

Possible causes:

* No CTI provider is configured in Salesforce
* Open CTI is not enabled in the org
* The CTI softphone is not initialized in the current page

Verify that your **CTI integration is active and working in Salesforce**.

#### Phone number is not populated

Possible causes:

* The phone field is empty
* The field reference is incorrect
* The field is not included in the Kanban data query

Check that the field used in the `value` parameter **contains a valid phone number**.

#### Call is not associated with a record

Possible cause:

* `recordId` parameter is missing or incorrect.

Ensure the `recordId` parameter contains a **valid Salesforce record Id**.

Example:

```
{Contact.Id}
```

#### Additional CTI options do not work

Possible cause:

* The CTI provider may require specific JSON parameters.

Check your **CTI provider documentation** to confirm the supported parameters for Open CTI dial requests.
