InBe Docs

Preferences

The preferences object is the powerhouse of InBe's search.

The preferences object is where you define what kind of venues you're looking for. It's the heart of InBe's intelligent matching system, allowing you to specify establishment types, dietary needs, atmospheres, and more to get results that perfectly match your users' requirements.

Structure

Preferences object structure
  : {
    : {
      : "ANY",
      : "2025-11-18T17:53:51.178Z",
    },
    : [
      "family",
      "coffee",
      "vegan",
      "dates",
      "working",
      "outdoor seating",
    ],
    : "PREFER_INDEPENDENT",
    : ["British", "Italian"],
    : ["vegetarian", "glutenFree", "vegan"],
    : ["restaurant", "pub", "coffee shop"],
    : {
      : "Michelin",
      : ["1", "2", "bib"],
    },
    : ["genre", "catersFilters"],
  },
 

Preferences

It is not advised to use all of these preferences at once as some are very similar, but trade control for speed. This page will provide an overview, but we have a deep dive for each preference type.

Core preference types

How preferences work together

InBe uses a sophisticated scoring system that considers all your preferences together:

  1. Base matching: Venues that meet your basic criteria
  2. Preference weighting: Venues that better match your preferences get higher scores
  3. Result ranking: Results are ordered by how well they match your preferences
  4. Smart defaults: Missing preferences use sensible defaults for better results

Real-world examples

  : {
    : {
      : "OPEN",
      : "2025-11-18T19:00:00.000Z",
    },
    : "PREFER_INDEPENDENT",
    : ["Italian", "Romantic"],
    : ["vegetarian"],
    : ["servesWine", "goodForDate", "servesCocktails"],
    : ["genre", "catersFilters"],
  },
 

Preference strategies

Start simple, then refine

Begin with basic establishment types and add preferences as needed:

Progressive preference building
// Step 1: Basic search
  preferences: {
    genre: ["Italian"]
  }
 
// Step 2: Add dietary needs
  preferences: {
    genre: ["Italian"],
    catersFilters: ["vegetarian"]
  }
 
// Step 3: Add atmosphere
  preferences: {
    genre: ["Italian"],
    catersFilters: ["vegetarian"],
    goodFor: ["date"]
  }

Use non-compromise sparingly

Non-compromise preferences are strict requirements that can significantly reduce results:

Non-compromise example
  preferences: {
    genre: ["Pub"],
    catersFilters: ["vegetarian"],
    establishmentFilters: ["goodForWatchingSports", "goodForGroups"],
    nonCompromise: ["genre", "establishmentFilters"]
  }

Balance specificity with results

Too many specific preferences may return few or no results:

Balanced preferences
  preferences: {
    goodFor: ["date", "live music"],
    genre: ["Alpine"],
    catersFilters: ["vegetarian", "glutenFree", "nutFree"],
    chainPreference: "PREFER_INDEPENDENT",
    special: {
      type: "Michelin",
      value: ["1", "2", "bib"],
    },
  }

Non-compromise

It's unlikely (but not impossible) you'll find a Michelin-starred Alpine place that serves vegetarian, gluten-free, and nut-free food and also has live music.

Best practice

  • Genre: When you can, specify what kind of venue you want
  • Add dietary needs early: These are often deal-breakers for users
  • Use goodFor: This is a quick way to get venue characteristics without having to specify a genre, caters filters, or establishment filters
  • Consider opening times: Users may need venues that are open now, or when they want to meet

Next steps

On this page