Roadmap

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

8

In 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

    Beta

    Twelve 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

    Beta

    An 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

    Beta

    Every 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

    Beta

    Six 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

    Beta

    Website 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

    Beta

    Stripe 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

    Beta

    A 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

    Beta

    A 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

8

Real code that a customer cannot reach yet.

  • Invoices with seller, buyer and VAT

    Works internally

    An 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 internally

    A 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 internally

    Campaigns 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 internally

    Each 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 internally

    Daily 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 internally

    Partners 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 internally

    Outbound 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 internally

    After 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

1

Decided and not started. Several are waiting on an account or a credential rather than on engineering time.

  • SSO and SCIM

    Concept

    Neither 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.