Custom Form Logic

This feature is only available on Lightning calendars. VisualForce calendars support a similar (but more limited) feature: https://gen25-jira.atlassian.net/wiki/spaces/BPD/pages/42893313/Apply+custom+price+calculations

A simpler but less powerful feature (launch a flow when the reservation form opens) is supported on both calendars: https://gen25-jira.atlassian.net/wiki/spaces/BPD/pages/2018934797/Run+a+Flow+when+creating+a+new+Reservation

Booker25 allows you to hook in to the logic behind the reservation form, giving you a lot of freedom to customize its behavior.

This article will give you a high level overview of the feature. For a deeper dive into this topic, check out these other articles:

High Level Overview

At a high level, this is what happens when you provide your own customization:

  1. You create a class that has a special method ‘customize’.

  2. In the customize method, you add your own handlers for specific events coming from the form.

  3. When something happens on the form, your handlers will be executed.

  4. In your handlers, you can run your own logic and manipulate the form.

Event Handlers

Things your event handlers can respond to (we intend to add a few more in the near future):

  • A new reservation being created

  • A value on the form being modified

  • A record being added to a related list

  • A record being removed from a related list

  • A record on a related list being modified

Things you can do in your event handlers to modify the form are very similar to the above list:

  • You can set any value on the form

  • You can add or remove records on related lists

  • You can modify records on related lists

Search Handlers

There is also a special type of handler relating to searches. These allow you to respond to the following things:

  • The user searching in a lookup field

  • The user searching in a related list

Things you can do in a search handler:

  • Narrow down the default results with extra AND-conditions

  • Expand the default results with extra OR-conditions

  • Generate your own results