00 · Mission brief 00 · Mission
Mission brief/ Now live/Arabic + English

Mission control for
in-app content.

ContentFlow puts everything your app says to users in one control deck: blocks, campaigns, journeys, and experiments, live in production with no app release. Scroll to fly the tour, or jump straight to a stop:

Open ContentFlow

Design Partner Program · now onboarding

Dynamic Block anatomy

01 · Dynamic Block · anatomy 01 · Block
assembled block
Get 5% back on groceries this month.
Check eligibilitydeeplink://offers/cb5
Audience · Salaried · 41,209
Go live · Fri 09:00 AST
Locales · EN · AR
Variants · A / B
#block_media · swap remotely
#block_title · editable · try typing
#block_subtitle · per locale
#block_cta · deep link + tracking
drag any piece · it springs back
336 × 318

Rendered in your app

02 · Rendered · in your app 02 · Device
09:415G · 100%
Good morning, Noura
Total balanceSAR 42,318.50
SendPayTop upCards
● LIVE
Cashback is backGet 5% back on groceries this month.Check eligibility
Alnahda BooksSAR 214.00
City RidesSAR 36.50

They chose mobile. You chose the message.

Edit the draft, hit publish, and watch it land in the phone as a new discovery card. No app-store release, no review-cycle wait. Every change is still logged and one-click reversible.

Draft
Release required · None Time to live · Seconds Rollback · One click
same block · mobile placement

Campaign spec sheet

03 · Campaign · spec sheet 03 · Campaign

Campaigns

2 live

Toggle a campaign on or off, watch the reach funnel recompute live. Every one reuses the same Dynamic Block.

Off campaigns are drafts, click to add them to the flow.
Reach funnel across 2 campaigns
Targeted129k
Delivered110k
Viewed80k
Clicked36k
Converted7.3k
Click → convert6.6%
one block · many campaigns
reach recomputes live

Journey map

04 · Journey · drawn on the canvas 04 · Journey
TriggerSignup
New user created
ConditionKYC done
Within 48 hours
ConditionStalled
No KYC after 48h
MessageNudge
Cashback is back
GoalActive
First transaction ✓
Spare · MessageOffer push
drag me into the flow
Spare · ConditionBalance > 1k
drag me into the flow
Spare · WaitWait 24h
drag me into the flow
waits for real behavior
steps reuse the same block

Localization: one publish fans out to every language

05 · Localization · one publish, every language 05 · Localization
Source · EN
Good morning, Noura
Cashback is backGet 5% back on groceries this month.Check eligibility
AR · pushed ✓
صباح الخير، نورة
الكاش باك رجعاسترجع ٥٪ من مشترياتك هذا الشهر.تحقق من الأهلية
JA · pushed ✓
おはよう、ノーラ
キャッシュバック復活今月は食料品で5%還元。対象か確認
UR · pushed ✓
صبح بخیر، نورہ
کیش بیک واپس آ گیاگروسری پر ٥٪ واپس پائیں۔اہلیت چیک کریں
the source block · English
one publish · every locale gets its own phone

Audience: build a segment, watch reach recalculate live

06 · Audience · who sees it 06 · Audience

Audience segment builder

Payroll active · 60d Balance ≥ SAR 5,000 Locale · AR / EN Age 25–45 Exclude · opted out + Add rule

Users matching all rules, so the segment recomputes itself as balances, ages, and payroll status change. No re-export, no stale list.

Saved as Salaried · payroll · reusable across campaigns

Live reach recalculating

41,209of 210,400 total
19.6% of your base~4,800 join / churn weekly
and 41,204 more in this segment

Inside the segment who they are, where you can reach them

Reachable on

In-app
100%
Push
88%
SMS
72%
WhatsApp
41%

Segment mix

LocaleAR · EN
AR 61%EN 39%
RelationshipSalaried · SME
Salaried 74%SME 26%