Now, next, and later
No dates. A date on a public roadmap is a promise made by somebody who does not yet know what the work is, and the only thing it reliably produces is a customer who was told March.
This is not a list kept beside the product — it is the capability ledger, sorted. A thing moves columns when the code moves, which is why it cannot quietly fall behind. The 25 capabilities already at production level are not here; they are on the trust centre, with the evidence.
Now
8In the product and being used. What is left is the proof that takes it to production standard, and the gaps each one names.
Step library
BetaTwelve kinds run today: qualify, record, answer, offer, reply, task, approval, quote, quote.send, invoice, invoice.send and connector. The offer step now books against a real diary — opening hours per weekday in the tenant's own timezone, every taken slot blocking, and the database refusing a double booking.
Next: No step writes to an outside system, because no adapter exists yet — an appointment lands in this calendar, not in Google Calendar, which needs an OAuth client
Authoritative pricing
BetaAn organisation enters its own prices, and an agent may say which catalogue entry an enquiry is about and how many — never what it costs. The resolver loads the amount itself and refuses an unknown item, an archived one, another tenant's, an unstated quantity or two currencies in one quote.
Next: No customer has priced a real enquiry with it yet
The quote a customer can inspect
BetaEvery quote the workspace has produced, openable, with the catalogue entry behind every figure and the figures as they were sent — unchanged when the price book moves afterwards.
Next: prove-quote-ui has never run against production. It creates a workspace and a quote, so running it there would put synthetic commercial records in a customer database — the level-4 criterion this file states, unmet on purpose until a production-safe test organisation exists or a customer relies on it
Why did that happen
BetaSix questions a business owner actually asks, each answered by a query and rendered beside the clause saying which rows it came from. No model: a model given tools produces answers that read well and will one day say a mailbox is connected because the phrasing made that the likely next sentence.
Next: Six questions, and it says so. The ninety-fourth question a customer asks gets 'I cannot answer that, here is where to look', which is honest and is not an answer
Channel adapters
BetaWebsite chat carries a real conversation: a visitor asks, an agent answers from the customer's knowledge base, and a question it cannot ground opens a handover for a person. Email arrives by forwarding: each workspace gets a private address, a mail provider posts what reaches it to a signed endpoint, and the message runs the same chain — on an installation with a receiving mail domain, and not otherwise. Voice, SMS, WhatsApp and Instagram listen to nothing — messages reach those through the signed endpoint, through a custom connection, or not at all.
Next: Voice, WhatsApp, Instagram and SMS: every adapter
Waiting on: A WhatsApp Business account and Meta app review; A telephony account and a number; OAuth clients for Google and Microsoft; For email: a mail provider with inbound parsing, an MX record for in.<domain>, and SYSTENI_INBOUND_MAIL_DOMAIN and SYSTENI_INBOUND_MAIL_SECRET on the host
Subscriptions and checkout
BetaStripe and PayPal: checkout, webhooks, signature verification, plan changes and access rules are written and tested. No keys are installed, so nobody can pay.
Next: Not switched on
Waiting on: The sixteen values in deploy/README.md, which need the company licence first
Before, after, and permission to say so
BetaA workspace states what things were like before, once, and cannot restate it later. Beside it sit counts of what happened since — records anybody can open, never an estimate, and never one subtracted from the other. Consent is separate, granted at a scope by the owner, and withdrawal outranks it.
Next: No customer has stated a baseline. Everything here is exercised by tests and by nobody's business
Academy and certification
BetaA curriculum a person can complete without being taught by someone: seven modules, lessons, practice questions, objection drills and industry playbooks in English and German, progress kept on their account, and an exam marked on the server that issues a certificate anybody can check by its link.
Next: Not run against production. The database suite runs in CI; no proof script has sat the exam on the deployed build
Next
8Real code that a customer cannot reach yet.
Invoices with seller, buyer and VAT
Works internallyAn invoice issued from a quote carries the seller and buyer with full addresses, the seller's tax number or VAT ID, the invoice and supply dates, a gapless number, quantity, description and rate per line, and net and VAT per rate — or the small-business or reverse-charge note — as an A4 PDF in German or English and as UBL XML in the XRechnung 3.0 structure. Issued invoices are never edited; a correction is a cancellation invoice. Which VAT treatment applies is the customer's decision with their tax advisor.
Next: The XML has not been run through the official KoSIT validator. The rules checked locally are sums, breakdown, dates and escaping; the German CIUS rules on the seller contact (BR-DE-5 to -7) are only met when the optional phone and email are filled in
CRM and calendar adapters
Works internallyA workflow step can call any HTTP API with the customer's own credential — HubSpot, Pipedrive, a calendar, anything with an address. What does not exist is a branded adapter: no OAuth, no field mapping, no health check. The customer supplies the endpoint and the key, and the console shows what every call returned.
Next: OAuth flows, token refresh, field mapping, conflict handling, disconnect, health checks
Waiting on: A developer account and an OAuth client per vendor, for the branded version
Deals and campaigns
Works internallyCampaigns reach only contacts who agreed, never anybody who unsubscribed, and never the same person twice. A deal opens when a quote is sent to a customer, exactly once, carrying the quote's own figure and currency; a person decides how it ended, through one boundary, and the screen can prove the chain from the records written at the time. Not yet driven end to end by a customer's enquiry.
Next: No customer enquiry has driven this. The proof starts at the quote step with the resolver's output; the model choosing which catalogue item an enquiry means is the untested half
The public site in search
Works internallyEach translated public page has an address per language — /pricing in English, /de/pricing in German — with a canonical address and hreflang alternates in its head, a sitemap generated from the page list, and a robots.txt checked against the route tree.
Next: Not deployed. No search engine has fetched a German address, and Search Console has not been asked whether it accepts the alternates
Site measurement without identifying anyone
Works internallyDaily totals for the public site, counted on our own server: page loads by page and language, referring sites by name, campaign tags, and enquiries, sign-ups, checkouts and activated subscriptions where each happens — shown to platform operators with the funnel as ratios of totals. No cookie, no stored address or browser string, no third-party script.
Next: No unique visitors, by design, and no attribution per person: nothing counted can tell one visitor from another, so the funnel's rates divide totals and are not shares of people. That will not change without identifying visitors, which this was built not to do
Partner programme
Works internallyPartners apply against a versioned agreement and are approved by a platform admin; an approved partner's link attributes a new workspace once, at creation. Commission is written to an append-only ledger when a subscription payment clears and reversed on refund or chargeback, stated monthly, and paid out by hand on request.
Next: No live payment has reached the ledger: the Stripe keys are not installed, so every figure has come from a signed fixture
Waiting on: Live Stripe keys, to see a real payment reach the ledger
Public API and outbound webhooks
Works internallyOutbound webhooks work: five events, an HMAC signature over timestamp and body, six attempts on a widening schedule, and every delivery visible with what came back. There is still no public REST API — the internal server functions are not a product surface and are not documented as one.
Next: Key issuance, scopes, versioning, rate limits per key, an event catalogue, signatures
Two-factor authentication
Works internallyAfter the password, a six-digit code from an authenticator app (TOTP), with ten single-use recovery codes; an owner can require it for everyone in a workspace.
Next: Not yet deployed, and not proved against production
Later
1Decided and not started. Several are waiting on an account or a credential rather than on engineering time.
SSO and SCIM
ConceptNeither exists. Access is email and password with server-side roles, optionally with an authenticator-app code.
Next: SAML single sign-on and SCIM provisioning
Waiting on: An identity provider to test against
What is not on this page
Two kinds of thing, and the omissions are deliberate.
Anything already proved
25 capabilities are at production level, which means a named script has been run against production rather than that tests exist. They belong on the trust centre next to that evidence, not on a page about what is coming.
Anything nobody has decided
A roadmap that lists ideas is a wish list, and a wish list published as a roadmap is how a customer ends up planning around something that was never going to be built. Every line here corresponds to code or to a decision already recorded.
Need something that is in “later”?
Order changes when a customer needs it to. Tell us which line matters and we will say honestly what it would take rather than where it sits in a queue.