Amazon Connect Customer Profiles

2021/08/13 - Amazon Connect Customer Profiles - 4 updated api methods

Changes  This release introduces Standard Profile Objects, namely Asset and Case which contain values populated by data from third party systems and belong to a specific profile. This release adds an optional parameter, ObjectFilter to the ListProfileObjects API in order to search for these Standard Objects.

GetProfileObjectType (updated) Link ¶
Changes (response)
{'Keys': {'StandardIdentifiers': {'CASE', 'ASSET'}}}

Returns the object types for a specific domain.

See also: AWS API Documentation

Request Syntax

client.get_profile_object_type(
    DomainName='string',
    ObjectTypeName='string'
)
type DomainName:

string

param DomainName:

[REQUIRED]

The unique name of the domain.

type ObjectTypeName:

string

param ObjectTypeName:

[REQUIRED]

The name of the profile object type.

rtype:

dict

returns:

Response Syntax

{
    'ObjectTypeName': 'string',
    'Description': 'string',
    'TemplateId': 'string',
    'ExpirationDays': 123,
    'EncryptionKey': 'string',
    'AllowProfileCreation': True|False,
    'Fields': {
        'string': {
            'Source': 'string',
            'Target': 'string',
            'ContentType': 'STRING'|'NUMBER'|'PHONE_NUMBER'|'EMAIL_ADDRESS'|'NAME'
        }
    },
    'Keys': {
        'string': [
            {
                'StandardIdentifiers': [
                    'PROFILE'|'ASSET'|'CASE'|'UNIQUE'|'SECONDARY'|'LOOKUP_ONLY'|'NEW_ONLY',
                ],
                'FieldNames': [
                    'string',
                ]
            },
        ]
    },
    'CreatedAt': datetime(2015, 1, 1),
    'LastUpdatedAt': datetime(2015, 1, 1),
    'Tags': {
        'string': 'string'
    }
}

Response Structure

  • (dict) --

    • ObjectTypeName (string) --

      The name of the profile object type.

    • Description (string) --

      The description of the profile object type.

    • TemplateId (string) --

      A unique identifier for the object template.

    • ExpirationDays (integer) --

      The number of days until the data in the object expires.

    • EncryptionKey (string) --

      The customer-provided key to encrypt the profile object that will be created in this profile object type.

    • AllowProfileCreation (boolean) --

      Indicates whether a profile should be created when data is received if one doesn’t exist for an object of this type. The default is FALSE. If the AllowProfileCreation flag is set to FALSE, then the service tries to fetch a standard profile and associate this object with the profile. If it is set to TRUE, and if no match is found, then the service creates a new standard profile.

    • Fields (dict) --

      A map of the name and ObjectType field.

      • (string) --

        • (dict) --

          Represents a field in a ProfileObjectType.

          • Source (string) --

            A field of a ProfileObject. For example: _source.FirstName, where “_source” is a ProfileObjectType of a Zendesk user and “FirstName” is a field in that ObjectType.

          • Target (string) --

            The location of the data in the standard ProfileObject model. For example: _profile.Address.PostalCode.

          • ContentType (string) --

            The content type of the field. Used for determining equality when searching.

    • Keys (dict) --

      A list of unique keys that can be used to map data to the profile.

      • (string) --

        • (list) --

          • (dict) --

            An object that defines the Key element of a ProfileObject. A Key is a special element that can be used to search for a customer profile.

            • StandardIdentifiers (list) --

              The types of keys that a ProfileObject can have. Each ProfileObject can have only 1 UNIQUE key but multiple PROFILE keys. PROFILE, ASSET or CASE means that this key can be used to tie an object to a PROFILE, ASSET or CASE respectively. UNIQUE means that it can be used to uniquely identify an object. If a key a is marked as SECONDARY, it will be used to search for profiles after all other PROFILE keys have been searched. A LOOKUP_ONLY key is only used to match a profile but is not persisted to be used for searching of the profile. A NEW_ONLY key is only used if the profile does not already exist before the object is ingested, otherwise it is only used for matching objects to profiles.

              • (string) --

            • FieldNames (list) --

              The reference for the key name of the fields map.

              • (string) --

    • CreatedAt (datetime) --

      The timestamp of when the domain was created.

    • LastUpdatedAt (datetime) --

      The timestamp of when the domain was most recently edited.

    • Tags (dict) --

      The tags used to organize, track, or control access for this resource.

      • (string) --

        • (string) --

