What's New

Release notes, newest first. The version badge in the header always names the release you are running right now; match it against the sections below to see what is included.

Note
Older editions of every documentation page are kept with each release. When a newer
release exists, a version dropdown appears on doc pages — you can read the page as it was, or
compare it side by side with the current one.

Unreleased — since version 0.1.0

Everything below has landed but carries no release number yet: the version badge in the header still reads 0.1.0. When the next release is cut, this section becomes its notes.

Added

  • My account. The user menu has a My account entry. It shows your own sign-in details, and Change my password tells you the rule before you type, shows the server's own words when a change is refused, and says what happens to your other sign-ins. Its My language section lets you pick any language your system has turned on; the page reloads in it, and the choice is yours alone, in the space you are in. See Your Account.
  • A help centre that covers the whole application, with pictures. It had nineteen pages; every screen on the menu now has a page that explains it, each one saying near the top where the screen is and the permission it needs. Twenty-one pages are new — menus and navigation, the page designer and widget library, translations, designed table views, form layouts, value lists, required data, custom and computed fields, data groups, shared records and sync proposals, work items, pipelines, goals, scheduling, the phone system, conversations and mailbox access, alerts, users and spaces, guest access, maintenance and conformance, and files — and reselling is covered under Billing & Plans. Five more explain widgets: the widget builder and the Custom widget, the dashboard widgets, the cards of a record page, the work widgets and the scheduling widgets. Every page was then checked against today's screens, many gained a "Who can do this" table, and the pages show screenshots of today's screens with captions that say what each picture shows. Filtering & Searching is rewritten with six worked examples, and so are Working with Lists and Adding & Editing Records. A heading can be linked to: a link to a section of a help page jumps straight to it.
  • Your home page is a dashboard. After signing in you land on a page built from widgets, not on the contact list, which is under Contacts in the menu. A new install starts with a Welcome card and the number of contacts in your space. Press Edit dashboard to add, move, resize or remove widgets for yourself only; Reset to default puts it back. Your space arranges it in the Page Designer, which can now also keep a layout per permission group (Save for → Group): you see your own layout if you made one, otherwise your group's, otherwise the space's, and when several of your groups have one, the Page Designer's order decides. See Your Dashboard and The Page Designer & Widget Library.
  • Filters that say what you mean. A date filter can be relative to today — created in the last 7 days, due in the next 30 — and is worked out again every time it runs, in your space's time zone. A many-row extension filters with has a row where … and has no row where …; a multi-value field with has / has any of / has none of; a field with a list of choices offers a dropdown of them. A field that points at a person, a user or a group offers a picker by name instead of an id box, and a link column filters on the link's own fields. A saved value or record that is gone shows as Unknown and is kept. This works in widgets, saved views, tables, the contacts list and alert rules. See Filtering & Searching.
  • An icon picker for menus and work item types. The Icon box opens a grid of 132 icons with a search box and a None choice, and works with the keyboard and on a phone. See Menus & Navigation.
  • Stop and Force stop for workflow runs. Stop lets the step that is running finish, then ends the run; Force stop ends it at once, mid-step. Each is its own permission — Stop a running workflow — the step in progress finishes first and Force stop a running workflow — end it immediately, mid-step — and the Stop workflow runs group carries both. The editor also offers Save as test version, so "Test a workflow on this record" has something to run. See Automations.
  • The workflow engine is watched. A conformance card checks every hour that the run queue drains, that queued runs start, that schedules fire and paused runs wake on time, and that record events are sent on; if any of it stops you are notified. See Maintenance & Conformance.
  • Clients get a portal of their own. A client, family member or outside worker given portal access signs in at a portal of their own rather than the staff app; each business styles its inside (name, logo, two colours) under System settings → Client portal. Someone with one thing to see lands straight in it, and nobody in the portal is asked to confirm a password. Throughout the CRM, a person sees their own appointments, work items and scheduling requests unless they hold the matching See everyone's … not just my own permission; asking for a row that is not yours gets the same answer as a row that does not exist. Every group that could read these lists before carries the new permissions, so staff see what they saw. The permission-group editor asks whether a group sees Every row or Only their own rows, and a nightly check names any group that has not said. See Who Can See What and Settings.
  • Who may see how your space is set up is its own permission. View the scheduling setup and View the work setup and designers open the Scheduling setup page and the work designers. Every seeded group that could open them still can, and the work board and your own work pages keep their pipeline and stage names. See Scheduling and Work Items.
  • Guest access you can see and control. Settings → Guest access lists every guest share in the space with Revoke beside it, and its ceiling now binds every share each time a guest opens their link — narrow it and every share loses the action at once; widen it back and they get it back. Which shares you see is three permissions: See the guest shares you made, See the guest shares on work items assigned to you and See every guest share on every work item you can see, and the list's heading says which one you are reading at. Sharing needs permission to read work items as well as to share them, and two people sharing the same item at once never overwrite each other. A work item type can leave its guest defaults to the space with Use the space default (…). See Guest Access.
  • Inter-app data grants. Admin → Inter-app data grants decides which of your other apps may read which CRM data: an app gets a data set only when you granted it, the CRM declares it, and the signed-in person holds that data set's own permission. A grant can narrow what the other app sees, can be switched off without losing its setup, and a daily check tells you when one stops making sense. See Inter-app Data Grants.
  • Resetting a forgotten password takes the link and a 6-digit code e-mailed with it, so a forwarded or leaked reset e-mail is not enough on its own. Wrong codes are limited (a space may choose from 1 to 10 tries), and the limit holds even when the guesses arrive all at once — the same for a public link's one-time code. Two settings under Settings → Authentication & sessions decide whether an e-mailed reset signs you out everywhere else (on by default) and whether changing your own password signs out your other devices (off by default). See Your Account.
  • Alert rules. A rule watches a table for a condition — a date coming due, a missing value, a record with no active link, or any advanced filter — badges the records that match, and sends the alert. Alerts are now sent, not only shown: each person gets them immediately or as one daily digest, with quiet hours they choose, on the channels they choose per urgency level. A rule can run a workflow when it fires, and offer workflows on the alert itself. Ten separate permissions cover seeing badges, editing rules, evaluating one now, quieting an alert for everyone or only for yourself, choosing your own end time, quieting a whole rule, ending somebody else's snooze and running an offered workflow — or add somebody to the new Alert managers group, which carries all ten. See Alerts.
  • Required extension fields, and a page that tracks them. Turn Required on for a field that already exists, choosing whether the database enforces it now or only once the old rows have been backfilled. The page shows the backfill as it happens, lets you promote or relax the requirement, and lists exactly which rows are still missing a value — each one linking to the record that holds it. The missing-data alert links straight to the column it is about. Behind it, the requirement one space declares is checked against that space's rows only, and promoting or relaxing one happens in a single transaction that never leaves a half-applied constraint behind. See Required Data.
  • A daily watch on those requirements. Every day, on every ring, the system checks that every column it says the database is enforcing really is enforced — and that nothing is being enforced nobody asked for. It also checks that the two moving parts are alive: that people are still being told which rows are missing required data, and that the job filling those rows is running. If any of that stops being true you are notified, with the table, the column and the space named.

