All docs

Help action links

Voice: Clickable jumps in help-assistant answers, described in language users understand; the implementation protocol is mindlink://action/….

Source docs/en/site/mech-action-links.md

Voice: Clickable jumps in help-assistant answers, described in language users understand; the implementation protocol is mindlink://action/….

When to use: Only when the user asks how / in what way to open a page, use an action link as an entry. When the user says “open the workspace collaboration page” as a do-it request, the main site should switch to that page and keep the floating help conversation — do not only give “tap here”. Implementation: helpNavigation.ts and tryHelpNavigationFromChat.

Goal

Insert “clickable action links” in help documents so that while reading an answer the user can jump in one tap to the matching screen (for example “Create a workspace”).

Link protocol

Help documents use a custom protocol.

The main-site allowlist is client/web/src/helpActions.ts (the embed widget’s same-origin list is sdk/host-embed/widget/src/mindlinkAction.ts):

  • mindlink://action/workspace.create
  • mindlink://action/module.workspace (optional section=; support queue section=support, then optional cs=requests|local|group|inbound; capability packs / data connections may use pack / data / conn / http / script; legacy section=teams goes to agent teams)
  • mindlink://action/module.teams (agent teams)
  • mindlink://action/module.chat (optional user_agent_id / session_id to locate a conversation)
  • mindlink://action/chat.new-session
  • mindlink://action/module.skills (optional skill / id to open a given skill)
  • mindlink://action/module.agents (open the agents marketplace subsection)
  • mindlink://action/module.scheduled (scheduled tasks)
  • mindlink://action/module.me (account and preferences)
  • mindlink://action/module.apps (optional app= to open a workspace app; plugin=hr opens a platform plugin, and may carry tab=)
  • mindlink://action/module.workflows (optional def= / instance= deep link)
  • mindlink://action/module.im (contacts; main site switches to Messages)

Syntax example:

`创建工作区`

Execution flow

  1. Help Markdown contains mindlink://action/* links.
  2. Front-end HelpOnboardingPanel intercepts that protocol while rendering Markdown.
  3. The link fires onHelpAction(action, params).
  4. AppHome dispatches by allowlist (see the table above): workspace collaboration, create workspace, Messages / new conversation, Skills center, agents marketplace, scheduled tasks, account, app desktop, workflows, contacts.

The current implementation extracts the action allowlist into client/web/src/helpActions.ts, dispatched by executeHelpAction().

Safety

  • Do not run arbitrary scripts; do not use javascript:.
  • Only allowlisted actions; unknown actions only say “not supported yet”.
  • External http/https links still open in a new window as usual.

Embed (host page)

The protocol is the same (mindlink://action/…), but the executor differs:

SceneIntercept and dispatch
Cadau main-site helpHelpOnboardingPanelhelpActions.ts → main-site module routing
Website embed widgetUser click or auto_execute_navigationwidget.on("action") → host-page allowlist (e.g. executeHostAction)

Extension suggestions

  • Basic local-queue analytics already exist: trackHelpActionEvent()

- stage=clicked: the user clicked an action link - stage=executed: action result (ok/reason) - Storage key: mindlink_help_action_events (keep at most 200)

  • The local queue can later be reported to the backend on a timer and fed into MemoryForge analysis.