GetProfileObjectTypeTemplate (updated) Link ¶
Changes (response)
{'Keys': {'StandardIdentifiers': {'CASE', 'ASSET'}}}

Returns the template information for a specific object type.

A template is a predefined ProfileObjectType, such as “Salesforce-Account” or “Salesforce-Contact.” When a user sends a ProfileObject, using the PutProfileObject API, with an ObjectTypeName that matches one of the TemplateIds, it uses the mappings from the template.

See also: AWS API Documentation

Request Syntax

client.get_profile_object_type_template(
    TemplateId='string'
)
type TemplateId:

string

param TemplateId:

[REQUIRED]

A unique identifier for the object template.

rtype:

dict

returns:

Response Syntax

{
    'TemplateId': 'string',
    'SourceName': 'string',
    'SourceObject': 'string',
    'AllowProfileCreation': True|False,
    'Fields': {
        'string': {
            'Source': 'string',
            'Target': 'string',
            'ContentType': 'STRING'|'NUMBER'|'PHONE_NUMBER'|'EMAIL_ADDRESS'|'NAME'
        }
    },
    'Keys': {
        'string': [
            {
                'StandardIdentifiers': [
                    'PROFILE'|'ASSET'|'CASE'|'UNIQUE'|'SECONDARY'|'LOOKUP_ONLY'|'NEW_ONLY',
                ],
                'FieldNames': [
                    'string',
                ]
            },
        ]
    }
}

Response Structure

  • (dict) --

    • TemplateId (string) --

      A unique identifier for the object template.

    • SourceName (string) --

      The name of the source of the object template.

    • SourceObject (string) --

      The source of the object template.

    • AllowProfileCreation (boolean) --

      Indicates whether a profile should be created when data is received if one doesn’t exist for an object of this type. The default is FALSE. If the AllowProfileCreation flag is set to FALSE, then the service tries to fetch a standard profile and associate this object with the profile. If it is set to TRUE, and if no match is found, then the service creates a new standard profile.

    • Fields (dict) --

      A map of the name and ObjectType field.

      • (string) --

        • (dict) --

          Represents a field in a ProfileObjectType.

          • Source (string) --

            A field of a ProfileObject. For example: _source.FirstName, where “_source” is a ProfileObjectType of a Zendesk user and “FirstName” is a field in that ObjectType.

          • Target (string) --

            The location of the data in the standard ProfileObject model. For example: _profile.Address.PostalCode.

          • ContentType (string) --

            The content type of the field. Used for determining equality when searching.

    • Keys (dict) --

      A list of unique keys that can be used to map data to the profile.

      • (string) --

        • (list) --

          • (dict) --

            An object that defines the Key element of a ProfileObject. A Key is a special element that can be used to search for a customer profile.

            • StandardIdentifiers (list) --

              The types of keys that a ProfileObject can have. Each ProfileObject can have only 1 UNIQUE key but multiple PROFILE keys. PROFILE, ASSET or CASE means that this key can be used to tie an object to a PROFILE, ASSET or CASE respectively. UNIQUE means that it can be used to uniquely identify an object. If a key a is marked as SECONDARY, it will be used to search for profiles after all other PROFILE keys have been searched. A LOOKUP_ONLY key is only used to match a profile but is not persisted to be used for searching of the profile. A NEW_ONLY key is only used if the profile does not already exist before the object is ingested, otherwise it is only used for matching objects to profiles.

              • (string) --

            • FieldNames (list) --

              The reference for the key name of the fields map.

              • (string) --

ListProfileObjects (updated) Link ¶
Changes (request)
{'ObjectFilter': {'KeyName': 'string', 'Values': ['string']}}

Returns a list of objects associated with a profile of a given ProfileObjectType.

See also: AWS API Documentation

Request Syntax

client.list_profile_objects(
    NextToken='string',
    MaxResults=123,
    DomainName='string',
    ObjectTypeName='string',
    ProfileId='string',
    ObjectFilter={
        'KeyName': 'string',
        'Values': [
            'string',
        ]
    }
)
type NextToken:

string

param NextToken:

The pagination token from the previous call to ListProfileObjects.

type MaxResults:

integer

param MaxResults:

The maximum number of objects returned per page.

type DomainName:

string

param DomainName:

[REQUIRED]

The unique name of the domain.

