Raahat Scenario Harness

Curated conversation replay against the real runtime with stepwise diagnostics, readable deltas, and deterministic checks.

Transport Slot Accumulation

transport_slot_accumulation · transport · 3/3 turns executed

Scenario Summary

IDtransport_slot_accumulation
TitleTransport Slot Accumulation
Categorytransport
Turns3/3
Run Statecompleted
continuity logistics multi_turn

Seed State

UserUnknown user
Phone919900000206
Seed Workflow
Seed State Machine

Current Runtime State

Routetransport
Workflowtransport
State Machine
Stageready_for_dispatch

Checks And Lifecycle

Expectations Passed3
Expectations Failed0
Heuristic Warnings0
Stage advanced Sticky continuation
Final assessmentScenario completed cleanly with no flagged issues.

Final Outcome

Completed

Completed vs partial run state.

Final Route

transport

Current route at the end of the replay.

Final Workflow / State

transport

Workflow preferred; state machine shown if no workflow is active.

Final Stage

ready_for_dispatch

Resolved from workflow progress or active snapshot.

Expectation Totals

Pass 3 Fail 0

Heuristic Totals

Warnings 0

Missing Fields

No unresolved workflow fields.

Lifecycle Events Seen

Stage advanced Sticky continuation
Turn 1
transport transport timing_defined intent_match
Stage advanced New slots filled Memory updated
PASS
User
Need transport tomorrow morning
Assistant
I can help with transport and stay on top of the coordination. Please share the pickup area, drop location, and when you need it.

What Changed This Turn

  • Workflow changed none -> transport.
  • Stage advanced none -> timing_defined.
  • New slot filled: last_question_key=grouped_core.
  • New slot filled: raw_date_text=tomorrow.
  • New slot filled: raw_time_text=morning.
  • New slot filled: request_kind=booking.
  • New slot filled: stage=timing_defined.
  • New slot filled: time_window=morning.
  • New slot filled: travel_date=2026-03-17.
  • New slot filled: trip_kind=pickup_drop.
  • New slot filled: urgency_class=soon.
  • Memory updated with date_phrase.
  • Memory updated with last_non_medical_domain.
  • Memory updated with time_text.
  • Memory updated with time_window.
  • Memory updated with transport_urgency.
  • Memory updated with travel_date.
  • Memory updated with trip_kind.
  • Snapshot version incremented to 1.

Expectation And Heuristic Results

