Generates contextual replies to comments, mentions, and DMs on social posts. Classifies engagement as lead signal, customer question, partnership opportunity, or troll/spam. Uses brand voice from agency.config.json.
Generates contextual, on-brand replies to social media engagement (comments, mentions, DMs, tags). Classifies each interaction for CRM routing and prioritizes lead signals.
agency.config.json populated (outreach tone, services, case studies)Read agency.config.json:
agency.name, agency.founder -- for sign-offs and personal touchesoutreach.tone -- voice baselineoutreach.banned_phrases -- never use in repliesservices[] -- for contextual service mentionscase_studies[] -- for proof points when relevantAccept parameters:
engagement -- (required) object containing:
platform -- linkedin, , , twitterinstagramreddittype -- comment, mention, dm, tag, replytext -- the engagement textauthor -- name/handle of the personcontext -- (optional) the original post or thread contextauthor_profile -- (optional) brief profile info (title, company, follower count)batch -- (optional) array of engagement objects for bulk processingauto_classify -- boolean, classify without generating reply. Default: falseClassify each engagement into one of these categories:
| Category | Signals | Priority | Action |
|---|---|---|---|
| LEAD_SIGNAL | Asks about services, pricing, availability; mentions pain points; DMs asking for help | HIGH | Reply + flag for CRM |
| CUSTOMER_QUESTION | Existing client asking for support, updates, or clarification | HIGH | Reply + flag for account team |
| PARTNERSHIP_OPPORTUNITY | Collaboration offers, co-marketing, referral partner signals | MEDIUM | Reply + flag for founder |
| GENUINE_ENGAGEMENT | Thoughtful comments, shares experience, adds to discussion | MEDIUM | Reply to nurture |
| SIMPLE_REACTION | "Great post!", "Agree!", emoji-only, basic compliments | LOW | Short thank-you or skip |
| TROLL_SPAM | Hostile, irrelevant, promotional spam, bot-like | IGNORE | Do not reply, flag for review |
Classification output:
{
"category": "LEAD_SIGNAL",
"confidence": "HIGH",
"reasoning": "Asked about Shopify development pricing and mentioned they need help with their store",
"suggested_action": "Reply with value, DM to continue conversation",
"crm_flag": true
}
| Platform | Reply Style | Length |
|---|---|---|
| Professional, can be 1-3 sentences, use their name | 20-80 words | |
| Casual, punchy, match their tweet energy | Under 280 chars | |
| Friendly, use their handle, casual | 10-40 words | |
| Helpful, detailed if they asked a question, no self-promo | 30-200 words |
outreach.banned_phrasesReturn structured JSON:
{
"engagements": [
{
"platform": "linkedin",
"type": "comment",
"author": "Priya Mehta",
"original_text": "This is really insightful. We've been struggling with our Shopify product pages for months.",
"classification": {
"category": "LEAD_SIGNAL",
"confidence": "HIGH",
"reasoning": "Mentions struggling with Shopify product pages, matches our CRO service",
"crm_flag": true
},
"reply": "Priya, product pages are where most D2C brands leave the most revenue on the table. One quick win: make sure your above-the-fold shows social proof + a clear size/variant selector without scrolling. Happy to share a few more specifics if useful, feel free to DM.",
"follow_up_action": "If she DMs, share Kibi Sports case study and offer a free CRO audit",
"word_count": 47
}
],
"summary": {
"total_processed": 12,
"lead_signals": 2,
"customer_questions": 1,
"partnership": 0,
"genuine_engagement": 5,
"simple_reactions": 3,
"troll_spam": 1,
"replies_generated": 8,
"skipped": 4
},
"generated_at": "2026-03-13T10:00:00Z"
}
For LEAD_SIGNAL engagements:
crm-writer with: author name, platform, signal text, classification, reply sent, follow-up actionsocial_engagementTrigger phrases: