What's Changed
New features
Events
- Added
getEvents()— retrieve a paginated list of custom events, filterable bycontactId,eventName,objectType,startDate, andendDate.
Supportslimit(default 100, max 10,000) andoffsetfor pagination.
Note: currently only supports custom events. - Added
createBatchEvents()— create multiple events in a single request using an array ofCreateBatchEventsRequestItem. Returns aBatchAcceptedResponse.
Ecommerce
CreateUpdateProductRequestand batch product upsert now accept two new optional fields:brandanddescription.
Balance
getActiveBalancesApi()now acceptsincludeInternalto include balances tied to internal definitions.getContactBalances()andgetSubscriptionBalances()now accept a request object with anincludeInternalparameter.getTransactionHistory()now supports filtering bystatus(draft,completed,rejected,cancelled,expired) andtransactionType(credit,debit).createBalanceDefinition()andupdateBalanceDefinition():- the
metafield is now a typed object (isInternal: bool) instead of a generic key-value array.
- the
CRM
- Added
PatchCrmAttributesIdRequestto update CRM attribute labels and selectable option labels.
Changes
Ecommerce
metaInfosize limit for products clarified: maximum 20,000 characters total (previously documented as 1,000 KB / max 20 items).
Account
usersfield on plan verticals is now nullable.
Bug fixes
createContact()no longer throws aBrevoException- Checks if the response body is empty and returns null instead of trying to deserialize it
- Only calls CreateContactResponse::fromJson($json) when there's actual content