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 tu función Lambda con un lote de perfiles y esperan una respuesta con los resultados de cada uno de ellos.
Carga útil de la solicitud
Cuando se invoque la función de 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 están ejecutando las campañas salientes
-
CampaignName: Human-readable nombre de la campaña
Items
-
CustomerProfiles: Conjunto de perfiles de clientes para procesar (agrupados en 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 a fin de 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 de Lambda debe devolver una respuesta JSON con la siguiente estructura:
Estructura de la respuesta
{ "Items": { "CustomerProfiles": [ { "Id": "string", "ResultData": {} } ] } }
Descripciones de campos
Items
-
CustomerProfiles: Matriz de resultados correspondientes a cada perfil de cliente de la solicitud
-
ID: Debe coincidir con el
ProfileIdde 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
-
Tamaño máximo de carga útil de respuesta: 32 KB por perfil de cliente
-
Si
ResultDatasuperas este límite, la invocación se marcará como no válida
Requisitos de respuesta
-
Debe proporcionar una respuesta para cada uno de los
ProfileIdincluidos en la solicitud -
Las respuestas faltantes se tratarán como errores
-
El
Idcampo de la respuesta debe coincidir exactamente con elProfileIdde la solicitud
Gestión de errores
-
Si la función de Lambda produce una excepción, todos los perfiles del lote se marcarán como fallidos
-
Incluya los detalles del error
ResultDatapara fines de depuración
Tipo de invocación
-
Tipo de invocación:
REQUEST_RESPONSE(sincrónico) -
La función debería devolver los resultados en un plazo de 30 segundos en lugar de procesarlos de forma asincrónica. Las respuestas que tarden más de 30 segundos provocarán un error en la acción
Paso 2: Conceda a las campañas salientes acceso a su función de Lambda
-
Abra la consola de Amazon Connect en https://console.aws.amazon.com/connect/
. -
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.
-
En el panel de navegación, en Canales y comunicaciones, selecciona Campañas salientes.
-
En la sección Configurar acciones personalizadas, usa el cuadro desplegable Funciones de Lambda para seleccionar la función que quieres añadir a tu instancia de campañas salientes.
-
Elija Agregar función Lambda. Confirme que el ARN de la función se añade en Funciones de Lambda.
importante
El procedimiento de consola anterior agrega automáticamente la política basada en los recursos requerida a la función Lambda. Si usa la AWS CLI o el SDK, puede llamar a la PutConnectInstanceIntegration API con la configuración de integración. lambda Esta API agrega automáticamente la política basada en los recursos requerida a la función de Lambda, tal como lo hace la consola.
Si necesita agregar la política basada en los recursos de forma manual (por ejemplo, para las invocaciones entre cuentas), agregue una declaración de política que otorgue al principal del connect-campaigns.amazonaws.com servicio permiso para invocar su función. Si lo desea, puede añadir un Condition elemento y restringir el acceso a su cuenta AWS:SourceAccount y AWS:SourceArn a la instancia de Connect Customer. Te recomendamos incluir ambas condiciones. El siguiente ejemplo muestra la declaración de política requerida.
{ "Statement": [ { "Effect": "Allow", "Principal": { "Service": "connect-campaigns.amazonaws.com" }, "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:region:account-id:function:function-name", "Condition": { "StringEquals": { "AWS:SourceAccount": "account-id" }, "ArnLike": { "AWS:SourceArn": "arn:aws:connect:region:account-id:instance/instance-id" } } } ] }
Para obtener más información sobre las políticas basadas en recursos, consulte Uso de políticas basadas en recursos para Lambda en la Guía para desarrolladores de Lambda.
Paso 3: Invocar una Lambda desde una campaña
-
Abre o crea un flujo de viaje.
-
Agregue un bloque de acción personalizado (en el grupo Integrar) a la cuadrícula. Conecte las ramas hacia y desde el bloque.
-
Elige el título del bloque de acciones personalizado para abrir su página de propiedades.
-
En Función ARN, elige una opción de la lista de funciones que has agregado a tu instancia de campañas salientes.
Paso 4: Consume 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 Acción personalizada 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 la clave que aparece ResultData en el archivo Lambda.