Overview
A booking is a request from a Customer to complete a Service. A booking can consist of one or multiple Stops and optionally include Packages. While a Stop represents a task that needs to be completed at a certain location, a Package represents an item that can be tracked individually.
Bookings can be created through various channels, like the customer portal or via the API either directly by the customer or on behalf of the customer by a dispatcher.
Once created, bookings need to be dispatched either automatically or manually by a dispatcher. This means that it needs to be decided how and by whom the booking will be fulfilled. A typical approach is to bundle multiple bookings into optimized tours and then assign that tour to a specific driver or organization. Drivers will then use the Driver app to complete tours, which will then update the status of the booking as well.
The following concepts are essential to understand:
Please note that some of the key functionality related to Bookings, such the pickup or drop-off addresses as well as signature collection is actually part of the Stops feature. Please make sure to also read about stops to really understand Bookings.
Configuration
MotionTools allows Operators to offer different types of Service to their customers. When creating a booking, a customer would need to first select the Service they want to book. If an Operator only offers one Service, then all bookings will be created based on that service automatically. Services can have a name and a description and drive certain aspects of bookings of such service.
Admin users can create new and editing existing so called booking services in the settings section of MotionTools. Learn more about services in the dedicated feature page.
Stops
Stops are the most important part of a booking, since they are defining where a driver will have to go and typically include additional information needed to complete the task. A booking has to have at least one stop but can, depending on the configuration of the service, have up to 250 stops. A typical booking for a logistics services doing last mile deliveries has two stops, whereas the first one is a pickup and the second one a drop-off stop.
Stops contain at least an address, likely also contact details and could also have sub-tasks and specific instructions associated with it.
If packages have been created, there will be additional interactions on a stop to specifically ask a driver to e.g. scan a package to validate a pickup.
Learn more about stops here and about packages here.
Attributes
A booking has several standard and configurable attributes. While the configurable attributes are derived off of the Service, the standard attributes are always the same. MotionTools provides an API to easily understand the current configuration.
Some of the standard attributes are mandatory and thus will be set automatically to a default value in case they are not actively set when a new booking is created:
- Customer (default available)
- Service (default available)
- Capabilities (default configurable)
- Scheduled at (default configurable)
- Payment method (default available, extension needed)
- Order images and documents (optional)
- Voucher code (optional, extension needed)
- Additional information (optional)
- Metadata (optional)
Please click on the links of the individual attributes if you want know more about them.
Scheduling
The time at which a driver is supposed to perform a required task at a stop is defined for each booking as scheduled_at
time. This time can be set to now
or any moment in the future as long as it complies with the scheduling configuration of the service area in which the booking is being created and with the configuration of the service.
Status Model
A booking follows a defined, but configurable process which is influenced by various actions and also depends on the scheduling mode (instant or scheduled).
Which actions and statuses are supported depends on the configuration of a tenant, the type of the booking as well as the scheduling configuration of the service area that a booking is created in. Read more about the booking statuses and transitioning events here.
Editing
Booking can be edited after creation and before it is completed, e.g. to update one of the attributes mentioned above or also most of the attributes on stop-level. However, some restrictions may apply depending on the role of the user, the specific attribute as well as the status of a booking. On top of that, it is possible to configure certain parts, e.g. until when a customer can cancel a booking, via the service configuration.
Validation
When a booking is created, the corresponding data is automatically validated according to various rules and configurations as set in the service. This is to ensure that the data makes sense, that an operator can work with it and actually fulfill the request. Please read more about validations in a dedicated article.