Skip to content

Automatic Member Mapping ​

When a connection refreshes, xpna reads accounts and dimension values from the source system. Each of these is a source member, for example an account in Xero, a tracking option, or a department in NetSuite. xpna maps every new source member to a member of the matching xpna hierarchy, so its data appears in reports straight away.

The same process applies to the Account hierarchy and to custom dimensions. Some connections differ in the details, as listed in Differences Between Connections.

To change a mapping after it has been made, use Member Mapping.

When Mapping Happens ​

  • Mapping runs during every connection refresh, including the first load.
  • Only source members without a mapping are processed. These are usually source members seen for the first time, such as a new account or a new tracking option.
  • A refresh does not change an existing mapping, including mappings changed in Member Mapping. The exceptions are listed in Differences Between Connections.
  • Dimension values are only mapped for source dimensions that were linked to an xpna dimension when the connection was set up. See Map Dimensions.

How a Member Is Chosen ​

Most connections follow this process:

How xpna maps a source member during a refresh If the source member is already mapped, the mapping is kept. Otherwise xpna maps it to a member with the same code, then to a member with the same name. If neither exists, xpna creates a new member when the connection creates members, or maps it to the Unknown member. Source member read during a refreshAlready mapped?Same code in the hierarchy?Same name in the hierarchy?Does the connection create members?Keep the existing mappingMap to the member with that codeMap to the member with that nameCreate a new member and map to itMap to the Unknown memberNoNoNoNoYesYesYesYes

For each unmapped source member, xpna works through these steps in order and stops at the first one that applies:

  1. Matching code. If the hierarchy has a member with the same code, xpna maps the source member to it.
  2. Matching name. If the hierarchy has a member with the same name, xpna maps the source member to it.
  3. New member. xpna creates a member with the source member's code and name, and maps the source member to it.
  4. Unknown member. If the connection does not create new members, xpna maps the source member to the Unknown member instead.

Matching follows these rules:

  • Matching looks at leaf members, not groups.
  • Upper and lower case are ignored, so sales matches Sales.

Some source systems don't give every member a code. xpna then uses the source system's own ID as the code, so a new member can have a long or numeric code instead of a readable one. Xero tracking options always work this way, as do Xero accounts that have no code.

Accounting system connections, such as Xero, QuickBooks Online and NetSuite, create new members. Other connections can map unmatched source members to the Unknown member instead.

Mapping Across Entities ​

Matching compares each source member with the members already in the hierarchy, whichever entity they came from. Source members from different entities that share a code therefore map to the same xpna member. This is how a second connection lines up with the first.

For example, two Xero organisations are connected to the same workspace, and Entity A is loaded first:

EntitySource memberResult
Entity A200 SalesNo member has the code 200, so xpna creates the member 200 Sales.
Entity B200 Sales - RetailMapped to 200 Sales by code. Member Mapping shows an exclamation icon on the chip because the names differ.
Entity B4100 Service IncomeNo member has the code 4100, but 210 Service Income has the same name, so it is mapped there.
Entity B4200 ConsultingNo code or name match, so xpna creates the member 4200 Consulting.
Entity BRegion tracking option NorthMapped by name to the existing North member in the Region dimension.

If a new connection uses the same codes for different things, review its mappings in Member Mapping after the first refresh.

Where New Members Are Placed ​

  • New members are created as leaf members.
  • New accounts are placed in a group that matches their account type in the source system, where the connection provides one. Sage Intacct connections also create a group for each new account category.
  • Other new accounts are placed directly under All accounts, outside the Profit and Loss and Balance sheet groups. They are not included in those totals until they are moved.
  • New custom dimension members are placed at the top of their hierarchy.
  • New members can be moved into the right group with Hierarchy Management.

The Unknown Member ​

Each dimension has an Unknown member with the code ???, such as Unknown account. Data for a source member mapped to Unknown is still loaded, and is reported against the Unknown member until the source member is mapped somewhere else.

  • Transactions with no value for a dimension, such as a Xero line with no tracking option, are also reported against the Unknown member.
  • To move the data, map the source member to the right member in Member Mapping.
  • The change takes effect after the next refresh of the connection.

Xero workspaces can be set up so that every new account, apart from archived accounts, is mapped to the Unknown account, even when a member with the same code or name exists. New accounts are then mapped in Member Mapping. To change this, contact xpna support via email to support@xpna.co.

Differences Between Connections ​

These connections match source members differently from the process above:

ConnectionAccountsDimension values
Business CentralMatched by code onlyMatched by name first, then by code
MYOBMatched by code onlyMatched by name only
NetSuiteMatched by code onlyMatched by name only
QuickBooks OnlineStandard processClasses and departments are matched by name only
Sage IntacctMatched by code onlyStandard process
SAP Business OneMatched by code onlyMatched by name only

Where accounts are matched by code only:

  • An account with a new code always creates a new member, even when a member with the same name exists.
  • An account can be mapped to a group that has the same code, so groups should not use the same codes as accounts.

Where dimension values are matched by name only:

  • A new value is compared with values already mapped from other connections, not with the members of the hierarchy.
  • If no mapped value has the same name, xpna creates a member with the value's code. If a member with that code already exists, no member is created, and the value shows as Unknown in Member Mapping until it is mapped.
  • A value renamed in the source system can be remapped automatically on a later refresh, even if it was mapped in Member Mapping.

Archived Xero Accounts and Tracking Options ​

  • An account that is already archived in Xero when xpna first reads it is mapped to Archived P&L Accounts or Archived Balance sheet accounts, depending on the type of account.
  • A tracking option that is already archived in Xero when xpna first reads it is mapped to the Unknown member.
  • An account or tracking option archived after it was first mapped keeps its mapping.