Skip to main content

** for privacy purposes, the customer data shown here is just dummy data and they are not real ** 

We have a profile feed set up to send customer create and update from our system to Klaviyo in real-time when a customer record is created. Our API request body looks as below. We send our internal customer ID in the “external_id” field under attributes and it populates correctly under “Profile details” section as shown in the screenshot. 

 

API request body: 

{
  "data": {
    "type": "profile",
    "attributes": {
      "email": "example@gmail.com",
      "external_id": "1003010463",
      "first_name": "example",
      "last_name": "customer",
      "location": {
        "address1": "",
        "address2": "",
        "city": "",
        "country": "",
        "region": "",
        "zip": ""
      },
      "properties": {
        "email_opt_out_date": null,
        "birthday": null,
        "email_opt_in": "",
        "email_opt_in_date": null,
        "spouse_name": "",
        "marital_status": "",
        "phone_opt_in": "",
        "gender": "",
        "enrolled_in_loyalty_program": "",
        "spouse’s_birthday": null,
        "cell_phone_opt_in": "",
        "anniversary_date": null
      }
    }
  }
}

 

Customer profile in Klaviyo: 

 

However, when we load customers via csv file upload, even if I name the header column to “external_id” and input value, Klaviyo does not recognize this field and instead asks to create a new mapping field and it creates “external_id” under Custom properties section. 

 

Below is the csv file I uploaded with the placement of the “external_id” field. 

 

How do I need to fix the csv file so that “external_id” field is shown under the Profile details section and not as Custom properties?