Every walkthrough, action and process the assistant can offer

The full catalogues by key — three actions, nineteen processes with their steps, twenty-one walkthroughs — plus the nine model tools and the provider gate that withholds two of the three tiers.

9 min readUpdated 7 August 2026actions, workflows, guides, tools, catalogue

Actions explains the three tiers and the two allowlists. This page is the contents of all three catalogues, by key, so you can answer "what exactly is ticked?" without reading a React file.

Everything here is read-only data shipped with the build. There are nine catalogues; the three the customer assistant can offer are what this page spells out, and the rest are here so the numbers agree:

Catalogue Entries Whose
Actions 3 Customer
Processes 19 Customer
Walkthroughs 21 Customer
Activity areas get_my_activity can read 9 Customer
Customer screens the assistant may open 83 Customer
Admin procedures 34 Operator — see the operator's own assistant
Admin actions 6 Operator
Admin readers 3 Operator
Admin screens the assistant may open 120 Operator

The console at /admin/ai/support/workflows fetches the customer three at page load:

The action allowlist. Read-only — it is three definitions in the addon, not a configurable list.
The process catalogue, with every step spelled out and whether the addon it needs is installed.
The walkthrough catalogue, with every stop's wording.

Read this first: two of the three tiers are gateway-only

actionsAvailable() requires both aiSupportProvider === "mashdiv" and aiSupportOperationsEnabled. An install running its own Anthropic key or an OpenAI-compatible endpoint is offered no actions and no processes, however the switches are set and however many keys are ticked.

The console says which of the two is missing rather than going quiet: the workflow route returns blocked: "provider" when the provider is wrong and blocked: "disabled" when the switch is off. The remedies are different — one is a switch you own, the other is a provider you have to choose — which is why they are two states and not one message.

The reason is not a paywall across an arbitrary feature. An action is the only thing in this addon that writes, and three properties behind it come from the gateway rather than from a model: the audit trail is double-entry across both sides, the spend is bounded by an allowance this install cannot edit, and the catalogue is versioned centrally so an action found to be unsafe is withdrawn for every buyer at once rather than when each next upgrades.

Walkthroughs are not gated this way, for the same reason: a walkthrough writes nothing, needs no accounting, and withholding it would be an arbitrary paywall.

The three actions

An action is a single reversible, non-financial change. The model may propose one from this fixed list and nothing else; the customer reads a constant description and confirms it, and the write then happens through an ordinary authenticated route under the customer's own session. The model executes nothing, and no action takes a parameter from the model — every value a runner uses is derived from the confirming user's session.

Key Button Confirmation Offered when
resend_verification_email Resend the verification email One tap verifyEmailStatus is on and the customer's address is unverified
cancel_pending_kyc Withdraw my verification submission Modal The customer has a kycApplication in PENDING
mark_notifications_read Mark my notifications as read One tap The customer has at least one unread notification

requiresStepUp is false on all three, and the console shows the flag rather than assuming it. None of them changes an authentication factor or moves value.

Three things worth knowing before you switch actions on:

  • cancel_pending_kyc starts a 24-hour cooldown. Setting the application to REJECTED is what the submit route's rejection check reads, so the customer cannot submit for that level again for a day. The description the customer confirms says exactly that. It is still usually a good trade — a reviewer rejection starts the same clock — but it is the reason this one is behind a modal rather than a single tap.
  • Verification emails are capped at three per account per hour. Over that, the customer gets a plain sentence rather than an error, and is offered a person.
  • An offer expires after 24 hours (PROPOSAL_TTL_MS). A transcript is readable forever; without an expiry a customer scrolling back through an old conversation could confirm an action proposed for a situation that no longer exists.

The nineteen processes

A process is a sequence over the same action allowlist, plus navigation. There are no new runners: an operation step runs the very definition above, a navigate step opens a page and writes nothing, and a guide step runs a walkthrough and writes nothing. The model picks which process; it does not compose, order or describe the steps, and after the first step it is not in the request at all — the confirm route writes the next step itself.

aiSupportWorkflowKeys is the allowlist and empty means none.

