# Dial by Name

The Dial by Name component gives callers a spoken directory: they enter the first three letters of a person's name on the keypad, and the system connects them to the matching extension. Use this section to understand what the component does, how to prepare your extensions for it, and how the caller experience plays out.

## Overview

Dial by Name is a terminating component, meaning it ends a caller's path through the call flow. When a call reaches it, the component hands control to a built-in directory prompt that lets the caller spell a name and be routed to the corresponding extension user.

:::note
"Terminating" means Dial by Name is an end point in the flow: once a caller reaches it, the directory takes over and the caller does not continue to any later step in that branch. (PBX stands for Private Branch Exchange, the phone system that hosts your extensions.)
:::

![The Dial by Name component as it appears on the call flow canvas](/images/pbx/dialbyname-component-cfd.png)

## Configuration

The component itself has no settings to fill in. What it relies on is your extension and system-wide name settings, so callers can actually be found when they spell a name. Confirm the following two items before you publish the call flow.

1. Give each extension a Caller ID Name.

   
   ![Cloud Voice, entering a user's first and last name on the extension edit page](/images/pbx/edit-name-cfd.png)

   a. Go to **Extension and Trunk > Extension** and edit the extension you want to include.
   b. Under **User Information**, fill in the user's first name and last name.

   :::caution
   An extension with no first or last name has no Caller ID Name to match against, so callers can never reach it through Dial by Name. Set a name on every extension you want listed in the directory.
   :::

2. Choose how Caller ID Names are ordered.

   ![Selecting the Name Display Format for extensions](/images/pbx/name-format-cfd.png)

   a. Go to **PBX Settings > Preferences**.
   b. Open the **Name Display Format** drop-down and pick a format:
      - To let callers spell a person's **first** name, choose **First Name Last Name with Space Inbetween**.
      - To let callers spell a person's **last** name, choose **Last Name First Name with Space Inbetween** or **Last Name First Name without Space Inbetween**.

   :::caution
   Name Display Format is a system-wide setting. Changing it reorders the Caller ID Name for every extension, everywhere names are shown, not just in this directory. Confirm the new order is what you want before saving.
   :::

The three letters a caller enters are matched against the **start** of each extension's Caller ID Name, in whichever order the display format defines. Pick the format that matches how your callers are most likely to search.

## How callers use it

Once a call reaches the component, the system walks the caller through the directory:

1. The system plays a prompt: "Welcome to the directory. Please enter the first three letters of your party's first or last name, using your touchtone keypad, use the 7 key for Q, and the 9 key for Z."
2. The caller keys in the first three letters of a name.

   :::tip
   Letters map to their standard keypad digits. To look up "Phillips Huff," the caller presses **7**-**4**-**4**, which corresponds to **P**, **H**, and **I**. The prompt calls out the 7 key for Q and the 9 key for Z because those two letters are missing from some older keypads.
   :::

3. The system finds the closest match and responds:
   - If nothing matches, it plays "No directory entries match your search."
   - If there is at least one match, it plays "[Name] extension [Number]. If this is the person you are looking for, press 1 now, otherwise please press star now," then acts on the caller's choice:
     - Press **1** to be connected to that extension user.
     - Press **\*** to hear the next match. When no matches remain, the system plays "There are no more compatible entries in the directory."

## Connections

Dial by Name includes a built-in **Call End** branch. You can wire this branch to a **single** downstream component, chosen from any of the following.

| Component | What it does |
|-----------|--------------|
| Internal Data Ops | Reads and writes data in the PBX's own database. For the specific operations, see [Get Extension Presence Status](/pbx/call-flow-designer-guide/get-extension-presence-status/), [Set Extension Presence Status](/pbx/call-flow-designer-guide/set-extension-presence-status/), [Get Queue Agent](/pbx/call-flow-designer-guide/get-queue-agent/), [Get Queue Info](/pbx/call-flow-designer-guide/get-queue-info/), [Get Agent Status](/pbx/call-flow-designer-guide/get-agent-status/), [Set Agent Status](/pbx/call-flow-designer-guide/set-agent-status/), [Get System Info](/pbx/call-flow-designer-guide/get-system-info/), [Get System Capacity](/pbx/call-flow-designer-guide/get-system-capacity/), [Get Extension Info](/pbx/call-flow-designer-guide/get-extension-info/), and [Get Company Contact Info](/pbx/call-flow-designer-guide/get-company-contact-info/). |
| Email Sender | Sends email so you can push notifications, alerts, or user-specific details in real time. See [Email Sender](/pbx/call-flow-designer-guide/email-sender/). |
| Database Access | Works with a database during the call flow, running SQL (Structured Query Language) to retrieve or update records. See [Database Access](/pbx/call-flow-designer-guide/database-access/). |
| HTTP Request | Sends HTTP (Hypertext Transfer Protocol) requests to outside web servers to exchange data with third-party services. See [HTTP Request](/pbx/call-flow-designer-guide/http-request/). |
