Hi @JMD , you’re definitely on the right track! If you’re just looking to send Profile Properties to Klaviyo, you should use the identify endpoint. Any timestamped action (like when somebody places an order or starts a checkout) would be what the track endpoint is for.
Since Klaviyo has a schema-less database (noSQL), you don’t have to pre-define the custom properties inside Klaviyo before you send those API requests. So you could start right away by sending your CRM data to Klaviyo via the identify endpoint as soon as you’d like. An example payload might look like this:
{
"token": "ABC123",
"properties": {
"$email": "connor.test@klaviyo.com",
"$first_name": "Connor",
"$last_name": "B",
"Total Number of Purchases": 3,
"Loyalty Points": 200,
"Language Preference": "EN"
}
}
The identify endpoint was designed for very high throughput and low latency, and is an asynchronous endpoint. Because of this, we don’t have a way to bulk-upload this data, but you can essentially make API requests as fast as you’d like and you will almost certainly not hit any rate limits.