WhatsApp Call

AI Tools

WhatsApp Call is a feature that allows businesses to receive and make WhatsApp voice calls directly through Qiscus Omnichannel Chat. With this feature, businesses can communicate not only through text messages but also via voice calls, enhancing the customer experience and supporting faster and more effective communication.

Benefits of the WhatsApp Call Feature

  1. Ease of communication: Allows businesses to speak directly with customers.
  2. Improved agent efficiency: Agents can handle calls according to their available capacity.
  3. Better call management: Call logs help businesses manage calls more effectively.
  4. Customer privacy protection: Calls can only be made with the customer's consent.

Target Users

This feature is designed to be used by various roles in a business:

  • Admin: Manages feature settings and agent management.
  • Supervisor (SPV): Oversee call activities and ensure smooth operations.
  • Agent: Send an interactive WhatsApp call message and makes calls with customers during customer service window.

WhatsApp Call Features

User Initiated Call

When a customer calls via WhatsApp, the system will search for an available agent and send a User Initiated Call notification. The agent who answers the call can directly interact with the customer through the call window in Qiscus Omnichannel Chat. During the call, the agent can manage the conversation, mute the microphone, or end the call as needed. If no agent is available, the system will automatically decline the call and send an autoresponder message to the customer. Learn more.

To receive incoming user-initiated WhatsApp voice calls from customers, agents must stay in the Inbox tab or keep the Inbox open and active.

WhatsApp Calls are currently limited to a maximum of 30 minutes per call.

The system gives priority to the eligible WAC agent assigned in the room when routing user-initiated calls.

Business Initiated Call

Agents can make business initiated calls to customers after obtaining permission through an interactive WhatsApp message. If the customer agrees, the agent can initiate the call directly from Qiscus Omnichannel Chat. During the call, the agent can manage the conversation, mute the microphone, or end the call as needed.

User Initiated Call - Handle by bot and handover to agent (Latest ENV)

The bot call feature lets businesses automate how user-initiated WhatsApp calls are handled. Instead of routing a call directly to a human agent, the system sends it to a bot first. The bot can answer the call and hand it over to a live agent when needed.

This is useful when:

  • Initial screening is needed: The bot handles the call first and routes it to the right team.
  • Agents are unavailable: The bot can hold the call and notify the customer while waiting for a handoverable agent.
  • 24/7 coverage is required: Calls outside business hours can still be answered by the bot before escalating.

The bot call feature requires developer setup. Your technical team will need to register a webhook URL and integrate with the WAC Bot API before this feature is active. Please follow WhatsApp Call Bot API Configuration section for the setup steps.

Managing a Connected Call

During a call, agents can perform several actions:

  • View the call duration while the conversation is ongoing.
  • Use the mute/unmute feature to control audio.
  • Select connected microphone device.
  • End the call if necessary.

Call History Tracking

Admins and supervisors can monitor call activities comprehensively. All calls, including received, missed, and declined calls, are recorded in the system log. The call history includes the following information:

  • Call duration

  • Call status

    • calling = The call has been initiated and is currently ringing on the agent or customer side.
    • on call = The call is active and in progress between the customer and the agent.
    • completed = The call was successfully connected and ended.
    • rejected = The call was rejected by customer or agent.
    • outside office hour = The call was rejected due received outside the configured business/office hours.
    • all agents busy = The call was rejected due no available agents, every agent is already handling an active call.
    • all agents offline = The call was rejected due All assigned agents are offline.
    • not answered or missed call = The call rang until timeout (no agent or customer answered within the allowed ringing duration).
  • The agent handling the call

You can view the call history in the Chat & Customer Info panel by clicking Call History, where a complete list of call activities is displayed.

Supported Platform

Supported Browsers for Business Side

WhatsApp Call via Qiscus Omnichannel Chat is currently supported on the following desktop browsers:

  • Google Chrome
  • Mozilla Firefox
  • Microsoft Edge

Note: Other browsers (e.g., Safari, Opera) may not fully support WhatsApp Call features in the current implementation.

Supported Devices for User Side

  • Customers must have WhatsApp installed on their mobile device (Android or iOS) to receive the call.

To use the WhatsApp Call feature, please make sure to allow microphone access in your browser. If permission is not granted, the call function may not work properly.

How to Set Up WhatsApp Call

As an admin, you can configure the initial settings to activate the WhatsApp Call feature:

Enabling WhatsApp Call

To allow agents to use the WhatsApp Call feature, the admin must enable it first. By activating this feature, businesses can start receiving and making WhatsApp calls through Qiscus Omnichannel Chat.

  1. Go to Integration, select WhatsApp, and choose the WhatsApp Channel you want to enable. Please note that the WhatsApp Call is only available in the cloud.
  1. Navigate to the Settings tab, then enable the Eligible WhatsApp Call toggle.
  • WhatsApp Call is only available for WhatsApp accounts that are on the cloud. WhatsApp accounts that are non the cloud will not be able to use this feature.
  • WhatsApp Call can only be used in personal chat, meaning it does not support group chats.
  • WhatsApp Call is not supported for WhatsApp Coexistence account.
  • WhatsApp account must be verified and should be in the Messaging Tier of at-least 2,000 (2K) messages.