Key Title Steps, in order Needs
catch_up_on_notifications Clear a backlog of notifications action mark_notifications_read/user/notification
find_missing_money Track down a payment you cannot find guide find_a_transaction → guide understand_my_wallets/support/new
first_deposit Add funds for the first time guide understand_my_wallets → guide make_a_deposit/finance/history
first_withdrawal Take money out for the first time guide complete_verification → guide understand_my_wallets → guide make_a_withdrawal
join_a_token_sale Take part in a token sale guide complete_verification → guide join_a_token_sale/ico/transaction extension ico
place_a_store_order Buy something from the store guide shop_and_checkout/ecommerce/cart/ecommerce/order extension ecommerce
recover_access Get back into your account action resend_verification_email/login
redo_verification Start your verification again action cancel_pending_kyc/user/kyc
secure_my_account Lock down your account guide secure_my_account/user/notification
start_binary_trading Get started with binary options guide learn_binary_trading → guide understand_my_wallets setting binaryStatus
start_copy_trading Follow another trader /copy-trading/copy-trading/subscription extension copy_trading
start_forex_investing Invest in a managed forex plan /forex/plan/forex/investment extension forex
start_forex_trading Get started on the forex terminal guide understand_my_wallets → guide learn_the_forex_terminal extension forex_trading
start_investing Put money into an investment plan guide understand_my_wallets → guide invest_in_a_plan/investment/portfolio setting investment
start_p2p_trading Buy or sell peer-to-peer for the first time /p2p/payment-methods → guide find_someone_to_trade_with/p2p/trades extension p2p
start_referring Start earning from referrals /affiliate/affiliate/reward extension mlm
start_spot_trading Place your first trade guide understand_my_wallets → guide learn_the_trading_terminal
start_staking Stake for the first time guide understand_my_wallets → guide choose_a_staking_pool/staking/position extension staking
start_swapping Swap one token for another guide learn_token_swapping/finance/history extension dex

This is the only process whose first step changes something consequential. Step 1 is cancel_pending_kyc, which sets the customer's pending application to REJECTED and starts the 24-hour cooldown; step 2 then opens /user/kyc and tells them, in the step's own constant text, that the next submission opens in 24 hours.

Read the step list on the console before ticking this one. "Let the assistant redo verification" is not enough information to consent to, which is why the route returns the steps rather than the titles.

Two of the forex entries are genuinely different products: start_forex_trading needs the forex_trading extension (the multi-asset terminal), start_forex_investing needs forex (managed plans). An install can have one and not the other.

Eleven of the nineteen are gated, and the row is still shown

Nine name an addon in requires.extensionico, ecommerce, copy_trading, forex, forex_trading, p2p, mlm, staking, dex — and two name a platform setting: binaryStatus and investment. availableWorkflows() drops them when the addon is not installed and enabled, or the setting is off.

The console still lists them, but it only reports the addon half of that. installed is derived from requires.extension alone, so a process whose addon is absent comes back installed: false: the row is dimmed, its switch is disabled, the badge naming the addon turns to a warning tone, and a link to the product page appears where a store slug is known.

The two setting-gated processes are the exception, and it is worth knowing before you go looking for a warning that is not there. start_binary_trading and start_investing name a setting rather than an extension, so they have no requires.extension and always serialise as installed: true — even when the setting is off. Their rows are never dimmed, their switches stay live, and the badge naming binaryStatus or investment is drawn in the same neutral tone either way. Ticking one saves happily and still offers nothing, because availableWorkflows() reads the setting at request time and drops the process when it is off. If one of those two is ticked and never appears, check the platform setting itself — this screen will not tell you.

Hiding an unavailable process is the tempting choice and it is wrong twice: an operator who cannot see it cannot discover it exists, and a missing row is indistinguishable from a build that does not ship it.

A workflow abandoned mid-way expires after seven days (WORKFLOW_TTL_MS) — longer than a single offer, because a process legitimately spans days. See Scheduled jobs for why that expiry has to be a sweep and not only a lazy check.

The twenty-one walkthroughs

A walkthrough opens a page the customer's own session may already open and points at the controls on it, one stop at a time. It writes nothing, reads nothing about the account, and never fills anything in — it says which box, and the customer types.

