### Understanding online status in Chatwoot

`availability` : the attribute stored in the database determining the availability preference of a user \[ `online` , `offline`, `busy` \]

`auto_offline` : the attribute stored in the database determining whether to mark the user offline when they are not actively connected to Chatwoot. By default, this value is `true`. When it's marked as false, the availability is returned without checking whether the user is actively connected.

Whether the user is connected to Chatwoot is determined by the `persence_update`  events sent from the client to the backend via WebSockets.

`availability_status` : virtual attribute, which returns the availability based on a combination of `availability` and `auto_offline`. We use this on our front end to indicate the online status of a user.