Saltearse al contenido

Active AnnA Notifications

AnnA Active Notification es una función que permite el envío de notificaciones a través de WhatsApp a un grupo de números de teléfono.

Usando la clase AnnaTemplate

Esta clase te proporcionará una forma sencilla de enviar notificaciones activas a tus clientes.

ArrayList<AnnaNotification> notifications = new ArrayList<>();
AnnaTemplate template = new AnnaTemplate("YOUR_ANNA_ENVIRONMENT_BASE_URL",
AnnaTemplateConfig.builder()
.companyHash("YOURCOMPANYHASH")
.encryptionKey("YOUR_TEMPLATES_ENCRYPTION_KEY")
.decryptionKey("YOUR_TEMPLATES_DECRYPTION_KEY")
.templateName("TEMPLATE_NAME")
.templateNamespace("TEMPLATE_NAMESPACE")
.notifications(notifications)
.build()
);

Enviando notificaciones

Lo que vas a necesitar:

  • URL base de tu entorno de AnnA
  • Hash de la empresa
  • Clave de cifrado y descifrado
  • Nombre del template
  • Namespace del template
  • Lista de números de teléfono

Opcionalmente, puedes establecer:

  • Lista con los valores de las variables del template, si tu template tiene alguna
  • Lista con parámetros para el template, si tu template tiene alguno
  • Fecha de entrega para programar la notificación, si se desea o es necesario
  • Referencia para cualquier nota acerca de esta notificación
// Lista de números de telefone
var phoneList = new ArrayList<String>();
phoneList.add("5511111111111");
phoneList.add("5522222222222");
// Lista com os valores das variáveis do template (opcional)
var propKeys = new ArrayList<String>();
propKeys.add("var1");
propKeys.add("var2");
// Lista com parâmetros para o template (opcional)
var propParms = new ArrayList<PropParm>();
propParms.add(
PropParm.builder()
.alias("parm1")
.value("Hello")
.build()
);
// Criar a notificação
var notification = AnnaNotification.builder()
.phoneList(phoneList)
.propKeys(propKeys)
.propParms(propParms)
.DeliveryDate(LocalDateTime.of(2033, 10, 30, 12, 30))
.Reference("Any annotations you want, if you want")
.build();
// Adicionar a notificação à lista
ArrayList<AnnaNotification> notifications = new ArrayList<>();
notifications.add(notification);
// Configurar o template
AnnaTemplate template = new AnnaTemplate("YOUR_ANNA_ENVIRONMENT_BASE_URL",
AnnaTemplateConfig.builder()
.companyHash("YOURCOMPANYHASH")
.encryptionKey("YOUR_TEMPLATES_ENCRYPTION_KEY")
.decryptionKey("YOUR_TEMPLATES_DECRYPTION_KEY")
.templateName("TEMPLATE_NAME")
.templateNamespace("TEMPLATE_NAMESPACE")
.returnMode(TemplateReturnMode.DEFAULT)
.notifications(notifications)
.build()
);
// Enviar as notificações
String result = template.sendNotifications();
// Exibir o resultado
System.out.println(result);

Cómo obtener los datos de la notificación

Al enviar notificaciones con ReturnMode establecido como RESUME, la respuesta será un RequestID que podrás usar para obtener los datos de la notificación.

Este servicio proporcionará información sobre la cantidad de notificaciones enviadas, procesadas y en proceso.

Lo que necesitarás

  • URL base de tu entorno de AnnA
  • Hash de la empresa
  • Clave de cifrado y descifrado
  • RequestID
// Crie e configure um template AnnA
// Exemplo de URL base do ambiente AnnA: https://learning.anna.center
AnnaTemplate template = new AnnaTemplate("YOUR_ANNA_ENVIRONMENT_BASE_URL",
AnnaTemplateConfig.builder()
.companyHash("YOURCOMPANYHASH")
.encryptionKey("YOUR_TEMPLATES_ENCRYPTION_KEY")
.decryptionKey("YOUR_TEMPLATES_DECRYPTION_KEY")
.build()
);
int requestId = 65; // RequestId da resposta do sendNotifications() quando ReturnMode é definido como "RESUME"
String response = template.getNotificationData(requestId); // Resposta JSON com os dados da notificação
System.out.println(response);

