> ## Documentation Index
> Fetch the complete documentation index at: https://storekit.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Setting Up Klaviyo Push Notifications

> Turn on Klaviyo push notifications for your branded storekit iOS and Android app: create the Apple push key and Firebase project, upload them to Klaviyo, and test.

Klaviyo push campaigns reach your app's customers only once Apple and Google know Klaviyo is allowed to message your app. Most of the setup happens in your own Apple, Google Firebase and Klaviyo accounts, because your app is published under your developer accounts. storekit then makes a new build of your app with Klaviyo included.

Allow about an hour, plus the time for the new app version to pass App Store and Google Play review.

## Before You Start

* Your app is live, or being built, with storekit. See [Native Apps](/docs/app-studio/introduction).
* Your ordering website is already [connected to Klaviyo](/docs/guides/integrations/marketing/klaviyo/connect). The app uses the same Klaviyo account and the same **Public API key / Site ID**.
* You can sign in to the Apple Developer account your app is published under, with the **Account Holder** or **Admin** role. Other roles cannot create push keys.
* You can sign in to the Google account you use for Google Play, to create a Firebase project.
* Ask storekit support for your app's **bundle ID** (iPhone) and **package name** (Android). They are usually the same, for example `com.yourbrand.app`.

> [!NOTE]
>
> Order updates (accepted, ready, on the way) already work without any of this. These steps are only for marketing pushes sent from Klaviyo.

## Set Up iPhone Push

**1. Check the app has the Push Notifications capability**

In the [Apple Developer portal](https://developer.apple.com/account), go to **Certificates, Identifiers & Profiles** → **Identifiers** and open your app's bundle ID. Under **Capabilities**, **Push Notifications** should be ticked. storekit's build turns it on; if it is missing, tick it, click **Save** and tell storekit support, because the app needs a new build to pick it up.

**2. Create an APNs key**

Go to **Keys** and click **+**. Give the key a name such as "Klaviyo push", tick **Apple Push Notifications service (APNs)**, and if asked, choose the **Sandbox & Production** environment. Click **Continue**, then **Register**.

**3. Download the key and note its details**

Click **Download** to save the `.p8` file. Apple lets you download it only once, so keep it somewhere safe. Note the **Key ID** shown on the same page, and your **Team ID**, shown under **Membership details** in your account.

**4. Add the key to Klaviyo**

In Klaviyo, open your account's push notification settings and add an iOS app. Enter your app's bundle ID, the **Key ID** and **Team ID**, and upload the `.p8` file.

> [!WARNING]
>
> Revoking the APNs key in Apple stops every push sent with it, including Klaviyo campaigns. If you replace the key, upload the new one to Klaviyo before revoking the old one.

## Set Up Android Push

Android pushes go through Google's Firebase Cloud Messaging, so your app needs its own Firebase project.

**1. Create a Firebase project**

In the [Firebase console](https://console.firebase.google.com), create a project for your app, for example "Your Brand App". Google Analytics is not needed for push.

**2. Add your Android app**

In the project, add an Android app and enter your app's package name exactly as storekit gave it to you. Download the `google-services.json` file Firebase offers and send it to storekit support. Your app's next build includes it; without it, Android push does not work.

**3. Create a service account key**

In Firebase go to **Project settings** → **Service accounts** and click **Generate new private key**. This downloads a `.json` file. Treat it like a password.

**4. Add the key to Klaviyo**

In Klaviyo's push notification settings, add an Android app with your package name and upload the service account `.json` file.

## Ask storekit for a Klaviyo Build

Once both platforms are set up in Klaviyo, contact storekit support and say you want Klaviyo push turned on for your app. We:

1. Connect your app to your Klaviyo account with your **Public API key / Site ID**.
2. Add your `google-services.json` and make a new build of your app with Klaviyo included.
3. Submit the new version to the App Store and Google Play.

Klaviyo can only reach customers who have the new version installed and have allowed notifications. Customers on an older version keep receiving order updates but not Klaviyo campaigns until they update.

> [!NOTE]
>
> Klaviyo in-app forms use the same build. Once your app has it, forms can be turned on or off without another release. Ask storekit support.

## Test It

**1. Install the new version**

Install the Klaviyo version of your app on an iPhone and an Android phone, sign in, and allow notifications when asked.

**2. Find yourself in Klaviyo**

Open your profile in Klaviyo by email. It should show the app's push token and an **Opened App** event.

**3. Send a test push**

Send a push campaign or preview to a test list containing only your profile. Check it arrives on both phones, and that tapping it opens the screen you linked to. Klaviyo records the tap as **Opened Push**.

**4. Check order updates still arrive**

Place a test order and check the order notifications still arrive alongside Klaviyo's.

To open a particular screen, use the links in [App Links](/docs/app-studio/deep-links) as the push's link.

## What Is Not Available Yet

* Images in push notifications and badge counts on the app icon on iPhone.
* Location-based (geofenced) pushes.

## Related

> **[Klaviyo for Native Apps](/docs/guides/integrations/marketing/klaviyo/native-apps)**
>
> What app activity appears in Klaviyo

> **[Native App Troubleshooting](/docs/guides/integrations/marketing/klaviyo/troubleshooting#native-apps)**
>
> Missing profiles, app activity and push notifications


## Related topics

- [Troubleshooting Klaviyo](/docs/guides/integrations/marketing/klaviyo/troubleshooting.md)
- [Klaviyo for Native Apps](/docs/guides/integrations/marketing/klaviyo/native-apps.md)
- [Native Apps](/docs/app-studio/introduction.md)
- [Klaviyo](/docs/guides/integrations/marketing/klaviyo/overview.md)
- [Klaviyo Event Reference](/docs/guides/integrations/marketing/klaviyo/event-reference.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.