The Agentic Intake Engine: Multi-Channel AI That Stops Legal Leads From Leaking
In today's legal landscape, client intake is the critical first touchpoint that determines case quality, client satisfaction, and conversion. But traditional intake processes are fragmented: clients call, email, text, and submit forms, while each channel often operates in isolation. That fragmentation creates intake leaks: slow responses, lost context, incomplete records, and missed opportunities.
We've built something different: an agentic intake engine powered by MayaGPT that operates across web portal, email, and SMS, while also connecting back to voice intake. The system is designed to keep legal leads moving from first response to qualified handoff without dropping context.
Three Platforms, One Intelligent Engine
Our multi-channel intake system is built on a simple but powerful principle: meet clients where they are, then preserve the context everywhere else. Instead of forcing clients into a single channel, we created independent platforms that share the same intelligent AI brain: MayaGPT.
1. Web Platform (client.saleda.ai)
The web portal provides a structured, guided intake experience perfect for clients who prefer a traditional form-like interface. Clients receive secure access links via email or SMS, then complete intake through an interactive chat interface powered by MayaGPT.
- Flexible Link Delivery: Business owners can send intake links via email, SMS, or both—ensuring maximum reach
- Secure Access Codes: Time-limited access codes (24-hour expiration) protect client privacy
- Real-Time Chat: MayaGPT guides clients through intake questions conversationally
- Document Upload: Clients can upload required documents directly through the portal
2. Email Platform
For clients who prefer asynchronous communication, the email platform enables complete intake via email threads. Clients simply send an email to intake@saleda.ai, and MayaGPT responds intelligently, maintaining conversation context across the entire thread.
- Thread Management: Automatic email threading using
In-Reply-ToandReferencesheaders maintains conversation continuity - Client Identification: Automatic client identification from email address—no pre-existing session required
- Rich Formatting: Email responses can include HTML formatting, links, and structured information
- Asynchronous Flow: Clients can respond at their own pace, perfect for busy schedules
3. SMS Platform
Text messaging is the most accessible channel for many clients. Our SMS platform enables complete intake via SMS conversations, with MayaGPT adapting responses to SMS character limits while maintaining full functionality.
- Conversation Threading: Automatic SMS conversation management via Twilio Conversation SID
- Concise Responses: MayaGPT automatically adapts to SMS character limits (1600 chars) while maintaining clarity
- Phone-Based Identification: Automatic client identification from phone number
- Real-Time Interaction: Instant responses create a chat-like experience via text
The Power of Channel Independence
What makes our system unique is that each platform operates independently. A client doesn't need a pre-existing session to start intake via email or SMS—they can simply send a message, and the system:
- Identifies the client from their email address or phone number
- Determines the business owner from the client relationship
- Creates a new intake session automatically
- Begins the intelligent conversation with MayaGPT
While each channel can start independently, seamless channel switching (e.g., starting via email and continuing on web portal) is a planned enhancement. Currently, each channel maintains its own session, but all channels share the same unified data model and conversation history structure, making cross-channel continuity a natural next step in our roadmap.
MayaGPT: The Intelligent Brain Behind It All
All three platforms are powered by the same AI engine: MayaGPT. This agentic AI system provides:
- Contextual Understanding: Maintains full conversation history across all channels
- Intelligent Question Routing: Asks intake questions in the optimal order based on client responses
- Answer Extraction: Automatically extracts structured answers from natural language responses
- Channel Adaptation: Adjusts response style and length based on channel (email can be detailed, SMS is concise)
- Completion Detection: Recognizes when intake is complete and triggers next steps automatically
Automated Follow-Up: Convert Failed Contact Attempts Into Intake Opportunities
Published follow-up workflows ensure failed calls do not become lost opportunities while keeping voice and messaging responsibilities separate.
How Automated Follow-Up Works
When a MayaCall (our AI voice agent) fails to reach a human—whether due to voicemail, no answer, or call busy—the system can automatically:
- Detect Failure: Identify when a call didn't reach a human based on
answered_bystatus - Evaluate the Published Workflow: Apply the current post-call conditions and channel policy
- Start or Resume Intake: Use the same canonical intake definition and conversation context
- Continue in Chat or Messaging: Route the client to the follow-up chat agent through an available channel
- Track Engagement: Monitor when clients access and complete intake
Published Workflow Policy
Follow-up behavior is defined by the published workflow:
- Platform Selection: Choose which platforms to enable (web, email, SMS, or all three)
- Delivery Channels: For web platform, select how to deliver links (email, SMS, or both)
- Outcome Conditions: Select which call outcomes enter the follow-up journey
- Workflow Publication: Activate changes through the versioned workflow lifecycle
AutoRecall: Intelligent Call Retry System
Alongside automated messaging follow-up, AutoRecall schedules another call when an initial attempt does not reach a human.
Smart Retry Logic
AutoRecall uses configurable rules to determine when and how to retry calls:
- Configurable Triggers: Retry on specific
answered_bystatuses (voicemail, no-answer, etc.) - Call Windows: Respect business hours and timezone preferences
- No-Call Windows: Avoid calling during lunch hours or other specified times
- Retry Limits: Maximum retry attempts per phone number (default: 3)
- Intelligent Delays: Wait 24 hours (configurable) between retry attempts
Integration with Bland.ai
AutoRecall leverages Bland.ai's built-in scheduling infrastructure, ensuring reliable execution without requiring additional queue management or Lambda functions. This proven approach handles thousands of scheduled calls across multiple days with high reliability.
Security & Resilience: Production-Grade Architecture
Building a multi-channel system that handles sensitive client data requires enterprise-grade security and resilience. Our architecture includes:
Webhook Security
- AWS SNS Signature Verification: Full certificate validation for email webhooks
- Twilio Signature Verification: HMAC-SHA1 signature validation for SMS webhooks
- Channel-Agnostic Security Service: Unified
WebhookSecurityServicehandles all verification
Rate Limiting
- Per-Channel Limits: Different limits for email (10/hr) vs SMS (20/hr) vs web (100/hr)
- Per-Identifier Tracking: Rate limit by email address or phone number
- Distributed System: Uses DynamoDB for distributed rate limiting across instances
Idempotency
- Message Deduplication: Prevents duplicate processing of webhook messages
- External ID Tracking: Uses email
message_idand SMSmessage_sidfor idempotency - Safe Retries: Webhook retries are completely safe—no duplicate processing
Error Handling & Resilience
- Exponential Backoff Retry: Automatic retry with exponential backoff for transient failures
- Dead Letter Queue (DLQ): Failed messages after max retries go to DLQ for manual review
- Async Processing: Fast webhook responses (< 200ms) with async message queue processing
- Circuit Breakers: Protects against cascading failures from external services
Unified State Management
Despite operating across three independent platforms, our system maintains unified state. All channels share:
- Same Data Models: Reuses
ClientIntakeSessionandClientIntakeChatMessagewith channel metadata - Unified Conversation History: Full conversation context available across all channels
- Shared Question Tracking: Knows which questions have been asked and answered, regardless of channel
- Cross-Channel Continuity: Clients can switch channels mid-intake without losing progress
Real-World Impact
This multi-channel intake system delivers measurable value by reducing the most common intake leaks:
- Higher Completion Rates: Clients complete intake through their preferred channel, reducing abandonment
- Faster Response Times: Published follow-up workflows convert failed calls into intake opportunities
- Cleaner Handoffs: Transcript, summary, qualification status, and next step stay attached to the lead record
- Better Client Experience: Clients choose their preferred communication method
- Reduced Manual Work: Automation handles routine intake tasks, freeing staff for high-value work
- Improved Data Quality: Structured, consistent data collection across all channels
Technical Architecture Highlights
For the technically curious, here's how we built it:
- Channel-Agnostic Services: Core services like
ClientIntakeChatServicework across all channels - Typed Channel Metadata: Pydantic models for type-safe channel-specific data (email thread IDs, SMS conversation SIDs, etc.)
- Single Table Design: DynamoDB single-table design stores all channel data efficiently
- Discriminated Unions: Type-safe platform configuration using Pydantic discriminated unions
- Enum-Based Platform Selection: Type-safe
IntakePlatformenum prevents invalid configurations
What's Next
This multi-channel intake engine is just the beginning. We're continuously improving:
- Rich Media Support: Image and document uploads via email
- Voice Messages: MMS support for voice messages via SMS
- Multi-Language: Intake in multiple languages with automatic translation
- Proactive Reminders: Intelligent reminders if intake stalls
- Channel Preferences: Let clients set preferred communication channels
Conclusion
The future of client intake is multi-channel, intelligent, and measurable. By meeting clients where they are, whether that is voice, email, SMS, or web, and powering interactions with agentic AI, we are creating a system that reduces intake leaks and gives teams cleaner conversion data.
With the follow-up chat agent continuing intake after failed calls and AutoRecall intelligently retrying calls, the entire client acquisition funnel becomes more efficient, reliable, and measurable.
Ready to stop leads from leaking between channels? Contact us to see how the multi-channel intake engine can work for your firm.
Ready to transform your legal intake?
See how Saleda AI helps legal teams capture every lead and qualify at scale.
