Pass your app review
Learn best practices and common pitfalls to cut down review time and boost your app’s chances of approval.
Before you begin
Before you begin, confirm that your app meets Klaviyo’s app listing requirements to ensure that your submission process goes as smoothly as possible.
You will learn
This article highlights OAuth app best practices and common reasons an app fails review, helping you prepare your app for approval before submitting it to Klaviyo's integrations directory. You'll learn best practices for:
- Seeding profiles and events
- Naming list and profile properties
- Syncing data effectively
- Defining your event schema
You’ll also learn how to identify and avoid common app review errors, such as OAuth installation flow errors, unclear testing instructions, unused scopes, and more.
OAuth app best practices
Apply the best practices detailed below to ensure that your OAuth app is performant and offers a user experience that satisfies Klaviyo’s app listing requirements.
Seeding profiles and events
If your app creates events or sets custom profile properties for use in flows, segments, etc. we recommend creating an example profile(s) with the properties set by your integration along with events for each of the core metrics upon installation. This enables customers to get started with your integration immediately after installation. Otherwise, they will need to wait until these properties and events propagate through naturally, which prolongs the onboarding time.
App metric branding is available to all apps using OAuth. Learn how to set up branding for your app’s metrics.
Naming lists and profile properties
It’s best practice to give lists and profile properties set by your integration names that clearly identify your integration. We recommend using your app’s name or prefix, followed by a space and then the list/profile property. For example, an app named PetParty might have list properties named “PetParty Invitees” and “PetParty Attendees.”
List and profile properties should follow the same format, i.e., if an app's full name is used to describe a list property, all list and profile properties should also be described with the full name. Following a consistent naming approach will allow for your app’s properties to be easily grouped and identified in Klaviyo.
Syncing data efficiently
Respect rate limits
Your app needs to respect API rate limits to avoid unnecessary load in accordance with our API Terms of Use. Rate limits are listed in each endpoint’s API reference documentation.
Use bulk endpoints
Use our Bulk Profile Import API and Bulk Create Events API to create multiple profiles and events at a time. The Bulk Profile Import API will update matching profiles if they already exist or create them if no matching profiles are found. If you are looking to create or update a single profile, use the Create or Update Profile endpoint.
Defining event schema
It's important that you avoid making breaking changes to event payloads, as customers are relying on the payload shape to be a certain way in Klaviyo. Keep your event payloads tight and only send over data that is helpful for customers to use in Klaviyo, for example, fields that can be used in segments, flows, or message templates. Note that segmentation is only supported on top-level properties.
Common reasons an app fails review
Apps often require updates before they can be approved and published in Klaviyo’s integrations directory. We’ve outlined the reasons for such updates below so that you can avoid delays in your app’s approval. Before you submit your app, make sure your app doesn’t meet any of the common reasons an app fails review.
Category | Reason | Solution |
---|---|---|
Installation flow |
|
|
Scopes |
|
|
Testing instructions |
|
|
Uninstallation flow |
|
|
Other | The app failed to remove and/or deprecate the API key connection when transitioning to OAuth. | Make sure that your app no longer supports any API key-based connections. |
Next steps
Now that your app meets Klaviyo’s app listing requirements and follows best practices, you can submit your app for review.
Additional resources
Updated about 17 hours ago