Skip to content

KAZOO Support Channels

This documentation is curated by 2600Hz as part of the KAZOO open source project. Join our community forums here for peer support. Only features in the docs.2600hz.com/supported space are included as part of our 2600Hz Support Services plan.

Recipient Events#

Recipient events can be used to track the state and actions that affect a recipient in Qubicle. The following are the currently emitted events.

Login#

The login event is emitted when a recipient logs into Qubicle via any means.

{
    "action":"event",
    "subscribed_key":"qubicle.recipient",
    "subscription_key":"qubicle.recipient.{ACCOUNT_ID}.*",
    "name":"create",
    "routing_key":"qubicle.recipient.{ACCOUNT_ID}.{RECIPIENT_ID}",
    "data":{
        "account_id": "{ACCOUNT_ID}",
        "app_name": "qubicle",
        "app_version": "{VERSION}",
        "event_category": "qubicle-recipient",
        "event_name": "create",
        "event_timestamp": {SERVER_TIMESTAMP},
        "msg_id": "{MSG_ID}",
        "pid": "{PROCESS_PID}",
        "recipient_id": "{USER_ID}",
        "state": "away",
        "username": "{USERNAME}",
        "stats": {
            "total_calls": {TOTAL_CALLS},
            "offered_calls": {OFFERED_CALLS},
            "missed_calls": {MISSED_CALLS},
            "avg_call_time": {AVG_CALL_TIME},
            "login_time": {LOGIN_TIME},
            "last_action_time": {LAST_ACTION_TIME},
            "last_handled_time": {LAST_HANDLED_TIME}
        }
    }
}

Logout#

The logout event is emitted when a recipient logs out of Qubicle via any means.

{
    "action":"event",
    "subscribed_key":"qubicle.recipient",
    "subscription_key":"qubicle.recipient.{ACCOUNT_ID}.*",
    "name":"delete",
    "routing_key":"qubicle.recipient.{ACCOUNT_ID}.{RECIPIENT_ID}",
    "data":{
        "account_id": "{ACCOUNT_ID}",
        "app_name": "qubicle",
        "app_version": "{VERSION}",
        "event_category": "qubicle-recipient",
        "event_name": "delete",
        "event_timestamp": {SERVER_TIMESTAMP},
        "msg_id": "{MSG_ID}",
        "reason": "{REASON}",
        "recipient_id": "{USER_ID}",
        "stats": {
            "total_calls": {TOTAL_CALLS},
            "offered_calls": {OFFERED_CALLS},
            "missed_calls": {MISSED_CALLS},
            "avg_call_time": {AVG_CALL_TIME},
            "login_time": {LOGIN_TIME},
            "last_action_time": {LAST_ACTION_TIME},
            "last_handled_time": {LAST_HANDLED_TIME}
        }
    }
}

Ready#

The ready event indicates that a recipient is now is the 'ready' state, and thus can receive sessions from a queue.

{
    "action":"event",
    "subscribed_key":"qubicle.recipient",
    "subscription_key":"qubicle.recipient.{ACCOUNT_ID}.*",
    "name":"ready",
    "routing_key":"qubicle.recipient.{ACCOUNT_ID}.{RECIPIENT_ID}",
    "data":{
        "account_id": "{ACCOUNT_ID}",
        "app_name": "qubicle",
        "app_version": "{VERSION}",
        "away_time": {TIME_RECIPIENT_WAS_AWAY_IN_SECONDS}
        "event_category": "qubicle-recipient",
        "event_name": "ready",
        "event_timestamp": {SERVER_TIMESTAMP},
        "msg_id": "{MSG_ID}",
        "recipient_id": "{USER_ID}",
        "state": "ready",
        "stats": {
            "total_calls": {TOTAL_CALLS},
            "offered_calls": {OFFERED_CALLS},
            "missed_calls": {MISSED_CALLS},
            "avg_call_time": {AVG_CALL_TIME},
            "login_time": {LOGIN_TIME},
            "last_action_time": {LAST_ACTION_TIME},
            "last_handled_time": {LAST_HANDLED_TIME}
        }
    }
}

Away#

The away event indicates that a recipient is in the 'away' state and thus will not be considered for session delivery from a queue.

