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

# Vision General

> Opciónes de integración con Neuracall

## Formas de Integrar

Neuracall ofrece múltiples formas de integrarse con tus sistemas:

<CardGroup cols={2}>
  <Card title="API REST" icon="code">
    Integración directa via HTTP para control total.
  </Card>

  <Card title="Aplicación Web" icon="browser">
    Interfaz grafica para uso manual y supervision.
  </Card>
</CardGroup>

## Arquitectura de Integración

```mermaid theme={null}
flowchart TD
    A[Tu Sistema<br/>CRM, PBX, Telefonía] --> B[Neuracall API]
    B --> C[Procesamiento<br/>Transcripción, Análisis, Resumen]
    C --> D[Resultados<br/>NeuraScore, Insights]
```

## Casos de Integración Comunes

### 1. Integración con CRM

Envia llamadas automáticamente cuando se completan en tu CRM:

```python theme={null}
# Cuando una llamada termina en tu CRM
def on_call_completed(call_record):
    # Descargar grabacion
    audio_file = download_recording(call_record.recording_url)

    # Enviar a Neuracall
    analysis = neuracall.create_analysis(
        audio_file=audio_file,
        external_id=call_record.id,
        agent_id=call_record.agent_id,
        agent_name=call_record.agent_name,
        model_name="Evaluación Servicio"
    )

    # Guardar referencia
    call_record.neuracall_id = analysis.id
    call_record.save()
```

### 2. Integración con Telefonia

Conecta tu PBX o sistema de telefonia:

* **Asterisk**: Usa AMI para detectar fin de llamada
* **Twilio**: Webhook al completar recording
* **Amazon Connect**: Lambda trigger post-call

### 3. Proceso Batch

Analiza llamadas historicas en lote:

```python theme={null}
# Procesar llamadas del dia anterior
calls = get_calls_from_yesterday()

for call in calls:
    neuracall.create_analysis(
        audio_file=call.recording,
        external_id=call.id,
        ...
    )
```

## Flujo Tipico

<Steps>
  <Step title="Autenticar">
    Obtener token de acceso con credenciales.
  </Step>

  <Step title="Enviar Llamada">
    POST a /v1/call-analysis con audio y metadatos.
  </Step>

  <Step title="Monitorear">
    GET periodico o webhook para saber cuando termina.
  </Step>

  <Step title="Obtener Resultados">
    GET /v1/call-analysis/{id} para datos completos.
  </Step>

  <Step title="Usar Datos">
    Guardar scores, mostrar en dashboard propio, etc.
  </Step>
</Steps>

## Consideraciones Tecnicas

### Autenticación

* Los tokens tienen expiración
* Implementa renovacion automática
* Almacena credenciales de forma segura

### Manejo de Errores

* Implementa reintentos para errores 5xx
* Valida datos antes de enviar
* Loguea errores para debugging

### Rendimiento

* El procesamiento es asíncrono (2-5 min tipico)
* Puedes enviar múltiples llamadas en paralelo
* Respeta los rate limits

## Seguridad

<Warning>
  Nunca expongas credenciales en código cliente o repositorios publicos.
</Warning>

Recomendaciones:

* Usa variables de entorno
* Implementa rotacion de secretos
* Monitorea uso de API

<CardGroup cols={2}>
  <Card title="Primeros Pasos" icon="rocket" href="/integrations/getting-started">
    Guía paso a paso
  </Card>

  <Card title="Ejemplos de Código" icon="code" href="/integrations/examples/python">
    Ver implementaciones
  </Card>
</CardGroup>
