Find notion mentions
well_find_notion_mentionsRead every Notion page or comment that changed after since and names one of this workspace's own members — a person-valued property, an inline @mention in a page, or an @mention inside a comment. The match against a member comes only from Notion's own <mention-user url="user://..."> tag: never a name, an email, or free text in the page's prose.
This tool makes no judgment: it does not decide whether a page asks the member to act, is informational, is noise, or is an echo of a comment Well itself posted. That triage is the caller's own job, using each row's zone, excerpt and the fact that the row exists at all (a comment line Well itself wrote still carries no <mention-user> tag unless it names someone, so a plain acknowledgement never appears here).
With no Notion connector live in this workspace, returns connected: false and reads nothing. Bounded at 25 changed pages per call, oldest changes first; truncated: true means either more pages changed than this call read, or a transient or connection failure (timeout, 5xx, rate limit, revoked grant) stopped the run partway through rather than skip the failed page. Either way, pass cursor as the next call's since and cursor_note_id as its after_note_id to keep going from the last page this call fully read, never re-reading what it covered and never skipping a page changed at the same instant.
A failure that belongs to the connection (a revoked or expired grant, a missing scope or capability, a 401, 402 or 403, or any other typed 4xx outside the two codes below) stops the run at once with truncated: true and the cursor unchanged, so no page is lost while the member reconnects. A page whose own request is settled as wrong — Notion's own object_not_found code with a typed 404 or 410, or its validation_error code with a typed 400, and only those two — is skipped immediately, with no retry: its id and updated_at are reported in failed_pages, the cursor advances past it, and the run keeps reading later pages. A caller sees a page in failed_pages when mentions on that page may be incomplete for this and every future run, until the page is shared back or re-created.
dedup_key is stable across runs for the same page/comment, zone and member: a caller uses it to never act on the same appearance twice.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| since | Yes | Only pages and comments that changed strictly after this ISO-8601 instant are read. Pass the workspace's own last-run watermark, never a guessed date. | |
| workspace_id | No | Target workspace. Omit when the token authorizes one workspace. Required when it authorizes several: this read reports one workspace's own figures and will not choose which. | |
| after_note_id | No | The previous call's cursor_note_id, passed with its cursor as since: the read then also takes the pages changed at that same instant after this note. | |
| conversation_id | No | The conversation id returned by the previous Well result, in its meta under well/conversation_id, in its structuredContent, or in its JSON text block. Pass it back on every call in the same conversation, including a call a card makes, so the chosen workspace and the earlier answers still apply. It decides the conversation on its own: nothing the host states about the session replaces it. Omit it only on the first call of a conversation. | |
| workspace_scope | No | Restrict this call to the family: the token's primary workspace plus the company workspaces under it that you are a member of. Unrelated authorized workspaces drop out of the read; row reads merge across the family, while a per-workspace figure still reports exactly one workspace. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| cursor | Yes | Pass as the next call's `since` to continue past a truncated result. | |
| connected | Yes | False when this workspace has no live Notion connector; every other field is then empty. | |
| truncated | Yes | ||
| pages_read | Yes | ||
| appearances | Yes | ||
| failed_pages | Yes | Pages this run skipped because the provider answered with Notion's own object_not_found code on a typed 404/410, or validation_error code on a typed 400 — never any other failure, which stops the run instead. The cursor advances past each of these, so mentions on them may be incomplete for this and every future run. | |
| cursor_note_id | Yes | Pass as the next call's `after_note_id`, with cursor as since. Null when there is no page to resume after. | |
| conversation_id | No | The conversation this result belongs to. Pass it back as the conversation_id argument on every later Well call in the same conversation. | |
| newly_connected | No | Tools that connected to this workspace since the last result and that no session was told about yet, oldest first. Present only when at least one tool is new. The connected-line rule says when to tell an entry; when it does, one line per entry, in the person's language: "<name> is connected.". Never fold several entries into one sentence. Each entry comes back once, on one result only: never repeat its line later. | |
| resolved_workspace | No | The workspace that answered, when the caller named none and the token authorizes several. | |
| conversation_id_note | No | Present only when the server opened a fresh lane, stating that no choice recorded earlier was read. | |
| conversation_id_source | No | Where the conversation id came from: the host's own request meta, the caller's argument, or a fresh lane the server opened. | |
| workspace_connector_id | Yes |