Native Booking App for Salesforce [In-Depth Review]

By Andreea Doroftei

Organizations that need to manage reservations require an effective and centralized way to support both internal teams and customer teams – it can be quite challenging to find a solution that does it all. On top of this, ensuring reservation management is fully aligned with your Salesforce org isn’t as simple as one may think – this is especially true for retail, education, and health organizations.

While Salesforce’s Lightning Scheduler is an option, it’s focused on appointment booking, and so, it cannot cater for all booking scenarios. On the other hand, opting to build an in-house custom solution from scratch will involve significant time to build, test, and maintain. In the end, this might not justify the cost required to maintain and improve the system.

Booker25 is a seamless end-to-end scheduling experience. Built on the Salesforce platform, this application can be customized to meet any organization’s specific requirements. Already implemented by various companies, Booker25 is effective in multiple scenarios. It is also a more cost-effective option, guaranteed to improve your existing processes.

This in-depth review will dive into Booker25’s features, ideal use cases, and setup effort, as well as the different ways this app could be a great addition to your Salesforce org.


We’ll explore the full capabilities of Booker25 in the Lightning Experience. Some components, such as Visualforce pages added to records, can be accessed from Salesforce Classic as well.

Before we get into the details, it’s worth giving an overview of how the main objects are related:  

First, let’s explore the Calendar user interface that your team and customers will use through your website, apps, or community (Experience Cloud). 


The allotted length of time is the main focus whenever it comes to a booking or appointment – whether that’s in the calendar of an individual or an events venue. We’ll use the standard Contact object as our example to save time while exploring the Calendar functionality. The Contact, along with the Resources, Groups, and Staff custom objects have their Booker25 specific setup (we’ll share more details later on) in place out-of-the-box. 

The focus will be on Lightning Calendars. Multi- and single Lightning Web Components embed calendars on Lightning Record Pages. Booker25 does provide a Visualforce Calendar option, should you need it. Obviously, different attributes can be set on the Calendar record, such as the option to show slots in the user’s timezone.

The Calendar View is a junction object used to connect Calendars with the actual Views. There are quite a few other related objects – you can find further details here.

When it comes to the Views, Booker25 provides both single and multi Calendar options with even more granular attributes available through a daily, weekly, or monthly lens – essentially, views define how a Calendar looks. Even though there are only three out-of-the-box options, there’s nothing that can stop us from creating a ‘working week’, quarterly, or yearly view.

On top of being able to control the aspects of the Calendar, Booker25 also provides filter options for users to tailor their view exactly as they need it to be – these can be Dimension or Reservation Filters, which can be used either separately or together.

Regardless of whether you choose to use a simple filter or a filter group, any custom or standard field from the respective objects can be used within the logic.

It is also worth checking out the Calendar Differences between Lightning and Visualforce Calendars for a more detailed overview. 

Dimensions and Resource Types

Since the Calendar view available for our Test Contact above most likely piqued your interest, it’s time to deep dive into the “how” of obtaining such a view for anything you use instead of a Contact. 

Dimensions are anything you can book; from people to meeting rooms, to classes, dimensions and represent the pillars of any booking process in Booker25. 

As mentioned above, Resources, Groups, Staff, and the standard Contact object are set up out-of-the-box, hence their corresponding dimensions are already available. You can, however, decide to set up as many dimensions as required, for either custom or standard objects. 

This comes in handy when you already have an object containing all the items you want to book. Imagine you have a fleet of cars that you want to book. These cars are already stored in the custom object Car__c, which contains validation rules, automation, etc. You wouldn’t want to migrate or sync this data over to the Resource object. And with Dimensions, you don’t need to – just create a Dimension for the Car__c object, and Booker25 will let you create a Car calendar for that object. Easy as that!

Resource Types are another key pillar of Booker25, and these can be whatever you need them to be. In this example, we’re talking about two types of locations available to rent in a country that is part of a wider region. 

You can set various attributes for each Resource Type, allowing granular control over each of them, such as price setting.

