> ## Documentation Index
> Fetch the complete documentation index at: https://radarlabs-rob-onesignal-api-migration.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Iterable

<Info>
  The Iterable integration is available on the [**Enterprise plan**](https://radar.com/pricing).
</Info>

Radar can send custom events and user data to [Iterable](https://iterable.com).

Use the Iterable integration to send location-triggered and location-targeted messages to increase engagement and conversion.

## Configuration

On the Iterable *API Keys* page, create and copy a Mobile API key.

Then, on the Radar [Integrations page](https://dashboard.radar.com/integrations) under *Iterable*, set *Enabled* to *Yes* and paste your key. Note that you can set separate keys for the *Test* and *Live* environments.

Whenever events are generated, Radar will send custom events and user data to Iterable.

User IDs must be aligned between Iterable and Radar for the integration to function properly. To do this, make sure you set the Radar user ID to match the Iterable user ID. For example, on iOS:

<CodeGroup>
  ```swift Swift theme={null}
  IterableAPI.userId = userId
  Radar.setUserId(userId)
  let dataField = ["userId": userId]
  IterableAPI.updateUser(dataField, mergeNestedObjects: false)
  ```

  ```kotlin Kotlin theme={null}
  IterableApi.getInstance().setUserId(userId)
  val dataFields = JSONObject()
  dataFields.put("userId",userId)
  IterableApi.getInstance().updateUser(dataFields)
  ```
</CodeGroup>

## Example use cases

Learn how to create powerful location-based messaging campaigns using Radar and Iterable.

### Send a personalized push notification when user is near a store

You'll need access to both Radar and Iterable to build this messaging campaign. In this campaign, we'll set up a simple push notification based on a Radar geofence entry event.

#### Configure geofences in Radar

1. First, ensure your [Geofences](/geofencing/geofences) are configured in Radar. For a "nearby" use case, we typically suggest something like a 500 meter radius. You may also want to take advantage of *isochrone* (time-based) geofences, which would allow you to define, for example, a geofence with boundaries set to all points within a 10 minute walk from your target location.
2. Note the **tag** for the nearby geofences you've set up in step one. You can find your geofence tags in Radar by viewing your [geofences](https://dashboard.radar.com/geofencing/geofences).

#### Create a new Journey in Iterable

3. In Iterable, navigate to [Journeys](https://app.iterable.com/workflows) and click **+ New journey**. For more on Journeys in Iterable, please refer to [Iterable's documentation](https://support.iterable.com/hc/en-us/articles/4405798856212-Introduction-to-Journeys-).
4. New Journeys in Iterable have a "start" node by default. Double click this node and change the **Received Api Trigger** dropdown value to **Triggered Custom Event**. Under *Event name*, start typing *Radar* and you should see a list of available events begin to auto-populate. Select *radarGeofenceEntered*.
5. Change the **Use Filter** option to *Yes*.
6. Where it says **Select a property**, start typing *RadarGeofence* and look for the *radarGeofenceEntered.geofenceTag* property. Set this property to *contain* (use Iterable's **Contains** operator) the tag you set up in step one and verified in step two.
7. Click **Update Node**.
8. Add a new node via Iterable's drag and drop functionality. For this example, drag in the **Send Push** node, then connect the *Start* node with the *Send Push* node.

#### Set up a push notification template in Iterable

9. Now, we'll need to create an [Iterable Template](https://support.iterable.com/hc/en-us/articles/205480315-Introduction-to-Templates-) to create a personalized push to be used for this campaign. Navigate to Content -> Templates, and click **+ New template** -> **Push** -> **Create template** (giving it a name as needed).
10. We're going to customize the title of the Template using data from Radar so your message can say "You're near `{{Store name}}` ", with `{{Store name}}` representing the name of the nearby store whose geofence the user has entered. In the **Title** text box, enter `**{{radarGeofenceEntered.geofenceDescription}}**`. This syntax is called *Handlebar* notation. You can read more about it in Iterable's [documentation](https://support.iterable.com/hc/en-us/articles/205480365-Using-Merge-Parameters-and-Handlebars-Logic-for-Personalization).
11. Add in a Push message, then click **Save Template**.
12. Back in the *Journey*, double click on the **Send mobile push** node and change the template to the one you just created.

#### Test your campaign

To test this campaign, you can either trigger the Journey on a test app by moving physically into the geofence, *or* you can take advantage of the [Radar simulator](/geofencing/testing#simulator). The simulator allows you to simulate a specific user as if they were moving throughout the world.

Navigate to the **Users** page in Radar and select a user who exists in Iterable and is linked via Radar user id. Then, click the *Simulate* button at the top of the page. Click around on the map and enter a geofence which will trigger the campaign you built in the steps above. If hooked up correctly, you should receive the relevant notification on your device.

### Filter users in an Iterable Journey whose last known location is X minutes away from a store

You'll need access to both Radar and Iterable to build this messaging campaign. In this example, we'll set up a push campaign that is sent to users who have opened an email associated with a specific Iterable campaign **and** are within 10 minutes drive of a store. We can add isochrone (time-based) geofences (via import, the UI, or the API) in Radar to support this use case.

#### Configure geofences in Radar

1. First, let's configure [Geofences](/geofencing/geofences) in Radar. Read more about creating geofences [here](/geofencing/geofences#create-geofences). Set up isochrone geofences with a 10 minute drive time.
2. Note the **tag** for the 10 minute drive geofences you've set up in step one. You can find your geofence tags in Radar by viewing your [geofences](https://dashboard.radar.com/geofencing/geofences).

#### Create a new Journey in Iterable

3. In Iterable, navigate to [Journeys](https://app.iterable.com/workflows) and click **+ New journey**. For more on Journeys in Iterable, please refer to [Iterable's documentation](https://support.iterable.com/hc/en-us/articles/4405798856212-Introduction-to-Journeys-).
4. Iterable will start your Journey with a "start" node by default. Double click this node and change the **Received Api Trigger** dropdown value to **Opened An Email**. Select the campaign and filter as desired. Click **Update Node**.
5. Now, we'll add a new node that filters this initial trigger down based on Radar data. Under *Filters* on the left sidebar of Iterable's Journey builder, drag **Fields Match** in below the Start node.
6. Double click on this new **Filter users** node. Where it says *Choose a property*, select *Contact Property*. Type in *radarGeofenceTags*, and set it to *contain* (use Iterable's **Contains** operator) the tag you set up in step one and verified in step two. Click **Update Node**.
7. Connect the *Start* node with the *Filter users* node.

#### Set up a push notification template in Iterable

8. Now, we'll need to create an [Iterable Template](https://support.iterable.com/hc/en-us/articles/205480315-Introduction-to-Templates-) to create a personalized push to be used for this campaign. Navigate to Content -> Templates, and click **+ New template** -> **Push** -> **Create template** (giving it a name as needed).
9. Add in a Push message, then click **Save Template**.
10. Back in the *Journey*, drag a *Send Push* action into the Journey builder. Double click on the **Send mobile push** node and change the template to the one you just created. Finally, drag from the *Yes* option under the *Filter users* node to the *Send Push* node to finish the Journey connection.

#### Test your campaign

To test this campaign, you can either trigger the Journey on a test app by moving physically into the geofence, *or* you can take advantage of the [Radar simulator](/geofencing/geofences/testing#simulator). The simulator allows you to simulate a specific user as if they were moving throughout the world.

Navigate to the **Users** page in Radar and select a user who exists in Iterable and is linked via Radar user id. Then, click the *Simulate* button at the top of the page. Click around on the map and enter a geofence which will trigger the campaign you built in the steps above. If hooked up correctly, you should receive the relevant notification on your device.

## User mapping

Note that Radar uses the special string `"(null)"` to represent `null` user data field values.

| Radar User Field                     | Iterable User Data Field                 | Type           | Example Value                              | Context Type                       |
| ------------------------------------ | ---------------------------------------- | -------------- | ------------------------------------------ | ---------------------------------- |
| `userId`                             | `userId`                                 | string         | `"1"`                                      |                                    |
| `location.coordinates[0]`            | `radar_geo_location.lon`                 | number         | `-76.350663`                               |                                    |
| `location.coordinates[1]`            | `radar_geo_location.lat`                 | number         | `39.525665`                                |                                    |
| `locationAuthorization`              | `radarLocationAuthorization`             | string         | `"GRANTED_FOREGROUND"`                     |                                    |
| `locationAccuracyAuthorization`      | `radarLocationAccuracyAuthorization`     | string         | `"FULL"`                                   |                                    |
| `_id`                                | `radarId`                                | string         | `"5b2c0906f5874b001aecfd8d"`               |                                    |
| `updatedAt`                          | `radarUpdatedAt`                         | timestamp      | `"2018-06-22T15:23:39.000Z"`               |                                    |
| `segments[*].externalId`             | `radarSegmentExternalIds`                | array\[string] | `["starbucks-visitors"]`                   |                                    |
| `topChains[*].slug`                  | `radarTopChainSlugs`                     | array\[string] | `["starbucks", "walmart"]`                 |                                    |
| `topChains[*].externalId`            | `radarTopChainExternalIds`               | array\[string] | `["123", "456"]`                           |                                    |
| `geofences[*]._id`                   | `radarGeofenceIds`                       | array\[string] | `["5b2c0906f5874b001aecfd8e"]`             | [Geofences](/geofencing/geofences) |
| `geofences[*].description`           | `radarGeofenceDescriptions`              | array\[string] | `["Store #123"]`                           | [Geofences](/geofencing/geofences) |
| `geofences[*].tag`                   | `radarGeofenceTags`                      | array\[string] | `["store"]`                                | [Geofences](/geofencing/geofences) |
| `geofences[*].externalId`            | `radarGeofenceExternalIds`               | array\[string] | `["123"]`                                  | [Geofences](/geofencing/geofences) |
| `place._id`                          | `radarPlaceId`                           | string         | `"59302bcf8f27e8a156bd4f91"`               | [Places](/geofencing/places)       |
| `place.name`                         | `radarPlaceName`                         | string         | `"Starbucks"`                              | [Places](/geofencing/places)       |
| `place.categories`                   | `radarPlaceCategories`                   | array\[string] | `["food-beverage", "cafe", "coffee-shop"]` | [Places](/geofencing/places)       |
| `place.chain.slug`                   | `radarPlaceChainSlug`                    | string         | `"starbucks"`                              | [Places](/geofencing/places)       |
| `place.chain.name`                   | `radarPlaceChainName`                    | string         | `"Starbucks"`                              | [Places](/geofencing/places)       |
| `country.code`                       | `radarRegionCountryCode`                 | string         | `"US"`                                     | [Regions](/geofencing/regions)     |
| `country.name`                       | `radarRegionCountryName`                 | string         | `"United States"`                          | [Regions](/geofencing/regions)     |
| `state.code`                         | `radarRegionStateCode`                   | string         | `"MD"`                                     | [Regions](/geofencing/regions)     |
| `state.name`                         | `radarRegionStateName`                   | string         | `"Maryland"`                               | [Regions](/geofencing/regions)     |
| `dma.code`                           | `radarRegionDMACode`                     | string         | `"26"`                                     | [Regions](/geofencing/regions)     |
| `dma.name`                           | `radarRegionDMAName`                     | string         | `"Baltimore"`                              | [Regions](/geofencing/regions)     |
| `postalCode.code`                    | `radarRegionPostalCode`                  | string         | `"21014"`                                  | [Regions](/geofencing/regions)     |
| `trip.externalId`                    | `radarTripExternalId`                    | string         | `"299"`                                    | [Trip Tracking](/geofencing/trips) |
| `trip.destinationGeofenceTag`        | `radarTripDestinationGeofenceTag`        | string         | `"store"`                                  | [Trip Tracking](/geofencing/trips) |
| `trip.destinationGeofenceExternalId` | `radarTripDestinationGeofenceExternalId` | string         | `"123"`                                    | [Trip Tracking](/geofencing/trips) |
| `beacons[*]._id`                     | `radarBeaconIds`                         | array\[string] | `["5b2c0906f5874b001aecfd8f"]`             | [Beacons](/geofencing/beacons)     |
| `beacons[*].description`             | `radarBeaconDescriptions`                | array\[string] | `["Store #123 - Drive-Thru"]`              | [Beacons](/geofencing/beacons)     |
| `beacons[*].tag`                     | `radarBeaconTags`                        | array\[string] | `["drive-thru"]`                           | [Beacons](/geofencing/beacons)     |
| `beacons[*].externalId`              | `radarBeaconExternalIds`                 | array\[string] | `["123"]`                                  | [Beacons](/geofencing/beacons)     |

## Event mapping

| Radar Event                         | Context Type                       | Iterable Event                    |
| ----------------------------------- | ---------------------------------- | --------------------------------- |
| `user.entered_geofence`             | [Geofences](/geofencing/geofences) | `radarGeofenceEntered`            |
| `user.exited_geofence`              | [Geofences](/geofencing/geofences) | `radarGeofenceExited`             |
| `user.dwelled_in_geofence`          | [Geofences](/geofencing/geofences) | `radarDwelledInGeofence`          |
| `user.entered_place`                | [Places](/geofencing/places)       | `radarPlaceEntered`               |
| `user.exited_place`                 | [Places](/geofencing/places)       | `radarPlaceExited`                |
| `user.entered_region_country`       | [Regions](/geofencing/regions)     | `radarCountryEntered`             |
| `user.exited_region_country`        | [Regions](/geofencing/regions)     | `radarCountryExited`              |
| `user.entered_region_state`         | [Regions](/geofencing/regions)     | `radarStateEntered`               |
| `user.exited_region_state`          | [Regions](/geofencing/regions)     | `radarStateExited`                |
| `user.entered_region_dma`           | [Regions](/geofencing/regions)     | `radarDMAEntered`                 |
| `user.exited_region_dma`            | [Regions](/geofencing/regions)     | `radarDMAExited`                  |
| `user.started_trip`                 | [Trip Tracking](/geofencing/trips) | `radarTripStarted`                |
| `user.updated_trip`                 | [Trip Tracking](/geofencing/trips) | `radarTripUpdated`                |
| `user.approaching_trip_destination` | [Trip Tracking](/geofencing/trips) | `radarApproachingTripDestination` |
| `user.arrived_at_trip_destination`  | [Trip Tracking](/geofencing/trips) | `radarArrivedTripDestination`     |
| `user.stopped_trip`                 | [Trip Tracking](/geofencing/trips) | `radarTripStopped`                |
| `user.entered_beacon`               | [Beacons](/geofencing/beacons)     | `radarBeaconEntered`              |
| `user.exited_beacon`                | [Beacons](/geofencing/beacons)     | `radarBeaconExited`               |

### radarGeofenceEntered

| Radar Event Field          | Iterable Event Data Field | Type    | Example                      |
| -------------------------- | ------------------------- | ------- | ---------------------------- |
| `geofence._id`             | `geofenceId`              | string  | `"5b2c0906f5874b001aecfd8e"` |
| `geofence.description`     | `geofenceDescription`     | string  | `"Store #123"`               |
| `geofence.tag`             | `geofenceTag`             | string  | `"store"`                    |
| `geofence.externalId`      | `geofenceExternalId`      | string  | `"123"`                      |
| `geofence.metadata[{key}]` | `geofenceMetadata{key}`   | type    | `{value}`                    |
| `confidence`               | `confidence`              | string  | `"high"`                     |
| `foreground`               | `foreground`              | boolean | `true`                       |

### radarGeofenceExited

| Radar Event Field          | Iterable Event Data Field | Type             | Example                      |
| -------------------------- | ------------------------- | ---------------- | ---------------------------- |
| `geofence._id`             | `geofenceId`              | string           | `"5b2c0906f5874b001aecfd8e"` |
| `geofence.description`     | `geofenceDescription`     | string           | `"Store #123"`               |
| `geofence.tag`             | `geofenceTag`             | string           | `"store"`                    |
| `geofence.externalId`      | `geofenceExternalId`      | string           | `"123"`                      |
| `geofence.metadata[{key}]` | `geofenceMetadata{key}`   | type             | `{value}`                    |
| `confidence`               | `confidence`              | string           | `"high"`                     |
| `duration`                 | `duration`                | number (minutes) | `42.1`                       |
| `foreground`               | `foreground`              | boolean          | `true`                       |

### radarDwelledInGeofence

| Radar Event Field          | Iterable Event Data Field | Type             | Example                      |
| -------------------------- | ------------------------- | ---------------- | ---------------------------- |
| `geofence._id`             | `geofenceId`              | string           | `"5b2c0906f5874b001aecfd8e"` |
| `geofence.description`     | `geofenceDescription`     | string           | `"Store #123"`               |
| `geofence.tag`             | `geofenceTag`             | string           | `"store"`                    |
| `geofence.externalId`      | `geofenceExternalId`      | string           | `"123"`                      |
| `geofence.metadata[{key}]` | `geofenceMetadata{key}`   | type             | `{value}`                    |
| `confidence`               | `confidence`              | string           | `"high"`                     |
| `duration`                 | `duration`                | number (minutes) | `5`                          |
| `foreground`               | `foreground`              | boolean          | `true`                       |

### radarPlaceEntered

| Radar Event Field             | Iterable Event Data Field | Type           | Example                                    |
| ----------------------------- | ------------------------- | -------------- | ------------------------------------------ |
| `place._id`                   | `placeId`                 | string         | `"59302bcf8f27e8a156bd4f91"`               |
| `place.name`                  | `placeName`               | string         | `"Starbucks"`                              |
| `place.chain.slug`            | `placeChainSlug`          | string         | `"starbucks"`                              |
| `place.chain.name`            | `placeChainName`          | string         | `"Starbucks"`                              |
| `place.categories`            | `placeCategories`         | array\[string] | `["food-beverage", "cafe", "coffee-shop"]` |
| `place.chain.externalId`      | `placeChainExternalId`    | string         | `"123"`                                    |
| `place.chain.metadata[{key}]` | `placeChainMetadata{key}` | type           | `{value}`                                  |
| `confidence`                  | `confidence`              | string         | `"high"`                                   |
| `foreground`                  | `foreground`              | boolean        | `true`                                     |

### radarPlaceExited

| Radar Event Field             | Iterable Event Data Field | Type             | Example                                    |
| ----------------------------- | ------------------------- | ---------------- | ------------------------------------------ |
| `place._id`                   | `placeId`                 | string           | `"59302bcf8f27e8a156bd4f91"`               |
| `place.name`                  | `placeName`               | string           | `"Starbucks"`                              |
| `place.chain.slug`            | `placeChainSlug`          | string           | `"starbucks"`                              |
| `place.chain.name`            | `placeChainName`          | string           | `"Starbucks"`                              |
| `place.categories`            | `placeCategories`         | array\[string]   | `["food-beverage", "cafe", "coffee-shop"]` |
| `place.chain.externalId`      | `placeChainExternalId`    | string           | `"123"`                                    |
| `place.chain.metadata[{key}]` | `placeChainMetadata{key}` | type             | `{value}`                                  |
| `confidence`                  | `confidence`              | string           | `"high"`                                   |
| `duration`                    | `duration`                | number (minutes) | `42.1`                                     |
| `foreground`                  | `foreground`              | boolean          | `true`                                     |

### radarCountryEntered

| Radar Event Field | Iterable Event Data Field | Type    | Example Value     |
| ----------------- | ------------------------- | ------- | ----------------- |
| `region.code`     | `regionCode`              | string  | `"US"`            |
| `region.name`     | `regionName`              | string  | `"United States"` |
| `confidence`      | `confidence`              | string  | `"high"`          |
| `foreground`      | `foreground`              | boolean | `true`            |

### radarCountryExited

| Radar Event Field | Iterable Event Data Field | Type    | Example Value     |
| ----------------- | ------------------------- | ------- | ----------------- |
| `region.code`     | `regionCode`              | string  | `"US"`            |
| `region.name`     | `regionName`              | string  | `"United States"` |
| `confidence`      | `confidence`              | string  | `"high"`          |
| `foreground`      | `foreground`              | boolean | `true`            |

### radarStateEntered

| Radar Event Field | Iterable Event Data Field | Type    | Example Value |
| ----------------- | ------------------------- | ------- | ------------- |
| `region.code`     | `regionCode`              | string  | `"MD"`        |
| `region.name`     | `regionName`              | string  | `"Maryland"`  |
| `confidence`      | `confidence`              | string  | `"high"`      |
| `foreground`      | `foreground`              | boolean | `true`        |

### radarStateExited

| Radar Event Field | Iterable Event Data Field | Type    | Example Value |
| ----------------- | ------------------------- | ------- | ------------- |
| `region.code`     | `regionCode`              | string  | `"MD"`        |
| `region.name`     | `regionName`              | string  | `"Maryland"`  |
| `confidence`      | `confidence`              | string  | `"high"`      |
| `foreground`      | `foreground`              | boolean | `true`        |

### radarDMAEntered

| Radar Event Field | Iterable Event Data Field | Type    | Example Value |
| ----------------- | ------------------------- | ------- | ------------- |
| `region.code`     | `regionCode`              | string  | `"26"`        |
| `region.name`     | `regionName`              | string  | `"Baltimore"` |
| `confidence`      | `confidence`              | string  | `"high"`      |
| `foreground`      | `foreground`              | boolean | `true`        |

### radarDMAExited

| Radar Event Field | Iterable Event Data Field | Type    | Example Value |
| ----------------- | ------------------------- | ------- | ------------- |
| `region.code`     | `regionCode`              | string  | `"26"`        |
| `region.name`     | `regionName`              | string  | `"Baltimore"` |
| `confidence`      | `confidence`              | string  | `"high"`      |
| `foreground`      | `foreground`              | boolean | `true`        |

### radarTripStarted

| Radar Event Attribute                | Iterable Event Data Field       | Type    | Example Value |
| ------------------------------------ | ------------------------------- | ------- | ------------- |
| `trip.externalId`                    | `tripExternalId`                | string  | `"299"`       |
| `trip.metadata[{key}]`               | `tripMetadata{key}`             | type    | `{value}`     |
| `trip.destinationGeofenceTag`        | `destinationGeofenceTag`        | string  | `"store"`     |
| `trip.destinationGeofenceExternalId` | `destinationGeofenceExternalId` | string  | `"123"`       |
| `foreground`                         | `foreground`                    | boolean | `true`        |

### radarApproachingTripDestination

| Radar Event Attribute                | Iterable Event Data Field       | Type    | Example Value |
| ------------------------------------ | ------------------------------- | ------- | ------------- |
| `trip.externalId`                    | `tripExternalId`                | string  | `"299"`       |
| `trip.metadata[{key}]`               | `tripMetadata{key}`             | type    | `{value}`     |
| `trip.destinationGeofenceTag`        | `destinationGeofenceTag`        | string  | `"store"`     |
| `trip.destinationGeofenceExternalId` | `destinationGeofenceExternalId` | string  | `"123"`       |
| `foreground`                         | `foreground`                    | boolean | `true`        |

### radarArrivedTripDestination

| Radar Event Attribute                | Iterable Event Data Field       | Type    | Example Value |
| ------------------------------------ | ------------------------------- | ------- | ------------- |
| `trip.externalId`                    | `tripExternalId`                | string  | `"299"`       |
| `trip.metadata[{key}]`               | `tripMetadata{key}`             | type    | `{value}`     |
| `trip.destinationGeofenceTag`        | `destinationGeofenceTag`        | string  | `"store"`     |
| `trip.destinationGeofenceExternalId` | `destinationGeofenceExternalId` | string  | `"123"`       |
| `foreground`                         | `foreground`                    | boolean | `true`        |

### radarTripStopped

| Radar Event Attribute                | Iterable Event Data Field       | Type    | Example Value |
| ------------------------------------ | ------------------------------- | ------- | ------------- |
| `trip.externalId`                    | `tripExternalId`                | string  | `"299"`       |
| `trip.metadata[{key}]`               | `tripMetadata{key}`             | type    | `{value}`     |
| `trip.destinationGeofenceTag`        | `destinationGeofenceTag`        | string  | `"store"`     |
| `trip.destinationGeofenceExternalId` | `destinationGeofenceExternalId` | string  | `"123"`       |
| `foreground`                         | `foreground`                    | boolean | `true`        |

### radarBeaconEntered

| Radar Event Attribute    | Iterable Event Data Field | Type    | Example Value                |
| ------------------------ | ------------------------- | ------- | ---------------------------- |
| `beacon._id`             | `beaconId`                | string  | `"5b2c0906f5874b001aecfd8f"` |
| `beacon.description`     | `beaconDescription`       | string  | `"Store #123 - Drive-Thru"`  |
| `beacon.tag`             | `beaconTag`               | string  | `"drive-thru"`               |
| `beacon.externalId`      | `beaconExternalId`        | string  | `"123"`                      |
| `beacon.metadata[{key}]` | `beaconMetadata{key}`     | type    | `{value}`                    |
| `confidence`             | `confidence`              | string  | `"high"`                     |
| `foreground`             | `foreground`              | boolean | `true`                       |

### radarBeaconExited

| Radar Event Attribute    | Iterable Event Data Field | Type             | Example Value                |
| ------------------------ | ------------------------- | ---------------- | ---------------------------- |
| `beacon._id`             | `beaconId`                | string           | `"5b2c0906f5874b001aecfd8f"` |
| `beacon.description`     | `beaconDescription`       | string           | `"Store #123 - Drive-Thru"`  |
| `beacon.tag`             | `beaconTag`               | string           | `"drive-thru"`               |
| `beacon.externalId`      | `beaconExternalId`        | string           | `"123"`                      |
| `beacon.metadata[{key}]` | `beaconMetadata{key}`     | type             | `{value}`                    |
| `confidence`             | `confidence`              | string           | `"high"`                     |
| `duration`               | `duration`                | number (minutes) | `1.42`                       |
| `foreground`             | `foreground`              | boolean          | `true`                       |
