I needed the Primary Contact to appear in a Contact & Client custom report in Xero Practice Manager, but couldn't find a way to add it through the normal report builder.
I did some digging and found that the field can still be added by intercepting the request used to add a normal report field and changing the field ID to the Primary Contact field.
Here's how I did it:
This involves using your browser's Developer Tools to modify the request Xero Practice Manager sends when adding a field.
Note: This is an unofficial workaround and relies on Xero Practice Manager's current internal behaviour, so it may stop working if Xero changes the report designer.
Steps
Create a new custom report
Create a new Contact & Client custom report.
This method only works with the Contact & Client report.
Open Developer Tools
Right-click somewhere on the Xero Practice Manager webpage and select "Inspect".
This will open the Developer Tools section of your browser.
Open the Network tab
In Developer Tools, select the "Network" tab.
Leave this open while working in the report builder.
Add any field to the report
In the report builder, find:
"Select the fields to display on the report"
Add any normal field to the report.
You should see a new request appear in the Network tab.
Sharing this in case it helps someone else.
I needed the Primary Contact to appear in a Contact & Client custom report in Xero Practice Manager, but couldn't find a way to add it through the normal report builder.
I did some digging and found that the field can still be added by intercepting the request used to add a normal report field and changing the field ID to the Primary Contact field.
Here's how I did it:
This involves using your browser's Developer Tools to modify the request Xero Practice Manager sends when adding a field.
Note: This is an unofficial workaround and relies on Xero Practice Manager's current internal behaviour, so it may stop working if Xero changes the report designer.
Steps
Create a new custom report
Create a new Contact & Client custom report.
This method only works with the Contact & Client report.
Open Developer Tools
Right-click somewhere on the Xero Practice Manager webpage and select "Inspect".
This will open the Developer Tools section of your browser.
Open the Network tab
In Developer Tools, select the "Network" tab.
Leave this open while working in the report builder.
Add any field to the report
In the report builder, find:
"Select the fields to display on the report"
Add any normal field to the report.
You should see a new request appear in the Network tab.
Look for a request to the following endpoint:
https://app.practicemanager.xero.com/ajaxpro/WorkFlowMax.Web.UI.ReportDesigner,WorkFlowMax.Web.UI.ashx
Edit and resend the request
Right-click the request and select "Edit and Resend".
This should open an editable copy of the request in the browser's network console.
Find the request body
Find the "Body" section of the request.
You should see something similar to:
{"design_id":70523488,"field_id":363,"custom_id":0}
Your design_id and field_id may be different.
Do not change the design_id.
Change the field ID
Replace the number associated with "field_id" with:
1268
For example, change:
{"design_id":70523488,"field_id":363,"custom_id":0}
to:
{"design_id":70523488,"field_id":1268,"custom_id":0}
Field ID 1268 is the Primary Contact field.
Leave the design_id and other values unchanged.
Send the request
Click "Send" to resend the modified request.
Preview the report
Return to the Xero Practice Manager report builder and preview the report.
You should now see the Primary Contact field included in the report.
Hopefully this helps anyone else who needs the Primary Contact field in a custom report but can't select it through the standard report builder.