aiSupportGuideKeys is the allowlist and empty means all.

Key Page Stops
browse_the_nft_market /nft/marketplace 5
choose_a_futures_market /futures 5
choose_a_staking_pool /staking/pool 5
choose_a_trader_to_copy /copy-trading/leader 5
complete_verification /user/kyc 4
find_a_transaction /finance/history 3
find_someone_to_trade_with /p2p/market 5
invest_in_a_plan /investment/plan 6
join_a_token_sale /ico/offer 6
learn_binary_trading /binary the page's own tour, binary-trading-intro
learn_the_forex_terminal /forex-trading the page's own tour, fx-terminal-intro
learn_the_trading_terminal /trade the page's own tour, trading-pro-intro
learn_token_swapping /dex/swap the page's own tour, dex-swap-intro
make_a_deposit /finance/deposit 5
make_a_withdrawal /finance/withdraw 7
open_a_ticket /support 3
run_a_trading_bot /trading-bot/dashboard 5
secure_my_account /user/profile 3
shop_and_checkout /ecommerce/product 5
understand_my_wallets /finance/wallet 4
understand_referral_rewards /affiliate/dashboard 6

Four of them carry no stops of their own. The binary, spot pro, forex and swap terminals each shipped an onboarding tour long before this addon existed; those guides name the existing tour and the frontend starts it, rather than authoring a second, worse tour of the same screen that drifts the first time either changes.

Walkthroughs carry no requires field. Their gate is their route's gate: each is pre-flighted through resolveAction, the same call the navigation tool makes, so a guide for a page an addon does not provide — or that this particular customer's verification level cannot enter — is never offered. That is per customer, not only per install.

The console shows every stop's wording, not a count. A stop's text is a constant the customer reads while something on their screen is highlighted; "put your wallet address here" aimed at the wrong field is a lost deposit, and it is your product being described, so you are the one who has to be able to check the words.

Why the two allowlists point opposite ways

List Empty means Because
aiSupportWorkflowKeys none A process runs an authenticated write. The catalogue grows in upgrades, so "empty means all" would grant a capability by upgrading rather than by a decision.
aiSupportGuideKeys all A walkthrough cannot write. A new one is a new explanation of a page you already ship, to customers already standing on it. Requiring a tick each would leave every install that never opens this screen with an assistant that can only teleport people and abandon them.

That is the sharp edge of "empty means all", and the console makes it unreachable: unticking the last remaining walkthrough turns the master switch aiSupportGuidesEnabled off instead of writing an empty list. Which is what you meant, and it is reversible.

The API can still be driven directly, so if you write aiSupportGuideKeys: [] yourself, you have enabled every walkthrough in the build.

The nine tools behind all of it

These are what the model is actually offered. Every one reads the customer id from the authenticated session — no tool schema accepts a user id, because a tool that took one would be a lateral-read primitive one prompt injection away. None of them mutates anything.

Tool Touches the account Withheld unless
propose_action No Always offered. Renders a button for one of the 83 paths in the customer route catalogue, pre-flighted for this customer
propose_steps No Always offered. A numbered walkthrough in the reply; each step's route is pre-flighted, and a failing one renders as text rather than a dead button
request_human No Always offered. Ends the turn and hands over
get_account_summary Yes aiSupportAccountToolsEnabled
get_recent_transactions Yes aiSupportAccountToolsEnabled. Amounts and statuses only — never addresses or transaction hashes
get_my_activity Yes aiSupportAccountToolsEnabled, and at least one of its nine areas is available on this install — see below
propose_operation No actionsAvailable() — gateway provider and aiSupportOperationsEnabled
propose_workflow No actionsAvailable(), plus aiSupportWorkflowsEnabled, plus at least one key ticked
propose_guide No aiSupportGuidesEnabled, and at least one walkthrough this customer can reach

A tool that cannot run is withheld from the prompt, not merely refused when called. A model shown a tool it will always be refused for offers it in prose — "I can resend that for you" — and then nothing happens; the refusal is invisible to the customer and reads as the product being broken.

Individual agents can narrow this further with their own tool list — see Agents.

The nine areas of get_my_activity, and what gates each one

