Overview
Safari AI uses cameras and computer vision to count dispatches and estimate queues at your rides. The integration brings those counts into Mobaro: they’re stored as external dispatches and queue times for each mapped Location, feed your RideOps dashboard widgets, and can be shown to Operators in two RideOps widgets.
The integration is one-way: Mobaro fetches data from Safari AI and sends nothing back. Operators can keep logging dispatches and queue times in RideOps as usual; Safari AI data is kept alongside, not instead.
At a glance |
|
Who can do this | Super Users, or a Role with Organization › Administrate. Mapping a Location needs Locations › Modify |
Where | Configuration › Integrations › Safari AI, then Locations › a Location › RideOps Settings |
Works on | Backend (web) to set up. Data shows in RideOps, the Operational Log and Dashboards |
Availability | All organizations with RideOps and a Safari AI installation |
💡 Why this matters: Counting every cycle and estimating the queue by eye takes Operators’ attention away from the ride. Measured counts give you reliable throughput and wait-time data without extra taps.
What Mobaro receives
Every 5 minutes, Mobaro asks Safari AI for each mapped Location’s latest data, whether the ride is open or closed:
From Safari AI | Stored in Mobaro as |
Each dispatch: time, riders and utilization | External Dispatch entries |
Current estimated wait time and people in the queue | External Update Queue entries. Skipped when Safari AI reports no estimate |
You’ll see these entries in the Operational Log under External Dispatch and External Update Queue; they can’t be edited or deleted there. RideOps dashboard widgets use them when their source is set to External, and webhooks for Dispatches and Queue times fire for them. See RideOps dashboard widgets.
⚠️ Heads-up: Safari AI data doesn’t replace or override what Operators enter. Queue times posted in RideOps stay separate, and only those RideOps queue times are sent to the Attractions.io guest app, not Safari AI estimates.
Before you start
Safari AI installed at the rides, with a Client ID and Client Secret from Safari AI.
The Safari AI Location Id and Ride Id for each ride, also from Safari AI.
RideOps turned on for those Locations. See Setting up RideOps.
Set up the integration
1. Enter your Safari AI credentials
In the Backend, go to Configuration, open the Integrations tab and click the Safari AI card. Tick Enable integration to Safari AI, enter the Client ID and Client Secret (both required) and click Save. You’ll see Safari AI settings saved successfully.
2. Map each ride
Go to Locations, open the ride’s RideOps Settings and find Safari AI in the Widgets configuration panel. Enter the Location Id and Ride Id. These fields appear only once your organization’s credentials are saved.
3. Test the connection
Click Test Safari AI connection. On success you’ll see Safari AI connection test successful for the ride’s name in Safari AI, and the button turns to Safari AI connection test successful. If you see Safari AI connection test failed, check the IDs and credentials with Safari AI. Then save the RideOps Settings.
4. Show the widgets in RideOps
In the RideOps Configuration panel of the same dialog, tick Lock RideOps app configuration, then tick Show Safari AI dispatch widget and Show Safari AI queue time widget as needed. If you don’t lock the configuration, Operators can switch Safari AI dispatch widget and Safari AI queue widget on in the RideOps app’s settings.
What Operators see
Widget | Shows |
Safari AI dispatch widget | Last dispatch time, Riders and Utilization of the latest dispatch |
Safari AI queue widget | Queue time in minutes and Estimated people in queue |
Both widgets show when they were last updated and refresh about every 2 minutes. Operators don’t need to do anything in them. Their own dispatch and queue time widgets keep working as before; see Managing queues and dispatches in RideOps.
Turn the integration off
To stop one ride, clear its Location Id or Ride Id. To stop the whole organization, untick Enable integration to Safari AI and click Save; this clears the saved credentials, and the Safari AI widgets disappear from RideOps. Data already fetched stays in the Operational Log.
Best practices
Test the connection for every ride before you rely on its data.
Start with the queue widget on a few rides, compare it with Operators’ estimates, then roll out.
Set RideOps dashboard widgets to External to report on Safari AI data, and to RideOps for Operator-entered data.
If a widget’s last update is old, check with Safari AI that the ride’s camera is sending data.
Frequently asked questions
Do we need new hardware to use Safari AI?
Yes. Safari AI installs and configures its own cameras. Mobaro only connects to Safari AI’s data with the credentials and IDs they provide.
Can Operators still enter dispatches and queue times manually?
Yes. RideOps entries are stored separately from Safari AI data; neither overrides the other. Dashboard widgets report one source at a time.
Can I adjust the queue time from the desktop?
You can add or correct RideOps queue entries in the Operational Log, but Safari AI entries can’t be edited. See Updating and adding to the Operational Log.
Can we use Safari AI for only some rides?
Yes. Only Locations with both a Location Id and a Ride Id are fetched.
Does Mobaro show an error if Safari AI stops sending data?
No. Mobaro doesn’t show fetch errors in the Backend. The widgets’ last-updated time shows how fresh the data is; contact Mobaro Support if data stops arriving.

