PPactDocs
Social

Social inbox

A unified thread view over comments and mentions across networks — triage status and assignee, reply in-thread through the provider, draft replies with AI, score sentiment, and convert an author into a CRM contact.

Social inbox

The social inbox joins two streams — engagements (comments, likes, replies on your posts) and mentions (posts elsewhere that name you) — into one triage queue. It reads from the social_engagements and social_mentions tables and is served under GET /v1/social/inbox, so a community manager works comments and brand mentions from a single view instead of tab-hopping across networks.

Live surface

Listing, counts, status/assignee/tag triage, in-thread reply, contact conversion, AI-drafted replies, and sentiment are all real endpoints under /v1/social/inbox (api/routes/social_inbox.py).

Two kinds, one queue

Every inbox item is either an engagement or a mention, and the {kind} path segment disambiguates which table a given public_id lives in. GET /v1/social/inbox/counts powers the open/resolved/archived/assigned-to-me badges that also feed the dashboard inbox snapshot.

What you can do with an item

ActionEndpointEffect
TriagePATCH /v1/social/inbox/{kind}/{public_id}Set status, assignee, or tags.
ReplyPOST /v1/social/inbox/{kind}/{public_id}/replyPost an in-thread reply through the provider's reply() method.
ConvertPOST /v1/social/inbox/{kind}/{public_id}/convertCreate a CRM contact from the author (records converted_contact_id).
AI draftPOST /v1/social/inbox/{kind}/{public_id}/ai-draftAnthropic-drafted reply suggestion (BYOK).
SentimentPOST /v1/social/inbox/{kind}/{public_id}/sentimentRecompute the item's sentiment on demand.

Replying uses the same SocialProvider contract as posting, so a reply goes out through the network that owns the thread. Converting an author is the bridge between social listening and your CRM: a helpful commenter or a warm inbound mention becomes a contact record without re-keying.

Inbound depends on provider ingestion

Engagements and mentions populate the inbox two ways: webhooks (POST /v1/social/webhooks/{provider}, e.g. LinkedIn LMS) where a network pushes events, and polling (POST /v1/social/posts/{public_id}/poll) as a fallback for deployments without webhooks. If a network's app credentials or webhook subscription aren't configured, its items won't appear — the inbox is only as complete as the ingestion you've enabled per provider.

Sentiment

Items carry a sentiment score so the queue can be sorted and the listening dashboard can chart mood over time. Sentiment is recomputed on demand via the sentiment endpoint — useful after editing or when a thread's tone shifts.