Each area is a separate reader with its own gate, and the tool's area enum is built from the ones this install actually has. An area that is not available is not in the enum and is refused area_unavailable if a model names it anyway.

Area What it reads Gated on
orders Recent spot orders, filled or not, and why a cancelled one was cancelled Nothing. Spot trading is core
p2p The customer's own trades and posted offers, with escrow and payment-window state Extension p2p
staking What is locked, in which pool, until when, and whether an unstake has been requested Extension staking
ico Token-sale purchases and the status of each Extension ico
forex Their forex accounts and managed investments Extension forex
ecommerce Their shop orders and what state each is in Extension ecommerce
affiliate How many people they referred, how many were approved, what was paid Extension mlm — the addon is not named for the area
investments Their investment plans: how much is in each, when it ends, how a finished one turned out Setting investment, not an extension
binary Their binary options positions and how each settled Setting binaryStatus, not an extension

Three of those are worth reading twice, because each is a place an operator looks for the wrong thing when the assistant says it cannot see something:

  • investments and binary are gated on a platform setting, exactly like the start_investing and start_binary_trading processes above. There is no addon to install and no addon to check. If the assistant will not discuss a customer's investment plans, the switch is investment on the platform settings screen.
  • affiliate needs the mlm extension. The area key and the addon name are different words for the same product, and only one of them is searchable.
  • orders is ungated, so the tool is never dropped for want of an area — the enum shrinks instead. "No areas at all" is not a state this addon reaches.

The catalogue is cached for a minute and sorted, because it lands in the prompt prefix the provider caches on: an order that wobbles between requests turns every cache read into a write.

aiSupportAccountToolsEnabled, precisely

This is the Super-Admin switch on the Guardrails tab labelled Account tools enabled, and it ships on. Turning it off is "docs-only mode": the three tools marked Yes above are dropped from the tool spec and refused again at call time, so nothing about any customer's account leaves the install for a model. The assistant answers from documentation alone.

This switch has exactly one effect, in both places it is checked: it removes the tools flagged as account readers. get_account_summary, get_recent_transactions and get_my_activity carry that flag. propose_operation, propose_workflow and propose_guide do not, and no runner behind any of them consults this setting — not the tool, not the confirm route, not the step runner.

So an install with account tools off and aiSupportOperationsEnabled on still offers actions, still starts processes, and still executes both when the customer confirms. That is deliberate rather than an oversight: an action runs under the customer's own session and derives every value it uses from that session, so it never needed the assistant to read their account in the first place.

If what you want is an assistant that answers questions and touches nothing, you have to turn both off — account tools and aiSupportOperationsEnabled. One is not a shortcut for the other.

The three propose tools have their own gates, and none of them is this one: propose_operation and propose_workflow on actionsAvailable(), propose_guide on aiSupportGuidesEnabled plus at least one walkthrough this customer can reach.

All three of aiSupportOperationsEnabled, aiSupportWorkflowsEnabled and aiSupportWorkflowKeys are Super-Admin only, and the Actions console is where they are changed. See All settings for the full protected list and Permissions for who can open the screen.

The operator's four catalogues

None of the above is what the assistant on the Handbook screen works from. That surface has its own four catalogues, sharing no entries with the customer ones, and the operator's own assistant is where they are described. The counts, so this page and that one agree:

Catalogue What it holds Gate
34 admin procedures Set up deposits, investigate a stuck withdrawal, prepare for an update, and so on Every step's own permission, and every action step's allowlist entry. You are offered a procedure only if you could finish it
6 admin actions Rebuild the knowledge index, reload the settings cache, back up the database, re-sync the currency icons, send yourself a test email, test the AI provider aiSupportAdminActionsEnabled, a tick in aiSupportAdminActionKeys, and the action's own permission
3 admin readers The operations queue, platform health, recent admin activity Section by section, on the key of the screen that shows the same thing
120 admin screens Every console the assistant may open for you That screen's own permission

All four are dark until aiSupportAdminAssistantEnabled is on, which ships off and only a Super Admin can change. And all four are filtered against the asking administrator's own permissions on every request, so the assistant is never a second, weaker door to a console that would have refused them.