Skip to main content
A geofence is a circle around a place you care about: a store, a venue, an airport. Your app’s signed-in users who allow location access report when they enter, leave or stay in one, and each visit becomes an event on their contact. Use those events to start sequences, branch them, and build segments.

Events

Every geofence event carries these properties, taken from the geofence when the event is recorded: Events never contain coordinates: they say which of your places the contact visited, not where they were. Dwell is worked out by Sequenzy, not the phone: when the dwell time has passed after an entry with no exit in between, app.geofence_dwelled is recorded. A phone that was offline can report its exit after that point, so a short visit close to the dwell time can occasionally count as a dwell.

Set up your app

Each mobile SDK has a geofencing add-on. It watches the geofences nearest to the user with the phone’s region monitoring, so visits are reported also while the app is in the background or closed. Only identified contacts are tracked: nothing is watched or sent before identify succeeds, and reset stops it. Your app needs “Always” location access with precise location.
Link the SequenzyGeofences product of https://github.com/Sequenzy/sequenzy-swift, and add NSLocationWhenInUseUsageDescription and NSLocationAlwaysAndWhenInUseUsageDescription to your Info.plist.
Call disable() when the user withdraws consent. On React Native and Flutter, native code reports visits while your JavaScript or Dart is not running, using the identity token the SDK last handed it, so configure an identityTokenProvider: tokens that expire within three days, or that are rejected, are replaced through it. A visit recorded without a connection is sent with the next visit, or when the app starts or opens, within 24 hours. Google Play asks apps that use background location for a declaration, and the App Store asks why you need “Always” access: say that the app tells users about places they arrive at. Apps that already monitor regions themselves can skip the add-on and call fetchNearbyGeofences and trackGeofenceTransition on the core SDK; see the client endpoints.

Add geofences

Add places under Settings > Channels > Geofences: click the map or paste coordinates or a Google Maps link, then set a radius. You can also import a CSV or GeoJSON file, or use the API, the CLI (sequenzy geofences) or the MCP server. A workspace can have up to 10,000 geofences. Pause one to stop it without losing its history. Adding, editing, pausing or deleting a geofence takes up to a minute to reach every server, and apps pick up the change on their next refresh.

Start a sequence on a visit

Pick Event received as the trigger and choose app.geofence_entered, app.geofence_exited or app.geofence_dwelled. A Geofence picker then lets you limit it to one geofence or a group. Through the API, CLI or MCP, the same trigger is an event trigger with a property filter, for example geofenceGroup equals stores or geofenceId one_of ["geo_123"].

Segment by visits

Add a Geofence condition to a segment: entered, left or stayed in any geofence, a group or one geofence, at least or fewer than a number of times, within a number of days or ever. “Didn’t happen” excludes contacts, so you can find customers who have not been to a store in 30 days. In API filters the field is geofence and the value is transition:target:timeRange, or transition:target:count:timeRange for count operators, for example entered:group=stores:30d or dwelled:id=geo_123:2:90d. Time windows count whole days in UTC, so “last 30 days” includes all of the day 30 days ago. Group conditions use each geofence’s current group.

Privacy

  • Geofencing only runs for signed-in users, after your app enables it and the user grants location access. Get your users’ consent as your local law requires.
  • To find the nearest geofences, the app sends its position rounded to about 1 km. Sequenzy does not store or log it.
  • Deleting a contact deletes their geofence events and visit counts.

Limits

To keep battery use and noise down, Sequenzy records at most 100 geofence transitions per contact per day, and ignores repeats inside a geofence’s cooldown. Phones watch only a few regions per app (20 on iOS, 100 on Android), so the SDK registers the geofences nearest to the user (19 on iOS, 49 on Android) plus one region around the device, and fetches the next ones when the device leaves it. Lower the SDK’s maxRegions if your app watches regions of its own.