Xero Practice Manager Sync
StructureGram integrates with Xero Practice Manager (XPM) to import client entities and their relationships directly into your workspace. This saves time by pulling structured data from your practice management system instead of entering it manually.
How It Works
The XPM sync operates in two stages:
Stage 1: Discovery
Discovery fetches the list of client groups available in your XPM account.
- Connect your Xero account via the Xero Integration settings
- Discover available XPM groups by running a discovery sync
- Link an XPM group to a StructureGram group — this tells the system which XPM group maps to which StructureGram group
Stage 2: Group Sync
Once a group is linked, you can sync its members into StructureGram.
- Pull — the system fetches all clients and relationships from the linked XPM group
- Map — XPM client types are mapped to StructureGram entity types (individuals, companies, trusts, partnerships, SMSFs)
- Duplicate Safeguards — potential duplicate entity imports are skipped and flagged for review
- Policy Review — relationships that need manual decisions (for example direction/type/compliance or holding class requirements) are surfaced in the pull review list
- Retry with Decisions — apply your review decisions and retry so unresolved items can be imported, deleted in XPM, or deferred
Entity Type Mapping
XPM clients are automatically mapped to the appropriate StructureGram entity type:
| XPM Client Type | StructureGram Entity |
|---|---|
| Person / Individual | Individual |
| Company / Business | Company |
| Trust | Trust |
| Partnership | Partnership |
| Superannuation Fund | SMSF |
Duplicate Detection
When syncing a group, StructureGram checks for existing entities that might be duplicates of incoming XPM clients. This prevents creating redundant records.
How Matching Works
Duplicate detection matches entities of the same type using exact name-based comparison:
| Entity Type | Match Criteria | Confidence |
|---|---|---|
| Individual | Same first + last name + date of birth | High |
| Individual | Same first + last name (no DOB match) | Medium |
| Company | Same legal name | Medium |
| Trust | Same trust name | Medium |
| Partnership | Same name | Medium |
| SMSF | Same fund name | Medium |
What Happens When Duplicates Are Found
When a potential duplicate is detected during pull, the XPM client is not imported automatically.
Instead, it is flagged in sync diagnostics and should be resolved in Reconciliation, where you can decide whether to:
- Link to Existing (map to an existing SG entity),
- Import into SG (create a new SG entity),
- or Ignore this round.
Relationship Handling
The sync imports relationships between entities in the same group. Common relationship types include:
- Director, Secretary, Shareholder (for companies)
- Trustee, Beneficiary, Appointor, Settlor (for trusts)
- Partner (for partnerships)
- Trustee, Member (for SMSFs)
- Spouse, Parent/Child (for individuals)
Relationship Duplicate Detection
Relationships are checked automatically to avoid creating duplicates:
- If a relationship with the same type and endpoints already exists, the system updates it rather than creating a second one
- Symmetric relationships (e.g. spouse) are detected from either direction — if "A spouse of B" already exists, "B spouse of A" is automatically skipped
- Multi-holding types (shareholder, unitholder) allow multiple relationships between the same entities to support different share classes
Unlike entity duplicates, relationship duplicates are handled automatically — you are not prompted to review them.
Sync Modes
You can control what gets synced using sync modes:
| Mode | What It Syncs |
|---|---|
| All (default) | Entities and relationships |
| Entities only | Just the entities — no relationships |
| Relationships only | Just the relationships (entities must already be imported) |
Cross-Group Dependencies
Sometimes an XPM relationship references an entity that belongs to a different group (e.g. a director who appears in multiple client groups).
Current sync behavior uses auto-import for cross-group dependencies by default so relationship endpoints can be resolved consistently across pull/push/reconciliation flows.
Data Normalisation
During import, StructureGram normalises identifier fields to ensure data quality:
- ABN — stripped to 11 digits, non-digit characters removed
- ACN — stripped to 9 digits
- TFN — stripped to 8 or 9 digits
- DIN — stripped to 15 digits
If an identifier doesn't meet the expected format after normalisation, it is discarded rather than stored incorrectly.
StructureGram also performs a data integrity and validation check to see if ABNs, ACNs, TFNs and DINs are valid numbers (using the government's check-digit algorithm). StructureGram will not prevent the import of an invalid identifier. However, it will flag that the identifier has not passed the validation check.
Tips
- Link groups before syncing — discovery must run first so the system knows which XPM groups are available
- Review duplicate candidates carefully — name-based matching can produce false positives for common names
- Use reconciliation for duplicate resolution — pull intentionally avoids creating duplicates when a likely match exists
- Re-run pull after review — relationship review decisions are applied on retry
- Use entity-only mode when troubleshooting — sync entities first, then sync relationships in a separate pass
- Synced entities are tagged with their XPM source for traceability
Troubleshooting
"No linked StructureGram group found"
You need to link an XPM group to a StructureGram group before syncing. Go to the Xero Integration settings, run discovery, and link the desired group.
Entities appear but relationships are missing
This can happen if:
- The relationship requires manual review (for example direction correction, endpoint validation, or holding class selection)
- The XPM relationship type isn't supported yet
- An SMSF trustee compliance check prevented the relationship from being created
Check pull review cards and sync warnings, apply decisions, then retry pull.
Duplicate entities are still being created
Pull sync now suppresses likely duplicate imports by default. If you still see duplicates, they were likely introduced outside the pull path (for example via previous manual imports or push flows).
Use Reconciliation to link, import, or remove duplicates with explicit per-item decisions.
XPM API limitations
We have done our best to fully integrate with the XPM API so that your data can flow to and from XPM seemlessly. However, the XPM API is not complete, in that not all data that is exposed in XPM is available to be downloaded via their API. For example, it is not currently possible to sync DINs and TFNs in most instances. The XPM API exposes dates of birth, but does not currently expose dates of death. There are also other gaps. Accordingly, some data you will need to either enter manually in both systems, or just keep in one system of record.
Related Topics
- Connecting to Xero Practice Manager — set up the XPM integration
- Push to Xero Practice Manager — send StructureGram data to XPM
- XPM Reconciliation — compare and resolve differences between SG and XPM
- Data Importing — import entities from ASIC extracts
- Understanding Groups — organize entities into groups
- Relationship Types Reference — supported relationship types