Property Management Systems will occasionally delete a record as a part of normal business operation. Because these records are not annotated as deleted, detecting deleted records is a difficult challenge for any downstream system. Propexo’s philosophy for managing this complex problem is documented here.
Unlike some enterprise software which will merely mark a record as deleted, some Property Management Systems will simply delete the entire record, leaving no trace of the record in the API. For example, a user may delete a resident, lease, unit, or application which was accidentally created or no longer needed. Note that a deleted record is not the same as a single value being modified or removed. Generally, records which are edited to remove some data (such as when a resident’s middle name is removed) are handled as a part of our built-in Data History and Webhooks functionality.
Detecting a deleted record is problematic due to the record suddenly disappearing from the Property Management System’s API responses. The absence of evidence is not evidence of absence. In other words, Propexo cannot always confidently know that a missing record was in fact deleted. When a given record is no longer seen by our system, the most frequent cause is due to date range filters—not deletion. There are three kinds of date range filters that are applied by Property Management System interfaces.
Common to all of these filters is the inconsistent implementation of filtering. The behavior of date range filters varies not only between Property Management Systems but also between individual models. Likewise, even when a date range filter is documented for an API, the time zone and daylight savings time logic is inconsistently applied to endpoints, requiring careful investigation and testing by Propexo.
Propexo acts as a caching layer for your data. Since PMS APIs can be unreliable, we hydrate our cache with data that we receive from the PMS and only delete data by request. This means that we will never delete data that we have previously seen. This is a key feature of Propexo that allows us to provide a reliable, consistent, and accurate data set.
Although we do not delete data, we do record each time we see data during every sync against a PMS. We expose this as a timestamp in a field called last_seen on each of our data models. We are careful not to make assumptions about data so that you are fully empowered to make business decisions about what a missing record might mean for your use case. Many of our customers, however, choose to leverage the last_seen field to make decisions about whether or not to delete data in their systems. For example, if a record has not been seen in more than 30 days, perhaps you want to treat it as having been deleted. The record and history will continue to exist in Propexo, but you can choose to ignore it.