The ‘is reservable’ checkbox will define a Resource of that type as being reservable on the calendar. This means that in practice, a user will be able to click and drag on the calendar on that specific Resource – this action will open up the Reservation Form with start and end date-times prefilled – depending on how the user clicked and dragged-, allowing them to make a reservation for the time slot they chose.


Similar to Resource Types, the resources can be set up in a hierarchy to your liking. While the attributes from the Resource Types will define certain things, details about the specific resource, as well as the timezone, are defined at each resource’s level.

Starting with a new resource, Room 1 is defined as a reservable Dining Hall. This is one more example that the resources can be whatever makes sense for your particular use case – either employee offering professional services or even different kinds of venues.

After the attributes of the resource are defined, the availability (or unavailability for that matter) can be created as related records.

This is the step when a Staff member or Contact (or both) can be chosen. The availability will be related to the Resource (which we will review in the Calendar section) as well as to the Contact.

For the Calendar to be available on the Contact itself, one of the custom Lightning Components needs to be added to the Record Page. The availability, along with the unavailability defined earlier, become obvious on the record – if any updates are made, the view will be dynamically refreshed to reflect them.


A reservation can be created in various ways, but the easiest method is definitely from a calendar, corresponding to either the Resource, Contact or any other Dimension calendar. All relevant details, from the date/time to the possibility of having a recurrence set up, can be added during the creation of the reservation itself. Furthermore, the reservation form can be customized with any extra fields needed for particular scenarios – this is achieved by adding them into the existing Field Set layout from the Reservation object.

Exactly as you can change colours within the Google or Outlook calendars, Booker25 made sure this little user experience gem is a possibility within their solution as well. As a related object to the Calendar object, Reservation Colors can be created easily and attributed to a certain Reservation Status or Reservation Type. As an example, users can distinguish seamlessly between the kinds of meetings they should prepare for.

In less than two minutes, the difference between the reservations becomes clear – and it doesn’t even require deep-diving into further details of the records.

There are a few other available tricks worth exploring, such as customizing the Resource Hover or adding additional fields on calendar resources, which can make the end user’s life much easier!

Conflict Detection

Booker25 provides three ways – referred to as Conflict Types – to control how resources are booked, based on availability, possibility of double booking, and capacity. Our example is a support resource – hence, we can test out one that doesn’t require any additional settings and makes sense for many use cases, such as the Availability Checking. 

Since, by now, you are most likely familiar with the concept of dimensions, this is where all the conflict checking magic starts. 

If you have ever created Salesforce duplicate rules, then understanding the Booker25 conflict checking mechanism will be a piece of cake! Availability Checking can be set to either None, Soft, or Hard on the related Dimension Field record from the Contact dimension.

The chosen availability checking behaviour is enforced as soon as the Reservation record is saved, but it also appears on the top-right corner of the reservation form at all times when creating a reservation. 

If Availability Checking is set to “Hard”, the user will be prevented from saving the reservation if the slot is already booked. The “Soft” option gives the user a warning (and creates a conflict record related to the reservation(s), that can be used for approval processes or reports for example), while “None” allows them to schedule anything as they please.

P.S. For example, if the Resource is a cooking class then the “Allow double bookings” checkbox available when setting up the resource type will easily support this scenario with multiple participants who should be able to reserve a slot too – this way conflicts won’t exist.

Gmail and Outlook Integrations

Since email is usually the first place meetings are set up following a conversation, the fact that Booker25 can be integrated with both Google Calendar and Outlook Calendar is something definitely worth highlighting. 

By installing the extension package for either Google Calendar or Outlook Calendar (or both if needed) the Booker25 Dimensions, such as Contacts, can be synced with the respective calendar once the particular setup steps are completed.

Make sure to reach out to prior to starting the set-up – you can then have a few free licenses provisioned to help you get going!  

Reports and Dashboards Readily Available

By providing out-of-the-box Reports, Booker25 ensures you and your team save time which can, in turn, be better invested in customer interactions. 

Each and every one of the 27 (for now) reports has a clear description and can be made publicly available to all users. On top of this, the package also comes with a Dashboard so that you can have a clear overview of all relevant records right from the start. 

Of course, you can use the reports exactly as they are, or further modify and clone them – it will definitely be faster than starting everything from scratch!

Use Cases

Within the current global context, most industries (especially grocery stores) have had to quickly adapt to support the rise in demand, while also implementing social distancing measures. This has led to better organising of various appointments, reservations, or even classes.


Booker25 can help customers by quickly selecting a slot for them to reserve and pick up their order. Moreover, everything can be customized and branded to better represent individual companies. 

The Booker25 widget allows the creation of either Leads or Contacts, with granular control over the resources and time slots that can be selected by the end-user. It’s a piece of Javascript that can easily be added to any customer-facing website, similar to a Web-to-Case form.

Ultimately, this ensures smooth and quick order management experience for both the store (by leveraging all their CRM data) and also for the customers, by empowering them through a self-service centred model.

Events and Hospitality

Going back to the Resources and Types referenced above, venue or hotel room booking, for example, is the easiest to set up and define once the business model, hierarchy, and prices are clear.

Booker25 can also help businesses during the busiest times of the year, such as Christmas and New Year’s Eve through ensuring the right services and venue space can be selected specifically for those times – we all know that the location, as well as the menu, play big parts into making the event a success.

Additional criteria, such as pre-defined space capacity and eventual attendee preference, can always be considered. Even more so, the possibility of custom branding and the always-available website widget will ensure customer satisfaction from the first website visit until check-out! 


A large number of universities have been offering fully or partially online remote learning options for quite a few years now. Furthermore, due to the prolonged duration of the process, mailing application form papers is definitely not a feasible way of working anymore. 

Booker25 is an EDA compliant tool that can help such institutions keep their student data up to date, along with the possibility of transforming the application process, as well as class enrollment. This is a fully online experience that is 100% in sync with 21st-century student expectations when it comes to digital transformation. 


The impact in productivity, as well as user and customer experience, that Booker25 brings is undeniable. For example, forget about back-and-forth discussions for booking a meeting with multiple internal attendees, which would eventually lead to manually creating it in Salesforce!

Thanks to the seamless calendar integration and the possibility of customizing everything according to your organisation’s model, this app is going to massively improve your team’s way of working.   


Following the installation of the AppExchange managed package, the actual setup of Booker25 (to your liking) takes time, depending on the complexity of your desired configuration. However, it is supported by thorough documentation to help you out along the way.

While 55 Custom Objects (which don’t count against your org’s limits, as this is a Security Reviewed managed package) might seem like a lot of components to go through, your users can already benefit from the basic functionality. They will also start to understand the way the tool works once the Resource configuration is in place, tailored to your org’s needs.

On top of this, all required permission sets are included in the package, hence lowering the implementation and enablement effort even more.

Documentation and Support

The Booker25 team is keen to ensure that all the product documentation is up to date and covers both the users’ and the admins’ potential questions. The functional and technical documentation is stored in Confluence and can be easily accessed from the Booker25 website.

Furthermore, there are a few really helpful videos worth checking out – these can be found on the Gen25 YouTube channel.


The pricing model for Booker25 is really simple and straightforward – assuming you already have a Salesforce org, €29/user/month will ensure access to the entire functionality for users.

New to Salesforce Sales or Service Cloud? Booker25 covers this scenario as well, with the €79 admin user license, which contains both a Salesforce Platform and a Booker25 license.


Being native to Salesforce, Booking25 ensures that, not only are all your scheduling needs met directly within your CRM, but also that your existing data can be used to enhance the booking process.

Sign up for the free 30-day trial and get a sense of how much this tool can help your org! Not only do you get to explore the tool, but with 20 licenses available, you can run a pilot with multiple members of your team. For more details, contact the Booker25 team here.

As the team is invested in permanently improving the tool, it’s a good idea to check out their latest release notes as it showcases the newest features. You can also sign up for a monthly release note newsletter to make sure you don’t miss a thing! 

The Author

Andreea Doroftei

Andreea is a Salesforce Technical Instructor at Salesforce Ben. She is an 18x certified Salesforce Professional with a passion for User Experience and Automation. 

Leave a Reply