> ## Documentation Index
> Fetch the complete documentation index at: https://docs.conduit.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Offers

> Sell upgrades, services and add-ons in the portal: purchases, requests like early check-in, late checkout and extra nights, and links out.

Offers are what guests can buy or request in the portal. They live in the catalog under **Portals > Offers**, and a portal shows an offer once it's on that portal's [template](https://docs.conduit.ai/portals/templates-and-brand-kit.md#offers).

## Create an offer

Needs **Manage Portals**.

1. Go to **Portals > Offers** and click **New offer**
2. Pick the **Offer type**
3. Fill in **Name** and **Description**, and pick a **Category** if you want
4. Set the price, options, targeting and photos
5. Click **Create offer**
6. Add it to a template's **Featured offer** or **Offer set**

New offers are active straight away.

| Offer type | What happens |
| - | - |
| **Purchase** | Charges at checkout |
| **Request** | Holds the card until you approve it in [Requests](https://docs.conduit.ai/portals/requests.md). A \$0 request holds nothing |
| **Ad** | No payment. The button opens your **Link URL** in a new tab. With no link, it's a display-only card |

## Pricing

| Setting | What it does |
| - | - |
| **Price type** | **Fixed amount** or **% of reservation**. Hidden once the offer has options |
| **Price unit** | **Per stay** (default), **Per night** or **Per day**. Per night and per day ask the guest for dates in their stay |
| **Charge every night** | Per night only. Charges every night of the stay, with no date picker |
| **Percentage of** | **Reservation total**, **Average nightly rate (ADR)**, **Average nightly rate (ADR) incl. fees** or **Total accommodation fare** |
| **Min price**, **Max price** | Keeps a percentage price in a range |
| **Compare-at price** | Shown struck through. Fixed prices with no options only |
| **Max per order** | Purchases priced per stay. The highest quantity in one checkout, 1 to 20 |
| **Payment account** | Shows with 2 or more Stripe accounts. See [Payments](https://docs.conduit.ai/portals/payments.md#more-than-one-stripe-account) |

* Fixed prices are 0 or at least 5.00 in your currency, or ¥500 in yen
* ADR and fare prices need the stay's amounts from Hostaway, Guesty, Track or Mews. On Hostaway, that's Airbnb, Vrbo, Booking.com and direct bookings
* A percentage offer is hidden on stays with no matching amount, or with an amount in another currency

## Options

**Add options** adds up to 3 option groups with up to 12 options each. Each option's price adds to the base price.

* **Selection type**: **Pick one**, **Add many**, or **Quantities** (a count per option, like 2 adults and 1 child, up to **Max per option**)
* **Input type**: **Text** or **Time**
* An option can be priced as a fixed amount or a percentage of the average nightly rate
* **Combinations**, with at least one **Pick one** group, prices each combination on its own and turns unsold ones off. Up to 48 combinations

## Guest input

* **Date selection**: **None**, **Single date**, **Multiple dates** or **Date range**. Per night and per day prices always use a date range
* **Ask questions**: questions the guest answers before checkout, each one **Required** or not. Answers can be up to 500 characters

## Early check-in, late checkout and extra nights

Request offers can change the reservation. Pick an **Effect** under **Reservation update**:

| Effect | What approving does |
| - | - |
| **Early check-in** | Moves the arrival time. The guest picks one of your **Arrival time** options |
| **Late checkout** | Moves the departure time. The guest picks one of your **Departure time** options |
| **Extend stay** | Adds your set number of **Extra nights** (1 to 30), **Before check-in** or **After checkout** |

* Early check-in and late checkout add a required time group. Times use the property's time zone, or the workspace's when the property has none. Use a base price of 0 when each time carries its own price
* Approving writes the new time to Guesty, Hostaway, Track or Mews. Hostaway only takes whole hours. Other PMSs need the change made by hand
* Approving also moves the door code times on mapped locks
* **Block the night before check-in** and **Block the night after checkout** work with Guesty and Hostaway. The night is checked when the guest asks and again when you approve, then blocked in the PMS. If the night is taken by then, the request is declined and the hold released
* **Extend stay** works on Guesty and Track reservations booked direct, and Track website bookings. Use **Booking channels** and **Listings** to show it on those stays
* A reservation change needs the reservation's check-in and checkout times and a property or workspace time zone

## Targeting

Blank targeting shows the offer on every active portal before checkout.

| Filter | What it matches |
| - | - |
| **Show from**, **Show until** | A time frame in hours or days before check-in or checkout |
| **Booking channels** | **Include** or **Exclude** the channels you pick |
| **Reservation sources (advanced)** | **Include** or **Exclude** exact PMS source values. Matching is case-sensitive |
| **Min nights**, **Max nights** | Stay length |
| **Vacant nights before arrival**, **Vacant nights after departure** | That many free nights next to the stay, 1 to 30. The offer is hidden when availability can't be checked |
| **Listings**, **Listing groups** | A listing you pick, or one in a group you pick |
| **Inboxes** | **Include** or **Exclude** by the contact's current inbox |
| **Custom attributes** | Contact attribute values, up to 20 rules |

* **Availability** sets dates: outside **Visible from** and **Visible until** the offer is hidden. Before **Bookable from** it shows **Available soon**, and after **Bookable until** it shows **No longer available**
* Any stay filter hides the offer on portals without a reservation

## Categories

* **Manage categories** sets the sections offers are grouped into on the portal, and their order. Up to 50
* Uncategorized offers show first, with no heading
* **Extra nights** is built in. It can be renamed but not deleted
* Deleting a category moves its offers to Uncategorized

## Archive and restore

Offers can't be deleted or duplicated.

* **Archive offer** removes the offer from every template's featured offer and offer set, and hides it on portals already sent. Order history stays
* An archived offer left on an active template's **After checkout** list stops that template from saving until you remove it
* **Restore offer** puts it back in the catalog. It isn't added back to any template

## What guests see

* The **Discover** tab shows offers by category, with the featured offer first
* The Stay page shows them too when the template has **Offers on Stay page** on
* After checkout, the template's after-checkout offers show under **Explore more**
* Offer text is translated into the guest's language
* **Description** and an Ad's **Link URL** take variables, like the guest's name or the listing

Edits to an offer reach portals already sent.

## In the inbox

A purchase adds an **Offer purchased** card to the conversation and moves it to To-do, even at \$0. **Open transaction** on the card needs **View Portal Transactions**.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.