---
schema_version: "1"
id: b77f48af17ec5fe7fb6deb9d02b8994d9763ce6b610d7d872c75e29eb0bcfb0a
title: Customize Open CTI Functionality
collection: developer
version: current
locale: en-us
portal_url: https://docs.salesforce.com/developer/current/en-us/service-cloud/api-cti/guides/sforce-api-cti-intro-customize.md
canonical_url: https://developer.salesforce.com/docs/service/api-cti/guide/sforce-api-cti-intro-customize.html
source_site: developer.salesforce.com
content_type: documentation
content_hash: 382a94a7e8a627235dca0b1017e88f63605e470321d2a76d22b5eb1067f3f3e9
products:
  - Open CTI Developer Guide
  - Service Cloud Developer Content
---

# Customize Open CTI Functionality

Your organization may have complex business processes that are unsupported by Open CTI functionality. Not to worry. When this is the case, the Lightning platform offers advanced administrators and developers several ways to implement custom functionality.

|Feature|Description|
|---------|-------------|
|SOAP API|Use standard SOAP API calls when you want to add functionality to a composite application that processes only one type of record at a time and does not require any transactional control (such as setting a Savepoint or rolling back changes). For more information, see the [SOAP API Developer Guide](https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/).|
|Visualforce|Visualforce consists of a tag-based markup language that gives developers a more powerful way of building applications and customizing the Salesforce user interface. With Visualforce you can: <ul><li>Build wizards and other multistep processes.</li><li>Create your own custom flow control through an application.</li><li>Define navigation patterns and data-specific rules for optimal, efficient application interaction.</li></ul> For more information, see the [Visualforce Developer's Guide](https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/).|
|Console API|The Salesforce Console Integration Toolkit and the Lightning Console JavaScript APIs let you implement custom functionality for the Salesforce console. For example, you can use the Console API to display Visualforce pages or third-party content as tabs in the Salesforce console.For more information, see the [Salesforce Console Developer Guide](https://developer.salesforce.com/docs/atlas.en-us.api_console.meta/api_console/).|
|Apex|Use Apex if you want to: <ul><li>Create Web services.</li><li>Create email services.</li><li>Perform complex validation over multiple objects.</li><li>Create complex business processes that aren’t supported by Flow Builder.</li><li>Create custom transactional logic (logic that occurs over the entire transaction, not just with a single record or object).</li><li>Attach custom logic to another operation, such as saving a record, so that it occurs whenever the operation is executed, regardless of whether it originates in the user interface, a Visualforce page, or from SOAP API.</li></ul> For more information, see the [Apex Developer Guide](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/).|


