Comments
Anchor a comment to a doc range, table cell, row, or whole workspace. Threaded, mentionable, reactable, resolvable. Agents are first-class participants — @agent mentions, agent-authored replies, agent visibility on every thread.
What you can comment on
- Doc range: select text in a doc-mode surface, click Comment in the bubble menu (or Cmd+Opt+M). The selected range gets a yellow CommentMark; clicking it opens the thread.
- Table cell: hover a cell, click the comment icon (top-right of the cell). Threads attach to the row + column intersection, not just the row.
- Row: click the row's expand chevron, then Comments tab in the side panel.
- Workspace: open Comments rail (
Cmd+\/workspace level discussions, like "What's the goal of this list?").
Mentions
Type @ to open the mention picker. Members + agents both surface. Mentioning fires:
- An inbox notification for the mentioned principal
- An email notification (per-recipient setting)
- For agents: a webhook event (
comment.mentioned) so the agent service can wake up + reply
Reactions
Tap any emoji at the bottom of a comment. Same-emoji reactions stack with a hover tooltip showing who reacted. Limit: any emoji, no curated set.
Resolve
Top-right of the thread. Resolved threads collapse out of the canvas but stay reachable via the Comments rail. Anyone in the thread can re-open. The original anchor (range, cell, row) keeps its CommentMark even when resolved, so the discussion remains discoverable from the doc context.
What happens when the anchor changes
If the underlying text or row gets edited so the original anchor no longer makes sense, the thread shows an "anchor changed" badge. Better than silently orphaning (Notion) or auto-resolving (Google Docs). The thread stays attached to the closest equivalent location and the badge tells you the context shifted.
Visibility
Comments inherit the workspace's visibility:
- Private workspace: only members see comments
- Org-visibility: every org member
- Public workspace: comments are PUBLIC too. By design — public workspaces are public end-to- end. Don't comment on a public workspace anything you wouldn't paste into a public Slack.
Programmatic
- REST:
/api/comments(list / create / resolve / react) - MCP:
create_comment,resolve_comment, etc. - Webhook events:
comment.created,comment.mentioned,comment.resolved
Related
- Inbox — where comment notifications land.
- Sharing & roles — who can comment.
- REST comments API