> ## Documentation Index
> Fetch the complete documentation index at: https://dialnexa.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# MSG91 Voice AI Integration Guide

> Connect DialNexa voice AI with MSG91 to send Indian SMS, WhatsApp, and verification messages after calls with clear consent and delivery checks.

The **MSG91 voice AI integration** helps Indian teams send transactional follow-ups after a call. Use it for confirmations, reference numbers, approved links, and verification flows while keeping DLT, template, consent, and delivery requirements visible.

<Warning>
  A catalog page describes a possible workflow. It does not confirm that a native MSG91 connector is enabled in your workspace. Check **Integrations** in the DialNexa dashboard first. If MSG91 is not listed, use a custom function, agent webhook, or external automation service.
</Warning>

## When to use the MSG91 voice AI integration

Use MSG91 when:

* Indian customers need an SMS or approved WhatsApp confirmation after a call.
* Your sender, route, template, and DLT setup already support the message type.
* Delivery status must be stored with the call or business record.
* OTP flows use a separate verification policy and never expose the code to the agent.

<Tip>
  **Best first workflow:** Send a registered transactional template with a booking or case reference, then store the message ID and delivery result for support follow-up.
</Tip>

## Before you begin

Prepare the following:

* A published DialNexa agent that has already passed a basic test call.
* Access to the DialNexa workspace **Integrations** page.
* An MSG91 account with an approved sender, route, and message templates.
* One test record that does not affect a live customer.
* A list of actions that can run automatically and actions that require human review.

## Choose how to connect MSG91

| Connection method                                   | Use it when                                              | Important limit                                                            |
| --------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------------------------- |
| Workspace connector                                 | MSG91 appears in your DialNexa **Integrations** page     | Available actions and authentication depend on your workspace              |
| [Custom function](/docs/agent-settings/custom-functions) | The agent needs to send an MSG91 message during the call | Keep the request fast and return the message ID and status                 |
| [Agent webhook](/docs/api-access/agent-webhooks)         | MSG91 should receive a result after the call             | Your endpoint must authenticate, retry safely, and prevent duplicate sends |
| External automation                                 | The workflow spans MSG91 and several other systems       | Monitor the external workflow separately from the DialNexa call            |

## Build the MSG91 voice AI workflow

1. Define the exact event that starts the action, such as a confirmed booking, qualified lead, support escalation, or completed call.
2. Choose the connection method from the table above.
3. Map caller identity, the DialNexa call ID, the verified outcome, and the destination record ID.
4. Add a condition so uncertain, sensitive, destructive, or high-value changes go to a human-owned queue.
5. Store the destination record URL or ID with the call result so your team can trace the handoff.
6. Test success, no-match, duplicate, permission-error, and timeout cases before using live traffic.

## Data to map between DialNexa and MSG91

* DialNexa call ID, call direction, status, and final outcome
* Caller name, phone number, email, and matched customer or account ID
* Structured fields collected during the call, including consent where required
* Short operational summary, requested next step, owner, and due date
* Transcript or recording link only when your privacy policy allows it
* MSG91 message ID, delivery status, template ID, and integration result

## High-value MSG91 voice AI workflows

| Call outcome                                | MSG91 result                                        | Human control                                            |
| ------------------------------------------- | --------------------------------------------------- | -------------------------------------------------------- |
| Appointment or service request is confirmed | Send the registered confirmation template           | Confirm phone number and template variables              |
| Caller needs a reference or trusted link    | Send it through the approved route                  | Do not shorten or replace trusted domains without review |
| Identity verification is required           | Start the approved OTP flow                         | The agent must never hear, request, or store the OTP     |
| Message fails or is rejected                | Save the delivery result and create a fallback task | Let staff choose another permitted channel               |

## Verify the MSG91 integration

Run a test call and confirm that:

1. The workflow sends only one message to the normalized, confirmed phone number.
2. Sender, route, DLT registration, template ID, and variables match the message type.
3. OTP values are never exposed to the voice agent or stored with the call.
4. The DialNexa call ID prevents duplicate sends.
5. The message ID, delivery result, and any fallback task are visible to the owner.

## Troubleshoot MSG91 integration issues

| Problem                              | What to check                                                                                                                                     |
| ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| MSG91 is not shown in the dashboard  | Use a custom function, webhook, or external automation service, or [request the integration](/docs/dashboard-integrations/requesting-new-integrations) |
| Authentication fails                 | Reconnect the account and verify scopes, workspace ownership, and token expiry                                                                    |
| Message is rejected or not delivered | Check number format, sender, route, DLT registration, template ID, and variables                                                                  |
| Duplicate messages appear            | Use the DialNexa call ID as an idempotency key and make retries safe                                                                              |
| The live call becomes slow           | Move nonessential writes to a post-call webhook and keep live lookups small                                                                       |

## Related pages

* [DialNexa integrations overview](/docs/integrations/overview)
* [Connect dashboard integrations](/docs/dashboard-integrations/connecting-integrations)
* [Use integrations in agents](/docs/dashboard-integrations/using-integrations-in-agents)
* [Use integrations in workflows](/docs/dashboard-integrations/using-integrations-in-workflows)
* [Integration workflow tutorials](/docs/tutorials/integration-workflows)
