Skip to content
Adoptiv

Filter Trees

The report that needs two exceptions and a date range stays one widget. Conditions sit inside conditions and compile into a single where clause, so you are not left running three tiles that nearly agree with each other.

See pricing

One widget, one where clause

depth 2 · 2 of 6 conditions
Condition tree
  • ANDlevel 1
  • deals.stageinProposal, Negotiation
  • ORlevel 2
  • accounts.tierequalsEnterprise
  • ANDlevel 3
  • accounts.employee_countat or above250
  • contacts.countrydoes not containUS
  • deals.amountbetween25,000 and 250,000
  • deals.owner_idequals
Depth · eight levels allowed
3of 8 levels used
Conditions · two hundred allowed
2of 200, above which the request is refused by name
Compiled where clause
deals.stage IN ($1, $2)
accounts.tier = $3
Operators the column offers
  • boolean4
  • identifier6
  • date9
  • text10
  • numeric11
All seventeen operators reach SQL · a condition may only name a table the widget already lists, otherwise the query is refused rather than silently narrowed
Third level. Depth is checked when the tree is authored and checked again when it is queried, so a tree that got past the editor cannot get past the runtime.
0
operators to write a condition with
0
levels of conditions inside conditions
0
conditions in one tree

Product figures from the platform’s own defaults - not customer averages

The mechanism

How it works.

01

Leaves and groups, all the way down

A leaf names a module, a field, an operator and a value. A group names a conjunction and holds children, each of which is a leaf or another group. An empty group compiles to true rather than to an error, so a half-built tree never breaks the widget above it.

02

Every operator on the list actually runs

Six comparisons, membership and its negation, four string forms, a range, the two emptiness checks and the two boolean checks. String matching ignores case, and a negated contains compiles to a negated case-insensitive match rather than an exclusion list.

03

The column narrows what you are offered

Boolean columns show four operators, numeric eleven, date nine, identifier columns six, and text ten. Pick a different column and the operator resets when the one you had is not on the new list.

04

Blank is treated as unasked

A comparison with nothing in it compiles to true, a membership test with an empty list compiles to false, and a range with one end filled compiles to that end alone. Empty strings are never bound against typed columns, which is where this used to fall over.

Where it sits

Two moments in every number.

Every number passes through the same seven. Filter Trees is the lit ones, and everything either side of it is a different page in this category.

  1. 01
    Query

    what is asked, and of what

  2. 02
    Shape

    the measure and the dimension

  3. 03
    Draw

    the visual chosen for that shape

  4. 04
    Arrange

    where it sits on a dashboard

  5. 05
    Filter

    narrowing it after the fact

  6. 06
    Drill

    going from the number to the rows

  7. 07
    Share

    who else gets to see it

The specifics.

8 facts
Operators
Equals, not equals, in, not in, contains, does not contain, starts with, ends with, four comparisons, between, is null, is not null, is true, is false
Depth
Eight levels, checked when authored and again when queried
Size
Two hundred conditions, over which the request is refused with a message naming the cap
Text matching
Case-insensitive both ways
Blank leaves
Neutralized rather than rejected
Modules
A condition may only name a table the widget already lists, otherwise the query is refused
Runs
In the where clause, before any aggregate
Not the same as
Cross-Filtering, where a click adds a temporary condition on top of this one for as long as it is selected

More in Reporting & Analytics

12 capabilities

Seven data shapes, twenty-two visuals, shareable without a login.

Dashboard Sharing

Hand a board to a team or a CRM role, at read or at edit, by the person who built it. Roles outlive people, which is why a share points at one, not a mailbox.

Chart Visuals

Nobody builds a chart that misreads its own numbers, or finds that out on the wallboard. Columns, funnels, treemaps, radar, scatter, gauges and pivots.

Dashboards

The board a team opens on holds the figures that team is judged by, not everybody's. Six columns to lay them out in, and your own tab opens first.

Drill-Through

Some answers will not fit on the board that raised the question. A click leaves carrying the value it stood on, and lands on a board already narrowed to it.

Pivot Tables

Agents down the side, weeks across the top, and the number you care about in every cell. The shape finance asks for when a chart will not settle the argument.

Conditional Formatting

A board on the wall gets read from across the room. Anything under target colors itself as the chart is painted, so a supervisor sees it without stopping.

Reference Lines

The number that was promised, drawn across the same chart as the number that arrived, so the floor reads itself against its target, not yesterday's bars.

Comparison Periods

Nobody has to remember what last week looked like, or dig out the sheet it was written on. The same figure is counted again over the window before it.

Theme Sets

Six palettes, one a print set for the pack that goes in front of a client. Pin one to a tile and the series, axis, grid and tooltip all move together.

Public Links

Send a client the board without giving them a login. The address works until the day you name, dies the moment you revoke it, and leaves a row explaining why.

Embedded Widgets

A figure on the screen where the work happens, not on a board somebody must remember to open. Built once, worked out against the records of whoever opens it.

Call Analytics

How many calls, how many answered, how long they ran, how many missed, counted off the records the switch already wrote. Not a sample or last night's export.

Reporting & Analytics

See filter trees on your own floor.

Thirty minutes, your numbers and your data. We will set filter trees up live and you can decide from the thing itself rather than from this page.

See pricing

14-day trial · no card · migration included