Class Geotrigger

    • Method Detail

      • getGeotriggerId

        public java.lang.String getGeotriggerId()
        Gets a unique ID for the Geotrigger.
        a unique ID for the Geotrigger
      • getMessageExpression

        public ArcadeExpression getMessageExpression()
        Gets an ArcadeExpression that controls the notification details when a Geotrigger is met.

        The expression uses the Arcade language to generate notification information that can be:

        • a string literal that is the same for all notifications relating to this Geotrigger
        • information that is specific to the attributes of objects that met the Geotrigger
        The expression is evaluated whenever the Geotrigger condition is met, in order to populate the GeotriggerNotificationInfo.getMessage() property. Display this message to alert the user that the Geotrigger condition has been met. Note that the expression cannot be changed when the GeotriggerMonitor is running.

        For example, with a FenceGeotrigger, using the following expression:

        "You have " + $fencenotificationtype + " " + $fencefeature.area_name

        returns the GeotriggerNotification.getMessage() "You have entered Area A", where "area_name" is an attribute field on the FenceGeotriggerNotificationInfo.getFenceGeoElement().

        Optionally, the expression can return extra properties in addition to the message. For example, it could produce another string, suitable for logging to a database. To supply additional properties, write an arcade expression that evaluates to a dictionary of key value pairs.

        For example, the expression below results in a GeotriggerNotificationInfo.getMessage() of: "Hello world" and a GeotriggerNotificationInfo.getActions() list of either "startTracking" or "stopTracking":

         var action = IIf($fencenotificationtype == 'enter', 'stopTracking', 'startTracking');
         return {
           'message': 'Hello world',
           'actions': [ action ]
        The ArcadeExpression must evaluate to either a string or a dictionary; see ArcadeExpression.getReturnType(). Note that this method —getMessageExpression() — returns an ArcadeExpression object, rather than a string.

        For more information on the available profile variables and functions for creating the message expression see the "Geotrigger Notification" profile at

        an ArcadeExpression that controls the message when a Geotrigger is met, or null if none
        See Also:
      • getName

        public java.lang.String getName()
        Gets the name of the Geotrigger.
        the name of the Geotrigger
      • setName

        public void setName​(java.lang.String name)
        Sets the name of the Geotrigger.
        name - the name of the Geotrigger
        java.lang.IllegalArgumentException - if name is null
      • getRequestedActions

        public java.util.List<java.lang.String> getRequestedActions()
        Gets a list of strings indicating the set of requested actions when a notification is delivered.

        This property shows the full list of recommended actions that the Geotrigger author intends to be taken. Note that there is no requirement to take any action when a notification is delivered, but these provide a way to understand the Geotrigger author's intention. Use this property to:

        • Display the expected behavior of a Geotrigger to the user, prior to monitoring.
        • Check that your app supports the expected actions for the Geotrigger.
        This list of strings shows the full set of recommended actions for any notifications from this Geotrigger. Individual GeotriggerNotificationInfo events may include a subset of these actions. The specific actions for an individual notification event (for example, when a given fence is entered) are shown in GeotriggerNotificationInfo.getActions(). To populate the list of actions for a notification, the getMessageExpression() must return a dictionary with the key "actions", and a value showing the list of action strings.

        The list of actions are simple strings, so you can use them to control any custom action you wish your app to perform.

        a list of strings indicating the set of requested actions when a notification is delivered