Invocation de fonctions Lambda - Amazon Connect

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 ResultData dé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 ProfileId inclus dans la demande

  • Les réponses manquantes seront traitées comme des erreurs

  • Le Id champ de la réponse doit correspondre exactement ProfileId à 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 à ResultData des 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

  1. Ouvrez la console Amazon Connect à l'adresse https://console.aws.amazon.com/connect/.

  2. 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.

  3. Dans le volet de navigation, sous Canaux et communications, sélectionnez Campagnes sortantes.

  4. 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.

  5. 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

  1. Ouvrez ou créez un flux de parcours.

  2. Ajoutez un bloc d'action personnalisé (dans le groupe Intégrer) à la grille. Connectez les branches vers et depuis le bloc.

  3. Choisissez le titre du bloc d'action personnalisé pour ouvrir sa page de propriétés.

  4. 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.