{
    "action":"event",
    "subscribed_key":"qubicle.recipient",
    "subscription_key":"qubicle.recipient.{ACCOUNT_ID}.*",
    "name":"away",
    "routing_key":"qubicle.recipient.{ACCOUNT_ID}.{RECIPIENT_ID}",
    "data":{
        "account_id": "{ACCOUNT_ID}",
        "app_name": "qubicle",
        "app_version": "{VERSION}",
        "event_category": "qubicle-recipient",
        "event_name": "away",
        "event_timestamp": {SERVER_TIMESTAMP},
        "msg_id": "{MSG_ID}",
        "state": "away",
        "recipient_id": "{USER_ID}",
        "reason": "{REASON}",
        "stats": {
            "total_calls": {TOTAL_CALLS},
            "offered_calls": {OFFERED_CALLS},
            "missed_calls": {MISSED_CALLS},
            "avg_call_time": {AVG_CALL_TIME},
            "login_time": {LOGIN_TIME},
            "last_action_time": {LAST_ACTION_TIME},
            "last_handled_time": {LAST_HANDLED_TIME}
        }
    }
}

Pause#

The pause event indicates that a recipient has paused call delivery from a given queue.

{
    "action":"event",
    "subscribed_key":"qubicle.recipient",
    "subscription_key":"qubicle.recipient.{ACCOUNT_ID}.*",
    "name":"pause",
    "routing_key":"qubicle.recipient.{ACCOUNT_ID}.{RECIPIENT_ID}",
    "data":{
        "account_id": "{ACCOUNT_ID}",
        "app_name": "qubicle",
        "app_version": "{VERSION}",
        "event_category": "qubicle-recipient",
        "event_name": "pause",
        "event_timestamp": {SERVER_TIMESTAMP},
        "msg_id": "{MSG_ID}",
        "recipient_id": "{USER_ID}",
        "queue_id": "{QUEUE_ID}",
        "stats": {
            "total_calls": {TOTAL_CALLS},
            "offered_calls": {OFFERED_CALLS},
            "missed_calls": {MISSED_CALLS},
            "avg_call_time": {AVG_CALL_TIME},
            "login_time": {LOGIN_TIME},
            "last_action_time": {LAST_ACTION_TIME},
            "last_handled_time": {LAST_HANDLED_TIME}
        }
    }
}

Resume#

The resume event indicates that a recipient has resumed call delivery from a given queue.

{
    "action":"event",
    "subscribed_key":"qubicle.recipient",
    "subscription_key":"qubicle.recipient.{ACCOUNT_ID}.*",
    "name":"resume",
    "routing_key":"qubicle.recipient.{ACCOUNT_ID}.{RECIPIENT_ID}",
    "data":{
        "account_id": "{ACCOUNT_ID}",
        "app_name": "qubicle",
        "app_version": "{VERSION}",
        "event_category": "qubicle-recipient",
        "event_name": "resume",
        "event_timestamp": {SERVER_TIMESTAMP},
        "msg_id": "{MSG_ID}",
        "recipient_id": "{USER_ID}",
        "queue_id": "{QUEUE_ID}",
        "stats": {
            "total_calls": {TOTAL_CALLS},
            "offered_calls": {OFFERED_CALLS},
            "missed_calls": {MISSED_CALLS},
            "avg_call_time": {AVG_CALL_TIME},
            "login_time": {LOGIN_TIME},
            "last_action_time": {LAST_ACTION_TIME},
            "last_handled_time": {LAST_HANDLED_TIME}
        }
    }
}

Wrapup Start#

The wrapup start event indicates the start of wrap-up time. Which is a configurable (per-queue) amount of time after handling a session that the recipient will not be offered additional sessions.

{
    "action":"event",
    "subscribed_key":"qubicle.recipient",
    "subscription_key":"qubicle.recipient.{ACCOUNT_ID}.*",
    "name":"wrapup_start",
    "routing_key":"qubicle.recipient.{ACCOUNT_ID}.{RECIPIENT_ID}",
    "data":{
        "account_id": "{ACCOUNT_ID}",
        "app_name": "qubicle",
        "app_version": "{VERSION}",
        "event_category": "qubicle-recipient",
        "event_name": "wrapup-start",
        "event_timestamp": {SERVER_TIMESTAMP},
        "msg_id": "{MSG_ID}",
        "state": {STATE},
        "recipient_id": "{USER_ID}",
        "queue_id": "{QUEUE_ID}",
        "wrapup_time_seconds": {TIME_IN_SECONDS_OF_WRAPUP},
        "stats": {
            "total_calls": {TOTAL_CALLS},
            "offered_calls": {OFFERED_CALLS},
            "missed_calls": {MISSED_CALLS},
            "avg_call_time": {AVG_CALL_TIME},
            "login_time": {LOGIN_TIME},
            "last_action_time": {LAST_ACTION_TIME},
            "last_handled_time": {LAST_HANDLED_TIME}
        }
    }
}

