Klaviyo Profiles

Reads and writes Klaviyo profiles.

Configuration

- klaviyo_profiles:
    name: save_profile
    operation: upsert
    credentials_path: /etc/klaviyo/credentials.json
    payload:
      email: "{{event.data.email}}"
      first_name: "{{event.data.first_name}}"

Fields

FieldTypeDefaultDescription
namestringrequiredTask name.
operationstringrequiredSee the table below.
credentials_pathstringrequiredPath to the credentials file.
base_urlstringKlaviyo’sKlaviyo API address, for example a proxy.
profile_idstringProfile ID for get and update.
filterstringKlaviyo filter for list, e.g. equals(email,'ada@example.com').
payloadobjectThe profile’s attributes, or from_event: true. See Payload.
depends_onlistUpstream task names.
retryobjectRetry configuration.

Operations

OperationNeedsWhat it does
getprofile_idGets the profile.
listLists profiles matching filter, or all of them.
createpayloadCreates a profile. Fails if one with the same identifiers exists.
updateprofile_id, payloadUpdates the profile.
upsertpayloadUpdates the profile with the same email, phone_number, or external_id, or creates it.

Profile attributes include email, phone_number, external_id, first_name, last_name, organization, title, location, and properties for anything else.

Output

The Klaviyo response as JSON. list emits one event per page, with the profiles in data, so even a list of every profile in the account is held one page at a time.