2026-04-08-0208.md
Session: 2026-04-08 02:08:12 UTC
- Session Key: agent:main:main
- Session ID: a86632c5-66ec-4196-a16d-1fdf2be41206
- Source: webchat
Conversation Summary
assistant: It can work either way, depending on how that “todo skill” is implemented and how your OpenClaw instance is configured.
1) Natural language (“add xyz to my todo”) — sometimes automatic
If the todo capability is exposed to the agent as an actual available skill/tool workflow, the agent can usually decide to use it just from plain text like:
“add xyz to my todo”
That’s the “agent picks the right capability” path.
But it only works reliably if:
- the skill is installed/available to the running agent, and
- the agent has a clear way to execute it (API/tool/action), not just documentation, and
- nothing else is competing/ambiguous (e.g., multiple “todo-ish” integrations).
2) Slash command (/todo add xyz) — always explicit
If the skill registers a /command entrypoint, using it is the deterministic way:
- No interpretation step
- No ambiguity
- You get exactly that action
Rule of thumb
- If you want “it just works when I text you on Telegram”, you need the todo skill to be something the agent can invoke programmatically, and you should test a few natural phrases.
- If you want “100% reliable, minimal surprises”, use the
/command (or have the agent reply with a confirmation + then run it).
If you tell me what you’re using for todos (Notion? Todoist? a markdown file in git? Apple Reminders?), I can suggest the cleanest approach (auto-invoke vs slash command vs both). user: yea adding a task to my todo database in notion [message_id: e3341b99-d14c-43b2-b4d9-219f44107ba2] assistant: For a Notion “add todo” flow, you can make it work from plain Telegram text (“add xyz to my todo”) — but it won’t magically happen just because you created a skill. You need one of these two wiring patterns:
Option A (recommended): Natural language → agent uses Notion skill/tool
You message normally (“add xyz…”), and the agent decides to call the Notion API to create a new page in your Notion database.
To make that reliable, you need:
- Notion integration + API key configured (
NOTION_API_KEY, shared access to the database) - A known target database (store the
database_idsomewhere in your config/memory/docs so the agent doesn’t have to guess every time) - A clear mapping of properties (e.g.,
Nametitle,Status,Due, etc.)
If those are in place, plain-language requests usually work fine.
Option B: Slash command → deterministic entrypoint
You create a chat command like:
/todo add Buy milk/todo add "Call Alex" due:tomorrow
This is the “always does exactly that” path. No ambiguity, no guessing which database, no needing to infer fields.
What I’d do for you
- Use both: natural language for convenience, and a
/todocommand as a fallback when you want certainty. - Pick one canonical Notion database and property schema.
Two quick questions to wire it up cleanly
- What’s the Notion database link (or name) for your todo database?
- What are the key properties you care about besides the title (e.g.,
Status,Due date,Priority,Project)? user: notion is already configured and you had added a task for me earlier. i just want to make a skill for it so that next time it executes faster [message_id: b7c180d0-dbaf-43ed-8262-d49b1e54734b] assistant: I checked memory and don’t see the earlier Notion todo action saved here, so I can’t reuse the exact database/property IDs from that.
On the “make a skill so it executes faster” goal: a skill mostly makes it more reliable/consistent, not inherently faster. Speed is usually dominated by:
- model turn(s) (how much the agent has to “figure out”)
- Notion API round trips (network)
- any “search the database to find the right one” step
What does make it faster in practice
-
Remove discovery steps
- Hardcode / pre-store the
database_id(and common property names/options). - Then “add todo” becomes a single Notion API call (
POST /v1/pages) instead of “search → inspect schema → create”.
- Hardcode / pre-store the
-
Provide an explicit, thin entrypoint
- A chat command like
/todo Buy milk(or/todo add …) avoids interpretation overhead and ambiguity. - Natural language can still work, but it sometimes triggers extra “are you sure / which database / which fields” reasoning.
- A chat command like
-
Use a small local wrapper script
- Example:
automation/notion-add-todo.mjs "Buy milk" --due tomorrow --priority high - The agent (or a slash command) calls the script with parsed args → script hits Notion directly.
- This is usually the fastest + most deterministic pattern.
- Example:
Key point
A “skill” that is only documentation/playbook won’t speed anything up. A “skill” that exposes a direct command or helper script will feel faster because it skips the thinking + discovery steps.
If you want, tell me:
- the Notion database_id (or paste the database URL), and
- the exact properties you want to set by default (Status? Due? Priority?)
…and I’ll propose a minimal /todo command + wrapper script approach that makes adding tasks basically one-shot.
user: why don't you find the todo database in my notion yourself and create the skill for me
[message_id: 670689f5-bba2-43a7-af7e-47423f5cdb11]
assistant: I can, and I did it.
- I searched your Notion workspace for data sources and found your todo DB as “Tasks Tracker” (data_source_id
2c744db7-5011-80b2-895f-000be36a8ded). - I created a skill called
notion-todothat uses a bundled script to add a task with a single Notion API call (no “figure out which database” step).
What I made
- Skill folder:
/home/ubuntu/.openclaw/workspace/skills/notion-todo/ - Packaged installable skill file:
/home/ubuntu/.openclaw/workspace/tmp/notion-todo.skill
What it does (fast path)
It runs this script under the hood:
python3 skills/notion-todo/scripts/add_todo.py "Task title" --due "2026-04-07" --priority High
Next step
Tell me how you want to “install” skills in your setup:
- do you import the
.skillfile via your OpenClaw UI/command, or - do you have OpenClaw configured to load local skills from a folder?
If you tell me which, I’ll give you the exact one-liner to get notion-todo active and then we can test by texting: “add buy milk to my todo”.
user: idk i haven't created an openclaw skill before, also that was the wrong database, it's this one https://www.notion.so/snakeee/TO-DO-23044db7501180cd9b42f5151c00b8cd
[message_id: f5dc7f7b-64be-45f3-9f14-c4b28c6802f7]
assistant: Got it — you’re right. I picked the wrong DB because “Tasks Tracker” looked like the canonical todo DB, but your link is a page that contains an inline database.
What I found from your link
- Page:
TO-DO(id23044db7-5011-80cd-9b42-f5151c00b8cd) - Inline database inside that page:
TO-DO(database id23044db7-5011-805d-b920-f4976efef2f7) - Actual API target for fast inserts: data_source_id
23044db7-5011-8074-8af9-000b571c0daf - Properties:
Name(title),Status,Due Date,Category,Project,Milestone
I updated the notion-todo skill to use that TO-DO data source, and re-packaged it:
/home/ubuntu/.openclaw/workspace/tmp/notion-todo.skill
One important note
Your TO-DO database does not have Priority or Description, so I removed those from the script and replaced them with --project and --milestone.
About installing/using the skill
OpenClaw “skills” are generally used by the agent once they’re installed/available; in many setups there’s also a UI/import flow for a .skill file. Since you’re not sure how your instance is set up:
- Tell me what
/commandsshows for anything skill-related (even just the lines around “skill” / “import” / “install”), or - If you can, tell me where you configure OpenClaw skills (config file vs UI).
Then I’ll give you the exact steps to install tmp/notion-todo.skill so that next time you message “add xyz to my todo” it can immediately hit the right Notion data source.
Cleanup question
I created a couple “OpenClaw test task …” items while validating the API. Want me to delete those from Notion?
user: i don't know how to configure it that's why i'm asking you... i do see notion-todo in the skills section in the ui though
[message_id: aa14654f-52a3-4046-88ce-eee5ad736566]
assistant: If it shows up in the UI “Skills” section, that usually means you’re already configured correctly: OpenClaw is scanning a local skills directory and has picked up skills/notion-todo/. In that case you don’t need to “install” the .skill file at all.
What to do next (the practical test)
Just message me (here or Telegram):
add “Buy milk” to my todo
and I should use the notion-todo skill and create a row in your TO-DO database.
If you want to be slightly more explicit, try:
create a task: Buy milk due 2026-04-07
Why it may still sometimes ask questions
Even with the skill loaded, I may ask for clarification if you say things like “tomorrow” (need a date) or if you include fields like category/project/milestone that don’t match an existing option in the database.
Quick confirmation
Do you want the default behavior to be:
- Status = Not started always, unless you specify otherwise? user: so where did we configure it [message_id: dbe648ab-e6ba-4994-9520-a1b6305758e0] assistant: It’s configured implicitly via your Gateway config + workspace layout, not something you manually “registered”.
Here’s what’s going on in your instance:
- Your workspace is set in config
- In
/home/ubuntu/.openclaw/openclaw.jsonyou have:agents.defaults.workspace = "/home/ubuntu/.openclaw/workspace"
- OpenClaw auto-loads “native skills”
- Also in that same config:
commands.nativeSkills = "auto"This tells OpenClaw to automatically surface skills it can find (and show them in the UI).
- The skill appears because it exists on disk under the workspace
- We created it at:
/home/ubuntu/.openclaw/workspace/skills/notion-todo/Most UIs list anything under that skills folder as “available”, which is why you now see it in the Skills section.
So: you didn’t configure notion-todo specifically anywhere—OpenClaw is just auto-discovering local skills from your workspace.
If you want, I can point you to the exact UI page/setting name where it shows the “skills path” / “local skills directory” so it’s obvious going forward—tell me what the UI section is called (e.g., “Settings → Skills” or “Admin → Skills”).
user: yes pls
[message_id: cc0578e5-e148-4209-b9f8-d84bc510d97c]
assistant: In your setup, there may not be a UI knob for this—skills are being discovered because of two config values in /home/ubuntu/.openclaw/openclaw.json:
agents.defaults.workspace = "/home/ubuntu/.openclaw/workspace"commands.nativeSkills = "auto"
That’s the “setting” that makes the UI show your local skills.
Where to look in the UI
Depending on which OpenClaw UI build you’re using, the place that usually makes this obvious is:
- Settings (gear) → Agent / Workspace
- Look for something like Workspace Path or Project Root
- Settings → Skills
- Look for Local skills directory / Skills path / Native skills
- Skills page
- Some UIs show a “Loaded from …/skills/…” hint per skill (or a “source: local” badge)
If you tell me exactly what you see, I can point to the right spot
What’s the exact navigation label you’re clicking to get to the “Skills section” (left sidebar name / top tab name), and can you paste a screenshot of that page? I’ll tell you precisely where it indicates the source/path (or confirm it doesn’t, and we’ll add a small note to your docs so it’s discoverable next time).