Skip to content
Salesforce Dictionary - Free Salesforce GlossarySalesforce Dictionary
Core CRMBeginner

Event Sink, CTI

An Event Sink is one half of a Salesforce CTI adapter built with the old CTI Toolkit.

§ 01

Definition

An Event Sink is one half of a Salesforce CTI adapter built with the old CTI Toolkit. It was the class that received telephony events from the phone system and passed them to the adapter's interface layer. Salesforce retired the toolkit, which it also called Desktop CTI, on March 4, 2017.

Those adapters were software installed on every agent's machine. No live Salesforce page defines the term today: the CTI Toolkit developer guide is gone, so event sink survives mostly in old vendor documentation. Open CTI, the browser JavaScript replacement, has no event sink API.

Open CTI is next: maintenance mode now, retirement in February 2028, with Salesforce Voice as the successor.

§ 02

In plain English

Years ago, a company's phone system talked to Salesforce through a small program installed on every agent's computer. One part of it listened for announcements, like a call arriving. That was the event sink. Salesforce stopped building this way long ago.

§ 03

Worked example

scenario · real-world use

Picture a support desk around 2011 running an on-premise PBX. An admin installs a CTI adapter on 60 agent workstations. Agent Priya's phone rings with inbound number +1-415-555-0142. The switch fires a call-arrival event and the adapter's event sink catches it. The sink reads the calling number and hands it to the interface class, which formats it as XML the softphone can render. Priya's browser pops the matching Contact. None of that survives. That same screen pop now comes from Open CTI's searchAndScreenPop(), or from Salesforce Voice in anything built today.

§ 04

From desktop adapters to Open CTI to Salesforce Voice

What the event sink actually did

The CTI Toolkit handed partners a compiled desktop scaffold with two halves. The event sink took whatever the telephony platform pushed at it: call ringing, call answered, agent state changed. The command generator sent instructions the other way, answer, hold, transfer. Drop an event and the agent's on-screen controls fell quietly out of step with the real phone.

Why Salesforce abandoned the model

Every agent machine needed the adapter installed, patched and version-matched to the org. Hiring one person meant a desktop install ticket, and a browser upgrade could break the softphone for a whole floor. Open CTI moved the integration into a JavaScript page hosted by the telephony vendor, so nothing lands on the agent's machine.

Open CTI has no event sink, and never did

Open CTI exposes no sink registration and no subscribe() of its own. Its listener surface is a short fixed list, chiefly onClickToDial() and onNavigationChange(). One sample in the guide does call subscribe(), but that method belongs to Lightning Message Service. A guide telling you to register an event sink against Open CTI is describing software Salesforce switched off in 2017.

What to do with surviving code

Nothing in an old Desktop CTI adapter ports across. The event sink has no Open CTI equivalent, and Open CTI itself is on the way out. A rewrite should land on Salesforce Voice instead. New Agentforce Service orgs cannot use Open CTI at all.

Was this entry helpful?
Help us write better definitions. Quick reactions or detailed edit suggestions.

About the Author

Dipojjal Chakrabarti is a B2C Solution Architect with 29 Salesforce certifications and over 13 years in the Salesforce ecosystem. He writes and edits salesforcedictionary.com, published by KineticBit Inc., to help admins, developers, architects, and cert/interview candidates sharpen their fundamentals. More about Dipojjal.

§

Test your knowledge

+5 pts / day

Q1. In a Salesforce CTI Toolkit adapter, what was an event sink?

Q2. Which statement about Open CTI is accurate today?

Q3. A telephony vendor's integration guide tells you to register an event sink for Open CTI. What is wrong with that instruction?

§

Discussion

Loading…

Loading discussion…