Enabling WhatsApp Call Record

Businesses can automatically record voice calls between agents and customers on WhatsApp. All recordings are securely saved and can be accessed anytime.

  1. Go to Integration, select WhatsApp, and choose the WhatsApp Channel you want to enable. Please note that the WhatsApp Call is only available in the cloud.
  1. Navigate to the Settings tab, then enable the Eligible WhatsApp Call Record toggle.
  1. You can access WhatsApp call recordings directly from the call history in the inbox or through WA Call Analytics

Agent Management Settings

After completing the enabling of WhatsApp Call, the next step as an admin is to grant agents permission to send interactive WhatsApp Calls in the Agent Management menu. Follow these steps:

Role Management Tab

  1. Select an agent assigned to a channel that has been set up for WhatsApp Call.
  1. Open the agent’s details, go to the WhatsApp Calls tab, and check the designated WhatsApp channel.
  1. Save the changes by clicking the Save Agent button.
  1. Once completed, the Call icon will appear for that agent, indicating they have been assigned to receive and make WhatsApp Calls

How To Use WhatsApp Call

Sending an Interactive WhatsApp Call for a User Initiated Call

Agents can send an interactive message to customers to initiate a User Initiated Call by following these steps:

  1. Click the Call icon available in the text chat room.
  1. Select User Initiated Call, enter the message and call button to be sent to the customer, then click Send.
  1. The interactive WhatsApp Call message will be sent to the customer.
  1. Wait for the customer's response to see if they will make the call.
  1. If the customer clicks the call button, the call will be identified as an User Initiated Call.
  • Business Side:
  • Customer Side:

A customer’s call may be declined if:

  • No agents are online.
  • All agents are on other calls.
  • The call is made outside business hours.
  • Business is blocked the customer

To receive incoming user-initiated WhatsApp voice calls from customers, agents must stay in the Inbox tab or keep the Inbox open and active.

Using WhatsApp Call Auto Responder

A WhatsApp auto-responder setting is now available to automatically send a message to customers when a call cannot be answered due to one of the following conditions:

  • No agents are online
  • All agents are on other calls
  • The call is made outside business hours.

To use this feature, follow this steps below:

  1. Click Settings on your WhatsApp Channel
  1. Click Settings tab
  1. Scroll down slightly, choose Click Auto Responder for WhatsApp Call
  2. Activate the toggle button. Then enter the message for customer
  3. Click Save button

Sending an Interactive WhatsApp Call for a Business Initiated Call

Only agents can send a call permission request to customers before making a business initiated call, you can follow these steps:

  1. Click the Call icon available in the text chat room.
  1. Select Business Initiated Call, The message requests permission to make a call, then click Send.
  1. The interactive WhatsApp Call message will be sent to the customer.

Call Permission Request

The Call Permission Request is an explicit request sent by a business to a user to obtain consent before initiating a call via WhatsApp. This is an important step to protect user privacy and ensure a comfortable experience, while also preventing unwanted calls.

Currently, call permission request in WhatsApp Call has options to choose, such as:

  • Always allow calls: The customer has granted permanent permission, so no further call permission is needed.
  • Temporarily allow calls: The customer has granted permission to receive calls for a limited time, as per the set duration or policy. Once it expires, you will need to request permission again.
  • Not now: The customer has not granted permission to receive calls.

You can update your WhatsApp Call permissions at any time by navigating to the Business Info > Business Call Permission section within the WhatsApp profile.

Limitations

The following limitations apply to each user's phone number:

ItemDescriptionLimitExample
Call Permission RequestA request sent by the business to obtain the user's permission before initiating a WhatsApp call.
  • A maximum of 1 call permission request can be sent within a 24 hours period.
  • A maximum of 2 call permission requests can be sent within a 7 days period.
Unanswered Call LimitsWhen a business initiated call goes unanswered i.e. call is rejected or missed by the user
  • On 2x unanswered calls, User will be prompted via system message to consider changing permission (if needed)
  • On 4x unanswered calls, permission will be automatically revoked

Customer Response

