A reservation lock that prevents double-selling stands

Exhibition stand sales connect a physical location on the floor plan with a commercial decision. Trouble starts when two representatives reserve the same location concurrently. In Zoho CRM, dependable control rests on a unique text key that remains populated throughout an active reservation, not on an onscreen warning. The key prevents a second active record for that stand.
The floor plan may remain in another tool, but CRM needs a persistent identity for every area. Codes may change after revision, while deal, reservation, and physical space lifecycles remain distinct. A sound Zoho design separates selection filters, conflict flags, and the constraint rejecting another active record. Reports can then follow durable relationships without confusing those responsibilities again.
Physical space and commercial decisions need separate records
Events, Stand Areas, and Reservations are separate custom modules, while the commercial conversation remains in Deals. Event timing, physical characteristics, reservation status, and deal value follow independent lifecycles. A withdrawal can close a reservation while preserving the space record and commercial history. The separate planning tool remains the authoritative plan.
Area Code and Event Area Key use single-line text fields, and Net Area is decimal. Hall, Stand Type, and Availability Status are picklists. Source Event is a lookup; Operations Owner and Reservation Owner are user fields. Hold End stores date and time, while Contract Accepted is a checkbox field value.
When a revised floor plan combines two small spaces, it creates a new area code. Two reservations tied to the old code may remain open; only the persistent identity shows which moved. Field data types cannot change after creation; only names can change. No field type selects roles or groups.
The unique constraint provides the lock
The Reservation Lock Key is a unique single-line text field carrying the Event Area Key value. It stays populated only while the reservation is active and is cleared at closing. Uniqueness is a module-wide field property, not a temporary warning. A duplicate key prevents creation of the second record outright.
The general limit is two unique fields per module; Leads, Contacts, Products, and custom modules permit three. Text, email, phone, integer, long integer, and URL fields qualify. Matching is case-insensitive, and one field cannot be both unique and encrypted. Decide its data type and security treatment before creating the structure.
Two sales representatives receive requests for the same corner stand that morning. One creates the reservation first. When the second saves, creation fails because another record holds the lock key. If concurrent operations write the same value, uniqueness prevents the second active record. Function order alone offers no equivalent protection.
Do not treat a lookup filter as a lock
The Stand Area lookup filter lists records matching the Source Event and showing Availability Status as Available. Zoho offers this filter in Enterprise and higher editions. It shortens the selection list but cannot stop concurrent choices. Showing relevant options and conclusively reserving an area remain separate design problems in practice.
Lower editions show the full lookup list, leaving correct selection to team discipline. Bringing fields from the lookup module and multi-select lookups also begin with Enterprise. This changes only selection convenience, not the unique key's purpose. Uniqueness is evaluated independently when the reservation record is created and saved in CRM.
Lookup fields cannot be added to Tasks, Meetings, or Calls. The general limit is five lookup fields per criterion; in custom view criteria it drops to three. These boundaries keep the filter narrow rather than making it an eligibility engine. The filter presents candidates, the reservation records the decision, and the unique key protects active use rights.
Put conflict checks in a maintained flag
Custom-view criteria evaluate each record through its own fields and cannot ask whether another active record carries the same value. Blueprint Before criteria likewise read the current record. Duplicate or conflicting reservations cannot be detected directly on either criteria screen, so an apparently persuasive condition cannot replace the unique lock.
A custom function maintains the Active Reservation Exists checkbox on each Stand Area. The Reservation Conflicts view and Blueprint transition criteria read that flag instead of running a cross-record query. The flag supports visibility and process decisions; the unique Reservation Lock Key still rejects the second active reservation record outright.
View criteria can include at most three related modules or subforms, with three fields from each. The same limit of three covers lookup fields; up to five fields can be drawn from one lookup module, and twenty-five criteria rows apply overall. Within those quotas, the maintained flag provides a single-record result. Automation writes the value, while the view only filters what was already written there.
Validation rules do not cover every channel
A Zoho validation rule has a layout, one primary field, criteria, and an error or alert message. It runs during manual creation and editing. Imports, workflow field updates, approval processes, Blueprint, and API updates take precedence over it. This channel coverage cannot serve as the reservation lock by itself reliably.
A rule accepts ten primary conditions and five secondary conditions beneath each. It can stop with an error or allow by alert. External source or pattern checks require function-based validation, where validation preference and error-location options do not work. Enterprise permits three such rules per module; Ultimate permits five rules.
A Blueprint uses one module, one layout, and one primary field. Before controls participants and visibility, During requests entries, and After contains automation actions. Blueprint validation precedes validation, so avoid duplicating a requirement. Professional supports three Blueprints, Enterprise twenty, and Ultimate one hundred, with During limits of four, ten, and fifty.
Define expiry and cancellation from the start
A temporary hold is not a permanent reservation. At expiry, the Reservation Lock Key must be cleared through the controlled process, and the Stand Area flag recalculated. A workflow cannot require a field, stop saving, or block a stage transition. Field updates write only fixed or empty values, not calculations.
Schedules scanning expired holds run one function no more frequently than daily. An organization can have ten schedules, and manual execution is limited to twice per day. Workflow loops stop after three executions. Expiry should therefore rely on an assigned daily scan and lock-clearing function, not an unspecified countdown behavior.
Cancellation, expiry, and extension need distinguishable records. For an extension, store the reason, approver, and new end value separately without deleting the former end. Do not assume outcomes outside the workflow's closed action list. Automation updates the necessary fields, and the relevant view filters them, preserving the reservation history intact.
Area sold and deal value are different totals
A stand area may have several closed reservations, while a deal may move during negotiation. Sold net area, reservation count, and deal value are not one total. In analytics combining a main and related module, Count of measures rows rather than records. Actual records require Count of Unique instead there.
Multi-currency reports use the rate stored on the record, not today's rate. Exchange_Rate states how many record-currency units equal one base unit, so base conversion divides the amount by that rate. Activation cannot be reversed. Reports show two thousand records; formatted exports allow two thousand rows; detailed exports, fifty thousand.
Zoho setup requires Enterprise or higher for custom functions, schedules, and lookup filters. Standard's ten custom modules and ten custom fields per module cannot fit this set. Blueprint and Quotes begin with Professional. Quote lines form the Quoted Items subform; customization is Enterprise or Ultimate. Free lacks custom modules and fields.
Planning a Zoho or automation project?
As a Zoho Authorized Partner, we design and implement these systems end to end. Start with a free 30-minute discovery call.
Schedule a free call →