Comment configurer dans mon centre de contact Amazon Connect une liste de refus qui permette aux agents d’ajouter des numéros en temps réel ?

Date de la dernière mise à jour : 24/05/2021

Je veux que les agents de mon centre de contact Amazon Connect puissent ajouter des numéros à une liste de refus en temps réel. Je souhaite également pouvoir ajouter des numéros à la liste manuellement. Comment procéder ?

Brève description

Pour autoriser les agents de votre centre de contact Amazon Connect à ajouter des numéros à une liste de refus en temps réel, procédez comme suit :

Remarque : vous pouvez également ajouter des numéros manuellement à la liste de refus en modifiant directement la table DynamoDB.

Solution

Important : veillez à suivre ces étapes dans la région AWS dans laquelle se trouve votre instance Amazon Connect.

Créer une table DynamoDB contenant les numéros refusés

1.    Ouvrez la Console DynamoDB.

2.    Choisissez Créer une table DynamoDB. Puis, procédez comme suit :
Pour Nom de la table, entrez TableListeRefus.
Dans le panneau de Clé de partition, pour Clé primaire, entrez NuméroContact.
Pour le Type de données, choisissez Chaîne.
Sélectionnez Créer.

Remarque : pour plus d'informations, consultez Écrire des données dans un tableau à l'aide de la console ou de AWS CLI.

Créer un rôle IAM qu'une fonction Lambda peut assumer pour rechercher ou ajouter des numéros refusés dans DynamoDB

1.    Utilisez la stratégie JSON suivante pour créer un rôle IAM :

Important : assurez-vous que le rôle AWSLambdaBasicExecutionRole est inclus dans la stratégie avec les autorisations DynamoDB. Si le rôle AWSLambdaBasicExecutionRole n'est pas inclus dans la stratégie, la fonction n'appellera pas.

Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.

Permission is hereby granted, free of charge, to any person obtaining a copy of this
software and associated documentation files (the "Software"), to deal in the Software
without restriction, including without limitation the rights to use, copy, modify,
merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "cloudwatch:GetInsightRuleReport",
            "Resource": "arn:aws:cloudwatch:*:*:insight-rule/DynamoDBContributorInsights*"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "iam:PassedToService": [
                        "application-autoscaling.amazonaws.com",
                        "application-autoscaling.amazonaws.com.cn",
                        "dax.amazonaws.com"
                    ]
                }
            }
        },
        {
            "Sid": "VisualEditor2",
            "Effect": "Allow",
            "Action": "iam:CreateServiceLinkedRole",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:AWSServiceName": [
                        "replication.dynamodb.amazonaws.com",
                        "dax.amazonaws.com",
                        "dynamodb.application-autoscaling.amazonaws.com",
                        "contributorinsights.dynamodb.amazonaws.com",
                        "kinesisreplication.dynamodb.amazonaws.com"
                    ]
                }
            }
        },
        {
            "Sid": "VisualEditor3",
            "Effect": "Allow",
            "Action": [
                "lambda:CreateFunction",
                "cloudwatch:DeleteAlarms",
                "sns:Unsubscribe",
                "dynamodb:*",
                "lambda:GetFunctionConfiguration",
                "datapipeline:CreatePipeline",
                "kinesis:ListStreams",
                "logs:CreateLogStream",
                "kinesis:DescribeStreamSummary",
                "resource-groups:GetGroup",
                "cloudwatch:DescribeAlarmsForMetric",
                "lambda:DeleteFunction",
                "sns:Subscribe",
                "iam:GetRole",
                "application-autoscaling:RegisterScalableTarget",
                "sns:ListSubscriptionsByTopic",
                "datapipeline:ListPipelines",
                "dax:*",
                "lambda:ListFunctions",
                "sns:CreateTopic",
                "application-autoscaling:DeleteScalingPolicy",
                "cloudwatch:GetMetricStatistics",
                "logs:CreateLogGroup",
                "resource-groups:CreateGroup",
                "application-autoscaling:DescribeScalingPolicies",
                "lambda:ListEventSourceMappings",
                "application-autoscaling:PutScalingPolicy",
                "cloudwatch:DescribeAlarms",
                "resource-groups:ListGroupResources",
                "ec2:DescribeSubnets",
                "lambda:DeleteEventSourceMapping",
                "datapipeline:ActivatePipeline",
                "resource-groups:GetGroupQuery",
                "tag:GetResources",
                "sns:DeleteTopic",
                "cloudwatch:GetMetricData",
                "sns:ListTopics",
                "sns:SetTopicAttributes",
                "lambda:CreateEventSourceMapping",
                "datapipeline:DescribePipelines",
                "cloudwatch:ListMetrics",
                "cloudwatch:DescribeAlarmHistory",
                "application-autoscaling:DescribeScalingActivities",
                "kms:DescribeKey",
                "datapipeline:PutPipelineDefinition",
                "application-autoscaling:DescribeScalableTargets",
                "datapipeline:QueryObjects",
                "iam:ListRoles",
                "datapipeline:DescribeObjects",
                "kinesis:DescribeStream",
                "sns:ListSubscriptions",
                "resource-groups:ListGroups",
                "datapipeline:GetPipelineDefinition",
                "logs:PutLogEvents",
                "ec2:DescribeSecurityGroups",
                "resource-groups:DeleteGroup",
                "cloudwatch:PutMetricAlarm",
                "ec2:DescribeVpcs",
                "kms:ListAliases",
                "datapipeline:DeletePipeline",
                "application-autoscaling:DeregisterScalableTarget"
            ],
            "Resource": "*"
        }
    ]
}
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.

