Comment empêcher des agents de mon centre de contact Amazon Connect d'effectuer des appels sortants vers certains numéros de téléphone ?

Dernière mise à jour : 16-12-2021

Je ne souhaite pas que les agents de mon centre de contact Amazon Connect appellent certains pays ou numéros de téléphone surtaxés. Comment puis-je empêcher ces appels ?

Brève description

Dans un flux de contact de flux discret sortant, appelez une fonction AWS Lambda pour vérifier si un numéro de téléphone composé est autorisé. Si le numéro de téléphone n'est pas autorisé, arrêtez alors le contact à l'aide de l'API StopContact d'Amazon Connect.

Remarque : la solution proposée dans cet article présente les limitations suivantes :

  • Elle ne peut pas bloquer les rappels mis en file d'attente. Lorsqu'un agent lance un rappel, l'ID de contact transmis par le flux discret sortant n'est pas l'ID de contact réel.
  • Elle ne peut pas bloquer les appels si la fonction Lambda ne parvient pas à effectuer des appels. Si la fonction échoue, le contact suit la branche d'erreur du flux de contact et l'appel n'est pas arrêté.
  • Il s'agit d'un simple exemple. Pour votre environnement de production, personnalisez votre configuration en fonction de votre cas d'utilisation et des autorisations de numérotation des agents.

Solution

Créer une fonction Lambda

1.    À l'aide de l'environnement d'exécution de votre choix, créez une fonction Lambda. Intégrez la logique de fonction qui vérifie une demande JSON entrante depuis Amazon Connect pour les éléments suivants :

  • Nom d'utilisateur de l'agent (sous « Attributs »)
  • ID de contact actuel (« ContactId »)
  • Numéro de téléphone composé (sous « CustomerEndpoint »)
  • ID de contact initial (« InitialContactId »)
  • L'Amazon Resource Name (ARN) du centre de contact (« InstanceARN »)

Pour plus d'informations, consultez la liste des attributs de contact disponibles et leur référence JSONPath. Pour obtenir un exemple de requête JSON à une fonction Lambda, consultez la section Appel d'une fonction Lambda à partir d'un flux de contact.

Conseil : ajoutez une logique spécifique au code de votre fonction selon votre cas d'utilisation. Par exemple, vous pouvez vérifier les attributs de contact par rapport à une base de données interne d'autorisations de numérotation d'agent. Pour plus d'informations, consultez Fonctions et attributs Lambda.

2.    Assurez-vous que votre fonction également inclut un appel à l'API StopContact d'Amazon Connect. Dans l'appel d'API, spécifiez les éléments « ContactId » et « InstanceId » des contacts que vous souhaitez arrêter.

Important : vous devez attacher une stratégie AWS Identity and Access Management (IAM) au rôle d'exécution de la fonction avec des autorisations suffisantes pour appeler l'API StopContact. L'exemple de document de stratégie JSON suivant inclut les autorisations de base pour appeler l'API :

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "StopContactPermission",
            "Effect": "Allow",
            "Action": "connect:StopContact",
            "Resource": "*"
        }
    ]
}

Exemple de code de fonction Python (Boto3)

Remarque : cet exemple de code inclut la condition permettant d'identifier le numéro à bloquer. Si ce numéro est un numéro de rappel demandé, la fonction gère l'erreur et la transmission de l'API.

# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: MIT-0

import boto3
from botocore.exceptions import ClientError
connect = boto3.client('connect')

def lambda_handler(event, context):
    response = {
            'phoneNumberBlockerMessage': 'Passing through AmazonConnectPhoneNumberBlocker. No contact is blocked.'
    }

    try:
            if event['Details']['ContactData']['CustomerEndpoint']['Address'] == '<telephone-number-condition>':
                # Stop contact here

                connect.stop_contact(
                    ContactId = event['Details']['ContactData']['InitialContactId'],
                    InstanceId = event['Details']['ContactData']['InstanceARN'].split('/')[1]
                )
                response = {
                    'phoneNumberBlockerMessage': 'Call is blocked.'
                }
    except ClientError as e:
            if e.response['Error']['Code'] == 'ContactNotFoundException':
                response = {
                    'phoneNumberBlockerMessage': 'This is either a callback contact or contact ID does not exist, contact pass through.'
                }
            else:
                # Handle other error
                pass
    return response

