---
title: Applets
slug: business-phone-system/applets
docTags: 
createdAt: 2025-10-08T21:39:47.868Z
---

## Overview

Exotel’s **Call Flow Applets** allow you to design intelligent call workflows that manage customer interactions dynamically. An Applet is a building block for creating call flows and you can mix and match Applets in your call flows to greet callers, route calls, capture input, or send automated notifications.

Below is an overview of each available applet and its purpose.

***

## Greeting Applet

The **Greeting** applet allows you to pre-set a recorded voice or entry message for your callers.

You can:

- Upload a custom `.wav` file (8000 Hz Mono)
- Record a message using your phone
- Let *Robocop* (text-to-speech) speak for you
- Dynamically change the greeting at call time by specifying an **Application URL** that returns a `.wav` file

\--> Learn more about the [Greeting Applet](docId\:L0Sf9tcaWOw8-lpV3_Eb8)&#x20;

***

## Connect Applet

The **Connect** applet is used to connect callers to users, groups, or phone numbers.

You can activate the following features within this applet:

- **Dial a User or Group**
  Always recommended to connect via a group for better load distribution.
- **Record Calls**
  Optionally play a message via the Greeting applet to inform callers that calls are recorded for quality purposes.
- **Load Balancing**
  Evenly distributes incoming calls among all group members over time.
- **Sticky Agent**
  Ensures returning callers are connected to the same agent they last spoke with, improving customer continuity.
- **Queue Calls**
  When all agents are busy, callers are placed in a queue.
  You can play a message or hold music during this wait.

:::BlockQuote
**Note:** Queue messages play only when all agents are *busy on Exotel calls.*
If agents are switched off, unavailable, or on external (non-Exotel) calls, the queue message will not play; instead, the call moves to the “If Nobody Answers” section of the flow.
:::

\--> Learn more about the [Connect Applet](docId:7hc--78amMKio4doukyzz) , [Call Queuing](docId\:SpTXdBkxLbNzYK1xR4ybX)&#x20;

***

## Voicemail Applet

The **Voicemail** applet allows callers to leave voice messages when agents are unavailable.
These recordings are stored and can be routed to a specific user or group for review.

***

## Email Applet

The **Email** applet sends an email to a user or group email ID with complete call details, including:

- Who called
- Call time
- Agent response
- Caller input (if any)
- Voicemail recording (if applicable)

***

## IVR Menu Applet

The **IVR Menu** applet lets you create multi-option menus such as:

:::BlockQuote
“Press 1 for Sales, 2 for Support, 9 for Others.”
:::

You can configure it for:

- Department-based routing
- Region-based routing
- Language-based routing

It effectively acts as a **Virtual Receptionist** for your business.

***

## Hangup Applet

The **Hangup** applet simply ends the call flow.
It’s typically placed at the end of your flow to close the call cleanly.

***

## Timing Applet

The **Timing** applet helps define operating hours for call handling.

You can:

- Accept calls during specific time windows
- Redirect after-hours calls to **Voicemail** or another flow

Multiple shifts can be created by reusing the Timing applet with **Transfer** applets.

***

## Gather Applet

The **Gather** applet captures numeric input from callers using their keypad.
Common use cases include:

- Capturing coupon codes
- Verifying IDs
- Collecting menu selections
- Passing user input dynamically via the **PassThru** applet

***

## PassThru Applet

The **PassThru** applet allows data exchange between Exotel and your systems.

It sends call details (via HTTP GET/POST) to your hosted endpoint and receives a response in real time.
This enables tight CRM integration, live data exchange, and dynamic flow decisions.

:::BlockQuote
To explore all PassThru API parameters, see the **API Documentation** tab in your Exotel Dashboard.
:::

***

## Transfer Applet

The **Transfer** applet helps manage modular call flows.

You can:

- Transfer callers between multiple flows
- Reuse existing flows (e.g., a “Voicemail” flow) instead of recreating them
- Keep flows shorter, flexible, and easier to update

***

## Who’s Calling Applet

The **Who’s Calling** applet routes callers based on their phone numbers.

You can:

- Define caller lists (e.g., customers, employees, VIPs)
- Route each group to different applets or flows
- Provide specialized handling for known contacts

***

## List Manager Applet

The **List Manager** applet allows dynamic addition of callers to lists.

Example use case:

- Subscribing callers to an “Offers” or “Alerts” list
- Managing contact lists for campaigns

Lists can be viewed or edited under the **Lists** tab in the Exotel Dashboard.

***

## Switch Case Applet

The **Switch Case** applet allows you to route calls based on multiple possible responses.
You can define conditions that determine which branch or flow the caller will be sent to next.

:::BlockQuote
For detailed use cases, refer to the dedicated [Switch Case Applet documentation](https://support.exotel.com/support/solutions/articles/).
:::

***

## SMS Applet

The **SMS** applet sends a message to the caller after an incoming call.

Two modes are available:

- **Static Message:**
  A predefined message is sent (e.g., “Thank you for calling! We have received your request.”)
- **Dynamic Message:**
  Exotel fetches a message from your provided URL (GET request).
  The text returned in plain format is sent as the SMS content.

:::BlockQuote
**Note:** All messages must be transactional in nature.
Ensure the message is approved as a **Transactional Template**.
[Learn how to apply for a transactional template](https://support.exotel.com/support/solutions/articles/).
:::

***

## New SMS Applet

The **New SMS** (or **New Text**) applet sends SMS notifications to internal agents or groups involved in a call flow.

Typical use: Notify an agent when a new call or voicemail is received.

You can include the following variables in your message body:

| Variable       | Description                               |
| -------------- | ----------------------------------------- |
| `%caller%`     | Caller’s phone number                     |
| `%number%`     | Your Exotel number that received the call |
| `%pickedupby%` | The agent’s number who answered the call  |

***

## Learn More

Explore more use cases and feature updates on the [Exotel Blog](https://exotel.com/blog/).
