Metadata (upcoming)
Available in version 1.1.72 (not yet live).
Read TaskBot and agent details.
API zw.getTaskbotInfo()
, zw.getAgentInfo()
const taskbotInfo = await zw.getTaskbotInfo();
await zw.log("variables", taskbotInfo.variables);
const agent = zw.getAgentInfo();
await zw.log("agent version", agent.version);
At a Glance
zw.getAgentInfo()
→ returns{ version: string }
(for example,{ version: "1.1.72" }
).async/sync*
await zw.getTaskbotInfo()
→ returns:{ id: number, runType: "immediate" | "scheduled" | "webhook", currentRunResult: "success" | "warning" | "error" | "manually_stopped", variables: { ref_id: number, variableNames: string[] }, tables: Array<{ ref_id: number, type: "G_SHEETS" | "ZW_NATIVE", columnNames: string[] }>, webhookURL: string | null, }
*async
in browser, sync
locally (see Local vs. Browser Execution).
Examples
Branch behavior by run type
const info = await zw.getTaskbotInfo();
if (info.runType === "scheduled") {
await zw.log("Running in scheduled mode");
}
Get tables by type
const info = await zw.getTaskbotInfo();
const gSheets = info.tables.filter(t => t.type === "G_SHEETS");
await zw.log("Google Sheets tables", gSheets);
Add webhook URL to state and reuse later
// @zw-run-locally
import axios from "axios";
// Add TaskBot webhook to global state
const info = await zw.getTaskbotInfo();
const webhookURL = info.webhookURL;
if (webhookURL) {
(zw.globalState.access().webhooksToTrigger ||=[]).push(webhookURL);
}
// In another TaskBot, access global state and trigger webhooks
const webhooks = zw.globalState.access().webhooksToTrigger || [];
for (const url of webhooks) {
await axios.post(url);
}
Notes
Names, not values. For tables and variables, metadata returns names (variable names and column names). To read values, use
zw.getRef()
.Async behavior. In the browser,
zw.getTaskbotInfo()
is async — useawait
. When Write JS code runs locally,await
is optional (examples useawait
for consistency).zw.getAgentInfo()
is sync everywhere.
Last updated
Was this helpful?