How to import offers from Excel
Instead of entering offers one by one, you can upload an Excel file (.xlsx) and let Pakuj.se's AI assistant map the columns automatically. After a quick review you can import hundreds of offers in a single click.
Required role: Owner or Employee.
The offer group (Accommodation / Transport / Insurance) must be decided before you upload — one file covers one group.
What the AI can map
The AI reads your column headers and sample values and tries to match them to the following offer fields:
| Field | Example column names |
|---|---|
| Offer name | Name, Hotel, Naziv, Ime |
| Offer type | Type, Tip, Category |
| Unit name | Room, Cabin, Kabina, Soba |
| Unit type | Room type, Tip sobe |
| Classification | Stars, Zvezde, ★ |
| Service | Board, Pansion, HB, BB |
| Price | Price, Cena, Amount |
| Valid from | From, Od, Date from |
| Valid to | To, Do, Date to |
| Number of seats | Seats, Mesta |
Headers can be in Serbian or English, merged or split across rows — the AI will attempt to resolve them. You can correct any mistakes using the chat panel before approving.
Two import modes
| Mode | When to use | What you need |
|---|---|---|
| AI mode | Recommended — works with any column headers | The Owner must enable Excel Import (AI mapping) in Agency AI Settings |
| Strict mode | When AI is not enabled, or if you prefer a template | Use exact standard headers; download the template directly from the import page |
If you do not see a chat panel during the import, your agency is using strict mode. See the Strict mode section at the bottom of this page.
Step 1: Open the import page
- In the left sidebar, click Offers.
- At the top of the page, click Import from Excel.
Alternatively, the import button appears at the top of each offer group tab.
Step 2: Choose the offer group and upload the file
- Select Accommodation, Transport, or Insurance — this tells the AI which fields to look for.
- Click Choose file and select your
.xlsxfile.- Maximum file size: 5 MB.
- Only
.xlsxformat is supported (not.xlsor.csv).
- Click Start import.
Pakuj.se uploads the file, runs the AI analysis, and redirects you to the Import Session page. This usually takes 5–15 seconds.
Step 3: Review the preview table
The Import Session page shows two panels:
Left — Preview table: every row from your spreadsheet, with columns mapped to offer fields. Each row has a colour-coded status badge:
- Green (Valid) — the row is ready to import.
- Yellow (Warning) — the row can be imported but has a potential issue (e.g. a price outside a common range). Check the tooltip.
- Red (Error) — the row cannot be imported as-is (e.g. a required field is missing). Fix it before approving.
- Grey (Pending) — the AI has not yet resolved this row.
Right — Chat: a conversation panel where you can instruct the AI to correct mistakes, remap columns, or re-check specific rows.
Editing rows manually
Click any cell in the preview table to edit it inline. Changes are saved automatically. The row badge updates after each edit.
Including or excluding rows
Each row has a checkbox on the left. Uncheck rows you do not want to import. Only checked rows with Valid status will be committed when you click Approve & Import.
Step 4: Chat with the AI to correct mistakes
Use the chat panel on the right to refine the mapping. Examples:
- "The third column is the city name, not classification."
- "All prices in column F are per person per night, not total."
- "Rows 10–15 are headers for a new section, ignore them."
The AI updates the preview table after each instruction. You can continue chatting until the table looks correct.
Limit: each import session allows up to 25 chat turns. If you reach the limit, approve or reject the session and start a new import if needed.
Step 5: Approve or reject
When you are satisfied with the preview:
- Click Approve & Import → Pakuj.se creates all checked valid rows as offers in one transaction and redirects you to the Offers page. A success message shows how many offers were created.
- Click Reject → the session is discarded and the uploaded file is deleted. No offers are created.
You will be asked to confirm before either action.
Strict mode
If your agency does not have AI import enabled, Pakuj.se uses strict mode. The AI is not involved at all — the file is validated against exact column headers.
Step 1: Download the template
On the import page, next to the Choose file button, click
Download template. Select the offer group (Accommodation, Transport, or
Insurance) and save the .xlsx file.
Step 2: Fill in the template
Open the template in Excel. Row 1 contains the exact headers — do not change them. Enter your data starting from row 2.
Required headers (in English, exactly as shown):
Name, Type, UnitName, UnitType, Classification, Service,
Price, From, To, NumberOfSeats
The values for Type and UnitType must match the options in Pakuj.se
exactly (e.g. Hotel, Apartment). Incorrect type values cause red rows.
Step 3: Upload and review
The process is the same as AI mode: upload the file, review the colour-coded status badges, and click Approve & Import or Reject.
The only difference: there is no chat panel. To fix red rows, correct the data in Excel, save the file, and start a new import session.
Frequently asked questions
The AI mapped a column incorrectly. Can I fix it?
Yes — tell the AI in the chat panel: "Column B is the offer name, not the
unit name." The AI will remap and re-validate the affected rows.
Some rows are red. Do I have to fix them all?
No. You can uncheck red rows and approve only the green ones. Red rows are
simply skipped. You can import the corrected rows in a separate session later.
I uploaded the wrong file. Can I start over?
Click Reject on the current session. Then go back to Import from Excel
and upload the correct file.
What happens if two rows have the same offer name and type?
They are merged into one offer with multiple units or prices, depending on
how the other columns differ. The AI notes this in the preview — check the
tooltip on those rows.
Is there a row limit?
The AI processes up to 2,000 rows per import. For larger sheets, split the
file and run two separate imports.