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 8 entity types:

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

Tenancies and Tenancy Balances

Tenancies and Tenancy Balances are two views of the same PropertyMe entity (same IDs): Tenancies carries the lease agreement fields (active tenancies only), Tenancy Balances carries the financial fields (all tenancies, active and closed). Both are synced.

Stale Record Handling

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

  1. Most tables fetch each stale record's current state from PropertyMe by ID; records that return 404 (deleted) are logged and skipped
  2. Properties are refreshed in bulk from the archived properties endpoint
  3. Tenancies are flagged closed in bulk using the tenancy balances response as the close signal; Tenancy Balances rows are refreshed in bulk from the same response

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: