Skip to content
DailyOratory

Moderation workflow

Keep prayer public, reverent, and safe.

  1. 1New rows enter the Submissions sheet with moderationStatus set to pending-review.
  2. 2A moderator removes personal details, checks emergency language, and chooses a visibility level.
  3. 3Only rows marked approved and public or anonymous-public are exported to the public wall.
  4. 4Prayer team only and hidden summary rows remain private and should not be included in static public builds.
  5. 5Reported rows move back to needs-attention until a moderator resolves or archives them.

Moderation states

Review before publication.

Pending review

New submission waiting for human moderation.

Approved

Public-safe content allowed for display.

Needs attention

Requires pastoral, privacy, or safety review.

Hidden

Not displayed publicly, but retained for moderation context.

Archived

Closed or outdated and removed from active review.

Reported

Flagged by a user and returned to moderation.

Supabase-ready schema

Prayer intention fields

These fields can be used for a future Supabase table or a Google Sheets export. Public pages should query only approved rows marked public or anonymous public.

ColumnTypeNotes
iduuid primary keyGenerated by Supabase or import script.
titletext not nullPublic-safe title after moderation.
slugtext unique not nullPublic detail route for approved intentions.
descriptiontext not nullPublic-safe moderated summary.
intention_typetext not nullHealing, family, thanksgiving, urgent, and similar categories.
intention_visibilitytext not nullpublic, anonymous-public, prayer-team-only, or hidden-summary.
moderation_statustext not nullpending-review, approved, needs-attention, hidden, archived, or reported.
requester_display_nametextMay be Anonymous after moderation.
requester_contact_encryptedtextOptional admin-only contact, never exposed publicly.
excerpttextShort public summary.
prayer_prompttextOriginal short prayer prompt.
prayed_countinteger default 0Server count when a backend is added.
report_countinteger default 0Moderator signal only.
is_urgentboolean default falseUrgent intentions still require moderation.
is_thanksgivingboolean default falseUsed for thanksgiving view.
submitted_attimestamptz not nullOriginal submission time.
approved_attimestamptzSet by moderator.
created_attimestamptz default now()Database creation time.
updated_attimestamptz default now()Updated by moderation workflow.