# Push notifications: get started

Source: https://kirora.io/docs/guides/messaging/push/get-started

How push reaches phones and browsers, what an admin sets up, what your developer does, and when a contact can receive push.

Push notifications reach people on their phones and computers: in your iOS app, your Android app, and your website in Chrome and Safari, including a website added to an iPhone's Home Screen. Kirora sends them through Apple, Google and the browsers' own push services, with your app's own keys.

## How push works

1. **An admin adds your apps** in **Settings › Messaging › Push apps**: one push app per platform, grouped in a **push project** for the same product.
2. **Your developer connects your app or website**, so it asks people for permission and registers each device or browser against the right contact.
3. **You send** to a project from campaigns and journeys; your app sends transactional push. Each contact gets the notification on every device they've registered in that project's ready apps.
4. **Your app reports taps**, so opens and clicks appear in your reports.

## Projects and apps

A **push project** is one product in one environment, **Production** or **Sandbox**. It holds at most one app per platform: **iOS**, **Android** and **Web**. For example, *Juniper Kitchen* might have a project with an iOS app, an Android app and a web app.

Every member can see push apps, because composing a push means choosing one. Only admins, developers and the owner add, rename, delete or upload keys for them. See [Set up push](https://kirora.io/docs/guides/getting-started/set-up-push) for the step-by-step.

## When an app is ready

**Settings › Messaging › Push apps** shows each app's status and next step:

| Status | What it means | What to do |
| --- | --- | --- |
| **Ready** | Campaigns and journeys can send through this app to every device your code registers | Nothing |
| **Needs a key** | An iOS or Android app without its Apple or Firebase key | Upload the key on the app's page |
| **Not ready** | The key or web keys are stored, but sending isn't confirmed yet | Reload the page to check again, or replace the key |

A web app is ready as soon as you add it. An iOS or Android app is ready once its key is uploaded and checked. A project can send once any of its apps is ready.

If Apple or Google later refuses a key, for example because it was revoked, the app's page says so: *Apple refused this key… Sends to this app have stopped. Upload a new key.* Sends to that app stop until an admin uploads a new one.

## What your developer does

Kirora never registers devices by itself. Your developer asks for permission, registers each device against its contact from your server, and reports taps, so opens and clicks reach your reports. See [What your developer needs to do](https://kirora.io/docs/guides/getting-started/set-up-push#what-your-developer-needs-to-do).

## Who can receive push

A contact receives push, transactional push included, when they have:

- **an active device or browser** registered in the project, with notifications allowed;
- **push consent** in Kirora. Allowing notifications on a phone isn't consent to marketing, and email consent doesn't cover push. See [Consent, per channel](https://kirora.io/docs/guides/contacts/consent-and-unsubscribes#consent-per-channel).

A contact's **Devices** tab lists where push would reach them: each device's app, environment, **Permission** (**Allowed** or **Blocked**), **Status** and when it was last seen. Devices are registered by your app or website, never from the dashboard.

You can record push consent on a contact's profile (**This person agreed to receive push notifications**), when you import contacts (**Everyone in this file agreed to push notifications**), or through the API.

## Which platforms show what

| Feature | iOS app | Android app | Website |
| --- | --- | --- | --- |
| Title and message | Yes | Yes | Yes |
| Image | With your app's notification service extension | Yes | Yes |
| Icon | The app's icon | The app's notification icon | Yes |
| Buttons | Only when your app supports them | Only when your app supports them | Yes |
| Sound | Yes | Set by the app's notification channel | — |
| Badge number | Yes | — | — |

See [Create a push notification](https://kirora.io/docs/guides/messaging/push/create-a-push-notification) for each field.

## Next steps

- [Set up push](https://kirora.io/docs/guides/getting-started/set-up-push)
- [Send push from campaigns, journeys and your app](https://kirora.io/docs/guides/messaging/push/send-push)