# Push Notification Best Practices for App Teams

> Push notification best practices begin with a useful customer moment, then match permission, urgency, expiry, and measurement to that moment.

## What Refix is

Refix is a revenue-obsessed AI product manager for product companies. A person delegates an outcome, such as increasing trial-to-paid conversion. Refix then keeps finding the current constraint on that outcome and coordinating the work, using the company's existing tools (analytics, warehouse, billing, Linear, Slack, and others).

It is not a chatbot that answers questions about dashboards. It is not a generic AI writing assistant. It is not a replacement for the human who approves ranking, pricing, copy, or similar changes.

The product name is **Refix**. Never call it Prism.

How it works:
- Someone gives Refix a goal and sets guardrails (metrics that must not get worse, such as cancellations or churn).
- Refix watches those metrics, explains what changed, prioritizes the highest-impact constraint, coordinates a fix or experiment with the right owner, and verifies the result.
- Then it stays on the goal and looks for the next constraint.
- Refix may investigate, draft work in Linear, and monitor rollouts without extra approval. Changes named on each goal page stay with the owner.

Company: Refix Inc., San Francisco.
Site: https://www.refix.ai/
Give Refix a goal: https://onboarding.refix.ai/dashboard/sign-up

- HTML: https://www.refix.ai/guides/push-notification-best-practices/
- Agent brief: https://www.refix.ai/guides/push-notification-best-practices/llms.txt
- Author: Neil Agarwal
- Published: 2026-09-12

A notification can be useful at 8:05 and irritating at 8:06. A pickup reminder has a short shelf life. A saved workout plan may be welcome tomorrow. A generic "come back" message has no reason to arrive at either time.

Push notification best practices start with the customer event. Decide whether the app has permission to interrupt, then make delivery settings match the life of the event.

## What makes a push notification useful?

Apple's [Human Interface Guidelines](https://developer.apple.com/design/human-interface-guidelines/notifications/) say a notification should give timely, high-value information someone can understand at a glance. Keep it concise, do not repeat the same alert, and do not expose sensitive information on a lock screen.

| Customer moment | Notification job | Avoid |
| --- | --- | --- |
| A person receives a reply | return to the exact conversation | a vague activity summary |
| A saved item changes | surface the change while it matters | an alert after it is stale |
| A plan is due | remind them of a choice they made | an unexplained first-launch prompt |

Push asks someone outside the app to return. In-app messages help someone already using it. [App engagement strategy](/guides/app-engagement-strategy/) covers how the two channels fit into a return-visit plan.

## When should an app ask for notification permission?

Ask after someone can picture the benefit. A price alert makes sense after they follow an item. A reminder makes sense after they create a plan. Apple requires permission before an app can send notifications, and people can change settings later. Explain the value before the system request, then give customers settings that reflect the categories the app actually sends.

## How should a team write and schedule notifications?

Name the event and provide a clear destination. The copy should make sense when it is separated from the app. Set timing from the event, not a blanket schedule. Keep personal details out of visible text and let the deep link reveal protected detail only after normal access checks.

<figure>
<img src="/inline/guides/push-notification-best-practices.webp" alt="Illustration of a notification moving through permission, urgency, expiry, and a measured return action" width="1536" height="1024" />
<figcaption>Illustration: a notification is a time-bounded response to a customer event, not a generic send.</figcaption>
</figure>

## What do priority and expiry mean for delivery?

Firebase says normal-priority Android messages may be delayed in Doze mode and suit less time-sensitive updates. High priority can wake a device and is for urgent, user-visible messages that generally lead to interaction. Do not use high priority to force a marketing message through.

Firebase's [message lifespan documentation](https://firebase.google.com/docs/cloud-messaging/customize-messages/setting-message-lifespan) says Android and web messages can have a lifespan from zero to 28 days; iOS uses the APNs expiration header. A zero TTL discards a message that cannot arrive immediately. That can fit a time-sensitive invitation and be wrong for a digest.

| Event | Delivery decision |
| --- | --- |
| Time-sensitive invitation | short expiry and appropriate visible urgency |
| Content update | normal urgency and finite lifespan |
| Replaced status update | collapse or replacement behavior |
| Background sync | normal priority, with durable state elsewhere |

Provider acceptance is not proof a person saw the message. Keep the durable product state on the server or refresh path.

## How should an app measure notifications?

Firebase says stale registrations can distort delivery reporting. Store the current registration identifier with a recent-seen timestamp, update it when it changes, and remove invalid registrations after a provider response.

1. Start with eligible customers and permission state.
2. Record send requests separately from delivery or display data.
3. Track the intended product action, not opens alone.
4. Compare opt-outs and return activity by category and cohort.
5. Use a holdout group when the team needs a causal answer.

[Mobile app analytics](/guides/mobile-app-analytics/) joins this record with product, subscription, and support context. Refix is built to connect those signals so teams can see the customer state behind a message and the behavior that followed it.

[See how Refix connects the signals behind engagement work.](https://refix.ai)