GetNotificationData - Respuesta

La respuesta del método GetNotificationData es una cadena JSON con la siguiente estructura:

{
"RequestId": 1,
"RequestDate": "2023-06-05T16:00:00",
"RequestStatus": "PROCESSED",
"TotalNumberReceived": 4,
"TotalNumberValid": 4,
"TotalNumberSuccess": 4,
"TotalNumberError": 0,
"TotalNumberWaiting": 0,
"TotalNumberCanceled": 0,
"RequestResult": [
{
"RequestSeq": 1,
"RequestPhoneNumber":"111111111",
"RequestStatus":"sent",
"RequestMessage":"OK",
"RequestSentDatetime": "2024-08-05T16:00:00",
"RequestDeliveryDatetime": "2024-08-05T16:00:00",
"RequestReadDatetime": "2024-08-05T16:00:00",
"RequestHasButton": true,
"RequestUserAnswered": true,
"RequestUserAnswer": "Sim",
"SentKeys": [
{
"Description": "NOME",
"Value": "Giuliano"
}
],
"SentParms": [
{
"Cod": "CPF",
"Value": "11111111111"
},
{
"Cod": "RG",
"Value": "11111111-1"
},
]
},
{
"RequestSeq": 1,
"RequestPhoneNumber": "222222222",
"RequestStatus": "sent",
"RequestMessage": "OK",
"RequestSentDatetime": "2024-08-05T16:00:00",
"RequestDeliveryDatetime": "2024-08-05T16:00:00",
"RequestReadDatetime": "2024-08-05T16:00:00",
"RequestHasButton": true,
"RequestUserAnswered": true,
"RequestUserAnswer": "Sim",
"SentKeys": [
{
"Description": "NOME",
"Value": "Giuliano"
}
],
"SentParms": [
{
"Cod": "CPF",
"Value": "11111111111"
},
{
"Cod": "RG",
"Value": "11111111-1"
},
]
},
{
"RequestSeq": 2,
"RequestPhoneNumber": "333333333",
"RequestStatus": "sent",
"RequestMessage": "OK",
"RequestSentDatetime": "2024-08-05T16:00:00",
"RequestDeliveryDatetime": "2024-08-05T16:00:00",
"RequestReadDatetime": "2024-08-05T16:00:00",
"RequestHasButton": true,
"RequestUserAnswered": true,
"RequestUserAnswer": "Sim",
"SentKeys": [
{
"Description": "NOME",
"Value": "Giuliano"
}
],
"SentParms": [
{
"Cod": "CPF",
"Value": "11111111111"
},
{
"Cod": "RG",
"Value": "11111111-1"
},
]
},
{
"RequestSeq": 2,
"RequestPhoneNumber": "444444444",
"RequestStatus":"sent",
"RequestMessage":"OK",
"RequestSentDatetime": "2024-08-05T16:00:00",
"RequestDeliveryDatetime": "2024-08-05T16:00:00",
"RequestReadDatetime": "2024-08-05T16:00:00",
"RequestHasButton": true,
"RequestUserAnswered": true,
"RequestUserAnswer": "Sim",
"SentKeys": [
{
"Description": "NOME",
"Value": "Giuliano"
}
],
"SentParms": [
{
"Cod": "CPF",
"Value": "11111111111"
},
{
"Cod": "RG",
"Value": "11111111-1"
},
]
}
]
}
  • Valores para el status de RequestStatus base:
    • CANCELED
    • QUEUED
    • PROCESSED
    • PROCESSING
  • Valores para el status de RequestResult:
    • canceled
    • waiting
    • sent
    • delivered
    • failed