Query Monitored Posts
query_monitored_postsmode="search" (default): individual post rows. mode="stats": per-status counts.
Each row is one post a monitor surfaced, with the comment Sliq drafted for it
(draft_comment) and the post's lifecycle status: 'discovered' (claimed,
pre-draft), 'filtered' (the monitor's post filter set it aside, so no action ran
on it), 'queued' (drafted + enqueued), 'commented' (comment sent),
'rejected' (user declined the draft), 'skipped' / 'skipped_no_credit' (no
comment drafted), 'captured' (a capture ran on it — its engagers, or its
author when a person — and it wasn't commented), 'surfaced' (no comment and no
capture ran — a surface-only monitor, or a company page's or the user's own post
on an author-only monitor — just surfaced in the feed to act on manually).
author_captured is whether author capture ran on the post's author, a person;
the monitor's list holds them unless the user removed them.
filter_reason is the post filter's one-sentence reason for keeping or setting
aside the post ('' when the monitor has no filter). Read it beside the filtered
and kept posts when the user wants to tune their monitor's post filter.
data holds the author's headline and public_identifier. Link a post's author
with the derived author_profile_url on each search row — a person's profile, or
the company page when a company posted. It is computed after the query runs, so it
can't appear in where_clause or order_by.
reaction_status is the independent reaction track: '' (no reaction),
'queued' (a reaction enqueued), 'reacted' (sent), 'rejected' (user declined it),
'skipped' (deduped) — disjoint from status since one post can be both
commented and reacted to. reaction_type is which reaction landed
(like/celebrate/support/love/insightful/funny, '' until sent).
Columns: id, monitor_id, post_urn, post_url, author_name, author_provider_id,
data, post_text, reaction_count, comment_count, posted_at, status, filter_reason,
draft_comment, reaction_status, reaction_type, author_captured, created_at. Pass a row's id to
generate_monitored_post_comment to draft + queue a Sliq comment for it.
Pass agent_id to scope to that agent's monitors — omitting it reads every
monitored post across all the user's agents. To act on recent posts (e.g. queue
a reaction on this agent's fresh finds), pass agent_id and filter on
posted_at; this keeps actions on the agent's own scoped feed rather than the
account-wide analytics.
This is the monitor-scoped feed. query_linkedin_posts is a different table —
the account-global analytics of the user's own posts plus any post they've
fetched engagers for, with no agent/monitor dimension. Use that for "how did my
posts perform"; use this for "what did this agent's monitors find".
In search mode, {count, truncated, items array}.
In stats mode, {total, by_status: {discovered: N, commented: M, ...}}.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | "search" to list rows, "stats" for per-status counts. | search |
| limit | No | Max results (default 50, capped at 100). Search mode only. | |
| offset | No | Rows to skip for paging (default 0, search mode only). When the result is truncated, re-call with offset += limit for the next page. | |
| agent_id | No | Scope to one agent's monitors. Omit for cross-agent queries. | |
| order_by | No | SQL ORDER BY (default: created_at DESC). Search mode only. | created_at DESC |
| on_behalf_of | No | An agency client's email, from list_agency_clients, to run this call in that client's account: their agents, settings, connected accounts, and credits. Omit it to act on your own account. | |
| where_clause | No | SQL WHERE condition (default: all). Examples: "status = 'commented'", "posted_at >= NOW() - INTERVAL '24 hours'", "author_name ILIKE '%founder%'" | 1=1 |