Skip to main content

Tata Smartflo Setup

This guide walks you through connecting your Tata Smartflo account to Vocobase for BYOP WebSocket calling.
Configure Tata Smartflo with the V2 API (PUT /api/v2/config/telephony/tata-smartflo) for the default connection. To create multiple named Tata Smartflo connections, use POST /api/v2/telephony/connections. Once Tata Smartflo is configured, start calls programmatically using POST /calls/start with "provider": "tata_smartflo".

Prerequisites

  • A Tata Smartflo account with panel email and password credentials
  • API access enabled by Tata Smartflo for your account
  • At least one Smartflo DID returned by GET /v1/my_number
  • An approved Vocobase account with "tata_smartflo" present in allowed_telephony_providers (check GET /config)
  • A public HTTPS backend URL where Smartflo can reach the Vocobase resolver and lifecycle webhook
If "tata_smartflo" is not yet listed in your account config’s allowed_telephony_providers, contact your Vocobase account manager to enable it.

Get your Tata Smartflo credentials

1

Find your Smartflo panel credentials

Use the same email and password you use to sign in to the Smartflo panel. Vocobase uses these credentials server-side to mint short-lived Tata Smartflo API tokens when it calls Smartflo on your behalf.
These credentials grant access to your Smartflo account. Treat them like any other production secret.
2

Enable API and Voice-Bot streaming access

Ask Tata Smartflo to enable API access and Dynamic Voice-Bot streaming for your account. The Smartflo panel must be able to call your Vocobase backend at the Dynamic Voice-Bot endpoint and lifecycle webhook URL.
3

Identify the DID you will use

Smartflo DIDs come from GET /v1/my_number. Copy the number you plan to use as the caller ID or inbound DID.The number should be stored in E.164 format in Vocobase (e.g., +918011223344).

Configure Tata Smartflo in Vocobase

Send the credentials through the V2 API. email, password, and from_number are required; base_url is optional and defaults to the Tata Smartflo API host.
This endpoint updates your default Tata Smartflo connection. To create multiple named Tata Smartflo connections, use POST /api/v2/telephony/connections and store the returned connection_id.
A successful response confirms credentials were stored:
Your Smartflo password is encrypted at rest and never returned in API responses.

Create a named connection

For new BYOP builds, prefer named connections so each Smartflo account or DID set has a stable connection_id.
agent_number wiring for outbound click_to_call is pending Tata confirmation. Do not pass agent_number unless Vocobase has confirmed the value to use for your Smartflo account.
To rotate credentials on this named connection, create a replacement connection and repoint your calls at the new connection_idPATCH /api/v2/telephony/connections/{connection_id} only renames a connection. Do not re-send the create request above: it adds a second connection rather than updating the first. To rotate the default connection instead, re-send the PUT /api/v2/config/telephony/tata-smartflo request at the top of this page with the new values; that endpoint replaces the stored credential set rather than patching it, so every field is required on each call.

Confirm it is configured

GET /api/v2/config reports Tata Smartflo under allowed_telephony_providers and shows telephony.tata_smartflo.configured: true once your credentials are saved. See Check provider access.

Make a test call

Start an outbound call with "provider": "tata_smartflo".
Vocobase manages the Smartflo API token, WebSocket resolver, media path, and lifecycle ingestion. Accounts only need to configure credentials, complete the Smartflo panel provisioning checklist, and pass "provider": "tata_smartflo" when starting calls. If your account has more than one active Tata Smartflo connection, also pass connection_id — omitting it returns CONNECTION_AMBIGUOUS. See Bring Your Own Phone for the full request and response shape.

Provisioning checklist

Complete these items with Tata Smartflo before live traffic:
The Dynamic Voice-Bot resolver response is strict. Extra keys, non-200 responses, invalid JSON, or responses slower than 2000 ms can cause Smartflo to drop the call.

Troubleshooting

”Tata Smartflo not configured” or 403 on /calls/start

  • Confirm "tata_smartflo" is in allowed_telephony_providers from GET /config. If it is not, contact your Vocobase account manager.
  • Confirm email, password, and from_number were saved (telephony.tata_smartflo.configured: true).

Smartflo rejects credentials

  • Re-check the email and password against the Smartflo panel sign-in.
  • Confirm Tata has enabled API access for the Smartflo account.
  • If you recently changed the panel password, re-send PUT /api/v2/config/telephony/tata-smartflo with the new password.

Inbound calls do not reach the agent

  • Confirm the DID appears in GET /v1/my_number for your Smartflo account.
  • Confirm the DID is routed in the Smartflo panel to the Voice-Bot streaming app, not only to a regular queue or SIP endpoint.
  • Confirm the Dynamic Voice-Bot endpoint URL includes secret=<TATA_RESOLVE_SECRET> and maps $callId, $fromNumber, $toNumber, and $status.

Calls answer but do not update status in Vocobase

  • Confirm the lifecycle webhook URL is https://<backend>/api/tata/lifecycle.
  • Confirm Smartflo is sending the answer and hangup triggers with Content-Type: application/json.
  • Check whether Tata Smartflo is sending an equivalent inbound trigger for inbound calls.

Next steps

Telephony Connections

Create and manage multiple named connections.

Inbound Calls

Sync and assign inbound Smartflo DIDs.

Bring Your Own Phone

Overview of all supported BYOP providers.

Quick Start

Create an agent and make your first call.