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)
- Detect Duplicates — potential matches against existing entities are identified
- Review — if duplicates are found, you decide how to handle each one
- Import — entities and relationships are created or updated in your workspace
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, the XPM client is not imported automatically. Instead, you are presented with the match and given three choices:
- Join — link the XPM client to the existing StructureGram entity. No new entity is created; the existing record is used for any relationships.
- Import — create a new entity anyway, even though a similar one exists. Use this when the match is a false positive (e.g. two different people with the same name).
- Skip — leave the XPM client unresolved for now. It will not be imported until you make a decision.
After making your decisions, you must re-run the sync — your choices are applied and the remaining entities are imported.
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). The sync handles this via the dependency policy:
- Skip (default) — the relationship endpoint is noted but not imported. You can import the missing entity separately.
- Auto-import — the system automatically imports the cross-group entity and creates the relationship.
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 duplicates carefully — the system matches by name only, so people with common names may produce false positives
- Join when possible — linking to existing entities maintains data integrity and avoids cluttering your workspace with duplicates
- Re-sync after resolving duplicates — your join/skip/import decisions are remembered and applied on the next sync
- 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 endpoints belong to different groups and the dependency policy is set to "Skip"
- The XPM relationship type isn't supported yet
- An SMSF trustee compliance check prevented the relationship from being created
Try re-syncing with Auto-import dependency policy enabled, or check the sync summary warnings for details.
Duplicate entities are still being created
Make sure you review and resolve all flagged duplicates before re-syncing. If you choose "Import" for a match, a new entity will be created regardless of the existing one.
You can identify and clean up duplicates that may have been imported using the separate Reconciliation flow.
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