Wrapup Complete#

The wrapup complete event indicates the end of wrap-up time.

{
    "action":"event",
    "subscribed_key":"qubicle.recipient",
    "subscription_key":"qubicle.recipient.{ACCOUNT_ID}.*",
    "name":"wrapup_complete",
    "routing_key":"qubicle.recipient.{ACCOUNT_ID}.{RECIPIENT_ID}",
    "data":{
        "account_id": "{ACCOUNT_ID}",
        "app_name": "qubicle",
        "app_version": "{VERSION}",
        "available": {BOOLEAN IF AVAILABLE},
        "availability_state": "{STRING_AVAIL_STATE}",
        "event_category": "qubicle-recipient",
        "event_name": "wrapup-complete",
        "event_timestamp": {SERVER_TIMESTAMP},
        "msg_id": "{MSG_ID}",
        "state": {STATE},
        "recipient_id": "{USER_ID}",
        "queue_id": "{QUEUE_ID}",
        "total_time": {TOTAL_WRAPUP_TIME},
        "stats": {
            "total_calls": {TOTAL_CALLS},
            "offered_calls": {OFFERED_CALLS},
            "missed_calls": {MISSED_CALLS},
            "avg_call_time": {AVG_CALL_TIME},
            "login_time": {LOGIN_TIME},
            "last_action_time": {LAST_ACTION_TIME},
            "last_handled_time": {LAST_HANDLED_TIME}
        }
    }
}

Offer#

The offer event indicates that a session is being offered to the recipient from a queue.

{
    "action":"event",
    "subscribed_key":"qubicle.recipient",
    "subscription_key":"qubicle.recipient.{ACCOUNT_ID}.*",
    "name":"offer",
    "routing_key":"qubicle.recipient.{ACCOUNT_ID}.{RECIPIENT_ID}",
    "data":{
        "account_id": "{ACCOUNT_ID}",
        "app_name": "qubicle",
        "app_version": "{VERSION}",
        "caller_id_name": "{CALLER_ID_NAME}",
        "caller_id_num": "{CALLER_ID_NUM}",
        "enter_pos": {QUEUE_ENTER_POSITION},
        "queue_enter_time": {QUEUE_ENTER_TIME},
        "est_wait": {QUEUE_ESTIMATED_WAIT},
        "force_away_on_reject": {FORCE_AWAY_FLAG},
        "event_category": "qubicle-recipient",
        "event_name": "offer",
        "event_timestamp": {SERVER_TIMESTAMP},
        "msg_id": "{MSG_ID}",
        "queue_id": "{QUEUE_ID}",
        "queue_wrapup": {QUEUE_WRAPUP_TIME},
        "recipient_id": "{USER_ID}",
        "ring_timeout": {RING_TIMEOUT},
        "session_id": "{SESSION_ID}",
        "session_zone": "{SESSION_ZONE}",
        "caller_id_name": {CALLER_ID_NAME},
        "caller_id_number": {CALLER_ID_NUMBER},
        "queue_enter_time": {QUEUE_ENTER_TIME},
        "state": "{STATE}",
        "offer_data": {PRIV_OFFER_DATA},
        "session": {SESSION_CALL_OBJECT},
        "stats": {
            "total_calls": {TOTAL_CALLS},
            "offered_calls": {OFFERED_CALLS},
            "missed_calls": {MISSED_CALLS},
            "avg_call_time": {AVG_CALL_TIME},
            "login_time": {LOGIN_TIME},
            "last_action_time": {LAST_ACTION_TIME},
            "last_handled_time": {LAST_HANDLED_TIME}
        }
    }
}

Reject#

The reject event indicates that a recipient has rejected a call.

