AWS Security ChangesHomeSearch

AWS connect documentation change

Service: connect · 2025-08-13 · Documentation low

File: connect/latest/adminguide/customer-profiles-object-type-mappings.md

Summary

Added detailed documentation for customer profile ingestion process including account-based profiles, sample CSVs, JSON mappings, and engagement preferences configuration

Security assessment

The changes document data ingestion workflows and mapping configurations without addressing security vulnerabilities or introducing security controls. While customer data handling is involved, there's no evidence of patching vulnerabilities or adding security features beyond normal operational documentation.

Diff

diff --git a/connect/latest/adminguide/customer-profiles-object-type-mappings.md b/connect/latest/adminguide/customer-profiles-object-type-mappings.md
index 599be3d36..e335a395e 100644
--- a//connect/latest/adminguide/customer-profiles-object-type-mappings.md
+++ b//connect/latest/adminguide/customer-profiles-object-type-mappings.md
@@ -4,0 +5,2 @@
+Customer Profile ingestion
+
@@ -18,0 +21,182 @@ For a list of the required IAM permissions needed for Customer Profiles to acces
+## Customer Profile ingestion
+
+###### Ingesting account-based profiles
+
+  1. Upload data files to S3. Ingestion for profiles referenced in account-profiles and the account-profiles itself should happen separately.
+
+  2. The new file used for account-profile ingestion should include new attributes: profile type and engagement preferences for email and phone.
+
+  3. Ingest files from S3 to Customer profile by using AWS console
+
+**Sample Profiles (referenced in the following account-based profiles) CSV**
+
+FirstName | LastName | PersonalEmailAddress | PhoneNumber | State | CustomerId | ProfileType  
+---|---|---|---|---|---|---  
+Sam | Joe | [email protected] | 1111111111 | WA | 456 | PROFILE  
+John | Doe | [email protected] | 2222222222 | IL | 789 | PROFILE  
+Sally | Doe | [email protected] | 3333333333 | OR | 111 | PROFILE  
+  
+**Sample account-based profiles CSV**
+
+AccountId | ProfileType | PrimaryOwner | SecondaryOwner | EmailEngagementPreferences | PhoneEngagementPreferences  
+---|---|---|---|---|---  
+ACC111 | ACCOUNT_PROFILE | Sam Joe | John Doe | [{"KeyName":"CustomerId","KeyValue":"456","ContactType":"PersonalEmailAddress"},{"KeyName":"CustomerId","KeyValue":"789","ContactType":"PersonalEmailAddress"}] | [{"KeyName":"CustomerId","KeyValue":"456","ContactType":"PhoneNumber"},{"KeyName":"CustomerId","KeyValue":"789","ContactType":"PhoneNumber"}]  
+ACC112 | ACCOUNT_PROFILE | John Doe | Sally Doe | [{"KeyName":"CustomerId","KeyValue":"111","ContactType":"PersonalEmailAddress"}] | [{"KeyName":"CustomerId","KeyValue":"111","ContactType":"PhoneNumber"}]  
+  
+**Example of engagement preferences with Email** :
+    
+        [ 
+     {"KeyName": "CustomerId", "KeyValue": "456", "ContactType": "PersonalEmailAddress"}, 
+     {"KeyName": "CustomerId", "KeyValue": "789", "ContactType": "PersonalEmailAddress"} 
+    ]
+        
+
+**Example of engagement preferences with Phone** :
+    
+        [ 
+     {"KeyName": "CustomerId", "KeyValue": "456", "ContactType": "PhoneNumber"}, 
+     {"KeyName": "CustomerId", "KeyValue": "789", "ContactType": "PhoneNumber"} 
+    ]
+        
+
+  4. Create two data mappings - one for sub-profiles and one for account-based profiles.
+
+![Create two data source integration that will each create a mapping based off the relationship described. For example, accounts/profiles.](/images/connect/latest/adminguide/images/customer-profiles-ingesting-account-based-profiles-1.png)
+
+  5. Next, map customer profile attributes. Note the destination called `ProfileType`.
+
+![Next, map customer profile attributes. Note the destination called ProfileType.](/images/connect/latest/adminguide/images/customer-profiles-ingesting-account-based-profiles-2.png)
+
+**Sample object-type mapping for ingesting profiles referenced in account-based profiles**
+    
+        {
+        "AllowProfileCreation": true,
+        "Description": "Standard Profile Object Type",
+        "Fields": {
+            "FirstName": {
+                "ContentType": "STRING",
+                "Source": "_source.FirstName",
+                "Target": "_profile.FirstName"
+            },
+            "LastName": {
+                "ContentType": "STRING",
+                "Source": "_source.LastName",
+                "Target": "_profile.LastName"
+            },
+            "PhoneNumber": {
+                "ContentType": "PHONE_NUMBER",
+                "Source": "_source.PhoneNumber",
+                "Target": "_profile.PhoneNumber"
+            },
+            "PersonalEmailAddress": {
+                "ContentType": "EMAIL_ADDRESS",
+                "Source": "_source.PersonalEmailAddress",
+                "Target": "_profile.PersonalEmailAddress"
+            },
+            "State": {
+                "ContentType": "STRING",
+                "Source": "_source.State",
+                "Target": "_profile.Address.State"
+            },
+            "CustomerId": {
+                "ContentType": "STRING",
+                "Source": "_source.CustomerId",
+                "Target": "_profile.Attributes.CustomerId"
+            },
+            "ProfileType": {
+                "ContentType": "STRING",
+                "Source": "_source.ProfileType",
+                "Target": "_profile.ProfileType"
+            }
+        },
+        "Keys": {
+            "CustomerId": [
+                {
+                    "FieldNames": [
+                        "CustomerId"
+                    ],
+                    "StandardIdentifiers": [
+                        "PROFILE",
+                        "UNIQUE"
+                    ]
+                }
+            ]
+        }
+    }
+        
+
+  6. Repeat the process to ingest account-based profiles. Note EngagementPreferences.Email and EngagementPreference.Phone.
+
+![Repeat the process to ingest account-based profiles. Note EngagementPreferences.Email and EngagementPreference.Phone.](/images/connect/latest/adminguide/images/customer-profiles-ingesting-account-based-profiles-3.png)
+
+**Sample object-type mapping for ingesting account based profiles**
+    
+        {
+        "AllowProfileCreation": true,
+        "Description": "Account-based profiles Object Type",
+        "Fields": {
+            "AccountNumber": {
+                "ContentType": "STRING",
+                "Source": "_source.AccountId",
+                "Target": "_profile.AccountNumber"
+            },
+            "PrimaryOwner": {
+                "ContentType": "STRING",
+                "Source": "_source.PrimaryOwner",
+                "Target": "_profile.Attributes.PrimaryOwner"
+            },
+            "SecondaryOwner": {
+                "ContentType": "STRING",
+                "Source": "_source.SecondaryOwner",
+                "Target": "_profile.Attributes.SecondaryOwner"
+            },
+            "ProfileType": {
+                "ContentType": "STRING",
+                "Source": "_source.ProfileType",
+                "Target": "_profile.ProfileType"
+            },
+            "EmailEngagementPreferences": {
+                "ContentType": "STRING",
+                "Source": "_source.EmailEngagementPreferences",
+                "Target": "_profile.EngagementPreferences.Email"
+            },
+            "PhoneEngagementPreferences": {
+                "ContentType": "STRING",
+                "Source": "_source.PhoneEngagementPreferences",
+                "Target": "_profile.EngagementPreferences.Phone"
+            }
+        },
+        "Keys": {
+            "Account": [
+                {
+                    "FieldNames": [
+                        "AccountNumber"
+                    ],
+                    "StandardIdentifiers": [
+                        "PROFILE",
+                        "UNIQUE"
+                    ]
+                }
+            ]
+        }
+    }
+        
+
+  7. Create two data source integration that will each create a mapping based off the relationship described. For example, accounts/profiles.
+
+
+
+
+###### Note
+
+  * Ingesting account-based profiles should only happen after verifying successful ingestion of profiles referenced in account-based profiles by using the [SearchProfiles](https://docs.aws.amazon.com/connect/latest/APIReference/API_connect-customer-profiles_SearchProfiles.html) API or Profile metrics in the Amazon Connect Customer Profiles console.
+
+  * Auto-generate mapping doesn't work for ingesting account-based profiles and it's sub-profiles.
+
+  * Email and phone list of contact preferences can either have `KeyName` and `KeyValue` or `ProfileId` to reference child profiles. `KeyName` should be the unique identifier.
+
+  * Updates to sub-profiles doesn't update the engagement preferences in account-based profiles. Updates have to be through ingestion path.
+
+
+
+