[20.0.0] - revision 2026-07-15
Added
- Custom Objects API
- Full CRUD support across four groups of endpoints:
- Object Types:
$klaviyo->CustomObjects->createObjectType(),$klaviyo->CustomObjects->getObjectType(),$klaviyo->CustomObjects->getObjectTypes(), and$klaviyo->CustomObjects->deleteObjectType(). - Object Schemas:
$klaviyo->CustomObjects->createObjectSchema(),$klaviyo->CustomObjects->getObjectSchema(), and$klaviyo->CustomObjects->updateObjectSchema(), plus schema versions via$klaviyo->CustomObjects->getCurrentSchemaForObjectType(),$klaviyo->CustomObjects->getDraftSchemaForObjectType(), and$klaviyo->CustomObjects->getSchemaVersionsForObjectType(). - Source Mappings:
$klaviyo->CustomObjects->getSourceMapping(),$klaviyo->CustomObjects->updateSourceMapping(),$klaviyo->CustomObjects->getSourceMappingForObjectSchema(), and$klaviyo->CustomObjects->getSourceMappingIdForObjectSchema(). - Object Records:
$klaviyo->CustomObjects->getObjectRecord(),$klaviyo->CustomObjects->getRecordsForObjectType(),$klaviyo->CustomObjects->getRecordIdsForObjectType(), and$klaviyo->CustomObjects->bulkDeleteObjectRecords().
- Object Types:
- Full CRUD support across four groups of endpoints:
- Conversations API
- Added support for creating conversation messages with
$klaviyo->Conversations->createConversationMessage().
- Added support for creating conversation messages with
- Client API
- Added
$klaviyo->Client->getClientIpAllowlist()to retrieve your account's client-side IP allowlist.
- Added
- Flows API
- Added
$klaviyo->Flows->deleteFlowAction()to remove an action from a flow.
- Added
Changed
- Breaking: Conversations API
- Conversation endpoints are now plural — e.g.
$klaviyo->Profiles->getConversationForProfile()is now$klaviyo->Profiles->getConversationsForProfile()(and$klaviyo->Profiles->getConversationIdForProfile()is now$klaviyo->Profiles->getConversationIdsForProfile()), as well as the relevant relationship methods and parameters. - Response shapes are now lists, instead of single objects.
- Conversation endpoints are now plural — e.g.
- Events API
- Added a new
backfillflag on$klaviyo->Events->createEvent()&$klaviyo->Events->bulkCreateEvents(), which records historical events without triggering flows. $klaviyo->Events->getEvents()now returns events with unresolvable metrics by default, matching$klaviyo->Events->getEvent(). Use the newhas(metric)filter to exclude them.
- Added a new