{
    "action":"event",
    "subscribed_key":"qubicle.recipient",
    "subscription_key":"qubicle.recipient.{ACCOUNT_ID}.*",
    "name":"reject",
    "routing_key":"qubicle.recipient.{ACCOUNT_ID}.{RECIPIENT_ID}",
    "data":{
        "recipient_id":"{RECIPIENT_ID}",
        "account_id":"{ACCOUNT_ID}",
        "msg_id":"{MSG_ID}",
        "event_name":"reject",
        "event_category":"qubicle-recipient",
        "event_timestamp": {SERVER_TIMESTAMP},
        "app_version": "{VERSION}",
        "app_name":"qubicle",
        "queue_id": "{QUEUE_ID}",
        "stats": {
            "total_calls": {TOTAL_CALLS},
            "offered_calls": {OFFERED_CALLS},
            "missed_calls": {MISSED_CALLS},
            "avg_call_time": {AVG_CALL_TIME},
            "login_time": {LOGIN_TIME},
            "last_action_time": {LAST_ACTION_TIME},
            "last_handled_time": {LAST_HANDLED_TIME}
        }
    }
}

Rescind#

The rescind event indicates that an offer has been rescinded from the recipient. This could happen for example if a session hung-up while it was being offered.

{
    "action":"event",
    "subscribed_key":"qubicle.recipient",
    "subscription_key":"qubicle.recipient.{ACCOUNT_ID}.*",
    "name":"rescind",
    "routing_key":"qubicle.recipient.{ACCOUNT_ID}.{RECIPIENT_ID}",
    "data":{
        "state":"{STATE}",
        "session_id":"{SESSION_ID}",
        "recipient_id":"{RECIPIENT_ID}",
        "queue_id": "{QUEUE_ID}",
        "account_id":"{ACCOUNT_ID}",
        "msg_id":"{MSG_ID}",
        "event_name":"rescind",
        "event_category":"qubicle-recipient",
        "event_timestamp": {SERVER_TIMESTAMP},
        "app_version":"{VERSION}",
        "app_name":"qubicle",
        "stats": {
            "total_calls": {TOTAL_CALLS},
            "offered_calls": {OFFERED_CALLS},
            "missed_calls": {MISSED_CALLS},
            "avg_call_time": {AVG_CALL_TIME},
            "login_time": {LOGIN_TIME},
            "last_action_time": {LAST_ACTION_TIME},
            "last_handled_time": {LAST_HANDLED_TIME}
        }
    }
}

Delivered#

The delivered event indicates that a session was successfully delivered to a recipient and is now being handled.

{
    "action":"event",
    "subscribed_key":"qubicle.recipient",
    "subscription_key":"qubicle.recipient.{ACCOUNT_ID}.*",
    "name":"delivered",
    "routing_key":"qubicle.recipient.{ACCOUNT_ID}.{RECIPIENT_ID}",
    "data":{
        "account_id": "{ACCOUNT_ID}",
        "app_name": "qubicle",
        "app_version": "{VERSION}",
        "event_category": "qubicle-recipient",
        "event_name": "delivered",
        "event_timestamp": {SERVER_TIMESTAMP},
        "msg_id": "{MSG_ID}",
        "recipient_id": "{RECIPIENT_ID}",
        "queue_id": "{QUEUE_ID}",
        "queue_name": "{QUEUE_NAME}",
        "session_id": "{SESSION_ID}",
        "caller_id_name": {CALLER_ID_NAME},
        "caller_id_number": {CALLER_ID_NUMBER},
        "queue_enter_time": {QUEUE_ENTER_TIME},
        "stats": {
            "total_calls": {TOTAL_CALLS},
            "offered_calls": {OFFERED_CALLS},
            "missed_calls": {MISSED_CALLS},
            "avg_call_time": {AVG_CALL_TIME},
            "login_time": {LOGIN_TIME},
            "last_action_time": {LAST_ACTION_TIME},
            "last_handled_time": {LAST_HANDLED_TIME}
        }
    }
}

Hangup#

The hangup event indicates that a session has been hung-up after being handled by the recipient.

