Configuration générale
La configuration du middleware s'effectue dans le menu Connecteur CRM > Paramètres.

Les fonctionnalités s'activent en deux étapes :
- Activer la fonctionnalité au niveau général — basculer l'interrupteur de la fonctionnalité souhaitée (Interrogation de contact, Journal des appels, Enrichissement des données d'appels)
- Sélectionner les intégrations — sous chaque fonctionnalité activée, cocher les intégrations auxquelles l'appliquer
Fonctionnalités disponibles :
- Interrogation de contact — remontée de fiche : identification du contact appelant dans votre CRM sur les appels entrants et sortants
- Journal des appels — consignation automatique des appels dans votre CRM
- Enrichissement des données d'appels — récupération de données supplémentaires depuis le PBX (nécessite une association PBX) : ligne directe composée, segments d'appels, enregistrements audio, etc. Requis pour les services IA.
- Modèle 3CX — téléchargement du modèle de connecteur CRM 3CX
Priorité d'interrogation des contacts
Lorsque l'interrogation de contact est activée pour plusieurs intégrations ou tables CRM, CX-Engine les interroge dans l'ordre défini. La première intégration à retourner un résultat est utilisée ; les intégrations suivantes ne sont pas interrogées.
L'ordre d'interrogation se configure par intégration dans ses paramètres Configurer (voir Spécificités des intégrations ci-dessous). Au sein de chaque intégration, vous pouvez ajouter et réordonner les tables CRM à interroger.
Si aucune correspondance n'est trouvée parmi tous les lookups configurés, l'appel est traité sans données de contact.
Champs disponibles
CX-Engine expose un ensemble de champs prédéfinis pour chaque domaine de données. Ces champs sont utilisés lors de la configuration des mappings de journalisation d'appels, des règles de filtrage pour les URL de contact dynamiques et des règles d'interrogation.
Les champs marqués Nécessite PBX ne sont renseignés que lorsque l'enrichissement des données d'appels est activé.
Champs Contact
| Nom du champ | Libellé | Type | Filtrable |
|---|---|---|---|
id |
ID | Texte | Oui |
civility |
Civilité | Texte | Oui |
first_name |
Prénom | Texte | Oui |
last_name |
Nom | Texte | Oui |
email |
Texte | Oui | |
company |
Entreprise | Texte | Oui |
website |
Site web | Texte | Oui |
phone_business_1 |
Téléphone pro 1 | Texte | Oui |
phone_business_2 |
Téléphone pro 2 | Texte | Oui |
phone_mobile_1 |
Téléphone mobile 1 | Texte | Oui |
phone_mobile_2 |
Téléphone mobile 2 | Texte | Oui |
custom_value |
Valeur personnalisée | Texte | Oui |
entity_url |
URL de la fiche | Texte | Oui |
Champs Appel
Identifiants
| Nom du champ | Libellé | Type | Filtrable | Nécessite PBX |
|---|---|---|---|---|
call_id |
ID appel (CX-Engine) | Texte | Non | Non |
segment_id |
ID segment d'appel (CX-Engine) | Texte | Non | Non |
crm_call_id |
ID appel (CRM) | Texte | Non | Non |
Données 3CX
| Nom du champ | Libellé | Type | Filtrable | Nécessite PBX |
|---|---|---|---|---|
subject |
Sujet de l'appel 3CX | Texte | Non | Non |
body |
Corps de l'appel 3CX | Texte | Non | Non |
Direction & Statut
| Nom du champ | Libellé | Type | Filtrable | Nécessite PBX |
|---|---|---|---|---|
direction |
Direction de l'appel | Texte | Non | Non |
direction_raw |
Direction de l'appel (brut) | Texte | Oui | Non |
description |
Description de l'appel | Texte | Non | Non |
status |
Statut | Texte | Non | Non |
status_raw |
Statut (brut) | Texte | Oui | Non |
answered |
Décroché (textuel) | Texte | Non | Non |
answered_boolean |
Décroché (booléen) | Booléen | Oui | Non |
not_answered_boolean |
Non décroché (booléen) | Booléen | Non | Non |
Numéros de téléphone
| Nom du champ | Libellé | Type | Filtrable | Nécessite PBX |
|---|---|---|---|---|
number_from |
Numéro appelant | Texte | Oui | Non |
number_to |
Numéro appelé | Texte | Oui | Non |
number_contact |
Numéro du contact | Texte | Oui | Non |
number_did |
Numéro DID | Texte | Oui | Non |
Durée
| Nom du champ | Libellé | Type | Filtrable | Nécessite PBX |
|---|---|---|---|---|
duration |
Durée (secondes) | Nombre | Oui | Non |
duration_formatted |
Durée (H:m:s) | Texte | Non | Non |
duration_agent |
Durée avec un agent (secondes) | Nombre | Oui | Oui |
duration_agent_formatted |
Durée avec un agent (H:m:s) | Texte | Non | Oui |
duration_queue |
Durée en file d'attente (secondes) | Nombre | Oui | Oui |
duration_queue_formatted |
Durée en file d'attente (H:m:s) | Texte | Non | Oui |
duration_callflow |
Durée en call-flow (secondes) | Nombre | Oui | Oui |
duration_callflow_formatted |
Durée en call-flow (H:m:s) | Texte | Non | Oui |
duration_ivr |
Durée en SVI (secondes) | Nombre | Oui | Oui |
duration_ivr_formatted |
Durée en SVI (H:m:s) | Texte | Non | Oui |
Horodatages
| Nom du champ | Libellé | Type | Filtrable | Nécessite PBX |
|---|---|---|---|---|
start_time |
Heure de début | DateTime | Oui | Non |
end_time |
Heure de fin | DateTime | Oui | Non |
start_time_formatted |
Heure de début (affichage) | Texte | Non | Non |
end_time_formatted |
Heure de fin (affichage) | Texte | Non | Non |
start_time_hour |
Heure de début (heure uniquement) | Heure | Oui | Non |
end_time_hour |
Heure de fin (heure uniquement) | Heure | Oui | Non |
Agent
| Nom du champ | Libellé | Type | Filtrable | Nécessite PBX |
|---|---|---|---|---|
agent_first_name |
Prénom de l'agent | Texte | Oui | Non |
agent_last_name |
Nom de l'agent | Texte | Oui | Non |
agent_full_name |
Nom complet de l'agent | Texte | Oui | Non |
agent_email |
E-mail de l'agent | Texte | Oui | Non |
agent_extension |
Extension ayant répondu | Nombre | Oui | Non |
agent_extension_array |
Extension ayant répondu (tableau) | Texte | Non | Non |
Extensions (PBX)
| Nom du champ | Libellé | Type | Filtrable | Nécessite PBX |
|---|---|---|---|---|
extension_agent |
Extension agent | Texte | Non | Oui |
extension_callqueue |
Extension file d'attente | Texte | Non | Oui |
extension_callflow |
Extension call-flow | Texte | Non | Oui |
extension_ivr |
Extension SVI | Texte | Non | Oui |
extension_voicemail |
Extension messagerie | Texte | Non | Oui |
IA & Transcription
| Nom du champ | Libellé | Type | Filtrable | Nécessite PBX |
|---|---|---|---|---|
transcription |
Transcription (brut) | Texte | Non | Oui |
summary |
Résumé (court) | Texte | Non | Oui |
summary_detailed |
Résumé (détaillé) | Texte | Non | Oui |
sentiments_label_raw |
Label sentiment (brut) | Texte | Non | Oui |
sentiments_label |
Label sentiment (affichage) | Texte | Non | Oui |
sentiments_score_average |
Score sentiment (moyen) | Nombre | Non | Oui |
sentiments_nets_score |
Score net de sentiment | Nombre | Non | Oui |
sentiments_evolution_raw |
Évolution du sentiment (brut) | Texte | Non | Oui |
sentiments_evolution |
Évolution du sentiment (affichage) | Texte | Non | Oui |
sentiments_array |
Sentiments (tableau) | Texte | Non | Oui |
reason_for_call |
Motif de l'appel | Texte | Non | Oui |
reason_for_frustration |
Motif de frustration | Texte | Non | Oui |
topics_string |
Thèmes (séparés par virgule) | Texte | Non | Oui |
topics_array |
Thèmes (tableau) | Texte | Non | Oui |
subjects_string |
Sujets (séparés par virgule) | Texte | Non | Oui |
subjects_array |
Sujets (tableau) | Texte | Non | Oui |
kpi_fcr |
Résolution au premier appel (booléen) | Booléen | Non | Oui |
audit_grid |
Grille d'audit (JSON) | Texte | Non | Oui |
audit_score |
Score d'audit | Nombre | Non | Oui |
Enregistrements
| Nom du champ | Libellé | Type | Filtrable | Nécessite PBX |
|---|---|---|---|---|
recording_urls |
URLs d'enregistrement (tableau) | Texte | Non | Oui |
recording_urls_string |
URLs d'enregistrement (séparées par virgule) | Texte | Non | Oui |
transcript_urls |
URLs de transcription (tableau) | Texte | Non | Oui |
transcript_urls_string |
URLs de transcription (séparées par virgule) | Texte | Non | Oui |
Segments
| Nom du champ | Libellé | Type | Filtrable | Nécessite PBX |
|---|---|---|---|---|
segments_formatted |
Segments formatés (tableau) | Texte | Non | Oui |
segments_formatted_string |
Segments formatés | Texte | Oui | Oui |
Utilisateur
| Nom du champ | Libellé | Type | Filtrable | Nécessite PBX |
|---|---|---|---|---|
user.id |
ID utilisateur | Texte | Non | Non |
user.email |
E-mail utilisateur | Texte | Non | Non |
Champs Chat
| Nom du champ | Libellé | Type | Filtrable | Nécessite PBX |
|---|---|---|---|---|
chat_id |
ID chat (CX-Engine) | Texte | Non | Non |
crm_chat_id |
ID chat (CRM) | Texte | Non | Non |
subject |
Sujet du chat 3CX | Texte | Non | Non |
chat_messages |
Messages du chat | Texte | Non | Non |
number_external |
Numéro du contact | Texte | Oui | Non |
duration |
Durée (secondes) | Nombre | Oui | Non |
duration_formatted |
Durée (H:m:s) | Texte | Non | Non |
start_time |
Heure de début | DateTime | Oui | Non |
end_time |
Heure de fin | DateTime | Oui | Non |
start_time_formatted |
Heure de début (affichage) | Texte | Non | Non |
end_time_formatted |
Heure de fin (affichage) | Texte | Non | Non |
start_time_hour |
Heure de début (heure uniquement) | Heure | Oui | Non |
end_time_hour |
Heure de fin (heure uniquement) | Heure | Oui | Non |
agent_first_name |
Prénom de l'agent | Texte | Oui | Non |
agent_last_name |
Nom de l'agent | Texte | Oui | Non |
agent_full_name |
Nom complet de l'agent | Texte | Oui | Non |
agent_email |
E-mail de l'agent | Texte | Oui | Non |
agent_extension |
Extension ayant répondu | Nombre | Oui | Non |
agent_extension_array |
Extension ayant répondu (tableau) | Texte | Non | Non |
extension_agent |
Extension agent | Texte | Non | Oui |
extension_callqueue |
Extension file d'attente | Texte | Non | Oui |
user.id |
ID utilisateur | Texte | Non | Non |
user.email |
E-mail utilisateur | Texte | Non | Non |
Jetons de contexte d'appel
Les jetons de contexte d'appel sont utilisés pour enrichir les données relatives à un appel avant que celui-ci ne se termine. Par exmeple, vous pourriez vouloir préciser que l'appel se réfère à un ticket de support dans votre système d'information. Les contextes sont libres et peuvent être récupérés lors de la reception de l'appel au CRM.
Pour créer un token de contexte d'appel :
- Naviguer vers la section Tokens de contexte d'appel dans les paramètres du Connecteur CRM
- Cliquer sur Nouveau token
- Saisir un nom descriptif (ex. : « 3CX Production »)
- Copier le l'URL du webhook généré pour l'utiliser
URL de contact dynamique
Une URL de contact dynamique est un modèle d'URL configurable que CX-Engine résout à la réception d'un appel, permettant d'ouvrir une page spécifique — fiche CRM, outil interne, etc. — dans le navigateur de l'agent sous forme de remontée de fiche.
Le modèle d'URL supporte deux variables dynamiques remplacées au moment de l'appel :
{phone}— le numéro de téléphone de l'appelant{display_name}— le nom d'affichage de l'appelant (tel que reçu depuis le PBX)
Règles de filtrage
Vous pouvez définir des règles de filtrage afin que l'URL ne soit générée que lorsque certaines conditions sont remplies. Plusieurs règles peuvent être combinées avec une logique ET ou OU. Champs de filtrage disponibles :
| Champ | Libellé | Type |
|---|---|---|
phone |
Téléphone | Texte |
display_name |
Nom d'affichage | Texte |
phone_length |
Longueur du numéro | Nombre |
display_name_length |
Longueur du nom d'affichage | Nombre |
Créer une URL de contact dynamique
- Naviguer vers la section URLs de contact dynamiques dans les paramètres du Connecteur CRM
- Cliquer sur Nouvelle URL
- Saisir un nom et le modèle d'URL (ex. :
https://moncrm.com/contacts?phone={phone}) - Ajouter optionnellement des règles de filtrage pour restreindre le déclenchement
- Copier l'URL de destination générée et la configurer dans le connecteur CRM 3CX comme URL de remontée de fiche
Lorsque 3CX appelle l'URL de destination, CX-Engine évalue les règles de filtrage, substitue les variables et redirige le navigateur vers l'URL finale.
Spécificités des intégrations
Pour accéder à la configuration spécifique d'une intégration connectée, aller dans Connecteur CRM > Paramètres et cliquer sur le bouton Configurer de l'intégration souhaitée.
Les paramètres spécifiques aux intégrations permettent notamment de :
- Choisir la variation de l'intégration (ex. : Dynamics 365 Business Central vs Dynamics 365 Sales)
- Configurer l'ordre d'interrogation des tables CRM
- Définir des règles de correspondance personnalisées entre les champs téléphoniques et les champs CRM