Skip to main content
All docs

Social DM pilot spike

Instagram and Facebook DM intake should stay demand-led. The first supported use case is inbound buyer inquiries from people who already messaged the business or asked a buying question from a relevant post.

First use case

Support inbound DMs and comment-triggered inquiries about pricing, availability, install timing, service area, product fit, or booking a consult. The strongest early segment is visual proof-heavy categories such as saunas, hot tubs, cold plunge, pool, outdoor living, and custom installation work.

Required pilot signal

Pull this forward only when at least one paid pilot already receives meaningful lead volume through Instagram or Facebook and operators can show that slow response, missed DMs, or poor handoff quality is costing booked consults.

Absent that signal, build after web intake, booking, SMS follow-up, and inbound email are stable.

Excluded behaviors

  • No cold outbound DM automation.
  • No auto-commenting or engagement farming.
  • No social content scheduling or broad social media management.
  • No production auto-replies until response-window, consent, and human handoff rules are approved.
  • No scraping private messages outside approved Meta webhook permissions.

Technical plan

  1. Connect a Meta business account and app after confirming the pilot's page/Instagram ownership.
  2. Request only the permissions needed for messaging webhook intake and page/Instagram message response.
  3. Subscribe to message and comment events relevant to buyer inquiries.
  4. Verify Meta webhook signatures and dedupe native message IDs before side effects.
  5. Normalize each inbound sender, thread, message, source post/comment, and response-window state.
  6. Create or update contact, conversation, lead, and handoff records without auto-posting or unmanaged publishing.
  7. Let operators respond manually first; only enable agent-drafted replies after approval and policy review.
  8. Log all message, handoff, and response-window state for audit.

Proposed data model

Use the existing contact, conversation, message, lead, event, and handoff model first.

  • contacts.metadata.social: platform, sender ID, profile URL if available.
  • conversations.metadata.source: source: social_dm, platform, thread ID, response-window expiry, source post/comment ID.
  • messages.native_message_id: Meta message or comment event ID.
  • messages.metadata: response-window state, attachment count, policy flags.
  • leads.metadata.source: platform, post/comment context, handoff state.
  • handoffs.reason: social_dm_follow_up_needed or social_dm_policy_review.

Add tables only when one conversation can span multiple social identities, pages, or response windows in a way JSON metadata cannot safely represent.

Recommendation

Do not build production social DM automation yet. Keep this behind email/SMS unless paid pilots show that Instagram or Facebook is already a meaningful lead channel. If that signal appears, start with inbound capture and human handoff before any agent reply behavior.