A customer can respond to a call permission request in three ways:

  1. Accept (Allow) → The agent can place a call within 7 days after permission is granted.
  2. Always Allow → The agent can call the customer anytime without requesting permission again.
  3. Decline (Don't Allow) → The agent cannot place a call without sending a new permission request.
  4. No Response → If the customer does not respond within 7 days, the request will expire.
  5. If the customer responds to a new call permission request → The previous request automatically becomes invalid.

Note: The customer can change their response at any time before the permission expires (e.g., from decline to accept or vice versa). You can explore the details of Call Permission Requests directly from the Chat & Customer Info.

Business Initiated Call Use Case

If Customer Accepted

Once the customer accepts the call request, the agent can directly click the phone icon to initiate the call. If the call is successfully connected, the agent can manage the conversation.

  • Businesses are allowed to call a user’s phone number up to 5 times within 24 hours, after the customer grants permission to be called.

If Customer Accepted but Missed Call

If the customer has accepted the call request but does not answer when the agent calls, it will be considered a missed call. In this case, the agent can:

  • Send a message to check the customer's availability.
  • Try calling again within the valid permission window (7 days after approval).
  • If the customer remains unresponsive, the permission will expire, and the agent must submit a new request.

If Customer Declined

If the customer declines the call request, the system will notify the agent. In this case:

  • The agent is not allowed to place a call without obtaining new permission from the customer.
  • If necessary, the agent may send a new request within the permissible limits (1 request per 24 hours, 2 requests per 7 days).

If Agent Call without Permission

If the agent attempts to place a call without first obtaining permission, the system will display a pop-up stating that the call cannot be made due to a lack of permission.

Solution:

  • The agent must first send a Call Permission Request and wait for the customer’s response.
  • If permission has been granted and remains valid within 7 days, the agent may proceed with the call.

WhatsApp Call Bot API Configuration (Latest ENV)

This section covers the API integration required to build a webhook server that handles, answers, and hands over user-initiated WhatsApp calls.

  • Your development team must have a webhook server ready to receive call events.
  • Once bot mode is enabled, all user-initiated calls on this channel are routed to the webhook server. Make sure the webhook server is live and tested before enabling.
  • WhatsApp call must already be enabled on the channel. See Enabling WhatsApp Call.
  • For advanced configuration settings, please refer to the WhatsApp Call Bot sample repositories for further details.

Generate Bot Token

Generate a bot token for authenticating against the Omnichannel API.

HTTP
Copy
Response
Copy
  • Please follow this page to get your App ID, Channel ID and Qiscus Secret Key.
  • token = Bot token — use as the Authorization header for Qiscus Call API requests
  • expired_at = Expiry timestamp (ISO 8601). Rotate before this date. The token is valid for 1 month and can be reused until it expires.
  • call_url = Base URL for all Qiscus Call API calls

Register WhatsApp Call Bot Webhook

Register your webhook server's URL and enable bot mode on a channel.

You can also do this via the UI (Integration → WhatsApp Channel → Settings → WhatsApp Call). Make sure WhatsApp Call is enabled.

HTTP
Copy
  • wa_channel_id (integer, required) = WhatsApp channel ID from the Omnichannel dashboard
  • webhook_urls (array, required) = URLs that receive user-initiated call events
  • use_bot (boolean, required) = true to enable bot mode; false to disable

Webhook User Initiation Call

When a customer initiates a WhatsApp call on a bot-enabled channel, the Omnichannel sends a webhook to your registered URL.

HTTP
Copy
  • This is the entry point of the entire bot flow. The call.id returned here — also referred to as the wacid — is required for every subsequent API call (answer, reject, handover, end call).
  • Your webhook server must respond to this event by calling either Answer Call or Reject Call before the ringing timeout expires.
  • call.id = wacid — pass this as call_id in all subsequent API calls
  • call.direction = Always "user_initiated" for user-initiated calls
  • call.server_url = Use the value for all Qiscus Call API endpoints

Bot Answer Call

Answer a user-initiated call. Supports native WhatsApp call mode and WebRTC SDP exchange.

HTTP
Copy
  • call_id (string, required) = Call ID from the user-initiated call webhook event
  • agent_name (string, optional) = Display name for the bot in call logs

Bot Reject Call

Reject a user-initiated call. The call terminates on the customer's WhatsApp.

HTTP
Copy
  • call_id (string, required) = Call ID from the user-initiated call webhook event

Bot End Call

End an active call.

HTTP
Copy
  • call_id (string, required) = Call ID from the user-initiated call webhook event

List Handoverable Agents

Get agents that are online and eligible to receive a handover for the current call.

HTTP
Copy
Response
Copy

status: 0 = available.

status: 1 = currently on a call (not eligible for handover).

This is not related to office hours. The bot must determine the time at which the user initiates the conversation and decide whether to hand it over to an agent based on that time.

Bot Handover Call to Agent

Initiate a handover request to a specific agent.

HTTP
Copy

A 200 response only means the request was sent — not that the agent has accepted. Wait for the handover webhook event to confirm the transfer is complete.

Other Webhook Events (Bot Handover Call to Agent)

Beyond the inbound call notification, the Omnichannel sends handover lifecycle events to the registered webhook URL.

Handle all four events. At minimum, handle handover_reject and handover_expired so the webhook server can fall back — for example, by retrying with another handoverable agent or ending the call.

HTTP
Copy
HTTP
Copy
HTTP
Copy
HTTP
Copy
VariableType to search · ESC to discard
GlossaryType to search · ESC to discard
InsertType to search · ESC to discard
No matches
  Last updated