Skip to content

Get ready

What to prepare before you set up your hotel on NovoDine Stay, so the import goes smoothly.

About 4 h 10 min of preparation in total. You can stop and continue later.

Print this page or save it as a PDF to share with your team.

How it works

  1. Download the templates below and fill them in. Keep the first row (the column names) as it is.
  2. Tick each item when it is ready. Your ticks are saved.
  3. Start onboarding: upload the files, check what we found, fix any red cells, and import.
  4. Invite your team, place a test order or booking, and you are ready for our team to take you live.
  • Excel (.xlsx) or CSV (UTF-8) files both work. Save CSV as UTF-8 so Arabic stays readable.
  • Use one file per template. Only the first sheet of an Excel file is read.
  • Header names can differ; you will match them to our columns before anything is imported.
  • Re-uploading a corrected file is safe: rows are matched and updated, never duplicated.

Checklist

Ticks on this page are kept in this browser only. Sign in to save them for your property.

Name in English and Arabic, address, phone, email, website, map location, Wi-Fi name and password.

RequiredAbout 10 min

Logo as PNG with a transparent background, your brand colour, 3 to 6 landscape photos of the hotel.

OptionalAbout 15 min

Each room category with its code, name, occupancy, beds, size and in-room amenities.

RequiredAbout 15 minExcelCSV

Every room number with its floor and room type. Each room can get a QR code.

RequiredAbout 20 minExcelCSV

Rate plans and seasons stay in your PMS; NovoDine Stay does not price rooms. Note them for our team so add-ons and upsells match.

OptionalAbout 10 min

Check-in and check-out times, cancellation policy and deposit policy, in English and Arabic.

RequiredAbout 10 min

Pool, gym, beach, kids club: name, location and opening hours.

OptionalAbout 15 minExcelCSV

Spa treatments, transfers, lounges: duration, price and hours.

OptionalAbout 25 minExcelCSV

One menu file per outlet, in the same format as a restaurant menu.

OptionalAbout 1 h 0 minExcelCSV

JPG, PNG or WebP, landscape, at least 1200 px wide, up to 8 MB each, for rooms, facilities and dishes.

OptionalAbout 30 min

Tax and service charge rates applied to dining and services.

RequiredAbout 5 min

Name, work email and role for everyone who will use the CRM or the staff app.

RequiredAbout 10 minExcelCSV

Commercial registration, owner ID and a bank account in the hotel's name for guest payments.

RequiredAbout 20 min

Which PMS you use (Oracle OPERA Cloud, OPERA on premises, other). OPERA Cloud credentials are set up with our team, never sent by email.

RequiredAbout 5 min

Templates

Room types

The categories of rooms you sell. One row per type.

ColumnRequiredRuleExample
codeType codeYesRequired. Short code, letters and digits, e.g. DLX. Use the same code as your PMS. Unique.DLX
name_enName (English)YesRequired. e.g. Deluxe King.Deluxe King
name_arName (Arabic)NoIf empty, the English name is used.ديلوكس كينغ
description_enDescription (English)NoOptional. Up to 500 characters.Sea view, king bed
description_arDescription (Arabic)NoOptional.إطلالة بحرية وسرير كينغ
max_adultsMaximum adultsNo1 to 20. Empty means 2.2
max_childrenMaximum childrenNo0 to 20. Empty means 0.1
bedsBedsNoOptional. e.g. 1 king, or 2 single.1 king
size_sqmSize (m²)NoOptional. Whole square metres.42
amenitiesIn-room amenitiesNoOptional. Separate with ; e.g. sea view;bathtub;minibar.sea view;bathtub;minibar

Common mistakes

  • A code that differs from the PMS (DLX in one, DELUXE in the other).

Rooms

Every room in the hotel. One row per room.

ColumnRequiredRuleExample
room_numberRoom numberYesRequired. As on the door: 101, 12A. Unique.101
floorFloorNoOptional. e.g. 1, G, Mezzanine.1
room_typeRoom type codeNoOptional. A code from the Room types file, e.g. DLX.DLX
wingWing or buildingNoOptional.North
accessibleAccessibleNoOptional. yes or no.no
statusStatusNoOptional. active or out_of_service. Empty means active.active

Common mistakes

  • A room type code that is not in the Room types file.
  • Room numbers with leading zeros lost by Excel (0101 becomes 101). Format the column as text.

Facilities

Places guests go to: pool, gym, beach, kids club. One row per facility.

ColumnRequiredRuleExample
slugKeyNoOptional. Lower-case words joined with -, e.g. main-pool. Made from the name when empty.main-pool
kindKindYesRequired. pool, gym, beach, kids_club, spa, business_centre, lounge, garden, parking, sports or other.pool
name_enName (English)YesRequired.Main pool
name_arName (Arabic)NoIf empty, the English name is used.المسبح الرئيسي
description_enDescription (English)NoOptional.Heated, with lap lanes
description_arDescription (Arabic)NoOptional.مسبح مدفأ بمسارات سباحة
location_enLocation (English)NoOptional. e.g. Level 3.Level 3
location_arLocation (Arabic)NoOptional.الطابق الثالث
opensOpensNoOptional. 24-hour time, e.g. 07:00. Fill in both opens and closes, or neither.07:00
closesClosesNoOptional. e.g. 22:00. A time before opens means past midnight.20:00
daysDaysNoOptional. daily, or days like sun-thu or fri;sat. Empty means daily.daily

Common mistakes

  • Only an opening time without a closing time.
  • 12-hour times without am or pm.

Bookable services

What guests book in the app: spa treatments, transfers, lounges, meeting rooms. One row per service.

