Contact Service Description and Assumptions

Description

This service manages contact information for communication to people, groups of people or organizations. Contact information may include (but is not limited to) delivery addresses, email addresses, phone and fax numbers, etc. The individual's or organization's preferences around which contact record(s) should be used in predefined contexts is also maintained through this service.

Assumptions

  • Contact information can be associated with persons and organizations, although it is distinguished from both of these. Stated another way, person and organization entities do not contain contract information, but can be associated with contact records.
  • The association of contact information with persons and organizations should take place automatically "behind the scenes," via a single invocation of a service contract method which creates, modifies, or deletes a contact record for a specific person or organization.
  • Contact information can be persistently stored, retrieved from a cache, or fetched from external data sources, such as institutional directories, professional association directories, social network profiles, or the like.  This is an implementation detail that is isolated from the service contract.
  • Contact information may, in some circumstances, be associated not directly to a person or organization entity, but to a relation between these. This allows us to represent contact info for someone, in the context of an affiliation to an orgranization.

Scope issue

Initial versions of this service will only store contact info locally. We will explore LDAP and other integration later.

Initial versions will not support import or export - contact info will be entered by hand. Later versions can support generic import.

Potentially KSS-specific config utility notes

Notes on managing media types and usage types (taken from KSS) whose applicability to CollectionSpace is to be determined:

  • Media types and usage types will be managed using a config utility and not through service operations
  • Constraints between media type and contact type are also managed via a config utility

See also the modeling notes below.

Key Concepts

Contact records and lists

  • A contact record consists of only a single media type; e.g. a single delivery address, email address, or phone number.
  • Contact record lists permit multiple contact records to be aggregated, either to provide multiple contact records in a single bundle (e.g. a combination of a delivery address, phone number, and email address), or a set of contact records arranged in a priority order (see "Preferences," below.)

Media types

  • A Media Type is used to specify the type of a contact record, e.g. a delivery address, an email address, or a phone number.
  • Media types also describe the structure (or format) of a contact record. For instance, a delivery address media type will differ from a phone number media type.
  • Certain media types (e.g. email addresses) consist of a single element, while others (e.g. delivery addresses) consist of multiple sub-elements, such as state or province and postal code.
  • Media types will support Internationalization requirements, such as variations in the structure of postal addresses for different countries and regions.
  • Effective dates support contact information with known time constraints; e.g. short-term contact information for a person who is traveling, or for an organization operating out of a temporary location.

Scope issue

Initial versions of this service can take a naive view of formats, e.g., for I18N. We can work out the variants in order and structure later.

Modeling issue

We may also simplify the schemas needed by modeling a ContactMediaItem schema that is a union of the basic media types, and just let it be sparse for the individual types.

Preferences

  • Preferences for people and organizations allow the specification of multiple, prioritized contact methods (media types). E.g. "Contact me first by text message, next by cell phone, and then by fax."
  • Contact preferences will likely be incorporated into the Media Type items, above. This is a simpification over the KSS model that supports preferences in multiple contexts, which seems to be much more than we need.

Usage types

This is a concept from KSS, but that we will not support, at least in v1.0. Details are here for completeness only, but should not be interpreted as part of the spec.

  • A Usage Type describes the contexts in which contact records are used.
    E.g. an "emergency" context might require a different contact method than a "default" context.
  • The same contact record (e.g. an email address) may be used in multiple contexts.
  • Certain usage types may constrain the allowed media types associated with them.
    E.g. an "alert" usage may be restricted to synchronous (real-time) methods only, which restricts the contact records to media types associated with those methods; no postal addresses, email addresses, etc.
  • An individual or organization may interleave media types in their preferences for a given usage.
    E.g. "Contact me by this email address first, then try this phone number, then try this other email address, then try this other phone number."
  • The "default" usage type should return a list of all available contact records, ordered using a default order.

Dependencies

  • None identified

Background Documentation

  • None available
  • Spectrum et al. model this in an over-simplified manner.

Key Team Members

  • Patrick Schmitz
  • Need to identify the community members acting as Domain Experts.