Skip to content
AnnA Docs

AnnA Active Notification

AnnA Active Notification is a resource that makes possible for you to send notifications through WhatsApp to a batch of phone numbers.

Using AnnaTemplate class

This class will provide you a simple way to send active notifications to your clients

  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()
  );

Send notifications

What you will need:

  • Base URL of your AnnA environment
  • Company hash
  • Encryption and decryption key
  • Template name
  • Template namespace
  • List of phone numbers

Optionally you can set:

  • List with the values of variables from the template if your template has any
  • List with parameters for the template if your template has any
  • Delivery date when you want or need to schedule the notification
  • Reference to any notes about this notification
    // List of phone numbers
    var phoneList = new ArrayList<String>();
    phoneList.add("5511111111111");
    phoneList.add("5522222222222");

    // List with the values of variables from the template (optional)
    var propKeys = new ArrayList<String>();
    propKeys.add("var1");
    propKeys.add("var2");

    // List with parameters for the template (optional)
    var propParms = new ArrayList<PropParm>();
    propParms.add(
        PropParm.builder()
            .alias("parm1")
            .value("Hello")
            .build()
    );

    // Create the notification
    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();

    // Add the notification to the list
    ArrayList<AnnaNotification> notifications = new ArrayList<>();
    notifications.add(notification);

    // Configure the 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()
    );

    // Send the notifications
    String result = template.sendNotifications();

    // Display the result
    System.out.println(result);

Get notification data

When sending notifications with ReturnMode as RESUME, the response will be a RequestID that you can use to get the notification data.

This service will return information about the number of notifications sent, processed and processing.

What you will need:

  • Base URL of your AnnA environment
  • Company hash
  • Encryption and decryption key
  • RequestID
  // Create and configure AnnA Template
  // Example of AnnA environment base URL: 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 from sendNotifications() reponse when ReturnMode is set to "RESUME"
  String response = template.getNotificationData(requestId); // JSON response with the notification data

  System.out.println(response);