Skip to main content

Salesforce Marketing Cloud

Radar can send events to Salesforce Marketing Cloud to trigger journeys in Journey Builder.

Use the Salesforce Marketing Cloud integration to send location-triggered messages to increase engagement and conversion.

Configuration#

On the Salesforce Marketing Cloud Setup menu, under Installed Packages, click New. Add an installed package with the name Radar. On the package details page, add an API Integration component with the Server-to-Server integration type and all permissions for the Automation, Contacts, Cross Cloud Platform, and Data scopes. Copy your Client ID, Client Secret, Authentication Base URI, and REST Base URI.

Then, on the Radar Integrations page under Salesforce Marketing Cloud, set Enabled to Yes and paste these values. When you click Save, Radar will create an event definition and data extension with the specified event definition key (radar-event by default). Whenever events are generated, Radar will send events to your Salesforce Marketing Cloud data extension to trigger journeys.

In Salesforce Marketing Cloud's Contact Builder, under Data Designer, connect the Radar data extension to your data model by linking the Customer Data's Contact Key field to the Radar Data Extension's contactKey field in a one to many relationship.

To map a Radar user to a Salesforce Marketing Cloud contact, you must specify a custom mapping by setting Radar metadata.salesforceContactKey.

let contactKey = SFMCSdk.mp.contactKey()Radar.setMetadata(["salesforceContactKey": contactKey])

Verify integration data delivery#

To test that the integration is configured correctly and can deliver data, use the Simulator to generate events. Click View on an event row and scroll down to the Logs section on the details page to verify delivery. Perform a similar process via a test app build with Radar location tracking enabled by spoofing location or moving into the relevant boundary.

Verify integration event delivery

Additionally, check the Radar data extension in Salesforce's Contact Builder to verify records are delivering.

All integration delivery can be monitored via the integration's event logs by clicking View event logs on the Integrations page.

Example use cases#

Send a personalized push notification when a user arrives at a store#

  1. Create Geofences in Radar with the geofence tag set to store. The geofence tag will be used to trigger messages for the subset of geofence entries where this tag is present.
  2. Create a Salesforce Journey triggered by an API Event from the Radar data extension. The Radar data extension will be filtered on user.entered_geofence as the type attribute and store as the geofenceTag attribute.

Radar triggered Salesforce campaign

Message all users who have been nearby a store#

  1. Create Geofences in Radar to represent nearby store boundaries with geofence tag set to nearby-store. The geofence tag will be used to target messages for the subset of geofences where this tag has been present on an event in the last 7 days.
  2. Create a Salesforce Mobile List filtered on the Radar data extension attributes of type equal to user.entered_geofence, geofenceTag equal to nearby and createdAt set to the last 7 days.
  3. Create a Salesforce MobilePush Message with audience targeting set to the Salesforce Mobile List created in the step above.

Radar targeted Salesforce campaign

Event mapping#

user.entered_geofence#

Radar Event FieldSalesforce Event AttributeTypeExample
typetypestring"user.entered_geofence"
user.userIduserUserIdstring (max length 100)"1"
user.deviceIduserDeviceIdstring (max length 100)"10974a2ee035770b9"
geofence._idgeofenceIdstring"5b2c0906f5874b001aecfd8e"
geofence.descriptiongeofenceDescriptionstring (max length 100)"Store #123"
geofence.taggeofenceTagstring (max length 100)"store"
geofence.externalIdgeofenceExternalIdstring (max length 100)"123"
geofence.metadatageofenceMetadatastring (max length 4,000)'{"parking":false}'
confidenceconfidencestring"high"
foregroundforegroundbooleantrue

If Regions is enabled, Radar will also send the following attributes:

Radar Event FieldSalesforce Event AttributeTypeExample
country.codecountryCodestring"US"
country.namecountryNamestring"United States"
state.codestateCodestring"MD"
state.namestateNamestring"Maryland"
dma.codedmaCodestring"26"
dma.namedmaNamestring"Baltimore"
postalCode.codepostalCodestring"21014"

user.exited_geofence#

Radar Event FieldSalesforce Event AttributeTypeExample
typetypestring"user.exited_geofence"
user.userIduserUserIdstring (max length 100)"1"
user.deviceIduserDeviceIdstring (max length 100)"10974a2ee035770b9"
geofence._idgeofenceIdstring"5b2c0906f5874b001aecfd8e"
geofence.descriptiongeofenceDescriptionstring (max length 100)"Store #123"
geofence.taggeofenceTagstring (max length 100)"store"
geofence.externalIdgeofenceExternalIdstring (max length 100)"123"
geofence.metadatageofenceMetadatastring (max length 4,000)'{"parking":false}'
confidenceconfidencestring"high"
durationdurationnumber (minutes)42.1``foreground
foregroundforegroundbooleantrue

If Regions is enabled, Radar will also send the following attributes:

