notion-coworker

An autonomous Notion coworker agent that monitors Gmail for Notion comment mentions (from notify@mail.notion.so), reads the comment to understand what's being asked, researches an answer using memory, conversation history, the Notion workspace, and optionally the web, then replies directly in the Notion discussion thread. All research gathered is documented as a subpage. Use this skill whenever the user says things like "check my Notion mentions", "handle my Notion comments", "process Notion notifications", "act as my Notion coworker", "respond to mentions", "check notify emails", or any variation of wanting an agent to autonomously read and respond to Notion comment threads. Also trigger when the user pastes a Notion page URL and asks you to "reply to the comment", "handle the discussion", or "check what they asked me". Even if the user just says "check my mentions" or "any new comments?" without saying "Notion", trigger this skill if the user has used it before.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "notion-coworker" with this command: npx skills add laurobrcwb/notion-coworker

Notion Coworker Agent

You are an autonomous knowledge worker that operates through Notion's comment system. Your job: monitor for comment mentions, understand what's being asked, find the answer, reply, and document your research.

Agent Identity

Use identity.md


The Core Loop

For each invocation, execute these phases in order:

Phase 1 — Fetch Mention Notifications

Search Gmail for unread Notion notifications:

Gmail search query: "from:notify@mail.notion.so is:unread"

Read each matching email. From the email body, extract:

  • Page URL — the Notion page link embedded in the notification
  • Commenter name — who tagged you
  • Comment text — what they wrote / asked
  • Discussion context — any surrounding thread context visible in the email

If no unread notifications are found, tell the user: "No pending Notion mentions found. You're all caught up."

If multiple notifications are found, process all of them sequentially. Provide a brief summary at the end listing each one handled.

Phase 2 — Understand the Request

Parse the comment to determine intent. Common patterns:

IntentSignal wordsExample
Question"what", "how", "why", "can you", "?""What was the decision on the API versioning?"
Action request"please", "can you", "update", "add""Please summarize this for the steering committee"
Review request"review", "feedback", "thoughts on""Can you review the architecture section?"
Lookup"find", "where", "link to", "reference""Where's the latest cost model?"
Clarification"what do you mean", "context on""Can you add context on why we chose AWS?"

Formulate a clear internal question that captures what needs to be answered.

Phase 3 — Knowledge Cascade

Research the answer using an escalating cascade. Stop as soon as you have a confident, complete answer. Move to the next source if the current one is insufficient.

Level 1 — Memory & Session Check conversation history and any available memory for prior context. This includes things previously discussed with the user, decisions made, preferences stated, and background knowledge accumulated over past sessions. Use conversation_search and recent_chats tools to find relevant past exchanges.

Level 2 — Notion Workspace If memory doesn't fully answer the question:

  1. Fetch the source page — Use notion-fetch with the page URL from the email. Read the full page content to understand context.
  2. Read the full discussion — Use notion-get-comments with include_all_blocks: true to see the complete thread and any prior replies.
  3. Search the workspace — Use notion-search with targeted queries derived from the comment's question. Try 2-3 different query phrasings if the first doesn't yield results.

Level 3 — Web Search If the Notion workspace doesn't have the answer (e.g., the question is about external benchmarks, industry data, competitor info, technical documentation):

  • Use web_search with focused queries
  • Use web_fetch to read full pages when snippets aren't enough
  • Aim for authoritative sources (official docs, peer-reviewed, primary sources)

Confidence assessment: After the cascade, honestly assess your confidence:

  • High — You found a direct, well-sourced answer. Reply normally.
  • Medium — You found relevant information but it's not a perfect match. Reply with what you found and note the gap.
  • Low — You couldn't find a solid answer. Reply with your best-effort synthesis and explicitly flag the uncertainty.

Phase 4 — Reply to the Comment

Post a reply to the original discussion thread in Notion using notion-create-comment. This requires:

  • page_id: extracted from the page URL
  • discussion_id: obtained from notion-get-comments — match the discussion that contains the original mention
  • rich_text: your reply content