Improved

  • Plain words on every screen. Choices, statuses, table names and hints across goals, pipelines, work item types, the phone system, communications, workflows, templates, import, billing, alerts, settings, sync proposals, custom fields and the widget editors now read in words instead of codes. A hint that needs a permission names it the way the permission list does, and a hint about a setting names it the way the settings page does and says where it is. A save refused because someone else changed the record says so and tells you to send it for approval or ask a manager. Error pages say what happened and what you can do next instead of showing a number. Every word the widgets show, and every widget option, can be translated on the Translations page. See Translations.
  • Every table has one name. Each built-in table's name is kept in one place and can be translated; Alert rules, workflow triggers, Runs and Data access all use it, and a name a space admin gives a table still wins.
  • Billing says why. Where you may not use something — picking another space, issuing or voiding an invoice, sending a pay link, recording a payment, cashing out commission — its place names the permission it needs, and a tab you cannot open stays in the row and says why. Plans, limits and statuses read in words. See Billing & Plans.
  • Spaces and the Permission Tester say who a ceiling binds: everyone, except a person linked in from a space above, unless they bind themselves to it or the space forces it. The tester says when a right comes from the person's home space, and the Spaces list says Narrowed when a ceiling admits less than the space above it. See Users & Spaces and Who Can See What.
  • Contact lists. A bulk change that partly fails says how many saved and how many failed and keeps the failed ones in the edit cart with the reason. Share copies a full link. The ★ and × on a whole-space view show only to people allowed to change it. The edit cart folds from its title, and a wide list scrolls sideways inside its card with the first column kept in view. E-mail and phone chips stay on one line. Only people who may change lists see the change buttons. See Working with Lists.
  • Record pages. Cancel asks before it throws away unsaved changes — Discard changes or Keep editing. In edit mode the Emails, Phones and Notes tables fit inside their cards, Remove buttons included, and an empty table says No entries yet. The detail cards sit two to a row. See Adding & Editing Records.
  • Goals. A goal set to repeat Monthly or Quarterly starts a new period when the last one ends, and the Goals page and the goal widget show the period being measured. Goal periods are typed and shown in the space's time zone. See Goals.
  • Widgets. A Table widget whose source is a saved view shows the view's columns and rows — All columns or the ones you choose. A widget filter the source refuses is refused at save, in words. The scheduling widgets pick by name and show times in your time zone; a dashboard calendar uses the Schedule page's time zone unless its own Timezone option is set. The widget library and the Page Designer say when a page keeps its own copy of a widget's setting, and offer Use the library's … to drop it. See Widgets.
  • Phone system in the menu. Anyone who may open any phone-system page sees Phone system in the menu and lands on the first page they may open. See The Phone System.
  • The space picker in the top bar shows every space's name in full and scrolls when the list is long.
  • Menus: a Virtual table view option picks its table from a dropdown by name. The Extension tables page has an Extends column naming the table each extension adds fields to. See Menus & Navigation and Roles & Extension Fields.
  • Secrets stay out of workflow run history. With verbose logging on, credentials a step touched are masked before anything is written; secrets in a run's outputs and in a failed run's error are stored encrypted, and a workflow that calls another still receives the real value. A space can add its own webhook header names whose values are never stored. See Automations.
  • Applying a template can no longer put a setting value into your space that the Settings page would refuse; any row it cannot apply is named back to you, and its other settings still apply. See Templates.
  • Sample data keeps dates of birth and Medicaid CINs encrypted, as real data is: they show to people who may read sensitive data and are masked for everyone else.
  • Abandoned integration connects are cleaned up by a maintenance sweep, and the half of an OAuth connect that was still stored readable is now sealed. See Integrations.
  • A contact page keeps itself up to date. Files, tasks, appointments and relationships update themselves — attach a file, create a task, book an appointment or add a relationship from another tab, another screen or a colleague's computer and it appears on the open contact at once, with no refresh. A task somebody reassigns away disappears from their page as promptly as it arrives on the new person's. Notes, e-mails, phone numbers, addresses and the activity feed all catch up on their own, including a change somebody else made. A page that lost its connection for a moment re-reads its cards as soon as it is back, so a tab left open all day is not quietly showing yesterday's data. How long a page waits before giving up on one of those re-reads is a setting — Settings → Realtime.
  • Every table in the CRM stays inside its own box on a phone or a tablet. The page no longer slides sideways with a column off the right-hand edge. All 38 pages that did this are fixed, and a new check opens nineteen of them in a real browser at three screen sizes on every release so it cannot slip back in.
  • Touch targets. Every modal's close button, and the × that dismisses a toast message, is a full-size touch target on a phone or a tablet.
  • The contact types page fits a phone. At 400 px each row is a card you can read, the page does not slide sideways, and the Add dialog fits the screen with its close button on it.
  • Editing somebody's permission groups no longer resets the rest. Adding or removing one group leaves every other membership exactly as it was, the history of who gave somebody which rights survives an edit instead of starting again, and the activity log says in words which groups were added and which were removed rather than listing ids.
  • The browser phone turns the microphone on only during a call or a microphone test.
  • The nightly phone-system self-check tests the host you name. The setting pbx.trace_selftest_host names the one host it may test; until you name one the check says so instead of picking for you, and if the name no longer matches a host it turns red and tells you the name it was given rather than quietly testing a different machine.
  • Maintenance sweeps. A sweep never runs just because a process started, and a failed sweep is retried instead of being counted as done. See Maintenance & Conformance.

