ABContact data model

The ABContact entity is the ContactManager data model entity used in both client and vendor contact management. ABContact has an entity hierarchy and a set of relationships to other entities.

ABContact entity hierarchy

The ABContact entity has three primary subtypes for various types of contacts, ABPerson, ABCompany, and ABPlace. These subtypes have additional subtypes, like ABAdjudicator, ABCompanyVendor, ABLegalVenue, and so on.

The following figure shows the ABContact entity hierarchy. This entity hierarchy has a parallel in the Contact entity hierarchy in the core applications. See ContactManager and core application contact entity hierarchies.



Note: This figure omits the subtypes ABUserContact, ABPolicyCompany, and ABPolicyPerson. Although they exist in the base configuration, these entities are not intended to be used in ContactManager. If you need to store address and phone information for a ContactManager user, use the UserContact entity as described in Contact data model.

ABContact entity relationships

The ABContact entity has fields for name, phone number, email address, and so forth. For many vendor contacts it is necessary to maintain a tax ID for tax reporting. The ABContact entity tracks this data as well. Some of this data is stored in other entities.

In the base configuration, a contact must have at least one tag. A contact can have multiple addresses, related contacts, tags, and services. References to those entities are handled with arrays of join entities, such as ContactAddress for addresses and ContactContact for related contacts, and derived properties, as shown in the following figure:



The physical location, the address, of a contact is not maintained in the ABContact entity. Instead, the ABContact entity references another entity, the Address entity, which maintains the contact’s street or mailing address. An ABContact entity can reference a primary address and, through the ABContactAddress entity, other secondary addresses.

Contacts can have relationships with other contacts. For example, an ABPerson contact might be employed by a particular ABCompany contact. The ABContactContact entity maintains data about the relationships a contact can have with other contacts.

Contacts can have tags, like Client and Vendor, and specialist services that the contact provides, like carpentry or independent appraisal. An ABContact entity references its tags by using an array of ABContactTag entities. An ABContact entity references its services by using an array of ABContactSpecialistService entities.