Capabilities
Every record arrives with history, metrics, permissions, and an API.
You define the shape. The surrounding system is already there, and it applies to every template you create, so a schema written this afternoon is production-grade on the first write. Here is the full set, 38 capabilities in six groups.
Model
Define structure as data, and change it whenever the work changes.
Dynamic typed schemas
Four attribute kinds — Dimension for current state, Metric for a time series, List for a controlled option set, Reference for a link to another record — across eight storage types: string, number, boolean, datetime, date, file, image, and markdown.
Templates and layout groups
Compose attributes into templates, set per-template default values, and arrange fields into the visual groups your team sees on the entity form.
References between records
Point one template at another, choose the attribute that labels the target, and navigate the relationship from either side.
Runtime schema changes
Attributes and templates are created and altered through the same API that creates records. No migration, no deploy, no downtime for a new field.
Blueprint marketplace
Install a packaged set of templates, attributes, and sample records in one call, then customise it. Publish your own schemas back to the catalog with searchable keywords.
Whole-schema introspection
One endpoint returns every attribute, template, list option, and reference configuration for a project, which is what lets an agent read the model before it writes to it.
Business rules
When/then constraints enforced synchronously on every write — the entity form, the API, CSV import, and MCP — so a record can never reach a state the template disallows.
Read the detail pageOperate
The daily surface your team works in.
Workspaces and multi-pane layouts
Group related views into a workspace and lay them out as a single pane, a vertical or horizontal split, or a quad. Duplicate a workspace, reorder its panes, and mark one as the default.
Saved views
Each pane binds to a template with its own filters, sort order, visible columns, and table or grid presentation, so a lens you build once stays where you left it.
Search that scales with the schema
Structured filters across dynamic attributes with eight operators, full-text search over string fields, and semantic similarity search for the cases where the exact wording is unknown.
File attachments
Attach images, PDFs, spreadsheets, and structured data to records, with generated thumbnails for image types. Chat attachments expire on a configurable window; record attachments are permanent.
CSV import and export
Bulk import with upsert semantics, so rows carrying a known id update in place and rows without one create records. Export any template back out as structured CSV.
Live updates
Changes made by a teammate, an automation, or an agent land in every open session without a refresh, scoped strictly to the project you are in. A form you have started editing is left alone while background updates arrive.
Named actions
A precondition, the fields it asks for, and the values it sets silently, bundled into one guided operation — a status transition is nothing more than an action.
Read the detail pageObserve
Current state, the trail behind it, and the evidence for both.
Native time-series metrics
Metric attributes accept batched high-frequency observations and keep their own series on the record, with retention handled for you.
Per-entity charts
Aggregate any metric with avg, sum, min, max, count, first, or last, over buckets from one second to one month, on the record that produced the readings.
Dashboards
Assemble stat counters, time-series charts, threshold gauges, group-by rollups, and filtered entity tables on a grid canvas, each block resolving against live data.
Immutable audit history
Every dimension, list, and reference change is appended with the previous value, the new value, the author, and the timestamp. Filter by attribute, date window, author, or value.
Read the detail pageAutomation execution logs
Each rule keeps its own run history: the triggering record, start and finish times, per-action dispatch outcomes, and the error text when something fails.
Usage insights
Current consumption against your tier limits for records, attributes, dashboards, automations, monthly metric ingestion, storage, and AI credits.
Act
Turn a meaningful change into something that reaches a person.
Event-driven automations
A rule fires on record creation, a record update, or a change to one specific attribute. Conditions are evaluated against the record, and every condition must pass before any action runs.
Read the detail pageMetric observations count as events
Ingested telemetry is evaluated by the same rule engine as a manual edit, so a reading that crosses a threshold reaches a channel without a polling job in between.
Enable and disable in place
Switch a rule off while you investigate something and back on afterwards. Its conditions, actions, and run history survive the round trip.
Notification channels
Telegram bots, HTTP webhooks with custom headers and bearer or basic authentication, and mobile push. A webhook covers anything with an inbound URL, Slack included.
Rich Markdown notifications
Compose alerts with headings, lists, and emphasis, then drop in live values from the record that fired the rule by attribute slug. List options and references arrive as their display labels.
Preview, then test
Watch the message render as you compose it, then send a real test through the channel to confirm the credentials, the formatting, and the destination before the rule is enabled.
Govern
Who can reach what, on every path into the data.
Role-based access control
Build roles from a published permission catalog and assign them per project. Owner, admin, editor, and viewer cover the common shapes.
Read the detail pageRow-level entity scopes
Constrain what a role can see by attribute comparison, so a contractor role reaches the sites assigned to it and nothing else.
Resource restrictions
Set deny, view, edit, or full access against an individual template or attribute when a role needs an exception.
Session control
Every login is recorded with its client, address, issue time, and expiry, and any active session can be revoked.
Project isolation
Records, schemas, files, and events stay inside the project they belong to, on the API, in real-time delivery, and in an agent session alike.
Flat team pricing
Capacity is priced on the data, so collaborators cost nothing per seat and inviting the rest of the team changes no line on the invoice.
Build on it
Every surface a machine reaches Omnismith through.
Model Context Protocol server
A curated tool catalog covering schema design, records, telemetry, search, dashboards, and automations, with workspace schemas exposed as readable resources.
OAuth 2.1 authorization
Dynamic client registration, PKCE, and a browser consent screen where you pick the single project a client may reach. No keys pasted into config files.
Built-in AI assistant
Attach a spreadsheet, a diagram, a PDF, or a screenshot and have the assistant scaffold matching templates from it or extract records against the rules your schema already defines, inside the same permissions and audit trail as everything else.
REST API and access tokens
Programmatic tokens read and write the same templates and entities as the UI. Attributes can be addressed by slug, so payloads survive an id change.
OpenAPI specification
Every endpoint is described with parameters, schemas, and examples, which is what the tool catalog and the generated clients are built from.
BI connector endpoints
A normalized schema catalog plus flattened row and time-series endpoints, shaped for PowerBI, Tableau, Looker Studio, Metabase, and ETL pipelines.
How this got built
Each capability above arrived with a write-up of the engineering behind it.
The series covers the decisions, the trade-offs, and the payloads behind each one, newest first.