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.lobsterGenerate concept, architecture, flow, and whiteboard diagrams in multiple formats.
Helps maintainers triage, clean up, and resolve OpenClaw secret scanning alerts.
Investigate test memory growth, heap leaks, and OOM root causes.
Discover and control Sonos speakers for playback, volume, status, and grouping.
Summarize CodexBar local cost logs by model for Codex or Claude.
Automate web page workflows, login checks, tab handling, and recovery steps.
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.