Skip to main content

Xero Practice Manager (XPM)

Custom XBert for XPM

Aaron Wittman avatar
Written by Aaron Wittman
Updated this week

Set up alerts for client management, job delivery, invoicing, and task adherence.

A Xero Practice Manager (XPM) object represents the core entities of a professional services client relationshipβ€”including clients, their jobs, tasks, invoices, and time tracking. Together, these provide a full view of client engagements from onboarding through to billing and completion.


Key Entities & Properties

πŸ§‘β€πŸ’Ό Client (XPMClient)

Represents a client record in XPM.

  • Identifiers:

    • clientId, clientConnectTenantId, clientTenantId

  • Client Details:

    • clientName, clientAddress, clientCity, clientRegion, clientCountry, clientPostcode

    • clientPostalAddress, clientPostalCity, clientPostalRegion, clientPostalCountry, clientPostalPostcode

  • Contacts & Communication:

    • clientPhone, clientFax, clientWebsite

    • clientReferralSource

  • Status:

    • clientIsProspect, clientIsArchived, clientIsDeleted

  • Account Managers:

    • clientAccountManagerName

    • clientJobManagerName

  • Billing Client:

    • clientBillingClientName

  • Type:

    • clientTypeName, clientTypeCostMarkup, clientTypePaymentDay, clientTypePaymentTerm

  • Metadata:

    • clientCreationTime, clientSourceLink, clientWebUrl, clientExportCode

Includes collections:

  • Jobs (XPMJob)

  • Invoices (XPMInvoice)


πŸ“„ Invoice (XPMInvoice)

Represents billing and revenue records.

  • invoiceIdPk, invoiceId

  • Type & Status: invoiceType, invoiceStatus

  • Dates: invoiceDate, invoiceDueDate, invoiceCreationTime

  • Amounts:

    • invoiceAmount, invoiceAmountTax, invoiceAmountIncludingTax

    • invoiceAmountPaid, invoiceAmountOutstanding

  • Client/Contact:

    • invoiceClientName, invoiceContactName


πŸ“‹ Job (XPMJob)

Represents a client engagement/project.

  • Identifiers: jobId, jobIdPk, jobTenantId

  • Details: jobName, jobDescription, jobState, jobClientOrderNumber

  • Dates: jobStartDate, jobDueDate, jobCompletedDate, jobCreationTime

  • Client/Contacts: jobClientName, jobContactName

  • Management: jobManagerName, jobPartnerName

  • Links: jobWebUrl

Child collections:

  • Tasks (XPMJobTask)

  • Notes (XPMJobNote)


πŸ“ Job Note (XPMJobNote)

Captures additional information attached to a job.

  • noteIdPk

  • noteJobId

  • noteTitle, noteText, noteFolder

  • noteDate, noteCreationTime, noteCreatedBy


βœ… Job Task (XPMJobTask)

Represents specific work items under a job.

  • taskIdPk, taskId

  • Details: taskName, taskDescription, taskEstimatedMinutes, taskActualMinutes, taskCompleted, taskBillable, taskFolder

  • Dates: taskStartDate, taskDueDate, taskCreationTime

Child collection:

  • Task Times (XPMJobTaskTime)


⏱️ Job Task Time (XPMJobTaskTime)

Represents logged time entries against tasks.

  • timeIdPk

  • Job/Task Link: timeJobId, timeJobName, timeJobTaskName

  • Staff: timeStaffName

  • Details: timeMinutes, timeNote, timeBillable

  • Dates: timeDate, timeStart, timeEnd, timeCreationTime

  • Invoice Links: timeInvoiceTaskName

  • Weblink: timeWebUrl


πŸ”§ Task (XPMTask)

An alternative lightweight task DTO.

  • taskId, taskName, taskDescription

  • estimatedMinutes, actualMinutes, completed, billable, folder

  • startDate, dueDate, taskCreationTime

Did this answer your question?