Comment définir dynamiquement mon ID de mandataire sortant Amazon Connect en fonction du pays ?

Date de la dernière mise à jour : 25/03/2020

Je souhaite que mon ID de mandataire sortant Amazon Connect change dynamiquement en fonction du pays du destinataire de l'appel. Comment configurer cela ?

Brève description

Procédez comme suit :

  • Créez une liste d'ID de mandataire au format JSON, puis chargez-la dans un compartiment Amazon Simple Storage Service (Amazon S3).
  • Créez une fonction AWS Lambda qui identifie le code pays du contact sortant et sélectionne un numéro de téléphone d'ID de mandataire correspondant dans la liste JSON de votre compartiment S3.
  • Ajoutez la fonction AWS Lambda à votre instance de centre de contact Amazon Connect.
  • Configurez votre flux de contacts Amazon Connect pour appeler la fonction AWS Lambda.

Remarque : vous pouvez personnaliser cette solution en fonction de vos besoins et de votre cas d'utilisation. Par exemple, vous pouvez stocker votre liste d'ID de mandataire dans une table Amazon DynamoDB au lieu d'un compartiment S3, puis reconfigurer la fonction Lambda et le rôle d'exécution en conséquence.

Solution

Créer la liste d'ID de mandataire

Créez un fichier JSON qui contient une liste basée sur le pays des numéros de téléphone que vous souhaitez utiliser pour l'ID de mandataire sortant. Le contenu du fichier doit être formaté comme dans cet exemple :

Remarque : pour cet exemple, les codes pays figurant dans votre liste doivent suivre la norme ISO 3166-1 alpha-2, et les numéros de téléphone doivent suivre la norme E.164. Pour plus d'informations, consultez ISO 3166 - COUNTRY CODES sur le site Web ISO et E.164 : The international public telecommunication numbering plan sur le site Web de l'ITU.

{
    "US": "+12345678901",
    "GB": "+441234567890",
    "Default": "+19876543210"
}

Dans cet exemple, lorsque vous appelez un client qui possède un numéro de téléphone aux États-Unis, Amazon Connect utilise +12345678901 pour l'ID de mandataire sortant. Lorsque vous appelez un client qui dispose d'un numéro de téléphone au Royaume-Uni, Amazon Connect utilise +441234567890 à la place. Lorsque vous appelez un client dans un pays qui n'est pas répertorié dans le fichier JSON, Amazon Connect utilise +19876543210.

Votre numéro de téléphone d'ID de mandataire sortant n'a pas besoin d'être du pays que vous appelez. Par exemple, si vous êtes une entreprise basée aux États-Unis et que vous souhaitez utiliser un numéro de téléphone d'ID de mandataire basé au Royaume-Uni lorsque vous appelez des pays en Europe occidentale, vous pouvez procéder comme suit :

{
    "GB": "+441234567890",
    "FR": "+441234567890",
    "DE": "+441234567890",
    "IE": "+441234567890",
    "Default": "+19876543210"
}

Dans cet exemple, lorsque vous appelez des clients qui ont des numéros de téléphone au Royaume-Uni, en France, en Allemagne ou en Irlande, Amazon Connect utilise +441234567890 comme ID de mandataire sortant. Pour le reste du monde, Amazon Connect utilise +19876543210 à la place.

Remarque : pendant le routage des appels, si la fonction Lambda ne parvient pas à appeler pour une quelconque raison, Amazon Connect utilise à la place le numéro de téléphone sortant par défaut de la file d'attente pour l'ID de mandataire. Il s'agit du numéro défini dans les paramètres de file d'attente de votre instance Amazon Connect. Pour plus d'informations, consultez Configuration de l'ID de mandataire sortant.

Charger la liste des ID de mandataire dans un compartiment S3

Une fois que vous avez créé le fichier JSON de liste d'ID de mandataire, chargez-le dans un compartiment S3.

Créer un rôle d'exécution Lambda

