Communications
Normalize voice, SMS, email, secure message, chat, and mail into one governed interaction model while keeping provider delivery separate from compliance and case outcome.
An interaction is the durable operational record of attempted or completed communication. A provider event is evidence about transport. A task is work. A message body is content. Keeping them separate avoids treating “provider accepted” as “customer received” or “agent completed task” as “matter resolved.”
Channel model
| Channel | Typical directions | Channel-specific evidence |
|---|---|---|
| Voice | inbound, outbound human, outbound AI-assisted | Dial attempts, connection, participants, recording consent, disposition. |
| SMS | inbound, outbound | Provider delivery, opt-out keyword, thread, segment count. |
| inbound, outbound | Thread, message ID, bounce, attachments, delivery. | |
| Secure message | inbound, outbound | Authenticated recipient, portal delivery, read state. |
| Chat | inbound customer session | Session identity, transcript, transfer, closure. |
| outbound, returned | Template/artifact hash, address version, handoff, return evidence. |
All channels share case, customer, direction, purpose, participants, identity/authority state, sensitivity, compliance decision, content version, status, outcome, and evidence links.
Provider boundary
LendEasy interaction
├─ owns purpose, eligibility, content, case, and outcome
└─ submits provider request with one correlation ID
↓
provider events
accepted → delivered / connected / bounced / failed
↓
normalized timeline + reconciliation
Changing a provider does not change public interaction IDs, cases, policy, outcomes, or evidence semantics. Raw provider callbacks are private integration endpoints; customers use the normalized /v1/servicing/interactions API and webhooks.
Outbound execution
POST /v1/servicing/interactions creates or schedules one contact intent. Before invoking a provider, LendEasy re-evaluates destination, purpose, consent, local time, frequency, restrictions, debt and case state, identity/authority needs, and content policy.
{
"caseId": "case_HBR_COL_51",
"direction": "outbound",
"channel": "voice",
"purpose": "collections",
"contactPointId": "cp_MAYA_MOBILE_1",
"content": { "scriptVersion": "collections-opening-v5" }
}
The same idempotency key can safely recover from a timeout. A new key represents a new intended attempt and may affect contact history.
Inbound signal preservation
Inbound content can contain several signals at once: a payment question, opt-out, dispute, bankruptcy mention, and attorney representation. Classification preserves every detected signal and creates or links the right matters; it does not let the apparent primary topic erase higher-risk obligations.
Content and sensitive disclosure
Templates are versioned and variables resolve from permitted facts at render time. Identity verification and authority determine which content may be disclosed. Attachments use the document boundary; raw payment credentials and restricted identifiers never enter message templates or AI context.
Outcomes
Operational outcomes are typed: blocked before send, attempted, connected, verified party reached, wrong party, delivered, bounced, opt-out, promise discussed, payment journey started, transferred, or failed. Free-text notes can add context but cannot replace the typed outcome.
See Interactions & channels for lifecycle detail and Execution-time checks for the send/dial gate.