OpenapiGuide
Returns one step of the caller org's journey to todo — clearing a manual mark…
Returns one step of the caller org's journey to todo — clearing a manual mark or a skip — and returns the refreshed journey.
POST /v1/guide/steps/{id}/reset
| Address | https://api.hanzo.ai/v1/guide/steps/{id}/reset |
| Method | POST |
| Operation | post_guide_steps_by_id_reset |
| Auth | Authorization: Bearer $HANZO_API_KEY |
Returns one step of the caller org's journey to todo — clearing a manual mark or a skip — and returns the refreshed journey. Reset is never dependency-gated. Auto-detect runs on the next read, so a step the org has in fact completed elsewhere goes straight back to done.
Request
1 field.
| Field | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes | ID is the step's id, as it appears in the journey (e.g. |
Response
| Status | Body | Meaning |
|---|---|---|
200 | overviewView | ok |
200 body — 34 fields.
| Field | In | Type | Always | Description |
|---|---|---|---|---|
custom | body | boolean | — | Custom is true when the org replaced the shared playbook with one of its own — the difference between "everyone's checklist" and "the one you authored". |
funnel | body | Funnel | — | |
funnel.available | body | boolean | — | Available separates "this org has no traffic" from "we could not ask". |
funnel.orders | body | integer | — | Orders counts completed orders in the window — purchases, not carts started. |
funnel.pageviews | body | integer | — | Pageviews counts page events in the window, one per view rather than per person, so a single visitor reading ten pages counts ten. |
funnel.revenue | body | number | — | Revenue is the sum of the amounts those orders reported, in whatever currency the beacon stamped on them (major units, e.g. |
funnel.signups | body | integer | — | Signups counts completed signups in the window, the step where an anonymous visitor becomes somebody with an account. |
funnel.visitors | body | integer | — | Visitors is the number of DISTINCT people seen in the window, counted by the beacon's distinct id — so it is unique visitors, not sessions and not views. |
funnel.windowDays | body | integer | — | WindowDays is the length of the trailing window every count covers, so a reader knows whether 40 signups is a month or a day. |
progress | body | progressView | — | |
progress.done | body | integer | — | Done counts steps that are FINISHED — done and skipped alike, since a step the org deliberately passed over is not still owed. |
progress.next | body | string | — | Next is the id of the step to do next: the first available, unfinished step in authoring order. |
progress.percent | body | integer | — | Percent is done/total as a whole number 0-100, rounded, so a caller renders a bar without recomputing it. |
progress.total | body | integer | — | Total is how many steps this org's journey holds — the ENABLED steps of the playbook, so it shrinks when an operator disables one and does not match the… |
steps | body | stepView[] | — | Steps are every enabled step with the org's own state folded in, in authoring order. |
steps[].args | body | object | — | Args are the tool's default arguments, merged under whatever the caller passes at run time. |
steps[].args.* | body | object | — | |
steps[].automatable | body | boolean | — | Automatable is true when the Business AI can run this step (it names a tool). |
steps[].available | body | boolean | — | Available is true when every dependency is done or skipped. |
steps[].blockedBy | body | string[] | — | BlockedBy lists the unfinished dependencies keeping the step unavailable. |
steps[].deps | body | string[] | — | Dependencies are step ids that must be done/skipped before this step is available. |
steps[].detail | body | string | — | Detail is the prose/juncture — what the Guide asks or explains here. |
steps[].draft | body | string | — | Draft, when set, is the prompt the embedded AI answers first; its output is folded into one of Args before the tool runs. |
steps[].draftInto | body | string | — | DraftInto names the argument the drafted text lands in. |
steps[].enabled | body | boolean | — | Enabled is the admin on/off lever; absent reads as enabled. |
steps[].id | body | string | — | ID is the step's id, as it appears in the journey (e.g. |
steps[].section | body | string | — | Section is the phase (section id) this step groups under. |
steps[].signal | body | string | — | Signal names the machine detector that auto-marks this step done. |
steps[].source | body | string | — | Source records what marked the state: manual, auto (detected) or agent. |
steps[].state | body | string | — | State is the step's per-org lifecycle state: todo|in_progress|done|skipped. |
steps[].title | body | string | — | Title is the one-line quest as a person reads it in the checklist. |
steps[].tool | body | string | — | Tool is the MCP tool the Business AI runs for "do it for me". |
title | body | string | — | Title is the playbook's name as it heads the checklist. |
version | body | string | — | Version identifies the playbook this journey came from, so a caller can tell that the checklist itself changed under them. |
Failure carries the platform error shape — see Errors.
Examples
hanzo guide steps reset <id>import { Configuration, GuideApi } from 'hanzoai';
const api = new GuideApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.postGuideStepsByIdReset({ id: 'id' });from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import GuideApi
client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = GuideApi(client).post_guide_steps_by_id_reset(id='id')cfg := cloud.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := cloud.NewAPIClient(cfg)
resp, _, err := client.GuideAPI.PostGuideStepsByIdReset(context.Background()).Execute()
if err != nil {
return err
}use hanzo_cloud::apis::{configuration::Configuration, guide_api};
let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();
let result = guide_api::post_guide_steps_by_id_reset(&cfg, Default::default()).await?;import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.GuideApi;
ApiClient client = new ApiClient();
client.setRequestInterceptor(b -> b.header("Authorization", "Bearer " + System.getenv("HANZO_API_KEY")));
var result = new GuideApi(client).postGuideStepsByIdReset();curl -X POST https://api.hanzo.ai/v1/guide/steps/<id>/reset \
-H "Authorization: Bearer $HANZO_API_KEY"The door reaches guide through the guide tool, which names its 19 operations with its own verbs — this one among them, under a name only the door declares. describe explains any of them:
curl -X POST https://api.hanzo.ai/v1/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe",
"arguments": {
"op": "get_guide"
}
}
}'How is this guide?