Amazon Connect Customer Profiles

2025/07/03 - Amazon Connect Customer Profiles - 6 new api methods

Changes  This release introduces capability of create Segments via importing a CSV file directly. This consumes the CSV file and creates/updates corresponding profiles for the particular domain.

CreateUploadJob (new) Link ¶

Creates an Upload job to ingest data for segment imports. The metadata is created for the job with the provided field mapping and unique key.

See also: AWS API Documentation

Request Syntax

client.create_upload_job(
    DomainName='string',
    DisplayName='string',
    Fields={
        'string': {
            'Source': 'string',
            'Target': 'string',
            'ContentType': 'STRING'|'NUMBER'|'PHONE_NUMBER'|'EMAIL_ADDRESS'|'NAME'
        }
    },
    UniqueKey='string',
    DataExpiry=123
)
type DomainName:

string

param DomainName:

[REQUIRED]

The unique name of the domain. Domain should be exists for the upload job to be created.

type DisplayName:

string

param DisplayName:

[REQUIRED]

The unique name of the upload job. Could be a file name to identify the upload job.

type Fields:

dict

param Fields:

[REQUIRED]

The mapping between CSV Columns and Profile Object attributes. 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 UniqueKey:

string

param UniqueKey:

[REQUIRED]

The unique key columns for de-duping the profiles used to map data to the profile.

type DataExpiry:

integer

param DataExpiry:

The expiry duration for the profiles ingested with the job. If not provided, the system default of 2 weeks is used.

rtype:

dict

returns:

Response Syntax

{
    'JobId': 'string'
}

Response Structure

  • (dict) --

    • JobId (string) --

      The unique identifier for the created upload job.

ListUploadJobs (new) Link ¶

This API retrieves a list of upload jobs for the specified domain.

See also: AWS API Documentation

Request Syntax

client.list_upload_jobs(
    DomainName='string',
    MaxResults=123,
    NextToken='string'
)
type DomainName:

string

param DomainName:

[REQUIRED]

The unique name of the domain to list upload jobs for.

type MaxResults:

integer

param MaxResults:

The maximum number of upload jobs to return per page.

type NextToken:

string

param NextToken:

The pagination token from the previous call to retrieve the next page of results.

rtype:

dict

returns:

Response Syntax

{
    'NextToken': 'string',
    'Items': [
        {
            'JobId': 'string',
            'DisplayName': 'string',
            'Status': 'CREATED'|'IN_PROGRESS'|'PARTIALLY_SUCCEEDED'|'SUCCEEDED'|'FAILED'|'STOPPED',
            'StatusReason': 'VALIDATION_FAILURE'|'INTERNAL_FAILURE',
            'CreatedAt': datetime(2015, 1, 1),
            'CompletedAt': datetime(2015, 1, 1),
            'DataExpiry': 123
        },
    ]
}

Response Structure

  • (dict) --

    • NextToken (string) --

      The pagination token to use to retrieve the next page of results.

    • Items (list) --

      The list of upload jobs for the specified domain.

      • (dict) --

        The summary information for an individual upload job.

        • JobId (string) --

          The unique identifier of the upload job.

        • DisplayName (string) --

          The name of the upload job.

        • Status (string) --

          The current status of the upload job.

        • StatusReason (string) --

          The reason for the current status of the upload job.

        • CreatedAt (datetime) --

          The timestamp when the upload job was created.

        • CompletedAt (datetime) --

          The timestamp when the upload job was completed.

        • DataExpiry (integer) --

          The expiry duration for the profiles ingested with the upload job.

StopUploadJob (new) Link ¶

This API stops the processing of an upload job.

See also: AWS API Documentation

Request Syntax

client.stop_upload_job(
    DomainName='string',
    JobId='string'
)
type DomainName:

string

param DomainName:

[REQUIRED]

The unique name of the domain containing the upload job to stop.

type JobId:

string

param JobId:

[REQUIRED]

The unique identifier of the upload job to stop.

rtype:

dict

returns:

Response Syntax

{}

Response Structure

  • (dict) --

StartUploadJob (new) Link ¶

This API starts the processing of an upload job to ingest profile data.

See also: AWS API Documentation

Request Syntax

client.start_upload_job(
    DomainName='string',
    JobId='string'
)
type DomainName:

string

param DomainName:

[REQUIRED]

The unique name of the domain containing the upload job to start.

type JobId:

string

param JobId:

[REQUIRED]

The unique identifier of the upload job to start.

rtype:

dict

returns:

Response Syntax

{}

