--- name: inbox description: > Work the real social inbox: pull actual comments, mentions, and DMs from connected channels, triage them into buckets (question, praise, objection, lead, spam), and draft on-voice replies ready to paste. Covers LinkedIn, X (Twitter), Instagram, and Facebook. Use when the user says "work my inbox", "check my mentions", "any comments to answer", or "triage my DMs". Requires the Inklate MCP connection. Reads social-context.md when present so drafted replies match the user's voice and red lines. Leads get flagged prominently — the inbox is where revenue hides. Replies are drafted for the user to send, never sent on their behalf. metadata: version: 1.0.0 topics: [engagement] examplePrompt: "Triage my inbox and draft replies to anything that needs one" pairsWith: [reply-writer] mcpTools: [list_interactions, search_content] --- Triage every real interaction across the user's channels and hand back a worked inbox: buckets, priorities, and paste-ready replies. ## Connection check 1. Call `list_organizations` first. 2. If it fails or the Inklate tools are absent, tell the user to connect at `https://inklate.com/skills/connect?ref=skills-inbox` and STOP. 3. If multiple organizations exist, ask which inbox to work before fetching anything. ## Context Read `social-context.md` (project root, then `.agents/social-context.md`) if present. `## Voice` is the register every drafted reply is written in; `## Never` is a hard filter on what a reply may say; `## Audience` sharpens lead-spotting. Proceed without it if absent — but say replies will be in a neutral voice and can be re-drafted once context exists. ## Workflow 1. Establish the window: default to interactions since the user last worked the inbox, or the last 7 days if unknown. Confirm in one line and proceed. 2. Call `list_interactions` for the window across all connected channels — comments, mentions, and DMs from LinkedIn, X, Instagram, and Facebook. If the volume is large, work channel by channel and say so. 3. **Triage every item into exactly one bucket:** - **Lead** — buying signals, "how much", "does it work with", requests for a demo or a call. Highest priority, always listed first. - **Question** — needs a factual answer about the product or a post's content. - **Objection** — pushback, criticism, or a correction. Deserves the most careful reply. - **Praise** — deserves acknowledgment; a short warm reply keeps the flywheel turning. - **Spam** — bots, engagement farming, irrelevant promotion. Recommend ignore; never draft replies to spam. 4. When an interaction references one of the user's posts and the reply depends on what that post said, call `search_content` to pull the post and read it before drafting — replies must be grounded in what was actually published. 5. **Draft replies** for every non-spam item that warrants one, in the user's voice: - Questions get real answers — say what you don't know rather than inventing product facts. - Objections get generous, non-defensive replies that concede what's true. - Leads get a reply that moves toward a concrete next step (a link, a call, a question that qualifies them). - Praise gets a short, warm, specific acknowledgment — not a canned thanks. - Match each platform's register: a LinkedIn comment reply and an X reply are not the same length or tone. 6. Present drafts as a per-item, paste-ready list: platform, author, their message, your drafted reply. Reply-sending is not exposed as an Inklate tool — the user sends each reply themselves, which also keeps a human on the send button. Offer one revision pass on any draft. 7. Ask if the user wants any bucket expanded (e.g. every spam item listed) before closing out. ## Quality bar - Every fetched interaction lands in exactly one bucket — nothing unclassified, nothing silently dropped. - Leads are impossible to miss: first in the receipt, flagged in the summary line. - Replies are grounded: product questions answered only from what you know or what `search_content` returned; unknowns are flagged for the user to fill in, never invented. - Every draft respects `## Never` from social-context.md; a reply that trips a red line comes back as a flagged judgment call instead. - Objection replies never argue tone-for-tone; they concede what's true and clarify what's not. - You draft; the user sends. Do not represent any reply as sent. ## Receipt End with the triage table: | # | Channel | Author | Bucket | Their message (short) | Action | | --- | --------- | ---------- | -------- | --------------------------------------- | ------------------- | | 1 | LinkedIn | Dana K. | LEAD | "Does this work for agencies? Pricing?" | reply drafted below | | 2 | X | @devguy | question | "Which API does the scheduler use?" | reply drafted below | | 3 | Instagram | @fanacct | praise | "This carousel was gold" | reply drafted below | | 4 | X | @cryptobot | spam | promo link | ignore | Below the table: the count per bucket with leads called out ("2 leads — answer these first"), then the full numbered list of drafted replies, each paste-ready under its item number, and any drafts needing a fact from the user before sending.