Skip to content

Klaviyo Integration

The CZ Names Klaviyo integration automatically syncs the declined name forms and gender to matching Klaviyo profiles. Once synced, you can use the Czech addressing data in any Klaviyo email, SMS, or flow template.

You need two Klaviyo API keys: a Public key (also called Site ID) and a Private key.

  1. Log in to your Klaviyo account
  2. Go to Account → Settings → API Keys
  3. Copy your Public API Key (visible on the main API Keys page)
  4. Create a new Private API Key with at least profiles:read and profiles:write scopes, then copy it
  1. Open the CZ Names app in your Shopify admin
  2. Go to Settings → Klaviyo Integration
  3. Paste your Public API Key and Private API Key
  4. Click Save

The integration activates immediately for all subsequent customer creates and updates.

When a customer’s name is processed:

  1. The app declines the name and writes the Shopify metafields
  2. The app then looks up the customer’s email address in Klaviyo to find their profile
  3. If found, the app updates the Klaviyo profile with three custom properties:
    • Czech addressing — declined first name
    • Czech last name — declined last name
    • Gendermale, female, or unknown

If you have customers who signed up before the integration was enabled, trigger a re-sync by making a small edit to their Shopify customer profile (for example, re-saving their name). This fires a customer update webhook, which triggers both the declension and the Klaviyo sync.

Using Czech addressing in Klaviyo templates

Section titled “Using Czech addressing in Klaviyo templates”

Once the properties are synced to a Klaviyo profile, you can use them in any Klaviyo email or SMS template with the person|lookup filter.

{% if person|lookup:'Czech addressing' %}
{{ person|lookup:'Czech addressing'|default:'' }}
{% endif %}
{% if person|lookup:'Czech addressing' %}
Vážený zákazníku {{ person|lookup:'Czech addressing' }} {{ person|lookup:'Czech last name' }},
{% else %}
Vážený zákazníku {{ person.first_name }},
{% endif %}
{% if person|lookup:'Gender' == 'male' %}
Vážený pane {{ person|lookup:'Czech addressing' }},
{% elif person|lookup:'Gender' == 'female' %}
Vážená paní {{ person|lookup:'Czech addressing' }},
{% else %}
Dobrý den, {{ person|lookup:'Czech addressing'|default:person.first_name }},
{% endif %}

The Czech profile properties can be used as flow filter conditions as well. For example:

  • Trigger a flow only for customers where Gender equals female
  • Personalize product recommendations with a gendered greeting

To access the properties in a flow condition, select Profile propertyCzech addressing (or Czech last name / Gender for the other properties).

Properties not appearing on Klaviyo profiles

Section titled “Properties not appearing on Klaviyo profiles”

Cause 1 — Incorrect API keys: Verify the Private API Key has profiles:read and profiles:write permissions. Re-enter the keys in the app settings and save.

Cause 2 — New customer, timing issue: For customers created very recently, Klaviyo may not have created their profile yet. Wait 5 minutes and then make a small edit to the Shopify customer to trigger a re-sync.

Cause 3 — Email mismatch: The sync matches customers by email address. If the email on the Shopify customer record differs from the email on the Klaviyo profile, the profile will not be found and the sync will be skipped.

A sync is skipped when the customer email doesn’t exist as a Klaviyo profile yet. This is expected for brand-new customers — re-triggering the webhook after 5 minutes will resolve it. If the issue persists, contact support at integrace@soundsgood.agency.

Ensure you have the fallback in place:

{{ person|lookup:'Czech addressing'|default:person.first_name }}

If the property is completely absent on the profile (not just empty), the |default: filter will catch it.