ZIJ
Super AdminAccount
Administrator
Super AdminTenants
Create and manage workspaces. Suspend, resume, force sign-out, or sign in as a tenant's user for support.
No tenants yet.
Create a workspace above to provision an isolated tenant.
| Name | Slug | Status | Plan | Subscription | Users | Created | Actions |
|---|
Platform billing
Cross-tenant commercial operations. Assign plans per workspace on Tenants.
Billing is not enabled on this deployment.
Plans & trials
Configure subscription tiers, feature bundles, limits, and free-trial defaults.
Billing is not enabled on this deployment.
Platform policy
Enable commercial billing and configure the provider and marketing defaults.
Days before the end date at which the in-app banner and email warnings begin.
Applies to manually-assigned plans. During grace the workspace is read-only; after grace it is fully suspended. 0 = suspend on the first daily check after the end date. Stripe/Moyasar plans renew automatically.
Trials warn on their own window — the paid default is usually longer than a whole trial.
A trial that ends without a purchase has no renewal in flight, so this defaults to 0 — access stops on the trial end date.
Comma-separated. The sales contact email above is always included.
Free trial defaults
Applied when a workspace is set to Trialing without explicit dates.
Plan catalog
Set features and limits for each plan. Changes apply to the active catalog version.
| Setting | Enabled / value |
|---|
Platform Security
CORS allowed origins, CSRF protection, and HTTP security headers for the whole deployment.
Origin changes apply immediately. Toggle changes apply on the next request.
Comma- or newline-separated. Include scheme and port, e.g. https://app.example.com.
Protections
Advanced. Leave empty to use the built-in SPA policy — a malformed value can break the app UI.
Web Search Providers
Providers, priority, and API keys for the web_search tool. These apply to the whole deployment, not to a single workspace.
Providers are tried top to bottom. The next one is used only when a provider errors (rate limit, quota, timeout, outage). A search that returns zero results stops the chain — a second provider would spend quota to report the same nothing.
Active chain
—
Providers
Results & cache
Workspace isolation
Prove on this deployment that no workspace can open another's dashboards or saved analytics, and give a home to data written before every row named its workspace.
What each workspace can open
Reads only. Lists every dashboard and saved analytic each workspace can open, and flags anything two workspaces can both open.
Findings
Technical report
End-to-end check
Creates a test dashboard in the first workspace and a temporary account with the same username in both, then opens dashboards as each through the real sign-in path. Everything it creates is removed afterwards.
Technical report
Stranded rows
Data written before every row named its workspace, that no record placed on its own. No workspace can open it until you choose one. Nothing is deleted.
Technical report
Social Developer Apps
ZIJ's own developer-app credentials per social platform. Every workspace's connections authorize through these — one deployment, one identity.
Client secrets are stored encrypted and never shown again. A platform cannot be enabled until both credential halves are configured — a guaranteed-failing consent screen helps nobody.
Platforms
Branding
How ZIJ, this deployment, and each workspace share the interface. Resolution runs top to bottom: a workspace's own brand wins over the house default, and neither can remove ZIJ's product identity.
ZIJ product identity
Not editableThe product name and the lockup shown beside every workspace's branding. It is not a setting: no API writes it, and a workspace admin has no field for it. Tenant branding personalizes ZIJ; it does not erase ZIJ.
House default
Workspaces may overrideWhat a workspace inherits until it sets its own. Leave a field empty to fall back to ZIJ's built-in value.
White-label override (OEM)
Platform onlyFor a reseller contract that requires ZIJ's own identity to be absent. This is the only control that suppresses the ZIJ lockup, it applies to the whole deployment, and it is never exposed to workspace admins. Every change is written to the audit trail.
Workspace branding
Set by each workspaceEach workspace sets its own palette, logo, fonts and document footer under Appearance → Brand Identity. Nothing here changes a workspace that has already chosen its own.
Super Admins
Platform superadmins can manage every workspace. Grant this only to trusted operators.
Add a super admin
Create a brand-new platform operator account.
Promote an existing account
Grant super admin to a current workspace user.
Current super admins
Operations Dashboard
Central visibility for system health, user activity, and governance alerts.
Governance Panel Alerts
Stale connectors, quota issues, and other governance signals.
No alerts found. System healthy.
Governance issues such as disabled MCP connectors will show up here.
| Time (UTC) | Alert Type | Severity | Message |
|---|
Setup checklist
What the assistant needs in order to work, plus what we recommend setting up next. Every item is checked live — nothing here is remembered, so a setting that stops working shows up again.
Users Management
Manage accounts, roles, company access, and token limits.
No users found.
Add a user or import from ERP to get started.
No users found.
User Usage Tracking
Per-user Personal Assistant queries and token usage.
No usage data.
Usage appears after users chat with the Personal Assistant.
| User | Queries | Tokens | Lifetime / Limit |
|---|
Billing & plan
Workspace subscription, usage meters, and upgrade options.
—
—Usage this period
Included features
Audit Log
Permission, domain, company, account, and password changes (newest first).
No audit entries yet.
Admin changes to users, permissions, and accounts are recorded here.
| Time (UTC) | Actor | Action | Target | Details |
|---|
Knowledge Base
Add trusted documentation so the assistant can answer policy and process questions with reliable references.
Use it for: system user guides, finance and admin policies, SOPs, and other business knowledge not stored in ERP.
Example questions: "How do I generate a sales report?" or "Am I allowed to approve this request?"
Upload & Index Document
Tip: use clear document titles and tags to improve retrieval quality.
Indexed Documents
Review what is searchable by the assistant.
No documents yet
Upload policies, SOPs, or user guides so the assistant can cite them when users ask process or policy questions.
Observability Metrics
Monitor request volume, response speed, token usage, and recent failures.
Recent Errors
Latest failed requests from the last 7 days.
No recent errors.
When requests fail, they appear here with status and latency.
| Time (UTC) | Request ID | Endpoint | Status Code | Latency (ms) |
|---|
Workspace identity
Applies to everyone in this workspace, on every device. Requires admin.
My preferences
Stored in this browser only — nobody else in the workspace sees these. They layer on top of the workspace brand.
Appearance
Choose the color scheme for the interface.
Theme
Language
Set the display language for the interface.
Theme Customization
Layers on top of the workspace brand and applies immediately.
Code Highlight Theme
Select the syntax highlight palette used in chat markdown and artifact source previews.
const person = { name: "Alice", age: 30 };
type PersonType = typeof person; // { name: string; age: number }
type Animal = { name: string };
const dog = { name: "Buddy", breed: "Golden Retriever" } satisfies Animal;
Social Publishing
Company social accounts as governed publishing destinations: who connects them, who may create for them, who approves, who publishes.
Organization
Reporting lines, teams and delegated authority. Only the approved organization drives approval routing.
Set up your organization
Approval requests follow this structure. Until someone is placed here, requests fall back to the workspace administrators.
- Add people — with or without a sign-in account.
- Say who reports to whom.
- Optionally connect a source to keep it current.
My position
Review queue
Imported changes wait here. Nothing reaches the organization until you approve it.
People
A person exists here whether or not they have a sign-in account.
Departments and teams
Optional. A unit groups people for visibility and reporting; approval routing follows the manager, not the unit.
Applies to everyone holding Organization (read). Administrators always see everything. Someone with no unit falls back to their own chain.
Acting managers
A grant lends someone else's authority for a bounded period. The chart is never edited for a holiday, so the reporting line and its history stay true.
Data sources
Optional. The organization works with no source configured — an administrator can maintain it by hand, and a source never overwrites an administrator.
Import from a spreadsheet
The file is checked first and nothing is applied until you approve it. People missing from the file are left alone, not archived.
Import history
Every import, what it proposed, and how to undo it. A run is the unit of approval and of undo.
Person
Leave this empty to leave the position vacant — approvals then escalate to the next manager above until someone is named.
Approve with changes
Department or team
Leave empty to leave them without a unit. Units inside this one move up to sit where it sat.
Grant authority
Models
Manage which AI models are available across the platform.
Add a model
Choose a curated model from the catalog or register a custom endpoint.
- OpenAI
- Anthropic
- Gemini
- OpenRouter
- DeepSeek
- Kimi
- Private LLM
- Ollama
Configured Models
Edit, enable/disable, or remove models registered in this workspace.
No models configured yet
Add one from the catalog or register a custom endpoint.
| Label | Provider | Model ID | Source | Tier | Max Tokens | Context Window | Recommended | Actions | Enabled |
|---|
AI Fallback
Automatic premium→free model fallback: provider health, routing policy, and switch history.
Provider health
Fallback policy
Fallback history
| When | User | Switch | Reason | Took | Provider error |
|---|
Workflows
All durable workflow instances in this workspace: monitor, cancel stuck runs, and trigger recovery.
Workspace health
Instance counts by status. Click a tile to filter the list below.
Instances
| Workflow | Owner | Status | Step | Updated | Detail | Actions |
|---|
Schedules
Cron triggers that start a workflow unattended. A fired run belongs to the schedule's owner, so it passes the same approval and permission gates as their manual start.
| Workflow | Owner | Schedule | Next run | Last run | Actions |
|---|
Runs from this schedule
| Instance | Status | Step | Started | Detail |
|---|
Triggers
Webhooks and in-app events that start a run without a person. Each row shows whose identity it runs as and what the last delivery did — which is the answer to "the webhook does nothing".
Definitions
Registered workflows, their live run counts, and who they are shared with. Open one to see its step graph.
Your workflows
Workflows authored in this workspace. A draft is yours to edit; publishing mints a version, and runs already in flight keep the version they started on.
Workflow editor
Inputs
Steps
Step graph
Published versions
Canvas
The same flow as the Steps view — edits here save through the same draft.Translations
Dry run
Step graph
Signatures and sending rules for mail the assistant sends from a connected mailbox. Mail people send from Outlook themselves is untouched.
My signature
Filled in from Microsoft 365 when you connected your mailbox. Correct anything that is wrong — a reconnect will not overwrite what you change here.
Signatures are switched off for this workspace, so nothing is appended yet. You can still fill this in.
No mailbox connected
A signature is only added to mail the assistant sends for you, so it needs a connected mailbox. You can still fill these in now.
Connect OutlookSignature template
One template for everyone. Values come from each sender, so nobody has to write their own.
Check this first: do you run a signature manager?
Exclaimer, CodeTwo and similar tools stamp a signature onto outbound mail at the mail server — including mail sent through Microsoft Graph, which is how the assistant sends. If your organization runs one, leave this off: recipients would get two signatures. Ask whoever administers Exchange before switching it on.
Sending rules
Who the assistant may email on somebody's behalf, and what the record keeps. These apply to assistant sends only — they are not a replacement for mail-transport DLP.
Integrations
Connect your ERP or business system to power AI responses with live data.
No integrations yet
Before chat can answer questions about orders, inventory, or customers, connect your ERP data source. Add an integration to enable ERP mode with live answers.
One-time setup · takes a few minutes
Add integration
ERP (on-prem)
SQL database, OData sign-in, and schema cache for your NST deployment.
Connectivity
How ZIJ reaches this ERP. Use the on-premises agent when your database does not accept connections from the internet.
-
1
Download the installer onto your database server
Verify the download before running it — the SHA-256 above must match
Get-FileHashon your server.No installer has been published on this deployment yet. If you host ZIJ yourself, publish an agent build into the server's agent-distribution directory; otherwise contact your ZIJ administrator.
This is an unsigned pre-release build. Windows will warn when you run it, and agents will not install it automatically.
-
2
Run it on the server
The installer asks for your workspace URL, your SQL Server details and the pairing code below, then installs and starts the service. Use a read-only SQL login.
On the server, run: python -m agent configure — use a read-only SQL login.
-
3
Pair it with this workspace
Generate a code above and enter it when the installer asks. It works once and expires in 15 minutes.
Enter this code on the server during installation. It can be used once and expires in 15 minutes.
On the server, run: python -m agent pair --code <code>
Installations
| Machine | State | Version | Last seen | Actions |
|---|
Collected on your server from an allow-list. Query text is excluded unless you enable it in agent.toml.
With the agent selected, the database fields below are configured on your server instead — ZIJ never stores those credentials.
Schema Cache
Clear cached schema for a specific company when table structures change.
Connection details
Agent Builder
Create named AI assistants with custom prompts, model overrides, and data restrictions.
Automatic routing Let the assistant pick the right agent for each question, and measure how well it would do here.
Auto stays opt-in for each person: it adds the option, it does not preselect it. An unclear question still runs with no agent.
By language
| Segment | Turns | Coverage | Labelled | Agreement |
|---|
By question breadth
| Segment | Turns | Coverage | Labelled | Agreement |
|---|
Per agent
| Agent | Routed | Share |
|---|
Nothing collected yet. Ask a question in a connector chat in this workspace, then refresh.
New Agent
Define prompts, model, domains, skills, and KB scope for this assistant.
Prepended to the standard ERP prompt. Leave mode-specific ERP SQL rules intact.
Optional: force a specific model for this agent.
Unchecked = no restriction (all domains).
Pick which skills (built-in tools, MCP connectors, custom HTTP tools) this agent can use. Leave all unchecked to inherit the caller's role-level access.
Comma-separated tags. KB retrieval restricts to documents whose tags match any of these. Leave empty to allow all KB docs.
Available to install
Ready-made agents for your connected system. Installing adds them to your agents, disabled — you choose what to switch on.
Your agents
No agents yet. Click "+ New Agent" to create one.
Specialized agents can restrict data domains, override the LLM, and scope knowledge-base retrieval.
Scheduled Reports
Automate recurring ERP queries and deliver results via email or webhook.
New Report
Set what to run, when to run, and where to deliver.
Standard 5-field cron: min hour day month weekday
Enabled reports run automatically on their schedule.
Dry-run preview
Query executed; nothing was delivered.
No reports yet. Click "+ New Report" to create one.
Schedule BI queries to run automatically and deliver results by email or webhook.
Run History
Skill Store
Browse every skill the platform exposes — built-in tools, MCP connectors, and custom HTTP tools — and configure per-agent access.
No skills match the current filter.
Tools
Browse all tools available to the AI — built-in, MCP, and custom HTTP.
New Custom Tool
Register an HTTP endpoint the AI can call with typed parameters and optional auth.
No tools match the current filter.
Use "+ New Tool" to add a custom HTTP endpoint, or open MCP Connectors to manage integrations.
MCP Connectors
Connect external MCP servers to expose their tools to the AI.
New MCP Connector
Point the agent at an MCP server endpoint and control who can use its tools.
No MCP connectors yet. Click "+ New Connector" to add one.
Add SSE or HTTP endpoints, or use built-in system connectors like Outlook, Telegram and Slack.
Channels
Link Telegram, Teams, Slack or WhatsApp so you can chat with the assistant from those platforms.
Inbound bot webhooks for Telegram, WhatsApp, Teams, and Slack. Users link their account once via /bind, then chat with the assistant from the platform.
Linked accounts
No channels linked yet.
Link Telegram
- Open Telegram and message your organization's bot.
- Send
/bind— the bot replies with a 6-character code. - Paste the code below and click Link.
Telegram
Telegram bot
unknown
Telegram bot
Talk to @BotFather on Telegram to create a bot, then paste the token and a strong webhook secret below. Telegram requires HTTPS for webhooks — use a tunnel (cloudflared / ngrok) in development.
-
1
Bot token —
-
2
Webhook secret —
-
3
Webhook URL —
Bot credentials
Stored encrypted in the secret store. Leave blank to keep the existing value.
Echoed by Telegram
in X-Telegram-Bot-Api-Secret-Token. Anything random and ≥32 chars is fine.
Webhook
Telegram POSTs every message to this URL. Must be reachable over HTTPS.
Default:
Microsoft Teams
Microsoft Teams bot
unknown
Microsoft Teams bot
Register an Azure Bot, enable its Microsoft Teams channel, and point the messaging endpoint at
/api/channels/teams/webhook. Paste the bot's app id and client secret below. Teams
senders auto-link to users who connected Microsoft in their Outlook settings.
Default messaging endpoint:
Bot credentials
Microsoft App (client) id of the Azure Bot registration. Leave blank to keep the existing value.
Stored encrypted. Leave blank to keep the existing value.
Usually
botframework.com for a multi-tenant bot.
Slack
Slack app
unknown
Slack app
Create the app at api.slack.com/apps using “From an app manifest” — download the manifest below and paste it, so the scopes, events, request URLs and the /esa command are set for you. Then install it to your workspace and paste its bot token and signing secret here.
-
1
Bot token —
-
2
Signing secret —
-
3
Workspace —
App credentials
From OAuth & Permissions after installing the app. Stored encrypted — leave blank to keep the existing value.
From Basic Information. Slack signs every request with it; without it every inbound request is rejected.
Request URLs
The manifest already contains these. Paste them by hand only if you created the app without it.
- Event Subscriptions
- Interactivity
- Slash command /esa
Channel mentions
Answers are shaped by the asker's own data permissions, and channel membership is not the same thing. Answering by DM keeps a reply from reaching people the permissions would have excluded; the channel still gets a one-line pointer. Direct messages and /esa are always private either way.
WhatsApp
WhatsApp
unknown
Pick a provider, then paste its credentials below. Twilio: point the "When a message comes in"
webhook at /api/channels/whatsapp/webhook. Meta Cloud API: point the app's WhatsApp
webhook at /api/channels/whatsapp/meta/webhook.
Default webhook (selected provider):
Bot credentials
How this workspace sends and receives WhatsApp messages. Switching providers keeps saved credentials for both.
From your Twilio console. Leave blank to keep the existing value.
Stored encrypted. Also used to verify inbound webhook signatures.
The WhatsApp-enabled Twilio number (sandbox or registered sender).
Permanent system-user access token from your Meta app. Stored encrypted.
From WhatsApp → API Setup in the Meta app dashboard (not the display number).
Used to verify inbound webhook signatures (X-Hub-Signature-256). Stored encrypted.
Must match the verify token you enter when registering the webhook in the Meta app.
Set this if you're behind a reverse proxy so signature validation uses the public URL.
Proactive templates
Proactive templates
Pre-approved templates for messages sent outside WhatsApp's 24-hour window (e.g. the morning
digest, which looks for one named morning_digest with a single body variable
{{1}}).
No templates registered.
| Name | Content SID | Lang | Description |
|---|
Microsoft 365
Outlook mailboxes
unknown
Outlook mailboxes
Connect personal mailboxes for summarize and reply. Requires an Azure app registration with Graph scopes and the redirect URI below.
Azure app credentials
Stored encrypted. Leave blank to keep the existing value.
Default:
— add this exact URL as a
"Web" redirect URI in your Azure App Registration.
Opens Microsoft login after save. Requires the outlook permission on your account.
Routing & conversation behavior
Behavior of chats over Telegram, WhatsApp, Teams and Slack.
Only runs on your Connector-mode model — messages are never sent to a third-party model for routing. When off, ambiguous messages stay in the previous mode (keyword routing still applies).
After this many idle hours a channel chat starts a fresh conversation. 0 disables.
All linked accounts
Every channel ↔ user link across the system. Revoking forces the user to /bind again on the next inbound message.
No channel bindings yet.
Users appear here after they complete /bind on Telegram, Teams, Slack, or WhatsApp.
| Channel | ERP user | Display name | Channel id | Bound at |
|---|
Auto-routing telemetry
How auto mode routed recent messages between PA and Connector. Message text is never recorded.
No routing decisions recorded yet.
Decisions appear here once users chat in auto mode (/mode auto).
| When | Channel | ERP user | Route | Decided by |
|---|
Tool Audit Log
Record of every tool execution — user, tool, duration, and outcome.
No tool calls recorded yet.
Executions appear here when the assistant invokes tools during chat.
| Time | Workspace | User | Tool | Type | Args | ms | Result |
|---|
Support tickets
Issues your users reported, and failures the platform filed about itself.
Feedback & Issue Reports
Thumbs up/down ratings and user-submitted issue reports across assistant responses.
Rating reason tags
By workspace
| Workspace | Thumbs up | Thumbs down | Satisfaction | Recent issue reports |
|---|
Reported problems
Problems users report from chat open a support ticket — with diagnostics, a status and a reply thread.
No feedback recorded yet.
Ratings appear here once users rate answers in chat.
Company profile
How we are as a company — injected into every chat for all users. Set tenant defaults, then optional overrides per ERP legal entity.
Work Profile adoption
How many users personalized the assistant. Counts only — the answers belong to the users and are managed below like any memory.
User Memories
Cross-user view of persistent memories the assistant carries into every chat turn. Filter by user or category, audit history, force-forget anything.
| User | Category | Content | Source | Created | Status |
|---|
No memories match your filters.
Try clearing filters or click a user card above to focus on one account.
Policy Simulator
Preview a user's effective permissions, data domains and company scope, and run "what-if" probes — nothing is persisted.
Choose someone in Run as above — we’ll show their effective permissions and let you run safe “what‑if” checks.
Permissions
Green = granted (role default or override). Red = denied.
Data domains
Allowed companies
Tools the user would see
What‑if probes
Run safety gates without persisting changes.
What-if: chat request
What-if: SQL validation
What-if: flip a permission
Toggle one or more permissions and see the resulting diff. Nothing is saved.
Approval decisions
Recent gated tool calls from the durable ledger. Replay re-evaluates a call under the CURRENT policy — nothing runs, nothing is persisted.
| Time | User | Tool | Status | Resolved by | Policy replay |
|---|---|---|---|---|---|
| No gated calls recorded yet. | |||||