Nour Articles · 6 min read

From message to story — how Nour works

Let's follow a real message from the moment a citizen sends it to the page, until it lands as a ready story on an editor's desk. The whole journey takes seconds — through five deliberate stations.

Station 1 — Reception & archiving The message arrives via Meta's official webhooks (Facebook / Instagram / WhatsApp). First things first: duplicate detection (so the same report sent twice doesn't count twice), linking the message to its source and conversation, and downloading any photos or video into a local archive — because Meta's media links expire within hours.
Station 2 — Triage This is where the message's fate is decided. A fast, zero-AI filter catches the obvious cases first: emoji-only? a short greeting? a story reply or reaction? — all marked "not important" instantly. Whatever passes goes to Gemini for classification: news, a reply to an existing story, or general chatter. The result shows as a badge on the message:

NewsNews + videoNews + photoNot important

Station 3 — Analysis & enrichment Reports only (not chatter) continue: topic classification (politics / incidents / economy…), priority scoring (urgent / important / normal), and location extraction — the governorate plus details like the district or street — straight from the report's text. Urgent reports trigger an instant alert in the UI.
Station 4 — Attribution & intake The attribution agent gives the report a confidence score and lists its gaps: a clear source? time? place? visual evidence? an eyewitness? It also scans the last 24 hours of reports for corroboration. If details are missing, the intake agent prepares a polite question for the source (always leading with "do you have a photo or video?") — 3 questions max, then a mandatory handoff to a journalist.
Station 5 — The human decision The journalist finds the report classified, scored, and in context. One click turns it into a story: Gemini drafts an official headline, a social headline and a summary — all editable. Anything the system isn't confident about waits in the review queue for approval, rejection, or a custom reply.

Why this order matters

Each station protects the next. Triage prevents wasting analysis on noise. Attribution prevents raw reports reaching journalists. Intake prevents a real report dying for lack of detail. The result: the journalist's time is spent entirely on the final station — the decision.