Le rôle d'exécution de votre fonction Lambda doit disposer d'un accès en lecture Amazon S3 pour lire l'objet JSON que vous avez chargé dans un compartiment S3. Vous pouvez créer un rôle d'exécution dans la console AWS Identity and Access Management (IAM), puis attacher la politique gérée AWS AmazonS3ReadOnlyAccess au rôle.

Conseil : vous pouvez limiter l'accès du rôle d'exécution à un compartiment S3 en créant votre propre politique IAM. Pour obtenir un exemple de politique, consultez Amazon S3 : autorise l'accès en lecture et en écriture aux objets d'un compartiment S3.

Créer une fonction Lambda

Créez une fonction Lambda à l'aide du rôle d'exécution que vous avez créé à l'étape précédente. Dans le code de votre fonction, incluez une logique qui vérifie une demande JSON entrante à partir d'Amazon Connect. Pour plus d'informations, consultez Procédure de référencement des attributs de contact et l'exemple de demande JSON suivant à une fonction Lambda:

{
    "Details": {
        "ContactData": {
            "Attributes": {},
            "Channel": "VOICE",
            "ContactId": "4a573372-1f28-4e26-b97b-XXXXXXXXXXX",
            "CustomerEndpoint": {
                "Address": "+1234567890",
                "Type": "TELEPHONE_NUMBER"
            },
            "InitialContactId": "4a573372-1f28-4e26-b97b-XXXXXXXXXXX",
            "InitiationMethod": "INBOUND | OUTBOUND | TRANSFER | CALLBACK",
            "InstanceARN": "arn:aws:connect:aws-region:1234567890:instance/c8c0e68d-2200-4265-82c0-XXXXXXXXXX",
            "PreviousContactId": "4a573372-1f28-4e26-b97b-XXXXXXXXXX",
            "Queue": "QueueName",
            "SystemEndpoint": {
                "Address": "+1234567890",
                "Type": "TELEPHONE_NUMBER"
            }
        },
        "Parameters": {
            "sentAttributeKey": "sentAttributeValue"
        }
    },
    "Name": "ContactFlowEvent"
}

Par exemple, vous pouvez utiliser la fonction Python de DynamicOutboundCallerID sur le référentiel GitHub aws-support-tools. Le code de la fonction fonctionne avec l'environnement d'exécution Python 3.6 (ou version ultérieure) et est fourni en l'état.

Si vous utilisez l'exemple de code de fonction, vous devez définir les variables d'environnement suivantes dans votre fonction :

  • BUCKET_NAME : nom du compartiment S3 dans lequel l'objet JSON est stocké.
  • COUNTRY_ROUTING_LIST_KEY : clé du fichier JSON stocké dans le compartiment S3.

Par exemple, si l'objet JSON est stocké dans s3://hello/world/list.json, BUCKET_NAME est "hello" et COUNTRY_ROUTING_LIST_KEY, "world/list.json".

Créer un package de déploiement

L'exemple de fonction Python de DynamicOutboundCallerID utilise la bibliothèque Python phonenumbers. Pour plus d'informations, consultez phonenumbers sur le site Web Python Package Index (PyPI).

Pour inclure une bibliothèque tierce dans votre fonction, vous devez créer un package de déploiement. Vous pouvez créer le package de déploiement en exécutant les commandes suivantes dans le dossier qui contient lambda_function.py :

Remarque : ces commandes sont valides uniquement pour les systèmes Linux/Unix/macOS.

$ pip install phonenumbers --target ./
$ zip -r9 function.zip ./

Pour plus d'informations, consultez Package de déploiement AWS Lambda dans Python.

Ajouter la fonction Lambda à votre instance

Dans la console Amazon Connect, ajoutez votre fonction Lambda à votre instance de centre de contact.

Créer un flux de message discret sortant

Si vous ne l'avez pas déjà fait, créez un flux de contacts de message discret sortant.

