Skip to content

Commit c6de935

Browse files
author
AWS
committed
Amazon Connect Customer Profiles Update: This release introduces ListProfileHistoryRecords and GetProfileHistoryRecord APIs for comprehensive profile history tracking with complete audit trails of creation, updates, merges, deletions, and data ingestion events.
1 parent 75cf749 commit c6de935

2 files changed

Lines changed: 235 additions & 5 deletions

File tree

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"type": "feature",
3+
"category": "Amazon Connect Customer Profiles",
4+
"contributor": "",
5+
"description": "This release introduces ListProfileHistoryRecords and GetProfileHistoryRecord APIs for comprehensive profile history tracking with complete audit trails of creation, updates, merges, deletions, and data ingestion events."
6+
}

services/customerprofiles/src/main/resources/codegen-resources/service-2.json

Lines changed: 229 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -650,6 +650,23 @@
650650
],
651651
"documentation":"<p>Before calling this API, use <a href=\"https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_CreateDomain.html\">CreateDomain</a> or <a href=\"https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_UpdateDomain.html\">UpdateDomain</a> to enable identity resolution: set <code>Matching</code> to true.</p> <p>GetMatches returns potentially matching profiles, based on the results of the latest run of a machine learning process. </p> <important> <p>The process of matching duplicate profiles. If <code>Matching</code> = <code>true</code>, Amazon Connect Customer Profiles starts a weekly batch process called Identity Resolution Job. If you do not specify a date and time for Identity Resolution Job to run, by default it runs every Saturday at 12AM UTC to detect duplicate profiles in your domains. </p> <p>After the Identity Resolution Job completes, use the <a href=\"https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_GetMatches.html\">GetMatches</a> API to return and review the results. Or, if you have configured <code>ExportingConfig</code> in the <code>MatchingRequest</code>, you can download the results from S3.</p> </important> <p>Amazon Connect uses the following profile attributes to identify matches:</p> <ul> <li> <p>PhoneNumber</p> </li> <li> <p>HomePhoneNumber</p> </li> <li> <p>BusinessPhoneNumber</p> </li> <li> <p>MobilePhoneNumber</p> </li> <li> <p>EmailAddress</p> </li> <li> <p>PersonalEmailAddress</p> </li> <li> <p>BusinessEmailAddress</p> </li> <li> <p>FullName</p> </li> </ul> <p>For example, two or more profiles—with spelling mistakes such as <b>John Doe</b> and <b>Jhn Doe</b>, or different casing email addresses such as <b>JOHN_DOE@ANYCOMPANY.COM</b> and <b>johndoe@anycompany.com</b>, or different phone number formats such as <b>555-010-0000</b> and <b>+1-555-010-0000</b>—can be detected as belonging to the same customer <b>John Doe</b> and merged into a unified profile.</p>"
652652
},
653+
"GetProfileHistoryRecord":{
654+
"name":"GetProfileHistoryRecord",
655+
"http":{
656+
"method":"GET",
657+
"requestUri":"/domains/{DomainName}/profiles/{ProfileId}/history-records/{Id}"
658+
},
659+
"input":{"shape":"GetProfileHistoryRecordRequest"},
660+
"output":{"shape":"GetProfileHistoryRecordResponse"},
661+
"errors":[
662+
{"shape":"BadRequestException"},
663+
{"shape":"AccessDeniedException"},
664+
{"shape":"ResourceNotFoundException"},
665+
{"shape":"ThrottlingException"},
666+
{"shape":"InternalServerException"}
667+
],
668+
"documentation":"<p>Returns a history record for a specific profile, for a specific domain.</p>"
669+
},
653670
"GetProfileObjectType":{
654671
"name":"GetProfileObjectType",
655672
"http":{
@@ -700,7 +717,8 @@
700717
{"shape":"ThrottlingException"},
701718
{"shape":"AccessDeniedException"}
702719
],
703-
"documentation":"<p>Gets a segment definition from the domain.</p>"
720+
"documentation":"<p>Gets a segment definition from the domain.</p>",
721+
"readonly":true
704722
},
705723
"GetSegmentEstimate":{
706724
"name":"GetSegmentEstimate",
@@ -788,7 +806,8 @@
788806
{"shape":"ThrottlingException"},
789807
{"shape":"AccessDeniedException"}
790808
],
791-
"documentation":"<p>This API retrieves the details of a specific upload job. </p>"
809+
"documentation":"<p>This API retrieves the details of a specific upload job. </p>",
810+
"readonly":true
792811
},
793812
"GetUploadJobPath":{
794813
"name":"GetUploadJobPath",
@@ -806,7 +825,8 @@
806825
{"shape":"ThrottlingException"},
807826
{"shape":"AccessDeniedException"}
808827
],
809-
"documentation":"<p>This API retrieves the pre-signed URL and client token for uploading the file associated with the upload job. </p>"
828+
"documentation":"<p>This API retrieves the pre-signed URL and client token for uploading the file associated with the upload job. </p>",
829+
"readonly":true
810830
},
811831
"GetWorkflow":{
812832
"name":"GetWorkflow",
@@ -1029,6 +1049,23 @@
10291049
],
10301050
"documentation":"<p>Fetch the possible attribute values given the attribute name.</p>"
10311051
},
1052+
"ListProfileHistoryRecords":{
1053+
"name":"ListProfileHistoryRecords",
1054+
"http":{
1055+
"method":"POST",
1056+
"requestUri":"/domains/{DomainName}/profiles/history-records"
1057+
},
1058+
"input":{"shape":"ListProfileHistoryRecordsRequest"},
1059+
"output":{"shape":"ListProfileHistoryRecordsResponse"},
1060+
"errors":[
1061+
{"shape":"BadRequestException"},
1062+
{"shape":"AccessDeniedException"},
1063+
{"shape":"ResourceNotFoundException"},
1064+
{"shape":"ThrottlingException"},
1065+
{"shape":"InternalServerException"}
1066+
],
1067+
"documentation":"<p>Returns a list of history records for a specific profile, for a specific domain.</p>"
1068+
},
10321069
"ListProfileObjectTypeTemplates":{
10331070
"name":"ListProfileObjectTypeTemplates",
10341071
"http":{
@@ -1113,7 +1150,8 @@
11131150
{"shape":"ThrottlingException"},
11141151
{"shape":"AccessDeniedException"}
11151152
],
1116-
"documentation":"<p>Lists all segment definitions under a domain.</p>"
1153+
"documentation":"<p>Lists all segment definitions under a domain.</p>",
1154+
"readonly":true
11171155
},
11181156
"ListTagsForResource":{
11191157
"name":"ListTagsForResource",
@@ -1146,7 +1184,8 @@
11461184
{"shape":"ThrottlingException"},
11471185
{"shape":"AccessDeniedException"}
11481186
],
1149-
"documentation":"<p>This API retrieves a list of upload jobs for the specified domain. </p>"
1187+
"documentation":"<p>This API retrieves a list of upload jobs for the specified domain. </p>",
1188+
"readonly":true
11501189
},
11511190
"ListWorkflows":{
11521191
"name":"ListWorkflows",
@@ -1417,6 +1456,20 @@
14171456
"error":{"httpStatusCode":403},
14181457
"exception":true
14191458
},
1459+
"ActionType":{
1460+
"type":"string",
1461+
"enum":[
1462+
"ADDED_PROFILE_KEY",
1463+
"DELETED_PROFILE_KEY",
1464+
"CREATED",
1465+
"UPDATED",
1466+
"INGESTED",
1467+
"DELETED_BY_CUSTOMER",
1468+
"EXPIRED",
1469+
"MERGED",
1470+
"DELETED_BY_MERGE"
1471+
]
1472+
},
14201473
"AddProfileKeyRequest":{
14211474
"type":"structure",
14221475
"required":[
@@ -4789,6 +4842,77 @@
47894842
}
47904843
}
47914844
},
4845+
"GetProfileHistoryRecordRequest":{
4846+
"type":"structure",
4847+
"required":[
4848+
"DomainName",
4849+
"ProfileId",
4850+
"Id"
4851+
],
4852+
"members":{
4853+
"DomainName":{
4854+
"shape":"name",
4855+
"documentation":"<p>The unique name of the domain for which to return a profile history record.</p>",
4856+
"location":"uri",
4857+
"locationName":"DomainName"
4858+
},
4859+
"ProfileId":{
4860+
"shape":"uuid",
4861+
"documentation":"<p>The unique identifier of the profile for which to return a history record.</p>",
4862+
"location":"uri",
4863+
"locationName":"ProfileId"
4864+
},
4865+
"Id":{
4866+
"shape":"uuid",
4867+
"documentation":"<p>The unique identifier of the profile history record to return.</p>",
4868+
"location":"uri",
4869+
"locationName":"Id"
4870+
}
4871+
}
4872+
},
4873+
"GetProfileHistoryRecordResponse":{
4874+
"type":"structure",
4875+
"required":[
4876+
"Id",
4877+
"ObjectTypeName",
4878+
"CreatedAt",
4879+
"ActionType"
4880+
],
4881+
"members":{
4882+
"Id":{
4883+
"shape":"uuid",
4884+
"documentation":"<p>The unique identifier of the profile history record.</p>"
4885+
},
4886+
"ObjectTypeName":{
4887+
"shape":"typeName",
4888+
"documentation":"<p>The name of the profile object type.</p>"
4889+
},
4890+
"CreatedAt":{
4891+
"shape":"timestamp",
4892+
"documentation":"<p>The timestamp of when the profile history record was created.</p>"
4893+
},
4894+
"LastUpdatedAt":{
4895+
"shape":"timestamp",
4896+
"documentation":"<p>The timestamp of when the profile history record was last updated.</p>"
4897+
},
4898+
"ActionType":{
4899+
"shape":"ActionType",
4900+
"documentation":"<p>The action type of the profile history record.</p>"
4901+
},
4902+
"ProfileObjectUniqueKey":{
4903+
"shape":"string1To255",
4904+
"documentation":"<p>The unique identifier of the profile object generated by the service.</p>"
4905+
},
4906+
"Content":{
4907+
"shape":"stringifiedJson",
4908+
"documentation":"<p>A string containing the customer profile, profile object, or profile key content.</p>"
4909+
},
4910+
"PerformedBy":{
4911+
"shape":"string1To255",
4912+
"documentation":"<p>The Amazon Resource Name (ARN) of the person or service principal who performed the action.</p>"
4913+
}
4914+
}
4915+
},
47924916
"GetProfileObjectTypeRequest":{
47934917
"type":"structure",
47944918
"required":[
@@ -6267,6 +6391,62 @@
62676391
}
62686392
}
62696393
},
6394+
"ListProfileHistoryRecordsRequest":{
6395+
"type":"structure",
6396+
"required":[
6397+
"DomainName",
6398+
"ProfileId"
6399+
],
6400+
"members":{
6401+
"DomainName":{
6402+
"shape":"name",
6403+
"documentation":"<p>The unique name of the domain for which to return profile history records.</p>",
6404+
"location":"uri",
6405+
"locationName":"DomainName"
6406+
},
6407+
"ProfileId":{
6408+
"shape":"uuid",
6409+
"documentation":"<p>The identifier of the profile to be taken.</p>"
6410+
},
6411+
"ObjectTypeName":{
6412+
"shape":"typeName",
6413+
"documentation":"<p>Applies a filter to include profile history records only with the specified <code>ObjectTypeName</code> value in the response.</p>"
6414+
},
6415+
"NextToken":{
6416+
"shape":"token",
6417+
"documentation":"<p>The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.</p>",
6418+
"location":"querystring",
6419+
"locationName":"next-token"
6420+
},
6421+
"MaxResults":{
6422+
"shape":"maxSize100",
6423+
"documentation":"<p>The maximum number of results to return per page.</p>",
6424+
"location":"querystring",
6425+
"locationName":"max-results"
6426+
},
6427+
"ActionType":{
6428+
"shape":"ActionType",
6429+
"documentation":"<p>Applies a filter to include profile history records only with the specified <code>ActionType</code> value in the response.</p>"
6430+
},
6431+
"PerformedBy":{
6432+
"shape":"string1To255",
6433+
"documentation":"<p>Applies a filter to include profile history records only with the specified <code>PerformedBy</code> value in the response. The <code>PerformedBy</code> value can be the Amazon Resource Name (ARN) of the person or service principal who performed the action.</p>"
6434+
}
6435+
}
6436+
},
6437+
"ListProfileHistoryRecordsResponse":{
6438+
"type":"structure",
6439+
"members":{
6440+
"ProfileHistoryRecords":{
6441+
"shape":"ProfileHistoryRecords",
6442+
"documentation":"<p>The list of profile history records.</p>"
6443+
},
6444+
"NextToken":{
6445+
"shape":"token",
6446+
"documentation":"<p>If there are additional results, this is the token for the next set of results.</p>"
6447+
}
6448+
}
6449+
},
62706450
"ListProfileObjectTypeItem":{
62716451
"type":"structure",
62726452
"required":[
@@ -7376,6 +7556,50 @@
73767556
},
73777557
"documentation":"<p>Object to hold the dimensions of a profile's fields to segment on.</p>"
73787558
},
7559+
"ProfileHistoryRecord":{
7560+
"type":"structure",
7561+
"required":[
7562+
"Id",
7563+
"ObjectTypeName",
7564+
"CreatedAt",
7565+
"ActionType"
7566+
],
7567+
"members":{
7568+
"Id":{
7569+
"shape":"uuid",
7570+
"documentation":"<p>The unique identifier of the profile history record.</p>"
7571+
},
7572+
"ObjectTypeName":{
7573+
"shape":"typeName",
7574+
"documentation":"<p>The name of the profile object type.</p>"
7575+
},
7576+
"CreatedAt":{
7577+
"shape":"timestamp",
7578+
"documentation":"<p>The timestamp of when the profile history record was created.</p>"
7579+
},
7580+
"LastUpdatedAt":{
7581+
"shape":"timestamp",
7582+
"documentation":"<p>The timestamp of when the profile history record was last updated.</p>"
7583+
},
7584+
"ActionType":{
7585+
"shape":"ActionType",
7586+
"documentation":"<p>The action type of the profile history record.</p>"
7587+
},
7588+
"ProfileObjectUniqueKey":{
7589+
"shape":"string1To255",
7590+
"documentation":"<p>The unique identifier of the profile object generated by the service.</p>"
7591+
},
7592+
"PerformedBy":{
7593+
"shape":"string1To255",
7594+
"documentation":"<p>The Amazon Resource Name (ARN) of the person or service principal who performed the action.</p>"
7595+
}
7596+
},
7597+
"documentation":"<p>Contains profile history record metadata.</p>"
7598+
},
7599+
"ProfileHistoryRecords":{
7600+
"type":"list",
7601+
"member":{"shape":"ProfileHistoryRecord"}
7602+
},
73797603
"ProfileId":{"type":"string"},
73807604
"ProfileIdList":{
73817605
"type":"list",

0 commit comments

Comments
 (0)