Quest room owners lose up to 60% of leads due to manual booking. We automate this process. Developing a quest room website on 1C-Bitrix is our specialization. We build websites for quest rooms that accept bookings and payments 24/7. Over 5 years, we have completed 30+ projects for quest rooms of various formats. The cost is calculated individually. Savings from automation can reach hundreds of thousands of rubles per year.
Compared to standard WordPress sites, a 1C-Bitrix solution provides 3 times more reliable booking management thanks to Highload-blocks and tagged caching. Our certified developers guarantee stability under load and rapid implementation. The site conveys the atmosphere before the visit and enables booking without phone calls. The foundation includes catalog infoblocks of quests, a Highload-block for scheduling, the sale module for payment, and CRM integration for leads. According to 1C-Bitrix documentation, Highload-blocks are optimal for schedules with high update frequency.
Why 1C-Bitrix is Suitable for a Quest Room Website
The platform provides flexible tools for catalog and scheduling. Infoblocks with multiple properties describe any quest, and Highload-blocks are the ideal solution for slots with frequent changes. Compared to custom solutions, Bitrix offers a ready-made CRM, payment systems, and tagged caching — this reduces development time by 40%. Additionally, built-in business processes automate notifications and integrations.
Quest Catalog: Structure and Filtering
Each quest is an infoblock element with a detailed set of properties. The standard "name + description + picture" is not enough — visitors choose based on specific parameters.
Properties of the "Quests" infoblock:
- Genre — horror, detective, adventure, fantasy, sci-fi (dictionary property, multiple — a quest can combine genres)
- Difficulty — from 1 to 5 (numeric, displayed with lock icons)
- Number of players — min and max (two numeric properties)
- Age restriction — 6+, 12+, 16+, 18+ (list)
- Duration — in minutes (numeric)
- Teaser video — YouTube/VK Video link (string)
- Photo gallery — multiple "File" property with watermark enabled via the
OnBeforeIBlockElementUpdatehandler - Completion percentage — automatically updated based on data from the booking HL-block
- Status — active, temporarily closed, new (list, affects sorting and badges in the catalog)
On the catalog page, a smart filter (CIBlockSmartFilter) works by genre, number of players, and difficulty. Filter results are cached in the facet index — even with 30+ quests, the response is instantaneous.
The quest detail page is built on a cinematic principle: full-screen hero block with teaser video in the background, parameters in compact cards, gallery with lightbox, reviews block, and a booking CTA fixed in the viewport.
Why Slot Booking is a Complex Task
This is the most technologically advanced part. Booking is not just selecting a date and paying. It requires: quest availability at a specific time, room preparation between sessions, price variations by day and hour, and group discounts.
Highload-block "Booking Slots":
| Field | Type | Purpose |
|---|---|---|
| UF_QUEST_ID | Integer | Link to quest |
| UF_DATE | Date | Session date |
| UF_TIME | String | Start time (10:00, 11:30...) |
| UF_STATUS | List | available / reserved / paid / completed / cancelled |
| UF_PRICE | Number | Calculated price for this slot |
| UF_PLAYERS | Integer | Actual number of players |
| UF_ORDER_ID | Integer | Link to sale order |
| UF_PROMO | String | Applied promo code |
| UF_SOURCE | List | website / phone / aggregator |
Slot Generation. An agent (CAgent) runs daily at 01:00 and creates slots for the next 21 days. The interval between slots = quest duration + 20 minutes for preparation. For a 60-minute quest working from 10:00 to 22:00, this results in 9 slots per day. The agent takes the duration and preparation time from the infoblock properties — when changes occur, new slots are generated accordingly.
Example agent setup for slot generation
$agent = new CAgent();
$agent->SetModuleId('iblock');
$agent->SetStartTime(date('d.m.Y H:i:s', strtotime('tomorrow 01:00')));
$agent->SetInterval(86400);
$agent->SetFunction('generateSlotsAgent();');
$agent->SetName('Booking slot generation');
$agent->Add();
Dynamic pricing is implemented via a separate Highload-block "Pricing Rules":
| Field | Type | Example |
|---|---|---|
| UF_QUEST_ID | Integer | 5 |
| UF_DAY_TYPE | List | weekday / weekend / holiday |
| UF_TIME_FROM | String | 10:00 |
| UF_TIME_TO | String | 16:00 |
| UF_BASE_PRICE | Number | Base cost |
| UF_PLAYER_PRICE | Number | 0 (fixed) or per person |
| UF_MIN_PRICE | Number | Threshold for small groups |
During generation, the agent determines UF_DAY_TYPE, finds the rule, and sets UF_PRICE. If the model is "per person", a range is displayed on the site, and the final price is determined after the number of players is entered.
Client-side booking algorithm:
- Visitor selects a quest — a calendar with available dates loads (AJAX request, filter by
UF_STATUS = available). - Selects a date — slots with prices appear.
- Enters number of players — price recalculates if model is "per person".
- Enters promo code — discount via sale module basket rules.
- Fills in contact details.
- Pays online — payment system via
sale.paysystem.
Slot reservation happens at step 5: status changes to reserved, a 15-minute timer starts. If payment is not received, the agent returns status to available. After successful payment, the client receives an email with details and an SMS, a deal is created in CRM, and an automatic reminder is sent 3 hours before.
How Tagged Caching Speeds Up the Catalog
Tagged caching in Bitrix updates pages only when related data changes. For the quest catalog, this means filtering, list, and detail pages are cached with binding to the infoblock. When a new quest is added or a status changes, only the cache for the affected page is cleared — the rest remain valid. This yields load times <200 ms even under high traffic.
What Is Included in the Work
- Analytics: study of business processes, integrations, requirements for catalog and booking.
- Design: database schema, infoblock and HL-block structure, booking prototype.
- Implementation: infoblock setup, custom component development, slot generation, pricing, payment routing.
- Testing: simulation of all quest bookings, timeout checks, payment error handling, correct SMS/email.
- Deployment and documentation: production rollout, instructions for managing slots and prices, access handover.
Technical Solutions
- SEO — human-readable URLs following
/quests/horror/quest-name/pattern, automatic meta generation. - Speed — composite cache for catalog, schedule via AJAX without cache.
- Analytics —
dataLayerevents at each step for funnel tracking. - Mobile version — calendar adapted for touch, slots displayed in vertical list.
- Multilingual — multisite with English version.
Estimated Timeline
From 3 to 6 weeks depending on the complexity of integrations and the number of quests. The cost is calculated individually.
Get an expert consultation — we will tell you how to automate booking for your quest room. Contact us to discuss your project. Request a consultation — we will analyze your requirements and offer a turnkey solution.