Important : pour créer un flux de contacts, 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 avec votre URL d'accès (https://alias.awsapps.com/connect/login).
    Remarque : remplacez alias par l'alias de votre instance.
  2. Dans la barre de navigation de gauche, maintenez le curseur sur Routage, puis sélectionnez Flux de contacts.
  3. Sur la page Flux de contacts en regard du bouton Créer un flux de contacts, choisissez la flèche vers le bas, puis Créer un flux de file d'attente client.
  4. Dans le concepteur de flux de contacts, pour Saisir un nom, saisissez le nom du flux de contacts.
  5. Choisissez Enregistrer.

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

Ajouter un bloc Appeler la fonction AWS Lambda

  1. Dans le concepteur de flux de contacts, développez Intégrer.
  2. Faites glisser un bloc Appeler la fonction AWS Lambda sur le canevas.
  3. Choisissez le titre du bloc (Appeler la fonction AWS Lambda). Le menu de configuration du bloc s'ouvre.
  4. Sous ARN de la fonction, choisissez Sélectionner une fonction, puis choisissez la fonction Lambda que vous avez ajoutée à votre instance.
  5. (Facultatif) Pour Délai d'expiration (8 secondes maximum), entrez le délai d'attente maximale en secondes de la réponse de Lambda par Amazon Connect.
  6. Choisissez Enregistrer.

Lorsque Amazon Connect appelle votre fonction Lambda, cette fonction renvoie une réponse JSON similaire à ce qui suit :

{
    "customer_number": "<Customer's phone number that you're calling>",
    "customer_country": "<Country of the customer's phone number>",
    "outbound_number": "<Outbound phone number that Lambda loads from Amazon S3 and sends to Amazon Connect>",
    "outbound_country": "<Country of the outbound phone number that Lambda sends to Amazon Connect>",
    "default_queue_outbound_number": "<Default outbound phone number set up for the queue>",
    "default_queue_outbound_country": "<Country of the default outbound phone number>"
}

Pour plus d'informations, consultez Appeler la fonction Lambda et bloc de contact : Appeler la fonction AWS Lambda.

Ajouter un bloc Appeler le numéro de téléphone

Configurez ce bloc pour utiliser le numéro sortant de Lambda comme numéro de téléphone d'ID de mandataire.

  1. Dans le concepteur de flux de contacts, développez Interagir.
  2. Faites glisser un bloc Appeler le numéro de téléphone sur le canevas.
  3. Choisissez le titre du bloc (Appeler le numéro de téléphone). Le menu de configuration du bloc s'ouvre.
  4. Procédez comme suit :
    Cochez la case Numéro d'ID de mandataire à afficher (facultatif).
    Choisissez Utiliser un attribut.
    Pour Type, choisissez Externe.
    Pour Attribut, entrez outbound_number.
  5. Choisissez Enregistrer.

Pour plus d'informations, consultez Lancer un appel sortant et Bloc de contact : Appeler le numéro de téléphone.

Modifier le flux de contacts

  1. Ajoutez et connectez d'autres blocs de contact si nécessaire pour votre cas d'utilisation. Pour obtenir des exemples de cas d'utilisation, consultez Exemples de flux de contacts.
  2. Connectez tous les connecteurs de votre flux de contacts à un bloc. Veillez à connecter le nœud Succès du bloc Appeler la fonction AWS Lambda au bloc Appeler le numéro de téléphone. Veillez également à connecter le nœud Succès du bloc Appeler le numéro de téléphone à un bloc Arrêter le flux/Relancer. Vous devez utiliser au moins ces blocs :
    Point d'entrée > Appeler la fonction AWS Lambda > > Appeler le numéro de téléphone > Arrêter le flux/Relancer.
  3. Enregistrez et publiez le flux de contacts.

Pour en savoir plus, consultez Créer un 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 plus d'informations, consultez Créer un profil de routage et un objet de profil de routage.

Modifiez la file d'attente en procédant comme suit :

  1. Dans votre instance Amazon Connect, dans le volet de navigation de gauche, arrêtez-vous sur Routage, puis choisissez 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 pour Flux de message discret sortant (facultatif), recherchez et choisissez le nom du flux de message discret sortant que vous avez créé.
  4. Choisissez Enregistrer.