Every list page in Ceum answers a question about one kind of record. "Which invoices are unpaid?" is a question for the invoices list. "Which of my active clients have unpaid invoices and a project still running?" isn't a question any single list can answer, because the answer spans three kinds of record at once.
A combined view is where that question goes. You describe a stack of levels — clients on top, their projects and invoices underneath — put a filter on each layer separately, and read the result as one tree you can expand. This walkthrough builds one from an empty tab and finishes with a file you can send to someone.
Combined views are part of the Plus and Pro plans. A Plus account keeps up to ten saved views; on Pro the count isn't capped. Everything below works the same on both — see plans and billing for what else the tiers carry.
The goal
One saved view that starts from your clients, opens onto the projects and invoices beneath each of them, shows only the records you care about at every layer, and exports as a file that matches what is on screen.
1. Start a draft and choose what it reads from
Open Combined views. Your account already has two views to look at — Clients overview and Project work — but start a new one: + in the tab strip adds a tab and takes you to its structure page, which is the only place a view's shape is written.
The Top level card is the records the view starts from. Any of eight kinds of record can go there. Pick Clients.
Two more choices live in the same card, and both are worth making now rather than later:
- Columns decides what each row shows, and what the file carries when you export it — there's no column picker in the export modal.
- Sort by and Direction set the resting order. You can still sort by clicking a column heading once you're reading the view; that ordering lives in the page address rather than in the view, so it's something you send in a link, not something you save.
2. Nest the levels underneath
Add a level puts the next layer under the one above. A view goes four levels deep, top level included, and the button disappears when there's nowhere further to descend.
A nested level says how it's reached: you pick a relationship from the level above — "Projects" of this client, "Tasks" of this project, "Time entries" of this task. Only relationships that actually exist are offered, so the shape of the view can never outrun the shape of your data.
One level can hold up to four sets of records side by side. Add another set on the second level, and a client opens onto its projects and its invoices at the same time rather than making you choose between them. Each set is fetched, paged and sorted on its own, and each gets its own heading row.
3. Filter each layer on its own terms
Every set carries its own Filters, and this is where a combined view goes past what a list page can express. A list page combines conditions on different columns with and, always. Here a filter is a tree: you choose All of or Any of for a group of conditions, and a group can sit inside another group.
So the client level can ask for status Active, while the invoices under it ask for "status is not Paid or due date is before today" — one question, two layers, two different rules. A condition is a field, a comparison and a value, and each field is offered only the comparisons that make sense for it; Combined views has the full set.
A set with no conditions shows everything, which isn't the same as an empty group — emptying a group removes it. A filter can also grow too large or too deeply nested to save, and the editor names the bound you crossed before you press Save view.
Two results read oddly until you know why: a client whose projects all fail the filter still appears and expands to show nothing, and a nested level can hold more rows than its parent, because a project linked to two clients appears under both.
4. Group a set before it is listed
Add grouping turns one long run of rows into labelled buckets. Group transactions by type and the set becomes an Income row and an Expenses row, each opening onto its own records. Groupings stack three deep, so type and then client gives you clients inside each of the two.
Not every field can be grouped — a value that never repeats, or one worked out as the row is read, has nothing to bucket by — and the editor says which rather than hiding the option.
Group rows are labels, not records: there's nothing to open, edit or delete on one.
5. Save it — or don't
Save view turns the tab into a saved view stored in your account, reaching every device, countable against your plan's limit. Until then it's a draft, marked in the tab strip and kept in this browser only.
A draft isn't a lesser thing. It survives a reload, it can be exported exactly like a saved view, and it costs nothing against your view count — so an experiment stays an experiment until you decide it earned a place. Closing a saved tab doesn't delete the view; Open view lists every saved view that isn't open, and is also where you delete one for good.
Once the view is on screen, the rows behave like the records they are — a name opens the record, a cell takes the pencil for editing in place, a right-click gives the same menu the record has on its own list page. Only the top level loads up front; expanding a row fetches what sits under it, and Show N more adds the next batch inside a parent instead of turning the page over.
6. Take the whole thing out as a file
Export on the view page turns what is on screen into a file — the tab you're looking at, saved or draft, in the order you sorted it. You never have to save a view just to get a file out of it.
Pick Excel or PDF to keep the whole view. Excel gets a worksheet per set of records; the PDF puts each set in a sub-table instead, since a PDF has no sheets. Either way nesting survives as indentation, so a project sits indented under its client in the order it appears on screen. CSV holds only the first set, since the format has no notion of a second. A view too large to walk is refused rather than quietly truncated — narrow a filter and generate it again.
Finished files collect on the view exports page, where you can download one again or delete it; a generation that failed offers Regenerate instead. There's no way to start a new export from that page — a file always comes from the view it belongs to.
What you end up with
A view that answers a question spanning three kinds of record, with its own rules on every layer, saved once and there the next time you open the page — plus a file of the same thing whenever someone asks for it. The structure is the work; after that, reading it is a click.