Response Structure

  • (dict) --

GetUploadJobPath (new) Link ¶

This API retrieves the pre-signed URL and client token for uploading the file associated with the upload job.

See also: AWS API Documentation

Request Syntax

client.get_upload_job_path(
    DomainName='string',
    JobId='string'
)
type DomainName:

string

param DomainName:

[REQUIRED]

The unique name of the domain containing the upload job.

type JobId:

string

param JobId:

[REQUIRED]

The unique identifier of the upload job to retrieve the upload path for. This is generated from the CreateUploadJob API.

rtype:

dict

returns:

Response Syntax

{
    'Url': 'string',
    'ClientToken': 'string',
    'ValidUntil': datetime(2015, 1, 1)
}

Response Structure

  • (dict) --

    • Url (string) --

      The pre-signed S3 URL for uploading the CSV file associated with the upload job.

    • ClientToken (string) --

      The plaintext data key used to encrypt the upload file.

      To persist to the pre-signed url, use the client token and MD5 client token as header. The required headers are as follows:

      • x-amz-server-side-encryption-customer-key: Client Token

      • x-amz-server-side-encryption-customer-key-MD5: MD5 Client Token

      • x-amz-server-side-encryption-customer-algorithm: AES256

    • ValidUntil (datetime) --

      The expiry timestamp for the pre-signed URL, after which the URL will no longer be valid.

GetUploadJob (new) Link ¶

This API retrieves the details of a specific upload job.

See also: AWS API Documentation

Request Syntax

client.get_upload_job(
    DomainName='string',
    JobId='string'
)
type DomainName:

string

param DomainName:

[REQUIRED]

The unique name of the domain containing the upload job.

type JobId:

string

param JobId:

[REQUIRED]

The unique identifier of the upload job to retrieve.

rtype:

dict

returns:

Response Syntax

{
    'JobId': 'string',
    'DisplayName': 'string',
    'Status': 'CREATED'|'IN_PROGRESS'|'PARTIALLY_SUCCEEDED'|'SUCCEEDED'|'FAILED'|'STOPPED',
    'StatusReason': 'VALIDATION_FAILURE'|'INTERNAL_FAILURE',
    'CreatedAt': datetime(2015, 1, 1),
    'CompletedAt': datetime(2015, 1, 1),
    'Fields': {
        'string': {
            'Source': 'string',
            'Target': 'string',
            'ContentType': 'STRING'|'NUMBER'|'PHONE_NUMBER'|'EMAIL_ADDRESS'|'NAME'
        }
    },
    'UniqueKey': 'string',
    'ResultsSummary': {
        'UpdatedRecords': 123,
        'CreatedRecords': 123,
        'FailedRecords': 123
    },
    'DataExpiry': 123
}

Response Structure

  • (dict) --

    • JobId (string) --

      The unique identifier of the upload job.

    • DisplayName (string) --

      The unique name of the upload job. Could be a file name to identify the upload job.

    • Status (string) --

      The status describing the status for the upload job. The following are Valid Values:

      • CREATED: The upload job has been created, but has not started processing yet.

      • IN_PROGRESS: The upload job is currently in progress, ingesting and processing the profile data.

      • PARTIALLY_SUCCEEDED: The upload job has successfully completed the ingestion and processing of all profile data.

      • SUCCEEDED: The upload job has successfully completed the ingestion and processing of all profile data.

      • FAILED: The upload job has failed to complete.

      • STOPPED: The upload job has been manually stopped or terminated before completion.

    • StatusReason (string) --

      The reason for the current status of the upload job. Possible reasons:

      • VALIDATION_FAILURE: The upload job has encountered an error or issue and was unable to complete the profile data ingestion.

      • INTERNAL_FAILURE: Failure caused from service side

    • CreatedAt (datetime) --

      The timestamp when the upload job was created.

    • CompletedAt (datetime) --

      The timestamp when the upload job was completed.

    • Fields (dict) --

      The mapping between CSV Columns and Profile Object attributes for the upload job.

      • (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.

    • UniqueKey (string) --

      The unique key columns used for de-duping the keys in the upload job.

    • ResultsSummary (dict) --

      The summary of results for the upload job, including the number of updated, created, and failed records.

      • UpdatedRecords (integer) --

        The number of records that were updated during the upload job.

      • CreatedRecords (integer) --

        The number of records that were newly created during the upload job.

      • FailedRecords (integer) --

        The number of records that failed to be processed during the upload job.

    • DataExpiry (integer) --

      The expiry duration for the profiles ingested with the upload job.