Permission is hereby granted, free of charge, to any person obtaining a copy of this
software and associated documentation files (the "Software"), to deal in the Software
without restriction, including without limitation the rights to use, copy, modify,
merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "lambda:*",
                "dynamodb:*"
            ],
            "Resource": "*"
        }
    ]
}

Créer une fonction Lambda (fonction A) qui stocke les numéros refusés dans la table DynamoDB

Utilisez le code Python suivant pour créer une fonction Lambda et attachez le rôle créé précédemment :

Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.

Permission is hereby granted, free of charge, to any person obtaining a copy of this
software and associated documentation files (the "Software"), to deal in the Software
without restriction, including without limitation the rights to use, copy, modify,
merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

import json
import boto3 

client = boto3.client('dynamodb')

def lambda_handler(event, context):
    response = client.put_item(
    TableName='DenylistingTable',
    Item={
        'ContactNumber':{
            'S':event['Details']['ContactData']['CustomerEndpoint']['Address']
        }
    }
    )
    
    return{'Success':True}

Créer une deuxième fonction Lambda (fonction B) qui interroge la table DynamoDB pour vérifier si un appel entrant provient d'un numéro de la liste de refus

Utilisez le code Python suivant pour créer une deuxième fonction Lambda et attachez le rôle créé précédemment :

Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.

Permission is hereby granted, free of charge, to any person obtaining a copy of this
software and associated documentation files (the "Software"), to deal in the Software
without restriction, including without limitation the rights to use, copy, modify,
merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

import json
import boto3 

client = boto3.client('dynamodb')

def lambda_handler(event, context):
    
    response = client.query(
        TableName="DenylistingTable",
        Select= 'ALL_ATTRIBUTES',
        KeyConditionExpression='ContactNumber = :ConNum',
        ExpressionAttributeValues={":ConNum":{
            "S": event['Details']['ContactData']['CustomerEndpoint']['Address']
        }}
        )
    if (len(response['Items']) == 0):
        return {'Success':'false'}
    else:
        return {'Success':'true'}

Ajoutez les fonctions Lambda (fonctions A et B) à votre instance Amazon Connect

1.    Ouvrez la console Amazon Connect.

2.    Dans la colonne Instance Alias, sélectionnez le nom de votre instance Amazon Connect.

3.    Dans le panneau de navigation de gauche, sélectionnez Flux de contact.

4.    Dans la section AWS Lambda, sélectionnez la liste déroulante Fonction. Choisissez ensuite le nom de la fonction A.
Remarque : La liste déroulante Fonction ne répertorie que les fonctions qui se trouvent dans la même région AWS que votre instance Amazon Connect. Si aucune fonction n'est répertoriée, sélectionnez Créer une fonction Lambda pour créer une fonction dans la région appropriée.

5.    Sélectionnez Ajouter une fonction Lambda. Ensuite, vérifiez que l'Amazon Resource Name (ARN) de la fonction est ajouté sous Fonctions Lambda.

6.    Ajoutez la fonction B à votre instance Amazon Connect en répétant les étapes 1 à 5. Pour l'étape 4, veillez à choisir le nom de la fonction B.

Pour plus d'informations, consultez Appeler des fonctions AWS Lambda.

Créer un flux de contacts entrants

Créez un flux de contacts entrants associé à un numéro demandé. Après avoir choisi Créer un flux de contacts, le concepteur de flux de contacts s'ouvre.

Dans le concepteur de flux de contacts, procédez comme suit :

