Operations
Every operation the MCP server exposes, with its tool and its input and output schemas.
Open an operation for its description and the input and output it takes; entity operations show the type-specific fields per entity type. Deep links such as #op-entity-create open a row. The same catalogue is available as JSON at /mcp/catalog.json.
Tools
Every operation is called through one of four tools, split by what the call does to the workspace.
Read Algomo workspace
Reads from the Algomo workspace API and never changes anything: workspace configuration (chatbots, workflows, custom agents, cards, knowledge-base pages, connectors, connections), edit sessions with their diffs and validation, customer and test conversations, past workflow runs and node caches, tasks, onboarding status, dashboard links, recipes, and the pages and API traffic captured by a paired browser.
- Read-only. Runs without a confirmation prompt.
Stage changes in Algomo
Creates and changes Algomo workspace configuration.
- Writes staged or workspace state.
Publish or discard an Algomo edit session
Saves an Algomo edit session, making every change staged in it live in the workspace, or discards it, deleting the staged changes.
- Asks for confirmation by default.
Run Algomo workflows, agents and browser actions
Executes operations with effects outside the Algomo workspace: runs a workflow and returns its trace, runs a custom agent, sends a test message to a chatbot and returns its reply (recorded as a test conversation), verifies the chatbot's website access by running its tools against the site, and drives the user's paired browser extension to fetch a URL with their cookies, run a script in a page, or navigate a tab.
- Asks for confirmation by default.
- Reaches outside the workspace.
Operations
87 operations
info:*3 operations
What the product is, who is calling, and what each entity type means.
info:meReturns the authenticated user's identity, active org context, and org settings (company description, brand standards).Read
Returns the authenticated user's identity, active org context, and org settings (company description, brand standards).
Called through algomo_read.
info:overviewReturns a product overview and a lightweight list of all entity types.Read
Returns a product overview and a lightweight list of all entity types. Use info:entity for detailed information about a specific entity type.
Called through algomo_read.
info:entityReturns detailed information about a specific entity type: full description and relationships.Read
Returns detailed information about a specific entity type: full description and relationships.
Called through algomo_read.
discovery:*1 operation
Every operation and its schemas, at runtime.
schemaDiscover available operations and their input/output schemas.Read
Discover available operations and their input/output schemas. Call with no target to list all ops, each with the tool it is called through. Call with a target op name to get the JSON Schema for that op's input and output. For entity ops, provide entityType to get the entity-specific params schema.
Called through algomo_read.
session:*8 operations
Edit sessions: the staging area every configuration change goes through.
session:createCreate a new empty edit session with the given name.GatedEdit
Create a new empty edit session with the given name. Returns the session ID.
Called through algomo_edit. Refused until the workspace's agent onboarding is complete.
session:duplicateDuplicate an existing edit session under a new name: the new session starts with a copy of all staged changes, and the source session is left untouched.GatedEdit
Duplicate an existing edit session under a new name: the new session starts with a copy of all staged changes, and the source session is left untouched. Returns the new session ID.
Called through algomo_edit. Refused until the workspace's agent onboarding is complete.
session:getGet a session by ID, including all tracked entities and their current state.Read
Get a session by ID, including all tracked entities and their current state.
Called through algomo_read.
session:listList all active edit sessions.Read
List all active edit sessions.
Called through algomo_read.
session:validateRun full validation on the session: entity local validation, cross-entity global checks, and cascade rules.Read
Run full validation on the session: entity local validation, cross-entity global checks, and cascade rules.
Called through algomo_read.
session:saveValidate and save all session changes to the database in a single transaction.GatedPublish
Validate and save all session changes to the database in a single transaction. Supports dryRun mode to check validation and version conflicts without persisting. On success, the session is destroyed. Get your user's go-ahead before saving — asked in product terms (what the chatbot will now do, e.g. "I'll make the greeting live on your homepage — ok?"), never as internals: no 'session', 'save', op names, or ids in front of them.
Called through algomo_publish. Refused until the workspace's agent onboarding is complete.
session:discardDiscard an edit session, throwing away all unsaved changes.Publish
Discard an edit session, throwing away all unsaved changes.
Called through algomo_publish.
session:diffGet a summary of all changes in the session: created, updated, and deleted entities, including cascade changes.Read
Get a summary of all changes in the session: created, updated, and deleted entities, including cascade changes. Updated entities include a diff of field-level changes (add/remove/replace/move ops) from the persisted baseline.
Called through algomo_read.
entity:*10 operations
Create, read, update and delete the workspace's entities, whole or one member at a time.
entity:createCreate a new entity in the session.GatedEdit
Create a new entity in the session. The system generates the ID. Returns the new entity ID and any validation errors.
Called through algomo_edit. Refused until the workspace's agent onboarding is complete.
entity:getGet a single entity by type and ID.Read
Get a single entity by type and ID. Without a sessionId, loads from the database. With a sessionId, includes unsaved changes. Some types accept an alternate selector via params instead of entityId: wikiPage takes { path: "folder-slug/page-slug" }, wikiFolder takes { slug }.
Called through algomo_read.
entity:listList entities by type.Read
List entities by type. Without a sessionId, lists saved entities from the database. With a sessionId, includes unsaved changes. wikiPage rows are metadata summaries (path, folder, title, summary, keywords, section headings) without content — use entity:get for the full page, and filter with { folder: "folder-slug" }.
Called through algomo_read.
entity:updateUpdate an entity in the session.GatedEdit
Update an entity in the session. Provide only the fields you want to change. Auto-loads from the database if not already in the session. Returns the change diff (same op format as session:diff) and validation errors; call entity:get when you need the full normalized entity.
Called through algomo_edit. Refused until the workspace's agent onboarding is complete.
entity:deleteMark an entity for deletion in the session.GatedEdit
Mark an entity for deletion in the session. The entity will be deleted from the database when the session is saved.
Called through algomo_edit. Refused until the workspace's agent onboarding is complete.
entity:refreshReload an entity from the database into the session, returning the fresh state and the agent's previous pending changes.Edit
Reload an entity from the database into the session, returning the fresh state and the agent's previous pending changes. Use after a save conflict.
Called through algomo_edit.
entity:pushItemAppend one item to a keyed collection without resending the whole array.GatedEdit
Append one item to a keyed collection without resending the whole array. path is a dotted path ending on the array (e.g. "goals" or "goals.support.instructions"). Provide the new item in item; omit its key to have it derived from the name. Pass afterKey to insert directly after an existing member instead of appending. Returns the change diff and validation errors.
Called through algomo_edit. Refused until the workspace's agent onboarding is complete.
entity:deleteItemRemove one item from a keyed collection without resending the whole array.GatedEdit
Remove one item from a keyed collection without resending the whole array. path is a dotted path ending on the member (e.g. "goals.support" or "goals.support.instructions.intro"). Returns the change diff and validation errors; emptying a collection that requires members surfaces as a localError rather than failing.
Called through algomo_edit. Refused until the workspace's agent onboarding is complete.
entity:updateItemShallow-merge a patch into one item of a keyed collection without resending the whole array.GatedEdit
Shallow-merge a patch into one item of a keyed collection without resending the whole array. path is a dotted path ending on the member (e.g. "goals.support"). Only the fields in patch change; the member keeps its key (do not rename a key — it orphans bound data). Reconciling cross-member invariants is the caller's responsibility. Returns the change diff and validation errors.
Called through algomo_edit. Refused until the workspace's agent onboarding is complete.
entity:moveItemMove one item of a keyed collection to a new position without resending the whole array — only meaningful for ordered collections.GatedEdit
Move one item of a keyed collection to a new position without resending the whole array — only meaningful for ordered collections. path is a dotted path ending on the member (e.g. "instructions.pricing"); afterKey is the key of the member to place it directly after, or null to move it to the front. Returns the change diff and validation errors.
Called through algomo_edit. Refused until the workspace's agent onboarding is complete.
workflow:*24 operations
Workflows, their definitions, their runs and the node catalogue.
workflow:getGet a workflow by ID.Read
Get a workflow by ID.
Called through algomo_read.
workflow:listList all workflows for the org.Read
List all workflows for the org. Optionally filter by workflowType (workflow, tool, chatbot, card).
Called through algomo_read.
workflow:createCreate a new workflow in the session.GatedEdit
Create a new workflow in the session. workflowType is immutable after creation: "workflow" runs on events, "tool" is invoked as a chatbot/agent tool, "chatbot" runs for chatbots that assign it (assign via the chatbot's workflowIds), "card" is owned by a card definition and runs at display time to fetch its props (the card_instance_created trigger). When omitted, it is inferred from the definition's trigger (chatbot_tool/tool → "tool", card_instance_created → "card", otherwise "workflow"). The chatbot_tool and tool triggers are only allowed on tool-type workflows, and tool-type workflows allow no other triggers. Declare caller-supplied parameters (tool args, a card's fetch args) as inputFields on the definition's trigger — or add them later with workflow:updateNode. A definition with unknown input keys (any inputs key not declared by the node type) or inputFields on a trigger that takes no caller inputs is rejected. While the workflow is disabled (the default status), localErrors covers only structural checks; full {{ref}} validation runs once it is enabled, at session save, or on demand via workflow:validate.
Called through algomo_edit. Refused until the workspace's agent onboarding is complete.
workflow:updateUpdate workflow fields (name, status, definition, variables).GatedEdit
Update workflow fields (name, status, definition, variables). variables are static constants ({{variables.key}}); caller-supplied parameters live in the trigger's inputFields (set via workflow:updateNode on the trigger node). A definition with unknown input keys is rejected.
Called through algomo_edit. Refused until the workspace's agent onboarding is complete.
workflow:deleteDelete a workflow from the session.GatedEdit
Delete a workflow from the session.
Called through algomo_edit. Refused until the workspace's agent onboarding is complete.
workflow:runExecute a workflow by ID.Run
Execute a workflow by ID. Pass input values matching the inputFields declared on the workflow's trigger (undeclared keys are rejected — runtime callers only supply declared fields). This is a test invocation, so visitorId/threadId are generated for you when you omit them from triggerPayload — pass them only to target a specific visitor or thread. With a sessionId, the run resolves session-staged entities (an unsaved connector, workflow edits) — no need to save the session just to test. Returns the full execution trace with per-step inputs, outputs, errors, timing, and the workflow output (if a workflow_output node was reached).
Called through algomo_run.
workflow:listRunsList past runs of a workflow, newest first — one page of summaries (status, version, timestamps, credits spent; no step traces) plus the workflow's current version, so a run with an older workflowVersion executed an outdated definition.Read
List past runs of a workflow, newest first — one page of summaries (status, version, timestamps, credits spent; no step traces) plus the workflow's current version, so a run with an older workflowVersion executed an outdated definition. Each summary carries its origin: where the run came from (a chatbot conversation, a custom agent's tool call), when it has one. Filter by isTest and statuses; page by passing the returned nextCursor back as cursor. A workflow created in a session and not yet saved lists its runs only with that sessionId (they are test runs — pass isTest true or omit it). Read a run's full trace with workflow:getRun.
Called through algomo_read.
workflow:getRunGet a past run by ID: the full execution trace (per-step inputs, outputs, errors, timing), what it cost (credits in total and per node) and the workflow definition the run executed — including unsaved edits staged in a session, flagged by ranUncommitted — so you diagnose a run against what actually ran, not the current definition.Read
Get a past run by ID: the full execution trace (per-step inputs, outputs, errors, timing), what it cost (credits in total and per node) and the workflow definition the run executed — including unsaved edits staged in a session, flagged by ranUncommitted — so you diagnose a run against what actually ran, not the current definition. A run of a workflow created in a session and not yet saved is readable only with that sessionId. A conversation origin means the run happened inside that chatbot conversation — point the user at it via its threadId (the dashboard's conversation view).
Called through algomo_read.
workflow:listNodeDefinitionsList available node definitions for workflows.Read
List available node definitions for workflows. Optionally filter by kind (trigger, action, control) and/or workflowType (only definitions allowed for that workflow type). Each carries what it costs the workspace to run (charge), absent for a free node.
Called through algomo_read.
workflow:getNodeDefinitionGet the full definition of a node type.Read
Get the full definition of a node type. Each input field reports its uiType, whether it's required, options (allowed values for dropdown fields), entityRef (the field takes an id of that entity type — with secretType/acceptedConnections for secret/connection refs), and the raw flag (raw fields skip {{...}} interpolation and ref validation — for script/regex/template bodies). Also returns output fields, sample output and what the node costs the workspace to run (charge; absent for a free node). For triggers, configurableInputFields reports whether the workflow may declare caller-supplied inputFields on its trigger node (distinct from this op's inputFields, which describe the node's own inputs config).
Called through algomo_read.
workflow:validateValidate a workflow definition.Read
Validate a workflow definition. Returns all validation errors regardless of workflow status.
Called through algomo_read.
workflow:addNodeAdd a node after a specified node.GatedEdit
Add a node after a specified node. Use pathIndex to add it at the start of a specific branch of a paths node or lane of a parallel node. Auto-generates the node name; set the node's inputs with workflow:updateNode.
Called through algomo_edit. Refused until the workspace's agent onboarding is complete.
workflow:listNodeCacheList cached results, the ones expiring last first (newest first among entries kept for one TTL), a page at a time: each entry's stored input (the key), output, when it was stored and lapses, and the run, workflow and step that stored it.Read
List cached results, the ones expiring last first (newest first among entries kept for one TTL), a page at a time: each entry's stored input (the key), output, when it was stored and lapses, and the run, workflow and step that stored it. Name them by workflow node (workflowId + nodeName: the entries that node's configured inputs could have stored) or by inputs (nodeType + an optional inputs template in which every {{…}} matches anything — { url: 'https://api.example.com/{{rest}}' } is every request to that host; without a template, every entry of the type, which is shared by node type and inputs across the workspace's workflows). Pass sessionId to read the edit session's cache instead of the live one.
Called through algomo_read.
workflow:removeNodeCacheEntryDrop one cached result by its id from workflow:listNodeCache, named by the same node or type.Edit
Drop one cached result by its id from workflow:listNodeCache, named by the same node or type. The step runs again on its next call with those inputs.
Called through algomo_edit.
workflow:clearNodeCacheDrop cached results: by workflow node, those its configured inputs could have stored; by nodeType with an inputs template, those matching it; by nodeType alone, every entry of the type across the workspace's workflows (or the edit session's, with sessionId).Edit
Drop cached results: by workflow node, those its configured inputs could have stored; by nodeType with an inputs template, those matching it; by nodeType alone, every entry of the type across the workspace's workflows (or the edit session's, with sessionId). Every affected step runs again on its next call.
Called through algomo_edit.
workflow:removeNodeRemove a node by name from the workflow definition.GatedEdit
Remove a node by name from the workflow definition.
Called through algomo_edit. Refused until the workspace's agent onboarding is complete.
workflow:updateNodeUpdate a node's displayName, inputs or cache setting.GatedEdit
Update a node's displayName, inputs or cache setting. On the trigger node, may also set inputFields — the workflow's caller-supplied parameters (read as {{input.*}}), which form the tool input schema for tool workflows and the fetch args for a card's data workflow. inputFields exist only on the trigger — set on any other node they have no effect. inputs keys not declared by the node's type are rejected. cache ({ ttlSeconds }, or null to turn it off) is accepted on cacheable action nodes only (see the workflow entity info); on any other node it fails validation.
Called through algomo_edit. Refused until the workspace's agent onboarding is complete.
workflow:replaceTriggerChange the trigger type.GatedEdit
Change the trigger type. Resets inputs and updates displayName from the node definition; declared inputFields are kept when the new trigger accepts caller inputs (configurableInputFields) and dropped otherwise. Triggers not allowed for the workflow's workflowType produce a validation error in localErrors.
Called through algomo_edit. Refused until the workspace's agent onboarding is complete.
workflow:replaceNodeReplace a node with a different type, preserving its position in the chain.GatedEdit
Replace a node with a different type, preserving its position in the chain.
Called through algomo_edit. Refused until the workspace's agent onboarding is complete.
workflow:addPathAdd a new branch to a paths node.GatedEdit
Add a new branch to a paths node.
Called through algomo_edit. Refused until the workspace's agent onboarding is complete.
workflow:removePathRemove a branch from a paths node by index.GatedEdit
Remove a branch from a paths node by index.
Called through algomo_edit. Refused until the workspace's agent onboarding is complete.
workflow:addLaneAdd an empty lane to a parallel node.GatedEdit
Add an empty lane to a parallel node. Fill it with workflow:addNode, passing the parallel node as afterNodeName and the lane's index as pathIndex.
Called through algomo_edit. Refused until the workspace's agent onboarding is complete.
workflow:removeLaneRemove a lane from a parallel node by index, with every node in it.GatedEdit
Remove a lane from a parallel node by index, with every node in it.
Called through algomo_edit. Refused until the workspace's agent onboarding is complete.
workflow:updateConditionsUpdate the conditions on a specific path of a paths node.GatedEdit
Update the conditions on a specific path of a paths node. Conditions are ANDed; each is { type: "comparison", firstValue, operator, secondValue } or { type: "fallback" }. Operators: text_equals/text_not_equals/text_contains/text_not_contains/text_starts_with/text_ends_with, text_matches/text_not_matches (a literal RE2 regex, never a reference; unanchored, (?i) for case-insensitive), list_has/list_not_has (an item equals the value) and list_has_match/list_not_has_match (an item matches the regex) on a {{reference}} to a list, number_equals/number_greater/number_less, boolean_is_true/boolean_is_false, exists/not_exists, date_older_than/date_newer_than (durations like 5m, 2h). The info:entity description for workflow has the details.
Called through algomo_edit. Refused until the workspace's agent onboarding is complete.
agent:*6 operations
Custom agents, and running them.
agent:listList all agents for the org.Read
List all agents for the org. With sessionId, includes unsaved changes.
Called through algomo_read.
agent:getGet a agent by ID.Read
Get a agent by ID.
Called through algomo_read.
agent:createCreate a new agent in the session.GatedEdit
Create a new agent in the session. The system generates the ID. Returns the new agent ID and any validation errors.
Called through algomo_edit. Refused until the workspace's agent onboarding is complete.
agent:updateUpdate a agent in the session.GatedEdit
Update a agent in the session. Provide only the fields you want to change. Tools are object-keyed by name — pass null to delete a tool, or a partial object to patch one.
Called through algomo_edit. Refused until the workspace's agent onboarding is complete.
agent:deleteMark a agent for deletion in the session.GatedEdit
Mark a agent for deletion in the session.
Called through algomo_edit. Refused until the workspace's agent onboarding is complete.
agent:runSend a test message to a agent and get its response.Run
Send a test message to a agent and get its response. Tests the saved configuration, or pass sessionId to test unsaved draft changes. Invocations are one-shot — no thread or memory is carried across calls.
Called through algomo_run.
chat:*3 operations
Customer conversations, and test replies from a chatbot.
chat:generateTestReplySend a test message to a chatbot and get its response.Run
Send a test message to a chatbot and get its response. The conversation is recorded as a test thread (isTest: true in chat:listThreads), never as a real customer conversation. Tests the chatbot's saved configuration, or pass sessionId to test unsaved draft changes. If threadId is omitted, a new conversation is started. Pass back the returned threadId to continue a multi-turn conversation. Admin callers may pass modelOverride (a model-router string) and providerOptions to benchmark the reply on a different model.
Called through algomo_run.
chat:listThreadsList conversation threads — real customer conversations and test threads.Read
List conversation threads — real customer conversations and test threads. Filter by chatbotId (omit to list across all chatbots), visitorId, isTest (true = test only, false = real only, omit = both), humanTakeover, closed, and createdAt/updatedAt date ranges. Threads where the visitor never sent a message are excluded unless includeThreadsWithNoUserMessages is true; threads judged spam, abuse or gibberish after closing are excluded unless includeSpam is true. Each thread includes the visitor's name and a last-message preview; use chat:getMessages to read a thread.
Called through algomo_read.
chat:getMessagesGet the messages of a conversation thread — real or test.Read
Get the messages of a conversation thread — real or test. Use this to review what happened in a conversation and debug chatbot behavior.
Called through algomo_read.
task:*6 operations
The workspace's task list: onboarding steps, build tasks, failing workflows.
task:listList the org's tasks (things a user or agent needs to resolve).Read
List the org's tasks (things a user or agent needs to resolve). Defaults to open tasks; pass status to inspect done/dismissed, or kind to filter.
Called through algomo_read.
task:getGet one task by ID, including its subtasks and their instructions.Read
Get one task by ID, including its subtasks and their instructions.
Called through algomo_read.
task:completeMark a whole task as done.Edit
Mark a whole task as done.
Called through algomo_edit.
task:dismissDismiss a task — hide it without acting on it.Edit
Dismiss a task — hide it without acting on it. Use complete when the work was actually done.
Called through algomo_edit.
task:completeSubtaskMark one subtask (by its key) done.Edit
Mark one subtask (by its key) done. The task auto-closes once every subtask is resolved.
Called through algomo_edit.
task:skipSubtaskMark one subtask (by its key) not-applicable.Edit
Mark one subtask (by its key) not-applicable. Counts as resolved for auto-close.
Called through algomo_edit.
setup:*8 operations
Agent onboarding: the workspace spec and the build plan.
setup:statusGet the agent-onboarding state for this workspace: whether setup is required before configuration changes are allowed, spec progress per part, and the next action to take.Read
Get the agent-onboarding state for this workspace: whether setup is required before configuration changes are allowed, spec progress per part, and the next action to take.
Called through algomo_read.
setup:getSpecGet the workspace spec — questions about the customer's company, website, existing interactions, and goals.Read
Get the workspace spec — questions about the customer's company, website, existing interactions, and goals. Parts unlock sequentially; answer the current part via setup:answerSpec. Gather real evidence (browse the site, use browser:* ops, or ask your user) — do not guess.
Called through algomo_read.
setup:answerSpecAnswer spec questions.Edit
Answer spec questions. Accepts answers for the current (and earlier) parts only — future parts stay locked until the current one is complete. Once every part is answered, the next step is a build plan (setup:submitPlan).
Called through algomo_edit.
setup:waiveBrowserEvidenceRecord that the user explicitly declined pairing the Algomo browser extension, unblocking the evidence-gated spec parts on fallback evidence.Edit
Record that the user explicitly declined pairing the Algomo browser extension, unblocking the evidence-gated spec parts on fallback evidence. ONLY call this after your user has clearly declined in chat — never to route around the requirement yourself. The reason is recorded verbatim and audited.
Called through algomo_edit.
setup:verifyWebsiteAccessVerify the chatbot's website-browsing tools against what the site actually shows — the mandatory finish line of the website-access build task.Run
Verify the chatbot's website-browsing tools against what the site actually shows — the mandatory finish line of the website-access build task. YOU gather the rendered side: drive the user's paired browser to each page (browser:navigate — tell your user first, you will steer their tab for a minute) and read the rendered text and main-content links (browser:runScript, extraction adapted to the site — SPAs, cookie banners, odd DOM are yours to handle). Submit at least two pages (a listing page and a detail page) with the tool + input that should reproduce each. The server then runs your tool itself and scores the match mechanically: text coverage and item-link coverage. If a page paginates, make sure your tool follows the pages — coverage is scored per page, so completeness beyond page 1 is on you. Iterate until every page passes; the scores are stored and quoted in your final report.
Called through algomo_run.
setup:waiveWebsiteAccessRecord that verified website access is not achievable for this site and the user accepts proceeding without it.Edit
Record that verified website access is not achievable for this site and the user accepts proceeding without it. ONLY call this after your user has explicitly accepted in chat — never to skip verification effort. The reason is recorded verbatim and audited.
Called through algomo_edit.
setup:getPlanGet the current build plan (latest submitted version) and setup progress toward it.Read
Get the current build plan (latest submitted version) and setup progress toward it.
Called through algomo_read.
setup:submitPlanSubmit the build plan: the parts you intend to build (title + description each), grounded in the spec answers, plus a searchDecision — sites with search get a search tool by default: 'planned' spawns its own build task (never write search as a plan part), and skipping requires a recorded reason your user has accepted.Edit
Submit the build plan: the parts you intend to build (title + description each), grounded in the spec answers, plus a searchDecision — sites with search get a search tool by default: 'planned' spawns its own build task (never write search as a plan part), and skipping requires a recorded reason your user has accepted. IMPORTANT: present the plan to your user in chat and get their explicit go-ahead BEFORE submitting. Requires a complete spec. Re-submitting replaces the plan (versions are kept; open build tasks are re-synced). Submitting completes setup, unlocks configuration ops, and spawns one build task per plan part plus fixed messenger-config and test-and-report tasks — work through them via task:list.
Called through algomo_edit.
recipe:*3 operations
Capability playbooks and their templates.
recipe:listList the recipe catalog — capability playbooks with best practices.Read
List the recipe catalog — capability playbooks with best practices. Read them ALL with recipe:get before planning: setup:submitPlan is blocked until every recipe has been read, because a plan is only as good as your knowledge of what the product can do.
Called through algomo_read.
recipe:getGet a recipe's full playbook (markdown) and, for template recipes, the JSON Schema of recipe:apply's input.Read
Get a recipe's full playbook (markdown) and, for template recipes, the JSON Schema of recipe:apply's input.
Called through algomo_read.
recipe:applyStage a recipe's template into a session: a known-good, pre-wired starting point (entities created and attached).GatedEdit
Stage a recipe's template into a session: a known-good, pre-wired starting point (entities created and attached). Read the recipe first (recipe:get) — its input schema and the customization guidance matter. Review what was staged with session:diff and customize it against the workspace spec before saving.
Called through algomo_edit. Refused until the workspace's agent onboarding is complete.
browser:*8 operations
The paired browser extension: captures, tabs, requests, scripts.
browser:infoOverview of the browser:* namespace — what a paired browser extension can do and how to drive it.Read
Overview of the browser:* namespace — what a paired browser extension can do and how to drive it. Call this before the other browser ops. While impersonating another org, the response also explains that browser ops act on your own browser under your real org (not the impersonated one).
Called through algomo_read.
browser:listSessionsList the paired browser-extension sessions currently connected for your org, with the owning user and a browser label.Read
List the paired browser-extension sessions currently connected for your org, with the owning user and a browser label. Each session is one browser; use browser:listTabs to see its tabs. Returns nothing if no extension is paired and connected.
Called through algomo_read.
browser:listTabsList a session's tabs that have the extension enabled, with each tab's live current URL and title.Read
List a session's tabs that have the extension enabled, with each tab's live current URL and title. Pick a tabId from here for browser:getCaptures, browser:runScript, browser:request, and browser:navigate. Only enabled-origin tabs are listed.
Called through algomo_read.
browser:getCapturesDrain the passively-captured request/response records buffered for a specific tab (return-and-clear — repeated calls don't re-deliver).Read
Drain the passively-captured request/response records buffered for a specific tab (return-and-clear — repeated calls don't re-deliver). Defaults to a compact summary: one line per call (method, URL, status, content type, body sizes) — enough to discover which APIs a page uses. Pass include: "full" for bodies (truncated to maxBodyChars, default 2000), and maxRecords to bound the batch. Keep these bounds: a busy page can buffer megabytes, and an oversized result is rejected wholesale — the records are already cleared by then, so they are lost.
Called through algomo_read.
browser:runScriptRun JavaScript in a specific tab's page context (MAIN world) and return its value.Run
Run JavaScript in a specific tab's page context (MAIN world) and return its value. The code is the body of an async function — reference inputs via args, top-level await is allowed, and end with a top-level return of the result (same convention as connector scripts). A script that throws fails the op with the script's error. Only works on enabled-origin tabs.
Called through algomo_run.
browser:requestReplay an HTTP request from inside a specific tab, so it carries that page's cookies (including HttpOnly/SameSite), Origin, and Referer exactly as the app's own calls do — use this to probe the site's APIs.Run
Replay an HTTP request from inside a specific tab, so it carries that page's cookies (including HttpOnly/SameSite), Origin, and Referer exactly as the app's own calls do — use this to probe the site's APIs. Pass the call to replay as a nested request object ({ url, method, headers, body }); the reply comes back under response (status, headers, body). Only works on enabled-origin tabs.
Called through algomo_run.
browser:screenshotCapture a screenshot of a tab's visible viewport (jpeg by default, or png; quality applies to jpeg only).Read
Capture a screenshot of a tab's visible viewport (jpeg by default, or png; quality applies to jpeg only). The image is uploaded to short-lived private storage — you get back a presigned image URL valid for about an hour (the object itself is deleted within a day) plus its pixel dimensions. Only enabled-origin tabs can be captured; the extension briefly activates the target tab to take the shot.
Called through algomo_read.
settings:*2 operations
Workspace-level channel settings, applied immediately.
settings:getMessengerGet the org's messenger (chat widget) channel settings.Read
Get the org's messenger (chat widget) channel settings. allowedDomains restricts which website domains the widget may open on; an EMPTY list means the widget is allowed on every domain — do not clear the list to disable the widget. title is shown in the widget header and empty state; avatarUrl is the public URL of the uploaded avatar shown on bot messages (null = default icon), scaled within its frame by avatarScale (percent); mainColor is the accent hex behind the trigger bubble, the visitor's message bubbles, and the default avatar; horizontalOffset/bottomOffset inset the trigger bubble from the page's bottom-right corner, in px.
Called through algomo_read.
settings:updateMessengerUpdate the org's messenger (chat widget) channel settings — a partial update; omitted fields keep their current value.GatedEdit
Update the org's messenger (chat widget) channel settings — a partial update; omitted fields keep their current value. allowedDomains, when provided, is the FULL new list (not a patch) of bare domains like example.com — no protocol or path; entries are normalised (lowercase, www stripped) and deduplicated, max 200; an empty list allows the widget on every domain. title (1–80 chars) is shown in the widget header and empty state. avatarUrl is the image shown as the bot avatar: a URL from the avatar upload flow (validated as this org's file) or any other public https image URL, stored as-is; pass null to clear it. avatarScale (25–200 percent, default 100) scales the uploaded avatar image within its frame and avatarBackground (default true) toggles the frame's solid fill behind it — neither affects the default icon. mainColor (hex like #4f46e5, default #091724) is the accent behind the trigger bubble, the visitor's message bubbles, and the default avatar; the widget picks light or dark foreground automatically. horizontalOffset/bottomOffset (0–400 px, default 16) inset the trigger bubble from the page's bottom-right corner. Live op — takes effect immediately, no session/save step.
Called through algomo_edit. Refused until the workspace's agent onboarding is complete.
connection:*3 operations
Third-party connections the workspace has authorised.
connection:listList the org's third-party connections (OAuth and API key).Read
List the org's third-party connections (OAuth and API key). Returns redacted summaries — no encrypted credentials are exposed. To create, reauthorize, or delete connections, direct the user to https://dash.algomo.com/settings/connections.
Called through algomo_read.
connection:getGet a single connection by ID.Read
Get a single connection by ID. Returns a redacted summary — no encrypted credentials are exposed. Use to look up a connectionId before referencing it from a workflow action input.
Called through algomo_read.
connection:listForFieldList the valid values for a workflow action's connection field.Read
List the valid values for a workflow action's connection field. Pass the field's acceptedConnections (from workflow:getNodeDefinition) and receive every option the picker would show: tenant connections plus any 'Algomo managed' built-in options the platform offers for those services. Each option's value is the exact JSON to write into the action's connectionId input — either a user connection ref { type: "user", id, service, tokenType? } or a managed ref { type: "managed", service }. Prefer this op over connection:list when wiring a connection field on a workflow node.
Called through algomo_read.
chatbot:*1 operation
A chatbot's website install snippet.
chatbot:getInstallationGet a chatbot's website install snippet — the Algomo pixel, which powers the messenger and visitor tracking.Read
Get a chatbot's website install snippet — the Algomo pixel, which powers the messenger and visitor tracking. The snippet names the chatbot it serves: pages carrying it are handled by this chatbot, while pages with another chatbot's snippet are handled by that one, so a site can point different areas at different chatbots. The default chatbot also serves any page whose snippet names no chatbot. Returns the two ways to install (the site's own HTML, or a Google Tag Manager container) with the exact snippet and placement instructions for each, plus the chatbot's page where the user can copy it themselves. Installing is the go-live step, not a prerequisite for testing — the paired browser extension injects the pixel into your own browser, so a chatbot can be tried on the customer's real site before their site carries the snippet. Prefer sending them the link over pasting the snippet into chat. Read-only: putting it on the site is their change to make.
Called through algomo_read.
link:*1 operation
Dashboard links to any page, optionally opening a session.
link:getBuild a dashboard link to any app page for your user.Read
Build a dashboard link to any app page for your user. target.page names the page and the rest of target its params (see the schema: a chatbot, a workflow's runs tab, a conversation, a wiki page by its folder-slug/page-slug path, the settings pages). Pass sessionId to open the page with that edit session selected, so the user sees the staged changes in place — this is how you show your user what you built before it is saved. Never assemble dashboard URLs yourself.
Called through algomo_read.
Entity types
What a workspace is made of: the things the entity operations create and change, and the related types with operations of their own. Open one for the full description and how it relates to the others.
pageA website page identified by URL.
A website page identified by URL.
chatbotAI chatbot with goal-driven lead capture and conversation.
AI chatbot with goal-driven lead capture and conversation.
conversionRuleTracks conversion events (page views, clicks, form submissions).
Tracks conversion events (page views, clicks, form submissions).
workflowAutomation workflow with triggers, actions, and branching paths.
Automation workflow with triggers, actions, and branching paths.
connectionStored credentials for a third-party service integration.
Stored credentials for a third-party service integration.
secretStored hashed secret used to authenticate inbound requests.
Stored hashed secret used to authenticate inbound requests.
wikiPageA page in the org's knowledge base — the general-purpose store for org information.
A page in the org's knowledge base — the general-purpose store for org information.
wikiFolderA top-level folder grouping wiki pages; its slug is the first segment of every member page's path.
A top-level folder grouping wiki pages; its slug is the first segment of every member page's path.
agentUser-authored AI agent configuration usable in workflows.
User-authored AI agent configuration usable in workflows.
cardDefinitionAI-authored interactive card template — plain JS module + Tailwind, served inside an iframe.
AI-authored interactive card template — plain JS module + Tailwind, served inside an iframe.
bookingCalendarBooking calendar — a reusable meeting type with host, availability, and meeting length.
Booking calendar — a reusable meeting type with host, availability, and meeting length.
taskSomething a user or (more often) an agent needs to resolve — an onboarding step or a failing workflow.
Something a user or (more often) an agent needs to resolve — an onboarding step or a failing workflow.
connectorA single reusable recipe (an HTTP request or script) that calls a website's own API from the visitor's browser.
A single reusable recipe (an HTTP request or script) that calls a website's own API from the visitor's browser.
The runtime schema operation returns the same schemas as this page.