# Customers

Your customer database is the single source of truth for every guest who has interacted with your restaurant through Oddle — whether they ordered online, booked a table, paid at your terminal, enrolled in-store, or received a marketing email. You'll find it in Merchant Admin under **Understand > Customers**.

***

## The Customer List

The Customers page shows your full database as a sortable list. By default, you'll see each guest's name, email, marketing subscription status, and total transactions. You can customise which columns appear using **Displayed Data** in the top-right corner — add fields like last transaction date, lifetime value, or reservation history to get the view that's most useful for you.

Each row is a guest. Select one to view their full profile, or select multiple to perform bulk actions like tagging.

***

## Filtering Your Customers

Filtering is where Customer Intelligence becomes truly powerful. Select **Add Filter** to narrow your database using dozens of attributes — and combine multiple filters to find exactly the guests you need. There are two types of filters: customer data filters (who they are) and customer activity filters (what they've done).

### Customer Data Filters

Customer data filters let you search by a guest's details — their profile, engagement history, or transaction data. Depending on the type of data, filters work differently:

**Text fields** (like name or email) support exact match or partial match (e.g., last name is "Tan" or name contains "Lim").

**Date fields** (like created date or last transaction) support exact dates or relative dates (e.g., "created 30 days ago").

**Number fields** (like total transactions or lifetime value) support more than, less than, or equals to a value.

**Prefixed fields** (like marketing subscription or true/false flags) let you filter for a specific value.

The available customer data filters span every channel:

**Contact & Profile** — Created Date, Salutation, First Name, Last Name, Email, Phone, Alt Phone.

**Email Engagement** — Total Emails Sent, Received, and Opened (with last-date variants for each), Total Email Links Clicked, Last Email Clicked Date, Email Has Hard Bounced, Email Has Spammed, Email Has Unsubscribed.

**Transaction History** — Last Activity Date, Total Transactions, Total Lifetime Value, Last Transaction Date.

**Online Orders** — Total Online Orders, Total Online Order Value, Online Order Placed Last Date.

**Reservations** — Upcoming Reservation Visit (true/false), Upcoming Reservation Visit Date, Total Reservation Visits, Total Reservation No Show, Last Reservation Visit Date.

**In-Person Payments** — Total In-person Payments, Total In-person Payments Value, Last In-person Payment Date.

**Redeemables** — Total Redeemables Issued, Last Redeemable Issued Date, Total Redeemables Used, Last Redeemable Used Date.

**Surveys** — Total Surveys Received, Last Survey Received Date.

**Enrolment Data** — Total Check-ins, Last Check-in Date, plus five proximity and insight filters:

| Filter                  | What you can do                                                                                                                   |
| ----------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| **Address Proximity**   | Find guests within a specific distance (in km) from any of your stores or from specific stores                                    |
| **Proximity Indicated** | Find guests who said they live near, work near, or either — for any store or a specific store                                     |
| **Visit Behaviour**     | Find guests whose visits are planned (intentional) or incidental (passing by)                                                     |
| **Return Driver**       | Find guests by why they come back: food quality, location, value/promotions, habit, service/atmosphere, or companion suggestion   |
| **Discovery Source**    | Find guests by how they found you: social media, Google Maps, food platforms, family/friend recommendation, walked past, or other |

Combine these with your existing filters to build powerful custom segments. For example, filter for guests who work nearby + discovered you via Google Maps + haven't ordered in 60 days — then save that as a segment and target them with a weekday lunch offer.

### Customer Activity Filters

Activity filters let you filter by specific actions guests have taken (or haven't taken) across your Oddle products. For each activity, you can filter by whether the activity has or hasn't occurred, when it first or last occurred, and how many times it occurred over a specific period.

For example, you could find guests who have never placed an online order, or guests who made 3 or more reservations in the last 6 months.

The available activities are:

**Online Orders** — Online Order Placed, Online Order Fulfilled.

**Reservations** — Reservation Placed, Reservation Completed, Reservation No Show, Reservation Cancelled.

**Payments** — In Person Payment Made.

**Redeemables** — Redeemable Issued, Redeemable Used.

**Surveys** — Survey Received, Survey Reminded, Survey Unanswered, Survey Completed.

### Combining Filters

You can add multiple filters and combine them using **AND** or **OR** operators:

**AND** means the guest must match all filter conditions. **OR** means the guest must match at least one.

For example, you could filter for guests where **Upcoming Reservation Visit is True** AND **Address Proximity within distance from any store 5 km** — to find guests with an upcoming booking who live nearby.

For more complex queries, you can create **filter groups**. Each group can use a different operator — so you might have one group using OR (to match guests who ordered online or dined in) combined with another group using AND (to also require they live within 5 km). To create a filter group, select the **+** button next to an existing filter rather than the **Add Filter** button at the top.

***

## Saving Filters as Segments

When you've built a filter combination that's useful, select **Save As Segment** to save it for reuse. Your saved segment will appear in the **Segments** page alongside the pre-built lifecycle and reservation segments.

When you save, you'll be asked to give the segment a name and optionally choose an icon and add details. Saved segments are dynamic — they automatically update as guests match (or stop matching) your filter criteria. This means you can build a segment once and use it repeatedly in your marketing campaigns without having to recreate the filter each time.

You can quickly switch to any saved segment using the segment dropdown at the top of the Customers page.

***

## Exporting Customers

To export your current selection of customers, select **More** and then **Download All Customers**. You'll be asked for your email address, and the export will be sent to you shortly. This works with any active filter — so you can export your full database or a filtered subset.

***

## Tagging Customers

Use **Tag Customers** to add custom tags to selected guests. Tags are a lightweight way to organise guests beyond segments — for example, tagging VIP contacts, press, or guests from a specific event. You can filter by tags later to target these groups.

***

## What You Can Do From Here

Your customer list connects directly to the rest of Oddle's tools:

**Send targeted campaigns.** Build a filter, save it as a segment, then use that segment as the audience for a broadcast in **Email Marketing**.

**Spot opportunities.** Filter for high-value guests who haven't visited recently, or new guests who've only ordered once — then create a campaign or automation to bring them back.

**Understand your guest base.** Use the filters to answer questions like: "How many guests live within 5 km?", "Who has a reservation coming up?", or "Which guests have never ordered online?"


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://www.oddle.me/docs/known-guests/customer-intelligence/customers.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
