The Universal Database contains tables for each type of data you might backup or restore between systems. While most of the columns are unique to each table, certain columns exist on all tables. The purpose of this article is to describe what each column does and how it affects the migration.
This is an auto-generated row number and should always be ignored.
This is the primary key that the object had in its source system. It is a string column and will contain string representations of GUIDs, integers, and other string values, depending on the system that was backed-up. Whenever records are linked to each other, they always link via values in the Id column.
The Universal Database contains two copies of every value: one prefixed with Final_ and the other prefixed with Original_.
The Final_ columns represent the values that will be restored into the destination system.
If you need to clean up or transform data, these are the columns that you should update.
For example, if you run a query like:
- SELECT * FROM __M_Matters
- SELECT * FROM __M_Contacts WHERE Id = '10'
Record Type | Usage |
Notes | Notes can be attached to any kind of record. |
Documents | Usually a document is nested inside a Matter but sometimes they are inside of Contacts or Invoices. |
Postal Addresses | Usually a postal address belongs to a Contact but sometimes Matters or Invoices have postal addresses attached to them as well. |
Many tables in the Universal Database have columns with similar names. Throughout the database, we use these columns in the same way. By knowing their usage, you will be able to get up to speed quickly regarding what data lives where.
A Status column will contain one of the following values which indicates how users interact with the record.
Status | Usage |
Active | This is a real record that users of the application would expect to see and commonly interact with (like an "Open Matter"). |
Archived | This is a real record that users of the application will infrequently use and access.(like a "Closed Matter"). |
Prospective | This is a draft record that is not yet fully created (like a "Pending Matter" or a "Draft Invoice"). |
Deleted | This is a deleted record that should not be transferred to any destination system. |
Record Type | Usage |
Contacts | This indicates the kind of contact (Company or a Person). |
Custom Field Definitions | This indicates the kind of field (Text Box, Picklist, etc.) |
Communications | This indicates the kind of the communication (Text Message, Email, etc.) |
A ReferenceCode column contains a human-visible "abbreviation" that firms use to identify/reference a record. Here are examples of record types that often have a ReferenceCode.
Record Type | Usage |
Practice Areas | Practice areas often have a ReferenceCode. For example, the Divorce practice area might have a DIV ReferenceCode. |
Matters | Matters often have a ReferenceCode (AKA "Matter Number") such as ABC.001. |
Invoices | Invoices often have a ReferenceCode (AKA "Invoice Number") such as UIAE-045R. |
Users | Matters often have a ReferenceCode (AKA "Initials") such as JJS. |
A Subject column contains a human-visible short-name/title that quickly summarizes a record. Here are examples of record types that often have a Subject.
Record Type | Usage |
Practice Areas | Practice areas often have a Subject. For example, "Divorce". |
Matters | Matters often have a Subject (AKA "Matter Name") such as "John Doe v Jane Smith". |
Emails | Emails often have a Subject such as "RE: Your initial consult." |
Notes | Notes often have a Subject such as "Mediation Notes" |
A Description column contains a human-visible multi-line summary/description/body that provides additional details about the record. Here are examples of record types that often have a Description.
Record Type | Usage |
Matters | Matters often have a Description such as "John Doe was bit by Jane Smith's dog on 2024-01-01 in Springfield.". |
Emails | Emails often have a Description (AKA "Body"). |
Notes | Notes often have a Description (AKA "Note Body"). |
Time Entries | Time Entries often have a Description (AKA "Time Entry Narrative"). |
A DisplayOrder column captures the user-definable custom sort order of a record type. Here are examples of record types that often have a DisplayOrder.
Record Type | Usage |
Practice Area | This indicates what order the practice areas are listed in. |
Custom Picklist Items | This indicates the order of picklist items. |
Contact Postal Addresses | This indicates what address is the primary home address, second home address, etc. for the contact. |
Document Versions | This indicates the version number of the document. |
A Date column captures the user-specifiable Date for a record type. This is not necessarily the date a record was created but the date a user chose to associate to a record. Here are examples of record types that often have a Date.
Record Type | Usage |
Note | This indicates what order the practice areas are listed in. |
Custom Picklist Items | This indicates the order of picklist items. |
Contact Postal Addresses | This indicates what address is the primary home address, second home address, etc. for the contact. |
Document Versions | This indicates the version number of the document. |
These columns represent a date range. Here are examples of record types that often have these columns.
Record Type | Usage |
Calendar Entries | This indicates the start and end time for the calendar entry. |
Communications | This indicates the start and end time for the communication (like a phone call). |
When backing up data from a web-based system, the Raw_Content column contains a copy of the raw JSON metadata that Universal Migrator processed. If you ever have a question about why Universal Migrator interpreted data the way it did, you can reference the Raw_Content columns to understand why.