CHANGELOG.md in klaviyo-api-sdk-3.0.0 vs CHANGELOG.md in klaviyo-api-sdk-4.0.0

- old
+ new

@@ -2,23 +2,49 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [4.0.0] - revision 2023-07-15 +### Added +- Back-In-stock APIs + - We have added support for subscribing profiles to back-in-stock notifications, for both email and SMS, using the new [create_back_in_stock_subscription](./README.md#create-back-in-stock-subscription) endpoint. +- New functionality to Campaigns API + - CRUD support for SMS campaigns is now available + - You can now also retrieve all messages for a campaign to determine performance data on campaigns where you're running A/B tests + - To support this functionality, we introduced a relationship between [campaigns and campaign messages](./README.md#get-campaign-relationships-campaign-messages), and between [campaign messages and templates](./README.md#get-campaign-message-relationships-template) + + +### Changed +- Relationship Standardization + - We are making a number of changes across endpoints to standardize how we handle [relationships](https://developers.klaviyo.com/en/docs/relationships_) in our APIs and leverage consistently typed objects across endpoints. For example, you can create a profile in our APIs in the same shape, regardless of whether you're calling the profiles endpoint or the events endpoint. + - The changes include: + - Updating 1:1 relationships to use singular tense and an object (instead of plural and an array) + - example: for [get_flow_action](./README.md#get-flow-action), if you want to use the `include` param, you would set `include=` to `"flow"` (instead of `"flows"`) + - Moving related object IDs from the attributes payload to relationships + - example: The format for the [body](https://developers.klaviyo.com/en/reference/create_tag) of [create_tag](./README.md#create-tag) has changed, with `tag_group_id` previously at `data.attributes.tag_group_id` being removed and replaced by a `data` object containing `type`+`id` and located at `data.relationships.tag-group.data`. + - Specifying a relationship between two Klaviyo objects to allow for improved consistency and greater interoperability across endpoints + - example: for [create_event](./README.md#create-event), you can now create/update a profile for an event in the same way you would when using the profiles API directly + - NOTE: The examples for the above relationship changes are illustrative, not comprehensive. For a complete list of ALL the endpoints that have changed and exactly how, please refer to our latest [API Changelog](https://developers.klaviyo.com/en/docs/changelog_#revision-2023-07-15) +- For [get_campaigns](./README.md#get-campaigns) endpoint, `filter` param is now required, to, at minimum, filter on `messages.channel` + + +### Removed +- We removed the `company_id` from the response for [get_template](./README.md#get-template) and [get_templates](./README.md#get-templates). If you need to obtain the company ID / public API key for an account, please use the [Accounts API](./README.md#accounts).- We removed the `company_id` from the response for [get_template](./README.md#get-template) and [get_templates](./README.md#get-templates). If you need to obtain the company ID / public API key for an account, please use the [Accounts API](./README.md#accounts). + ## [3.0.0] - revision 2023-06-15 ### Added - Accounts API is now available, this will allow you to access information about the Klaviyo account associated with your API key. - - `getAccounts` - - `getAccount` + - `get_accounts` + - `get_account` **Note:** You will need to generate a new API key with either the `Accounts` scope enabled or `Full Access` to use these endpoints. ### Removed -- All `client` endpoints - While you could potentially get this repo to work for frontend and use only these the client endpoints, this is bad practice. - Klaviyo has the much lighter weight `klaviyo.js` wrapper [which you can read about here.](https://developers.klaviyo.com/en/docs/introduction_to_the_klaviyo_object) - - `createClientEvent` - - `createClientProfile` - - `createClientSubscription` +- All `client` endpoints + - `create_client_event` + - `create_client_profile` + - `create_client_subscription` ## [2.0.0] - 2023-04-06 ### Added - Profiles API now returns predictive analytics when calling `get_profile` and `get_profiles` by passing in `additional_fields_profile: ["predictive_analytics"]`. ### Changed