Skip to content

Sync Modules

PyPropertyMe includes optional sync modules for exporting PropertyMe data to external systems.

Available Modules

Module Use Case Installation
Airtable Sync Custom views, reporting, team collaboration uv add pypropertyme[airtable]
MongoDB Sync Analytics, AI/ML pipelines, system integrations uv add pypropertyme[mongodb]

Architecture

Both sync modules follow the same patterns:

  • Separate CLI entry points - pypropertyme-airtable and pypropertyme-mongodb
  • Upsert logic - Records are created if new, updated if existing
  • Stale record refresh - Ensures external systems stay in sync with PropertyMe
  • Optional dependencies - Only install what you need

Common Features

Tables/Collections

Both modules sync these 7 entity types:

Entity Airtable Table MongoDB Collection
Contacts Contacts contacts
Members Members members
Properties Properties properties
Tenancy Balances Tenancy Balances tenancy_balances
Jobs Jobs jobs
Inspections Inspections inspections
Tasks Tasks tasks

Tenancy Balances

Tenancy Balances is a superset of tenancy data, containing all tenancies (active and closed) plus financial balance information. A separate Tenancies table/collection is not needed.

Stale Record Handling

After syncing, records in the external system that weren't included in the PropertyMe sync response are refreshed individually:

  1. For each stale record, fetch its current state from PropertyMe
  2. Records that return 404 (deleted) are logged and skipped
  3. Records that have become archived/closed are updated

This ensures PropertyMe remains the single source of truth.

Choosing a Module

Use Airtable When

  • You need custom views and filters for your team
  • Non-technical users need to access and visualize data
  • You want to create automations with Airtable integrations
  • You need linked records between entities
  • Data volume is moderate (Airtable has record limits)

Use MongoDB When

  • You're building analytics or reporting dashboards
  • You need the data for AI/ML pipelines
  • You're integrating with other systems via APIs
  • You need full-text search capabilities
  • Data volume is large or growing

Getting Started

Choose your sync module: