Skip to main content

Configuración Inicial

Define las variables de entorno:
export NEURACALL_API="https://api.neuracall.com"
export CLIENT_ID="tu_client_id"
export CLIENT_SECRET="tu_client_secret"

Autenticación

Obtener Token

curl -X POST "$NEURACALL_API/v1/auth" \
  -H "Content-Type: application/json" \
  -d '{
    "client_id": "'"$CLIENT_ID"'",
    "client_secret": "'"$CLIENT_SECRET"'"
  }'
Respuesta:
{
  "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...",
  "expires_at": 1735689600,
  "client_id_audience": "https://api.neuracall.com/call-analysis",
  "scope": "read:call-analysis-requests write:call-analysis-request ..."
}
Guarda el token:
export TOKEN="eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9..."

Análisis de Llamadas

Crear Análisis

curl -X POST "$NEURACALL_API/v1/call-analysis" \
  -H "Authorization: Bearer $TOKEN" \
  -F "[email protected]" \
  -F "external_id=CALL-2024-001" \
  -F "agent_id=AGT-001" \
  -F "agent_name=Juan Perez" \
  -F "model_name=Evaluación Servicio Cliente"
Respuesta (201):
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "external_id": "CALL-2024-001",
  "status": "PENDING",
  "created_at": "2024-01-15T10:30:00Z"
}

Obtener Análisis

curl "$NEURACALL_API/v1/call-analysis/550e8400-e29b-41d4-a716-446655440000" \
  -H "Authorization: Bearer $TOKEN"
Respuesta (completado):
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "status": "PROCESS_COMPLETED",
  "score_percentage": 85.0,
  "summary": "El agente resolvio eficientemente...",
  "insights": ["Excelente manejo del saludo"],
  "keywords": ["facturación", "reembolso"]
}

Listar Análisis

curl "$NEURACALL_API/v1/call-analysis?page=0&size=20" \
  -H "Authorization: Bearer $TOKEN"
Con filtros:
curl "$NEURACALL_API/v1/call-analysis?start_date=2024-01-01T00:00:00Z&end_date=2024-01-31T23:59:59Z&model_id=1" \
  -H "Authorization: Bearer $TOKEN"

Obtener Transcripción

curl "$NEURACALL_API/v1/call-analysis/550e8400-e29b-41d4-a716-446655440000/transcription" \
  -H "Authorization: Bearer $TOKEN"

Descargar Audio

curl "$NEURACALL_API/v1/call-analysis/550e8400-e29b-41d4-a716-446655440000/audio-file" \
  -H "Authorization: Bearer $TOKEN" \
  -o audio_descargado.mp3

Modelos

Listar Modelos

curl "$NEURACALL_API/v1/models" \
  -H "Authorization: Bearer $TOKEN"

Obtener Modelo

curl "$NEURACALL_API/v1/models/1" \
  -H "Authorization: Bearer $TOKEN"

Crear Modelo

curl -X POST "$NEURACALL_API/v1/models" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Mi Modelo de Evaluación",
    "description": "Modelo para llamadas de soporte",
    "prompt": "Evalua la llamada...",
    "template_variables": [
      {
        "key": "saludo",
        "type": "INTEGER",
        "required": true
      }
    ]
  }'

Estadísticas

Estadísticas Básicas

curl "$NEURACALL_API/v1/stats/basic?start_date=2024-01-01T00:00:00Z&end_date=2024-01-31T23:59:59Z&model_name=Evaluación%20Servicio" \
  -H "Authorization: Bearer $TOKEN"

NeuraScore por Agente

curl "$NEURACALL_API/v1/stats/neurascore-by-agent?start_date=2024-01-01T00:00:00Z&end_date=2024-01-31T23:59:59Z&model_name=Evaluación%20Servicio&agent_id=AGT-001" \
  -H "Authorization: Bearer $TOKEN"

Script Completo

Guarda esto como neuracall.sh:
#!/bin/bash

# Configuración
API="https://api.neuracall.com"
CLIENT_ID="tu_client_id"
CLIENT_SECRET="tu_client_secret"

# Obtener token
get_token() {
  curl -s -X POST "$API/v1/auth" \
    -H "Content-Type: application/json" \
    -d "{\"client_id\": \"$CLIENT_ID\", \"client_secret\": \"$CLIENT_SECRET\"}" \
    | jq -r '.access_token'
}

TOKEN=$(get_token)

# Crear análisis
create_analysis() {
  curl -s -X POST "$API/v1/call-analysis" \
    -H "Authorization: Bearer $TOKEN" \
    -F "audio_file=@$1" \
    -F "external_id=$2" \
    -F "agent_id=$3" \
    -F "agent_name=$4" \
    -F "model_name=$5"
}

# Obtener análisis
get_analysis() {
  curl -s "$API/v1/call-analysis/$1" \
    -H "Authorization: Bearer $TOKEN"
}

# Esperar completado
wait_for_completion() {
  while true; do
    STATUS=$(get_analysis $1 | jq -r '.status')
    echo "Estado: $STATUS"
    if [ "$STATUS" = "PROCESS_COMPLETED" ]; then
      get_analysis $1
      break
    elif [ "$STATUS" = "ERROR" ]; then
      echo "Error en el análisis"
      break
    fi
    sleep 5
  done
}

# Uso
# ./neuracall.sh llamada.mp3 CALL-001 AGT-001 "Juan Perez" "Mi Modelo"
if [ $# -ge 5 ]; then
  echo "Creando análisis..."
  RESULT=$(create_analysis "$1" "$2" "$3" "$4" "$5")
  ID=$(echo $RESULT | jq -r '.id')
  echo "ID: $ID"
  echo "Esperando resultado..."
  wait_for_completion $ID
fi
Hazlo ejecutable y usalo:
chmod +x neuracall.sh
./neuracall.sh llamada.mp3 CALL-001 AGT-001 "Juan Perez" "Evaluación Servicio"