Conga Product Documentation

Welcome to the new doc site. Some of your old bookmarks will no longer work. Please use the search bar to find your desired topic.

Show Page Sections

Domain and Dynamic Filters Definition

What is a domain?

A domain is a set of feasible values for a given cell.

In the following example, a domain is defined for the column Pricing Strategy. This domain restricts the value selection for the user: Customer List, Web Less, Cost Plus or Other.



A domain can be defined for all value types: numeric, text, date ... and there are several ways to define a domain in Smart CPQ:

  • List of values (Red, Blue, Green or 10, 20, 30, etc.)
  • Min/Max/MultipleOf (Min: 0, Max: 100, MultipleOf:2 to allow only even values from 0 to 100)
  • Min/Max (Min:2019-01-01, Max: 2019-12-31 to allow only dates in 2019)

If a user enters a value out of domain, the cell is in error.

Creating a dynamic filter

Domains can be defined as static (list of values) or they can rely on other values (columns or fields). In that case, the list of available values for a column of field is dynamically filtered depending on the other column or field.

The domain service allows to define dependencies between variables and their domains. This feature brings your business rules directly into the quotation process.

For example, a car horsepower could rely on the car type. Only horsepower available for a selected car type should be available. The dynamic filters allows to define this logic.

Values are filtered on the fly and available options are based on previously selected ones. Invalid values are red colored to ensure that no errors are made by sales rep.

In the previous example, as Sedan is selected as car type, only horsepower 100hp and 110hp are available.

Domains representation

An enumerated domain can be defined as a table with the equal operator. For example, if I want to list all type of car that my company is able to sell, the domain Sedan, SUV, Coupe, Crossover can be defined as follow:

OPERATOR CARTYPE
= Sedan
= SUV
= Coupe
= Crossover

At runtime, the domain is displayed in a drop down.



If this domain has to be restricted, a dynamic filter has to be defined. Indeed, car horsepower and car type can have a dependency. This business rule can be represented as a table with several columns:

OPERATOR CARTYPE OPERATOR HORSEPOWER
= Sedan = 100hp
= Sedan = 110hp
= SUV = 110hp
= SUV = 150hp
= Coupe = 200hp
= Coupe = 300hp
= Crossover = 150hp
= Crossover = 190hp

With this definition, if the users selects Sedan in the CarType column, only 100hp and 110hp will be available as Horsepower (forbidden values will be displayed in red in the dropdown).



Show/Hide unauthorized values

The unauthorized values can be hidden by configuring the quote model.

The user can start with the column he wants (there is no order to solve the domain). In the previous example, if the user selects 110hp as Horsepower, only Sedan and SUV will be available as Car Type.



Now, the car color can also rely on the car type. Complex business rules can be managed thanks to these tables:

OPERATORCARTYPEOPERATORHORSEPOWEROPERATORCOLOR
=Sedan=100hp=White
=Sedan=100hp=Black
=Sedan=110hp=White
=Sedan=110hp=Black
=SUV=110hp=Grey
=SUV=150hp=Grey
=Coupe=200hp=Red
=Coupe=300hp=Red
=Crossover=150hp=Black
=Crossover=190hp=Black

Dynamic Filters Configuration

ADMINISTRATING DOMAINS AND DYNAMIC FILTERS

Dynamic filters are stored in a dedicated service: the domain service. They can be manipulated via APIs only: Configuring Domain service. This service is ruled by the governor limits (see Governor limits).

CONFIGURING DYNAMIC FILTERS IN PERFORMANCE QUOTING

Once the constraint is defined in the domain service, it can be used to drive dependencies between 2 or X columns/fields of the quote spreadsheet.

To do so, the relation name (table name) defined in the service has to be referenced in the Quote model. This link can be created at Quote level or at Line Template level (where the dependency must be used).

An automatic mapping between column IDs (in the dynamic domain service) and variable IDs (in the quote model) is done.

You can consult the Quote Designer documentation on the Data Model to learn more.