agentOS Sync Integration
agentOS Sync Integration
BlockManOS v1.0.99 introduces a native integration with agentOS (LetMC property CRM), enabling bi-directional synchronisation of properties, contacts, and ownership data between the two platforms. This eliminates manual double-keying when an agency uses agentOS as its primary CRM alongside BlockManOS for block management.
Overview
| Entity | Direction (current) | Notes |
|---|---|---|
| Properties / Units | Pull (agentOS → BlockManOS) | Creates or updates units |
| Contacts / Owners | Pull (agentOS → BlockManOS) | Creates or updates owner records |
| Tenancies / Ownerships | Pull (agentOS → BlockManOS) | Links ownerships to units |
| Push sync | Foundation in place | Full push support in a future release |
Sync runs are processed asynchronously via an Inngest background function, keeping the dashboard responsive even during large data sets.
Prerequisites
- An active agentOS (LetMC) account with API access enabled
- Your agentOS API key (request from agentOS support or your agentOS account portal)
- Your company short name — the identifier used in agentOS API URLs (e.g.
mycompany) - Admin role in BlockManOS
Database migration required. Before using this feature, run the Drizzle migration to create the three agentOS schema tables.
Setting Up the Connection
- In the BlockManOS sidebar, open Integrations → agentOS Sync.
- Click Set Up Connection.
- Complete the configuration form:
| Field | Required | Description |
|---|---|---|
| API Key | Yes | Your agentOS API key. Stored encrypted per-organisation; not exposed to the browser after saving. |
| Company Short Name | Yes | Your agentOS company identifier (used in API URLs). |
| Branch ID | No | Only needed for multi-branch agentOS setups. |
| API Base URL | No | Defaults to https://live-api.letmc.com. Change only if directed by agentOS support. |
- Choose a Sync Direction:
- Bidirectional (↔) — Data flows both ways (pull currently active; push foundation ready)
- Pull (← agentOS) — Only import data from agentOS into BlockManOS
- Push (→ agentOS) — Only export data from BlockManOS to agentOS
- Select which entity types to synchronise: Properties/Units, Contacts/Owners, Tenancies/Ownerships.
- Optionally enable Auto-Sync and set a sync interval (in minutes).
- Click Save Configuration.
Testing the Connection
After saving, the Connection Status panel appears. Click Test Connection to verify that BlockManOS can reach the agentOS API with your credentials. A green status indicator confirms a successful connection.
Running a Sync
Manual Sync
From the agentOS Sync dashboard page, use the sync controls to trigger an immediate run:
- Full Sync — Processes all configured entity types in both directions
- Pull — Imports from agentOS only
- Push — Exports to agentOS only (push foundation in place; full push support coming in a future release)
Sync jobs run asynchronously. The page does not need to stay open — the job continues in the background.
Auto-Sync
Enable Auto-Sync in the configuration form and set an interval. BlockManOS will automatically dispatch a sync event on that schedule.
How the Sync Works
Admin triggers sync (manual or scheduled)
│
▼
Inngest event dispatched: agentos/sync.requested
│
▼
Background function picks up the event
│
├─ Fetches contacts / landlords from agentOS API
│ └─ Creates or updates Owner records in BlockManOS
│
├─ Fetches properties from agentOS API
│ └─ Creates or updates Unit records in BlockManOS
│
└─ Writes/updates entity mappings (agentOS ID ↔ BlockManOS ID)
│
▼
Sync log entry written with statistics and any errors
Entity mappings are stored in the agentos_sync_mappings table, linking each agentOS entity ID to the corresponding BlockManOS record. These mappings allow future incremental syncs to update existing records rather than creating duplicates.
Viewing Sync History
The Sync History table on the agentOS Sync page shows the last 10 sync runs, including:
- Run status:
pending,running,completed,completed_with_errors,failed - Start and end timestamps
- Record counts (created, updated, skipped, errors) per entity type
- Error details when a run encounters problems
Entity Mapping Summary
The Mappings panel shows a summary of currently mapped entities — how many properties, contacts, and tenancies are linked between the two systems.
Disconnecting agentOS
To remove the integration:
- Open Integrations → agentOS Sync.
- Click Delete Configuration (or Disconnect).
- Confirm the action.
This removes the API credentials and sync preferences. Existing entity mappings and sync logs are also cleaned up. Local BlockManOS records (owners, units) that were created via sync are not deleted.
Data & Security Notes
- API keys are stored per-organisation in the BlockManOS database, not as shared environment variables. Each customer's agentOS credentials are isolated to their own organisation.
- The API key is never returned to the browser after initial save. The
getConfigendpoint omits the key field. - Authentication to the agentOS v3 API uses an API key passed as a query parameter, as required by the agentOS API scheme.
- Sync runs are subject to concurrency and throttle controls to avoid overloading the agentOS API.
Troubleshooting
| Symptom | Likely cause | Resolution |
|---|---|---|
| "Test Connection" fails | Incorrect API key or company short name | Re-enter credentials and save before testing |
| Sync completes with errors | Some agentOS records could not be mapped | Check the sync log detail view for per-record error messages |
| Sync never starts | Inngest function not reachable | Confirm the Inngest route is accessible and the middleware passthrough rules are correct |
| Duplicate records appearing | Entity mappings missing | Run a Full Sync to rebuild the mapping table |
Related
- Changelog — v1.0.99
- agentOS API documentation:
https://live-api.letmc.com