Fixed

  • Help pages: a bullet that wraps onto a second line stays one bullet, so lists no longer break in two.
  • Template drift reports show their numbers again ("2 changed · 0 removed · 1 added · 7 unchanged"). See Templates.
  • Billing shows periods as the days they cover, in your space's time zone, and a period that has ended says so on the Usage tab. See Billing & Plans.
  • The manager override box asks for the manager's username, the one thing it can look up. See Adding & Editing Records.
  • Excluding really excludes. "Group is none of Archived" leaves out everyone in Archived even when they are in other groups too, and the same holds for roles, phones, emails, group names and linked contacts. The contacts Name filter offers "does not equal", the group picker empties after each pick, and each "Relative to today" box in a date "between" stays beside its own date. See Filtering & Searching.
  • Reordering widgets in the Page Designer at a layer that already has its own copy of a widget moves that copy instead of adding a second, so widgets no longer move or come back on their own.
  • Saving a view in the view designer keeps the columns the widget builder hid.
  • The Goal widget's editor shows the goal's name on first open, forms built on the standard contact and note layouts show their fields, and a group filter no longer offers "is empty", which could never match.
  • The notification list opens inside the window.
  • Adding a space whose first contact already has a login no longer fails: that person is invited as the new space's admin and joins with the login they already have. A refusal that is not an edit clash now shows its own words instead of "This record changed since you loaded it".
  • A field whose name is an SQL word (with, order, user, select, group …) saves, filters and sorts like any other.
  • Extension table rows: saved dates show again when you reopen the rows in edit mode, a date and time shows and saves in your space's time zone, and a dropdown is wide enough to read.
  • Phone system → Time conditions: the Linked calendar picker shows for anyone who can see schedules and no longer shows, with an error, to people who cannot.
  • An import that reports done is done: the run page opened from its notification no longer shows it still running.
  • A web address with a broken % escape gets a plain "not valid" answer instead of a server error.
  • One person's setting can no longer stop a housekeeping job for everyone. A "how many days" value the job cannot use is skipped for that person, and the next level up applies.
  • A global contact can be edited from the space that owns it by somebody holding the global-write permission. The form used to show it as read-only to everybody — including the people the server was happy to let write.