type ObjectTypeName:

string

param ObjectTypeName:

[REQUIRED]

The name of the profile object type.

type ProfileId:

string

param ProfileId:

[REQUIRED]

The unique identifier of a customer profile.

type ObjectFilter:

dict

param ObjectFilter:

Applies a filter to the response to include profile objects with the specified index values. This filter is only supported for ObjectTypeName _asset and _case.

  • KeyName (string) -- [REQUIRED]

    A searchable identifier of a standard profile object. The predefined keys you can use to search for _asset include: _assetId, _assetName, _serialNumber. The predefined keys you can use to search for _case include: _caseId.

  • Values (list) -- [REQUIRED]

    A list of key values.

    • (string) --

rtype:

dict

returns:

Response Syntax

{
    'Items': [
        {
            'ObjectTypeName': 'string',
            'ProfileObjectUniqueKey': 'string',
            'Object': 'string'
        },
    ],
    'NextToken': 'string'
}

Response Structure

  • (dict) --

    • Items (list) --

      The list of ListProfileObject instances.

      • (dict) --

        A ProfileObject in a list of ProfileObjects.

        • ObjectTypeName (string) --

          Specifies the kind of object being added to a profile, such as "Salesforce-Account."

        • ProfileObjectUniqueKey (string) --

          The unique identifier of the ProfileObject generated by the service.

        • Object (string) --

          A JSON representation of a ProfileObject that belongs to a profile.

    • NextToken (string) --

      The pagination token from the previous call to ListProfileObjects.

PutProfileObjectType (updated) Link ¶
Changes (both)
{'Keys': {'StandardIdentifiers': {'CASE', 'ASSET'}}}

Defines a ProfileObjectType.

See also: AWS API Documentation

Request Syntax

client.put_profile_object_type(
    DomainName='string',
    ObjectTypeName='string',
    Description='string',
    TemplateId='string',
    ExpirationDays=123,
    EncryptionKey='string',
    AllowProfileCreation=True|False,
    Fields={
        'string': {
            'Source': 'string',
            'Target': 'string',
            'ContentType': 'STRING'|'NUMBER'|'PHONE_NUMBER'|'EMAIL_ADDRESS'|'NAME'
        }
    },
    Keys={
        'string': [
            {
                'StandardIdentifiers': [
                    'PROFILE'|'ASSET'|'CASE'|'UNIQUE'|'SECONDARY'|'LOOKUP_ONLY'|'NEW_ONLY',
                ],
                'FieldNames': [
                    'string',
                ]
            },
        ]
    },
    Tags={
        'string': 'string'
    }
)
type DomainName:

string

param DomainName:

[REQUIRED]

The unique name of the domain.

type ObjectTypeName:

string

param ObjectTypeName:

[REQUIRED]

The name of the profile object type.

type Description:

string

param Description:

[REQUIRED]

Description of the profile object type.

type TemplateId:

string

param TemplateId:

A unique identifier for the object template.

type ExpirationDays:

integer

param ExpirationDays:

The number of days until the data in the object expires.

type EncryptionKey:

string

param EncryptionKey:

The customer-provided key to encrypt the profile object that will be created in this profile object type.

type AllowProfileCreation:

boolean

param AllowProfileCreation:

Indicates whether a profile should be created when data is received if one doesn’t exist for an object of this type. The default is FALSE. If the AllowProfileCreation flag is set to FALSE, then the service tries to fetch a standard profile and associate this object with the profile. If it is set to TRUE, and if no match is found, then the service creates a new standard profile.

type Fields:

dict

param Fields:

A map of the name and ObjectType field.

  • (string) --

    • (dict) --

      Represents a field in a ProfileObjectType.

      • Source (string) --

        A field of a ProfileObject. For example: _source.FirstName, where “_source” is a ProfileObjectType of a Zendesk user and “FirstName” is a field in that ObjectType.

      • Target (string) --

        The location of the data in the standard ProfileObject model. For example: _profile.Address.PostalCode.

      • ContentType (string) --

        The content type of the field. Used for determining equality when searching.

type Keys:

dict

param Keys:

