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
- IMPORTANT: Les agents doivent être créés AVANT d'importer les appels
- Les agents sont identifiés par leur email dans le système
- 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ès409
: 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")