An application platform is an existing technical framework used as a foundation upon which applications are built, hosted, and/or run.
To understand what an application platform is, it’s good to start with an understanding of both an application and a platform.
An application, often shortened to app, is a program or set of programs that allows end users to perform particular functions. The term can refer to a mobile application on a smartphone or tablet or a desktop application – the common thread is that they are designed for user interaction.
A platform is any combination of hardware and software used as a foundation upon which applications, services, processes, or other technologies are built, hosted, or run. Platforms offer the ability to build within an existing technical framework, decreasing both development time and cost.
Businesses and developers often use application programming interfaces (APIs) to add capabilities to their applications. An API is a set of rules that lets programs talk to each other, exposing data and functionality across the internet in a consistent format. For example, Twilio APIs give applications communications abilities like voice, video, chat, authentication, and messaging.
It is often faster and more cost-effective for businesses to build, host, and run their applications on a cloud platform rather than building all of the required infrastructures from scratch. For example, Twilio is a cloud communications platform. Unlike traditional communications infrastructure, communications built on a cloud platform are available without the burdens of capacity planning, carrier contracts, telecom hardware integration, and fragmented security.
With the Twilio platform, businesses can add real-time communications to their applications with a few lines of code by using APIs. This type of platform is sometimes referred to as communications platform as a service, or CPaaS. The CPaaS approach allows for a great amount of customization but can require significant developer resources, depending on how complex the application is. For example, communications APIs do not have a built-in user interface (UI). Depending on the app, businesses may need to design their own interface for agents, supervisors, or customers.
To create a contact center on a cloud communications platform using APIs, businesses still have to build all of the orchestration around their contact center tasks, such as transfers and secure pause for recording, along with single sign-on (SSO) and CRM integrations. In addition, they need to design their own user interface.
Many businesses are looking for a contact center alternative that’s quick to deploy but also infinitely customizable. To respond to this need, Twilio created Twilio Flex, the world’s first fully programmable contact center application platform.
Flex is not a collection of APIs or a packaged contact center SaaS product; it’s an application platform for contact center development that allows businesses to develop, customize, and manage their own contact centers on top of existing Twilio infrastructure. With Twilio Flex, businesses aren’t limited by a vendor’s roadmap or restricted by the abilities of their hardware or pre-packaged software.
Flex deploys out of the box with an agent user interface (UI), a supervisor UI, an admin UI, workforce optimization, real-time feedback, and omnichannel communication including voice, video, screen sharing, co-browsing, text messaging, picture messaging, fax messaging, email, Facebook, WhatsApp, and many other channels. It integrates into all proprietary back-end databases and CRMs with an architecture that businesses can completely control to build the exact experiences they want.
With Twilio Flex as an example, you can see that application platforms can provide a variety of services. In his whitepaper entitled What is an Application Platform?, tech consultant David Chappell explains that the services an application platform provides can be grouped into the following five categories:
An operating system, implementing the foundation services on which all applications depend. These include basic storage, such as a file system, and the fundamentals required to run code, such as scheduling.
Execution services, providing libraries and more for running software. This large category includes support for creating user interfaces on clients, communicating with other software, structuring how code executes (e.g., with workflows), and many other things.
Data services, which let applications store and process data. The most important technology in this category today is a database management system (DBMS), but other data services are becoming increasingly important. Streamed data, such as data used for complex event processing or real-time voice, can be useful in many scenarios. The rise of big data, i.e., very large amounts of unstructured information, also requires technologies that go beyond traditional relational database systems.
Cloud services, offering remotely provided functionality that applications can use. Example cloud services today provide information, such as maps, or let applications do things such as search the Internet or connect with other applications.
Development tools, helping development teams create and maintain applications. These tools range from simple code editors to full-featured tool families with support for writing code, testing, deployment, and other aspects of the development process.
If you want to see an application platform in action, check out Twilio Flex.