Triage inbox messages, route intents, track replies, and generate follow-up summaries.
Copy the install command and let the AI configure it · recommended for beginners
Please install the "taskflow-inbox-triage" skill from askskill: 1. Download https://raw.githubusercontent.com/openclaw/openclaw/main/skills/taskflow-inbox-triage/SKILL.md 2. Save it as ~/.claude/skills/taskflow-inbox-triage/SKILL.md 3. Reload skills and tell me it's ready
Please classify today’s inbox emails by intent: reply now, delegate, waiting for client reply, or archive only, and suggest the next action for each email.
A grouped email list by intent with priorities and recommended next actions.
Organize all sent emails that are still awaiting replies, listing send time, recipient, and subject, and mark which ones need follow-up within 48 hours.
A waiting-for-reply follow-up list with overdue alerts and suggested follow-up order.
Based on this week’s inbox and sent emails, summarize key communication topics, open items, completed items, and tasks to continue next week.
A concise weekly communication summary highlighting key items and follow-up actions.
This is a concrete example of how to think about TaskFlow without turning the core runtime into a DSL.
Triage inbox items with one owner flow:
stateJson.waiting only when an outside reply is required.stateJson shape{
"businessThreads": [],
"personalItems": [],
"eodSummary": []
}
Suggested waitJson when blocked on Slack:
{
"kind": "reply",
"channel": "slack",
"threadKey": "slack:thread-1"
}
const taskFlow = api.runtime.tasks.flow.fromToolContext(ctx);
const created = taskFlow.createManaged({
controllerId: "my-plugin/inbox-triage",
goal: "triage inbox",
currentStep: "classify",
stateJson: {
businessThreads: [],
personalItems: [],
eodSummary: [],
},
});
const child = taskFlow.runTask({
flowId: created.flowId,
runtime: "acp",
childSessionKey: "agent:main:subagent:classifier",
task: "Classify inbox messages",
status: "running",
startedAt: Date.now(),
lastEventAt: Date.now(),
});
if (!child.created) {
throw new Error(child.reason);
}
const waiting = taskFlow.setWaiting({
flowId: created.flowId,
expectedRevision: created.revision,
currentStep: "await_business_reply",
stateJson: {
businessThreads: ["slack:thread-1"],
personalItems: [],
eodSummary: [],
},
waitJson: {
kind: "reply",
channel: "slack",
threadKey: "slack:thread-1",
},
});
if (!waiting.applied) {
throw new Error(waiting.code);
}
const resumed = taskFlow.resume({
flowId: waiting.flow.flowId,
expectedRevision: waiting.flow.revision,
status: "running",
currentStep: "route_items",
stateJson: waiting.flow.stateJson,
});
if (!resumed.applied) {
throw new Error(resumed.code);
}
taskFlow.finish({
flowId: resumed.flow.flowId,
expectedRevision: resumed.flow.revision,
stateJson: resumed.flow.stateJson,
});
skills/taskflow/examples/inbox-triage.lobsterVerify an OpenClaw release is fully published and working across all channels.
Fetch GitHub issues, create fixes, open PRs, and handle reviews.
Convert text to speech locally and offline with sherpa-onnx, no cloud needed.
Regenerate OpenClaw release changelog sections from Git history before releases.
Prepare and verify OpenClaw stable or beta releases and release notes.
Create and review technical docs and agent instruction files in repositories.
Helps users triage workspace content items for next-step handling.
Organize inboxes, draft emails, verify sending, and follow up safely.
Triage support tickets by priority, ownership, and duplicate or known issue checks.
Triages issues with label-driven state transitions and durable, resumable records.
Store, organize, and retrieve inbox content for faster follow-up work.
Summarize support intake markers into clear digests for faster triage.