A list of unique keys that can be used to map data to the profile.

  • (string) --

    • (list) --

      • (dict) --

        An object that defines the Key element of a ProfileObject. A Key is a special element that can be used to search for a customer profile.

        • StandardIdentifiers (list) --

          The types of keys that a ProfileObject can have. Each ProfileObject can have only 1 UNIQUE key but multiple PROFILE keys. PROFILE, ASSET or CASE means that this key can be used to tie an object to a PROFILE, ASSET or CASE respectively. UNIQUE means that it can be used to uniquely identify an object. If a key a is marked as SECONDARY, it will be used to search for profiles after all other PROFILE keys have been searched. A LOOKUP_ONLY key is only used to match a profile but is not persisted to be used for searching of the profile. A NEW_ONLY key is only used if the profile does not already exist before the object is ingested, otherwise it is only used for matching objects to profiles.

          • (string) --

        • FieldNames (list) --

          The reference for the key name of the fields map.

          • (string) --

type Tags:

dict

param Tags:

The tags used to organize, track, or control access for this resource.

  • (string) --

    • (string) --

rtype:

dict

returns:

Response Syntax

{
    'ObjectTypeName': 'string',
    'Description': 'string',
    'TemplateId': 'string',
    'ExpirationDays': 123,
    'EncryptionKey': 'string',
    'AllowProfileCreation': True|False,
    'Fields': {
        'string': {
            'Source': 'string',
            'Target': 'string',
            'ContentType': 'STRING'|'NUMBER'|'PHONE_NUMBER'|'EMAIL_ADDRESS'|'NAME'
        }
    },
    'Keys': {
        'string': [
            {
                'StandardIdentifiers': [
                    'PROFILE'|'ASSET'|'CASE'|'UNIQUE'|'SECONDARY'|'LOOKUP_ONLY'|'NEW_ONLY',
                ],
                'FieldNames': [
                    'string',
                ]
            },
        ]
    },
    'CreatedAt': datetime(2015, 1, 1),
    'LastUpdatedAt': datetime(2015, 1, 1),
    'Tags': {
        'string': 'string'
    }
}

Response Structure

  • (dict) --

    • ObjectTypeName (string) --

      The name of the profile object type.

    • Description (string) --

      Description of the profile object type.

    • TemplateId (string) --

      A unique identifier for the object template.

    • ExpirationDays (integer) --

      The number of days until the data in the object expires.

    • EncryptionKey (string) --

      The customer-provided key to encrypt the profile object that will be created in this profile object type.

    • AllowProfileCreation (boolean) --

      Indicates whether a profile should be created when data is received if one doesn’t exist for an object of this type. The default is FALSE. If the AllowProfileCreation flag is set to FALSE, then the service tries to fetch a standard profile and associate this object with the profile. If it is set to TRUE, and if no match is found, then the service creates a new standard profile.

    • Fields (dict) --

      A map of the name and ObjectType field.

      • (string) --

        • (dict) --

          Represents a field in a ProfileObjectType.

          • Source (string) --

            A field of a ProfileObject. For example: _source.FirstName, where “_source” is a ProfileObjectType of a Zendesk user and “FirstName” is a field in that ObjectType.

          • Target (string) --

            The location of the data in the standard ProfileObject model. For example: _profile.Address.PostalCode.

          • ContentType (string) --

            The content type of the field. Used for determining equality when searching.

    • Keys (dict) --

      A list of unique keys that can be used to map data to the profile.

      • (string) --

        • (list) --

          • (dict) --

            An object that defines the Key element of a ProfileObject. A Key is a special element that can be used to search for a customer profile.

            • StandardIdentifiers (list) --

              The types of keys that a ProfileObject can have. Each ProfileObject can have only 1 UNIQUE key but multiple PROFILE keys. PROFILE, ASSET or CASE means that this key can be used to tie an object to a PROFILE, ASSET or CASE respectively. UNIQUE means that it can be used to uniquely identify an object. If a key a is marked as SECONDARY, it will be used to search for profiles after all other PROFILE keys have been searched. A LOOKUP_ONLY key is only used to match a profile but is not persisted to be used for searching of the profile. A NEW_ONLY key is only used if the profile does not already exist before the object is ingested, otherwise it is only used for matching objects to profiles.

              • (string) --

            • FieldNames (list) --

              The reference for the key name of the fields map.

              • (string) --

    • CreatedAt (datetime) --

      The timestamp of when the domain was created.

    • LastUpdatedAt (datetime) --

      The timestamp of when the domain was most recently edited.

    • Tags (dict) --

      The tags used to organize, track, or control access for this resource.

      • (string) --

        • (string) --