Skip to main content

Geo-Triggering webhook

Register Geo-trigger Webhooks to receive real-time Entry/Exit notifications from your customers.

Selecting Webhooks Payload Version

When setting up webhooks from the dashboard, users can select the version of the Geo-triggering event payload. The rest of the events remain unchanged. Follow these steps to select the version:

  1. Navigate to the webhooks configuration section in the dashboard.
  2. Select the desired version (1.0 or 2.0) for the Geo-triggering event.
  3. Save your changes.

Geo-triggering event (V2.0)

The 2.0 version of the webhooks payload for Geo-triggering events includes a standardized structure that aligns with the Analytics API and SDK Entry and Exit events. This version provides additional data points for enhanced insights and uniformity.

Root Level Fields

This table lists the primary fields found at the root level of the payload.

FieldDescription
ulidUnique identifier for the event.
retryCountThe number of retry attempts for the webhook delivery.
triggerChainIdIdentifier for the chain of triggers leading to this event.
notificationTypeType of notification (e.g., exit).
receivedAtTimestamp when the event was received.
submissionTimeTimestamp when the event was submitted.
accountIdAccount identifier.
installRefReference ID for the installation.
projectIdProject identifier.

appInfo fields

This table details the fields within the appInfo object, providing information about the application.

FieldDescription
appInfo.appBuildVersionBuild version of the application.
appInfo.customEventMetaDataCustom metadata related to the event.
appInfo.customEventMetaData.[KEY]The value of the custom event data key/value pair.
appInfo.customerApplicationIdApplication identifier.
appInfo.minimumOSVersionMinimum OS version supported by the application.
appInfo.sdkVersionSDK version used by the application.

deviceInfo fields

This table lists the fields within the deviceInfo object, containing details about the device.

FieldDescription
deviceInfo.deviceTypeType of device (e.g., iPhone14,7).
deviceInfo.osOperating system of the device.
deviceInfo.osVersionOperating system version of the device.

zoneInfo fields

This table provides information about the zoneInfo object, including details about the zone and destination.

FieldDescription
zoneInfo.customDataCustom data related to the zone.
zoneInfo.customData.[KEY]The value of the zone custom data key/value pair.
zoneInfo.destinationDestination information.
zoneInfo.destination.destinationIdDestination identifier.
zoneInfo.destination.locationLocation details of the destination.
zoneInfo.destination.location.latitudeLatitude of the destination.
zoneInfo.destination.location.longitudeLongitude of the destination.
zoneInfo.destination.nameName of the destination.
zoneInfo.idZone identifier.
zoneInfo.nameName of the zone.

triggerEvents fields

This table describes the fields within the triggerEvents array, detailing the events that triggered the notification.

FieldDescription
triggerEvents[].applicationStateState of the application at the time of the event.
triggerEvents[].applicationState.batteryLevelBattery level of the device at the time of the event.
triggerEvents[].applicationState.blueBarEnabledIndicates if the Background Location Usage Indicator was enabled at the time of the event.
triggerEvents[].applicationState.lastRuleUpdateTimestamp of the last rule update.
triggerEvents[].applicationState.locationPermissionLocation permission status of the application.
triggerEvents[].applicationState.viewStateView state of the application (foreground or background).
triggerEvents[].destinationIdIdentifier for the destination associated with the event.
triggerEvents[].eventTimeTimestamp of the event.
triggerEvents[].eventTypeType of the event (e.g., fenceEntered, fenceExited).
triggerEvents[].fenceIdIdentifier for the geofence associated with the event.
triggerEvents[].fenceNameName of the geofence associated with the event.
triggerEvents[].localEventTimeLocal time of the event.
triggerEvents[].locationsArray of location data associated with the event.
triggerEvents[].locations[].altitudeAltitude at the time of the event.
triggerEvents[].locations[].bearingBearing at the time of the event.
triggerEvents[].locations[].horizontalAccuracyHorizontal accuracy of the location data.
triggerEvents[].locations[].latitudeLatitude at the time of the event.
triggerEvents[].locations[].longitudeLongitude at the time of the event.
triggerEvents[].locations[].speedSpeed at the time of the event.
triggerEvents[].locations[].timeTimestamp of the location data.
triggerEvents[].locations[].verticalAccuracyVertical accuracy of the location data.
triggerEvents[].triggerEngineEngine used to trigger the event (e.g., bd).

Additional Fields

In addition to the payload, there are additional fields included:

FieldDescription
additionalFields.body_field1Custom field for additional body fields.
webhookUniqueIdUnique ID for the webhook, available when webhook retry is enabled.

For more details on webhook retry, please refer to the Webhooks Retry Documentation.

Webhooks Payload Example

{
"payload": {
"ulid": "01J1GPFGJJPY1NXSM76WDFXQ59",
"retryCount": 0,
"appInfo": {
"appBuildVersion": "5.2.0",
"customEventMetaData": {
"key1": "value 1",
"key2": "value 2"
},
"customerApplicationId": "au.com.bluedot",
"minimumOSVersion": "15.0",
"sdkVersion": "16.1.0"
},
"triggerChainId": "00093f0f-28e7-4128-a4b3-5576af71dae3",
"notificationType": "entry",
"receivedAt": "2024-06-29T00:31:48.294Z",
"deviceInfo": {
"deviceType": "iPhone14,2",
"os": "iOS",
"osVersion": "16.7.1"
},
"submissionTime": "2024-06-29T00:31:48.237Z",
"zoneInfo": {
"customData": {
"Country": "USA",
"State": "Florida"
},
"destination": {
"destinationId": "bluedot",
"location": {
"longitude": 144.123123123,
"latitude": -33.123123123
},
"name": "Bluedot"
},
"id": "45f3a3be-c542-4dcd-aba7-20cb2e671e8a",
"name": "Bluedot zone"
},
"accountId": "39a22449-0000-4f2a-923c-1a78af0000",
"installRef": "557a54be-0000-43ef-830c-3ef816cd0000",
"triggerEvents": [
{
"applicationState": {
"batteryLevel": 40,
"blueBarEnabled": false,
"lastRuleUpdate": "2024-06-29T00:31:47.810Z",
"locationPermission": "while_using",
"viewState": "foreground"
},
"destinationId": "bluedot",
"eventTime": "2024-06-29T00:31:48.221Z",
"eventType": "fenceEntered",
"fenceId": "c87bfa51-505e-4c28-bfd9-215b1594e9c3",
"fenceName": "Fence 0",
"localEventTime": "2024-06-28T20:31:48.221",
"locations": [
{
"altitude": 100,
"bearing": -1,
"horizontalAccuracy": 12.232323,
"longitude": 144.123123123,
"latitude": -33.123123123,
"speed": -1,
"time": "2024-06-29T00:31:48.155Z",
"verticalAccuracy": 12.232323
}
],
"triggerEngine": "bd"
}
],
"projectId": "d12ee4ee-0f1a-4b58-b7f1-1c6ea3098gs"
},
"additionalFields": {
"body_field1": "value 1",
"body_field2": "value 2"
},
"webhookUniqueId": "0b816c7264a86200ce3523c48435b913d9d6b060" // only available when webhook retry is enabled
}
info

For information about the 1.0 version of the webhooks payload for Geo-triggering events, please refer to the Geo-triggering Webhooks Version 1.0 Documentation

For further assistance, please contact us at help@bluedot.io.