When and How Klaviyo Sets a Contact's Location



Klaviyo determines a contact's location when syncing a billing address for the contact; if a contact hasn't purchased, their location is determined based on IP geolocation. 

IP Geolocation

When someone clicks through a Klaviyo email, subscribes via a Klaviyo sign up form, or are otherwise captured by our web tracking snippet, we will identify the person and use the IP they are on to set his/her location. This is called IP geolocation.

Although IP geolocation is used as the industry standard, it can sometimes be inaccurate. Here are a few reasons you might see discrepancies between a contact's IP geolocation and where they actually are:

  1. We check someone's IP whenever they open an email or are captured by our web tracking snippet; if someone is in China when they open the email, their IP will reflect this, even if their typical location is in California.
  2. IPs are not static, and the location affiliated with an IP is thus also not static; this makes IP geolocation imperfect.

The above note is most relevant when you may want to schedule a campaign that sends to each recipient at, say, 2PM in his/her own timezone. Depending on where a recipient was the last time he/she opened an email or opted-in via a sign up form, it's possible that the timezone Klaviyo has recorded for a recipient at send time will not be the same timezone the recipient is in when he/she receives your next campaign.

Additional situations where we won't be able to get accurate IP data from email open events:

  • If the email open event, when tracked, goes through a proxy; this is true of emails opened in Gmail
  • If the email open event is synced to Klaviyo through an integration, like MailChimp; in this case, the IP we assess will be a MailChimp server IP and not the actual email recipient's IP

Update Location Information Yourself

If you would like to update any location-related properties for one or more Klaviyo profiles -- either by manually importing this location data or using the API -- you will need to reference the relevant "special" property name used by Klaviyo:

  • $city: city they live in
  • $region: region or state they live in
  • $country: country they live in
  • $zip: postal code where they live

Most notable here is the "$" before the property name -- all special properties contain the "$" prefix.

Was this article helpful?
1 out of 3 found this helpful