Radar Event FieldSalesforce Event AttributeTypeExample
country.codecountryCodestring"US"
country.namecountryNamestring"United States"
state.codestateCodestring"MD"
state.namestateNamestring"Maryland"
dma.codedmaCodestring"26"
dma.namedmaNamestring"Baltimore"
postalCode.codepostalCodestring"21014"

user.dwelled_in_geofence#

Radar Event FieldSalesforce Event AttributeTypeExample
typetypestring"user.exited_geofence"
user.userIduserUserIdstring (max length 100)"1"
user.deviceIduserDeviceIdstring (max length 100)"10974a2ee035770b9"
geofence._idgeofenceIdstring"5b2c0906f5874b001aecfd8e"
geofence.descriptiongeofenceDescriptionstring (max length 100)"Store #123"
geofence.taggeofenceTagstring (max length 100)"store"
geofence.externalIdgeofenceExternalIdstring (max length 100)"123"
geofence.metadatageofenceMetadatastring (max length 4,000)'{"parking":false}'
confidenceconfidencestring"high"
durationdurationnumber (minutes)5
foregroundforegroundbooleantrue

If Regions is enabled, Radar will also send the following attributes:

Radar Event FieldSalesforce Event AttributeTypeExample
country.codecountryCodestring"US"
country.namecountryNamestring"United States"
state.codestateCodestring"MD"
state.namestateNamestring"Maryland"
dma.codedmaCodestring"26"
dma.namedmaNamestring"Baltimore"
postalCode.codepostalCodestring"21014"

user.entered_place#

Radar Event FieldSalesforce Event AttributeTypeExample
typetypestring"user.entered_place"
user.userIduserUserIdstring (max length 100)"1"
user.deviceIduserDeviceIdstring (max length 100)"10974a2ee035770b9"
place._idplaceIdstring"59302bcf8f27e8a156bd4f91"
place.nameplaceNamestring"Starbucks"
place.chain.slugplaceChainSlugstring"starbucks"
place.chain.nameplaceChainNamestring"Starbucks"
place.chain.metadataplaceChainMetadatastring (max length 4,000)'{"parking":false}'
place.categoriesplaceCategoriesstring (comma-separated)"food-beverage,cafe,coffee-shop"
confidenceconfidencestring"high"
foregroundforegroundbooleantrue

If Regions is enabled, Radar will also send the following attributes:

Radar Event FieldSalesforce Event AttributeTypeExample
country.codecountryCodestring"US"
country.namecountryNamestring"United States"
state.codestateCodestring"MD"
state.namestateNamestring"Maryland"
dma.codedmaCodestring"26"
dma.namedmaNamestring"Baltimore"
postalCode.codepostalCodestring"21014"

user.exited_place#

Radar Event FieldSalesforce Event AttributeTypeExample
typetypestring"user.exited_place"
user.userIduserUserIdstring (max length 100)"1"
user.deviceIduserDeviceIdstring (max length 100)"10974a2ee035770b9"
place._idplaceIdstring"59302bcf8f27e8a156bd4f91"
place.nameplaceNamestring"Starbucks"
place.chain.slugplaceChainSlugstring"starbucks"
place.chain.nameplaceChainNamestring"Starbucks"
place.chain.metadataplaceChainMetadatastring (max length 4,000)'{"parking":false}'
place.categoriesplaceCategoriesstring (comma-separated)"food-beverage,cafe,coffee-shop"
confidenceconfidencestring"high"
durationdurationnumber (minutes)42.1
foregroundforegroundbooleantrue

If Regions is enabled, Radar will also send the following attributes:

Radar Event FieldSalesforce Event AttributeTypeExample
country.codecountryCodestring"US"
country.namecountryNamestring"United States"
state.codestateCodestring"MD"
state.namestateNamestring"Maryland"
dma.codedmaCodestring"26"
dma.namedmaNamestring"Baltimore"
postalCode.codepostalCodestring"21014"

user.entered_region_country#

Radar Event FieldSalesforce Event AttributeTypeExample Value
typetypestring"user.entered_region_country"
user.userIduserUserIdstring"1"
user.deviceIduserDeviceIdstring"10974a2ee035770b9"
region.coderegionCodestring"US"
region.nameregionNamestring"United States"
confidenceconfidencestring"high"
foregroundforegroundbooleantrue

user.exited_region_country#

Radar Event FieldSalesforce Event AttributeTypeExample Value
typetypestring"user.exited_region_country"
user.userIduserUserIdstring"1"
user.deviceIduserDeviceIdstring"10974a2ee035770b9"
region.coderegionCodestring"US"
region.nameregionNamestring"United States"
confidenceconfidencestring"high"
foregroundforegroundbooleantrue

user.entered_region_state#

Radar Event FieldSalesforce Event AttributeTypeExample Value
typetypestring"user.entered_region_state"
user.userIduserUserIdstring"1"
user.deviceIduserDeviceIdstring"10974a2ee035770b9"
region.coderegionCodestring"MD"
region.nameregionNamestring"Maryland"
confidenceconfidencestring"high"
foregroundforegroundbooleantrue

user.exited_region_state#

