AgentOS Integration
AgentOS Integration
The AgentOS People Portal integration imports property transactions, tenancy records, and property details directly into the platform and maps them to HMRC-compliant income and expense categories for quarterly MTD ITSA submissions.
Transaction Classification
When transactions are imported from AgentOS, each one is assigned a transactionType using the classifyTransactionType() function. This type determines how the transaction is counted in quarterly tax summaries.
How Classification Works
AgentOS returns the NominalCode field as numeric GL codes (e.g. "4000", "7000"). Because numeric codes do not contain keywords, the classifier uses a two-pass approach:
- Primary pass — attempt to match the
NominalCodevalue against known keywords (rent,fee,maintenance, etc.). - Fallback pass — if no keyword match is found, classify using the human-readable
Descriptionfield (e.g."Rent Payment","Management Fee").
This ensures transactions are always given the most accurate possible type, even when AgentOS provides only numeric codes in the primary field.
Example:
| NominalCode | Description | Classified as |
|---|---|---|
"rent" | — | rent |
"4000" | "Rent Payment" | rent |
"4000" | "Management Fee" | fee |
undefined | "Maintenance Work" | maintenance |
Classification Priority in Promotion
When promoted transactions are categorised for HMRC, the priority order is:
transactionTypemembership — if the type is inEXPENSE_TYPES(fees, maintenance, deposits, etc.), it is classified as an expense regardless of amount sign.- Amount sign — positive amounts are treated as income, negative as expenses, for any type not explicitly in
EXPENSE_TYPES.
Security deposits (
"deposit"type) are classified as expenses/liabilities, not taxable income, in line with HMRC guidance.
Sync Behaviour
Bulk Import
A full historical import can be triggered manually. All transactions are upserted — if a transaction already exists, its transactionType, description, amount, currency, and related fields are updated from the AgentOS source.
Incremental Sync
A daily incremental sync runs at 03:00 UTC and can also be triggered manually per organisation. It fetches transactions from the last 48 hours (or since the last successful sync, with a 1-hour buffer).
On each sync, transactionType is re-evaluated using the updated classification logic. Transactions previously stored as "other" due to numeric NominalCode codes will be automatically re-classified on the next sync run.
Impact on User Categorisation
Sync operations update transactionType (the system classification) but never overwrite hmrcCategory (the user-assigned HMRC category). Manual categorisation decisions are always preserved.
Quarterly Summaries
Quarterly tax summary totals are derived from promoted transactions. With correct transactionType values in place:
- Rent and other income flows correctly into the income total.
- Fees, maintenance, and deposits flow correctly into the expenses total.
- The income/expense split displayed in the quarterly summary reflects the actual AgentOS data.
If income was previously showing as zero or lower than expected, running a manual incremental sync after updating to v1.0.476 will re-classify existing transactions and correct the summary totals.
Setup Requirements
- An active AgentOS People Portal account with API access enabled.
- At least one landlord link configured in the platform with sync enabled.
- The platform connected to AgentOS via OAuth (Settings → Integrations → AgentOS).