Version 0.1.0 — 2026-07-07

The first release of the v2 platform.

Added

  • Spaces — team workspaces with their own data, permission ceilings, and settings; a space switcher with a personal default.
  • Contacts and records — the contact workbench with notes, activity history, sharing, and a full editing model including the edit cart and conflict resolution.
  • Lists — sortable, filterable tables with saved views (personal and space-wide), column management, shareable page URLs, and CSV/JSON export.
  • Advanced filtering — a visual AND/OR filter builder plus an expression language for power users.
  • Roles & extension fields — extend records with field groups and child tables, per role, with no programming.
  • Record linking — typed relations between records with link slots and constraints.
  • Templates — apply record templates, see drift against the template, and extract a template from an existing record.
  • Dashboard — a widget grid with personal and space layouts.
  • Importing & exporting — a guided, resumable import wizard (CSV, spreadsheets, contact files, JSON, API pulls) with auto-suggested mapping, match-key upsert review, by-name link resolution, and background runs.
  • Automations — the visual workflow builder, run history with step traces, safe test-mode runs with a full "would have done" report, and automatic failure notifications.
  • Notifications — a real-time inbox with per-type channel preferences.
  • Integrations — the connector catalog with OAuth and API-key connections, health checks, and loop-safe two-way sync.
  • Billing & plans — metered usage, three plan types (fixed, hybrid, pay-as-you-go), a free starter plan, usage and invoice views.
  • Permissions — group-based permissions with space ceilings, deny precedence, and the Permission Tester.
  • Settings cascade — one global → space → user model for every tunable, with layer badges and per-layer reset.
  • In-app documentation — this help center: searchable topics, screenshots from a demo workspace, and per-release page versioning.

Improved

  • First release — the baseline. Future releases list refinements here.

Fixed

  • First release — nothing to fix yet. Future releases list corrections here.