Marvin reads and writes through NIZU's own modules, in-process, with the caller's identity already established by the session. It never calls NIZU over an external API, and it never keeps a second copy of your data.
Marvin answers questions about invoices and credit notes (totals, status, due dates) by fetching them live, scoped to the person asking — a client only ever sees their own. With the right permission it can also create a document from the conversation: an invoice, credit note, order, estimate or proposal, with the workspace's own numbering and tax settings applied by the normal invoicing code.
Marvin reports on project progress, files and comments, and can create a project, add tasks, and add, rename or remove milestones. You can pin one project as the one you are “working in”, so later instructions apply to it without naming it again. Every write goes through the existing project models, so members, permissions and activity logs behave exactly as if you had used the UI.
Marvin uses NIZU's existing access model to decide what each user may see. Clients and leads reach Marvin through the portal; staff reach it in the main app. Marvin can list clients and leads with filters such as dormant or active, search them, and create a new client or lead from the conversation.
With admin permission, Marvin can create a team member. New users are created without a password, invite-style, and never as administrators.
Marvin answers questions about tickets and their replies. A website chat can be converted into a real support ticket in one click, carrying the visitor's name, email, the page trail and the full transcript into the ticket's first comment; if the email matches an existing client contact, the ticket is attached to that client.
Expenses are answerable like any other record, and Marvin produces income, expense, invoice and project reports. Marvin never does the arithmetic itself: NIZU computes the totals and Marvin only narrates them, so the numbers always match the reports module.
Conversations with Marvin are stored as normal message threads. Marvin is modelled as an ordinary user, so each person keeps their own history and administrators can review exchanges through the existing messaging system. Marvin also adds a Guests tab to the messenger, where the website-widget conversations live next to your internal chats.
Your published help articles can be used as knowledge for the public website widget, so the answers visitors get stay in step with your documentation without being written twice.
Provider configuration (engine, keys, models, environment), the Telegram bot, the voice engine and the whole website widget are stored as per-workspace settings and managed under Settings → Marvin.
Marvin's record registry is open to other plugins through the
app_filter_marvin_entities hook. A plugin registers the record type it owns,
plus how to authorize and fetch it, and Marvin can immediately answer questions about it
— using the same authorize-then-fetch pattern as the built-in modules. Nothing about
the language model changes.