Expectations
PASS: workflow_name matched expected value 'transport'
Routing And Interpretation
{
  "confidence": 0.9,
  "reason_codes": [
    "intent_match"
  ],
  "route_type": "transport",
  "workflow_name": "transport"
}
{
  "confidence": 0.9,
  "entities": {
    "date_phrase": "tomorrow",
    "time_text": "morning"
  },
  "is_vague": false,
  "primary_domain": "transport",
  "reason": "clear transport request",
  "secondary_domains": [],
  "should_continue_active_workflow": false,
  "should_preempt_active_workflow": false,
  "urgency_signal": "none"
}
Workflow Progress And Intents
{
  "missing_fields": [
    "pickup_location",
    "drop_location",
    "pet_count"
  ],
  "next_question": "I can help with transport and stay on top of the coordination. Please share the pickup area, drop location, and when you need it.",
  "notes": [],
  "stage": "timing_defined",
  "state_payload": {
    "drop_area": null,
    "handling_requirements": [],
    "last_question_key": "grouped_core",
    "pet_count": null,
    "pickup_area": null,
    "raw_date_text": "tomorrow",
    "raw_time_text": "morning",
    "request_kind": "booking",
    "return_trip_required": null,
    "stage": "timing_defined",
    "time_window": "morning",
    "travel_date": "2026-03-17",
    "trip_kind": "pickup_drop",
    "urgency_class": "soon"
  },
  "status": "collecting",
  "summary": "2026-03-17 | morning",
  "superseded_by": null,
  "workflow_name": "transport"
}
[]
Conversation Before And After
{
  "active_state_machine": null,
  "active_workflow": null,
  "current_state": null,
  "entities": {},
  "messages": [],
  "phone": "919900000206",
  "service_actions": [],
  "started_at": "2026-03-16T22:37:04.402937+00:00",
  "triage_state": null,
  "updated_at": "2026-03-16T22:37:04.402940+00:00"
}
{
  "active_state_machine": null,
  "active_workflow": {
    "last_question_key": "grouped_core",
    "missing_fields": [
      "pickup_location",
      "drop_location",
      "pet_count"
    ],
    "next_question": "I can help with transport and stay on top of the coordination. Please share the pickup area, drop location, and when you need it.",
    "stage": "timing_defined",
    "started_at": "2026-03-16T22:37:04.413804+00:00",
    "state_payload": {
      "drop_area": null,
      "handling_requirements": [],
      "last_question_key": "grouped_core",
      "pet_count": null,
      "pickup_area": null,
      "raw_date_text": "tomorrow",
      "raw_time_text": "morning",
      "request_kind": "booking",
      "return_trip_required": null,
      "stage": "timing_defined",
      "time_window": "morning",
      "travel_date": "2026-03-17",
      "trip_kind": "pickup_drop",
      "urgency_class": "soon"
    },
    "status": "collecting",
    "summary": "2026-03-17 | morning",
    "superseded_by": null,
    "updated_at": "2026-03-16T22:37:04.413805+00:00",
    "version": 1,
    "workflow_name": "transport"
  },
  "current_state": "TIMING_DEFINED",
  "entities": {
    "date_phrase": "tomorrow",
    "last_non_medical_domain": "transport",
    "time_text": "morning",
    "time_window": "morning",
    "transport_urgency": "soon",
    "travel_date": "2026-03-17",
    "trip_kind": "pickup_drop"
  },
  "messages": [
    {
      "role": "user",
      "source": null,
      "text": "Need transport tomorrow morning",
      "timestamp": "2026-03-16T22:37:04.413829+00:00"
    },
    {
      "role": "assistant",
      "source": "B",
      "text": "I can help with transport and stay on top of the coordination. Please share the pickup area, drop location, and when you need it.",
      "timestamp": "2026-03-16T22:37:04.413831+00:00"
    }
  ],
  "phone": "919900000206",
  "service_actions": [],
  "started_at": "2026-03-16T22:37:04.413827+00:00",
  "triage_state": null,
  "updated_at": "2026-03-16T22:37:04.413844+00:00"
}
Memory And Trace
{
  "active_state_machine": null,
  "backend": "inmemory",
  "conversation_key_used": "919900000206",
  "conversation_keys": [
    "919900000206",
    "9900000206"
  ],
  "current_state": null,
  "loaded": true,
  "ping_ok": null,
  "redis_enabled": false,
  "thread_message_count": 0,
  "ttl_seconds_remaining": null
}
{
  "active_state_machine": null,
  "backend": "inmemory",
  "conversation_key_used": "919900000206",
  "conversation_keys": [
    "919900000206",
    "9900000206"
  ],
  "current_state": "TIMING_DEFINED",
  "loaded": true,
  "ping_ok": null,
  "redis_enabled": false,
  "thread_message_count": 2,
  "ttl_seconds_remaining": null
}
[
  {
    "component": "brain",
    "payload": {
      "channel": "scenario_harness",
      "conversation_key": "919900000206",
      "message_text": "Need transport tomorrow morning",
      "normalized_phone": "919900000206",
      "phone": "919900000206"
    },
    "stage": "input",
    "summary": "Received normalized message envelope",
    "timestamp": "2026-03-16T22:37:04.413439+00:00"
  },
  {
    "component": "memory_store",
    "payload": {
      "active_state_machine": null,
      "backend": "inmemory",
      "current_state": null,
      "loaded": true,
      "message_count": 0,
      "storage_key": "919900000206"
    },
    "stage": "memory",
    "summary": "Loaded conversation memory",
    "timestamp": "2026-03-16T22:37:04.413444+00:00"
  },
  {
    "component": "brain",
    "payload": {
      "has_prior_triage_state": false,
      "prior_state_error": null
    },
    "stage": "state",
    "summary": "Parsed prior working state",
    "timestamp": "2026-03-16T22:37:04.413446+00:00"
  },
  {
    "component": "brain",
    "payload": {
      "compact_payload_keys": [
        "incoming_message"
      ],
      "has_conversation": true,
      "has_customer": false,
      "has_icp": false,
      "has_profile": false,
      "recent_import_count": 0,
      "storage_key": "919900000206"
    },
    "stage": "context",
    "summary": "Assembled SessionContext for the turn",
    "timestamp": "2026-03-16T22:37:04.413449+00:00"
  },
  {
    "component": "contact_resolver",
    "payload": {
      "confidence": 0.0,
      "customer_id": null,
      "display_name": null,
      "matched_phone": null,
      "status": "UNKNOWN"
    },
    "stage": "decision",
    "summary": "Resolved sender contact status",
    "timestamp": "2026-03-16T22:37:04.413453+00:00"
  },
  {
    "component": "turn_interpretation",
    "payload": {
      "confidence": 0.9,
      "contact_status": "UNKNOWN",
      "entities": {
        "date_phrase": "tomorrow",
        "time_text": "morning"
      },
      "is_vague": false,
      "primary_domain": "transport",
      "reason": "clear transport request",
      "secondary_domains": [],
      "should_continue_active_workflow": false,
      "should_preempt_active_workflow": false,
      "urgency_signal": "none"
    },
    "stage": "decision",
    "summary": "Resolved turn interpretation deterministically",
    "timestamp": "2026-03-16T22:37:04.413586+00:00"
  },
  {
    "component": "profile_context",
    "payload": {
      "phone": "919900000206"
    },
    "stage": "context",
    "summary": "No customer matched provided phone",
    "timestamp": "2026-03-16T22:37:04.413591+00:00"
  },
  {
    "component": "entry_policy",
    "payload": {
      "allow_identity_question": true,
      "bypass_onboarding": false,
      "defer_existing_workflow": false,
      "preempt_active_workflow": false,
      "reason": "unknown contact with a clear non-urgent request can allow one light identity question later",
      "run_welcome_orientation": false,
      "selected_posture": "light_onboarding"
    },
    "stage": "decision",
    "summary": "Determined entry posture for this turn",
    "timestamp": "2026-03-16T22:37:04.413593+00:00"
  },
  {
    "component": "intent_parser",
    "payload": {
      "continue_active_workflow": false,
      "primary_intent": "transport_request",
      "reason": "matched_keyword_rules",
      "resolved_state_machine": "transport",
      "workflow_source": "intent_match"
    },
    "stage": "decision",
    "summary": "Resolved primary intent and state machine",
    "timestamp": "2026-03-16T22:37:04.413625+00:00"
  },
  {
    "component": "context_builder",
    "payload": {
      "active_workflow": "transport",
      "background_fact_count": 0,
      "current_step": null,
      "foreground_fact_count": 3,
      "prompt_family": "general",
      "purpose": "workflow_response"
    },
    "stage": "context",
    "summary": "Built workflow-response context slice for prompt assembly",
    "timestamp": "2026-03-16T22:37:04.413651+00:00"
  },
  {
    "component": "workflow",
    "payload": {
      "action_intents": [],
      "missing_fields": [
        "pickup_location",
        "drop_location",
        "pet_count"
      ],
      "next_question": "I can help with transport and stay on top of the coordination. Please share the pickup area, drop location, and when you need it.",
      "stage": "timing_defined",
      "status": "collecting",
      "summary": "2026-03-17 | morning",
      "workflow_name": "transport"
    },
    "stage": "decision",
    "summary": "Executed deterministic workflow handler",
    "timestamp": "2026-03-16T22:37:04.413818+00:00"
  },
  {
    "component": "memory_store",
    "payload": {
      "active_state_machine": null,
      "current_state": "TIMING_DEFINED",
      "message_count_after": 2,
      "storage_key": "919900000206"
    },
    "stage": "mutation",
    "summary": "Persisted updated conversation memory",
    "timestamp": "2026-03-16T22:37:04.414174+00:00"
  }
]
Turn 2
transport transport route_defined active_workflow_snapshot follow_up active_workflow_snapshot
Sticky continuation Stage advanced New slots filled Memory updated Stayed on transport
PASS PASS PASS
User
From Aundh to Baner
Assistant
Got it. I can help with transport. How many cats is this for?

What Changed This Turn

  • Active workflow remained transport.
  • Stage advanced timing_defined -> route_defined.
  • New slot filled: drop_area=Baner.
  • New slot filled: pickup_area=Aundh.
  • Memory updated with area.
  • Memory updated with drop_area.
  • Memory updated with pickup_area.
  • Snapshot version incremented to 2.

Expectation And Heuristic Results

