Klaviyo
Klaviyo custom data properties are now prefixed
sotto_. Profile push
writes each custom data field as sotto_<field_name> (favorite_hobbies
becomes sotto_favorite_hobbies), the same namespace tap event properties
use. Properties written under the old, unprefixed names stay on your Klaviyo
profiles but no longer update; move any segments or flows built on them to
the new names. custom_data sent to POST /api/v1/klaviyo/users is still
keyed by the Sotto field name. See
Custom data.Klaviyo profiles now carry sotto_date_created. With custom data on,
profile push sends the date the user was first created in Sotto, in UTC
ISO 8601, which Klaviyo can segment on as a date. Existing profiles receive
it on their next push. See Date created.date_created is a reserved custom data name. Creating or renaming a
custom data field to date_created, or a look-alike such as Date Created,
is rejected.Webhooks and Klaviyo
user/update now fires on every profile change. It previously fired only
when a user replied to an SMS with a postal code. If you subscribe to
user/update, expect a higher and more representative volume of callbacks.Two new webhook topics. user/create fires when a
user is created in Sotto, and user/tap fires when a tap
on a phygital device is attributed to a user.Callback bodies now name their own topic. Every body carries topic and
operation beside date_occurred, so you can route without reading the
headers. tap is present on every body and populated on user/tap. The
payload also now includes email_address, date_last_updated and
custom_data.Your own API writes are no longer sent back to you. Changing a user
through the API does not trigger a callback to the subscription that made the
change. Other subscribers are unaffected.Failing endpoints are paused, not retried forever. After three events in
a row are dropped at the retry cap, Sotto pauses the subscription and probes it
with one new event about every ten minutes until your endpoint answers 2xx.
Events that occur while paused are not replayed. See
Paused subscriptions.Redirects are not followed. A 3xx response now counts as a failed
delivery. If your endpoint redirects, for example to add a trailing slash,
register the final address instead, or deliveries will fail and the
subscription will be paused.Brands can trim what a subscription receives. Custom data and tap location
can be switched off per subscription. When they are, custom_data and
tap.location arrive as null; the body shape does not change.Klaviyo tap events. Phygital device taps can now be pushed to Klaviyo as
metric events. See Tap events.Baseline
Initial publication of the Sotto API documentation.