ColumnRequiredRuleExample
slugKeyNoOptional. Lower-case words joined with -. Made from the name when empty.swedish-60
kindKindYesRequired. spa, car, dining, lounge, meeting or other.spa
name_enName (English)YesRequired.Swedish massage, 60 min
name_arName (Arabic)NoIf empty, the English name is used.مساج سويدي ٦٠ دقيقة
description_enDescription (English)NoOptional.Full body, medium pressure
description_arDescription (Arabic)NoOptional.لكامل الجسم بضغط متوسط
duration_minutesDuration (minutes)No15 to 720. Empty means 60.60
pricePriceNoOptional. A number in your currency. Empty means free.450
price_unitPrice perNoflat, per_person or per_hour. Empty means flat.flat
max_party_sizeMaximum guestsNo1 to 50. Empty means 1.1
capacity_per_slotBookings at the same timeNo1 to 500, e.g. the number of therapists. Empty means 1.3
lead_time_minutesNotice needed (minutes)NoHow long before the start a guest can still book. Empty means 60.120
opensFirst slotNoOptional. 24-hour time, e.g. 10:00.10:00
closesLast slot endsNoOptional. e.g. 22:00.22:00
daysDaysNoOptional. daily, or days like sun-thu. Empty means daily.daily

Common mistakes

  • Duration in hours (1) instead of minutes (60).

Menu

Every dish with its category, price, allergens and options. One row per dish.

ColumnRequiredRuleExample
item_codeItem codeNoOptional. Your own code (letters, digits, - and _). If present, re-uploading the file updates the dish with this code. Name photos after it.MZ-01
category_enCategory (English)YesRequired. Dishes with the same category name are grouped together, in the order of the file.Starters
category_arCategory (Arabic)NoArabic name of the category. If empty, the English name is used and you will see a warning.المقبلات
name_enDish name (English)YesRequired. Up to 120 characters.Mezze platter
name_arDish name (Arabic)NoIf empty, the English name is used and you will see a warning.طبق مازة
description_enDescription (English)NoOptional. Up to 500 characters.Hummus, moutabal and warm bread
description_arDescription (Arabic)NoOptional. If empty, the English description is used.حمص ومتبل وخبز ساخن
pricePriceYesRequired. A number in your currency, e.g. 45 or 45.50. No currency sign needed. 0 is allowed.45
allergensAllergensNoSeparate with ; e.g. gluten;dairy. Allowed: gluten, dairy, eggs, nuts, peanuts, sesame, soy, fish, shellfish, celery, mustard, sulphites.sesame;gluten
dietaryDietary tagsNoSeparate with ; Allowed: vegetarian, vegan, gluten_free, dairy_free, halal, spicy, signature.vegetarian
modifier_groupsOption groupsNoNames of option groups from the Options file (English), separated with ; e.g. Sides;Spice level.Sides
prep_minutesPreparation minutesNoOptional. Whole minutes, 1 to 240.8
stationKitchen stationNoOptional. Where the ticket is cooked: grill, cold, hot, bar, pastry or pass.cold
pos_item_refPOS item idNoOptional. The item's id in your POS, so orders post to the right item.
availableOn the menuNoOptional. yes or no. no keeps the dish hidden from guests. Empty means yes.yes

Common mistakes

  • Putting the currency in the price column as text ("QAR forty"). Use digits only.
  • One row with several dishes. Every dish needs its own row.
  • Writing allergens in free text ("contains nuts"). Use the words listed, separated with ;.
  • Different spellings of the same category ("Main" and "Mains") make two categories.
  • Referring to an option group that is not in the Options file.

Staff

Everyone who uses the CRM or the staff app. One row per person.

ColumnRequiredRuleExample
nameNameYesThe person's name as the team knows it. Up to 80 characters.Mariam Al-Kuwari
emailEmailYesWork email. The invitation goes here; one person, one email. Must be unique in the file.mariam@example.com
roleRoleYesOne of the roles listed below. Exactly one role per person.admin
phoneMobileNoOptional. Mobile number for an SMS invitation, e.g. +974 5550 1234. Without a country code, +974 (Qatar) is used. Must be unique in the file.+974 5550 1234

Roles

  • adminGeneral manager or owner: everything, including settings and the team.
  • fnbF&B: menus and in-room dining orders.
  • hostFront desk: guests, stays, pairing codes.
  • spaSpa: spa bookings.
  • conciergeConcierge: requests, facilities and bookings.
  • maintenanceMaintenance: maintenance requests.
  • dispatchDispatch: cars and transfers.

Common mistakes

  • A shared email for several people. Each person needs their own email to sign in.

Options (modifiers)

Choices guests make on a dish: sides, sauces, spice level, extras. One row per option.

ColumnRequiredRuleExample
group_enGroup (English)YesRequired. Rows with the same group name form one group, e.g. Sides.Sides
group_arGroup (Arabic)NoIf empty, the English name is used.أطباق جانبية
min_selectMinimum choicesNo0 means optional. 1 means the guest must pick one. Same value on every row of the group.0
max_selectMaximum choicesNo1 to 20. Same value on every row of the group. Empty means 1.2
option_enOption (English)YesRequired. e.g. French fries.French fries
option_arOption (Arabic)NoIf empty, the English name is used.بطاطس مقلية
price_deltaExtra priceNoWhat the option adds to the dish price. 0 or empty for free. A minus sign for a discount.12
pos_modifier_refPOS modifier idNoOptional. The modifier's id in your POS.

Common mistakes

  • A minimum higher than the number of options in the group.
  • Different minimum or maximum on rows of the same group.