Invocación de funciones de Lambda - Amazon Connect

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Invocación de funciones de Lambda

Paso 1: Crear una función de Lambda

Durante la ejecución de la campaña, las campañas salientes invocarán la función Lambda con un lote de perfiles y esperarán una respuesta que contenga los resultados de cada uno.

Solicita la carga útil

Cuando se invoque la función Lambda, recibirá una carga útil JSON con la siguiente estructura:

Estructura de carga útil

{ "InvocationMetadata": { "CampaignContext": { "CampaignId": "string", "RunId": "string", "ActionId": "string", "CampaignName": "string" } }, "Items": { "CustomerProfiles": [ { "ProfileId": "string", "CustomerData": "string", "IdempotencyToken": "string" } ] } }

Descripciones de campos

InvocationMetadata
  • CampaignContext: Contiene metadatos sobre la ejecución de la campaña

  • CampaignId: identificador único de la campaña

  • RunId: identificador único para esta campaña específica

  • ActionId: El identificador de la acción de flujo que ejecutan las campañas salientes

  • CampaignName: nombre de la campaña legible para los humanos

Items
  • CustomerProfiles: Variedad de perfiles de clientes para procesar (agrupados por lotes para mayor eficiencia)

  • ProfileId: identificador único para el perfil del cliente

  • CustomerData: cadena JSON del perfil del cliente

  • IdempotencyToken: token único para esta invocación específica para garantizar un procesamiento idempotente

Ejemplo de carga útil de solicitud

{ "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" } ] } }

Carga útil de respuesta esperada

La función Lambda debe devolver una respuesta JSON con la siguiente estructura:

Estructura de respuesta

{ "Items": { "CustomerProfiles": [ { "Id": "string", "ResultData": {} } ] } }

Descripciones de campos

Items
  • CustomerProfiles: Matriz de resultados correspondiente a cada perfil de cliente de la solicitud

  • ID: debe coincidir con el ProfileId de la solicitud

  • ResultData: Objeto JSON personalizado que contiene los resultados del procesamiento (opcional)

Ejemplo de carga útil de respuesta

{ "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" } } ] } }

Restricciones importantes

Límites de tamaño de carga útil

  • Tamaño máximo de carga útil de respuesta: 32 KB por perfil de cliente

  • Si ResultData supera este límite, la invocación se marcará como no válida

Requisitos de respuesta

  • Debe proporcionar una respuesta para cada uno de los ProfileId elementos incluidos en la solicitud

  • Las respuestas faltantes se tratarán como errores

  • El Id campo de la respuesta debe coincidir exactamente con el ProfileId de la solicitud

Gestión de errores

  • Si la función Lambda arroja una excepción, todos los perfiles del lote se marcarán como fallidos

  • Incluya los detalles del error ResultData para fines de depuración

Tipo de invocación

  • Tipo de invocación: REQUEST_RESPONSE (sincrónica)

  • La función debería devolver los resultados en 30 segundos en lugar de procesarlos de forma asíncrona. Las respuestas que tarden más de 30 segundos provocarán un error en la acción

Paso 2: Otorgue a Outbound Campaigns acceso a su función Lambda

  1. Abra la consola Amazon Connect en https://console.aws.amazon.com/connect/.

  2. En la página de instancias, el nombre de la instancia que hay en la columna Alias de instancia. Este nombre de instancia aparece en la URL que utiliza para acceder a Amazon Connect.

  3. En el panel de navegación, en Canales y comunicaciones, selecciona Campañas salientes.

  4. En la sección Configurar acciones personalizadas, usa el cuadro desplegable Funciones de Lambda para seleccionar la función que deseas añadir a tu instancia de campañas salientes.

  5. Elija Agregar función Lambda. Confirme que el ARN de la función se añade en Funciones de Lambda.

Paso 3: Invocar una Lambda desde una campaña

  1. Abre o crea un flujo de viaje.

  2. Añada un bloque de acciones personalizado (en el grupo Integrar) a la cuadrícula. Conecte las ramas hacia y desde el bloque.

  3. Elija el título del bloque de acciones personalizado para abrir su página de propiedades.

  4. En Función ARN, elige una función de la lista de funciones que has añadido a tu instancia de campañas salientes.

Paso 4: Consumir la respuesta de la función Lambda

Acceder directamente a las variables

Para acceder a estas variables directamente en un bloque de flujo, añada el bloque después del bloque de acciones personalizadas y, a continuación, haga referencia a los atributos como se muestra en el siguiente ejemplo:

RecommendedProduct - $.LambdaInvocation.ResultData.recommendedProduct Score - $.LambdaInvocation.ResultData.score

Asegúrese de que el nombre especificado para el atributo de origen coincida con el nombre de clave ResultData devuelto por la Lambda.