Remarque : voici un exemple de flux de contacts entrant de base. Vous pouvez ajouter ou modifier des blocs pour votre cas d'utilisation.

Ajouter un bloc Définir un comportement de journalisation

Important : si vous ne l'avez pas encore fait, activez la journalisation des flux de contacts pour votre instance.

Pour activer les journaux des flux de contacts Amazon Connect CloudWatch Logs, utilisez un bloc Définir un comportement de journalisation.

1.    Sélectionnez Définir.

2.    Faites glisser et déposez un bloc Définir un comportement de journalisation sur le canevas à droite du bloc Point d'entrée.

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

4.    Sélectionnez Activer.

Ajouter un bloc Appeler la fonction AWS Lambda

Pour appeler la fonction B et vérifier si un appel entrant provient d'un numéro de la liste de refus, utilisez un bloc Appeler la fonction AWS Lambda.

1.    Sélectionnez Intégrer.

2.    Faites glisser et déposez un bloc Appeler la fonction AWS Lambda sur le canevas à droite du bloc Définir un comportement de journalisation.

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

4.    Choisissez le nom de la fonction B.

5.    Choisissez Enregistrer.

Ajouter un bloc Vérifier les attributs de contact

Pour vérifier si le numéro a été ajouté ou non à la liste de refus, utilisez un bloc Vérifier les attributs de contact.

1.    Sélectionnez Branche.

2.    Faites glisser et déposez un bloc Vérifier les attributs de contact sur le canevas à droite du bloc Appeler la fonction AWS Lambda.

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

4.    Pour Type, choisissez Externe.

5.    Pour Attribut, choisissez Succès.

6.    Choisissez Ajouter un autre paramètre deux fois pour créer deux paramètres.

7.    Sous Conditions à vérifier, choisissez Égal pour les deux paramètres. Ensuite, pour la valeur du premier paramètre, entrez true. Pour la valeur du seconde, entrez false.

8.    Choisissez Enregistrer.

Ajouter un bloc Lire l'invite

Pour lire une invite qui informe les agents lorsqu'une erreur de demande de liste de refus se produit, utilisez un bloc Lire l'invite.

1. Sélectionnez Interagir.

2.    Faites glisser et déposez un bloc Lire l'invite sur le canevas à droite du bloc Appeler la fonction AWS Lambda. Connectez ensuite le bloc Lire l'invite à la sortie Erreur du bloc Appeler la fonction AWS Lambda.

