The Interaction Type

Interactions are lightweight objects that represent any kind of interaction or transaction.

As a broad term, interaction stands for an event that occurs at a particular moment such as a retail purchase, or a measurement. It can also represent a fact in a period of time such as a sales figure for the month of June.

A collection of Interaction Types can be defined for a tenant configuration. Each Interaction Type has the following properties:

Table 1. Properties
Property Description Type
URI Path that is used to reach the interaction type. Format: configuration/interactionTypes/{TypeName} Required. String, URI
id Internal, system-generated ID. Used internally to get the difference between two versions of configurations when a configuration is updated. Required for the response JSON. String
label Readable name of the Interaction Type. Required. String
description Description for the Interaction type. String
extendsTypeURI URI of an Interaction Type which is extended by this type. String, URI
memberTypes A collection of possible member types. Examples can be: Participant, Organizer. Member type properties:
  • URI: String
  • name: String
  • id: String
  • label: String
  • objectTypeURI: Array of URIs of entity types and roles that can be members of the type.
  • minOccurs: Integer, equal or greater than 0. Identifies how many members can be of this member type. Default is 0.
Complex
attributes Attributes that are defined as standard for this type. Attributes can be of simple, nested and reference type.
Note: Not every interaction object will have all attributes defined in its interaction type. Also, an interaction object can have some custom attributes that are not defined in the configuration.
JSON object of Attributes Configuration
ignoreUniqueness If true, Data Access API (part of the Analytics Spark SDK) and Compaction (application of Analytics Jobs REST API) will not perform uniqueness resolution (de-duplication) for interactions of this type. If false (default), regular uniqueness resolution is performed. Boolean
hasMembers L3 property, optional. Specifies whether the interaction type has members (true, default) or is "memberless" (false). If an interaction type is marked as "memberless", then Data Access API (part of the Analytics Spark SDK) and Data Import (application of Analytics Jobs REST API) will skip the step of joining interactions with members.
CAUTION:
To avoid validation errors, keep in mind that:
  • If true, members must be provided in the mapping and/or data file
  • If false, members must not be provided in the mapping and/or data file
Boolean

Interaction Type: Meeting

Example of a "Meeting" Interaction Type configuration:

{
    "URI": "configuration/interactionTypes/Meeting",
    "id": "31",
    "label": "Meeting",
    "attributes": [{
        "URI": "configuration/interactionTypes/Meeting/attributes/Place",
        "name": "Place",
        "id": "32",
        "label": "Place",
        "type": "String"
    }, 
    {
        "URI": "configuration/interactionTypes/Meeting/attributes/Notes",
        "name": "Notes",
        "id": "33",
        "label": "Notes",
        "type": "String"
    }],
    "memberTypes": [{
        "URI": "configuration/interactionTypes/Meeting/memberTypes/participants",
        "name": "participants",
        "id": "34",
        "label": "participants",
        "objectTypeURI": ["configuration/entityTypes/Individual"],
        "minOccurs": 1
    },
    {
        "URI": "configuration/interactionTypes/Meeting/organizers",
        "name": "organizers",
        "label": "organizers",
        "id": "35",
        "objectTypeURI": ["configuration/entityTypes/Individual"],
        "label": "organizers",
        "minOccurs": 1
    }]
}
Note: Currently, "id" parameters are not supported by Configuration API.

Interaction Type: Prescription

Example of a "Prescription" Interaction Type configuration:

"interactionTypes": [{
    "URI": "configuration/interactionTypes/Prescription",
    "label": "Prescription",
    "ignoreUniqueness": true,
    "memberTypes": [{
        "URI": "configuration/interactionTypes/Prescription/memberTypes/Beneficiary",
        "label": "Beneficiary",
        "name": "Beneficiary",
        "objectTypeURI": "configuration/entityTypes/Beneficiary"
    },
    {
        "URI": "configuration/interactionTypes/Prescription/memberTypes/Product",
        "label": "Product",
        "name": "Product",
        "objectTypeURI": "configuration/entityTypes/Product",
        "minOccurs": 2
    }]
}