Configuración
Variables de configuración
Referencia de variables que controlan el comportamiento de SIVO en cada tenant — JWT, almacenamiento de grabaciones, proveedores STT/LLM/TTS, integraciones.
Actualizado:
configurationenvsecrets
Por dónde se configura
Casi todo se configura desde la UI:
- Settings → General — branding, idioma por defecto, zona horaria.
- Settings → Secrets — API keys de proveedores STT/LLM/TTS.
- Settings → Integrations — Salesforce, webhooks.
- Settings → Recording / Transcription policies — políticas hierárquicas.
- Settings → SIP trunks — operadores y ACL.
Lo que aquí documentamos son las claves backend que reflejan esos valores, útiles si gestionas SIVO via API o exportas la configuración.
Identidad de tenant
| Clave | Tipo | Por defecto | Descripción |
|---|---|---|---|
tenant.slug | string | (generado) | Identificador url-safe del tenant (acme, globex). Usado en subdominios SIP y dashboard. |
tenant.sip_domain | string | <slug>.sip.sivocenter.com | Dominio SIP propio. Los registros de extensiones van contra este. |
tenant.dashboard_url | string | <slug>.app.sivocenter.com | URL del backoffice. |
tenant.default_locale | enum | es | es | en | de | fr | it | pt. |
tenant.timezone | IANA | Europe/Madrid | Para evaluación de horarios y CDR. |
Autenticación
| Clave | Tipo | Por defecto | Descripción |
|---|---|---|---|
auth.jwt_ttl_sec | int | 86400 | Duración del token JWT (24h por defecto). |
auth.refresh_ttl_sec | int | 2592000 | Duración del refresh token (30 días). |
auth.password_min_length | int | 8 | Mínimo del password de usuarios. |
auth.login_max_attempts | int | 5 | Bloqueo temporal tras N fallos en 15 min. |
auth.mfa_required_roles | array | ['admin','superadmin'] | Roles con MFA obligatorio. |
Grabación
| Clave | Tipo | Por defecto | Descripción |
|---|---|---|---|
recording.default_format | enum | wav | wav | mp3 | ogg. |
recording.default_retention_days | int | (depende plan) | 30 (Starter) / 180 (Pro) / config (Enterprise). |
recording.default_provider_id | uuid | (managed) | Proveedor default (SIVO managed). |
recording.kms_enabled | bool | true | Server-side encryption obligatoria en buckets. |
Transcripción
| Clave | Tipo | Por defecto | Descripción |
|---|---|---|---|
transcription.engine | enum | deepgram | deepgram | elevenlabs_scribe_v2_realtime | whisper. |
transcription.language | ISO 639-1 | es | Idioma esperado por defecto. Override por DID. |
transcription.speaker_separation | bool | true | Si activado, captura caller+agent en forks separados. |
transcription.policy_retention_days | int | 90 | Retención sellada en cada registro al crearse. |
transcription.push_to_sf | bool | false | Activar push a Salesforce SCRT2 (requiere integración). |
AI agents
| Clave | Tipo | Por defecto | Descripción |
|---|---|---|---|
ai.stt_provider | string | deepgram | Proveedor STT. |
ai.stt_model | string | nova-2 | Modelo concreto. |
ai.llm_base_url | url | https://api.groq.com/openai/v1 | Endpoint OpenAI-compatible. |
ai.llm_model | string | llama-3.1-70b-versatile | Modelo LLM. |
ai.tts_provider | string | elevenlabs | Proveedor TTS. |
ai.tts_model | string | eleven_multilingual_v2 | _v2 (sin audio tags) o _v3 (con audio tags). |
ai.tts_voice_id | string | (depende idioma) | Voz por defecto. |
ai.max_turns | int | 20 | Corte de seguridad por turnos. |
ai.max_duration_sec | int | 600 | Corte por timeout. |
ai.barge_in_cooldown_ms | int | 300 | Cooldown anti-echo tras playback. |
ai.speech_min_ms | int | 400 | Mínimo VAD para considerar utterance. |
Salesforce
| Clave | Tipo | Por defecto | Descripción |
|---|---|---|---|
sf.connected_orgs | array | [] | Lista de orgs SF conectadas. Multi-org soportado. |
sf.jwt_keypair_id | string | global | RS256 global compartido, o ID de keypair propio por org. |
sf.scrt_base_url | url | (auto) | Endpoint SCRT2 (auto-descubierto en OAuth). |
sf.user_mappings | array | [] | Mapeos PBX user ↔ SF user (auto-import + manual). |
sf.push_transcripts | bool | false | Activar push de transcripción a Conversation/ConversationEntry. |
sf.message_provider_name | string | calltree | Header Telephony-Provider-Name. NO CAMBIAR sin coordinación con SF admin. |
Webhooks
| Clave | Tipo | Por defecto | Descripción |
|---|---|---|---|
webhooks.signing_secret | string | (generado) | HMAC SHA-256 secret por endpoint. |
webhooks.retry_max_attempts | int | 6 | Reintentos con backoff exponencial: 5s, 30s, 2m, 10m, 1h, 6h. |
webhooks.timeout_ms | int | 10000 | Timeout por request. |
webhooks.dlq_retention_days | int | 30 | Días que el evento permanece en DLQ consultable. |
Rate limiting
Configurado por endpoint, no por tenant. Valores que aplicamos:
POST /auth/login: 5 req / 15 min por IP.POST /auth/agent: 10 req / 15 min por usuario.POST /api/public/leads: 5 req / 1 h por IP.- Resto endpoints autenticados: 600 req / min por usuario.
Si necesitas límites custom (planes Enterprise), contacta con soporte.
Cómo ver tu configuración actual
curl -H "Authorization: Bearer $TOKEN" \
https://api.sivocenter.com/api/config | jq
Solo devuelve las claves que tu rol puede ver. Algunas (secrets, JWT keys) están redacted en la respuesta — para verlas hace falta acceder al dashboard con rol admin.
→ Para detalles sobre rotación de claves, ver Rotación de keys JWT.