# Automatically Launch External Applications on Incoming Calls

The Cloud Voice App can hand off incoming call details to a program already installed on your computer. Once you set it up, the app launches the application you choose at the moment a call reaches your extension and passes along information about the caller. This is a quick way to surface a Customer Relationship Management (CRM) record, a helpdesk ticket, or any executable that can accept caller data on the command line.

## Before you begin

Make sure the following are in place:

- **Cloud Voice platform**: Your account must be running platform version `84.18.0.59` or later. IZT keeps the hosted platform current, so this is met for most accounts.
- **Cloud Voice App (Desktop)**: Version `1.10.2` or later.
- **External application**: The program you want to launch is already installed on the computer running the desktop app.

## Set up a launch rule

1. Sign in to the Cloud Voice App on your desktop and open **Preferences > Features > Call Popup**.
2. Turn on **Launch External Application**.
3. Select **Add** to create a trigger rule, then fill in the fields described below.

   :::note
   You can define up to **3** trigger rules.
   :::

   | Setting | What it does |
   | --- | --- |
   | **Trigger Event** | Chooses the point in the call at which the application opens:<br />**Ringing**: the incoming call arrives.<br />**Answered**: the incoming call is picked up.<br />**Call End**: the incoming call finishes. |
   | **Parameters to Send** | The arguments passed to the application when it launches. You can include these variables:<br />`.{{.CallerNumber}}`, the caller's number (Caller ID).<br />`.{{.CallerDisplayName}}`, the caller's name (Caller ID Name). |
   | **Path to Application Executable** | The full path to the program's executable file. Type it in, or select **Browse** to locate it. For example, `D:\Download\MicroCRM\MicroCRM.exe`. |

   :::tip
   Use **Browse** to pick the executable instead of typing the path by hand. A single typo in the path stops the program from launching, with no error to explain why.
   :::

   :::caution
   The program you launch must be built to read the values in **Parameters to Send** as command-line arguments. If it cannot, it still opens, but the caller number and name are ignored. Set one trigger event per rule: adding separate rules for **Ringing**, **Answered**, and **Call End** will open the program up to three times during a single call.
   :::

4. Select **Save**.

## What happens next

From now on, whenever your extension receives a call, the app opens the specified program at each event you configured and forwards the caller details you selected.
