decentraland / decentraland/godot-explorer

Liveops Backoffice - Push Notifications: Compose, audience upload and schedule a push campaign

Open
#2,841 0 comments 0 reactions 1 assignee Claimed by @leanmendoza View on GitHub
enhancement metrics mobile push-notifications
Dominant language
Rust
Stars
18
Forks
19
Avg merge
4d 2h
Merged PRs (30d)
43

Description

## **⚠️ Problem:**
PM cannot send a notification without an engineer. Every event push, drop announcement or comeback campaign needs a code change, so none get sent. Blocks the Retention and Playtime work on #2585 that depends on reaching lapsed players on a schedule.

## **🏁 Scope:**
Internal tool: compose title + body + deeplink, attach a .csv of wallet_ids as the audience, schedule or fire, read the result. Sends through #2838. Rule-based audience builder, per-locale copy and A/B variants are out — .csv only.

## **📝 Deliverables:**
- [ ] Compose form — title, body, deeplink, `campaign_id`
- [ ] Audience via .csv upload of wallet_ids; row count + invalid-row report before send
- [ ] Schedule at a datetime, or send now
- [ ] Test send to a named wallet list before production fire
- [ ] iOS + Android render preview
- [ ] Campaign list with status — scheduled, sending, sent, cancelled
- [ ] Cancel a scheduled or in-flight campaign
- [ ] Access restricted to the PM/liveops role
- [ ] Per-campaign result — attempted, delivered, opened; opens sourced from #2837

## Metrics
Rolls up to #2585. Own signal: PM fires a production campaign with no engineer in the loop — binary, measured on the first campaign after ship.

## Dependency
Blocked by #2838 — send API, scheduler and kill switch live there; this issue is the UI on top of it.

## **🔗 References:**
- [#2664](https://github.com/decentraland/godot-explorer/issues/2664) — PRD backoffice section; roles, approval and kill-switch requirements originate there
- [#1913](https://github.com/decentraland/godot-explorer/issues/1913) — a bad deeplink shipped to every Day-1 user; why test send and preview are deliverables, not nice-to-haves
- [#2477](https://github.com/decentraland/godot-explorer/issues/2477) — existing Segment path the per-campaign result panel reads from

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.