Tata Smartflo Setup
This guide walks you through connecting your Tata Smartflo account to Vocobase for BYOP WebSocket calling.Configure Tata Smartflo with the Partner 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 partner account with
"tata_smartflo"present inallowed_telephony_providers(checkGET /config) - A public HTTPS backend URL where Smartflo can reach the Vocobase resolver and lifecycle webhook
Step 1: Get your Tata Smartflo credentials
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.
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.
Step 2: Configure Tata Smartflo in Vocobase
Send the credentials through the Partner 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.Create a named connection
For new BYOP builds, prefer named connections so each Smartflo account or DID set has a stableconnection_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.Step 3: Confirm the partner sees Tata Smartflo as configured
Fetch your partner configuration. The response should now include Tata Smartflo inallowed_telephony_providers:
telephony.tata_smartflo.configured: true confirms the credentials and from-number landed. Presence in allowed_telephony_providers is what gates your ability to start a Tata Smartflo call.
Step 4: Make a test call
Start an outbound call with"provider": "tata_smartflo". If your partner account has multiple active Tata Smartflo connections, include connection_id.
"provider": "tata_smartflo" when starting calls.
Partner provisioning checklist
Complete these items with Tata Smartflo before live traffic:| Area | Required setup |
|---|---|
| API authentication | Use the Smartflo panel email and password. Vocobase mints Tata Smartflo bearer tokens server-side; partners do not send tokens in call-start requests. |
| Dynamic Voice-Bot endpoint | Configure https://<backend>/api/tata/resolve-wss?secret=<TATA_RESOLVE_SECRET> as the Dynamic Voice-Bot endpoint URL. Map Smartflo variables $callId, $fromNumber, $toNumber, and $status. Vocobase must answer within <= 2000 ms with exactly {"success":true,"wss_url":"wss://..."}. |
| Lifecycle webhook | Configure https://<backend>/api/tata/lifecycle as the lifecycle webhook URL. Enable Call answered by Customer (Click to call) and Call hangup (Missed or Answered), plus the equivalent inbound answered and hangup triggers. Set Content-Type to application/json. |
| DIDs | Smartflo DIDs come from GET /v1/my_number. Inbound DIDs must be routed in the Smartflo panel to the Voice-Bot streaming app so incoming calls invoke the Dynamic Voice-Bot endpoint. |
| Outbound agent leg | Outbound agent_number wiring is pending Tata confirmation (spike S1). Keep this unset until Vocobase confirms the required Smartflo value for your account. |
Troubleshooting
”Tata Smartflo not configured” or 403 on /calls/start
- Confirm
"tata_smartflo"is inallowed_telephony_providersfromGET /config. If it is not, contact your Vocobase account manager. - Confirm
email,password, andfrom_numberwere saved (telephony.tata_smartflo.configured: true).
CONNECTION_AMBIGUOUS error
- Your account has multiple active Tata Smartflo connections. Call
GET /api/v2/telephony/connections?provider=tata_smartfloand pass the desiredconnection_idinPOST /api/v2/calls/start.
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-smartflowith the new password.
Inbound calls do not reach the agent
- Confirm the DID appears in
GET /v1/my_numberfor 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.
Updating credentials
Changed your Smartflo password? Re-sendPUT /api/v2/config/telephony/tata-smartflo with the new password. This endpoint always requires email, password, and from_number together, so include all three plus base_url if you use a custom host.
For named connections, create a replacement connection or update the default connection endpoint until credential rotation support is available for that connection.
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.