Zoom for Lightning – Salesforce CTI -Softphone Pop to Flow

CTI (Computer Telephony Integration) is a common use case in Salesforce that uses caller ID to locate the right client and, ideally, present the correct record before an agent even clicks Answer.

When it works, it creates a seamless experience.
When it doesn’t, it creates frustration.

Why Screen Pops Fail

Several common scenarios can prevent screen pops from working properly:

  • The phone number is stored in a custom field instead of a standard field
  • The same number exists on multiple records, such as a Lead and Contact for the same person
  • Phone number formats are inconsistent, including variations like +1, parentheses, or dashes

Any of these issues or many others can prevent Salesforce from finding a clear match, resulting in no screen pop or an incorrect one.

Using Pop to Flow as a Solution

In this case study, we will walk through how to use the Softphone Pop to Flow feature to handle these scenarios more reliably.

When no match is found, or when multiple matches exist, Salesforce launches a custom Screen Flow that we create.

Our example uses Zoom for Lightning (version 2.31) from Zoom Video Communications, but the same approach applies to any CTI adaptor that passes caller ID into Salesforce Flow.

This guide assumes your CTI adaptor is already installed and configured.

By routing screen pops through Flow, administrators gain full control over matching logic, duplicate handling, and user experience.

Creating a Screen Flow

Step 1: Create a New Screen Flow

Click Create

Navigate to Setup → Flows

Click New Flow

Select Screen Flow

Step 2: Create the Phone Input Variable

Click Open Toolbox (top-left)

Click New Resource

Configure:

  • Resource Type: Variable
  • API Name: Phone (this is the case sensitive variable used by Zoom Phone. Check with your CTI provider if “Pop to Flow” is supported and to see what variable name is used
  • Data Type: Text
  • Available for input: checked
  • Available for output: unchecked

Step 3: Test the Incoming Phone Number

Before continuing, verify that the phone number is being passed correctly.

  1. Add a Screen element
  2. Add a Display Text component
  3. Reference {!Phone}

Run the flow and place a test call to confirm the value is populated.

Step 4: Normalize the Phone Number

If formatting varies, normalize it before searching.

Create a formula resource:

Click New Resource

Configure:

  • Resource Type: Formula
  • API Name: formattedPhone
  • Formula: RIGHT({!Phone}, 10)

Step 5: Query Matching Records

Add a Get Records element.

Configuration

  • Label: Get Contacts
  • API Name: Get_Contacts
  • Condition Requirements: Any Condition Is Met (OR)

Add conditions for each phone field you want to search:

Field: MobilePhone

Value: {!formattedPhone}

How Many Records to Store: All Records

Step 6: Display Results

Add a Screen element.

Configuration

Click Add Element → Screen

Label: Display Screen

API Name: Display_Screen

Add a Data Table component

Source Collection: Get_Contacts

Configure displayed columns

Click Done

Save and your Activate Flow

Step 7: Configure Softphone Layout

Navigate to Setup -> Softphone Layouts

If you see a page that says “Say Hello to Salesforce Call Center”

Click Continue

Click New to create a new Softphone Layout or click Edit to use an existing one.

Step 8: Configure Screen Pop Settings

Screen pop opens within: New browser window or tab

(This way you don’t loose what you’re working on when someone calls)

No matching records: Pop to flow and from the dropdown select the flow you created in the previous steps

Single-matching record: Pop detail page

If only 1 record is found, we want to simply open it

Multiple-matching records: This one can be handled 2 different ways depending on your use case

  1. Pop to search page – Opens search page with any matching records. For less complicated use cases, this is a great option.
  2. Pop to Flow – Opens in our flow where we can create custom logic to query and display those records to users

Click Save at the top of the page

Leave a Reply

Your email address will not be published. Required fields are marked *