Outbound Voice Call × MoEngage
This integration adds conversational voice as an engagement channel alongside push, SMS, email, and WhatsApp, without requiring you to build telephony or conversational AI infrastructure. With this integration, you can:- Trigger an outbound AI voice call the moment a campaign event fires.
- Choose the language the conversation opens in, and let the agent switch languages mid-call based on how the customer responds.
- Pass campaign-configured context (customer name, cart value, order ID, amount due, discount code, or any other field your agent needs) with every call using MoEngage personalization attributes.
- Personalize the agent’s opening line per user with the Initial Bot Message.
- Receive the outcome of every call, along with call duration and the data captured during the conversation, through a webhook for closed-loop journey orchestration.
Use Cases
By integrating Sarvam with MoEngage, you can address the following use cases:- Cart abandonment follow-up: Trigger a call that references the cart contents and value, answers product questions, applies a discount code, and helps the shopper complete the purchase.
- EMI and payment reminders: Trigger a call ahead of an EMI due date or after a failed payment, inform the customer of the amount due, and guide them to complete the payment.
- Renewal and retention: Trigger a call before a subscription or policy renewal, remind the customer of the benefits, and offer a retention incentive where needed.
- Delivery confirmation and order resolution: Trigger a call to confirm a delivery slot, inform the customer of a delay, or resolve order issues interactively.
- Win-back outreach: Trigger a conversational call to lapsed customers in their preferred language with a personalized offer.
Prerequisites
To set up the integration, ensure you have the following:
- Sarvam account: An active Sarvam organization and workspace. Note the Organization ID and Workspace ID.
- API key: A workspace API key generated from the Sarvam dashboard, used to authenticate requests from MoEngage.
- Published voice agent: An agent built and published on the Sarvam platform for your use case, with its App ID, App Version, and the list of agent variables it expects (for example,
customer_nameandcart_value). - Telephony connection: A telephony provider connection configured in your Sarvam workspace, with a compliant outbound caller number. Note the Connection ID and Agent Phone Number.
- User phone numbers in MoEngage: A user attribute that holds the mobile number in E.164 format (for example,
+919876543210).
Step 1: Set Up Your Sarvam Workspace and Voice Agent
Before you connect the app in MoEngage, perform the following steps on the Sarvam dashboard:-
Generate credentials: In your Sarvam workspace settings, note the Organization ID and Workspace ID, and generate an API key. These three values authenticate every call that MoEngage triggers.

-
Configure telephony: With Sarvam onboarding, connect your telephony provider and register the outbound caller number that your customers see. This produces the Connection ID and Agent Phone Number used in the next step.

-
Build and publish the agent: Create the voice agent for your use case, including its conversation design, supported languages, and objection handling. Define the agent variables that the conversation personalizes on (for example,
customer_name,cart_value,discount_code, andpreferred_language). Publishing produces the App ID and App Version.
Where to Find Each Value
Every value that the MoEngage connection form asks for is available on the Sarvam dashboard. The following table describes where to retrieve each one:
Step 2: Connect the App in MoEngage
To connect Sarvam in the App Marketplace, perform the following steps:- On the left navigation menu in the MoEngage UI, click App Marketplace.
- On the App Marketplace page, search for Sarvam.
-
Click the Sarvam tile.

- On the Sarvam page, click the Integrate tab.
- Click + Add integration.
-
Under Connection details, enter the following details. The form groups these fields under Authentication and Agent & Connection Configuration:
-
Click Test to validate the connection.

Any changes to connection details take up to 15 minutes to reflect.
The connection is bound to one agent (App ID) and one caller number. To run campaigns with a different agent, for example an EMI reminder agent alongside a cart recovery agent, create an additional connection with that agent’s details.
Step 3: Configure a Campaign
To create a Sarvam outbound voice call campaign, perform the following steps:- On the left navigation menu in the MoEngage UI, click Engage, and then click Campaigns.
- On the All campaigns page, click + Create campaign.
- In the Create campaign dialog box, under Connected Apps, click Sarvam, and then click the most suitable delivery type.
-
In Step 1 (Target users), select your audience and define the trigger event (for example,
cart_abandonedwith a 30-minute delay, restricted to users with a valid mobile number). - In Step 2 (Content), select your Connector (Make Outbound Call) and your created connection.
-
Under Content, configure the following fields:

- In Step 3 (Schedule and Goals), configure delivery controls such as DND hours and frequency capping according to your engagement policy.
- Publish the campaign.
Map every agent variable that your published agent expects; unmapped variables fall back to the agent’s defaults. Confirm that attribute names typed with
@ resolve to populated user or event attributes, because empty values reach the agent as blank context.Step 4: Testing and Validation
To confirm that the integration works as expected, perform the following steps:- On the Integrate tab of the Sarvam app, click Test on the connection you created. A successful test confirms that the API Key, Organization ID, and Workspace ID resolve to your Sarvam workspace.
-
In the Test Campaign section of the campaign’s Content step, select an identifier type such as Email ID, enter the identifier of a test user whose mobile number you control, and then click Test.

-
Confirm that the request returns HTTP 200 with an
attempt_id, which means MoEngage’s request was accepted and the call is being placed. - Answer the call and verify the conversation. The agent opens in the configured Initial Language with the personalized Initial Bot Message, and references the mapped agent variables such as name, cart value, and discount code.
- After the call ends, verify that the outcome was delivered to the configured Callback URL.
- Where the outcome is written back to MoEngage as a custom event, verify that the event appears on the test user’s activity timeline and can be used in journey conditions and conversion goals.
connected, no_answer, busy, or failed), the duration, the final_agent_variables captured during the conversation, an interaction_id for retrieving the transcript and recording, and the Callback Details you configured, echoed back verbatim so that you can correlate the outcome to the MoEngage user. To write the outcome back as a custom event such as voice_call_outcome, use the Track Event API.
Call Outcomes and Journey Orchestration
Every completed call produces an outcome that identifies whether the call connected, how long it lasted, why it failed, and the data that the agent captured. When you ingest these outcomes into MoEngage as events, you can branch journeys on them. For example, you can suppress a discount SMS when the call connected with positive purchase intent, or fall back to WhatsApp when the call was unanswered. Each request produces a single dial attempt, so retries are orchestrated in MoEngage. Build a Flow that branches on the outcome event: ifvoice_call_outcome has status set to no_answer or busy, wait an interval, and then trigger the call action again. Use frequency capping or a flow exit condition to bound the number of attempts.
Reference: The Outcome Webhook Sarvam Sends
After the call completes, Sarvam sends a single POST to the Callback URL configured in the campaign. For the authoritative schema, see the Webhook Payload page in the Sarvam API reference. You can choose where this outcome is delivered:- To MoEngage: To receive the outcome in MoEngage, contact MoEngage Support for a dedicated endpoint, which is powered by Connected Sources. Enter that endpoint as the Callback URL in the campaign.
- To your own endpoint: To process the outcome in your own systems, enter your HTTPS endpoint as the Callback URL in the campaign.
Outcome Webhook Payload
status is one of connected, no_answer, busy, or failed. The duration field is in seconds, and duration, interaction_id, final_agent_variables, and interaction_transcript are null when the call did not connect.
The following fields matter most when you map outcomes into MoEngage events:
The webhook payload does not carry an event timestamp. When you forward the outcome into MoEngage’s Data API, stamp
current_time in ISO 8601 format at ingestion.Troubleshooting
The following table describes common issues and their resolutions:Frequently Asked Questions
Can one MoEngage workspace use multiple Sarvam agents?
Can one MoEngage workspace use multiple Sarvam agents?
Yes. Each connection is bound to one agent and one caller number, so create one connection per agent (for example, Sarvam Cart Recovery and Sarvam EMI Reminder) and select the appropriate connection when building each campaign.
Which languages are supported?
Which languages are supported?
The languages available on a call are defined by the published agent’s configuration on the Sarvam platform. Initial Language selects the opening language, and the agent can switch mid-call when the customer responds in another language that the agent supports.
Do MoEngage delivery controls apply to voice?
Do MoEngage delivery controls apply to voice?
Yes. Because MoEngage decides when to send the request, all campaign-level controls such as DND hours, frequency capping, quiet hours, and segment exclusions apply before Sarvam is triggered. Sarvam places the call immediately on receiving the request, so configure your calling-hours policy on the MoEngage side.
Does Sarvam retry unanswered calls?
Does Sarvam retry unanswered calls?
No. Across all campaign types, one request produces one call attempt, and the outcome, including
no_answer or busy, is reported back through the webhook. Orchestrate retries in a MoEngage Flow as described in Call Outcomes and Journey Orchestration.