{
    "action":"event",
    "subscribed_key":"qubicle.recipient",
    "subscription_key":"qubicle.recipient.{ACCOUNT_ID}.*",
    "name":"hangup",
    "routing_key":"qubicle.recipient.{ACCOUNT_ID}.{RECIPIENT_ID}",
    "data":{
        "queue_id":"{QUEUE_ID}",
        "session_id":"{SESSION_ID}",
        "recipient_id":"{RECIPIENT_ID}",
        "account_id":"{ACCOUNT_ID}",
        "msg_id":"{MSG_ID}",
        "event_name":"hangup",
        "event_category":"qubicle-recipient",
        "app_version":"{VERSION}",
        "app_name":"qubicle",
        "talk_time": {TALK_TIME},
        "stats": {
            "total_calls": {TOTAL_CALLS},
            "offered_calls": {OFFERED_CALLS},
            "missed_calls": {MISSED_CALLS},
            "avg_call_time": {AVG_CALL_TIME},
            "login_time": {LOGIN_TIME},
            "last_action_time": {LAST_ACTION_TIME},
            "last_handled_time": {LAST_HANDLED_TIME}
        }
    }
}

External Call Start#

The external call start message indicates that a recipient has gone on a non-queue call.

{
    "action":"event",
    "subscribed_key":"qubicle.recipient",
    "subscription_key":"qubicle.recipient.{ACCOUNT_ID}.*",
    "name":"external_call_start",
    "routing_key":"qubicle.recipient.{ACCOUNT_ID}.{RECIPIENT_ID}",
    "data":{
        "recipient_id":"{RECIPIENT_ID}",
        "account_id":"{ACCOUNT_ID}",
        "msg_id":"{MSG_ID}",
        "event_name":"external_call_start",
        "event_category":"qubicle-recipient",
        "event_timestamp": {SERVER_TIMESTAMP},
        "app_version":"{VERSION}",
        "app_name":"qubicle",
        "external_call_id": "{CALL_ID}",
        "state": "{STATE}",
        "stats": {
            "total_calls": {TOTAL_CALLS},
            "offered_calls": {OFFERED_CALLS},
            "missed_calls": {MISSED_CALLS},
            "avg_call_time": {AVG_CALL_TIME},
            "login_time": {LOGIN_TIME},
            "last_action_time": {LAST_ACTION_TIME},
            "last_handled_time": {LAST_HANDLED_TIME}
        }
    }
}

External Call End#

The external call end event indicates that a recipient is no longer on a non-queue call.

{
    "action":"event",
    "subscribed_key":"qubicle.recipient",
    "subscription_key":"qubicle.recipient.{ACCOUNT_ID}.*",
    "name":"external_call_end",
    "routing_key":"qubicle.recipient.{ACCOUNT_ID}.{RECIPIENT_ID}",
    "data":{
        "recipient_id":"{RECIPIENT_ID}",
        "account_id":"{ACCOUNT_ID}",
        "msg_id":"{MSG_ID}",
        "event_name":"external_call_end",
        "event_category":"qubicle-recipient",
        "event_timestamp": {SERVER_TIMESTAMP},
        "app_version":"{VERSION}",
        "app_name":"qubicle",
        "state": "{STATE}",
        "stats": {
            "total_calls": {TOTAL_CALLS},
            "offered_calls": {OFFERED_CALLS},
            "missed_calls": {MISSED_CALLS},
            "avg_call_time": {AVG_CALL_TIME},
            "login_time": {LOGIN_TIME},
            "last_action_time": {LAST_ACTION_TIME},
            "last_handled_time": {LAST_HANDLED_TIME}
        }
    }
}

Sync#

The sync event is used to periodically propagate the state of a recipient so that clients can ensure that they have the most up-to-date state information. This event is used for internal purposes, and as such may change at any time.

{
    "action":"event",
    "subscribed_key":"qubicle.recipient",
    "subscription_key":"qubicle.recipient.{ACCOUNT_ID}.*",
    "name":"sync",
    "routing_key":"qubicle.recipient.{ACCOUNT_ID}.{RECIPIENT_ID}",
    "data":{
        "recipient_id":"{RECIPIENT_ID}",
        "account_id":"{ACCOUNT_ID}",
        "msg_id":"{MSG_ID}",
        "event_name":"sync",
        "event_category":"qubicle-recipient",
        "event_timestamp": {SERVER_TIMESTAMP},
        "availability_state": "{AVAILABILITY_STATE}",
        "available": {AVAILABLE_FLAG},
        "node": "{ORIGINATING_NODE}",
        "wrapup_time_seconds": {SECONDS_OF_WRAPUP},
        "app_version":"{VERSION}",
        "app_name":"qubicle",
        "stats": {
            "total_calls": {TOTAL_CALLS},
            "offered_calls": {OFFERED_CALLS},
            "missed_calls": {MISSED_CALLS},
            "avg_call_time": {AVG_CALL_TIME},
            "login_time": {LOGIN_TIME},
            "last_action_time": {LAST_ACTION_TIME},
            "last_handled_time": {LAST_HANDLED_TIME}
        }
    }
}

