# Push & in-app messaging that shows up at the right moment

> Product · Messaging

Native push for urgency. In-app for context. One editor, one SDK, every platform — wired to the same profiles and journeys as the rest of Tappd.

Canonical URL: https://tappd.io/product/push-in-app

## The problem

Most teams still bolt notifications onto a separate vendor. Copy lives in one tool, audiences in another, and nobody can explain why a user got three pushes and zero in-app help when they finally opened the app. Delivery looks fine in a dashboard — retention does not.

## How Tappd helps

Tappd treats push and in-app as two surfaces on the same conversation. The same event that starts a journey can send a lock-screen nudge, then stage an in-app card the next time they open — with deep links, variables, and approvals before anything ships.

## At a glance

- **5** — Platforms from one SDK
- **<200KB** — Typical client footprint
- **Real-time** — Event-triggered delivery

## Capabilities

### One message model, two surfaces

Compose once with shared variables and deep links. Choose push, in-app, or both as journey steps — without duplicating audiences in a second product.

### Behavior before calendar

Fire from segment entry, custom events, or journey branches. Stop relying on overnight batches that arrive after intent has cooled.

### Brand controls that don’t slow shipping

Templates, preview on device, and optional approval gates keep growth moving while brand stays in the loop on sensitive steps.

### Delivery you can debug

See sends, opens, failures, and quiet hours in the same place you manage the journey — so “it didn’t send” is a five-minute answer, not a ticket.

### Cross-platform without five codebases

iOS, Android, React Native, Flutter, and Web share the same SDK contract for events, push tokens, and in-app presentation.

### Safe by default

Frequency caps, quiet hours, and journey-level limits keep urgency from turning into spam — especially on win-back and cart flows.

## Example: first-session activation

A signup completes profile setup but never runs their first key action. You want a push if they leave, and an in-app nudge if they come back the same day.

### 1. Trigger on the gap

Segment: signed up in last 48h, profile complete, first_action = false. Journey starts on segment entry.

### 2. Push while they’re away

Wait 2 hours. If still incomplete, send a push with a deep link to the first-action screen.

### 3. In-app when they return

On next app open, show a short in-app card with the same CTA — no second campaign to maintain.

### 4. Exit on success

When first_action fires, exit the journey and suppress further nudges automatically.

## Who it’s for

- Growth and lifecycle teams who own retention outcomes
- Product teams shipping activation without another messaging silo
- Mobile engineers who want one SDK, not a notification frankenstein

## FAQ

### Do I need a separate push provider?

No. Tappd handles push and in-app through the SDK. You still use APNs / FCM under the hood — Tappd owns composition, targeting, and journey orchestration.

### Can marketing edit copy without a release?

Yes. Messages and journey steps are managed in the dashboard. Engineers install the SDK once; growth owns iteration.

### Is email included?

Email is in beta / coming soon. Push and in-app are generally available today, with webhooks for the rest of your stack.

## Related

- [Journey builder](https://tappd.io/product/journeys)
- [Profiles & segments](https://tappd.io/product/profiles-segments)
- [Onboarding solution](https://tappd.io/solutions/onboarding)

---

[Get started](https://tappd.io/) · [Contact sales](https://tappd.io/sales) · [Docs](https://docs.tappd.io)