Expectations
PASS: workflow_name matched expected value 'transport'
Heuristics
PASS: Workflow avoided repeating the same question PASS: Active workflow remained sticky across terse follow-up
Routing And Interpretation
{
  "confidence": 0.92,
  "reason_codes": [
    "active_workflow_snapshot",
    "follow_up",
    "active_workflow_snapshot",
    "follow_up_slot_fill"
  ],
  "route_type": "transport",
  "workflow_name": "transport"
}
{
  "confidence": 0.92,
  "entities": {
    "area": "baner",
    "city": "pune",
    "drop_area": "Baner",
    "pickup_area": "Aundh",
    "zone": "west"
  },
  "is_vague": false,
  "primary_domain": "transport",
  "reason": "fills requested area for active workflow",
  "secondary_domains": [],
  "should_continue_active_workflow": true,
  "should_preempt_active_workflow": false,
  "urgency_signal": "none"
}
Workflow Progress And Intents
{
  "missing_fields": [
    "pet_count"
  ],
  "next_question": "Got it. I can help with transport. How many cats is this for?",
  "notes": [],
  "stage": "route_defined",
  "state_payload": {
    "drop_area": "Baner",
    "handling_requirements": [],
    "last_question_key": "pet_count",
    "pet_count": null,
    "pickup_area": "Aundh",
    "raw_date_text": "tomorrow",
    "raw_time_text": "morning",
    "request_kind": "booking",
    "return_trip_required": null,
    "stage": "route_defined",
    "time_window": "morning",
    "travel_date": "2026-03-17",
    "trip_kind": "pickup_drop",
    "urgency_class": "soon"
  },
  "status": "collecting",
  "summary": "Aundh -> Baner | 2026-03-17 | morning",
  "superseded_by": null,
  "workflow_name": "transport"
}
[]
Conversation Before And After
{
  "active_state_machine": null,
  "active_workflow": {
    "last_question_key": "grouped_core",
    "missing_fields": [
      "pickup_location",
      "drop_location",
      "pet_count"
    ],
    "next_question": "I can help with transport and stay on top of the coordination. Please share the pickup area, drop location, and when you need it.",
    "stage": "timing_defined",
    "started_at": "2026-03-16T22:37:04.413804+00:00",
    "state_payload": {
      "drop_area": null,
      "handling_requirements": [],
      "last_question_key": "grouped_core",
      "pet_count": null,
      "pickup_area": null,
      "raw_date_text": "tomorrow",
      "raw_time_text": "morning",
      "request_kind": "booking",
      "return_trip_required": null,
      "stage": "timing_defined",
      "time_window": "morning",
      "travel_date": "2026-03-17",
      "trip_kind": "pickup_drop",
      "urgency_class": "soon"
    },
    "status": "collecting",
    "summary": "2026-03-17 | morning",
    "superseded_by": null,
    "updated_at": "2026-03-16T22:37:04.413805+00:00",
    "version": 1,
    "workflow_name": "transport"
  },
  "current_state": "TIMING_DEFINED",
  "entities": {
    "date_phrase": "tomorrow",
    "last_non_medical_domain": "transport",
    "time_text": "morning",
    "time_window": "morning",
    "transport_urgency": "soon",
    "travel_date": "2026-03-17",
    "trip_kind": "pickup_drop"
  },
  "messages": [
    {
      "role": "user",
      "source": null,
      "text": "Need transport tomorrow morning",
      "timestamp": "2026-03-16T22:37:04.413829+00:00"
    },
    {
      "role": "assistant",
      "source": "B",
      "text": "I can help with transport and stay on top of the coordination. Please share the pickup area, drop location, and when you need it.",
      "timestamp": "2026-03-16T22:37:04.413831+00:00"
    }
  ],
  "phone": "919900000206",
  "service_actions": [],
  "started_at": "2026-03-16T22:37:04.413827+00:00",
  "triage_state": null,
  "updated_at": "2026-03-16T22:37:04.413844+00:00"
}
{
  "active_state_machine": null,
  "active_workflow": {
    "last_question_key": "pet_count",
    "missing_fields": [
      "pet_count"
    ],
    "next_question": "Got it. I can help with transport. How many cats is this for?",
    "stage": "route_defined",
    "started_at": "2026-03-16T22:37:04.413804+00:00",
    "state_payload": {
      "drop_area": "Baner",
      "handling_requirements": [],
      "last_question_key": "pet_count",
      "pet_count": null,
      "pickup_area": "Aundh",
      "raw_date_text": "tomorrow",
      "raw_time_text": "morning",
      "request_kind": "booking",
      "return_trip_required": null,
      "stage": "route_defined",
      "time_window": "morning",
      "travel_date": "2026-03-17",
      "trip_kind": "pickup_drop",
      "urgency_class": "soon"
    },
    "status": "collecting",
    "summary": "Aundh -> Baner | 2026-03-17 | morning",
    "superseded_by": null,
    "updated_at": "2026-03-16T22:37:04.418432+00:00",
    "version": 2,
    "workflow_name": "transport"
  },
  "current_state": "ROUTE_DEFINED",
  "entities": {
    "area": "Aundh",
    "date_phrase": "tomorrow",
    "drop_area": "Baner",
    "last_non_medical_domain": "transport",
    "pickup_area": "Aundh",
    "time_text": "morning",
    "time_window": "morning",
    "transport_urgency": "soon",
    "travel_date": "2026-03-17",
    "trip_kind": "pickup_drop"
  },
  "messages": [
    {
      "role": "user",
      "source": null,
      "text": "Need transport tomorrow morning",
      "timestamp": "2026-03-16T22:37:04.413829+00:00"
    },
    {
      "role": "assistant",
      "source": "B",
      "text": "I can help with transport and stay on top of the coordination. Please share the pickup area, drop location, and when you need it.",
      "timestamp": "2026-03-16T22:37:04.413831+00:00"
    },
    {
      "role": "user",
      "source": null,
      "text": "From Aundh to Baner",
      "timestamp": "2026-03-16T22:37:04.418456+00:00"
    },
    {
      "role": "assistant",
      "source": "B",
      "text": "Got it. I can help with transport. How many cats is this for?",
      "timestamp": "2026-03-16T22:37:04.418457+00:00"
    }
  ],
  "phone": "919900000206",
  "service_actions": [],
  "started_at": "2026-03-16T22:37:04.413827+00:00",
  "triage_state": null,
  "updated_at": "2026-03-16T22:37:04.418471+00:00"
}
Memory And Trace
{
  "active_state_machine": null,
  "backend": "inmemory",
  "conversation_key_used": "919900000206",
  "conversation_keys": [
    "919900000206",
    "9900000206"
  ],
  "current_state": "TIMING_DEFINED",
  "loaded": true,
  "ping_ok": null,
  "redis_enabled": false,
  "thread_message_count": 2,
  "ttl_seconds_remaining": null
}
{
  "active_state_machine": null,
  "backend": "inmemory",
  "conversation_key_used": "919900000206",
  "conversation_keys": [
    "919900000206",
    "9900000206"
  ],
  "current_state": "ROUTE_DEFINED",
  "loaded": true,
  "ping_ok": null,
  "redis_enabled": false,
  "thread_message_count": 4,
  "ttl_seconds_remaining": null
}
[
  {
    "component": "brain",
    "payload": {
      "channel": "scenario_harness",
      "conversation_key": "919900000206",
      "message_text": "From Aundh to Baner",
      "normalized_phone": "919900000206",
      "phone": "919900000206"
    },
    "stage": "input",
    "summary": "Received normalized message envelope",
    "timestamp": "2026-03-16T22:37:04.417261+00:00"
  },
  {
    "component": "memory_store",
    "payload": {
      "active_state_machine": null,
      "backend": "inmemory",
      "current_state": "TIMING_DEFINED",
      "loaded": true,
      "message_count": 2,
      "storage_key": "919900000206"
    },
    "stage": "memory",
    "summary": "Loaded conversation memory",
    "timestamp": "2026-03-16T22:37:04.417266+00:00"
  },
  {
    "component": "brain",
    "payload": {
      "has_prior_triage_state": false,
      "prior_state_error": null
    },
    "stage": "state",
    "summary": "Parsed prior working state",
    "timestamp": "2026-03-16T22:37:04.417268+00:00"
  },
  {
    "component": "brain",
    "payload": {
      "compact_payload_keys": [
        "incoming_message"
      ],
      "has_conversation": true,
      "has_customer": false,
      "has_icp": false,
      "has_profile": false,
      "recent_import_count": 0,
      "storage_key": "919900000206"
    },
    "stage": "context",
    "summary": "Assembled SessionContext for the turn",
    "timestamp": "2026-03-16T22:37:04.417272+00:00"
  },
  {
    "component": "contact_resolver",
    "payload": {
      "confidence": 0.0,
      "customer_id": null,
      "display_name": null,
      "matched_phone": null,
      "status": "UNKNOWN"
    },
    "stage": "decision",
    "summary": "Resolved sender contact status",
    "timestamp": "2026-03-16T22:37:04.417275+00:00"
  },
  {
    "component": "turn_interpretation",
    "payload": {
      "confidence": 0.92,
      "contact_status": "UNKNOWN",
      "entities": {
        "area": "baner",
        "city": "pune",
        "drop_area": "Baner",
        "pickup_area": "Aundh",
        "zone": "west"
      },
      "is_vague": false,
      "primary_domain": "transport",
      "reason": "fills requested area for active workflow",
      "secondary_domains": [],
      "should_continue_active_workflow": true,
      "should_preempt_active_workflow": false,
      "urgency_signal": "none"
    },
    "stage": "decision",
    "summary": "Resolved turn interpretation deterministically",
    "timestamp": "2026-03-16T22:37:04.417665+00:00"
  },
  {
    "component": "profile_context",
    "payload": {
      "phone": "919900000206"
    },
    "stage": "context",
    "summary": "No customer matched provided phone",
    "timestamp": "2026-03-16T22:37:04.417671+00:00"
  },
  {
    "component": "entry_policy",
    "payload": {
      "allow_identity_question": false,
      "bypass_onboarding": true,
      "defer_existing_workflow": false,
      "preempt_active_workflow": false,
      "reason": "existing active workflow should continue unless urgency preempts it",
      "run_welcome_orientation": false,
      "selected_posture": "continue_active"
    },
    "stage": "decision",
    "summary": "Determined entry posture for this turn",
    "timestamp": "2026-03-16T22:37:04.417673+00:00"
  },
  {
    "component": "intent_parser",
    "payload": {
      "continue_active_workflow": true,
      "primary_intent": "transport_request",
      "reason": "continue_active_workflow_snapshot_from_follow_up",
      "resolved_state_machine": "transport",
      "workflow_source": "active_workflow"
    },
    "stage": "decision",
    "summary": "Resolved primary intent and state machine",
    "timestamp": "2026-03-16T22:37:04.417831+00:00"
  },
  {
    "component": "context_builder",
    "payload": {
      "active_workflow": "transport",
      "background_fact_count": 0,
      "current_step": "TIMING_DEFINED",
      "foreground_fact_count": 7,
      "prompt_family": "general",
      "purpose": "workflow_response"
    },
    "stage": "context",
    "summary": "Built workflow-response context slice for prompt assembly",
    "timestamp": "2026-03-16T22:37:04.417961+00:00"
  },
  {
    "component": "workflow",
    "payload": {
      "action_intents": [],
      "missing_fields": [
        "pet_count"
      ],
      "next_question": "Got it. I can help with transport. How many cats is this for?",
      "stage": "route_defined",
      "status": "collecting",
      "summary": "Aundh -> Baner | 2026-03-17 | morning",
      "workflow_name": "transport"
    },
    "stage": "decision",
    "summary": "Executed deterministic workflow handler",
    "timestamp": "2026-03-16T22:37:04.418445+00:00"
  },
  {
    "component": "memory_store",
    "payload": {
      "active_state_machine": null,
      "current_state": "ROUTE_DEFINED",
      "message_count_after": 4,
      "storage_key": "919900000206"
    },
    "stage": "mutation",
    "summary": "Persisted updated conversation memory",
    "timestamp": "2026-03-16T22:37:04.418816+00:00"
  }
]
Turn 3
transport transport ready_for_dispatch active_workflow_snapshot follow_up active_workflow_snapshot
Sticky continuation Stage advanced New slots filled Memory updated Stayed on transport
PASS PASS
User
One cat
Assistant
I have the route and timing details. I’ll route this for transport follow-up right away.

