# BookingPilot > BookingPilot is a hotel property management system (PMS) with a built-in channel manager for independent hotels, guesthouses, B&Bs and serviced apartments. One web app covers reservations and the front-desk calendar, two-way sync with Booking.com, Airbnb, Expedia and 75+ channels, a unified guest inbox, a housekeeping staff app in 25 languages, payments, reports and role-based team permissions. Pricing is per property with no commission on bookings, and there is a free plan. Key facts: - Who it is for: independent properties from about 3 to 30+ rooms, and owners running several properties. Not built for large hotel chains. - Plans (prices per property per month, excluding VAT, monthly billing, cancel any time): - Fly Start: free forever, 1 property up to 5 rooms, owner only, reservations and calendar. - Fly Lite: €19, up to 15 rooms. The direct-booking desk: automations, AI assistant, housekeeping app, invoices, deposits, reports, unlimited team members. No channel manager or guest inbox. - Fly Pro: €59, up to 30 rooms. Everything in Fly Lite plus the two-way channel manager and the unified guest inbox. - Fly Max: custom pricing. Unlimited rooms, multi-property dashboards, consolidated reporting, onboarding and data import help. - Fly Lite and Fly Pro include a 14-day free trial. No setup fees, no per-seat fees, no lock-in. - Channel manager: certified two-way sync of rates, availability, restrictions and bookings through a channel partner. Upcoming reservations import automatically when a channel is connected. - Housekeeping: a separate mobile app for cleaning staff with task boards, live clean/dirty/inspection status, shift handovers and lost & found, translated into 25 languages. Staff never see the back office. - Team permissions: owner, admin, manager, front desk and housekeeping roles with 27 permission toggles. - Data and security: database hosting in the European Union (Ireland). Each property is isolated at the database level. BookingPilot acts as a data processor under a published DPA. Guest card details are stored encrypted with a view audit trail. The AI features run with zero data retention and no training on customer data. - Setup: most properties go from signup to a working desk in a day. No migration project. - Language: the back office is in English; the housekeeping staff app supports 25 languages. ## Product - [Home](https://bookingpilot.al/): overview of the whole back office - [All features](https://bookingpilot.al/features): every module in depth - [Reservations & calendar](https://bookingpilot.al/features/reservations): timeline calendar, check-in/out, guest profiles, online pre-check-in - [Channel manager](https://bookingpilot.al/features/channels): two-way sync with Booking.com, Airbnb, Expedia and 75+ channels - [Guest inbox](https://bookingpilot.al/features/guest-inbox): OTA and email messages in one thread per guest, AI-drafted replies, automated messages - [Housekeeping app](https://bookingpilot.al/features/housekeeping): room status, task boards and shift handover in 25 languages - [Payments](https://bookingpilot.al/features/payments): deposits, refunds, folios and encrypted card storage - [Integrations](https://bookingpilot.al/integrations): the full list of connected channels ## Pricing - [Pricing and plan comparison](https://bookingpilot.al/pricing): plans, full feature matrix and billing FAQ ## Help - [Knowledge base](https://bookingpilot.al/knowledge-base): step-by-step setup and how-to guides - [Support](https://bookingpilot.al/support): live chat and email (support@bookingpilot.al) ## Company - [About](https://bookingpilot.al/about): who builds BookingPilot and how it makes money - [Security](https://bookingpilot.al/security): security practices - [Privacy policy](https://bookingpilot.al/privacy) - [Data processing agreement](https://bookingpilot.al/dpa) - [Terms of service](https://bookingpilot.al/terms) ## Machine-readable - [llms-full.txt](https://bookingpilot.al/llms-full.txt): the complete site content in one file, including the full text of every knowledge-base article - [AI catalog](https://bookingpilot.al/.well-known/ai-catalog.json): manifest of agent-facing resources - [Sitemap](https://bookingpilot.al/sitemap.xml): every indexable URL ## Optional - [Careers](https://bookingpilot.al/careers) - [Refund policy](https://bookingpilot.al/refunds) - [Cookie policy](https://bookingpilot.al/cookies) - [Accessibility](https://bookingpilot.al/accessibility) # Knowledge base (full text) # Creating your account and first property Category: Getting Started · Updated: Oct 11, 2026 · 4 min read URL: https://bookingpilot.al/knowledge-base/getting-started/gs-create-account One wizard takes you from email address to a live property: details, a verification code, your property, and a password. From the sign-in page, press **New to BookingPilot? Create account** to start the four-step signup wizard. Each step lives in the URL, `?step=1` through `?step=5`, so going back never loses your place. Nothing is stored until the very last press. BookingPilot checks and verifies your email early, but your account only exists once **Create Property** succeeds, you can safely close the tab at any earlier step. ## Steps 1 and 2, details and email code - Fill in **Full Name**, **Email** and **Phone**, all three are required. The phone number must be in international format: `+` followed by country code and number. - If the email is already registered you get a **You already have an account** panel instead, press **Go to sign in** or **Use a different email**. - If the email is free, a 6-digit code is sent to it. Enter it on the **Check your email** screen and press **Verify Email**, no account exists yet at this point. - Resending is locked for 60 seconds, the button counts down `Resend code in Xs`, then shows **Didn’t receive a code? Resend**. Use **Change email address** to go back and fix a typo. ## Step 3, property details - **Property Name** is whatever you call the business internally, the guest-facing name is set later in Settings. - **Property Type** offers ten options: Hotel, Boutique Hotel, Resort, Hostel, Vacation Rental, Serviced Apartments, Bed & Breakfast, Guest House, Motel, and Camping / Glamping. - **Number of Keys** means rentable rooms or units, pick a range from `1` up to `200+`. ## Step 4, password and launch - Set a **Create Password** of 12 to 64 characters. There are no composition rules, a long phrase beats `P@ssw0rd1`. The strength meter reads `Weak`, `Fair`, `Good` or `Strong`. - Tick **I agree to the Terms of Service and Privacy Policy** to continue. **Send me product updates and hospitality insights via email.** is optional. - Press **Create Property**, your user, membership and property are created here, as one atomic operation. > **Important:** If anything fails during launch, the half-created account is rolled back automatically, verify your email again and retry. Until **Create Property** succeeds you have no account, so an interrupted signup leaves nothing behind. ## Signing up with a social account Using a social login prefills your name and email, skips the email-code step entirely, and takes you straight to **Property details**. The last step is titled **Finish setup** instead of **Secure account**, there’s no password to invent. Both flows end on **Welcome to BookingPilot, {firstName}!**, “{property} is created. The setup guide walks you through the rest.”, press **Open setup guide** to land on the Setup Guide. --- # Working through the Setup Guide Category: Getting Started · Updated: Nov 7, 2026 · 4 min read URL: https://bookingpilot.al/knowledge-base/getting-started/gs-setup-guide The checklist between a fresh property and live bookings, what each step needs, and which ones you can skip. After your first sign-in you land on the **Setup Guide** at `/dashboard/setup`, a checklist headed **Set up your property** with the promise **Complete these steps to get your property ready for bookings.** It’s shown to admins; regular staff never see it. The `Setup progress, X of Y` counter only tracks required steps, optional ones never block completion. A `Next up` pill sits on the first unfinished required step, and each step completes automatically when its target is met, nothing is ticked by hand. The list also adapts to your plan. A step your plan cannot perform is not shown at all: **Invite Your Team** appears only on paid plans, and **OTA Channels** only on plans that include the channel manager. A Fly Start property sees a shorter guide. ## The steps | Step | Where it takes you | Required | | --- | --- | --- | | **Property Profile** | Settings › General, property name and address | Required | | **Property Logo** | Settings › General, **Upload Logo** | Optional | | **House Policies** | Settings › Policies, check-in times, pets, smoking and more | Optional | | **Currency & Taxes** | Settings › Currency & Taxes, set the default tax rate | Required | | **Banking Details** | Settings › Banking, account details for invoices and deposit instructions | Optional | | **Room Inventory** | Rooms, create at least one room | Required | | **Pricing Model** | Rates, set a nightly price for a room type | Required | | **Invite Your Team** | Settings › Members, add at least one non-owner member | Required, paid plans only | | **OTA Channels** | Integrations, connect a booking channel | Optional, channel-manager plans only | Targets are checked live: **Currency & Taxes** ticks once a tax rate exists, **Room Inventory** once you have one room, **Pricing Model** once at least one nightly price is set, and **Invite Your Team** once someone besides the owner is a member. > **Note:** **Pricing Model** stays blocked until rooms exist, the hint reads `Add rooms first, pricing is set per room type.` Do **Room Inventory** first. ## Hide it, bring it back - **Hide setup guide**, or the ✕ that appears on hover, dismisses the checklist whenever you want. - Reopen it from the property menu at the bottom of the sidebar → **Setup Guide**. - On the page itself, a hidden guide swaps the dismiss link for **Show setup guide in sidebar**, which pins the sidebar link back in place. - Until the required steps are done, the **Setup Guide** sidebar entry keeps glowing, the glow is the reminder, not a nag screen. ## When you finish Completing every required step swaps the checklist for **Setup complete, Your property is ready for live operations.**, an **Enter Dashboard** button, and a short list of optional extras you can still do later: logo, policies, banking, and channels where your plan includes them. > **Tip:** Only one order matters, rooms before pricing. Everything else can be done in whatever order suits the day. Sign-in keeps landing on the guide until the required steps are done, hiding it does not skip that. --- # Inviting your team and choosing roles Category: Getting Started · Updated: Oct 11, 2026 · 4 min read URL: https://bookingpilot.al/knowledge-base/getting-started/gs-invite-team Create staff accounts under Settings → Members, pick the right access role, and understand what each status chip means. Staff accounts are created from **Settings → Team & Access → Members** with the **+ Add team member** button. You need the `team.manage` permission, owners and admins have it by default. BookingPilot does not email your new colleague. You create the credentials, then hand over the sign-in email and initial password yourself, in person, by phone, wherever suits. ## Create the account 1. Open **Settings → Team & Access → Members** and press **+ Add team member**. 2. Enter **First Name**, **Last Name** and a **Username**. Their sign-in address becomes `username@propertyname.bookingpilot.al`, the subdomain is derived from your **Public Property Name** plus a short unique code. 3. Set a **Password** (minimum 12 characters), repeat it in **Confirm Password**, and pick an **Access Role**. 4. Fill **Phone Number (Optional)** if you want it on their contact card, then press **Create**. 5. Share the sign-in email and password with them, they see this property the moment they sign in. > **Note:** If that username already has a BookingPilot account, a receptionist at your sister property, say, the result is `username@domain linked, they sign in with their existing password` instead of a new account. Nothing is reset. ## Choosing a role - **Front Desk**, the daily desk: reservations, guests, recording payments, inbox, room status and the housekeeping board. No rates, reports or settings. - **Housekeeping**, the staff app only: today’s tasks, their shift and handover. It can’t be customized. - **Manager**, nearly everything front desk does plus rates, rooms, reports, the activity log and most settings tabs. Stops short of deleting reservations, tax, banking, privacy, team management and integrations. - **Admin**, full access, including role permissions and all settings. Only the owner can grant or change it. ## Statuses | Status chip | What it means | | --- | --- | | `Active` | Can sign in and work normally. | | `Suspended` | Blocked at sign-in with “This account has been suspended.” Reactivate any time. | | `Invite pending` | An older email-invite membership not yet claimed, it activates automatically when that person signs up with the same email. | | `No sign-in access` | A directory-only staff record, common for housekeepers never given a login. Still assignable to tasks. | > **Important:** No invitation email is sent, if you don’t share the credentials, your new colleague can’t get in. The modal says it plainly: “No email invite is sent, share the sign-in address and password with them directly. They see this property on first sign-in.” > **Tip:** Give everyone the smallest role that covers their job, you can widen it any time on the **Role Permissions** tab. --- # Getting around: sidebar, search and notifications Category: Getting Started · Updated: Oct 11, 2026 · 4 min read URL: https://bookingpilot.al/knowledge-base/getting-started/gs-navigation The sidebar holds every section, the property menu switches properties, and the topbar search changes behaviour depending on where you are. BookingPilot is organized around a left sidebar and a top bar. The sidebar holds every section you can open; the top bar carries the page title, search, the AI button, the notification bell and, for roles that can take bookings, **Add Reservation**. What you see depends on your role. A housekeeper doesn’t get this menu at all, they get a compact staff nav instead: **Work** (Today, Tasks, My Shift, Handover), **Resources** and **Personal**. ## The sidebar and property menu - Main group: **Setup Guide** (admins, while setup is unfinished), **Dashboard**, **Calendar**, **Reservations**, **Inbox**, with an orange unread counter, and **Guests**. - **OPERATIONS**: **Rooms**, **Housekeeping** (Board, Handover, Lost & Found, Setup) and **Rates & Availability**. - **INSIGHTS**: **Performance** and **Financial Reports**. - **MANAGEMENT**: **Website**, **Automation** (Automations, Email Builder), **Integrations** and **Settings**. Drag the sidebar’s edge to resize it between 80 and 350 px; at 120 px or narrower it snaps into an icon rail, and the width is remembered. When it’s collapsed, hovering expands it again, and groups you open stay open. The card at the bottom shows your property name and your role, click it for **Setup Guide**, **Help & Support**, the **PROPERTIES** switcher, **Add Property** and **Sign Out**. A property being deleted shows `Deleting in X days` there; clicking it opens the restore dialog instead of switching. ## Search that knows where you are - On **Guests**, **Rooms**, **Reservations**, **Calendar**, **Housekeeping** and **Inbox**, the topbar search filters the list you’re already looking at. - On **Settings** it searches all 18 settings destinations and jumps straight to the right tab. - Everywhere else it opens a global dropdown, up to four guests, reservations, rooms, payments and staff, plus five pages, filtered by what your role can see. > **Tip:** Press `Ctrl+K` (`Cmd+K` on Mac) to focus search from anywhere, even while typing in a field or with a modal open. ## Notifications | Notification | Shown when | | --- | --- | | `New message from {guest}` | An unread guest message is waiting in the Inbox | | `{guest} checks in today` | A confirmed or pending reservation arrives today | | `Room {room} needs cleaning` | A room is marked dirty | The bell badge is computed live and caps at `9+`. **Mark all as read** clears the list; the ✕ on an item dismisses just that one, dismissed items stay dismissed. With nothing pending you get `You’re all caught up!`. Service roles only ever see room-cleaning items here. --- # Keyboard shortcuts and power moves Category: Getting Started · Updated: Oct 11, 2026 · 2 min read URL: https://bookingpilot.al/knowledge-base/getting-started/gs-shortcuts The complete shortcut list, plus the rules that keep single-letter keys from firing while you type. BookingPilot keeps a deliberately small set of keyboard shortcuts. Press `?` anywhere to see the same list as an in-app cheat sheet, it’s identical to the table below. ## All shortcuts | Keys | What it does | | --- | --- | | `Ctrl+K` / `Cmd+K` | Focus the topbar search, works everywhere, even inside inputs and on top of modals | | `Alt+1` - `Alt+5` | Jump to Dashboard, Calendar, Reservations, Inbox and Guests | | `Alt+M` | Collapse or expand the sidebar | | `N` | Start a new reservation, roles with `reservation:write` only | | `H` | Open help & support | | `?` | Show the keyboard-shortcuts sheet | | `Esc` | Close whatever is on top, modal, drawer or panel | | `Enter` | Inside a modal text field: same as pressing the primary button | ## The ground rules - Global shortcuts that don’t use `Ctrl`, `N`, `H`, `?`, `Alt+1`-`Alt+5`, `Alt+M`, are ignored while you’re typing in a field and while a modal is open, so nothing can fire mid-sentence. - `Ctrl+K` is the exception: it works everywhere, including inside an input or over a modal. - `Enter` in a modal text input presses that modal’s primary button, except in the reservation drawer, where `Enter` blur-saves the field you’re editing and moves on. - `Esc` closes the topmost thing first, so pressing it twice is safe. > **Tip:** Two worth memorizing first: `Ctrl+K` to find anything, and `Alt+2` to land on the Calendar, that’s most of a front-desk day. --- # Creating a reservation Category: Reservations & Calendar · Updated: Oct 11, 2026 · 6 min read URL: https://bookingpilot.al/knowledge-base/reservations/res-create Every section of the Create Reservation modal, returning guests, sources, card capture and the checks that can block a save. Use **Create Reservation** for any booking you take directly, a walk-in, a phone call, an email request. Open it with **Add Reservation** in the top bar, by pressing `N` anywhere in the dashboard, or by dragging across empty dates on the calendar, which pre-fills the room and dates. The modal runs as sections on the left and a **Summary** panel on the right that updates live, guest, status, dates and nights, room, guest count, arrival time, payment, meal plan, extras, deposit and the grand total, so you can sanity-check everything before committing. ## Stay details - **Check-in** and **Check-out**, required. Everything else in the modal can be adjusted later from the reservation drawer. - **Category** first via `Select Category...`, then **Room** via `Assign Room...`. Rooms already booked on those dates still appear, suffixed ` (Uses sub-row)`, you can pick them, but you will be stacking stays in one room. - **Adults** (minimum 1) and **Children** (minimum 0), each child reveals a `Child N Age` selector (`< 1 year` or `N years`). - **Estimated Arrival**, hourly slots; `2:00 PM (Check-in Start)` marks your standard check-in time, and `Late Night / Flexible` covers odd-hour arrivals. - **Booking Status**, usually `Confirmed`, but you can create directly as `Checked In` to seat a walk-in in one step. - **Meal Plan**, `Room Only`, `Breakfast Included`, `Half Board (Breakfast + Dinner)`, `Full Board (All Meals)` or `All-Inclusive`. ## Guest information Start with **Returning Guest**: type at least 2 characters of a name, phone number or email and the top 6 matches appear, VIPs are badged, and pressing `Enter` picks the first result. Selecting a match autofills contact details, ID, nationality, date of birth, arrival time and child ages, but never special requests, which stay unique to each stay. - **Guest Name** is the only required field, **Surname**, **Phone**, **Email**, **Address / Location**, **ID / Passport**, **Nationality**, **Date of Birth** and **Postal Code** can all be completed later. - **Phone** guesses **Nationality** from the dial code, it never overwrites a nationality you already chose. - **Date of Birth** uses Day / Month / Year selectors rather than a typed date. ## Source, extras, price and card - **Booking Source**, `Walk-In` by default, plus `Phone Booking`, `Email Booking`, `Direct Website` and `Other`. The source is stamped into the booking history. - **Add-ons & Extras**, every chip you select immediately creates a `Pending` `Extra` charge on the reservation ledger. - **Reception Notes**, internal remarks; guests never see them. - **Nightly** and **Total price** are linked two ways, type either one and the other recalculates. - **Deposit**, the amount you agree to collect up front; it sets the payment badge when the booking saves. - **Payment Method**, `Cash on Arrival` by default, plus `Card on File`, `Cash`, `Credit Card`, `Debit Card`, `Bank Transfer`, `OTA Collect` and `Other`. - **Credit Card Details**, optional. The number auto-groups into 4s, expiry formats itself as `MM / YY` and the CVC takes up to 4 digits. The card is encrypted server-side; only the last four digits are ever visible again. ## Saving, and what can block it Click **Confirm Reservation**. You need a guest name, both dates and a resolvable price, if a check fails, the modal scrolls straight to the problem field. Two warnings can still stop the save: - `Property is closed for the selected dates (outside operating period)`, the stay falls outside your seasonal opening. - `Room already has 3 overlapping stays on those dates, resolve the overbooking first`, a room can hold at most 3 stacked reservations. > **Note:** After saving, BookingPilot matches the guest to an existing profile by email, then phone, then name, filling in blanks but never overwriting what is there. History records `Booking created via .` and a pre-check-in link is generated automatically. A deposit sets the payment status: at least the total → `Paid`, anything above zero → `Partial`, otherwise `Pending`. --- # The reservation drawer: editing a booking Category: Reservations & Calendar · Updated: Oct 11, 2026 · 7 min read URL: https://bookingpilot.al/knowledge-base/reservations/res-drawer Click any booking and the drawer opens, how autosave works, what each panel does, and the full status reference. Click any reservation row or calendar bar and the **reservation drawer** opens, the booking’s home for the rest of its life. The header shows the guest name and booking reference, plus the OTA confirmation number in blue for channel bookings. There is no save button. **Selects save the moment you change them; text fields save when you leave them**, confirmed by a `Saved: ` toast. Pressing `Enter` inside a field blurs it, which saves, instead of submitting. The only control in the header is **Close**. ## Stay - **Check-in** / **Check-out**, change a date and it saves immediately; nights and availability follow. - **Category** and **Room** (`Assign Room...`), conflicting rooms carry the ` (Uses sub-row)` suffix; picking one stacks the stay. - **Adults**, **Children** with `Child N Age` selectors, **Estimated Arrival** and **Meal Plan** behave exactly as in the create modal. - **Booking Status**, transitions the instant you pick one. `Cancelled` needs edit rights; `Checked Out` routes through check-out and reverts with `Outstanding balance of X, use Check Out to settle it` if money is still owed; `No Show` applies immediately with no confirmation. | Status | Meaning | | --- | --- | | `Confirmed` | Blue. Default for new bookings, the guest is expected. | | `Pending` | Amber. Booked but not yet confirmed. | | `Checked In` | Green. The guest is on property. | | `Checked Out` | Red. Departure complete, the room is automatically marked `Dirty`. | | `Cancelled` | Red. Frees the room everywhere, including connected channels. | | `No Show` | Yellow. Only reachable from this select, no button, no confirm. Excluded from occupancy like `Cancelled`. | | `Maintenance` | Internal block rows created by **Block Room**. Never listed on the Reservations page and not editable here. | ## Guest information, a snapshot of this stay - **Guest Name** is required, clear it and leave the field and it turns red with `Guest name is required`; the empty value is not saved. - **Document Type** (`Not specified`, `Passport`, `National ID card`, `Driving licence`) relabels the number field, `Passport Number`, `ID Card Number` or `Licence Number`. - **Date of Birth** saves only when all three Day / Month / Year parts are chosen, or when you clear all three. - These fields are a **per-stay snapshot**: editing them never changes the shared profile on the Guests page. The single exception is **Guest Profile Notes** (the amber field), which writes to the guest profile itself. ## Additional info and payments - **Guest Requests**, requests the guest submitted through online check-in arrive annotated `from pre-check-in`; the field holds up to 1,000 characters. **Reception Notes** are for staff. - **Add-ons & Extras**, adding a chip creates a `Pending` `Extra` charge. Removing an unpaid extra deletes it; removing a **paid** one is a refund, `Refunds require a manager or admin`. - **Payment panel**, the totals box shows Total, Paid and Balance due. Typing a **Deposit** amount creates a `Pending` deposit **request** (`Deposit requested (Pending)`), it is not money until someone marks it paid. Deposits and extras each carry a `Mark paid` button. The action grid holds the money and document buttons: **Record Payment**, **Add Charge**, **Generate Invoice**, **Deposit Invoice**, **Print Receipt**, the card button (**Add Credit Card** → **Show Credit Card** → **View Card Details**, or `Limit Reached`), and **Copy Check-in Link** with its regenerate icon. Each is covered in the Payments articles. ## History Every change lands in **History**, newest first, as `date · time · event · by name (Role)`. Transitions and payments write their own entries, `Checked in.`, `Checked out. Room marked as Dirty.`, `Moved room from X to Y.`, `Payment of X received via M`, `Rate overridden to X.`, and dead check-in links render struck through. An untouched booking reads `No history events yet.` --- # Check-ins, check-outs and no-shows Category: Reservations & Calendar · Updated: Oct 11, 2026 · 5 min read URL: https://bookingpilot.al/knowledge-base/reservations/res-checkin-out The daily front-desk flow, seating arrivals, settling balances at departure, and what happens to the room after each. Arrivals and departures run off the row **⋯** menu on the Reservations page, or the same actions inside the drawer. The `Check-ins` and `Check-outs` tabs exist for exactly this daily rhythm. ## Checking a guest in 1. Open the `Check-ins` tab, it lists `Confirmed` and `Pending` bookings, and set the date range to `Today`. 2. Find the booking, open its **⋯** menu and click **Check In Guest**. 3. If the room is not `Clean`, a `Room Not Clean` warning appears, click **Check In Anyway** to proceed, or back out and send housekeeping first. > **Important:** `Room Not Clean` is advisory, not a lock, BookingPilot will check a guest into a dirty room if you confirm. Use it for rooms that are finished in reality but not yet marked `Clean`. ## Checking a guest out 1. Open the `Check-outs` tab, it shows `Checked Out` reservations plus everything still due to leave today, and switches the date filter to check-out dates for you. 2. Open **⋯** → **Check Out Guest** on the booking. 3. If money is still owed, the payment modal opens prefilled with the exact balance, take the payment and confirm. 4. The payment lands as a `Final Settlement` row, the reservation flips to `Checked Out` and the room is marked `Dirty` for housekeeping. History records `Checked out. Room marked as Dirty.` If you ever force `Checked Out` from the drawer’s status select while a balance is open, it bounces back with `Outstanding balance of X, use Check Out to settle it`, always use the Check Out action. ## No-shows and cancellations - **No Show** has no button, set it from the drawer’s **Booking Status** select. It applies instantly, asks for no confirmation, and frees the room from occupancy exactly like a cancellation. - **Cancel Reservation** (⋯ menu) asks you to confirm, then frees the room everywhere including connected channels. - **Delete Reservation** appears only on `Cancelled` bookings and only if your role has `reservation:delete`, it erases the record entirely. ## Who can do what - **Owner / Admin**, everything, including refunds and deletes. - **Manager**, manage bookings and record payments; cannot delete. - **Front desk**, manage bookings and record payments; cannot delete or refund. - **Housekeeping**, cannot open the Reservations page at all. > **Tip:** Morning routine: clear the `Check-outs` tab first, it already filters itself to departure dates, then switch to `Check-ins` for the arrivals list. --- # Working the calendar Category: Reservations & Calendar · Updated: Oct 11, 2026 · 6 min read URL: https://bookingpilot.al/knowledge-base/reservations/res-calendar The timeline view, reading occupancy and availability, dragging to create or move bookings, blocking rooms and filtering the grid. The calendar (`Alt+2`) is one infinite timeline of your rooms, 80px day columns starting today and stretching 150 days out, extending another 60 days at either edge as you scroll. Move with the week chevrons, click the centered date title for a hidden `Jump to date` picker, or hit **Today** to snap back, past dates stay locked until you deliberately navigate to them. ## Reading the grid - **Occupancy %**, a header row per day: amber from 60%, red from 80%. - **Available**, inventory left per category per day; red at 0 and it can go **negative** on overbookings. - Category groups collapse on click (the calendar remembers), and room rows show a dirty dot, an out-of-service dot or `Blocked for maintenance today`. - Overlapping stays pack into sub-rows labelled ` (2)` or `(3)`; bookings with no room render as ` (n)` lanes, and flagged ones land in the `Action Required` group. - Hover any bar for the tooltip, VIP badge, dates, `Paid X/Y`, status, source and a `Last Change` block. Bars carry channel brand colours with a status-coloured left border and an `Nn` nights chip. ## Create a booking by dragging 1. Press and drag across the empty cells covering the nights you want, on the row of the room you want. 2. Release, the **Create Reservation** modal opens with check-in, check-out and room already filled in. ## Move a booking by dragging - Drop on the **same room**, the dates move instantly and history logs `Changed dates...`. - Drop on a **different room**, a `Move Reservation?` dialog confirms the guest, from → to room and dates first. - If the move frees channel availability, the dialog warns `This move opens availability on connected channels...` and the **Move** button locks for a couple of seconds (`Move (3s)`) so the warning gets read. - Target room already holding 3 stacked stays → `Cannot Move Reservation`, with a `Move to Unassigned` escape hatch. - Maintenance or out-of-service targets reject the drop outright, `Room is blocked`. - Moving a `Checked In` guest to another room marks the vacated one `Dirty`; dropping a booking on `Unassigned` clears its category. ## Block a room 1. Click the room’s label on the left, the same menu holds `Mark Dirty` / `Mark Clean` and `Assign Housekeeper`. Choose `Block / Maintenance`. 2. Pick a `Reason`: `Maintenance / Repair`, `Deep Cleaning` (which also marks the room `Dirty`) or `Administrative Hold`. 3. Tick `Indefinite / Permanent Block`, or set `From Date` and `Until Date`. Click **Block Inventory**. 4. Undo it from the same menu: `Unblock Room` removes every maintenance block and sets the room Active, or `Unblock ` removes a single dated block. > **Important:** The `Until Date` is **inclusive**, a block ending on Friday also covers Friday night. End it one day earlier if the room should sell that night. ## Filters and finding a booking - **Filter Rooms**, room-status checkboxes, room types, and display toggles (`Show Checked-out` on by default, `Show Cancelled` off). The button glows orange while any filter is active. - **Settings** → Display Rows, `Hide Action Required`, `Hide Occupancy` and `Hide Inventory` strip the helper rows for a cleaner grid. - `Find a reservation...` jumps to the first match, expanding collapsed groups and scrolling the bar into view. --- # Online check-in links Category: Reservations & Calendar · Updated: Oct 11, 2026 · 4 min read URL: https://bookingpilot.al/knowledge-base/reservations/res-precheckin Every booking has a private check-in link, send it, what the guest fills in, and when to regenerate it. Every reservation carries a private online check-in link. Send it before arrival and the guest fills in their own document details, arrival time and requests, no account, no app. When they submit, everything lands straight on the reservation. ## Send the link 1. Open the reservation drawer and scroll to the **Payment** panel. 2. Click **Copy Check-in Link**, the button flips to `Link Copied`. There is exactly one link per reservation, and the first copy is logged in history. 3. Paste it into your confirmation email or message to the guest. ## What the guest fills in - **Identity document**, document type (`Passport`, `National ID card` or `Driving licence`; the number field relabels itself), date of birth and nationality, including an `Other…` option. - **Arrival details**, estimated arrival time, mobile number and optional special requests. - They submit with **Complete check-in**; reopening the link later offers **Update details** instead, so corrections are easy. ## What lands on the reservation - Document type and number, date of birth, nationality, arrival time, phone and special requests all write onto the booking. - **Guest Requests** carries their note annotated `from pre-check-in`, and the summary shows `Pre-check-in completed` with the date and time. - History records `Guest completed online pre-check-in.` ## Regenerating and link statuses The refresh icon beside **Copy Check-in Link** mints a **new** link and kills the old one instantly, the toast says `Check-in link regenerated, the old link no longer works`. Once a guest has completed pre-check-in, regeneration is blocked. | Guest sees | When | | --- | --- | | `Check-in completed` | They submitted, the reservation now holds their details. | | `Already checked in` | They opened the link after being checked in at the desk. | | `Link expired` | The stay is over or the reservation is checked out. | | `Invalid check-in link` | The booking was cancelled, the link was regenerated, or the URL is wrong. | > **Important:** Regenerating is a security feature, not a refresh, it permanently invalidates the old link. Only use it if the link leaked or went to the wrong person, then resend the new one. --- # Finding reservations: tabs, filters and search Category: Reservations & Calendar · Updated: Oct 11, 2026 · 5 min read URL: https://bookingpilot.al/knowledge-base/reservations/res-tabs Tabs, date ranges, filters, sorting and export, how to make the reservation list show exactly what you need. The Reservations page (`Alt+3`) is the master list of every booking. Tabs slice it by status, the toolbar narrows it by date and filters, and the topbar search finds a single booking by guest name, reservation id or room. ## The tabs | Tab | What it shows | | --- | --- | | `All` | Every reservation except `Maintenance` blocks, and the **only** tab where `No Show` bookings appear. | | `Check-ins` | Arrivals: `Confirmed` and `Pending` bookings. | | `In-House` | Guests on property now: `Checked In`. | | `Check-outs` | `Checked Out` plus anything still due to depart today, it switches the date filter to check-out dates. | | `Cancelled` | `Cancelled` bookings only. | ## Date range and filters - **Date dropdown**, `All Time`, `Today`, `This Week`, `Next 14 Days`, `Next Month` or `Custom Range` with From / To pickers. - **Filters**, Room Type, Payment Status (`All` / `Paid` / `Unpaid`) and Quick View (`All`, `Arriving Today`, `Unassigned Rooms`). The **Filters** button turns orange while any of them are active. ## Sorting, paging and searching - **Sort menu**, `Check-in Date`, `Guest Name`, `Amount`, `Status` or `Created Date`; pick the same option again to flip direction. - **Pagination**, `Show 5 / 10 / 25 / 50 / 100 entries`, with a `Showing X to Y of N entries` counter. - **Topbar search**, `Search reservations...` matches guest name, reservation id and room. `Ctrl+K` (`Cmd+K` on Mac) focuses it from anywhere. ## Reading the list - **GUEST**, avatar, name, room number or `Unassigned`, and the room category. - **DATES**, check-in → check-out with the night count. - **SOURCE**, a brand icon plus text for channel bookings. - **AMOUNT**, the total with a payment badge: `Pending` red, `Partial` amber, `Paid` green. - **⋯ menu**, every per-booking action lives here: `Deposit Mail`, `Edit Booking`, `Record Payment`, `Check In Guest`, `Check Out Guest`, `Cancel Reservation`, `Delete Reservation`. ## Export and empty results The export icon downloads the list as `reservations_export_.csv`, columns `Guest, Room, Type, Check-In, Check-Out, Amount, Balance, Status`, confirmed by a `Reservations exported to CSV` toast. When nothing matches, you get `No reservations found matching your criteria` with a `Clear all filters` button. > **Note:** `Clear all filters` clears the filters but **not** the date range, if a booking still refuses to appear, check the date dropdown next. --- # How payments work: the reservation ledger Category: Payments & Invoicing · Updated: Oct 11, 2026 · 5 min read URL: https://bookingpilot.al/knowledge-base/payments/pay-ledger Every booking keeps a ledger of payments, deposits, charges and refunds, how the Paid and Balance figures are really calculated. Every reservation carries a **ledger**, a running list of money rows: payments received, deposits requested, charges added, refunds given. Open the drawer and the **Payment** panel shows a totals box (Total, Paid, Balance due) above those rows. You never type the Paid or Balance figures, BookingPilot derives them from the rows. ## Anatomy of a ledger row | Field | What it tells you | | --- | --- | | `type` | `payment` (money in), `deposit`, `charge` (a bill item) or `refund` (money out). | | `category` | `Deposit` or `Extra` on charge rows, blank on ordinary payments. | | `status` | `Pending` (requested or owed), `Paid` (received) or `Refunded` (returned). | | `method` | How it was paid, `Cash`, `Credit Card`, `Bank Transfer` and so on. | ## The maths behind the badge - **Paid** = the sum of all `Paid` rows minus `refund` and `Refunded` rows. - **Balance due** = total − paid, clamped between 0 and the total, it can never go negative. - A database trigger recomputes the reservation’s payment status every time a ledger row changes, record the money and the badge follows on its own. | Badge | Meaning | | --- | --- | | `Pending` | Red. Nothing received yet. | | `Partial` | Amber. Some money in, balance still open. | | `Paid` | Green. Covered in full. | | `Refunded` | Money has been returned, only settable with refund rights. | ## Rows you will actually see - A `Pending` deposit labelled `Deposit requested (Pending)`, a request sent to the guest, not money received. - A `Paid` deposit or payment row for each amount taken. - A `Pending` `Extra` for every unpaid add-on or manual charge. - A `Final Settlement` row, created when the remaining balance is paid inside check-out. - A `refund` row, or a row flipped to `Refunded`, when money goes back to the guest. > **Note:** `Pending` rows count toward nothing, they are requests and promises. Only `Paid` rows move the Paid total. > **Tip:** Ten-second audit before check-out: compare **Paid** against **Total** in the totals box. Whatever is missing is exactly what the payment modal will ask for. --- # Recording payments and charges Category: Payments & Invoicing · Updated: Oct 11, 2026 · 5 min read URL: https://bookingpilot.al/knowledge-base/payments/pay-record Record Payment for money in, Add Charge for items on the bill, plus marking extras paid and settling at check-out. Two buttons move money on a booking: **Record Payment** for money coming in, **Add Charge** for items added to the bill. Both sit in the drawer’s Payment panel; **Record Payment** also lives in the row ⋯ menu on the Reservations list. ## Record a payment 1. Open **Record Payment**. 2. `Amount to Pay` comes prefilled with the exact remaining balance, adjust it for a part-payment. 3. Pick the `Payment Method` and click **Confirm Payment**. 4. The ledger gains a `Paid` row, history logs `Payment of X received via M`, and a `Paid: X` toast confirms. > **Important:** You cannot overpay a booking, `Amount exceeds the remaining balance (X).` Lower the amount to what is actually owed. ## Add a charge 1. Click **Add Charge**. 2. Pick a `Reason / Item`, `Room Service` is the default, alongside `Mini-bar`, `Breakfast`, `Late Check-out`, `Laundry`, `Airport Transfer`, `Extra Guest`, `Damages` and `Other`. 3. Enter the `Amount` and confirm, it raises the reservation total and history logs `Extra charge added: X (reason)`. > **Important:** OTA bookings block manual charging, `Manual card charging is disabled for {source} bookings`. Charges are only allowed on `Walk-In`, `Phone Booking`, `Email Booking`, `Direct Website` and manually created bookings. ## Marking extras and deposits paid Unpaid extras and requested deposits each carry a **Mark paid** button. It opens **Mark Add-on Paid** or **Mark Deposit Paid**, choose how the guest paid (the method defaults to `Cash`) and confirm. History logs `Add-on X marked as paid (M).` or `Deposit X marked as paid (M).` ## Settling at check-out **Check Out Guest** on a booking with an open balance opens the same payment modal, prefilled with what is owed. Confirming writes a `Final Settlement` row and completes check-out in one motion, no separate payment step needed. > **Tip:** `Enter` inside a modal’s text field fires the primary button, type the amount, press Enter, done. --- # Deposits and deposit invoices Category: Payments & Invoicing · Updated: Oct 11, 2026 · 4 min read URL: https://bookingpilot.al/knowledge-base/payments/pay-deposits Request money before arrival, Deposit Mail versus Deposit Invoice, the request flow, and marking a deposit paid. A deposit is money you ask for before arrival to secure the booking. BookingPilot gives you two doors to the same `Deposit Request` flow: **Deposit Mail** emails the guest a payable invoice, and **Deposit Invoice** in the drawer lets you send, download or print it. ## Deposit Mail, email the request 1. On the Reservations list, open the booking’s **⋯** menu and choose **Deposit Mail**. 2. The `Deposit Request` modal shows `Total reservation cost`, set `Deposit Amount` as a `Percentage (%)` or `Fixed Amount`; the amount clamps to the total. 3. Check the live `Deposit required` preview, then click **Send Request**. 4. A `Pending` deposit row lands on the ledger and the PDF is emailed, `Deposit invoice is being emailed to {email}`. > **Important:** Two things block sending: a fully paid booking, `This reservation is already fully paid, no deposit needed.`, and a missing guest email, `This reservation has no guest email, the deposit request cannot be sent.` Add an email to the booking first. ## Deposit Invoice, send, download or print The drawer’s **Deposit Invoice** button opens the same modal in invoice mode, with three exits: **Send to Guest**, **Download PDF** and **Print Invoice**. The document shows `Due date: Upon booking confirmation` and VAT columns, handy when a company asks for paperwork before paying. ## When the money arrives 1. Find the `Pending` deposit row on the ledger, it reads `Deposit requested (Pending)`. 2. Click **Mark paid** to open `Mark Deposit Paid`, `Record the deposit of X as received and choose how the guest paid.` 3. Pick the method (it defaults to `Cash`) and confirm, the row flips to `Paid` and history logs `Deposit X marked as paid (M).` > **Note:** Typing into the drawer’s **Deposit** field also creates a row, but it is a `Pending` request, not money. Nothing becomes `Deposit paid` until you mark it or record a payment. > **Tip:** The badge updates itself: a deposit covering the full total flips the booking to `Paid`; any smaller amount leaves it `Partial`. --- # Invoices, receipts and CSV exports Category: Payments & Invoicing · Updated: Oct 11, 2026 · 4 min read URL: https://bookingpilot.al/knowledge-base/payments/pay-documents Generate Invoice, Print Receipt, deposit invoices and the CSV export, which document to reach for and when. Three paper trails for three moments: the invoice carries the full bill, the thermal receipt is the guest’s proof at the desk, and the CSV export puts the reservation list into a spreadsheet. ## Generate Invoice, the full bill **Generate Invoice** in the drawer’s Payment panel downloads a PDF for the full amount (`Invoice downloaded`). To check it first, **Invoice** opens a preview numbered `#INV-`, per-night room-rate rows, every charge on its own line, then Subtotal, Service Tax and Total, stamped `PAID IN FULL` or `PAYMENT PENDING`, with a **Print Invoice** button. ## Print Receipt, the desk slip **Print Receipt** formats an 80mm thermal receipt with a QR code and opens the print dialog straight away, the thing you hand a guest who asks for proof of payment. ## Deposit invoices Deposit paperwork comes from **Deposit Invoice** (drawer) or **Deposit Mail** (row ⋯ menu), the PDF carries `Due date: Upon booking confirmation` and VAT columns. The full request flow is covered in *Deposits and deposit invoices*. ## CSV export On the Reservations list, the export icon downloads `reservations_export_.csv` with columns `Guest, Room, Type, Check-In, Check-Out, Amount, Balance, Status`, a toast confirms `Reservations exported to CSV`. | You need | Use | | --- | --- | | The complete bill for a stay | **Generate Invoice** or the **Invoice** preview | | Proof of payment at the desk | **Print Receipt** | | Deposit money before arrival | **Deposit Invoice** / **Deposit Mail** | | The reservation list in a spreadsheet | The **export** icon on the Reservations page | > **Tip:** Open the **Invoice** preview before printing, if the guest disputes a line, the drawer is still open behind it for you to fix the charge and regenerate. --- # Storing and viewing guest cards securely Category: Payments & Invoicing · Updated: Oct 11, 2026 · 5 min read URL: https://bookingpilot.al/knowledge-base/payments/pay-cards Cards are encrypted, viewable only behind an email code, limited per booking, and automatically purged on a PCI schedule. BookingPilot stores card details encrypted, day to day you see only the last four digits. Revealing the full number requires an email verification, is limited per booking, and the card data deletes itself on a PCI-DSS schedule. ## Save a card 1. In the drawer, click **Add Credit Card**, or fill **Credit Card Details** while creating the reservation. 2. Complete every field, all are required: cardholder name, card number (auto-groups into 4s and captures the last four), expiry (auto-formats as `MM / YY`) and CVC (up to 4 digits). 3. Save, the card encrypts server-side and history logs `Credit card added manually (ending in XXXX).` ## View a saved card 1. Click **Show Credit Card** to open `Verify To View Card`. 2. A 6-digit code is emailed to **your** staff address, enter it. `Resend code` waits 30 seconds. 3. Once verified, the read-only `Credit Card Details` modal opens with copy buttons beside each field. > **Important:** Wrong codes cost attempts, `Incorrect code, N attempts left`, and too many failures or an expired code locks the modal: `Code expired or too many attempts, request a new code`. > **Note:** The code goes to your email, not the guest’s, it verifies *you*. And the moment you close the modal, the decrypted number and CVC are dropped from memory. ## View limits and automatic deletion - **OTA-sourced bookings**, the card can be viewed at most 4 times; after that the button reads `Limit Reached`. - **CVC**, automatically deleted 14 days after the card was saved, or at check-out, whichever comes first (PCI-DSS). - **Full card data**, automatically deleted 90 days after check-out; only the last four digits are kept. > **Important:** There is no recovery after the purge, once deleted, the full number is gone for good and only the last four digits remain for identification. --- # Refunds Category: Payments & Invoicing · Updated: Oct 11, 2026 · 3 min read URL: https://bookingpilot.al/knowledge-base/payments/pay-refunds Full and partial refunds, who is allowed to make them, and why removing a paid extra counts as a refund. A refund returns money that is already on the ledger, a cancelled booking’s deposit, an overpayment, a paid extra the guest never used. Refunding is restricted on purpose: only **managers and admins** can do it, and the restriction is enforced server-side, not just hidden in the interface. ## Full and partial refunds - **Full refund**, the ledger row flips to `Refunded`. - **Partial refund**, the original row shrinks to the amount kept, and a separate `refund` row records what went back. - Either way the refund subtracts from net paid, the balance rises, and the payment badge recalculates itself, `Paid` can drop back to `Partial`. ## Refunding a paid extra Removing an **unpaid** extras chip just deletes its `Pending` charge, anyone with edit rights can do it. Removing a **paid** one is a refund: without refund rights you get `Refunds require a manager or admin` and the charge stays on the bill. | Action | Ledger effect | | --- | --- | | Full refund | Row → `Refunded`; the whole amount subtracts from net paid. | | Partial refund | Original row shrinks, plus a new `refund` row for the returned part. | | Remove unpaid extra | `Pending` charge deleted, no refund involved. | | Remove paid extra | Requires refund permission, otherwise blocked. | ## The Refunded status The drawer’s **Payment Status** select includes `Refunded`, but it is only settable with refund rights. A refunded booking’s badge and totals always follow the ledger, never the other way round. > **Note:** Read the ledger after any refund: a partial leaves both the shrunken original row and the `refund` row, together they are the paper trail your books need. > **Tip:** Front desk needing a refund? Record nothing yourself, ask a manager or admin to process it, since the permission check will refuse you anyway. --- # Guest profiles and stay history Category: Guests & Inbox · Updated: Oct 11, 2026 · 4 min read URL: https://bookingpilot.al/knowledge-base/guests/gst-profiles Find any guest, see their full stay history, and keep profile details up to date. The **Guests** page is BookingPilot’s guest database. Profiles are created automatically when reservations come in, so every guest, OTA booker, direct booking or walk-in, builds up a record of stays and spend without any admin from you. Each row shows the guest’s avatar, name and reference (`#GST-0007`), their **Contact** details, **Location**, number of **Stays**, total **Spent**, last **Visit** and a loyalty badge in the **Status** column. ## Finding a guest - Type in **Search guests...** in the top bar, it matches name, email, guest ID and phone number, even if you enter just the digits with no spaces or country code. - Use the **All**, **VIP**, **Returning** and **Blacklisted** tabs, then refine with **Minimum Stays**, the **Location** dropdown and the **Total Spent** min/max filters. - Sort by **Created Date**, **Last Visit**, **Guest Name**, **Stays**, **Total Spent** or **Status**, click the sort again to flip direction. - An orange `Note attached` pill in the **Location** column means the guest has notes, click it to read them. `Not set` simply means no location is on file. - Choose between 5 and 100 rows per page at the bottom of the table. > **Tip:** Click an email address or phone number in **Contact** to copy it, you’ll see `Email copied to clipboard` or `Phone number copied to clipboard`. ## Editing a profile Choose **Edit Profile** from the row’s **⋯** menu (or click the row) to open the drawer: **Email Address**, **Phone Number**, **Location**, **Postal Code**, **Guest Status**, **ID/Passport**, **Nationality**, **Date of Birth** and free-text **Guest Notes**, plus read-only **Total Stays**, **Total Spent** and **Last visit** stats. Press **Save** and you’ll see `Guest profile updated`. Saving needs the `guest:write` permission. > **Note:** **Guest Notes** are `Visible only to staff`, ideal for preferences like `Late check-in, extra pillows, ground floor...`. They are never shown to the guest. ## Stay history **View Stay History** in the **⋯** menu lists every reservation linked to the profile, room, status, dates, booking source and total, under `X Total Stays` and `Customer since {year}` (or `New customer`). If you see `No historical booking data found for this profile.`, the profile simply has no linked reservations yet. > **Note:** History is matched by guest ID where possible, otherwise by an exact, case-insensitive name match. `Cancelled` and `No Show` reservations never count toward stays or spend. You never need to merge profiles. When a reservation is created, BookingPilot links it to an existing profile by email first, then phone number, then a compatible name, filling blank contact fields as it goes and never overwriting details already on file. --- # VIP, returning and blacklisted guests Category: Guests & Inbox · Updated: Oct 11, 2026 · 4 min read URL: https://bookingpilot.al/knowledge-base/guests/gst-loyalty How the four guest statuses work, automatic upgrades, manual control, and what each badge means. Every profile carries a loyalty status, `Standard`, `Returning`, `VIP` or `Blacklisted`, shown as a coloured badge in the **Status** column and used by the tabs at the top of the **Guests** page. Statuses do two jobs: they tell the team who is arriving, and they let you pull up a whole segment, every VIP, say, in one click. | Status | Badge | What it means | | --- | --- | --- | | `Standard` | Neutral | Where every guest starts. | | `Returning` | Info (blue) | Reached the returning-guest stays threshold, 2 stays by default. | | `VIP` | Purple | Reached the VIP spend threshold, 2,500 in your base currency by default. | | `Blacklisted` | Danger (red) | Set by hand, flags a guest your property has decided not to host. | ## Automatic upgrades The **Guest Auto-Classification** automation watches the numbers for you. While a guest’s stored status is `Standard`, BookingPilot promotes them automatically: enough stays makes them `Returning`, enough spend makes them `VIP`. Change either threshold in the **Guest Auto-Classification** automation. - Only `Standard` guests are ever upgraded automatically, automation never touches a status a person set. - A manual `VIP` or `Blacklisted` stays exactly that, even if the thresholds or the guest’s spend change later. - Stays and spend count every reservation except `Cancelled` and `No Show`. ## Setting a status by hand 1. Find the guest on the **Guests** page and open the **⋯** menu at the end of the row. 2. For blacklisting, choose **Mark Blacklisted**, or **Remove Blacklist** to undo it. For other changes, choose **Edit Profile**. 3. In the drawer, set **Guest Status** to `Standard`, `Returning`, `VIP` or `Blacklisted` and press **Save**. > **Important:** Manual statuses are sticky. If you mark someone `VIP` yourself, the automation won’t demote them, even if they stop qualifying or the thresholds change. > **Tip:** Combine the status tabs with filters, **VIP** plus **Minimum Stays** → **More than 10** finds your most loyal big spenders. --- # Guest privacy: exports, notes and deletion Category: Guests & Inbox · Updated: Oct 11, 2026 · 4 min read URL: https://bookingpilot.al/knowledge-base/guests/gst-gdpr Answer privacy requests yourself, export a guest’s data as JSON, anonymize their profile, or export the whole list. When a guest asks what data you hold on them, or asks to be forgotten, both jobs start from the same place: the **⋯** menu on their row in **Guests**. Two rules apply throughout: card data is never exported, and financial records the law requires you to keep are never deleted. ## Export one guest’s data 1. Open the **⋯** menu on the guest’s row and choose **Export Data (GDPR)**. 2. BookingPilot downloads a JSON file with the guest’s personal details, stay history and inbox messages. 3. Send the file to the guest, it is the complete record of what you hold. > **Note:** Card data is never included in the export, there is no way to pull card numbers out of BookingPilot. ## Delete a profile 1. Open the **⋯** menu and choose **Delete Profile**. This needs the `guest:delete` permission, which only managers and admins have. 2. Read the confirmation: `Delete {name}? Their personal details will be permanently removed and anonymized across reservations, payments, and messages.` 3. Confirm to finish. The bookings and messages remain for your records, but the person’s identity is scrubbed from them. > **Important:** Deletion cannot be undone. Financial records are retained as required by law, everything else about the person is anonymized permanently. ## Export the whole list To export what you currently see, use the list export on the **Guests** page and confirm `Export guest list?`. The CSV contains all filtered rows, your tabs, filters and search apply, and it is protected against spreadsheet formula injection, so it opens safely in Excel. > **Tip:** Filter first, export second. Want just VIPs? Open the **VIP** tab, then export, the file only includes the rows on screen. --- # The unified inbox Category: Guests & Inbox · Updated: Oct 11, 2026 · 4 min read URL: https://bookingpilot.al/knowledge-base/guests/inbox-unified All your Booking.com, Airbnb and Expedia guest messages in one screen, which threads appear, and why. The **Inbox** puts guest messages from your connected channels in one place, so a Booking.com question and an Airbnb question get the same reply routine. It only covers connected channels with two-way messaging: `Booking.com`, `Airbnb` and `Expedia`. A thread appears only when the reservation has an OTA booking ID, manual bookings, walk-ins and synced `Agoda`, `Vrbo` or `Trip.com` reservations never appear here. ## Finding a conversation - **Search guests or messages...** searches guest names and message text. - The **All**, **Unread** and **Archived** pills filter the list, and each channel has its own pill, click an active channel pill again to go back to **All**. - Pinned threads sit at the top; everything else sorts newest first. An empty list reads `No messages found.` - Each row shows the guest’s name (bold while unread), the channel logo, the time and a preview of the last message, a `Deposit Invoice` label for invoice PDFs, or the attached file’s name. ## Reading a thread Messages group under date pills, `Today`, `Yesterday`, then weekdays and dates. Your replies are orange bubbles on the right with a blue tick once the guest has read them; guest messages are white bubbles on the left. - An `Auto ·` pill under a message marks it as sent by an automation, `Booking Acknowledgment`, `Pre-Arrival Instructions`, `Review Request`, `Guest Auto-Reply`, `Payment Follow-up` or `Balance Reminder`. These labels are staff-only. - Deposit invoices appear as cards with **View Invoice** and **Download**. Images show as thumbnails; other files open in a new tab. - The header shows the guest’s `Status` and room (or `Unassigned`). The info icon opens **Reservation Details**, guest, channel, OTA ID, status, room, and click-to-copy phone and email. > **Note:** If a guest insists they messaged you but nothing is in the Inbox, check the booking source, only `Booking.com`, `Airbnb` and `Expedia` reservations carrying an OTA booking ID create threads. > **Tip:** The info icon in the thread header is the quickest route to the guest’s OTA booking ID and contact details. --- # Replying to guests and the AI Message Refiner Category: Guests & Inbox · Updated: Oct 11, 2026 · 5 min read URL: https://bookingpilot.al/knowledge-base/guests/inbox-replies Reply once in BookingPilot and reach the guest inside their OTA app, with an AI polish when you need it. Replies you send from the Inbox are stored in BookingPilot and relayed through the OTA’s own messaging, the guest reads them in their Booking.com, Airbnb or Expedia app like any other message. ## Send a reply 1. Pick a thread and type in the `Type your reply...` box at the bottom. 2. Send it. Your message appears instantly as an orange bubble, then BookingPilot delivers it to the OTA. 3. Check for the error `Saved in inbox, but not delivered to {OTA}: {error}`, it means the message is stored but never reached the guest, so resend it or contact them another way. > **Important:** Only the text is relayed. Attachments and deposit-invoice cards stay inside BookingPilot, the guest receives your words, not your files. ## Attach a file Click **+** by the composer and choose **Attach File**. Files up to 10 MB are fine, and `HEIC` photos from iPhones are converted to `JPEG` automatically. In the thread, images show as thumbnails and other files appear as cards that open in a new tab. ## Polish a draft with AI 1. Write your reply first, the refiner improves what you’ve typed, it doesn’t write from scratch. 2. Click the **AI Message Refiner** button. Your text is rewritten, polished, warm and professional, in the exact same language you wrote it, with a typewriter animation. 3. Read it back, adjust anything that sounds wrong, then send. > **Note:** If it fails you’ll see `AI polish unavailable, your original text is kept.` Your draft is untouched; edit or send it as normal. > **Important:** Mind the footnote under the composer: `Polish uses our built-in AI, don’t paste guest personal data.` Keep passport numbers and similar details out of anything you plan to polish. > **Note:** There’s no template or quick-reply library and no way to assign threads to colleagues, if a message needs a manager, handle that conversation outside the thread. --- # Organizing conversations: pin, archive, export Category: Guests & Inbox · Updated: Oct 11, 2026 · 4 min read URL: https://bookingpilot.al/knowledge-base/guests/inbox-manage Pin the important threads, archive the rest, and export or delete conversations safely. Every thread has a **⋯** menu in its header with the housekeeping tools: read state, pin, mute, archive, export and delete. | Action | What it does | | --- | --- | | **Mark as Read / Unread** | Flags the thread, use **Unread** as a reminder to come back. | | **Pin / Unpin** | Keeps the thread at the top of your list. | | **Mute / Unmute** | Quiets a busy thread so it stops flagging itself to you. | | **Archive / Unarchive** | Moves the thread out of the main list into the **Archived** pill. | | **Export conversation** | Downloads the whole thread as a text file. | | **Delete conversation** | Erases the thread permanently. | > **Important:** Pin, archive and mute last only for your current session, reload the page and they’re reset. **Unread** flags and deletions do persist across reloads. ## Export a conversation 1. Open the thread and choose **Export conversation** from the **⋯** menu. 2. BookingPilot downloads a plain-text file named `conversation_{guest}_{date}.txt`, keep it with the reservation for disputes or records. ## Delete a conversation 1. Choose **Delete conversation** from the **⋯** menu. 2. Confirm the warning: `Permanently delete this conversation? All messages and attachments will be erased and cannot be recovered.` > **Important:** Deletion is permanent, every message and attachment in the thread is erased and can’t be recovered. Export first if you might need it. > **Tip:** Treat the main list as active work: pin in-house guests, archive departures, and mark anything that needs a follow-up as **Unread**. --- # Setting up rooms and categories Category: Rooms & Housekeeping · Updated: Oct 11, 2026 · 6 min read URL: https://bookingpilot.al/knowledge-base/rooms/room-setup Create the room types and units that every reservation, task and channel listing is built on. The **Rooms** page is a live map of your property. Every reservation, housekeeping task and channel listing traces back to a room and its category, so it pays to set this up carefully once. Rooms are grouped under **categories**, your room types. A category holds the shared details (occupancy, bed setup, colour); each room is a numbered unit inside one. Create your categories first, then add rooms to them. ## Create your categories first 1. Open **Rooms** and click **Create Category**. 2. Enter a **Category Name** guests will recognise, e.g. `Deluxe Double`. 3. Set **Max Guests** (1-10, default 2), then **Adult Spaces** and **Children Spaces**, an empty box counts as 0. 4. Describe the **Bed Setup**, e.g. `1 King`. It shows on the category header and is pushed to your channels. 5. Pick a **Category Color** from the swatches or type a hex code, then save. > **Note:** **Adult Spaces** + **Children Spaces** can’t exceed **Max Guests**, you’ll see `Adult + children spaces (N) can't exceed Max Guests (M)`. Children can sleep in adult spaces (if the beds are big enough), but adults can’t use children spaces, so set **Adult Spaces** to the maximum the beds comfortably fit. ## Add your rooms 1. Click **Add New Room**. 2. Enter the **Room Number**, e.g. `201`. 3. Choose the **Category**, the room inherits its max guests and bed setup. If the dropdown is empty, create the category first. 4. Set the **Floor**, e.g. `Ground Floor`. Typing suggests floors you already use, press Enter to accept the top suggestion. 5. Save. New rooms start as `Clean` and `Active`. ## Reading the room list - Rooms sit under collapsible category headers showing an `N Units` pill, max guests and the bed setup. - An orange ⚠ on a room number flags a priority stay, hover for `Priority: VIP / Early Check-in`. - Filter with the **All / Clean / Dirty / Out of Order** tabs, or by **Floor**, **Assignee** (including **Unassigned**) and **Occupancy**. - Use **Search rooms…** in the top bar to jump to a room, or **Export CSV** to download `rooms_export_.csv` with columns `Room, Category, Floor, Occupancy, Housekeeping, Condition, Assignee`. > **Tip:** The category modal doubles as your category manager, the **Existing Categories** list has **Edit** and **Delete** for each entry, and deleting warns you how many rooms the category contains. > **Important:** **Delete Room** on a single room is permanent, and **Bulk Delete** removes whole categories with every room inside them after a double confirmation. Neither can be undone. > **Note:** Related settings live on other pages: amenities are set per room type on the **Website** page, nightly prices on the **Rates** page, and channel room mapping happens automatically when you connect an OTA in **Integrations**. --- # Room statuses: clean, dirty and out of order Category: Rooms & Housekeeping · Updated: Oct 11, 2026 · 5 min read URL: https://bookingpilot.al/knowledge-base/rooms/room-status What the Clean, Dirty, Inspect, Active, Out of Order and Maintenance badges mean, and what moves each one. Every room carries two independent statuses: a **Housekeeping** status (where it sits in the cleaning pipeline) and a **Condition** (whether it can be sold). They move separately, a room can be dirty and sellable, or spotless and out of order. ## Housekeeping status | Badge | Meaning | | --- | --- | | `Clean` (green) | Ready for the next guest. | | `Dirty` (amber) | Needs cleaning, a task appears on the housekeeping board. | | `Inspect` (blue) | Cleaning or inspection is in progress. | The pipeline runs `Dirty` → `Inspect` → `Awaiting Inspection` → `Clean`. BookingPilot never marks a room clean, only a person does that (or a supervisor, when inspections are on). A room with no recorded status is treated as `Dirty`. Rooms go `Dirty` automatically on check-out (`Checked out. Room marked as Dirty.`), when the due-out sweep finds a guest still checked in past check-out time, and when you move a guest to another room, the vacated room turns `Dirty`. Each change pushes a `Room {n} needs cleaning` alert to housekeeping devices. ## Condition | Badge | Meaning | | --- | --- | | `Active` (green) | Normal, the room can be booked and sold. | | `Out of Order` (red) | Blocked, removed from sale. | | `Maintenance` (yellow) | A maintenance block covers today, shown automatically, not a status you set by hand. | ## Blocking and unblocking a room 1. Open the room’s **⋯** menu and choose **Block / Maintenance**. 2. Pick a **Reason**: `Maintenance / Repair`, `Deep Cleaning` or `Administrative Hold`. 3. Either tick **Indefinite / Permanent Block**, or set **From** and **Until** dates, the until date counts as a blocked night. 4. Confirm with **Block Inventory**. The room comes off sale on every connected channel. > **Important:** Blocking with `Deep Cleaning` also marks the room `Dirty`. When it’s time to reopen, **Unblock Room** resets the room to `Active` and deletes every maintenance block on it, to end just one dated block early, use **Unblock {dates}** on that block instead. > **Note:** The **Occupancy** column in filters and the CSV export is derived, not stored: `Maintenance` > `Departing Today` > `Arriving Today` > `Stay-over` > `Vacant`. There’s deliberately no **Maintenance** option in the Occupancy filter, those rooms show under the **Out of Order** tab. > **Tip:** Out-of-order and maintenance rooms get no cleaning tasks unless a guest arrives or departs that day, so blocking a room also takes it off your housekeepers’ board. Marking `Clean`/`Dirty` is open to admin, manager, front desk and housekeeping; adding, editing and deleting rooms is admin/manager only. --- # The housekeeping board for managers Category: Rooms & Housekeeping · Updated: Oct 11, 2026 · 6 min read URL: https://bookingpilot.al/knowledge-base/rooms/hk-board Run the day’s cleaning from one board, tasks, priorities, inspections, handover notes and lost property. The **Housekeeping** page turns your room statuses into a to-do list for the day. It has four views in the sub-nav: **Board**, **Handover**, **Lost & Found** and **Setup**. Admin, manager and front desk roles can see the board; assigning work uses the same access. Most rows are generated automatically, every room gets a virtual task (`HK-`) that mirrors its housekeeping status, alongside manual tasks you add yourself, like maintenance or supplies. ## Finding the work - Tabs: **All Tasks**, **Pending**, **In Progress**, **To Inspect**, **Blocked**, **Completed**. - Filters: **Category** (Cleaning/Maintenance), **Staff Member** (including **Unassigned**) and **Task Type**; sort by Priority, Room, Task Type, Status or Assignee. - **Search tasks…** matches room number, task type and guest name. Guest names are only visible to non-housekeeping roles. - Tasks group by room, extra tasks on the same room render as amber sub-rows under it. ## Statuses and actions | Status | What you can do | | --- | --- | | `Pending` (amber) | **Start Task**, or **Start Repair** on maintenance work. | | `In Progress` (blue) | **Mark Clean**, or **To Inspect** when the inspection workflow is on. Maintenance shows **Mark Fixed**. | | `Awaiting Inspection` → `To Inspect` (purple) | Supervisors **Approve** the room or **Send back** with a correction. | | `Completed` (green) | **Reopen Task** if the room needs another pass. | | `Blocked` | The room can’t be worked, **Resolve Block** clears it. | Every row also offers **Reassign Task** (admin, manager, front desk) and **Report Issue**, which spins up a `Maintenance: Room {n}` task at `High` priority. **Send back** requires a `What needs fixing?` note and takes an optional photo, the room returns to `Dirty` and the cleaner sees the correction. ## Handover **Open handover** holds `Unresolved work and notes for the next shift.` Click **New note** to write one: free text, an optional room, an **Expires** choice (In 8 hours, In 24 hours, In 3 days, In a week or Until resolved), **Requires acknowledgement**, and, for supervisors, **Pin as supervisor notice**. The team can **Acknowledge**, **Pin** or **Resolve** notes; the **Recently closed** archive keeps the last 20. ## Lost & Found Items your cleaners log in the staff app land under **Lost & Found**, tabbed **All / Stored / Returned / Disposed**. Each row records the item, where it was found, who found it and where it’s stored. Supervisors close the loop with **Mark returned** or **Dispose**. > **Tip:** Priorities sort themselves: `Urgent` means the guest is already out or it’s a VIP turnover, `High` covers occupied turnovers, check-in cleans, VIP and flagged rooms, and `Normal` is everything else. Sort the board by **Priority** to see the day in the order it needs doing. --- # Housekeeping setup: inspections, trolley lists, shifts and the cleaning guide Category: Rooms & Housekeeping · Updated: Oct 11, 2026 · 5 min read URL: https://bookingpilot.al/knowledge-base/rooms/hk-setup Turn on inspections, prefill supply requests, set shift hours and write the cleaning guide, all from the Setup tab. The **Setup** tab on the Housekeeping page holds the handful of settings that shape your cleaning team’s day: room inspections, trolley restock lists, shift hours, the cleaning guide and help contacts. Only admins and managers can change them, and everything here feeds the staff app your cleaners use. ## Room inspection The **Room inspection** toggle changes the pipeline to `To clean → In progress → Awaiting inspection → Ready`. With it on, cleaners finish a room with **To Inspect** instead of **Mark Clean**, and a supervisor **Approve**s it or **Send back**s it with a correction before the room can be sold again. ## Trolley restock lists Write one preset per line, e.g. `Standard trolley, 4 bath towels, 4 hand towels, 2 soap`. Staff tap a preset in the app to prefill a supplies request instead of typing it out. Click **Save lists** when you’re done. ## Shift hours Set **Start**-**End** plus an optional **Break** for each housekeeper. Edits are staged, the banner shows `Unsaved shift changes (n pending)` until you press **Save changes**, which pushes a shift alert to that team member’s app. ## Cleaning guide 1. Enter a **Title**, pick a **Room type** (or leave it on All), and write the **Steps & notes**. 2. Click **Add entry**. 3. Staff read entries under **Guide** in the app and inside each **Room Brief**, so write them for the person holding the cloth, not the office. ## Help & contacts Add a **Label**, **Type** (Reception, Supervisor, Maintenance, Emergency or Other), **Phone** and **Note**, then **Add contact**. Numbers become one-tap calls in the staff app, worth setting up before your first shift. > **Tip:** Pair the inspection workflow with guide entries: when a supervisor sends a room back, the cleaner sees both the correction note and the guide for that room type, which is how standards actually stick. --- # The staff app at a glance Category: Housekeeping Staff App · Updated: Oct 11, 2026 · 4 min read URL: https://bookingpilot.al/knowledge-base/staff-app/hkapp-setup What the app is, how to get it on your phone, and where everything lives. The staff app is BookingPilot for the housekeeping team. It runs on your phone, in your language, and shows only what you need: your rooms, your jobs, your shift. There is no app-store download, it works in the browser. But on a phone you must install it to your home screen and allow notifications before you can start work. ## Set up your phone 1. Sign in to BookingPilot in your phone’s browser. If setup is needed you’ll see **Set up BookingPilot on this phone**. 2. Tap **Add to Home Screen** and follow the browser’s steps to install the app. 3. Tap **Enable notifications** and allow them, this is how urgent rooms reach you. 4. Open the app from your home screen. You can’t get in until both steps are done. With notifications on, expect `Room {n} needs cleaning` when a room turns `Dirty`, `Room {n} sent back` when an inspection fails, and `Supplies needed` when a teammate asks for stock. > **Important:** Stay signed in. Signing out, or a password reset from the office, stops every room alert until you sign back in and allow notifications again. If the app opens to a sign-in screen, that is why. > **Note:** The setup gate only applies to phones, on a desktop, or with a front-desk or manager account, you go straight in. Skipped notifications by accident? The **Get room cleaning alerts** card on the **Today** page offers them again. ## Finding your way around - **Work**, **Today** (your room list), **Tasks** (every job), **My Shift** (hours and supervisor), **Handover** (notes between shifts). - **Resources**, **My Requests** (supplies and lost & found), **Cleaning Guide** (checklists), **Help & Contacts** (who to call). - **Personal**, **Display** (language, appearance, text size), **Profile** (account and sign-out). ## Languages The app speaks 25 languages: English, Afrikaans, አማርኛ, العربية, Български, বাংলা, Deutsch, Ελληνικά, Filipino, Français, हिन्दी, Italiano, Македонски, മലയാളം, Português, Română, Русский, Shqip, Srpski, Español, Kiswahili, தமிழ், Türkçe, Українська and isiZulu. Pick yours on the **Display** page, it’s set per device, and everything you save stays in English so the office can read it. > **Tip:** Pull down on any page to refresh. If the sync pill says `Saved on this phone (n)`, your work is queued and will send when you’re back in signal. > **Note:** Supervisors run the desktop **Housekeeping board**, which is always in English. They maintain the trolley lists, cleaning checklists and inspection approvals you see in the app. --- # Cleaning rooms: Today, Tasks and the Room Brief Category: Housekeeping Staff App · Updated: Oct 11, 2026 · 5 min read URL: https://bookingpilot.al/knowledge-base/staff-app/hkapp-cleaning Your room list, the swipe-to-finish move, and every button on the Room Brief. The **Today** page is your work list. It opens with `Hi, {firstName}`, a `{done}/{total} rooms done` progress bar, and a count of priority rooms still left. The list shows only rooms assigned to you, most urgent first. Tap **Show all** to see every pending room in the hotel and **My rooms** to switch back. An empty list reads `No pending rooms assigned to you`, or `Nothing left to clean today` when you’re finished. - **Supplies needed**, open supply requests, each with a **Done** button for when you’ve handled it. - **Hotel Overview**, today’s check-ins and check-outs by room number and status. Guest names are never shown. - **Live Status**, counts of `Occupied`, `Vacant Clean`, `Vacant Dirty` and `Out of Service` rooms, plus housekeeping progress from `To Clean` to `Completed`. ## The swipe move 1. Press a room row and drag it right until the progress ring appears, about a finger’s width. 2. Keep holding until the ring fills, roughly a second. The hold is what stops accidental swipes. 3. Let go. The phone buzzes and the room is done. Swiping right finishes the room, `Mark clean`, or `Send for inspection` if your hotel checks rooms. Swipe left on a finished row to reopen it, press and hold a row to toggle it, or tap for the full **Room Brief**. > **Tip:** Swiped the wrong room? You have 5 seconds, the `Room {n} marked clean` toast has an **Undo** button. ## The Room Brief | Button | When it shows | | --- | --- | | **Start** | Room is `Pending`, moves it to `In Progress`. | | **Mark clean** | Normal finish. | | **Send for inspection** | Your hotel requires a supervisor check, the room shows `Waiting for inspection`. | | **Approve** / **Send back** | Supervisors only, pass the room, or return it with a correction note and photo. | | **Reopen** | A finished room needs more work. | | **Can’t complete** | Something blocks you, see the blocks and retries article. | The brief also shows the room’s status, priority, clean type, time window and assignee. Under the actions: **Report Issue** creates a `Maintenance: Room {n}` task at High priority, **Request Supplies** opens the supplies form, and **Add note** attaches a note to the room. ## The Tasks page **Tasks** lists every room job in the hotel, urgent first, followed by **Open jobs**, maintenance, supplies and misc work, with your own jobs at the top. --- # When a room can’t be cleaned: blocks and retries Category: Housekeeping Staff App · Updated: Oct 11, 2026 · 4 min read URL: https://bookingpilot.al/knowledge-base/staff-app/hkapp-blocks DND, missing keys, guests still inside, log a block and pick when to try again. Sometimes a room can’t be cleaned right now, the guest is still inside, the DND sign is up, or the key won’t work. Don’t just skip it: report a block so the desk knows why, and the room can come back to you later. ## Report a block 1. Open the room and tap **Can’t complete** on the Room Brief, it’s the red action. 2. Under `Why can’t this be done?`, tap the reason that fits. 3. Add a note or photo if it helps, a photo of a broken lock explains it faster than words. 4. Choose a **Try again** time, then tap **Report**. - `Guest still in room` - `Do Not Disturb` - `Missing supplies` - `Maintenance issue` - `Access / key problem` - `Other` **Try again** choices are `In 30 min`, `In 1 hour`, `In 2 hours`, `End of shift` or `Tomorrow 9:00`, pick when you realistically want the room back. Reporting writes a block on the room. The Housekeeping board shows `Can’t complete: {reason}`, and a `Room {n} blocked` alert goes straight to the manager and front desk, so they can act if the guest needs moving or the door needs fixing. ## Clearing a block A blocked room shows a panel on its brief with the reason, your note and photo, and a **Resolve** button. You usually won’t need it, marking the room clean clears the block automatically. > **Tip:** If the problem needs supplies or a repair, also tap **Request Supplies** or **Report Issue** on the brief, the block says the room is stuck, the task says what to bring. > **Note:** Rooms `Sent back` from inspection aren’t blocks, they show the supervisor’s correction note and photo. Fix what’s listed and **Send for inspection** again. --- # Supplies, lost & found, shift and handover Category: Housekeeping Staff App · Updated: Oct 11, 2026 · 5 min read URL: https://bookingpilot.al/knowledge-base/staff-app/hkapp-requests Order supplies, log found items, check your shift, and leave notes for the next shift. **My Requests** has two tabs, **Supplies** for things you need and **Lost & Found** for things guests leave behind. What you send lands on the team’s task list straight away. ## Ask for supplies 1. Go to **My Requests → Supplies** and tap **+ Request supplies**. 2. Describe what you need, `e.g. 2 towels, 1 soap, coffee pods…`. Set **Room** if it’s for one room, or leave the default `Laundry / storage`. 3. Tap a **Trolley lists** chip to drop in a whole preset list, your supervisor keeps these up to date. 4. Send it. The team gets a `Supplies needed` alert right away. > **Tip:** Nearly out of something hotel-wide? Turn on **Low stock, flag for reorder**, the request is marked `[Low stock]`, sent at high priority, and flagged for whoever orders stock. ## Log a found item 1. Open the **Lost & Found** tab and tap **+ Log a found item**. 2. Fill in **What was found**, **Room**, **Where found** and **Handed in at**, and add a photo, photos settle most arguments later. 3. Save it. The item gets a badge, `Stored`, `Returned` or `Disposed`, and a manager uses **Mark returned** when the guest collects it. ## Your shift **My Shift** shows your working hours and break, the rooms assigned to you, and your supervisor with a **Call** button that dials them. The stats count rooms `Assigned`, `Still open` and `Blocked`. If it says `No shift hours set, ask your supervisor.`, your hours haven’t been added yet. ## Handover notes **Handover** is the notebook between shifts. Tap **+ New handover note**, write it, optionally pick a room, and choose when it **Expires**, `In 8 hours`, `In 24 hours`, `In 3 days`, `In a week` or `Until resolved`. - **Requires acknowledgement** makes readers tap **Acknowledge**, the note shows `Seen by {count}` names so you know who’s read it. - An amber `Expires {time}` means under 4 hours left. Tap **Resolve** when it’s handled; finished notes live in **Resolved & expired**, it keeps the last 20. - **Pin as supervisor notice** is a manager option, pinned notes stay on top for everyone. > **Tip:** App language not English? Every handover note gets a **Translate** button, tap **Show original** to flip back. --- # Language, display and help contacts Category: Housekeeping Staff App · Updated: Oct 11, 2026 · 4 min read URL: https://bookingpilot.al/knowledge-base/staff-app/hkapp-settings Make the app yours, language, text size, theme, and find the right number fast. The **Display** page controls how the app looks on your phone, appearance, language and text size. It only affects your device, so you can make it comfortable without changing anything for anyone else. ## Language and text size 1. Open **Display** under **Personal**. 2. Tap **Language** and pick yours, all 25 are listed in their own script, like `Español`, `हिन्दी` or `isiZulu`. 3. Drag the **Text Size** slider between 80% and 140%, the preview on the page shows the size before you leave. 4. Choose **Light**, **Dark** or **System** for appearance; `System` follows your phone’s own setting. > **Note:** `Text size and language apply to this device only.` What you type and the room statuses stay in English, so the office reads the same words on the Housekeeping board. ## Cleaning Guide **Cleaning Guide** is your read-only checklist library, tap a room-type chip to filter, then open a card for the steps. If it says `No guide entries yet. A supervisor can add checklists from the Housekeeping board.`, ask your supervisor. ## Who to call **Help & Contacts** answers `Who to call and when.` Numbers are grouped, Emergency, then Reception, Supervisor, Maintenance and Other, and each **Call** button dials straight from the app. > **Important:** The amber banner is the rule: `In an emergency call the local emergency number first, then reception.` ## Offline and your account No signal in a basement room? Keep working, your taps save on the phone. The sync pill counts them: `Saved on this phone (n)` becomes `Pending sync (n)` while it uploads, then disappears. If two people update the same room, the newest change wins; notes and photos upload exactly as you wrote them. > **Tip:** **Profile** holds your account card with **Sign Out** and **Delete account**, sign out at the end of a shift if you share the phone. --- # The rates & availability matrix Category: Rates & Availability · Updated: Oct 21, 2026 · 5 min read URL: https://bookingpilot.al/knowledge-base/rates/rate-grid Read the grid that controls your prices, availability and stay rules for the next 60 days and beyond. The **Rates & Availability** page is one big calendar grid: room types down the left, days across the top, starting today and auto-extending past 60 days as you scroll. There’s one rate plan per room type, what you see on this grid is what sells, direct and on channels. Admins, managers and front desk can all view the grid, but only admins and managers can edit it. Front desk sees the same numbers read-only. ## The rows on each room type | Row | What it holds | | --- | --- | | **Sell Price** | Your nightly direct price for that date. | | **{Channel} Rate** | One row per connected channel. Untouched cells fall back to your Sell Price plus the channel’s markup, Airbnb 12%, Booking.com 15%, Expedia 10%, Agoda 10% and Trip.com 10% by default. Hopper uses the adjustment you set for your contract. | | **Availability** | Rooms on sale that night: the lower of your manual cap and sellable rooms minus occupied. Sellable excludes `Out of Order` and `Maintenance` rooms. | | **Min. Nights** | Shortest stay that can arrive that day, default `1`. | | **Max. Nights** | Longest stay that can arrive that day, default `365`. | ## Reading availability - Green cells are fully open, orange means partially booked, and a red tinted cell means `0` left. - The last available unit shows red, except categories with two units or fewer, which stay orange so they aren’t permanently alarming. - An orange corner triangle marks a `Manual availability cap` you’ve set on that date. - Blocked rooms lower availability on their own, take a room `Out of Order` and the count drops without you touching the grid. ## Getting around - **‹ ›** step the grid a week at a time, stepping back unlocks past dates for viewing. - **Jump to date** opens a date picker; picking a past date also unlocks it. **Today** snaps back and relocks the past. - **Add-ons & Extras** and **Bulk Update** open their own modals; **Cancel** and **Save (N)** handle staged edits. - Click a room type in the sidebar to collapse its rows when you only need a few. > **Note:** Seasonal property? Dates outside your operating period render as diagonal-striped `Closed` cells, price shows `Closed`, availability is `0`, and the cells can’t be edited. > **Tip:** Room types show an `N Units` pill in the sidebar, glance at it before editing a channel row so you’re pricing the right thing. --- # Editing prices and availability Category: Rates & Availability · Updated: Oct 21, 2026 · 5 min read URL: https://bookingpilot.al/knowledge-base/rates/rate-editing Click or drag across cells, type a value, then Save, nothing goes live until you commit it. Every number on the grid is edited the same way: select cells, type a value, apply. Edits are staged first, shown in orange on a tinted cell, and only go live when you press **Save (N)**. ## Edit a set of cells 1. Click a cell, or drag across several cells in the same row, the grid auto-scrolls when you hit the edges. 2. In the **Edit {field}** popover, check the date range and type the new value. 3. Click **Apply** or press Enter, Esc cancels. The cells turn orange: staged, not saved. 4. Press **Save (N)** in the toolbar. You’ll see `Rates committed & synced` when it’s done, **Cancel** discards everything staged. ## What each field accepts | Field | Rules | | --- | --- | | Sell Price and channel rates | Whole numbers `0`-`50000`. Empty is rejected. | | Availability | A number sets a manual cap. Empty clears the cap back to automatic, the field hint says `Leave empty to remove the manual cap and use automatic availability.` | | Min. Nights | `1`-`30`. Empty resets to the default `1`. | | Max. Nights | `1`-`365`. Empty resets to the default `365`. | Editing **Sell Price** while channels are connected adds an **Apply same price to all channels** checkbox, tick it to push the same nightly price to every channel row, overriding the markup for those dates. > **Important:** Staged edits aren’t saved. If you navigate away or press **Cancel**, they’re gone, only **Save (N)** commits them, and once committed they sync to your channels straight away. > **Tip:** Stage a whole season before you save: the orange cells are easy to scan, and the count in **Save (N)** tells you exactly how many cells you’re about to change. --- # Bulk updates and seasonal closures Category: Rates & Availability · Updated: Oct 11, 2026 · 4 min read URL: https://bookingpilot.al/knowledge-base/rates/rate-bulk Reprice whole seasons in one pass, and how closed dates behave on seasonal properties. **Bulk Update** applies one change across any date range, including dates beyond the window you can see on screen. It’s the fast way to set weekend pricing, raise a season’s rates or enforce a minimum stay. ## Run a bulk update 1. Click **Bulk Update** in the toolbar. 2. Choose the **Target Room Type**, all types, or just one. 3. Choose the **Target Field**: **Sell Price**, a channel rate, **Availability**, **Min. Nights** or **Max. Nights**. 4. Set the **From** and **To** dates, then pick **Days of Week**, all days are on by default, untick the ones to skip. 5. Choose the **Action**: prices get `Add (+)`, `Sub (-)`, `Add (%)` and `Set (=)`; other fields use `Set to`. 6. Enter the value and click **Create Overrides**, you’ll see `N cells staged, press Save to commit`. 7. Review the orange staged cells on the grid, then press **Save (N)**. > **Tip:** Combine **Days of Week** with `Add (%)` for the classic moves: Friday-Saturday up 15%, or Sundays down 10% to pull in weekend-extenders. ## Seasonal closures If your property’s operating period is `seasonal`, dates outside it show as diagonal-striped `Closed` cells: the price reads `Closed`, availability is `0`, and the cells can’t be edited, so a seasonal closure never needs a manual availability sweep. > **Note:** Bulk updates skip closed dates automatically, so you can safely run a whole-year override on a seasonal property without opening the winter months. > **Important:** Bulk edits can stage hundreds of cells at once. Check the `N cells staged` count before you press **Save (N)**, committed changes sync to channels immediately and there’s no undo. --- # Channel rates, markups and availability caps Category: Rates & Availability · Updated: Oct 11, 2026 · 5 min read URL: https://bookingpilot.al/knowledge-base/rates/rate-channels How each channel gets its price, and how to cap the rooms you sell on any night. Each connected channel gets its own rate row under the room type, for example `Airbnb Rate`, `Booking.com Rate`, `Expedia Rate`, `Agoda Rate`, `Trip.com Rate` or `Hopper Rate`, so you can price the OTAs differently from direct. If you never touch a channel cell, it follows your **Sell Price** plus the channel’s markup. Default markups are 12% for Airbnb, 15% for Booking.com, and 10% for Expedia, Agoda and Trip.com. Hopper’s adjustment depends on your negotiated net or gross contract. Set the percentage per connection in **Integrations** (`Price Markup over Sell Price`); negative values undercut your direct price. ## Two ways to price a channel - Let the markup do it: untouched channel cells show `round(Sell Price × markup)` and move whenever Sell Price moves. - Override per date: edit the channel row like any other, drag across cells, type, **Apply**, **Save (N)**. Or tick **Apply same price to all channels** while editing Sell Price to level every channel at once. ## Availability caps Effective availability is the lower of two numbers: your manual cap, and sellable rooms minus occupied. Sellable excludes `Out of Order` and `Maintenance` rooms, so taking a room out of service lowers availability without touching the grid. - Type a number into an **Availability** cell to set a manual cap for that date, useful when you want to hold a room back for direct bookings. - An orange corner triangle marks a `Manual availability cap`. - Clear the cell and apply to remove the cap, the hint reads `Leave empty to remove the manual cap and use automatic availability.` > **Note:** Availability pushes to every connected channel instantly when you save, even on a channel where you’ve unticked the `Rates` sync option. Only rate pushes and booking imports are optional. > **Tip:** Watch the last unit: it turns red so you can spot scarcity at a glance. In categories with two units or fewer the last unit stays orange instead, small categories would otherwise look permanently critical. --- # Add-ons and extras Category: Rates & Availability · Updated: Oct 11, 2026 · 3 min read URL: https://bookingpilot.al/knowledge-base/rates/rate-extras Sell airport transfers, breakfast and late check-out alongside the room. **Add-ons & Extras** are priced items guests can add to a reservation, airport transfers, breakfast, late check-out, parking. You manage them from the **Add-ons & Extras** button in the Rates toolbar. ## Create an extra 1. Click **Add-ons & Extras** in the toolbar. 2. Enter a **Name**, e.g. `Airport Transfer`, and a **Price**. 3. Click **Add**. The extra joins the numbered list below. 4. Use the inline controls on each row to edit or delete it later. The modal puts the rule plainly: `Extras selectable on reservations. Price changes apply to new selections only, existing reservations keep the price they were booked at.` > **Important:** Deleting an extra asks for confirmation. Existing reservations keep the price they were booked at, deleting never rewrites a booking that’s already made. > **Note:** Extras are selected on reservations inside BookingPilot, they aren’t distributed to channels as sellable items. --- # How channel sync works Category: Channels & Integrations · Updated: Oct 21, 2026 · 5 min read URL: https://bookingpilot.al/knowledge-base/channels/ch-how What BookingPilot pushes to connected channels, and what flows back in. Connecting a channel links your room types to your OTA listings through BookingPilot’s channel manager, which is provisioned automatically when your property is created. There’s no separate channel-manager account or setup on your side. Once connected, sync runs both ways: BookingPilot pushes your availability, rates and room content out; bookings made on the channel are imported back in. ## What syncs, and when | Data | Direction | Timing | | --- | --- | --- | | Availability | Out | Instantly on every save, to all connected channels, always on. | | Rates | Out | Instantly on save, when the channel’s `Rates` sync option is ticked. | | Room content | Out | Pushed with the connection, room types and bed setup included. | | Reservations | In | On the `New bookings check` poll you choose, from `Real-time (every 5 min)` to `Manual only`. | | Reservation updates | In | New bookings and cancellations import. OTA modifications are flagged for staff review. | > **Note:** The poll cadence only affects booking imports, and one setting applies to every channel. Availability and rate pushes are always instant, whatever the poll is set to. ## Reading the cards - `Connected` (green), live and syncing. The card shows `Last synced {date} {time}`. - `Pending` (amber), the connection handshake is still finishing. - `Error` (red), something failed; the message sits on the card. - `Not Connected` (grey), ready to connect. - `Checking…`, `Syncing`, `Disconnecting…`, transient states while work happens. > **Tip:** Under **Manage**, **Sync now** forces a full availability-and-rates push, use it after a big reprice or when a card’s `Last synced` looks stale. > **Note:** Agoda, Trip.com, VRBO and Hopper can each be connected directly from their own card. Other source names such as Hotels.com or Orbitz may still arrive through a parent channel connection. --- # Connecting Airbnb, Booking.com, Expedia, Agoda, Trip.com, VRBO, Hopper and eDreams Category: Channels & Integrations · Updated: Oct 21, 2026 · 6 min read URL: https://bookingpilot.al/knowledge-base/channels/ch-connect Link your OTA rooms and rates to BookingPilot room types. Open **Integrations** and switch to the **Channels** tab. **Airbnb**, **Booking.com**, **Expedia**, **Agoda**, **Trip.com**, **VRBO**, **Hopper** and **eDreams** each have a direct **Connect** flow; the **All Apps** tab shows them alongside everything else. Expedia covers the whole group: `One connection for the whole Expedia Group, Hotels.com, Orbitz, Travelocity and more included.` ## Before you start - Create your room types first, the flow stops without them: `You need room types in your property settings first.` - Have your OTA credentials handy, Booking.com and Expedia ask for a `{App} Property ID` (your hotel ID on that platform). - For Airbnb, be ready to sign in as the property owner when the window opens. - For Trip.com, connect the channel-manager partner offered for your account in Trip.com eBooking → **Rates & Availability → Connectivity Settings**. If the option is unavailable, contact Trip.com support. - For VRBO, remove any previous API/XML channel-manager connection and VRBO iCal links. Have your VRBO username and password ready; if VRBO requires SMS verification, connection cannot finish until that step is supported. - For Hopper, sign a direct Hopper Hotels agreement and ask Hopper to approve the hotel for channel connectivity. Hopper Homes is a separate connection for vacation rentals. - For eDreams, have the **eDreams Hotel Code** ready, your property must be contracted with eDreams, and they activate the connection on their side. ## Connect a channel 1. Click **Connect** on the card. 2. Booking.com / Expedia / Agoda / Trip.com: enter the property ID under **Quick setup**, then **Continue**, BookingPilot verifies access and loads the OTA room/rate rows. VRBO: enter your username and password; if VRBO asks for SMS verification, the flow will stop until SMS authentication is added. Hopper: continue without a property ID; BookingPilot loads available Hopper rooms and rates for mapping. eDreams: enter the **eDreams Hotel Code** and continue to load room/rate rows, each eDreams rate expands into one row per guest occupancy. Airbnb: click **Continue to Airbnb**, sign in, and come back to **Map Your Listings**. 3. On **Map Your Rooms**, match each OTA room-and-rate row to one of your room types, then **Continue**. 4. On **Sync Configuration**, set the **Price Markup over Sell Price** %, tick your **Sync Options**, `Rates, Push nightly prices to this channel` and `Reservations, Import bookings from this channel`, and pick a `New bookings check` cadence. 5. Finish, the card flips to `Connected` and starts syncing. > **Note:** Markup defaults are Airbnb 12%, Booking.com 15%, Expedia 10%, Agoda 10%, Trip.com 10% and eDreams 10%, `Default nightly price pushed to {App} = Sell Price + this %`. Hopper pricing depends on your negotiated net or gross contract; set its adjustment accordingly. A negative value undercuts your direct price. You can change it later under **Manage → Channel Settings**. > **Important:** The connect step gives up after 90 seconds: `The channel manager is taking too long to respond, please try again.` Just run it again, nothing is left half-connected. > **Tip:** Channel missing? At the bottom of the page, `Need a channel that's not listed?` → **Request access** files a ticket `Channel access request: {name}`, you’ll get `Access request submitted for {name}` and can track it under **Support → Tickets**. --- # Managing a connected channel Category: Channels & Integrations · Updated: Oct 11, 2026 · 4 min read URL: https://bookingpilot.al/knowledge-base/channels/ch-manage Adjust markup, force a resync, or disconnect, without losing your settings. Once a card shows `Connected`, its button becomes **Manage**. That reopens the same modal in manage mode, with a **Channel Settings** section plus two channel actions, **Sync now** and **Disconnect**. ## Channel settings - **Price Markup over Sell Price**, the % added to your Sell Price for this channel’s default nightly price. Negative values undercut direct pricing. - `Rates, Push nightly prices to this channel` and `Reservations, Import bookings from this channel`, untick either to pause that flow. Availability keeps syncing to all channels regardless. - `New bookings check`, the import poll, `Real-time (every 5 min)` down to `Manual only`. One setting covers every channel; rate and availability pushes stay instant. ## Channel actions - **Sync now**, pushes a full availability-and-rates refresh to the channel on demand. - **Disconnect**, opens a confirm dialog: `Disconnect {name}?` > **Important:** Disconnecting is immediate: `New bookings from this channel will stop importing and availability/rates will stop syncing. You can reconnect it later.` Bookings you already have aren’t touched, and your markup is remembered if you reconnect. A red `Error` card means the channel reported a problem, the message sits on the card. Fix the cause (usually credentials or a listing that changed on the OTA side), then run **Sync now** from **Manage** to confirm it recovers. > **Note:** Guest messaging works with Booking.com, Airbnb and Expedia. Bookings that arrive via other Expedia Group brands or OTA sources don’t get inbox chat, you’ll message those guests through the OTA’s own tools. > **Tip:** After any big reprice on the **Rates** grid, check `Last synced {date} {time}` on the card, if it looks stale, **Sync now** settles it. --- # Automations: what runs on autopilot Category: Automations & AI · Updated: Oct 11, 2026 · 6 min read URL: https://bookingpilot.al/knowledge-base/automations/auto-overview Every automation BookingPilot can run for you, what triggers it, what it does, and how to switch it off. The **Automations** page is where routine work runs by itself, welcome messages, arrival instructions, staff alerts and more. Find it under **Automations** in the dashboard; it is available to admins and managers only. A counter at the top reads something like `4 of 11 active`, and the tabs **All**, **Messaging**, **Operations**, **AI** and **CRM** filter the grid. Each card shows the automation’s name, its category, a `Beta` badge where relevant, the logic it follows (`When …, …`), and a toggle. ## The automation catalog | Automation | Trigger | What it does | Status | | --- | --- | --- | --- | | **Booking Acknowledgment** | A reservation is created | Sends the guest a welcome message | Live · Essential | | **Pre-Arrival Instructions** | Check-in is a set number of days away (default 2) | Sends the guest arrival instructions | Live · Essential | | **Review Request** | The guest checks out | Sends a review request after a delay (default 3 hours), marketing-class, so it carries an unsubscribe link | Live | | **Guest Message Auto-Reply** | A guest sends a message | Sends an instant acknowledgment; can also email the team | Live · Beta · Essential | | **Post-Cleaning Inspection** | A cleaning task is completed | Notifies a chosen staff member to inspect | Live · Internal | | **Same-Day Booking Alert** | A booking arrives for today | Alerts chosen staff | Live · Internal | | **AI Guest Auto-Reply** | A guest sends a message | AI drafts a reply to routine questions and sends it on the channel; sensitive or unsure cases are escalated to the team as a draft. Optional review mode sends every draft to staff first | Live · Beta · Essential | | **AI Message Triage** | A guest sends a message | Classifies the message (urgent, request, question, praise), badges it in the inbox and pushes an alert for the categories you pick | Live · Beta · Internal | | **AI Request to Task** | A guest asks for something in a message | Turns actionable requests (towels, cot, repairs, transfers) into tasks and notifies the picked staff member | Live · Beta · Internal | | **AI Reply Translation** | Any automation sends a guest message | Delivers the message in the guest’s language, detected from their latest message; names, dates, prices and links are kept as written | Live · Beta | | **Deposit Request Invoice** | A deposit is requested | Sends the invoice email with a PDF attachment | Essential, hidden from the grid | | **Guest Auto-Classification** | The guest checks out | Updates returning/VIP status from your **Returning Guest After** and **VIP Lifetime Spending** thresholds, used by the Guests page | Live · Internal | > **Note:** **Deposit Request Invoice** is deliberately missing from the grid, it can only be edited from the **Email Builder** (see the Email Builder article). > **Note:** **AI Guest Auto-Reply** is capped at 3 automated replies per stay per day and steps aside the moment a team member answers. It never promises refunds, discounts, upgrades or policy exceptions, those always reach your team as a draft to review. **AI Request to Task** creates tasks from bounded categories only (Guest Request, Maintenance, Housekeeping, Other) with the guest’s words quoted in the description, so nothing is invented silently. ## Switching an automation on or off - Flip a card’s toggle and the change saves instantly, there is no save button on this page. - If the save fails, the toggle rolls back and you see `Could not save automation setting`, try again. - While an automation is paused, its **Configure** button is hidden. Re-enable the automation to get it back, or open the studio URL directly if you have it. ## What the channel icons mean - **Email**, the guest receives a branded email from your property. - **OTA inbox**, the message is delivered inside the booking channel’s own messaging (Booking.com, Airbnb…). - **Team**, your staff get an internal notification. > **Tip:** Paused an automation and need to check its rules before re-enabling? Open `/dashboard/automation/` followed by the automation’s ID, the studio URL works even while the card’s **Configure** button is hidden. --- # The automation studio Category: Automations & AI · Updated: Oct 11, 2026 · 7 min read URL: https://bookingpilot.al/knowledge-base/automations/auto-studio Edit an automation’s message, design, rules and sender, and test everything before it reaches a guest. Click **Configure** on an automation card to open the studio, the editor where you change what it sends, how it looks, when it runs and who it comes from. Remember that **Configure** is hidden while an automation is paused, though the URL still opens the studio directly. The top bar holds the automation’s title, the view switcher (**Split**, **Config**, **Preview**, Preview is for email automations only), the **Desktop**, **Tablet** and **Mobile** frames, **Undo**/**Redo**, **Reset**, **Send Test**, **Close** and **Save**. A successful save shows `Saved`. ## The Message tab - **Subject Line** and **Preview Text**, the subject supports variables too. - **Message Body**, the main text, with a live character count. - The toolbar inserts markup for you: bold `**x**`, italic `*x*`, underline `__x__`, a bullet line starting `- `, a link `{{link:Text|URL}}`, an accent button `{{button:Label|URL}}`, an image `{{image:URL|Alt}}` (https only) and a divider `---`. - The variables panel groups merge tags under the pills **All**, **Guest**, **Stay**, **Booking**, **Money** and **Property**, click one to insert its `{{key}}` at the cursor in whichever field has focus. ## The Design tab - Colours: **Accent Color** (property name, links, buttons), body and footer text colours, page background. - Type: font size, weight, line height, alignment and family, **Grotesk**, **System**, **Arial** or **Georgia**, all email-safe. - Layout: header alignment, logo size and max width, spacing, width, padding, divider style (**Line**, **Dots**, **Accent**), button style, image sizing, footer size and a footer divider toggle. - **Copy Design From** reuses another automation’s design; **Design Presets** saves a design and reapplies it per property. ## The Rules and Sender tabs - **Rules** exists on every automation; **Message**, **Design** and **Sender** appear only on email automations. - The **Automation Status** card reads `Active & Running` or `Paused / Inactive`, while paused, `Triggers are ignored while paused.` - **Automation Flow** summarises the logic; below it sit the fields that differ per automation: **Deliver Via** checkboxes (**Email**, `Branded email to the guest`, and **Channel inbox**, at least one must stay on), timing as a number plus a unit, staff pickers like **Notify** and **Assign To**, toggles like **Also email the team**, and link fields like **Review Link**. - On **Sender**, **Sender Name** is read-only, `This can be changed in Settings > General.` **Sender Address** lets you edit the local part of `{slug}@bookingpilot.al`; it auto-saves when you leave the field and must match `3-32 characters: lowercase letters, numbers and hyphens (not leading/trailing).` - **Reply-To Address** decides where `Direct guest email replies land in this inbox.`; **Footer Sender Line** supports `{{variables}}`; **Property Address in Email Footer** is read-only. - Sending runs on `Verified DKIM / SPF sending infrastructure`. ## Preview and test - The **Scenario** selector renders the email inside a mail-client frame with realistic data: `Maria Rossi (Standard Stay)`, `Alexander von Berg (VIP 5-Night)` or `Liam Davies (Direct Website)`. - **Dark mode** checks the email against a dark theme; **Highlights** marks where variables landed. - **Send Test** fires the preview at your own address, confirm with `Sent to {email}` before trusting it to real guests. > **Tip:** Made a mess? **Undo**/**Redo** covers your last 60 steps. **Reset** asks `Reset "{title}" to the standard BookingPilot defaults?`, and even that is undoable. > **Note:** Essential booking-fulfilment emails, booking acknowledgment, pre-arrival, message auto-reply and the deposit invoice, never carry unsubscribe links. Marketing-class mail like **Review Request** includes `Unsubscribe from these emails` and honours guest opt-outs. Every email ends with `This is an automated message. Replies are not monitored.` --- # The Email Builder and template variables Category: Automations & AI · Updated: Oct 11, 2026 · 5 min read URL: https://bookingpilot.al/knowledge-base/automations/auto-email All five guest-email templates in one place, plus every variable and markup shortcut you can use in them. The **Email Builder** (`/dashboard/automation/email-templates`) collects every guest-facing email template in one place. Its left rail lists five templates; picking one opens the same studio described in the automation-studio article, so everything there applies here. One template lives only here: **Deposit Request Invoice** is intentionally hidden from the Automations grid, so this is the only place to edit it. You can deep-link a template with `?template={id}`, handy for sending a colleague straight to the right one. ## The five templates | Template | Default subject line | | --- | --- | | **Booking Acknowledgment** | `Booking confirmed - {{property_name}}` | | **Pre-Arrival Instructions** | `Your stay at {{property_name}} - arrival details` | | **Review Request** | `How was your stay at {{property_name}}?` | | **Guest Message Auto-Reply** | `We received your message: {{property_name}}` | | **Deposit Request Invoice** | `Deposit request for your reservation at {{property_name}}` | ## Template variables Variables drop real reservation data into the email, `{{guest_name}}` becomes the guest’s name, `{{check_in}}` their arrival date, and so on. In the studio, the variables panel is grouped by the pills **All**, **Guest**, **Stay**, **Booking**, **Money** and **Property**, and clicking a variable inserts its `{{key}}` at the cursor. | Group | Variables | | --- | --- | | **Guest** | `{{guest_name}}`, `{{guest_first_name}}`, `{{guest_email}}`, `{{guest_phone}}` | | **Stay** | `{{check_in}}`, `{{check_out}}`, `{{check_in_time}}`, `{{check_out_time}}`, `{{nights}}`, `{{estimated_arrival}}`, `{{checkin_link}}` | | **Booking** | `{{booking_reference}}`, `{{booking_channel}}`, `{{room_type}}`, `{{room_number}}` | | **Money** | `{{total_price}}`, `{{balance_due}}`, `{{deposit_amount}}`, `{{total_amount}}` | | **Property** | `{{property_name}}`, `{{property_address}}`, `{{property_phone}}`, `{{property_email}}` | ## Text markup | To get | Type | | --- | --- | | Bold | `**x**` | | Italic | `*x*` | | Underline | `__x__` | | Bullet list | A line starting `- ` | | Link | `{{link:Text|URL}}` | | Button (accent CTA) | `{{button:Label|URL}}` | | Image | `{{image:URL|Alt}}`, https only | | Divider | `---` | > **Tip:** Keep branding consistent: perfect the design on one template, then use **Copy Design From** on the other four, or save a **Design Preset** per property and apply it everywhere. > **Note:** Four of these are essential booking-fulfilment emails and never carry unsubscribe links. **Review Request** is marketing-class: it includes `Unsubscribe from these emails` and honours guest opt-outs. --- # The BookingPilot AI assistant Category: Automations & AI · Updated: Oct 11, 2026 · 5 min read URL: https://bookingpilot.al/knowledge-base/automations/ai-assistant What the built-in AI can help with, what it can’t see, and the limits worth knowing before you rely on it. **AI** in the dashboard opens the BookingPilot assistant, a general chat helper open to every role, including housekeeping. Use it to draft guest replies, polish announcements, explain concepts or write policies, anything text-based. One boundary matters: the assistant is not connected to your property data. It sees only the current conversation and whatever you attach, so a question like `how many arrivals today` is beyond it, because it has no access to bookings. ## Asking a question - A fresh chat greets you with `How can I help with your property today?` Type in the composer `Ask anything with AI...`, **Enter** sends, **Shift+Enter** adds a new line. - The **+** menu offers **Attach Files**, image, pdf, doc, txt, md, csv, json or xls, with text files read into the prompt up to 20,000 characters, and **Connect URL**, which adds a web page to the context. - Replies can carry an expandable **Thought** block showing the model’s reasoning. - Per message you can copy it, mark it **Helpful** or **Not helpful**, or hit **Undo**, `Undo last exchange` removes the last exchange. - If something fails you see `I’m sorry, I couldn’t process that.`; `AI is not configured yet...` means the feature hasn’t been set up. ## Choosing a model | Model | Best for | | --- | --- | | **BP Intelligence 4** | `General-purpose reasoning powerhouse`, the default, right for most questions | | **BP Economist 5** | `Financial logic, tax compliance & deep reporting`, pick it for money and compliance questions | ## Managing conversations - Threads are titled automatically and stored per user, your chats are yours. - **Chat History** opens `Recent Conversations` so you can pick up an older thread. - The **⋯** menu holds **New Chat** and **Clear Thread**, clearing deletes the thread from the database, not just your screen. > **Important:** Only your **five most recent conversations** are kept. Starting a sixth silently deletes the oldest, no warning, no undo. Copy out anything you want to keep first. > **Note:** Prompts are processed by our AI provider, so describe situations instead of naming guests. Keep personal data (names, IDs, card details) out of the assistant. --- # Performance reports Category: Reports & Insights · Updated: Oct 11, 2026 · 6 min read URL: https://bookingpilot.al/knowledge-base/insights/rep-performance Read the eight headline KPIs correctly, cash basis vs stay basis, and get the numbers out. The **Performance** page (`/dashboard/reports`) is your property’s scoreboard: revenue, occupancy and rates in one view. It needs the `reports.performance` permission, so it is limited to admins and managers. One idea unlocks the whole page: two measurement bases run side by side. **Cash basis** counts money when it actually arrived; **stay basis** counts reservations by their check-in date. A deposit taken in March for an August stay lands in different KPIs depending on which basis you read. ## Choosing a date range - Ranges: **This Month** (the default), **Last Month**, **Last 30 Days**, **This Year**, **All Time** (from your first recorded stay or payment through your latest checkout) and **Custom**, custom asks for **From** and **To** dates. Stays checking in after today still count when they fall inside the window. - Every KPI compares itself to the previous equivalent period, the header says `Compared with the previous equivalent period`, showing a `+x%` trend and a `Previous {value}` line. ## The eight KPIs | KPI | What it counts | Basis | | --- | --- | --- | | **Revenue collected** | All payments received, any method, by the date they were paid | Cash | | **Room & balance** | Settlements and room charges, collected minus deposits minus extras | Cash | | **Deposits** | Deposits marked as paid | Cash | | **Add-ons** | Extra charges paid | Cash | | **Booking value** | Value of stays checking in, reservation totals by check-in | Stay | | **Occupancy** | Nights sold ÷ available room-nights (non-OOO rooms × days), capped at 100% | Stay | | **ADR** | Booking value ÷ nights sold | Stay | | **RevPAR** | Booking value ÷ room-nights | Stay | > **Note:** Three details that trip people up: cancelled reservations and maintenance blocks are excluded everywhere, **No Show** stays in the reservation counts, and deposits are recognised when they are paid, not when they are requested. ## Charts and highlights - **Revenue & occupancy trend**, up to 8 time buckets: cash bars with an orange occupancy line. - **Booking sources**, a donut of every channel that brought a booking during the period, in brand colours; this one is counted when the booking was received, not when the stay starts. Hover for the details. - **Performance highlights**, automatic callouts for **Revenue momentum**, **Occupancy movement**, **Best room type** and **Leading source**. - **Room performance**, a per-type table: Room Type | Nights Sold | Total Revenue | ADR | Occupancy | RevPAR. > **Tip:** Use **Revenue collected** for “what is in the bank?” questions and **Booking value** for “how good is the demand?”, they legitimately tell different stories about the same month. To keep the numbers, click **Export**, the view downloads as `performance_{range}.csv`. --- # Financial reports Category: Reports & Insights · Updated: Oct 11, 2026 · 6 min read URL: https://bookingpilot.al/knowledge-base/insights/rep-financial Twenty-one ready-made financial reports, the filters that shape them, and who can see what. **Financial reports** (`/dashboard/financial-reports`) is a library of ready-made reports, as the page puts it, `Financial reports, Access ready-made financial reports to keep track of key figures:` It needs the `reports.financial` permission. ## Filtering what you see - **Period**: **This Month**, **Last Month**, **Last 30 Days**, **This Year**, **All Time** (from your first recorded stay or payment) or **Custom** with **From**/**To** dates. Pick only one end and you get `Select both a start and end date.`; reverse them and you get `The start date must be before the end date.` - **Reservation status** chips: **Confirmed**, **Pending**, **Checked In**, **Checked Out**, **Cancelled** and **No Show**, plus **Select all** and **Clear all**. Untick everything and reports refuse with `Select at least one reservation status.` - Filters persist across reloads, set them once and they stay until you change them. ## The 21 reports | Group | Reports | | --- | --- | | **Finance** | Total revenue per item (by check-out); Revenue per individual item (by check-out); Total revenue per item (by check-in); Revenue per individual item (by check-in) | | **Payments** | Payments by date; Payments by check-in; Payments by method; Detailed ledger | | **Agency** | Agency report | | **Monthly revenue** | Monthly ADR; Monthly revenue by check-in, by check-out, by booking date | | **Invoice items** | Reservation invoice items; Charges by category | | **Daily financial summary** | Daily financial summary, arrivals, departures, available, occupied, revenue, ADR and RevPAR per day; Daily summary by room type | | **Monthly invoice rates** | Average nightly rate; Invoice rates by check-in, by check-out, by booking date | ## Reading a report - Each report’s **View** opens its own page (`/dashboard/financial-reports/{id}`) with the title, the range as `{from} - {to} · N rows`, and a totals row. - **Download CSV** exports `financial_{id}_{from}_to_{to}.csv`. - If a report shows `No data for this period`, check your period and status chips before assuming the numbers are wrong. - Refund columns are always net: `Received − Refunded = Net`. > **Note:** Not everyone sees the full library. Front desk gets a subset, **Payments by date**, **Payments by check-in** and **Payments by method**, and anything beyond your tier answers `You need a manager role to view this report.` > **Tip:** The **Daily financial summary** is the fastest morning read, arrivals, departures, availability, occupancy, revenue, ADR and RevPAR in a single row per day. --- # Settings at a glance Category: Account, Team & Settings · Updated: Oct 11, 2026 · 3 min read URL: https://bookingpilot.al/knowledge-base/account/set-overview Every settings tab, who sees which one, and the save-on-blur model that means there is no Save button. Everything configurable lives under **Settings** at `/dashboard/settings`, organized into six groups: **Property**, **Team & Access**, **Finance**, **Compliance**, **Account** and **Danger Zone**. While you’re in Settings the sidebar swaps to a settings-only menu, pick anything else to go back to operations. There is no **Save** button anywhere in Settings. Text fields save when you click out of them; dropdowns, checkboxes and time pickers save the moment you change them. Every change confirms with a toast, if you didn’t see one, nothing was saved. ## The tab map | Tab | Covers | Who sees it | | --- | --- | --- | | General, `#general` | Logo, public name, address and contacts shown on the booking engine and invoices | Everyone, read-only without `settings.branding` | | Localization, `#localization` | Timezone, date and time formats | `settings.localization` | | Policies, `#policies` | Check-in/out windows, guest limits, pets, smoking, internet, parking | `settings.policies` | | Members, `#team` | Staff list, new accounts, statuses, the ⋯ menu | `team.view` | | Role Permissions, `#roles` | Per-role permission toggles | Owner and admin | | Currency & Taxes, `#exchange` | Base currency, default tax rate, VAT number | `settings.tax`, owner/admin by default | | Banking, `#banking` | Bank details printed on invoices | `settings.banking` | | Activity Log, `#activity` | The 120-day audit trail | `activity.view`, owner/admin/manager | | Privacy & Data, `#privacy` | The GDPR request queue | `settings.privacy`, owner/admin | | Profile, `#profile` | Your name, phone and sign-in email | Everyone, always | | Security, `#security` | Password, 2FA, screen lock, sessions | Everyone, always | | Danger Zone, `#danger` | Schedule property deletion | Owner only | Each tab is a real URL, `/dashboard/settings#policies` opens that exact tab, so you can bookmark or share deep links. A mistyped or forbidden hash just falls back to your first visible tab. > **Note:** Tabs you can’t use are hidden, not locked, your role decides which ones exist. **General** is the one exception: without `settings.branding` it still shows, but read-only. > **Tip:** Point a teammate at the right place by pasting the URL, `…/settings#banking` lands them on that tab, or on their first visible tab if they lack the permission. --- # Property settings: brand, localization and policies Category: Account, Team & Settings · Updated: Oct 11, 2026 · 4 min read URL: https://bookingpilot.al/knowledge-base/account/set-property The three Property tabs in depth, what guests see, which clock everything runs on, and the house rules that sync to channels. Three tabs under the **Property** group shape how your property looks and behaves: **General** (`#general`), **Localization** (`#localization`) and **Policies** (`#policies`). Each tab says what it feeds. **General**: “This information will be displayed publicly on your booking engine and invoices.” **Localization**: “Timezone and date/time conventions used across this property.” **Policies**: “House rules synced to your connected booking channels, shown on your public listings.” ## General - **Logo**, PNG or JPG only, `Recommended size: 512x512px.` SVG, WebP and GIF are rejected because the logo ends up in invoices and emails. - **Public Property Name**, “The exact name guests see.”, plus **Support Email**. - **Property Details**, property type (ten options), **Property Address**, **City**, **ZIP**, **State/Region**, **Country**, **Property Phone** and **Property Website**. - **Country** is not cosmetic: it’s “Used for channel connections, sent to Booking.com, Expedia and other OTAs as the property location.” > **Note:** Without the `settings.branding` permission this whole tab is read-only, you can look, but nothing saves. ## Localization - **Property Timezone**, `Auto (detected): {zone} - Recommended` sits on top of about 80 named zones. - **Date Format**, `MM/DD/YYYY`, `DD/MM/YYYY` or `YYYY-MM-DD`. **Time Format**, `12-hour` or `24-hour`. > **Important:** Changing the timezone “shifts every stored and scheduled time. Only override it if your property operates in a different timezone than this device.” Leave **Auto (detected)** alone unless the property really is elsewhere. ## Policies Check-in and check-out come first: **Check In From/To** and **Check Out From/To** are time pickers, and **Check In From** together with **Check Out To** sets the headline times guests see. **Self Checkin & Checkout** toggles self-service arrival. - Guests, **Max Count of Guests**, then either **Only Adults** set to `Yes`, or per-age limits via **Children Max Age** and **Infant Max Age**. - Pets, **Pets Policy**: `Not allowed`, `Allowed`, `On request` or `Service animals only`. Choosing `Allowed` or `On request` reveals **Non-refundable Pets Fee** and **Refundable Deposit**. - Smoking, **Smoking Policy**: `No smoking`, `Designated areas only` or `Allowed`. - Internet, **Internet Access**: `None`, `WiFi` or `Wired`; that unlocks coverage (`Entire property`, `Public areas`, `All rooms`, `Some rooms`, `Business centre`) and **Is Paid**, where `Paid` adds **Cost per Stay**. - Parking, **Parking Policy**: `None`, `On-site` or `Nearby`; that unlocks **Parking Reservation** (`Not needed`, `Needed`, `Not possible`), **Parking Property** (`Public`, `Private`) and **Is Paid** → **Parking Cost**. --- # Currency, tax and banking Category: Account, Team & Settings · Updated: Oct 11, 2026 · 3 min read URL: https://bookingpilot.al/knowledge-base/account/set-finance Base currency, which locks forever after your first booking, the tax rate, your VAT number, and the bank details on invoices. Two Finance tabs hold the money plumbing. **Currency & Taxes** (`#exchange`) decides which currency everything is recorded in; **Banking** (`#banking`) holds the account details printed on invoices and deposit instructions. Both are gated, **Currency & Taxes** needs `settings.tax`, **Banking** needs `settings.banking`, so by default only the owner and admins can see or change them. ## Currency & Taxes - **Base Currency**, `EUR`, `USD`, `GBP` or `ALL`. Every price, rate and payment is stored in this currency. - **Default Tax Rate (%)**, the rate applied wherever tax is calculated. - **Tax / VAT Number**, your fiscal identifier, printed on invoices. > **Important:** **Base Currency** locks the moment the first reservation or payment exists: “🔒 Locked, all prices, rates and payments are recorded in this currency. Changing it now would corrupt your financial history.” There is no unlock, choose correctly during setup. > **Note:** BookingPilot never converts amounts. A reservation recorded in `EUR` stays euro-denominated forever, that’s exactly why the lock exists. ## Banking - **Bank Name**, **Account Holder Name** and **SWIFT/BIC Code** identify the account. - **IBAN** and **Account Number** carry the payment details, the placeholder shows the expected format, e.g. `AL35 0021 1009 0000 0000 1234 5678`. - Everything on this tab is shown to guests on invoices and deposit instructions, it’s the account they pay into, so double-check it. > **Tip:** The Setup Guide treats banking as optional, but fill it in before your first invoice goes out, or guests get an invoice with nowhere to pay. --- # Members and role permissions Category: Account, Team & Settings · Updated: Oct 11, 2026 · 5 min read URL: https://bookingpilot.al/knowledge-base/account/set-team The staff list, the ⋯ menu, what each status chip means, and the full default permission matrix for Admin, Manager and Front Desk. **Team & Access** has two tabs: **Members** (`#team`), the staff list, and **Role Permissions** (`#roles`), which controls what each role can do. Seeing the list needs `team.view`; changing it needs `team.manage`. Members are sorted owner → admin → manager → front desk → housekeeping. Each row shows the avatar, name (with a `You` badge on yours), the best contact, email, then phone, else `No contact info`, a status chip, an alerts bell, and either a role dropdown or a locked role tag. Phone numbers only appear to roles with `team.view`, phone is personal contact data. The alerts bell shows whether a member’s devices can still get app notifications: `Alerts on`, or `No alerts` (red on housekeeping, whose room alerts are urgent). The bell goes quiet whenever the member is signed out: manual sign-out, a password reset, a revoked device or a suspension. It comes back when they sign in on their phone and allow notifications again. ## Add Team Member - Fields: **First Name**, **Last Name**, **Username**, **Initial Password** (minimum 12 characters), **Access Role** and **Phone Number (Optional)**. - The sign-in address is `username@propertyname.bookingpilot.al`, the subdomain comes from your **Public Property Name** plus a short unique code, so it can never collide with a real mailbox. - Roles offered: **Front Desk**, **Housekeeping**, **Manager**, owners also see **Admin**. - **Create Account** either creates a fresh login, `Account created for username@domain`, or links an existing one: `username@domain linked, they sign in with their existing password`. - No email invite is sent, share the credentials yourself and they see the property on first sign-in. ## Member statuses | Status | Meaning | | --- | --- | | `Active` | Can sign in and work. | | `Suspended` | Blocked at sign-in, “This account has been suspended.” | | `Invite pending` | An older email invite not yet claimed; activates when they sign up with that email. | | `No sign-in access` | Directory-only staff, still assignable to tasks. | ## The ⋯ menu - **Copy Email** and **Edit Phone** maintain contact details. - **Change Password**, an admin reset: checks the password rules, revokes all their sessions, and emails them the new password. - **Suspend User** / **Activate User**, suspension kicks them out live, mid-session. - **Remove User** deletes them from the property after a confirmation. - House rules: you can’t edit yourself or the owner, and only the owner can grant or modify **Admin**. > **Important:** **Remove User** is irreversible: “This will permanently remove {name} from the team. They will lose access to all property data.” If they belong to no other property, their sign-in is deleted too, which frees the email for reuse. ## Role Permissions Owner and admins get tabs for **Admin**, **Manager** and **Front Desk**, “Choose what {role} can see and do. Changes save instantly.” Toggles autosave and a `{n} customizations` pill counts your changes; **Reset to defaults** asks for confirmation and restores the built-ins while staff keep their role. The **Owner** is always full access and can’t be customized; **Housekeeping** is fixed to the staff app and absent by design. Two footnotes: housekeeping staff update room status through the staff app regardless of this matrix, and for Front Desk, “any Settings permission lets this role save the shared settings record, though only the granted section is shown.” | Permission (defaults) | Admin | Manager | Front Desk | | --- | --- | --- | --- | | Manage reservations | ✓ | ✓ | ✓ | | Delete reservations | ✓ | - | - | | Manage guests | ✓ | ✓ | ✓ | | Delete guests | ✓ | ✓ | - | | Record payments | ✓ | ✓ | ✓ | | Refund payments | ✓ | ✓ | - | | Update room status | ✓ | ✓ | ✓ | | Manage rooms | ✓ | ✓ | - | | View rates | ✓ | ✓ | ✓ | | Edit rates | ✓ | ✓ | - | | Use the inbox | ✓ | ✓ | ✓ | | View housekeeping board | ✓ | ✓ | ✓ | | Assign housekeeping tasks | ✓ | ✓ | ✓ | | Supervise housekeeping | ✓ | ✓ | - | | Performance reports | ✓ | ✓ | - | | Financial reports | ✓ | ✓ | - | | Activity log | ✓ | ✓ | - | | Branding settings | ✓ | ✓ | - | | Localization settings | ✓ | ✓ | - | | Policies settings | ✓ | ✓ | - | | Tax settings | ✓ | - | - | | Banking settings | ✓ | - | - | | Privacy settings | ✓ | - | - | | View team | ✓ | ✓ | - | | Manage team | ✓ | - | - | | Manage integrations | ✓ | - | - | | Manage automations | ✓ | ✓ | - | --- # Profile, password, 2FA and sessions Category: Account, Team & Settings · Updated: Oct 11, 2026 · 5 min read URL: https://bookingpilot.al/knowledge-base/account/set-security Your identity card, password rules, authenticator-app 2FA, the shared-device screen lock, and how to kick out a device you don’t recognize. The last two tabs are about you, not the property: **Profile** (`#profile`) holds your identity, and **Security** (`#security`), “Manage your password, 2FA, and authorized devices.”, holds everything that protects it. Both tabs are always visible, whatever your role, even when every other tab is hidden, you can still reach your own profile and security. ## Profile - Your avatar is your initial, there’s no photo upload. - **Full Name** and **Phone Number** save on blur (`Full name saved`). - **Email** is disabled: “Your sign-in email. Contact support to change it.” - **Sign-in methods** chips list every way you can get in, social providers plus `Password`. - Owners also get a **Product updates** card with **Subscribe** / **Unsubscribe**, and, if eligible, a **Delete account** card, covered in the property lifecycle article. ## Password and 2FA - **Update Password** opens a modal: current, new, confirm. Social-only accounts see **Create Password** instead, “Create a password to also sign in with your email.”, and skip the current field. - New passwords must be 12-64 characters; there are no composition rules. - The current password is verified by a background sign-in, and with 2FA on you finish with a 6-digit authenticator code. “Forgot your current password? Please contact our support team for recovery assistance.” - Changing your password rotates the session in place, you are not signed out. 1. Press **Setup 2FA**, then **Get Started**. 2. Scan the QR code with any TOTP authenticator app, or copy the manual secret shown under it. 3. Enter the app’s 6-digit code and press **Enable 2FA**. 4. You get `2FA Enabled!`, press **Done**. Sign-in now asks for a code after your password. Closing the wizard early asks `Cancel 2FA setup?`. Turning 2FA off with **Disable** emails a 6-digit confirmation code to your address, so disabling needs mailbox access, not just your password (`Resend code` after 30 s). Only authenticator apps are supported. ## Screen lock and sessions Screen Lock is built for shared front-desk computers: “Lock the dashboard after inactivity and unlock it with a quick PIN.” **Set Up** asks for a 4-6 digit PIN plus your account password; afterwards **Manage** offers `Lock this device after inactivity`, a `Lock after` delay from 0.1 to 480 minutes (default 10, it’s per device), **Change PIN** and **Remove PIN**. PINs are stored hashed on the server, and social-only accounts see “Create an account password above to enable quick PIN unlock.” **Active Sessions** lists every signed-in device: name, `This device` or `Other device`, an approximate location, `Last active`, and an `Active now` badge. Use **Log out this device** on anything unfamiliar, or **Revoke other sessions** to keep only this one. > **Important:** Revoked devices get no warning, they’re force-signed-out within ~20 seconds and land on `/signin?reason=session_revoked`. --- # Multiple properties, deletion and restore Category: Account, Team & Settings · Updated: Oct 11, 2026 · 5 min read URL: https://bookingpilot.al/knowledge-base/account/set-properties Add and switch properties, schedule a property for deletion with its 30-day grace period, restore it, or delete your whole account. One BookingPilot account can own or belong to several properties, a group of hotels, say. The property menu at the bottom of the sidebar is where you add, switch and restore them. Deletion here is always scheduled, never instant: a property gets 30 days of grace in which nothing is lost. ## Add and switch between properties 1. Open the property menu and choose **Add Property**, or go straight to `/dashboard/create`. 2. Fill in **Property Name**, **Property Type** and **Number of Keys**, then press **Create**. 3. BookingPilot creates the property with you as owner, seeds default settings, and switches you into it automatically. Switch any time from the same menu, the active property shows a ✓, and each property has its own rooms, reservations, team and settings. A property being deleted shows `Deleting in X days`; clicking it opens the restore dialog, “{name} is scheduled for deletion on {date} ({n} days left). Restore it to reopen the property for the whole team.”, and **Restore** brings everyone back instantly. ## Schedule a property for deletion 1. Open **Settings → Danger Zone**, owner only. It spells out the deal: “Schedule this property for deletion. Everything stays recoverable for 30 days, after which all rooms, reservations, guests, and settings are permanently removed.” 2. Press **Delete property** and read the modal, everyone else is signed out of this property immediately; you stay signed in. 3. Type the exact property name to confirm, then press **Schedule Deletion**. 4. You’ll see `Deletion scheduled. You can restore the property within 30 days.` Behind the scenes: members whose only property this was lose access immediately, owners are emailed, the event lands in the activity log, and a daily cleanup job hard-deletes everything once the 30 days run out. > **Important:** After the 30-day window the deletion is final, rooms, reservations, guests and settings are permanently removed. Restore before the deadline or not at all. ## When no property is left If every property you had is closing or deleted, the account itself survives. You land on `/dashboard/create`, “Create your property, Set up a property to start managing reservations, rooms and guests in BookingPilot.”, and Settings shrinks to just **Profile** and **Security** until you create or join a property again. ## Delete your account - **Settings → Profile → Delete account** asks you to type your sign-in email to confirm. - It’s refused while you own an active property, “You own an active property. Schedule its deletion in Settings → Danger Zone first.”, or while you hold staff memberships: “Team accounts are managed by the property.” - On success it anonymizes your staff rows, scrubs your name from activity logs and message senders, and deletes the sign-in, `Your account has been permanently deleted.` - Unlike property deletion, this is immediate and irreversible, no 30-day grace. --- # Activity log and privacy requests Category: Account, Team & Settings · Updated: Oct 11, 2026 · 4 min read URL: https://bookingpilot.al/knowledge-base/account/set-compliance The 120-day audit trail of staff and settings changes, and the GDPR request queue with its one-month response clock. Two Compliance tabs answer the questions auditors ask. **Activity Log** (`#activity`) records what your team changed; **Privacy & Data** (`#privacy`) tracks requests submitted under data-protection law. **Activity Log** needs `activity.view`, owner, admin and manager by default. **Privacy & Data** needs `settings.privacy`, owner and admin. ## Activity Log “Staff access changes, configuration edits and security events across this property. Entries are kept for 120 days.” Search with **Search actor or item**, filter with the tabs, **All**, **Staff & access**, **Settings**, **Security**, and page back through older rows. - Staff, invited, removed, role or status changes, password resets. - Security, sessions revoked, MFA switched on or off, screen lock set, changed or removed. - Data and settings, settings updates, room and category changes, channel mapping, card reveals, `property_deletion_scheduled` / `cancelled`, guest export, opt-out and erasure. > **Note:** Entries older than 120 days drop off automatically, if an auditor needs a longer trail, plan for it before entries age out. ## Privacy & Data Requests arrive through your public privacy form, it’s rate-limited against spam, and are matched to your property by name. “GDPR Art. 12 gives you one month to respond, due dates below.” - Statuses sit on tabs: **Open**, **In progress**, **Resolved**, **Rejected**, **All**. - Request types: **Access**, **Erasure**, **Rectification**, **Portability**, **Objection**, **Restriction**, **Other**. - Each row counts down, `Due in Nd`, then `Due today`, then `Overdue by Nd`. - Work requests with **Start work**, **Mark resolved**, **Reject**, and **Reopen** if one comes back. > **Important:** The one-month clock is a legal deadline, not a reminder, `Overdue by Nd` means you’re late on a GDPR obligation. Work oldest first. > **Note:** Resolved and rejected requests are purged one year after closing, the queue is a workflow, not an archive. --- # Getting help: AI chat, tickets and status Category: Support & Troubleshooting · Updated: Oct 11, 2026 · 5 min read URL: https://bookingpilot.al/knowledge-base/support/sup-help Reach a human fast, the AI support chat, the ticket system, response times and what restricted roles see. The **Support** hub groups every way to reach us: **Live Chat**, **Ticket System**, **Knowledge Base** and **System Status** (which opens externally), plus the legal links. Press `H` anywhere in the dashboard to jump straight to support. Where you land depends on your role: restricted roles, housekeeping, maintenance, staff and front desk, are sent to the **Knowledge Base**, while admins and managers go straight to **Live Chat**. ## Chatting with AI support - **Live Chat** opens an AI support assistant that greets you by name, `Hello {name}! I’m BookingPilot AI Support…`, and can help with platform setup, channel sync, the pricing matrix, billing and general questions. - **+** attaches a file; switch to **Live support** at the top to chat with a human agent. If it is urgent, write to support@bookingpilot.al and we will pick it up right away. - The **⋯** menu holds **Mark as Resolved**, **Mute/Unmute Notifications**, **Export Chat History** (a .txt file) and **Report Issue** (emails us with diagnostic data attached). - Sounds play for new messages, mute them from the same menu. The same assistant also answers on the public support page and the marketing chat widget. - The footer reminder applies everywhere: `AI assistant, don’t share guest personal data`. > **Important:** **Mark as Resolved** wipes the transcript on the next load. If the conversation is worth keeping, run **Export Chat History** first. ## Submitting a ticket 1. Open **Ticket System**, the header reads `Support tickets` and shows your `CID` (your property ID); quote it whenever you contact us. 2. Click **New ticket**, visible to admins and managers only; it is hidden for restricted roles. 3. In the `Submit a Ticket` modal, pick **How can we help?**, `Technical Issue / Bug Report`, `Billing & Subscription`, `Feature Request` or `Other / General Inquiry`, then fill in **Subject** and **Description**. 4. Optionally **Attach files**, up to 5 files, 10 MB each, then press **Submit**. - The table lists `Ticket ID | Subject | Status | Date`; IDs look like `TKT-XXXX`. - Status colours: amber while pending, blue while in progress, green once resolved or closed. - An empty list simply says `No support tickets yet`. > **Note:** `Our support team typically responds within 15 minutes to 1 hour.` --- # Troubleshooting common issues Category: Support & Troubleshooting · Updated: Oct 11, 2026 · 4 min read URL: https://bookingpilot.al/knowledge-base/support/sup-troubleshoot Ten “bugs” that aren’t, the most common symptoms reported to support, and why they happen. Most issues reported to support turn out to be BookingPilot working as designed, a silent limit, a hidden button or a required field. Check the symptoms below before you write in; the fix is usually a setting or simply time. ## Messages and conversations | What you see | What is happening | | --- | --- | | **The inbox is empty** | The inbox fills with guest messages from your booking channels, with no OTA bookings yet, an empty inbox is expected, not broken. | | **Pinned or archived items don’t stay that way** | Pin and archive states are not saved between sessions yet, items return to their default position when you reload. | | **Old AI chats have disappeared** | The assistant keeps your five most recent conversations only, starting a sixth silently deletes the oldest, with no warning and no undo. | ## Automations and sync | What you see | What is happening | | --- | --- | | **The Configure button is missing** | **Configure** is hidden while an automation is paused, flip the toggle back on to reach it, or open the automation’s studio URL directly. | | **A new channel booking hasn’t appeared** | Channel sync runs on a schedule rather than instantly, give it a little time before assuming it failed. The **Channel Sync Alert** automation that will warn you about failed syncs is coming soon. | ## Rates, guests and payments | What you see | What is happening | | --- | --- | | **You can’t change the property currency** | The currency is locked once set, if it was set wrong, open a support ticket instead of trying to work around it. | | **Past dates won’t accept edits** | Rates and the calendar are locked for dates that have already passed, you can only change prices and availability going forward. | | **A guest won’t save** | A guest record needs a name, fill in the guest’s name before saving. | | **You can’t request a deposit** | Deposit requests go out by email as an invoice with a PDF, so the guest needs an email address on file first. | | **The charge option is blocked** | Charges can’t be run through BookingPilot for reservations sourced from an OTA, collect payment through the channel instead. | > **Tip:** Still stuck? For anything that looks platform-wide, check **System Status** first, then open **Live Chat** or submit a ticket and include your `CID` from the ticket page header.