Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Invocation de fonctions Lambda
Étape 1 : créer une fonction Lambda
Pendant l'exécution des campagnes, les campagnes sortantes invoqueront votre fonction Lambda avec un lot de profils et attendent une réponse contenant les résultats pour chacun d'entre eux.
Charge utile de la demande
Lorsque votre fonction Lambda est invoquée, elle reçoit une charge utile JSON avec la structure suivante :
Structure de charge utile
{ "InvocationMetadata": { "CampaignContext": { "CampaignId": "string", "RunId": "string", "ActionId": "string", "CampaignName": "string" } }, "Items": { "CustomerProfiles": [ { "ProfileId": "string", "CustomerData": "string", "IdempotencyToken": "string" } ] } }
Descriptions des champs
InvocationMetadata
-
CampaignContext: contient des métadonnées relatives à l'exécution de la campagne
-
CampaignId: identifiant unique pour la campagne
-
RunId: identifiant unique pour cette campagne spécifique lancée
-
ActionId: identifiant de l'action de flux exécutée par les campagnes sortantes
-
CampaignName: nom lisible par l'homme de la campagne
Éléments
-
CustomerProfiles: éventail de profils clients à traiter (regroupés par lots pour plus d'efficacité)
-
ProfileId: identifiant unique pour le profil du client
-
CustomerData: chaîne JSON du profil client
-
IdempotencyToken: jeton unique pour cette invocation spécifique afin de garantir un traitement idempotent
Exemple de charge utile de demande
{ "InvocationMetadata": { "CampaignContext": { "CampaignId": "campaign-12345", "RunId": "run-67890", "ActionId": "activity-abc123", "CampaignName": "Welcome Campaign" } }, "Items": { "CustomerProfiles": [ { "ProfileId": "customer-001", "CustomerData": "{\"firstName\":\"John\",\"lastName\":\"Doe\",\"email\":\"john.doe@example.com\"}", "IdempotencyToken": "token-xyz789" }, { "ProfileId": "customer-002", "CustomerData": "{\"firstName\":\"Jane\",\"lastName\":\"Smith\",\"email\":\"jane.smith@example.com\"}", "IdempotencyToken": "token-abc456" } ] } }
Charge utile de réponse attendue
Votre fonction Lambda doit renvoyer une réponse JSON avec la structure suivante :
Structure de réponse
{ "Items": { "CustomerProfiles": [ { "Id": "string", "ResultData": {} } ] } }
Descriptions des champs
Éléments
-
CustomerProfiles: Tableau de résultats correspondant à chaque profil client de la demande
-
ID : doit correspondre
ProfileIdà celui de la demande -
ResultData: objet JSON personnalisé contenant les résultats de votre traitement (facultatif)
Exemple de charge utile de réponse
{ "Items": { "CustomerProfiles": [ { "Id": "customer-001", "ResultData": { "recommendedProduct": "Premium Plan", "score": 85, "nextAction": "send_email" } }, { "Id": "customer-002", "ResultData": { "error": "Invalid customer data", "errorCode": "VALIDATION_ERROR" } } ] } }
Contraintes importantes
Limites de taille de charge utile
-
Taille maximale de la charge utile de réponse : 32 Ko par profil client
-
Si vous
ResultDatadépassez cette limite, l'invocation sera marquée comme non valide
Exigences en matière de réponse
-
Vous devez fournir une réponse pour chaque élément
ProfileIdinclus dans la demande -
Les réponses manquantes seront traitées comme des erreurs
-
Le
Idchamp de la réponse doit correspondre exactementProfileIdà celui de la demande
Gestion des erreurs
-
Si votre fonction Lambda génère une exception, tous les profils du lot seront marqués comme ayant échoué
-
Inclure les détails de l'erreur à
ResultDatades fins de débogage
Type d'invocation
-
Type d'appel :
REQUEST_RESPONSE(synchrone) -
Votre fonction devrait renvoyer les résultats dans les 30 secondes plutôt que de procéder de manière asynchrone. Les réponses qui prennent plus de 30 secondes entraîneront l'échec de l'action
Étape 2 : accordez aux campagnes sortantes l'accès à votre fonction Lambda
-
Ouvrez la console Amazon Connect à l'adresse https://console.aws.amazon.com/connect/
. -
Sur la page des instances, choisissez le nom de votre instance dans la colonne Alias d’instance. Ce nom d'instance apparaît dans l'URL que vous utilisez pour accéder à Amazon Connect.
-
Dans le volet de navigation, sous Canaux et communications, sélectionnez Campagnes sortantes.
-
Dans la section Configurer des actions personnalisées, utilisez la liste déroulante des fonctions Lambda pour sélectionner la fonction à ajouter à votre instance de campagnes sortantes.
-
Choisissez Ajouter une fonction Lambda. Vérifiez que l'ARN de la fonction est ajouté sous Fonctions Lambda.
Étape 3 : Invoquer un Lambda depuis une campagne
-
Ouvrez ou créez un flux de parcours.
-
Ajoutez un bloc d'action personnalisé (dans le groupe Intégrer) à la grille. Connectez les branches vers et depuis le bloc.
-
Choisissez le titre du bloc d'action personnalisé pour ouvrir sa page de propriétés.
-
Sous Function ARN, choisissez dans la liste des fonctions que vous avez ajoutées à votre instance de campagnes sortantes.
Étape 4 : Utiliser la réponse de la fonction Lambda
Accès direct aux variables
Pour accéder à ces variables directement dans un bloc de flux, ajoutez le bloc après le bloc d'action personnalisé, puis référencez les attributs comme indiqué dans l'exemple suivant :
RecommendedProduct - $.LambdaInvocation.ResultData.recommendedProduct Score - $.LambdaInvocation.ResultData.score
Assurez-vous que le nom spécifié pour l'attribut source correspond au nom de clé indiqué dans le code ResultData renvoyé par le Lambda.