Ask the in-app help assistant.
Last updated
What you are getting
A chat panel inside AccessFlow that answers questions about AccessFlow. Press the round question-mark button in the bottom-right corner of any screen, ask "how do I submit a query for review?", "what does break-glass actually do?" or "how do I connect Snowflake?", and the answer comes back with the documentation sections it was drawn from, linked, so you can read the long version without leaving the app or hunting through this site.
Have a question about the application? Ask the application. You do not need a support contract or a search engine to find out what AccessFlow does or how to set something up: start it locally, point it at an AI provider, and ask. Everything the assistant knows is the same documentation you are reading now — shipped inside the release you are running, so it describes the screens and settings you actually have, not the ones the newest version has.
Who it is for
- New users who have just been invited and want to know what happens after they press Submit, why a query is waiting, or what a status means — the questions a first week is made of, answered where they come up rather than in a chapter someone has to be told exists.
- Administrators setting the product up — which permission unlocks a screen, what a review-plan setting does, which environment variable turns a job off, how the connector catalog works — with the reference chapter cited so the short answer can be checked against the full one.
- Anyone evaluating AccessFlow, who can spin up the demo stack in a few minutes and interrogate the product itself instead of the marketing copy: what it supports, what it deliberately does not, and how a feature behaves at the edges.
1. Start AccessFlow
Any running install will do. If you do not have one, the zero-config demo stack runs on a laptop with nothing but Docker:
git clone https://github.com/bablsoft/accessflow.git cd accessflow docker compose up -d # open http://localhost:5173 — the in-app setup wizard creates the first admin
The first account the setup wizard creates is an administrator, which is the role the next two steps need. Everything else about getting a stack up — the production-style compose file, the Helm chart, building from source — is in Install & first run.
2. Create an AI configuration
The assistant asks a language model on your behalf, and it uses the same AI configurations as query risk analysis — there is no second provider set-up to learn. Admin section → AI configurations (under System → AI) → Add AI configuration: pick Anthropic, OpenAI, Ollama, Hugging Face or any OpenAI-compatible endpoint, give it a name, set the model and the key, and run the test prompt on the last step. Turn on AI risk analysis walks through the wizard field by field.
If you already analyze queries, you already have a configuration to bind and can skip to the next step. If you would rather nothing about your questions left your network, point the configuration at a local Ollama — the assistant works with a local model exactly as it does with a hosted one.
3. Turn the assistant on
Admin section → Help assistant (under System → AI; it
needs the AI_MANAGE permission, which administrators have). Switch on
Enable the help assistant, choose the configuration from step 2 under
AI configuration, and save.
That is the whole set-up. The launcher appears in the bottom-right corner for everyone in the organization — on your next page load, and for colleagues already signed in within a few minutes or on their next reload. Every signed-in user can ask, whatever their role, because there is nothing the assistant could show them that they could not already read on this site. While the assistant is off, the launcher is hidden for everyone and nobody is told it exists.
The rest of the page is tuning you can leave at its defaults (shown in brackets):
- Send screen and permission context (on) — tells the model which screen you are on and which permissions you hold, so "how do I get to X from here?" and "why can't I see Y?" get a useful answer. Never a URL, an id, or any data — see section 5.
- Answer from indexed documentation (on) — search the documentation for each question and cite what it found. Off is a supported mode: the assistant answers from a built-in quick reference instead and cites nothing — section 6.
- Sections per answer (6) — how many documentation excerpts each question retrieves. More is more thorough and more expensive.
- Similarity threshold (0.4) — how closely an excerpt must match the question to be used at all.
- Conversation turns kept (8) — how many previous exchanges are replayed with each new question, so a follow-up like "and in Helm?" still makes sense.
- Maximum question length (2,000 characters) — longer questions are cut at this length before they reach the model.
- Keep conversations for (days) (90) — conversations older than this are deleted by a background job.
- Questions per user per minute (6) — a per-person ceiling, so one enthusiastic user cannot spend the organization's whole AI budget.
4. Ask it something
Press the question-mark button. A panel slides in from the right without covering the page, so you can keep working — or follow the instructions it gives you — while it stays open. Type a question and press Enter (Shift+Enter adds a line). While the assistant reads, the panel says so; answers arrive whole rather than word by word.
Questions it is built to answer, in the words a real person uses:
- "My query says Pending review. Who has to approve it, and can I see who that is?"
- "What is the difference between a review plan and a routing policy?"
- "How do I give someone read-only access to one schema that expires next Friday?"
- "Which environment variable stops the app from checking for new releases?"
- "Does AccessFlow support Snowflake? What about Db2?"
Each answer ends with the documentation sections it used, shown as numbered chips. Those chips are the only links the assistant ever produces: it cites a section by number and AccessFlow itself turns the number into the link, so a link in the panel always points at this documentation and nowhere else. An answer with no chips is one the assistant gave from its built-in quick reference rather than from a retrieved section (section 6) — still an answer, just an uncited one.
The assistant replies in your interface language. The documentation itself is English-only, so when it tells you which button to press it gives the English label and says so — your interface may show a translation of it.
A conversation is yours: nobody else in the organization can read it, and it stays open as you move between screens until you start a new one with the New conversation button in the panel's header. Start a new one when you change subject — the previous exchanges are replayed with every question, and eight turns about SSO are no help when you are asking about connectors.
5. What it can and cannot see
This is the guarantee the whole feature is built around, and it is what makes a free-text AI chat acceptable inside a product whose job is to keep people away from data they should not see.
What is sent to the model
- Your question, and the recent turns of the same conversation.
- The documentation excerpts retrieved for the question.
- The name of the screen you are on — "Review queue", not its URL — if the context setting is on.
- The names of the permissions you hold, if the context setting is on.
What is never sent, and never readable
- Your queries, their results, or anything in the query editor.
- Audit log rows, review decisions, other people's requests.
- Datasource definitions, credentials, schemas, table or column names.
- User records, group memberships, anyone's email address.
The assistant has no tools. It cannot run a query, approve a review, change a setting, or fetch anything on its own — it can only read the excerpts it was handed and write an answer. That is why it is available to every user regardless of role, and why enabling it needs no authorization review of its own: nothing an answer contains is something the reader could not open on this site.
The screen-and-permission context exists so the assistant can say "you are on the review
queue, and you hold QUERY_REVIEW, so the Approve button is in the row's
expanded detail" rather than a generic paragraph. It is all-or-nothing: with
Send screen and permission context off, neither is sent — not even as an
empty heading — so an admin who switched it off can be sure nothing about the user
reaches the provider beyond the question itself.
6. Cited answers, or the quick reference
The assistant has two ways of answering, and the settings page tells you which one you are in.
With retrieval: search the documentation, cite the sections
AccessFlow ships the documentation inside each release as a few hundred pre-chunked text passages. When the assistant is enabled with Answer from indexed documentation on, the bound configuration's embedding model turns those passages into vectors and stores them in its vector store — the same knowledge-base machinery the AI configuration page offers for your own documents, kept strictly separate from them. Every question is then matched against those passages, and the best few are handed to the model with an instruction to answer only from them and to cite them by number.
For this mode the bound AI configuration needs:
- the RAG knowledge base switched on, with a vector store — the in-app pgvector store or an external Qdrant;
- an embedding provider. Anthropic publishes no embeddings API, so an Anthropic configuration needs a separate one — Voyage AI is offered in the embedding list for exactly this case, and Ollama or OpenAI work too;
- for pgvector, an embedding model whose vector width matches the one the database was
provisioned with (1536 by default;
ACCESSFLOW_RAG_PGVECTOR_DIMENSIONS).
Turning retrieval on — or enabling the assistant with it on, or changing the binding —
checks all of that before the save is accepted, and the message names the specific gap — no embedding provider, an Anthropic embedder, the
pgvector extension not installed, the vector table never created because
ACCESSFLOW_RAG_PGVECTOR_ENABLED is off, or a width mismatch — rather than a
generic "unavailable". Test retrieval runs the same probe on demand, and
reports the embedding width it detected.
Indexing runs in the background once you save; on a CPU-only local embedder it takes minutes, on a hosted one well under that. The Documentation corpus panel on the settings page shows the indexed revision, when it was last indexed, and whether the last pass succeeded. Re-index documentation forces a fresh pass — the thing to press after restoring a database backup or if the status shows an error you have since fixed. After an upgrade you do not need to press anything: the new release ships a new corpus, notices it has not been indexed for your organization, and re-indexes on start-up.
Without retrieval: the built-in quick reference
Switch Answer from indexed documentation off and no embedding provider, vector store or indexing is needed at all. The assistant answers from a compact orientation block bundled with the release — what AccessFlow is, the query lifecycle, the rules that never bend, every screen and where it is in the menu, the main buttons by their exact labels, and what the documentation covers. Answers are still correct and still grounded; they just cannot cite a section, and the panel says Quick-reference mode so nobody wonders where the chips went.
This is the mode to use when you want the assistant running in the next five minutes, when pgvector is not available on your database, or when your only AI provider is Anthropic and you would rather not add a second vendor for embeddings. It is also what the assistant falls back to on its own, without failing, if retrieval is on but the index is missing, stale after an upgrade, or reported an error — a question always gets an answer.
7. Conversations, limits and cost
Conversations are stored so a user can pick up where they left off and so a follow-up question has its context. They are private to the person who asked, and a background job deletes any conversation older than Keep conversations for — 90 days by default, settable from 1 to 3,650. Switching the assistant off does not freeze what is already stored; the sweep keeps running for as long as the organization has ever configured it.
Two rate limits apply, and both count a question before it is answered.
The organization-wide AI request limit
(ACCESSFLOW_AI_RATE_LIMIT_REQUESTS_PER_MINUTE, shared with query analysis)
comes first; then the per-person Questions per user per minute, default
6. Hitting either returns a clear "try again in a moment" in the panel rather than a
silent stall. Without the per-person limit one user holding Enter could exhaust the
organization's whole AI budget, including the share the query analyzer needs.
The tokens are real tokens. Help questions count against
ACCESSFLOW_AI_RATE_LIMIT_TOKENS_PER_MONTH alongside query analysis, so a
monthly budget sized for analysis alone is reached sooner once the assistant is popular. A
busy conversation at the defaults sends roughly 8,000 prompt tokens per turn — the replayed
history dominates — which on a hosted model in the GPT-4o price class is a few cents per
question and around $30 per thousand at September 2026 list prices — re-check your
provider's pricing before you budget on it. A short conversation costs a third of that,
and a local Ollama costs only the hardware. To spend less per turn, lower
Sections per answer, Conversation turns kept or
Maximum question length.
8. Air-gapped installs and updated documentation
The documentation ships inside the release. The assistant never fetches a page per question and never depends on this website being reachable: the whole corpus is bundled in the backend, checksummed, and read from there. An air-gapped install gets the full assistant — with retrieval, if it has a local embedding model — and answers about exactly the version it is running, because the documentation and the binary were built together.
Picking up corrected documentation between releases is opt-in, and off by
default. A typo fixed on this site after a release is not something a running
install sees unless the operator sets
ACCESSFLOW_HELP_CORPUS_REMOTE_REFRESH_ENABLED=true, in which case each backend
replica checks once, at start-up, for a newer corpus published for its
own version, verifies the pinned checksum, caches it, and re-indexes — so a correction
published next week reaches you on the next restart, not on its own. Leaving it off is a
perfectly defensible
choice — a stale typo is a smaller risk than an install describing something it does not
have. ACCESSFLOW_HELP_CORPUS_OFFLINE=true is the hard stop: with it set, no
request for a corpus ever leaves the process, whatever else is configured — the same
switch ACCESSFLOW_DRIVERS_OFFLINE provides for database drivers.
Going further
- Every setting, and the environment variables behind indexing, retention and the corpus refresh — the Help assistant section of the AI reference chapter.
- Where the assistant sits in the outbound picture — the Install & first run chapter lists every call AccessFlow makes of its own accord and how to switch each one off.
- The AI configuration it uses, including the knowledge base and embedding settings retrieval depends on — Turn on AI risk analysis and the AI reference.
- What the assistant will tell you AccessFlow is not — Integrations & boundaries is the chapter it treats as the complete list of what is supported.