dotb_ai-platform/tests/fixtures/mock_omni_run.json
hungtran24 2268b6a77a feat: replace tenant auth with app-scoped scoring access
Add app credentials, account-scoped idempotency and per-app terminal notifications. Consolidate the unreleased migration baseline, preserve rule descriptions as AI context, and regenerate provider contracts with regression coverage.
2026-10-02 10:56:58 +07:00

54 lines
2.5 KiB
JSON

{
"request_id": "f81c7c4e-a92a-4b19-8d7a-3a5c08eb4e6e",
"account_id": "3",
"subject_ref": "mock-lead-001",
"snapshot": {
"version": "1.0.0",
"scope": "linked_contact_history",
"captured_at": "2026-01-01T12:00:00Z",
"lead_profile": {
"ems_lead_id": "mock-lead-001",
"name": "Nguyen Minh An",
"phone": "+84000000001",
"email": "an@example.invalid",
"status": "new",
"custom_fields": {"region": "north", "program_interest": "data science"}
},
"conversations": [
{
"conversation_id": "mock-conversation-001",
"channel": "webchat",
"assigned_agent_id": "mock-agent-01",
"messages": [
{"message_id": "mock-message-001", "sender_type": "contact", "content": "I am interested in the data science program.", "sent_at": "2025-12-31T10:00:00Z"},
{"message_id": "mock-message-002", "sender_type": "agent", "content": "The next cohort starts in March.", "sent_at": "2025-12-31T10:05:00Z"},
{"message_id": "mock-message-003", "sender_type": "contact", "content": "Please send me the application requirements.", "sent_at": "2025-12-31T10:10:00Z"}
]
},
{
"conversation_id": "mock-conversation-002",
"channel": "email",
"assigned_agent_id": "mock-agent-02",
"messages": [
{"message_id": "mock-message-004", "sender_type": "agent", "content": "I have sent the program brochure.", "sent_at": "2025-12-31T11:00:00Z"},
{"message_id": "mock-message-005", "sender_type": "contact", "content": "Thank you, I will review it today.", "sent_at": "2025-12-31T11:15:00Z"}
]
}
],
"identity_context": {"match_quality": "phone_and_email", "contact_id": "mock-contact-001", "details": {"source": "local_mock_fixture"}},
"trigger_metadata": {"trigger_type": "manual_omni", "trigger_conversation_id": "mock-conversation-002", "actor_id": "mock-user-01"}
},
"scoring_config": {
"version": "mock-omni-v1",
"rules": [
{"id": "region-north", "field": "custom_fields.region", "operator": "eq", "value": "north", "points": 25},
{"id": "program-interest", "field": "custom_fields.program_interest", "operator": "contains", "value": "data", "points": 35},
{"id": "conversation-count", "field": "metrics.conversation_count", "operator": "eq", "value": 2, "points": 10},
{"id": "contact-message-count", "field": "metrics.contact_message_count", "operator": "eq", "value": 3, "points": 10}
],
"rule_weight": 1,
"ai_weight": 0
},
"ai_profile": "medium"
}