Get Pending Approvals
get_pending_approvalsCovers four channels, each pending row bucketed by action-type category exactly
as the page groups them: LinkedIn connection requests / messages / follows /
post engagement, emails, Reddit comments, and manual actions. Same-post
comment+reaction rows collapse into one engagement item, matching the page.
Sequence-produced items (LinkedIn, email, and a manual step queued by a manual
flow node) carry node_id/node_label naming the campaign-flow node that
authored them — null for items created outside a sequence and for Reddit items.
Cross-agent for the owner; a shared operator sees only the shared agent.
Bounded by default so an approval-gated campaign holding thousands of drafts
doesn't return every full message. The default gives per-bucket/per-agent counts
plus a short preview per bucket (first few items); pass bucket to page that one
bucket's full item list. A bucket's preview_truncated (or count exceeding the
preview) tells you to drill in.
By default (no bucket), a dict
{'pending': {'total': int, 'buckets': [{'bucket', 'title', 'count', 'preview_truncated': bool, 'agents': [{'agent_id', 'agent_title', 'count'}], 'preview': [item, ...]}]}, 'recently_resolved': {'window_days': int, 'total': int, 'items': [...]}, 'recently_shelved': {'window_days': int, 'total': int, 'items': [...]}}. The preview holds the
bucket's first few full items. Recently-resolved lists only rows with a
transition timestamp — manual done/dismissed, LinkedIn/email sent, Reddit
submitted; cancelled or rejected drafts don't appear there. Recently-shelved
lists rows the shelf-life sweep shelved (an unstarred draft that aged
past its approval window); each item's target_provider_id is the prospect
handle for person-addressed LinkedIn drafts (connection_request / message /
inmail / follow) so a swept draft matches back to a prospect — blank for
comment/reaction (post-addressed) and for email/reddit.
Drill-down (bucket set): {'bucket', 'title', 'count', 'offset', 'limit', 'truncated': bool, 'items': [item, ...]} — full-text items, newest-first;
count is the whole bucket, truncated means more beyond this page (re-call
with offset += limit).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| bucket | No | Drill into one bucket for its full-text items, paged. One of 'email', 'linkedin_invite', 'linkedin_message', 'linkedin_follow', 'engagement', 'reddit', 'manual'. Omit for the bounded counts+preview. | |
| offset | No | Rows to skip in drill-down mode (default 0); re-call with `offset += limit` while `truncated` is true. Ignored without `bucket`. | |
| as_teammate | No | Read a consented teammate's pending approvals instead of your own — pass their email. Gated on that teammate's act-on-behalf setting (stricter than conversation sharing); a teammate who hasn't granted it is rejected. Omit for your own. | |
| resolved_within_days | No | Recency window for the recently-resolved section (default 7). Only used in the default (no-`bucket`) mode. |