Radar Event FieldSalesforce Event AttributeTypeExample Value
typetypestring"user.exited_region_state"
user.userIduserUserIdstring"1"
user.deviceIduserDeviceIdstring"10974a2ee035770b9"
region.coderegionCodestring"MD"
region.nameregionNamestring"Maryland"
confidenceconfidencestring"high"
foregroundforegroundbooleantrue

user.entered_region_dma#

Radar Event FieldSalesforce Event AttributeTypeExample Value
typetypestring"user.entered_region_dma"
user.userIduserUserIdstring"1"
user.deviceIduserDeviceIdstring"10974a2ee035770b9"
region.coderegionCodestring"26"
region.nameregionNamestring"Baltimore"
confidenceconfidencestring"high"
foregroundforegroundbooleantrue

user.exited_region_dma#

Radar Event FieldSalesforce Event AttributeTypeExample Value
typetypestring"user.exited_region_dma"
user.userIduserUserIdstring"1"
user.deviceIduserDeviceIdstring"10974a2ee035770b9"
region.coderegionCodestring"26"
region.nameregionNamestring"Baltimore"
confidenceconfidencestring"high"
foregroundforegroundbooleantrue

user.started_trip#

Radar Event AttributeSalesforce Event AttributeTypeExample Value
trip.externalIdtripExternalIdstring (max length 100)"299"
trip.metadatatripMetadatastring (max length 4,000)'{"Car Model":"Green Honda Civic"}'
trip.destinationGeofenceTagtripDestinationGeofenceTagstring (max length 100)"store"
trip.destinationGeofenceExternalIdtripDestinationGeofenceExternalIdstring (max length 100)"123"
foregroundforegroundbooleantrue

user.updated_trip#

Radar Event AttributeSalesforce Event AttributeTypeExample Value
trip.externalIdtripExternalIdstring (max length 100)"299"
trip.metadatatripMetadatastring (max length 4,000)'{"Car Model":"Green Honda Civic"}'
trip.destinationGeofenceTagtripDestinationGeofenceTagstring (max length 100)"store"
trip.destinationGeofenceExternalIdtripDestinationGeofenceExternalIdstring (max length 100)"123"
foregroundforegroundbooleantrue

user.approaching_trip_destination#

Radar Event AttributeSalesforce Event AttributeTypeExample Value
trip.externalIdtripExternalIdstring (max length 100)"299"
trip.metadatatripMetadatastring (max length 4,000)'{"Car Model":"Green Honda Civic"}'
trip.destinationGeofenceTagtripDestinationGeofenceTagstring (max length 100)"store"
trip.destinationGeofenceExternalIdtripDestinationGeofenceExternalIdstring (max length 100)"123"
foregroundforegroundbooleantrue

user.arrived_at_trip_destination#

Radar Event AttributeSalesforce Event AttributeTypeExample Value
trip.externalIdtripExternalIdstring (max length 100)"299"
trip.metadatatripMetadatastring (max length 4,000)'{"Car Model":"Green Honda Civic"}'
trip.destinationGeofenceTagtripDestinationGeofenceTagstring (max length 100)"store"
trip.destinationGeofenceExternalIdtripDestinationGeofenceExternalIdstring (max length 100)"123"
foregroundforegroundbooleantrue

user.stopped_trip#

Radar Event AttributeSalesforce Event AttributeTypeExample Value
trip.externalIdtripExternalIdstring (max length 100)"299"
trip.metadatatripMetadatastring (max length 4,000)'{"Car Model":"Green Honda Civic"}'
trip.destinationGeofenceTagtripDestinationGeofenceTagstring (max length 100)"store"
trip.destinationGeofenceExternalIdtripDestinationGeofenceExternalIdstring (max length 100)"123"
foregroundforegroundbooleantrue

user.entered_beacon#

Radar Event AttributeSalesforce Event AttributeTypeExample Value
beacon._idbeaconIdstring"5b2c0906f5874b001aecfd8f"
beacon.descriptionbeaconDescriptionstring (max length 100)"Store #123 - Drive-Thru"
beacon.tagbeaconTagstring (max length 100)"drive-thru"
beacon.externalIdbeaconExternalIdstring (max length 100)"123"
beacon.metadatabeaconMetadatastring (max length 4,000)'{"type":"parking"}'
confidenceconfidencestring"high"
foregroundforegroundbooleantrue

user.exited_beacon#

Radar Event AttributeSalesforce Event AttributeTypeExample Value
beacon._idbeaconIdstring"5b2c0906f5874b001aecfd8f"
beacon.descriptionbeaconDescriptionstring (max length 100)"Store #123 - Drive-Thru"
beacon.tagbeaconTagstring (max length 100)"drive-thru"
beacon.externalIdbeaconExternalIdstring (max length 100)"123"
beacon.metadatabeaconMetadatastring (max length 4,000)'{"type":"parking"}'
confidenceconfidencestring"high"
durationdurationnumber (minutes)1.42
foregroundforegroundbooleantrue