What Changed This Turn

  • Active workflow remained transport.
  • Stage advanced route_defined -> ready_for_dispatch.
  • New slot filled: mannat_delivery=conversation_id=raahat:919900000206, created_request_id=None, delivery_key=40b4b2131fef744a, endpoint=/raahat/erp/api/intake/transport, error=missing_required_fields:customer_name, payload_sent=booking_date=2026-03-17, conversation_id=raahat:919900000206, customer_name=None, customer_phone=919900000206, drop_location=Baner, pickup_location=Aundh, request_id=raahat_transport_40b4b2131fef744a, return_trip_required=False, slot=morning, source_system=raahat, special_notes=Cat count: 1 | Urgency: soon | Aundh -> Baner | 2026-03-17 | morning | 1 cat, trip_category=pickup_drop, request_id=raahat_transport_40b4b2131fef744a, response_body=None, response_json=None, skip_reason=missing_required_fields, skipped=True, status_code=None, success=False, url=None, workflow_name=transport, workflow_stage=ready_for_dispatch.
  • New slot filled: pet_count=1.
  • Memory updated with cat_count.
  • Snapshot version incremented to 3.

Expectation And Heuristic Results

Expectations
PASS: workflow_name matched expected value 'transport'
Heuristics
PASS: Active workflow remained sticky across terse follow-up
Routing And Interpretation
{
  "confidence": 0.92,
  "reason_codes": [
    "active_workflow_snapshot",
    "follow_up",
    "active_workflow_snapshot",
    "follow_up_slot_fill"
  ],
  "route_type": "transport",
  "workflow_name": "transport"
}
{
  "confidence": 0.92,
  "entities": {
    "cat_count": 1
  },
  "is_vague": false,
  "primary_domain": "transport",
  "reason": "fills requested cat_count for active workflow",
  "secondary_domains": [],
  "should_continue_active_workflow": true,
  "should_preempt_active_workflow": false,
  "urgency_signal": "none"
}
Workflow Progress And Intents
{
  "mannat_delivery": {
    "conversation_id": "raahat:919900000206",
    "created_request_id": null,
    "delivery_key": "40b4b2131fef744a",
    "endpoint": "/raahat/erp/api/intake/transport",
    "error": "missing_required_fields:customer_name",
    "payload_sent": {
      "booking_date": "2026-03-17",
      "conversation_id": "raahat:919900000206",
      "customer_name": null,
      "customer_phone": "919900000206",
      "drop_location": "Baner",
      "pickup_location": "Aundh",
      "request_id": "raahat_transport_40b4b2131fef744a",
      "return_trip_required": false,
      "slot": "morning",
      "source_system": "raahat",
      "special_notes": "Cat count: 1 | Urgency: soon | Aundh -> Baner | 2026-03-17 | morning | 1 cat",
      "trip_category": "pickup_drop"
    },
    "request_id": "raahat_transport_40b4b2131fef744a",
    "response_body": null,
    "response_json": null,
    "skip_reason": "missing_required_fields",
    "skipped": true,
    "status_code": null,
    "success": false,
    "url": null,
    "workflow_name": "transport",
    "workflow_stage": "ready_for_dispatch"
  },
  "missing_fields": [],
  "next_question": null,
  "notes": [],
  "stage": "ready_for_dispatch",
  "state_payload": {
    "drop_area": "Baner",
    "handling_requirements": [],
    "last_question_key": "pet_count",
    "mannat_delivery": {
      "conversation_id": "raahat:919900000206",
      "created_request_id": null,
      "delivery_key": "40b4b2131fef744a",
      "endpoint": "/raahat/erp/api/intake/transport",
      "error": "missing_required_fields:customer_name",
      "payload_sent": {
        "booking_date": "2026-03-17",
        "conversation_id": "raahat:919900000206",
        "customer_name": null,
        "customer_phone": "919900000206",
        "drop_location": "Baner",
        "pickup_location": "Aundh",
        "request_id": "raahat_transport_40b4b2131fef744a",
        "return_trip_required": false,
        "slot": "morning",
        "source_system": "raahat",
        "special_notes": "Cat count: 1 | Urgency: soon | Aundh -> Baner | 2026-03-17 | morning | 1 cat",
        "trip_category": "pickup_drop"
      },
      "request_id": "raahat_transport_40b4b2131fef744a",
      "response_body": null,
      "response_json": null,
      "skip_reason": "missing_required_fields",
      "skipped": true,
      "status_code": null,
      "success": false,
      "url": null,
      "workflow_name": "transport",
      "workflow_stage": "ready_for_dispatch"
    },
    "pet_count": 1,
    "pickup_area": "Aundh",
    "raw_date_text": "tomorrow",
    "raw_time_text": "morning",
    "request_kind": "booking",
    "return_trip_required": null,
    "stage": "ready_for_dispatch",
    "time_window": "morning",
    "travel_date": "2026-03-17",
    "trip_kind": "pickup_drop",
    "urgency_class": "soon"
  },
  "status": "ready",
  "summary": "Aundh -> Baner | 2026-03-17 | morning | 1 cat",
  "superseded_by": null,
  "workflow_name": "transport"
}
[
  {
    "action_type": "collect_transport_request",
    "idempotency_key": "d8648985df34a9ae",
    "metadata": {
      "handoff_recommendation": "human_ops",
      "missing_fields": [],
      "normalized_slots": {
        "drop_area": "Baner",
        "handling_requirements": [],
        "pet_count": 1,
        "pickup_area": "Aundh",
        "raw_date_text": "tomorrow",
        "raw_time_text": "morning",
        "request_kind": "booking",
        "return_trip_required": null,
        "time_window": "morning",
        "travel_date": "2026-03-17",
        "trip_kind": "pickup_drop",
        "urgency_class": "soon"
      },
      "snapshot_version": 3,
      "urgency_class": "soon",
      "workflow_name": "transport",
      "workflow_stage": "ready_for_dispatch"
    },
    "payload": {
      "drop_area": "Baner",
      "handling_requirements": [],
      "pet_count": 1,
      "pickup_area": "Aundh",
      "raw_date_text": "tomorrow",
      "raw_time_text": "morning",
      "request_kind": "booking",
      "return_trip_required": null,
      "time_window": "morning",
      "travel_date": "2026-03-17",
      "trip_kind": "pickup_drop",
      "urgency_class": "soon"
    },
    "priority": "normal",
    "reason": "transport workflow has enough logistics for planning",
    "requires_admin_review": false,
    "source_workflow": "transport",
    "status": "ready",
    "user_visible": false
  },
  {
    "action_type": "check_driver_availability",
    "idempotency_key": "397eb71314ef07a3",
    "metadata": {
      "handoff_recommendation": "human_ops",
      "missing_fields": [],
      "normalized_slots": {
        "drop_area": "Baner",
        "handling_requirements": [],
        "pet_count": 1,
        "pickup_area": "Aundh",
        "raw_date_text": "tomorrow",
        "raw_time_text": "morning",
        "request_kind": "booking",
        "return_trip_required": null,
        "time_window": "morning",
        "travel_date": "2026-03-17",
        "trip_kind": "pickup_drop",
        "urgency_class": "soon"
      },
      "snapshot_version": 3,
      "urgency_class": "soon",
      "workflow_name": "transport",
      "workflow_stage": "ready_for_dispatch"
    },
    "payload": {
      "drop_area": "Baner",
      "handling_requirements": [],
      "pet_count": 1,
      "pickup_area": "Aundh",
      "raw_date_text": "tomorrow",
      "raw_time_text": "morning",
      "request_kind": "booking",
      "return_trip_required": null,
      "time_window": "morning",
      "travel_date": "2026-03-17",
      "trip_kind": "pickup_drop",
      "urgency_class": "soon"
    },
    "priority": "normal",
    "reason": "transport request has enough detail for availability review",
    "requires_admin_review": false,
    "source_workflow": "transport",
    "status": "ready",
    "user_visible": false
  },
  {
    "action_type": "request_transport_dispatch",
    "idempotency_key": "40b4b2131fef744a",
    "metadata": {
      "handoff_recommendation": "human_ops",
      "missing_fields": [],
      "normalized_slots": {
        "drop_area": "Baner",
        "handling_requirements": [],
        "pet_count": 1,
        "pickup_area": "Aundh",
        "raw_date_text": "tomorrow",
        "raw_time_text": "morning",
        "request_kind": "booking",
        "return_trip_required": null,
        "time_window": "morning",
        "travel_date": "2026-03-17",
        "trip_kind": "pickup_drop",
        "urgency_class": "soon"
      },
      "snapshot_version": 3,
      "urgency_class": "soon",
      "workflow_name": "transport",
      "workflow_stage": "ready_for_dispatch"
    },
    "payload": {
      "drop_area": "Baner",
      "handling_requirements": [],
      "pet_count": 1,
      "pickup_area": "Aundh",
      "raw_date_text": "tomorrow",
      "raw_time_text": "morning",
      "request_kind": "booking",
      "return_trip_required": null,
      "time_window": "morning",
      "travel_date": "2026-03-17",
      "trip_kind": "pickup_drop",
      "urgency_class": "soon"
    },
    "priority": "high",
    "reason": "transport request is actionable enough for dispatch review",
    "requires_admin_review": true,
    "source_workflow": "transport",
    "status": "needs_admin_review",
    "user_visible": false
  },
  {
    "action_type": "handoff_to_human_ops",
    "idempotency_key": "c52d96492ce245a9",
    "metadata": {
      "handoff_recommendation": "human_ops",
      "missing_fields": [],
      "normalized_slots": {
        "drop_area": "Baner",
        "handling_requirements": [],
        "pet_count": 1,
        "pickup_area": "Aundh",
        "raw_date_text": "tomorrow",
        "raw_time_text": "morning",
        "request_kind": "booking",
        "return_trip_required": null,
        "time_window": "morning",
        "travel_date": "2026-03-17",
        "trip_kind": "pickup_drop",
        "urgency_class": "soon"
      },
      "snapshot_version": 3,
      "urgency_class": "soon",
      "workflow_name": "transport",
      "workflow_stage": "ready_for_dispatch"
    },
    "payload": {
      "drop_area": "Baner",
      "handling_requirements": [],
      "pet_count": 1,
      "pickup_area": "Aundh",
      "raw_date_text": "tomorrow",
      "raw_time_text": "morning",
      "request_kind": "booking",
      "return_trip_required": null,
      "time_window": "morning",
      "travel_date": "2026-03-17",
      "trip_kind": "pickup_drop",
      "urgency_class": "soon"
    },
    "priority": "normal",
    "reason": "transport coordination requires human ops follow-up",
    "requires_admin_review": true,
    "source_workflow": "transport",
    "status": "needs_admin_review",
    "user_visible": false
  }
]
Conversation Before And After
{
  "active_state_machine": null,
  "active_workflow": {
    "last_question_key": "pet_count",
    "missing_fields": [
      "pet_count"
    ],
    "next_question": "Got it. I can help with transport. How many cats is this for?",
    "stage": "route_defined",
    "started_at": "2026-03-16T22:37:04.413804+00:00",
    "state_payload": {
      "drop_area": "Baner",
      "handling_requirements": [],
      "last_question_key": "pet_count",
      "pet_count": null,
      "pickup_area": "Aundh",
      "raw_date_text": "tomorrow",
      "raw_time_text": "morning",
      "request_kind": "booking",
      "return_trip_required": null,
      "stage": "route_defined",
      "time_window": "morning",
      "travel_date": "2026-03-17",
      "trip_kind": "pickup_drop",
      "urgency_class": "soon"
    },
    "status": "collecting",
    "summary": "Aundh -> Baner | 2026-03-17 | morning",
    "superseded_by": null,
    "updated_at": "2026-03-16T22:37:04.418432+00:00",
    "version": 2,
    "workflow_name": "transport"
  },
  "current_state": "ROUTE_DEFINED",
  "entities": {
    "area": "Aundh",
    "date_phrase": "tomorrow",
    "drop_area": "Baner",
    "last_non_medical_domain": "transport",
    "pickup_area": "Aundh",
    "time_text": "morning",
    "time_window": "morning",
    "transport_urgency": "soon",
    "travel_date": "2026-03-17",
    "trip_kind": "pickup_drop"
  },
  "messages": [
    {
      "role": "user",
      "source": null,
      "text": "Need transport tomorrow morning",
      "timestamp": "2026-03-16T22:37:04.413829+00:00"
    },
    {
      "role": "assistant",
      "source": "B",
      "text": "I can help with transport and stay on top of the coordination. Please share the pickup area, drop location, and when you need it.",
      "timestamp": "2026-03-16T22:37:04.413831+00:00"
    },
    {
      "role": "user",
      "source": null,
      "text": "From Aundh to Baner",
      "timestamp": "2026-03-16T22:37:04.418456+00:00"
    },
    {
      "role": "assistant",
      "source": "B",
      "text": "Got it. I can help with transport. How many cats is this for?",
      "timestamp": "2026-03-16T22:37:04.418457+00:00"
    }
  ],
  "phone": "919900000206",
  "service_actions": [],
  "started_at": "2026-03-16T22:37:04.413827+00:00",
  "triage_state": null,
  "updated_at": "2026-03-16T22:37:04.418471+00:00"
}
{
  "active_state_machine": null,
  "active_workflow": {
    "last_question_key": null,
    "missing_fields": [],
    "next_question": null,
    "stage": "ready_for_dispatch",
    "started_at": "2026-03-16T22:37:04.413804+00:00",
    "state_payload": {
      "drop_area": "Baner",
      "handling_requirements": [],
      "last_question_key": "pet_count",
      "mannat_delivery": {
        "conversation_id": "raahat:919900000206",
        "created_request_id": null,
        "delivery_key": "40b4b2131fef744a",
        "endpoint": "/raahat/erp/api/intake/transport",
        "error": "missing_required_fields:customer_name",
        "payload_sent": {
          "booking_date": "2026-03-17",
          "conversation_id": "raahat:919900000206",
          "customer_name": null,
          "customer_phone": "919900000206",
          "drop_location": "Baner",
          "pickup_location": "Aundh",
          "request_id": "raahat_transport_40b4b2131fef744a",
          "return_trip_required": false,
          "slot": "morning",
          "source_system": "raahat",
          "special_notes": "Cat count: 1 | Urgency: soon | Aundh -> Baner | 2026-03-17 | morning | 1 cat",
          "trip_category": "pickup_drop"
        },
        "request_id": "raahat_transport_40b4b2131fef744a",
        "response_body": null,
        "response_json": null,
        "skip_reason": "missing_required_fields",
        "skipped": true,
        "status_code": null,
        "success": false,
        "url": null,
        "workflow_name": "transport",
        "workflow_stage": "ready_for_dispatch"
      },
      "pet_count": 1,
      "pickup_area": "Aundh",
      "raw_date_text": "tomorrow",
      "raw_time_text": "morning",
      "request_kind": "booking",
      "return_trip_required": null,
      "stage": "ready_for_dispatch",
      "time_window": "morning",
      "travel_date": "2026-03-17",
      "trip_kind": "pickup_drop",
      "urgency_class": "soon"
    },
    "status": "ready",
    "summary": "Aundh -> Baner | 2026-03-17 | morning | 1 cat",
    "superseded_by": null,
    "updated_at": "2026-03-16T22:37:04.422024+00:00",
    "version": 3,
    "workflow_name": "transport"
  },
  "current_state": "READY_FOR_DISPATCH",
  "entities": {
    "area": "Aundh",
    "cat_count": 1,
    "date_phrase": "tomorrow",
    "drop_area": "Baner",
    "last_non_medical_domain": "transport",
    "pickup_area": "Aundh",
    "time_text": "morning",
    "time_window": "morning",
    "transport_urgency": "soon",
    "travel_date": "2026-03-17",
    "trip_kind": "pickup_drop"
  },
  "messages": [
    {
      "role": "user",
      "source": null,
      "text": "Need transport tomorrow morning",
      "timestamp": "2026-03-16T22:37:04.413829+00:00"
    },
    {
      "role": "assistant",
      "source": "B",
      "text": "I can help with transport and stay on top of the coordination. Please share the pickup area, drop location, and when you need it.",
      "timestamp": "2026-03-16T22:37:04.413831+00:00"
    },
    {
      "role": "user",
      "source": null,
      "text": "From Aundh to Baner",
      "timestamp": "2026-03-16T22:37:04.418456+00:00"
    },
    {
      "role": "assistant",
      "source": "B",
      "text": "Got it. I can help with transport. How many cats is this for?",
      "timestamp": "2026-03-16T22:37:04.418457+00:00"
    },
    {
      "role": "user",
      "source": null,
      "text": "One cat",
      "timestamp": "2026-03-16T22:37:04.422160+00:00"
    },
    {
      "role": "assistant",
      "source": "B",
      "text": "I have the route and timing details. I’ll route this for transport follow-up right away.",
      "timestamp": "2026-03-16T22:37:04.422162+00:00"
    }
  ],
  "phone": "919900000206",
  "service_actions": [],
  "started_at": "2026-03-16T22:37:04.413827+00:00",
  "triage_state": null,
  "updated_at": "2026-03-16T22:37:04.422178+00:00"
}
Memory And Trace
{
  "active_state_machine": null,
  "backend": "inmemory",
  "conversation_key_used": "919900000206",
  "conversation_keys": [
    "919900000206",
    "9900000206"
  ],
  "current_state": "ROUTE_DEFINED",
  "loaded": true,
  "ping_ok": null,
  "redis_enabled": false,
  "thread_message_count": 4,
  "ttl_seconds_remaining": null
}
{
  "active_state_machine": null,
  "backend": "inmemory",
  "conversation_key_used": "919900000206",
  "conversation_keys": [
    "919900000206",
    "9900000206"
  ],
  "current_state": "READY_FOR_DISPATCH",
  "loaded": true,
  "ping_ok": null,
  "redis_enabled": false,
  "thread_message_count": 6,
  "ttl_seconds_remaining": null
}
[
  {
    "component": "brain",
    "payload": {
      "channel": "scenario_harness",
      "conversation_key": "919900000206",
      "message_text": "One cat",
      "normalized_phone": "919900000206",
      "phone": "919900000206"
    },
    "stage": "input",
    "summary": "Received normalized message envelope",
    "timestamp": "2026-03-16T22:37:04.421564+00:00"
  },
  {
    "component": "memory_store",
    "payload": {
      "active_state_machine": null,
      "backend": "inmemory",
      "current_state": "ROUTE_DEFINED",
      "loaded": true,
      "message_count": 4,
      "storage_key": "919900000206"
    },
    "stage": "memory",
    "summary": "Loaded conversation memory",
    "timestamp": "2026-03-16T22:37:04.421568+00:00"
  },
  {
    "component": "brain",
    "payload": {
      "has_prior_triage_state": false,
      "prior_state_error": null
    },
    "stage": "state",
    "summary": "Parsed prior working state",
    "timestamp": "2026-03-16T22:37:04.421570+00:00"
  },
  {
    "component": "brain",
    "payload": {
      "compact_payload_keys": [
        "incoming_message"
      ],
      "has_conversation": true,
      "has_customer": false,
      "has_icp": false,
      "has_profile": false,
      "recent_import_count": 0,
      "storage_key": "919900000206"
    },
    "stage": "context",
    "summary": "Assembled SessionContext for the turn",
    "timestamp": "2026-03-16T22:37:04.421572+00:00"
  },
  {
    "component": "contact_resolver",
    "payload": {
      "confidence": 0.0,
      "customer_id": null,
      "display_name": null,
      "matched_phone": null,
      "status": "UNKNOWN"
    },
    "stage": "decision",
    "summary": "Resolved sender contact status",
    "timestamp": "2026-03-16T22:37:04.421575+00:00"
  },
  {
    "component": "turn_interpretation",
    "payload": {
      "confidence": 0.92,
      "contact_status": "UNKNOWN",
      "entities": {
        "cat_count": 1
      },
      "is_vague": false,
      "primary_domain": "transport",
      "reason": "fills requested cat_count for active workflow",
      "secondary_domains": [],
      "should_continue_active_workflow": true,
      "should_preempt_active_workflow": false,
      "urgency_signal": "none"
    },
    "stage": "decision",
    "summary": "Resolved turn interpretation deterministically",
    "timestamp": "2026-03-16T22:37:04.421694+00:00"
  },
  {
    "component": "profile_context",
    "payload": {
      "phone": "919900000206"
    },
    "stage": "context",
    "summary": "No customer matched provided phone",
    "timestamp": "2026-03-16T22:37:04.421698+00:00"
  },
  {
    "component": "entry_policy",
    "payload": {
      "allow_identity_question": false,
      "bypass_onboarding": true,
      "defer_existing_workflow": false,
      "preempt_active_workflow": false,
      "reason": "existing active workflow should continue unless urgency preempts it",
      "run_welcome_orientation": false,
      "selected_posture": "continue_active"
    },
    "stage": "decision",
    "summary": "Determined entry posture for this turn",
    "timestamp": "2026-03-16T22:37:04.421700+00:00"
  },
  {
    "component": "intent_parser",
    "payload": {
      "continue_active_workflow": true,
      "primary_intent": "transport_request",
      "reason": "continue_active_workflow_snapshot_from_follow_up",
      "resolved_state_machine": "transport",
      "workflow_source": "active_workflow"
    },
    "stage": "decision",
    "summary": "Resolved primary intent and state machine",
    "timestamp": "2026-03-16T22:37:04.421740+00:00"
  },
  {
    "component": "context_builder",
    "payload": {
      "active_workflow": "transport",
      "background_fact_count": 0,
      "current_step": "ROUTE_DEFINED",
      "foreground_fact_count": 5,
      "prompt_family": "general",
      "purpose": "workflow_response"
    },
    "stage": "context",
    "summary": "Built workflow-response context slice for prompt assembly",
    "timestamp": "2026-03-16T22:37:04.421771+00:00"
  },
  {
    "component": "workflow",
    "payload": {
      "action_intents": [
        {
          "action_type": "collect_transport_request",
          "idempotency_key": "d8648985df34a9ae",
          "metadata": {
            "handoff_recommendation": "human_ops",
            "missing_fields": [],
            "normalized_slots": {
              "drop_area": "Baner",
              "handling_requirements": [],
              "pet_count": 1,
              "pickup_area": "Aundh",
              "raw_date_text": "tomorrow",
              "raw_time_text": "morning",
              "request_kind": "booking",
              "return_trip_required": null,
              "time_window": "morning",
              "travel_date": "2026-03-17",
              "trip_kind": "pickup_drop",
              "urgency_class": "soon"
            },
            "snapshot_version": 3,
            "urgency_class": "soon",
            "workflow_name": "transport",
            "workflow_stage": "ready_for_dispatch"
          },
          "payload": {
            "drop_area": "Baner",
            "handling_requirements": [],
            "pet_count": 1,
            "pickup_area": "Aundh",
            "raw_date_text": "tomorrow",
            "raw_time_text": "morning",
            "request_kind": "booking",
            "return_trip_required": null,
            "time_window": "morning",
            "travel_date": "2026-03-17",
            "trip_kind": "pickup_drop",
            "urgency_class": "soon"
          },
          "priority": "normal",
          "reason": "transport workflow has enough logistics for planning",
          "requires_admin_review": false,
          "source_workflow": "transport",
          "status": "ready",
          "user_visible": false
        },
        {
          "action_type": "check_driver_availability",
          "idempotency_key": "397eb71314ef07a3",
          "metadata": {
            "handoff_recommendation": "human_ops",
            "missing_fields": [],
            "normalized_slots": {
              "drop_area": "Baner",
              "handling_requirements": [],
              "pet_count": 1,
              "pickup_area": "Aundh",
              "raw_date_text": "tomorrow",
              "raw_time_text": "morning",
              "request_kind": "booking",
              "return_trip_required": null,
              "time_window": "morning",
              "travel_date": "2026-03-17",
              "trip_kind": "pickup_drop",
              "urgency_class": "soon"
            },
            "snapshot_version": 3,
            "urgency_class": "soon",
            "workflow_name": "transport",
            "workflow_stage": "ready_for_dispatch"
          },
          "payload": {
            "drop_area": "Baner",
            "handling_requirements": [],
            "pet_count": 1,
            "pickup_area": "Aundh",
            "raw_date_text": "tomorrow",
            "raw_time_text": "morning",
            "request_kind": "booking",
            "return_trip_required": null,
            "time_window": "morning",
            "travel_date": "2026-03-17",
            "trip_kind": "pickup_drop",
            "urgency_class": "soon"
          },
          "priority": "normal",
          "reason": "transport request has enough detail for availability review",
          "requires_admin_review": false,
          "source_workflow": "transport",
          "status": "ready",
          "user_visible": false
        },
        {
          "action_type": "request_transport_dispatch",
          "idempotency_key": "40b4b2131fef744a",
          "metadata": {
            "handoff_recommendation": "human_ops",
            "missing_fields": [],
            "normalized_slots": {
              "drop_area": "Baner",
              "handling_requirements": [],
              "pet_count": 1,
              "pickup_area": "Aundh",
              "raw_date_text": "tomorrow",
              "raw_time_text": "morning",
              "request_kind": "booking",
              "return_trip_required": null,
              "time_window": "morning",
              "travel_date": "2026-03-17",
              "trip_kind": "pickup_drop",
              "urgency_class": "soon"
            },
            "snapshot_version": 3,
            "urgency_class": "soon",
            "workflow_name": "transport",
            "workflow_stage": "ready_for_dispatch"
          },
          "payload": {
            "drop_area": "Baner",
            "handling_requirements": [],
            "pet_count": 1,
            "pickup_area": "Aundh",
            "raw_date_text": "tomorrow",
            "raw_time_text": "morning",
            "request_kind": "booking",
            "return_trip_required": null,
            "time_window": "morning",
            "travel_date": "2026-03-17",
            "trip_kind": "pickup_drop",
            "urgency_class": "soon"
          },
          "priority": "high",
          "reason": "transport request is actionable enough for dispatch review",
          "requires_admin_review": true,
          "source_workflow": "transport",
          "status": "needs_admin_review",
          "user_visible": false
        },
        {
          "action_type": "handoff_to_human_ops",
          "idempotency_key": "c52d96492ce245a9",
          "metadata": {
            "handoff_recommendation": "human_ops",
            "missing_fields": [],
            "normalized_slots": {
              "drop_area": "Baner",
              "handling_requirements": [],
              "pet_count": 1,
              "pickup_area": "Aundh",
              "raw_date_text": "tomorrow",
              "raw_time_text": "morning",
              "request_kind": "booking",
              "return_trip_required": null,
              "time_window": "morning",
              "travel_date": "2026-03-17",
              "trip_kind": "pickup_drop",
              "urgency_class": "soon"
            },
            "snapshot_version": 3,
            "urgency_class": "soon",
            "workflow_name": "transport",
            "workflow_stage": "ready_for_dispatch"
          },
          "payload": {
            "drop_area": "Baner",
            "handling_requirements": [],
            "pet_count": 1,
            "pickup_area": "Aundh",
            "raw_date_text": "tomorrow",
            "raw_time_text": "morning",
            "request_kind": "booking",
            "return_trip_required": null,
            "time_window": "morning",
            "travel_date": "2026-03-17",
            "trip_kind": "pickup_drop",
            "urgency_class": "soon"
          },
          "priority": "normal",
          "reason": "transport coordination requires human ops follow-up",
          "requires_admin_review": true,
          "source_workflow": "transport",
          "status": "needs_admin_review",
          "user_visible": false
        }
      ],
      "missing_fields": [],
      "next_question": null,
      "stage": "ready_for_dispatch",
      "status": "ready",
      "summary": "Aundh -> Baner | 2026-03-17 | morning | 1 cat",
      "workflow_name": "transport"
    },
    "stage": "decision",
    "summary": "Executed deterministic workflow handler",
    "timestamp": "2026-03-16T22:37:04.422041+00:00"
  },
  {
    "component": "mannat_outbound",
    "payload": {
      "conversation_id": "raahat:919900000206",
      "created_request_id": null,
      "delivery_key": "40b4b2131fef744a",
      "endpoint": "/raahat/erp/api/intake/transport",
      "error": "missing_required_fields:customer_name",
      "payload_sent": {
        "booking_date": "2026-03-17",
        "conversation_id": "raahat:919900000206",
        "customer_name": null,
        "customer_phone": "919900000206",
        "drop_location": "Baner",
        "pickup_location": "Aundh",
        "request_id": "raahat_transport_40b4b2131fef744a",
        "return_trip_required": false,
        "slot": "morning",
        "source_system": "raahat",
        "special_notes": "Cat count: 1 | Urgency: soon | Aundh -> Baner | 2026-03-17 | morning | 1 cat",
        "trip_category": "pickup_drop"
      },
      "request_id": "raahat_transport_40b4b2131fef744a",
      "response_body": null,
      "response_json": null,
      "skip_reason": "missing_required_fields",
      "skipped": true,
      "status_code": null,
      "success": false,
      "url": null,
      "workflow_name": "transport",
      "workflow_stage": "ready_for_dispatch"
    },
    "stage": "error",
    "summary": "Ready workflow could not be sent to Mannat ERP because required fields were missing",
    "timestamp": "2026-03-16T22:37:04.422145+00:00"
  },
  {
    "component": "memory_store",
    "payload": {
      "active_state_machine": null,
      "current_state": "READY_FOR_DISPATCH",
      "message_count_after": 6,
      "storage_key": "919900000206"
    },
    "stage": "mutation",
    "summary": "Persisted updated conversation memory",
    "timestamp": "2026-03-16T22:37:04.422624+00:00"
  }
]