Releases: klaviyo/klaviyo-api-node
v8.0.1
Fix model errors inside create queries for Reporting API
v8.0.1-beta.1
Fix model errors inside create queries for Reporting API
v8.0.0
Revision 2024-02-15
Added:
-
New
ReportingApiallows you to request campaign and flow performance data that you can view in the Klaviyo UI. -
campaignValuesQuery- Request campaign analytics data, for example, a campaign performance report on the open rate over the past 30 days.
-
flowValuesQuery- Request flow analytics data, for example, a flow performance report on the revenue per recipient value over the past 3 months.
-
flowSeriesQuery- Fetch flow series data for a specific interval and timeframe, for example, a flow performance report on weekly click rates over the past 12 months.
-
New
ProfilesApiendpoint allows you to create or update a profile with a set of profile attributes.createOrUpdateProfile- This endpoint operates synchronously and offers an upsert pattern similar to the v1/v2 Identify API.
Changed:
-
Removed the $attribution field from event_properties in get_event and get_events (breaking change).
- To include this data in your request, add include=attributions to your request.
8.0.0-beta.1
Revision 2024-02-15
Added:
-
New
ReportingApiallows you to request campaign and flow performance data that you can view in the Klaviyo UI. -
campaignValuesQuery- Request campaign analytics data, for example, a campaign performance report on the open rate over the past 30 days.
-
flowValuesQuery- Request flow analytics data, for example, a flow performance report on the revenue per recipient value over the past 3 months.
-
flowSeriesQuery- Fetch flow series data for a specific interval and timeframe, for example, a flow performance report on weekly click rates over the past 12 months.
-
New
ProfilesApiendpoint allows you to create or update a profile with a set of profile attributes.createOrUpdateProfile- This endpoint operates synchronously and offers an upsert pattern similar to the v1/v2 Identify API.
Changed:
-
Removed the $attribution field from event_properties in get_event and get_events (breaking change).
- To include this data in your request, add include=attributions to your request.
7.2.0
Added
- New Endpoints: Bulk Profile Imports:
Profiles.spawnBulkProfileImportJobProfiles.getBulkProfileImportJobProfiles.getBulkProfileImportJobsProfiles.getBulkProfileImportJobListsProfiles.getBulkProfileImportJobProfilesProfiles.getBulkProfileImportJobImportErrorsProfiles.getBulkProfileImportJobRelationshipsProfilesProfiles.getBulkProfileImportJobRelationshipsLists
Changed
- The
relationshipsfield of Profiles.subscribeProfiles payload is now optional. (see subscribeProfiles reference for details).
7.2.0-beta.1
Added
- New Endpoints: Bulk Profile Imports:
Profiles.spawnBulkProfileImportJobProfiles.getBulkProfileImportJobProfiles.getBulkProfileImportJobsProfiles.getBulkProfileImportJobListsProfiles.getBulkProfileImportJobProfilesProfiles.getBulkProfileImportJobImportErrorsProfiles.getBulkProfileImportJobRelationshipsProfilesProfiles.getBulkProfileImportJobRelationshipsLists
Changed
- The
relationshipsfield of Profiles.subscribeProfiles payload is now optional. (see subscribeProfiles reference for details).
v7.1.0-beta.2
Fixes
- Fixed OAuth authorization redirect url
7.1.0
[7.1.0] - revision 2023-10-15
Changed
- Creating objects can now take the type as a string as well as an enum
let profile: ProfileCreateQuery = { data: { type: 'profile', attributes: { email: "[email protected]" } } }
- Endpoints with multiple included properties will now deserialize both included objects correctly
- i.e.
eventsApi.getEvent("${EVENT_ID}", {include: ['metric', 'profile']})
- i.e.
- Models that were supposed to support two primitive types but were serializing incorrectly now support one but work correctly
- i.e.
updateProfile'sunsetvalue now takes a list of strings and serializes correctly.
- i.e.
7.1.0-beta.1
Changed
- Creating objects can now take the type as a string as well as an enum
let profile: ProfileCreateQuery = { data: { type: 'profile', attributes: { email: "[email protected]" } } }
- Endpoints with multiple included properties will now deserialize both included objects correctly
- i.e.
eventsApi.getEvent("${EVENT_ID}", {include: ['metric', 'profile']})
- i.e.
- Models that were supposed to support two primitive types but were serializing incorrectly now support one but work correctly
- i.e.
updateProfile'sunsetvalue now takes a list of strings and serializes correctly.
- i.e.
v7.0.0
Added
Support for returning list suppressions via the /profiles endpoint
We now support filtering on list suppression with the get profiles endpoint, which brings us to parity with v2 list suppression endpoint that was the previously recommended solution.
Rules for suppression filtering:
- You may not mix-and-match list and global filters
- You may only specify a single date filter
- You may or may not specify a reason
- You must specify a list_id to filter on any list suppression properties
Examples:
{filter: 'greater-than(subscriptions.email.marketing.suppression.timestamp,2023-03-01T01:00:00Z)'}
{filter: 'greater-than(subscriptions.email.marketing.list_suppressions.timestamp,2023-03-01T01:00:00Z),equals(subscriptions.email.marketing.list_suppressions.list_id,”LIST_ID”')
{filter: 'greater-than(subscriptions.email.marketing.suppression.timestamp,2023-03-01T01:00:00Z),equals(subscriptions.email.marketing.suppression.reason,"user_suppressed"')
Optionally retrieve subscription status on Get List Profiles, Get Segment Profiles, Get Event Profile
Now you can retrieve subscription status on any endpoint that returns profiles, including getListProfiles, getSegmentProfiles and getEventProfile. Use {additionalFieldsProfile: ['subscriptions']} on these endpoints to include subscription information.
Breaking changes
Subscription object not returned by default on Get Profile / Get Profiles
The subscription object is no longer returned by default with get profile(s) requests. However, it can be included by adding ?additional-fields[profile]=subscriptions to the request. This change will allow us to provide a more performant experience when making requests to GetProfiles without including the subscriptions object.
Profile Subscription Fields Renamed
In the interest of providing more clarity and information on the subscription object, we have renamed several fields, and added several as well. This will provide more context on a contact's subscriptions and consent, as well as boolean fields to see who you can or cannot message.
For SMSMarketing:
timestampis nowconsentTimestamplastUpdatedis a new field that mirrorsconsenTimestampcanReceiveSmsMarketingis a new field which isTrueif the profile is consented for SMS
For EmailMarketing:
timestampis nowconsentTimestampcanReceiveEmailMarketingis True if the profile does not have a global suppressionsuppressionsis nowsuppressionlastUpdatedis a new field that is the most recent of all the dates on the object