(Redis) Workflow d’un appel entrant et notifications des agents +superviseurs

Les appels entrants doivent être suivis depuis leur arrivée sur Omni Contact pour améliorer la qualité de service. Dès son arrivée à la première seconde, l’agent et le superviseur seront notifiés de l’arrivé de l’appel pour visibilité et pour se préparer à le traiter. Cela est fait avant tout mécanisme de gestion de file d’attente :
  • Avant la lecture des messages prédécrochés
  • avant le message de mise en attente
Pour cela, Omni Contact utilise le système de traitement temps réels Redis pour stocker les informations de l’appel. Ci-dessous le processus général de traitement :
  1. arrivée de l’appel sur Omni Contact
    1. Ajouter l’identifiant de l’appel dans Redis
      1. créer une entrée avec l’unique identifiant de l’ appel (uniqueid)
      2. créer des champs concernant la campagne
    2. Mettre à jour la campagne sur Redis en se base sur son identifiant (campaign_oid)
      1. Incrémenter le nom d’appel présentés du jour
      2. Incrémenter le nombre d’appel en cours
      3. Incrémenter le nombre d’appel en file d’attente
    3. Envoi de la notification aux agents et superviseurs du nouvel appels en se basant sur l’identifiant de la campagne
  2. Si l’appel est décroché, mettre à jour la campagne dans redis
    1. Décrémenter le nombre d’appel en file d’attente
  3. A la fin de l’appel, notifier les agents et superviseurs
    1. Retirer l’identifiant de l’appel sur Redis si il existe
    2. si l’appel existante sur redis, récupérer l’identifiant de la campagne et envoyer le socket de notification (agents et superviseurs)
    3. dès réception de la notification, mettre à jour
  Structure des données sur Redis:
    { « identifiant_unique_de_lappel »:{ « call »:{ « from »: » », « to »: » », « datetime_start »: » », « datetime_end »: » », « datetime_in_queue »: » », « datetime_out_queue »: » », « direction »: »in », « endreason »: »noanswered » « total_duration »:0, « campaign_oid »: » », « first_agent »: » », « last_agent »: » », « reroute »:{ « action »:no, « duration »:0, « destination »: » », « datetime_start »: » », « datetime_end »: » » } } } } { « campaign_oid »:{ « oid »: » », « customer_key »: » », « campaign_name »: » », « did »: » », « campaign_type »: » », « calls_answered »:40, « calls_waiting »:2, « calls_processing »:3, « calls_total »:45, « current_date »: »2024-11-07″, « last_call_datetime »: »2024-11-07 13:24:05″, « campaign_type »: » » } } { « agent_oid »:{ « agent_oid »: » », « name »: » », « lastname »: » », « first_connection »: » », « last_connection »: » », « status »: » » } }