3.    Choisissez le titre du bloc (Lire l'invite). Le menu des paramètres du bloc s'ouvre.

4.    Pour Invites, sélectionnez Synthèse vocale. Choisissez ensuite l'une des options suivantes :
Entrer du texte vous permet de lire du texte comme un message audio réaliste.
-ou-
Entrer dynamiquement vous permet de télécharger des fichiers .wav pour lire un message audio enregistré.

5.    Choisissez Enregistrer.

Ajouter un bloc Transférer vers la file d'attente

Pour mettre fin au flux de contacts et transférer l'appel vers votre flux de file d'attente client habituel, utilisez un bloc Transférer vers la file d'attente.

1.    Sélectionnez Terminer/Transférer.

2.    Faites glisser et déposez un bloc Transférer vers la file d'attente sur le canevas à droite du bloc Lire l’invite.

Remarque : dans ce cas d’utilisation, aucun paramètre ne doit être configuré pour le bloc Transférer vers la file d'attente.

Ajoutez un bloc Déconnecter

Pour déconnecter un appelant du flux de contacts si l'appel entrant provient d'un numéro figurant sur la liste de refus, ajoutez un bloc Déconnecter.

1.    Sélectionnez Terminer/Transférer.

2.    Faites glisser et déposez un bloc Déconnecter sur le canevas à droite du bloc Transférer vers la file d'attente.

Remarque : dans ce cas d’utilisation, aucun paramètre ne doit être configuré pour le bloc Déconnecter.

Activer le flux de contact

1.    Pour enregistrer une version du flux, choisissez Enregistrer.

2.    Pour activer le flux, choisissez Publier.

Créer un flux Transfert vers la file d'attente qui permet aux agents d'ajouter des numéros à la liste de refus en temps réel

Créez un flux Transférer vers la file d'attente. Après avoir choisi Créer un flux de contacts, le concepteur de flux de contacts s'ouvre.

Dans le concepteur de flux de contacts, procédez comme suit :

Ajouter un bloc Lire l'invite

Pour informer les agents qu'un numéro est en cours d'ajout à la liste de refus, utilisez un bloc Lire l’invite.

1.    Sélectionnez Interagir.

2.    Faites glisser et déposez un bloc Lire l’invite sur le canevas à droite du bloc Point d'entrée.

3.    Choisissez le titre du bloc (Lire l'invite). Le menu des paramètres du bloc s'ouvre.

4.    Pour Invites, sélectionnez Synthèse vocale. Ensuite, choisissez Enter du texte ou Entrer dynamiquement pour créer un message audio.

5.    Choisissez Enregistrer.

Ajouter un bloc Appeler la fonction AWS Lambda

Pour appeler la fonction A lorsqu'un agent ajoute un numéro à la liste de refus à l'aide du CCP, utilisez un bloc Appeler la fonction AWS Lambda.

1.    Sélectionnez Intégrer.

2.    Faites glisser et déposez un bloc Appeler la fonction AWS Lambda sur le canevas à droite du bloc Lire l'invite.

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

4.    Choisissez le nom de la fonction A.

5.    Dans la section Paramètres d’entrée de la fonction, choisissez Ajouter un paramètre, puis Utiliser l'attribut. Ensuite, procédez comme suit : Pour Clé de destination, entrez NuméroClient. Pour Type, choisissez Système. Pour Attribut, choisissez Numéro de client.

6.    Choisissez Enregistrer.

Ajouter un deuxième bloc Lire l'invite

Pour informer les agents qu'un numéro a été ajouté à la liste de refus, utilisez un deuxième bloc Lire l’invite.

1.    Sélectionnez Interagir.

2.    Faites glisser et déposez un bloc Lire l'invite sur le canevas à droite du bloc Appeler la fonction AWS Lambda. Connectez ensuite le bloc Lire l'invite à la sortie Succès du bloc Appeler la fonction AWS Lambda.

3.    Choisissez le titre du bloc (Lire l'invite). Le menu des paramètres du bloc s'ouvre.

4.    Pour Invites, sélectionnez Synthèse vocale. Ensuite, choisissez Enter du texte ou Entrer dynamiquement pour créer un message audio.

5.    Choisissez Enregistrer.

Ajouter un troisième bloc Lire l'invite

Pour informer les agents qu'un numéro n’a pas été ajouté à la liste de refus en raison d’une erreur, utilisez un troisième bloc Lire l’invite.

1.    Sélectionnez Interagir.

2.    Faites glisser et déposez un bloc Lire l'invite sur le canevas à droite du bloc Appeler la fonction AWS Lambda. Connectez ensuite le bloc Lire l'invite à la sortie Erreur du bloc Appeler la fonction AWS Lambda.

3.    Choisissez le titre du bloc (Lire l'invite). Le menu des paramètres du bloc s'ouvre.

4.    Pour Invites, sélectionnez Synthèse vocale. Ensuite, choisissez Enter du texte ou Entrer dynamiquement pour créer un message audio.

5.    Choisissez Enregistrer.

Ajoutez un bloc Déconnecter

Pour déconnecter les agents du flux de contact, ajoutez un bloc Déconnecter.

1.    Sélectionnez Terminer/Transférer.

2.    Faites glisser et déposez un bloc Déconnecter sur le canevas à droite du bloc Lire l’invite.

3.    Connectez toutes les branches du flux au bloc Déconnecter.

Remarque : dans ce cas d’utilisation, aucun paramètre ne doit être configuré pour le bloc Déconnecter.

Activer le flux Transférer vers la file d'attente

1.    Pour enregistrer une version du flux, choisissez Enregistrer.

2.    Pour activer le flux, choisissez Publier.

Créer une connexion rapide qui permet aux agents d'ajouter des numéros à la liste de refus à l'aide du CCP

1.    Créez une connexion rapide à l'aide de la console Amazon Connect avec les paramètres suivants :
Pour Nom, entrez un nom pour la connexion rapide. Par exemple : Liste de refus.
Pour Type, sélectionnez File d'attente.
Pour Destination, entrez le nom de la file d'attente pour laquelle vous souhaitez disposer de la fonctionnalité de liste de refus.

2.     Ajoutez la connexion rapide aux files d'attente assignées aux agents auxquels vous souhaitez donner accès à la fonction de liste de refus.

Maintenant, lorsqu'un agent est en appel, il peut utiliser la connexion rapide de la liste de refus dans le CCP pour ajouter le numéro à la liste de refus. Lors du prochain appel de ce numéro à votre centre de contact Amazon Connect, l'appel sera automatiquement déconnecté sans être placé dans une file d'attente.


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?