Ajouter la fonction Lambda à votre instance

Suivez les instructions de la section Ajouter une fonction Lambda à votre instance Amazon Connect.

Créer un flux discret sortant

Important : pour créer et modifier des flux de contact, vous devez vous connecter à votre instance Amazon Connect en tant qu'utilisateur disposant des autorisations suffisantes dans son profil de sécurité.

1.    Connectez-vous à votre instance Amazon Connect à l'aide de votre URL d'accès (https://alias.awsapps.com/connect/login ou https://alias.awsapps.com/connect/login).
Important : remplacez alias par l'alias de votre instance.

2.    Dans le panneau de navigation gauche, survolez Routage, puis sélectionnez Flux de contact.

3.    Sur la page Flux de contact, sélectionnez l'icône de la flèche en regard de Créer un flux de contact, puis Créer un flux de message discret sortant.

4.    Dans le concepteur de flux de contact, saisissez un nom pour le flux de contact dans le champ Enter a name (Saisir un nom). Par exemple, Outbound whisper (Stop) (Message discret sortant (Arrêter)).

5.    Choisissez Enregistrer.

Pour en savoir plus, consultez Créer un flux de contact.

Ajouter un bloc Définir des attributs de contact

Configurez ce bloc pour obtenir le nom d'utilisateur de l'agent, que vous envoyez à Lambda pour l'analyser.

1.    Dans le concepteur de flux de contacts, développez Définir.

2.    Faites glisser un bloc Définir des attributs de contact sur le canevas.

3.    Choisissez le titre du bloc (Définir des attributs de contact). Le menu des paramètres du bloc s'ouvre.

4.    Sous Attribut à enregistrer, sélectionnez Utiliser l'attribut. Puis, procédez comme suit :
Pour Clé de destination, saisissez un nom de clé. Par exemple, agent_username.
Pour Type, choisissez HTTPS.
Pour Attribut, choisissez Nom d'utilisateur.

5.    Choisissez Enregistrer.

Ajouter un bloc Appeler la fonction AWS Lambda

1.    Dans le concepteur de flux de contact, développez Intégrer.

2.    Faites glisser un bloc Appeler la fonction AWS Lambda sur le canevas.

3.    Sélectionnez le titre du bloc (Appeler une fonction AWS Lambda). Le menu des paramètres du bloc s'ouvre.

4.    Sous ARN de la fonction, choisissez Sélectionner une fonction. Choisissez ensuite la fonction Lambda que vous avez ajoutée à votre instance.

5.    (Facultatif) Pour Délai d'expiration (8 secondes maximum), saisissez le délai d'attente maximale en secondes de la réponse de Lambda par Amazon Connect.

6.    Choisissez Enregistrer.

Pour plus d'informations, consultez la section Appeler une fonction Lambda à partir d'un flux de contact.

Mettre fin au flux de message discret sortant

1.    Ajoutez et connectez d'autres blocs de contact à votre flux de message discret sortant si nécessaire pour votre cas d'utilisation.
Remarque : pour obtenir des exemples de cas d'utilisation, veuillez consulter la section Exemples de flux de contact.

2.    Connectez tous les connecteurs de votre flux de contact à un bloc. Veillez à connecter le nœud Succès du bloc Définir les attributs de contact au bloc Appeler la fonction AWS Lambda. Vous devez utiliser au moins les blocs suivants :
Point d'entrée > Définir les attributs de contact > Appeler la fonction AWS Lambda > Mettre fin au flux / Reprendre

3.    Sélectionnez Enregistrer pour enregistrer une version du flux de contacts.

4.    Choisissez Publier pour activer le flux de contact.

Configurer une file d'attente avec le flux de message discret sortant

Dans le profil de routage auquel vos agents sont affectés, identifiez la file d'attente sortante par défaut. Pour en savoir plus, consultez Créer un profil de routage.

Pour modifier la file d'attente, procédez comme suit :

1.    Dans le panneau de navigation de votre instance Amazon Connect, survolez Routage, puis sélectionnez Files d'attente.

2.    Sur la page Files d'attente, choisissez le nom de la file d'attente que vous avez identifiée comme file d'attente sortante par défaut.

3.    Sur la page Modifier la file d'attente, sélectionnez le flux de message discret sortant que vous avez créé à partir du menu Flux de message discret sortant (facultatif).

4.    Choisissez Enregistrer.