Modification des dates de livraison à l'aide d'Amazon Web Services
Un scénario courant pour un client appelant un centre d'appels concerne un client souhaitant modifier l'heure ou la date de livraison. Avec AWS Services, il est possible d’automatiser cette opération, en réduisant les temps d’attente et le coût lié au fait qu’une personne recherche les dates et les transmette à un client.
Dans ce didacticiel technique, nous nous concentrerons sur le renvoi de trois dates et heures possibles de une base de données sur une instance Amazon Connect. Cet article suppose des connaissances de base sur le fonctionnement de certaines parties d'AWS, mais nous avons créé un lien vers des didacticiels qui vous montreront comment acquérir ces connaissances si vous n'êtes pas sûr de savoir comment.
Services AWS utilisés:
- Amazon Connectez-vous
- Amazon Lambda
- Amazon DynamoDB
Créer une solution – une vue d'ensemble:
Avant de commencer, prenons un peu de recul et réfléchissons au problème que nous essayons de résoudre: en tant que client , Je souhaite pouvoir appeler un centre de contact, avoir quelques options pour modifier ma date de livraison actuelle, en choisir une, puis entendre sa confirmation.
Lorsqu’on essaie de trouver des solutions en matière de programmation, j’ai personnellement constaté que commencer petit est la voie à suivre. Plutôt que de nous accabler en essayant de récupérer chaque date et chaque heure à la fois, décomposons-les. Cette approche, du moins pour moi, a rendu beaucoup plus facile l'apprentissage et la construction sur les bases d'AWS.
De prime abord, je pense qu'il me faudra un flux Amazon Connect, probablement un discours SSML. et une table DynamoDB pour renvoyer les valeurs de date et heure. J'aurai également besoin d'une fonction Lambda pour renvoyer les informations de la table à Amazon Connect, afin qu'elles puissent être lues au client.
Décrivez-la davantage, de quoi ai-je besoin en premier? Eh bien, il me faudrait une date et une heure pour que cela fonctionne. C’est l’information clé dont le client a besoin. La table DynamoDB doit donc être celle sur laquelle je travaille en premier. Ensuite, je peux configurer un flux simple Amazon Connect et une fonction Lambda pour le tester.
Partie 1: Configuration d’un tableau de date et d’heure avec DynamoDB:
DynamoDB est un système de base de données sans serveur NoSQL faisant partie d’AWS. Si vous ne savez pas comment configurer une table DynamoDB, veuillez lire les informations fournies dans la documentation Amazon Web Services avant de poursuivre ce didacticiel. Les étapes suivantes reposent sur des connaissances de base de DynamoDB et sur la définition des paires clé: valeur.
Lors de la conception de notre solution, nous devons réfléchir au meilleur moyen de renvoyer la date et l'heure. Devrions-nous les séparer en deux colonnes? Si nous pensons logiquement à ce qui doit se passer, un appelant téléphonera et s’attendra à entendre les trois dates et heures les plus rapprochées pour la reprogrammation de leur livraison. Nous voulons que ces valeurs soient sauvegardées dans la base de données.
Comme la date et l’heure ont des nuances, nous allons simplifier les choses en la limitant à une valeur englobant à la fois la date et l’heure – nous utiliserons un horodatage d’époque. Epoch sert simplement de point de référence à partir duquel le temps est mesuré.
La première chose à faire est de créer une date et une heure de test et de les convertir en horodatage. Vous pouvez utiliser un convertisseur de temps en ligne pour changer le vôtre. Choisissez l’option «Date humaine à l’horodatage»
À des fins de test, nous avons choisi le 22 juillet 2019 à 9h30 comme premier point de test. Une fois convertis, ils nous ont donné ceci:
Cela équivaut à:
- le 22/07/2019 @ 9:30 (UTC)
- le 19 juillet 2017 à 09h30 (30h00): 30: 00+ 00:00 dans l'ISO 8601
- lun., 22 juil. 2019 09:30:00 +0000 dans la RFC 822, 1036, 1123, 2822
- lundi, 22 juil. -19 09:30:00 UTC dans le RFC 2822
- 2019-07-22T09: 30: 00 + 00: 00 dans le RFC 3339
L'une des nuances des horodatages et Amazon Connect est celle il n'analyse pas toujours les choses comme nous le pensons logiquement. Pour cet exemple, nous avons effectué plusieurs tests avant de conclure que, pour que l’horodatage soit lu correctement, il devait être stocké avec quelques zéros supplémentaires à la fin. À cette fin, nous avons modifié l’exemple ci-dessus et le reste des exemples que nous avons donnés.
Faisons notre tableau. Nous avons appelé notre table 'DeliverTable3' et voici comment nous l'avons configuré:
- Nom de la table: DeliverTable3
- Clé de partition principale: uniqueID (String)
- Tri primaire clé: Date (Nombre)
Maintenant que notre tableau est prêt. Nous pouvons commencer à tester avec l’une des valeurs avec la fonction Lambda que nous créerons ensuite.
Partie 2: Écriture de la fonction Amazon Lambda:
AWS Lambdas vous permet d’exécuter du code dans un environnement sans serveur. Ce tutoriel suppose une compréhension de base du fonctionnement des fonctions Lambda et vous explique comment en créer un de base. Pour une bonne introduction et des tutoriels sur les fonctions AWS Lambda, reportez-vous à la documentation disponible sur le site Web d'Amazon Web Services .
En ce qui concerne le renvoi d'informations à partir d'une table DynamoDB, celle-ci est assez basique. Après avoir enchaîné les données, voici ce qui nous reste:
INFO Chaîne des données { "Articles": [ { "Date": 1563787800000, "uniqueID": "1" }, { "Date": 1563804000000, "uniqueID": "1" }, { "Date": 1563893100000, "uniqueID": "1" } ], "Compter": 3, "ScannedCount": 3, "LastEvaluatedKey": { "Date": 1563893100000, "uniqueID": "1" } }
Nous devons toutefois effectuer certaines modifications dans Lambda pour obtenir la réponse nécessaire afin qu’elle soit renvoyée à Amazon Connect.
Nous savons que nous avons un horodatage d’époque provenant de la table DynamoDB. Mais si nous renvoyons ce chiffre: "1563787800000" à Amazon Connect, il le lira comme un grand nombre. Il est donc nécessaire de scinder l'horodatage en valeurs de date et d'heure distinctes, de s'assurer qu'elles sont dans le bon format, puis de à renvoyer ces valeurs à Amazon Connect.
Pour résoudre ce problème, procédons au reverse engineering du fichier. Solution. Nous savons d'un post précédent qu'Amazon Connect peut intégrer une date au format AAAA-MM-JJ et qu'elle peut prendre du temps au format HH: MM ou HMS. Comment pouvons-nous nous assurer que ces types de valeurs sont renvoyés?
Voyons d’abord la partie date. Nous aurons besoin d’utiliser certaines méthodes Javascript pour séparer notre horodatage. Une recherche rapide en ligne révèle que ces solutions pourraient fonctionner:
- getDate ()
- getMonth ()
- getFullYear ()
À l'aide de ces méthodes et de notre réponse, voici comment nous pouvons l'analyser :
var a = data.Items [0] .Date var save = new Date (a); var formatedDate = ('0' + saved.getDate ()). slice (-2) + '-' + ('0' + (saved.getMonth () + 1)). slice (-2) + '-' + saved.getFullYear ();
Lorsque je teste ces méthodes, la valeur formattedDate me renvoie la valeur de date au format que je souhaite.
Analysons maintenant la partie heure. Une autre recherche rapide révèle que l'utilisation de la méthode 'toLocaleTimeString' pourrait être utile pour nous appliquer à l'horodatage que nous avons:
"timeA": new Date (data.Items [0] .Date). toLocaleTimeString ("en-US"),
En le testant, nous constatons que .toLocaleTimeString («en-US») nous renvoie l'heure correcte dans un format facilement compréhensible par Amazon Connect.
En manipulant le données dans le format que nous voulons dans la fonction Lambda, nous le simplifions beaucoup. À cause du travail que nous avons fait ci-dessus, notre résultat final ressemble maintenant à ceci:
Voici le résultat final {dateA: '22 -07-2019 ', heure A: '09h30:00', dateB: '22 -07-2019 ', timeB: '14:00:00 PM', dateC: '23 -07-2019 ', timeC: '2:45:00 PM'}
Désormais, il suffit de renvoyer ces valeurs à Amazon Connect.
Partie 3: Création d'un flux de contacts Amazon Connect:
Ce didacticiel suppose connaissances de base sur la création d'un flux de contacts de base dans Amazon Connect. Pour plus d'informations sur Amazon Connect, consultez la documentation AWS .
Nous allons créer un flux de base qui demande à un appelant à quelle date de notre tableau il souhaite transférer sa livraison. :
Voici le processus représenté:
Création du flux de contacts avec SSML et attributs externes:
Nous allons utiliser SSML pour relire le valeurs de date et heure au client. En ce qui concerne les valeurs réelles, elles prendront le format de base suivant:
- $. External.date
- $. External.time
Pour notre cas d'utilisation, nous allons remplacer "date" et " time 'avec les valeurs que nous avons créées et sauvegardées dans notre fonction Lambda:
- dateA
- dateB
- dateC
- timeA
- timeB
- timeC
Le dernier bloc de lecture pour relire les trois les dates les plus anciennes ressemblent à ceci:
Les premières dates de livraison sont option A $. External.dateA . at$. External.timeA . ouOption B $. External.dateB . at$. External.timeB . ouOption C $. External.dateC . at$. External.timeC .
Remarquez comment nous avons inséré une pause pour rendre le discours plus réaliste. Vous pouvez jouer en insérant vos propres éléments de temps de pause.
Le client entendra toutes ces dates et en choisira une. Ci-dessous, vous verrez le message de confirmation qu’ils entendent après avoir sélectionné l’une des options du bloc "Obtenir entrée client":
. Vous avez sélectionné $. External.dateA . at$. External.timeA .
Et c’est tout. À l'aide d'une table DynamoDB, d'Amazon Lambda, de quelques méthodes Javascript et d'Amazon Connect, nous avons pu restituer avec succès les dates et heures disponibles pour la replanification d'une diffusion et laisser le client sélectionner celle qui lui convenait le mieux – aucun agent requis. [19659002] Pour plus d'informations sur la manière dont Perficient peut vous aider à tirer le meilleur parti d'Amazon Connect, veuillez nous contacter .
Source link