Skip to main content

Xero Practice Manager (XPM)

Custom XBert for XPM

Aaron Wittman avatar
Written by Aaron Wittman
Updated over 3 weeks ago

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?