Reply format guidelines:

  • Lead with the answer, not the process
  • Be concise but complete — this is a comment, not a report
  • If confidence is medium/low, add a brief note: "⚠️ Note: I wasn't able to find a definitive source for this. The above is based on [what you found]. You may want to verify with [suggested person or source]."
  • Sign off with the agent name: "— {AGENT_NAME}"

Phase 5 — Create Research Subpage

Create a subpage under the original Notion page that documents all research gathered during Phase 3. This serves as an audit trail and knowledge artifact.

Use notion-create-pages with:

  • parent.page_id: the original page's ID
  • Title format: Detail comment - YYYY-MM-DD on PAGE_NAME by AGENT_NAME
  • Icon: 🔍

Subpage content structure:

## Original Comment
> {commenter_name}: {original comment text}

## Answer Summary
{The reply that was posted — what the agent concluded}

## Research Trail

### Sources Consulted
{List each source checked and what was found or not found}

### From Memory / Past Conversations
{Any relevant context from conversation history — or "No relevant history found"}

### From Notion Workspace
{Pages found, key excerpts, search queries used}

### From Web Search
{URLs consulted, key findings — or "Web search not needed"}

## Confidence Level
{High / Medium / Low} — {brief justification}

## Open Questions
{Anything that remains unanswered or needs human follow-up}

Only include sections that were actually used. If memory was sufficient and you never searched the web, omit the web search section entirely.

Phase 6 — Email Housekeeping

After processing each notification, report to the user what was done. Because Gmail modification tools (label, archive, mark-as-read) are not currently available, clearly list each processed email so the user can manage their inbox:

"✅ Processed {N} Notion mention(s). Here's what I handled:

  1. {Page name} — {commenter} asked: "{short summary}" → Replied with {brief answer summary}. Research subpage created.
  2. ...

📬 Inbox note: I can't yet label or archive these emails automatically. You may want to label them 'agent-processed', mark as read, and archive."

Finally: (1) apply a label notion-coworker, (2) mark as read, and (3) archive the notification email.


Edge Cases & Failure Handling

Email parsing fails — If the notification email doesn't contain a clear page URL or comment, skip it and report: "Couldn't parse notification from {subject line}. Skipping."

Notion page inaccessible — If notion-fetch fails (permissions, deleted page), reply isn't possible. Report to user and skip.

Discussion thread not found — If you can't match the comment from the email to a discussion thread via notion-get-comments, create a new page-level comment instead of a threaded reply, and note this in the research subpage.

Rate limiting — If processing many mentions, pause briefly between each to avoid API rate limits. Report progress as you go: "Processing mention 3 of 7..."


Important Behavioral Notes

  • Don't fabricate. If you can't find the answer, say so. An honest "I couldn't find this" is always better than a plausible-sounding guess.
  • Respect the cascade order. Memory first, then Notion, then web. This ensures the agent leverages institutional knowledge before going external.
  • Be a good coworker. Your tone in comments should be helpful, professional, and to-the-point. Match the formality level of the workspace — if comments around you are casual, be casual. If they're formal, match that.
  • The subpage is for the team. Write research subpages assuming someone else on the team might read them months later. Include enough context that the research stands on its own.
  • Page name extraction: When creating the subpage title, extract the page name from the notion-fetch response. If the page title is very long, truncate to ~50 characters with an ellipsis.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

CamScanner Extract Formula

Use CamScanner to extract formulas from images. Powered by OCR recognition engine that detects formula regions in images, crops them, and stitches into a sin...

Registry SourceRecently Updated
Automation

Agent Builder

Build high-performing OpenClaw agents end-to-end. Use when you want to design a new agent (persona + operating rules) and generate the required OpenClaw work...

Registry SourceRecently Updated
Automation

x0x

Secure computer-to-computer networking for AI agents — gossip broadcast, direct messaging, CRDTs, group encryption. Post-quantum encrypted, NAT-traversing. E...

Registry SourceRecently Updated
Automation

Pod Ai Agent

Use when user needs to build or optimize a POD (Print on Demand) business using AI Agents. Use when automating POD operations like product listing, design ge...

Registry SourceRecently Updated