SIVO
Configuration variables

Configuration

Configuration variables

Reference of variables that control SIVO behavior per tenant — JWT, recording storage, STT/LLM/TTS providers, integrations.

Updated:
configurationenvsecrets

Where to configure

Almost everything is configured from the UI:

  • Settings → General — branding, default language, timezone.
  • Settings → Secrets — STT/LLM/TTS provider API keys.
  • Settings → Integrations — Salesforce, webhooks.
  • Settings → Recording / Transcription policies — hierarchical policies.
  • Settings → SIP trunks — carriers and ACL.

Here we document the backend keys reflecting those values, useful if you manage SIVO via API or export configuration.

Tenant identity

KeyTypeDefaultDescription
tenant.slugstring(generated)URL-safe tenant identifier (acme, globex). Used in SIP/dashboard subdomains.
tenant.sip_domainstring<slug>.sip.sivocenter.comOwn SIP domain. Extension registrations go against this.
tenant.dashboard_urlstring<slug>.app.sivocenter.comBackoffice URL.
tenant.default_localeenumeses | en | de | fr | it | pt.
tenant.timezoneIANAEurope/MadridFor schedule evaluation and CDR.

Authentication

KeyTypeDefaultDescription
auth.jwt_ttl_secint86400JWT lifetime (24h).
auth.refresh_ttl_secint2592000Refresh token lifetime (30 days).
auth.password_min_lengthint8Min password length.
auth.login_max_attemptsint5Temp lockout after N failures in 15 min.
auth.mfa_required_rolesarray['admin','superadmin']Roles with mandatory MFA.

Recording

KeyTypeDefaultDescription
recording.default_formatenumwavwav | mp3 | ogg.
recording.default_retention_daysint(per plan)30 (Starter) / 180 (Pro) / config (Enterprise).
recording.default_provider_iduuid(managed)Default provider (SIVO managed).
recording.kms_enabledbooltrueServer-side encryption mandatory in buckets.

Transcription

KeyTypeDefaultDescription
transcription.engineenumdeepgramdeepgram | elevenlabs_scribe_v2_realtime | whisper.
transcription.languageISO 639-1esDefault expected language. Per-DID override.
transcription.speaker_separationbooltrueIf enabled, caller+agent captured in separate forks.
transcription.policy_retention_daysint90Retention sealed at record creation.
transcription.push_to_sfboolfalseEnable push to Salesforce SCRT2 (requires integration).

AI agents

KeyTypeDefaultDescription
ai.stt_providerstringdeepgramSTT provider.
ai.stt_modelstringnova-2Specific model.
ai.llm_base_urlurlhttps://api.groq.com/openai/v1OpenAI-compatible endpoint.
ai.llm_modelstringllama-3.1-70b-versatileLLM model.
ai.tts_providerstringelevenlabsTTS provider.
ai.tts_modelstringeleven_multilingual_v2_v2 (no audio tags) or _v3 (with audio tags).
ai.tts_voice_idstring(per language)Default voice.
ai.max_turnsint20Safety turn cutoff.
ai.max_duration_secint600Timeout cutoff.
ai.barge_in_cooldown_msint300Anti-echo cooldown after playback.
ai.speech_min_msint400VAD min ms to count as utterance.

Salesforce

KeyTypeDefaultDescription
sf.connected_orgsarray[]Connected SF orgs. Multi-org supported.
sf.jwt_keypair_idstringglobalShared global RS256, or per-org keypair ID.
sf.scrt_base_urlurl(auto)SCRT2 endpoint (auto-discovered via OAuth).
sf.user_mappingsarray[]PBX user ↔ SF user mappings (auto-import + manual).
sf.push_transcriptsboolfalseEnable transcript push to Conversation/ConversationEntry.
sf.message_provider_namestringcalltreeTelephony-Provider-Name header. DO NOT CHANGE without SF admin coordination.

Webhooks

KeyTypeDefaultDescription
webhooks.signing_secretstring(generated)HMAC SHA-256 secret per endpoint.
webhooks.retry_max_attemptsint6Exponential backoff retries: 5s, 30s, 2m, 10m, 1h, 6h.
webhooks.timeout_msint10000Per-request timeout.
webhooks.dlq_retention_daysint30Days the event remains in queryable DLQ.

Rate limiting

Configured per endpoint, not per tenant. Applied values:

  • POST /auth/login: 5 req / 15 min per IP.
  • POST /auth/agent: 10 req / 15 min per user.
  • POST /api/public/leads: 5 req / 1 h per IP.
  • Other authenticated endpoints: 600 req / min per user.

For custom limits (Enterprise), contact support.

How to view your current config

curl -H "Authorization: Bearer $TOKEN" \
  https://api.sivocenter.com/api/config | jq

Only returns keys your role can see. Some (secrets, JWT keys) are redacted — to view them log into the dashboard as admin.

→ For key rotation details, see JWT key rotation.