What are runs?
A run is a group of related bookings that happen together, at the same time. Think of a run as the actual tour departure—the physical event where guides show up, passengers arrive, and the experience happens. For example, if you have a morning kayak tour at 9:00 AM, that’s one run. Multiple customers might book that same tour, and each booking creates an event. All those events belong to the same run because they’re happening together. Another example: a private tour for the Smith family and a private tour for the Jones family might be separate bookings (separate events), but if you decide to combine them and run them together with the same guides at the same time, they become part of the same run.Runs and events: a two-level model
Helm organizes bookings using two connected concepts: runs and events. Events are individual bookings. When a customer makes a reservation, that creates an event. Each event has its own passengers, contact information, pickup details, and booking-specific information like experience type, rate, and status. Runs are containers for one or more events. Every event must belong to a run—events cannot exist independently. When you create an event, Helm automatically creates a run for it, or adds it to an existing run if you’re booking into an already-scheduled departure. This two-level structure exists because tours have both booking-level information (specific to each customer) and operational-level information (shared across all customers on that departure). By separating these concerns, Helm can manage both individual bookings and the logistics of running the actual tour.What belongs to runs vs events
Understanding what lives at the run level versus the event level helps you know where to look for information and where changes will apply. Run-level resources are shared across all events in the run:- Guide assignments – which guides are leading this departure
- Tickets – inventory allocation for the run
- Comments and comment drafts – operational notes about the run
- App invitations – invitations sent to guides or staff
- Google Calendar event – the calendar entry for this departure
- Passengers – who’s coming on this booking
- Main contact – the customer contact for this booking
- Pickup details – where to pick up these passengers
- Notes – booking-specific information (these sync across events in the same run, so all events share the same notes)
- Experience – which tour/activity this booking is for
- Rate – pricing for this booking
- Status – whether this booking is confirmed, cancelled, etc.
- Language – preferred language for this booking
Primary events
When a run contains multiple events, Helm needs to know which event’s information to use for run-level details like the run title, experience type, rate, and pickup information. The event that serves this role is called the primary event (sometimes called the canonical event). The primary event is the source of truth for:- Run title and display information
- Experience type shown at the run level
- Default rate and pricing information for the run
- Reference pickup details
- Origin – events created directly in Helm are preferred over imported events
- Completeness – events with more complete information are preferred
- Recency – more recently created or updated events are preferred
How runs are created
Runs are created in two ways: Automatically when events are created – When you create a new booking (event), Helm automatically creates a run to contain it. This happens whether you’re creating a booking manually, importing from a reservation system, or receiving a booking from an online booking widget. Manually by merging events – You can take multiple existing events (each in their own run) and merge them together into a single run. This is useful when you have separate bookings that you want to operate as one departure. See the merge and unmerge documentation for details on how this works.Run statuses
Runs have statuses that indicate their operational state: OK – The run is in a consistent, normal state. All events in the run are compatible and the run is ready to operate. INCONSISTENT – The run has issues that need attention. This typically happens when:- Events in the run have been partially cancelled (some events are cancelled, others are not)
- Events have conflicting information that makes them incompatible
- The run’s data is out of sync in a way that needs manual resolution