Wiretap Start#

The wiretap start event indicates that the recipient is wiretapping / monitoring another recipient, or is being monitored

{
    "action":"event",
    "subscribed_key":"qubicle.recipient",
    "subscription_key":"qubicle.recipient.{ACCOUNT_ID}.*",
    "name":"wiretap_start",
    "routing_key":"qubicle.recipient.{ACCOUNT_ID}.{RECIPIENT_ID}",
    "data":{
        "monitoring-recipient-id": "{MONITORING_RECIPIENT_ID}",
        "target": "{TARGET_RECIPIENT_ID}",
        "mode:" "{WIRETAP_MODE}",
        "wiretap-call-id": "{WIRETAP_CALL_ID}",
        "recipient_id":"{RECIPIENT_ID}",
        "account_id":"{ACCOUNT_ID}",
        "msg_id":"{MSG_ID}",
        "event_name":"wiretap_start",
        "event_category":"qubicle-recipient",
        "app_version":"{VERSION}",
        "app_name":"qubicle",
        "stats": {
            "total_calls": {TOTAL_CALLS},
            "offered_calls": {OFFERED_CALLS},
            "missed_calls": {MISSED_CALLS},
            "avg_call_time": {AVG_CALL_TIME},
            "login_time": {LOGIN_TIME},
            "last_action_time": {LAST_ACTION_TIME},
            "last_handled_time": {LAST_HANDLED_TIME}
        }
    }
}

Wiretap Stop#

The wiretap stop event indicates that the recipient is no longer monitoring or being monitored

{
    "action":"event",
    "subscribed_key":"qubicle.recipient",
    "subscription_key":"qubicle.recipient.{ACCOUNT_ID}.*",
    "name":"wiretap_stop",
    "routing_key":"qubicle.recipient.{ACCOUNT_ID}.{RECIPIENT_ID}",
    "data":{
        "wiretap-call-id": "{WIRETAP_CALL_ID}",
        "recipient_id":"{RECIPIENT_ID}",
        "account_id":"{ACCOUNT_ID}",
        "msg_id":"{MSG_ID}",
        "event_name":"wiretap_stop",
        "event_timestamp": {SERVER_TIMESTAMP},
        "event_category":"qubicle-recipient",
        "app_version":"{VERSION}",
        "app_name":"qubicle",
        "stats": {
            "total_calls": {TOTAL_CALLS},
            "offered_calls": {OFFERED_CALLS},
            "missed_calls": {MISSED_CALLS},
            "avg_call_time": {AVG_CALL_TIME},
            "login_time": {LOGIN_TIME},
            "last_action_time": {LAST_ACTION_TIME},
            "last_handled_time": {LAST_HANDLED_TIME}
        }
    }
}

Wiretap Failed#

The wiretap failed event indicates that an attempted monitor action has failed for some reason

{
    "action":"event",
    "subscribed_key":"qubicle.recipient",
    "subscription_key":"qubicle.recipient.{ACCOUNT_ID}.*",
    "name":"wiretap_failed",
    "routing_key":"qubicle.recipient.{ACCOUNT_ID}.{RECIPIENT_ID}",
    "data":{
        "recipient_id":"{RECIPIENT_ID}",
        "account_id":"{ACCOUNT_ID}",
        "msg_id":"{MSG_ID}",
        "event_name":"wiretap_failed",
        "event_category":"qubicle-recipient",
        "event_timestamp": {SERVER_TIMESTAMP},
        "app_version":"{VERSION}",
        "app_name":"qubicle",
        "stats": {
            "total_calls": {TOTAL_CALLS},
            "offered_calls": {OFFERED_CALLS},
            "missed_calls": {MISSED_CALLS},
            "avg_call_time": {AVG_CALL_TIME},
            "login_time": {LOGIN_TIME},
            "last_action_time": {LAST_ACTION_TIME},
            "last_handled_time": {LAST_HANDLED_TIME}
        }
    }
}