Import Appels - QM

Documentation d'importation des appels sur AlloBrain QM

Introduction

Cette documentation détaille les différentes méthodes pour importer des appels téléphoniques dans la plateforme AlloBrain QM. Elle couvre la méthode générale via l'API ainsi que des cas d'usage spécifiques pour l'importation automatisée depuis différentes sources.

1. Méthode Générale d'Importation via API

Endpoint API

L'API AlloBrain permet d'importer des appels audio via un endpoint dédié :

POST https://api.qm.allobrain.com/calls/audio

Authentification

L'authentification se fait via une clé API dans les headers :

x-api-key: VOTRE_CLE_API_ALLOBRAIN

Paramètres

Format des métadonnées

Les métadonnées doivent être au format JSON, structurées comme un tableau d'objets avec des paires clé/valeur :

[
  {"key": "client_phone", "value": "+33XXXXXXXXX"},
  {"key": "call_direction", "value": "inbound"},
  {"key": "site", "value": "xxxx"}
]

Exemple de requête cURL

curl -X POST https://api.qm.allobrain.com/calls/audio \
  -H "x-api-key: $ALLOBRAIN_API_KEY" \
  -F 'file=@/path/to/call/recording.wav' \
  -F 'campaign_id=VOTRE_ID_DE_CAMPAGNE' \
  -F 'conversation_timestamp=1704067200' \
  -F 'agent_email=john.doe@example.com' \
  -F 'metadata=[{"key":"client_phone","value":"+33XXXXXXXXX"},{"key":"site","value":"xxx"}]'

Réponses de l'API

CodeDescription200Succès - L'appel a été importé avec succès400Erreur de requête - Vérifiez les paramètres fournis401Non autorisé - Clé API invalide404Ressource non trouvée - L'agent ou la campagne spécifiés n'existent pas409Conflit - L'utilisateur existe déjà (lors de la création d'un agent)422Erreur de validation - Le format des données n'est pas valide500Erreur serveur - Contactez le support AlloBrain

Gestion des Agents dans l'API AlloBrain QM

Points Clés

  1. IMPORTANT: Les agents doivent être créés AVANT d'importer les appels
  2. Les agents sont identifiés par leur email dans le système
  3. L'association agent-appel se fait via l'email de l'agent, pas via des métadonnées

Endpoints API

Création d'un Agent

POST <https://api.qm.allobrain.com/users/invite>

Headers requis

{
    "x-api-key": "votre-api-key",
    "Content-Type": "application/json"
}

Playload

{
    "email": "email.de.lagent@domaine.com",
    "name": "Prénom Nom",
    "role": "agent",
    "send_invite_email": false
}

Réponses possibles

  • 200/201: Agent créé avec succès
  • 409: L'agent existe déjà (peut être considéré comme un succès)
  • 4xx/5xx: Erreur lors de la création

Import d'un Appel avec Agent

POST <https://api.qm.allobrain.com/calls/audio>

Headers requis

{
    "x-api-key": "votre-api-key"
}

Payload (multipart/form-data)

{
    "campaign_id": "id-de-la-campagne",
    "conversation_timestamp": 1234567890,
    "agent_email": "email.de.lagent@domaine.com",  // IMPORTANT: Email de l'agent ici
    "metadata": "[{\\"key\\":\\"direction\\",\\"value\\":\\"in\\"}, ...]"
}

Exemple de code

Python

import requests

# Configuration
API_KEY = "votre-api-key"
API_BASE = "<https://api.qm.allobrain.com>"
AGENT_CREATE_URL = f"{API_BASE}/users/invite"

def create_agent(first_name, last_name, email):
    """Crée un agent dans AlloBrain QM."""
    headers = {
        "x-api-key": API_KEY,
        "Content-Type": "application/json"
    }

    agent_data = {
        "email": email,
        "name": f"{first_name} {last_name}".strip(),
        "role": "agent",
        "send_invite_email": False
    }

    try:
        response = requests.post(AGENT_CREATE_URL, headers=headers, json=agent_data)

        if response.status_code in [200, 201]:
            print(f"Agent créé avec succès: {agent_data['name']} ({email})")
            return True, email
        elif response.status_code == 409:
            print(f"L'agent existe déjà: {email}")
            return True, email
        else:
            print(f"Échec de la création: {response.status_code} - {response.text}")
            return False, email
    except Exception as e:
        print(f"Erreur: {e}")
        return False, email

# Exemple d'utilisation
agent_info = {
    'first_name': 'Jean',
    'last_name': 'Dupont',
    'email': 'jean.dupont@exemple.com'
}

success, agent_email = create_agent(
    agent_info['first_name'],
    agent_info['last_name'],
    agent_info['email']
)

if success:
    print(f"Agent prêt à être utilisé: {agent_email}")
else:
    print("Échec de la création de l'agent")