Search the Transfer Destination List

When a rep transfers a Bring Your Own Channel for CCaaS Messaging session, Salesforce provides a UI to search for transfer destinations. These instructions are for implementations with partner-owned routing (ConversationChannelDefinition.routingOwner is Partner).

Select a transfer destination

The transfer destinations are returned from the vendor when implementing getContacts().

The API supports a long list of transfer destinations and lets reps search for contacts that they want to transfer to.

Salesforce calls getContacts() with a filter argument. The filter object has the keys contains, limit, and offset. limit is a constant set to 50 and offset is calculated by the UI.
If the vendor supports contact search (by specifying AgentConfigResult.hasContactSearch as true), the following events occur.

  • When the transfer UI is shown, getContacts({limit: 50}) is called and the vendor can return the most recent 50 items.
  • With every search or filtering request, Salesforce calls getContacts({contains: string, limit: 50, offset: number }).
  • When scrolling down (progressive loading), Salesforce calls getContacts({contains: string, filter: string, limit: 50, offset: calculated}).

Example scenarios:

  • At initialization time: getContacts({limit: 50}) → \[a1,b2... x50\] (most recent contacts)
  • When searching for "xyz": getContacts({contains: "xyz", limit: 50, offset: 0}) → \[xyz1,xyz2... xyz50\]
  • When scrolling down: getContacts({contains: "xyz", offset: 50, limit: 50}) → \[xyz51,xyz52... xyz100\]

If a vendor doesn’t implement contact search, the AgentConfigResult.hasContactSearch capability is set to false or undefined.

If the capability is false or undefined, Salesforce gets all phone contacts (up to 1000) and stores them in memory. Then, for every scroll or search, Salesforce does a pseudo search, or a simple filtering, and shows the data that matches the filter. getContacts() is called one time.

See Also