Usar a carga útil do Amazon SNS após habilitar a transmissão de mensagens no Amazon Connect
Depois de habilitar a transmissão de mensagens com sucesso, talvez seja necessário filtrar a mensagem para enviá-la ao participante pretendido: atendente, cliente ou todos.
Para filtrar por participante, leia o atributo específico dos cabeçalhos do SNS— MessageVisibility
— para determinar se a mensagem é destinada somente ao cliente, somente ao atendente ou a todos.
-
Para enviar somente para o cliente: para todo o código que o cliente vê, os clientes precisam filtrar as mensagens destinadas ao cliente e criar a seguinte lógica para encaminhar a mensagem para eles.
if ( ( MessageVisibility == CUSTOMER || MessageVisibility == ALL) && ParticipantRole != CUSTOMER )
-
Para enviar somente para o atendente:
if ( ( MessageVisibility == AGENT || MessageVisibility == ALL) && ParticipantRole != AGENT )
Você também pode aproveitar o recurso de filtragem no Amazon SNS criando políticas personalizadas de filtragem de assinaturas. Isso descarrega a lógica de filtragem de mensagens do assinante do tópico do SNS para o próprio serviço do SNS.
Atributos de mensagem na carga útil
Veja a seguir uma descrição de cada atributo de mensagem na carga útil do Amazon SNS:
-
InitialContactId
: o ID de contato inicial do chat. -
ContactId
: o ID de contato atual do chat. OInitialContactId
e oContactId
podem ser diferentes se houver um novo atendente no chat ou no fluxo de contato fila a fila. -
ParticipantRole
: o participante que enviou a mensagem. -
InstanceId
: o ID da instância do Amazon Connect. -
AccountId
: o ID da conta da AWS. -
Type
: valores possíveis:EVENT
,MESSAGE
. -
ContentType
: valores possíveis:application/vnd.amazonaws.connect.event.typing
,application/vnd.amazonaws.connect.event.participant.joined
,application/vnd.amazonaws.connect.event.participant.left
,application/vnd.amazonaws.connect.event.transfer.succeeded
,application/vnd.amazonaws.connect.event.transfer.failed
,application/vnd.amazonaws.connect.message.interactive
,application/vnd.amazonaws.connect.event.chat.ended
e muito mais. -
MessageVisibility
: valores possíveis:AGENT
,CUSTOMER
,ALL
.
Exemplo de carga útil do SNS
{ "Type" : "Notification", "MessageId" : "ccccccccc-cccc-cccc-cccc-ccccccccccccc", "TopicArn" : "arn:aws:sns:us-west-2:009969138378:connector-svc-test", "Message" : "{\"AbsoluteTime\":\"2021-09-08T13:28:24.656Z\",\"Content\":\"help\",\"ContentType\":\"text/plain\",\"Id\":\"333333333-be0d-4a44-889d-d2a86fc06f0c\",\"Type\":\"MESSAGE\",\"ParticipantId\":\"bbbbbbbb-c562-4d95-b76c-dcbca8b4b5f7\",\"DisplayName\":\"Jane\",\"ParticipantRole\":\"CUSTOMER\",\"InitialContactId\":\"33333333-abc5-46db-9ad5-d772559ab556\",\"ContactId\":\"33333333-abc5-46db-9ad5-d772559ab556\"}", "Timestamp" : "2021-09-08T13:28:24.860Z", "SignatureVersion" : "1", "Signature" : "examplegggggg/1tEBYdiVDgJgBoJUniUFcArLFGfg5JCvpOr/v6LPCHiD7A0BWy8+ZOnGTmOjBMn80U9jSzYhKbHDbQHaNYTo9sRyQA31JtHHiIseQeMfTDpcaAXqfs8hdIXq4XZaJYqDFqosfbvh56VPh5QgmeHTltTc7eOZBUwnt/177eOTLTt2yB0ItMV3NAYuE1Tdxya1lLYZQUIMxETTVcRAZkDIu8TbRZC9a00q2RQVjXhDaU3k+tL+kk85syW/2ryjjkDYoUb+dyRGkqMy4aKA22UpfidOtdAZ/GGtXaXSKBqazZTEUuSEzt0duLtFntQiYJanU05gtDig==", "SigningCertURL" : "https://sns.us-west-2.amazonaws.com/SimpleNotificationService-11111111111111111111111111111111.pem", "UnsubscribeURL" : "https://sns.us-west-2.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:us-west-2:000000000000:connector-svc-test:22222222-aaaa-bbbb-cccc-333333333333", "MessageAttributes" : { "InitialContactId" : {"Type":"String","Value":"33333333-abc5-46db-9ad5-d772559ab556"}, "MessageVisibility" : {"Type":"String","Value":"ALL"}, "Type" : {"Type":"String","Value":"MESSAGE"}, "AccountId" : {"Type":"String","Value":"999999999999"}, "ContentType" : {"Type":"String","Value":"text/plain"}, "InstanceId" : {"Type":"String","Value":"dddddddd-b64e-40c5-921b-109fd92499ae"}, "ContactId" : {"Type":"String","Value":"33333333-abc5-46db-9ad5-d772559ab556"}, "ParticipantRole" : {"Type":"String","Value":"CUSTOMER"} } }