📊 Operations Dashboard
Your at-a-glance command center for WWJK 102.9FM. Review live station stats, pending items requiring attention, and jump directly to any workflow from Quick Actions.
- Check the stat cards at the top — red or elevated numbers mean action is needed.
- Use Quick Actions to jump to the most common tasks without browsing the sidebar.
- Review Recent Pending Notices — any death notice waiting more than 24 hours needs follow-up.
- Return here any time to get your bearings — this panel always loads first.
⚠️ Dashboard numbers refresh on load. If a stat looks wrong, reload the page before taking action.
👤 All Staff — Quick Actions available based on your assigned role.
Pending Notices
-
Awaiting review
Live Memorials
-
On memorial wall
1029 Members
-
Active supporters
Active Sponsors
-
Banner advertisers
Monthly Revenue
-
Membership est.
Checking status…
Loading…
Review Notices
Approve & publish
Add Sponsor
New underwriter
Add Member
1029 Movement
Station Config
Stream URL, alerts
Page Heroes
Update site sliders
View Live Site
wwjk1029fm.com
Loading…
🕊️ Death Notices
Review, verify payment, and publish death notices submitted by families, funeral homes, and staff. Notices stay Pending until payment is confirmed and you manually publish them.
- Check the Pending tab first — these require action before they can go live.
- Confirm payment was received (Zeffy, PayPal, Zelle, or CashApp) before approving.
- Review the Radio / On-Air Text field — this is what the DJ will read on-air (max 150 chars).
- Click Publish to move to the live Memorial Wall. Rejected notices stay in the system for records.
⚠️ Never publish a notice without payment verification. Check the Payment Verification checkbox and date before approving. When in doubt, call the family contact.
👤 Ministry Staff or Admin — escalate payment disputes to Bishop Oliver.
🕊️ Add Death Notice
⚠️ Payment verification required before publishing
0 / 500 characters
0 / 150 characters
Best: Portrait · JPG/WebP · Max 5MB
Max 2 min · Max 200MB · MP4 H.264 recommended · 720p minimum
Tribute slideshows or family memorial clips
Tribute slideshows or family memorial clips
Notice will stay in Pending until payment is verified and you manually publish it.
Loading...
📻 Broadcast & Show Submissions
Review applications from DJs, ministers, and community organizations who want to host a show or submit broadcast content. Nothing airs until approved here.
- Read the full program description and check the contact information before acting.
- Approve to allow the show into the schedule — the applicant will be notified.
- Reject with a clear reason if the content does not fit WWJK's format or mission.
- Use search and type filter to find specific applicants or program types quickly.
⚠️ Teaching and Ministry programs must align with the station's faith and community mission. When uncertain, consult Bishop Oliver before approving.
👤 Programming Staff — final approval requires Program Director or Admin.
📻 Add Broadcast / Show
0 / 800 characters
Loading...
🤝 Volunteer & Staff Applications
Review applications from people who want to volunteer or join WWJK's team. Staff applicants may be considered for on-air or production roles. Volunteers support events, outreach, and operations.
- Review the Pending tab — new applications need a response within 3 business days.
- Read the applicant's background and role preference carefully before deciding.
- Approve promising candidates — they will receive a follow-up email automatically.
- Reject applicants who are not a fit — always include a respectful reason if possible.
⚠️ On-air (Staff) applicants require Bishop Oliver's final sign-off before confirmation. Volunteer applicants can be approved by any Admin or Community coordinator.
👤 Admin or Community Coordinator — on-air roles: Bishop Oliver approval required.
Loading...
Reviewing Prayer Requests
Community members submit prayer requests from the public website.
Approve to publish on the Prayer Wall.
Reject with a reason for inappropriate or incomplete requests.
Never publish full names alongside sensitive medical information without consent.
🙏 Prayer Requests
Review and publish prayer requests submitted by the community. Each request is held privately until a moderator approves it.
- Read the full request before acting.
- Approve to publish on the public Prayer Wall.
- Reject if the content is inappropriate or contains sensitive health information.
- Use search to find specific names or topics.
⚠️ Never publish personally identifying health information without explicit consent from the submitter.
👤 Moderator or Admin — volunteers should escalate sensitive requests to Bishop Oliver.
🙏 Add Prayer Request
0 / 1,000 characters
Loading...
🎉 Celebrations
Review and publish community celebrations — birthdays, anniversaries, graduations, new babies, and life milestones. Approved celebrations appear on the public Celebrations page and may be read on-air.
- Read the celebration message — check for appropriate content before approving.
- Approve to publish on the public Celebrations page immediately.
- Reject submissions that are unclear, offensive, or missing key information.
- Add a new celebration directly using the + New Celebration button for staff-submitted items.
⚠️ If a photo is included, ensure it is family-appropriate before approving. Celebrations with sensitive health information (e.g., recovery) should only be published with the submitter's clear intent to make it public.
👤 Ministry Staff or Admin — volunteers can approve standard celebrations.
🎉 Add Celebration
0 / 600 characters
JPG/WebP · Max 5MB
Max 2 min · Max 200MB · MP4 H.264 · 720p minimum
1080×1920 vertical preferred for mobile
1080×1920 vertical preferred for mobile
Loading...
💌 Song Dedications
Review song dedications submitted by listeners. Approved dedications appear on the public Dedications page and give the on-air DJ a script to read. The song request is a suggestion — DJs are not required to play it exactly.
- Read the dedication message — check for appropriate language and content.
- Approve to post on the Dedications page and make it available for on-air use.
- Reject submissions that are unclear, contain personal conflicts, or are not family-appropriate.
- Use + New Dedication to post a staff-created shoutout or on-air listener call-in request.
⚠️ Treat "In Memory Of" dedications with extra care — they may come close to unpaid death notices. If a dedication is essentially an obituary, redirect to the Death Notices panel.
👤 Ministry Staff or On-Air Coordinator — any volunteer can approve standard dedications.
💌 Add Song Dedication
0 / 600 characters
Loading...
📅 Events
Manage the community events calendar. Events submitted by the public or partners arrive as Pending. Staff can add events directly. Approved events appear on the public events page and are promoted on-air.
- Review Pending events — verify dates, location, and organizer contact before approving.
- Approve to publish the event on the public calendar immediately.
- Use + New Event to add a station event, partner event, or staff-submitted listing.
- Use the Calendar view (📅) to see the month at a glance and spot scheduling conflicts.
⚠️ Featured events ($10.29 fee) should be verified as paid before marking as featured. Check the event type — Gospel Concert and Ministry events take priority for on-air promotion.
👤 Community Coordinator or Admin — events can be approved by any authorized staff member.
📅 Add New Event
0 / 1,200 characters
Best: 1080×1080px square JPG or WebP · Max 5MB
Used as thumbnail on events page and in social shares
Used as thumbnail on events page and in social shares
Max 60 seconds · Max 200MB
Best format: MP4 (H.264) · 1080×1920 vertical or 1920×1080 horizontal
Short promos, countdown clips, or highlight reels work best
Best format: MP4 (H.264) · 1080×1920 vertical or 1920×1080 horizontal
Short promos, countdown clips, or highlight reels work best
Loading...
🎵 Artist EPK Submissions
Review Electronic Press Kit (EPK) submissions from gospel and inspirational artists who want airplay on WWJK. Approved artists are added to the Music Library and Artist Cards page. Use the Suggestions tab to see listener-nominated artists.
- Listen to the submitted music sample before making any decision.
- Approve artists whose music fits WWJK's gospel and inspirational format.
- Reject submissions that do not fit the format — include a reason when possible.
- Check Suggestions for listener-nominated artists who have not submitted formally yet.
⚠️ Approval adds the artist to the Music Library and public Artist page. Confirm the music sample is appropriate for all audiences including children before approving.
👤 Programming or Music Director — final approval requires the Music Director or Program Director.
Loading...
🏠 Homepage Builder
Control the full homepage layout — hero slideshow scenes, the memorial strip ticker at the top, and all page sections. Changes go live immediately. Up to 7 hero scenes can be active at once.
- Use Hero Scenes to add, edit, reorder, or remove slides in the main homepage carousel.
- Use Memorial Strip to control whether the scrolling death notices ticker is visible and how fast it scrolls.
- Use Sections to reorder, toggle, or add custom content blocks on the homepage.
- Click 👁 Preview Homepage after changes to verify the result before moving on.
⚠️ Hero images should be 1920×1080px for desktop or 1080×1920px for vertical/mobile. Low-resolution images will appear blurry. Always preview before finalizing.
👤 Admin or Programming Staff — major layout changes should be reviewed by Bishop Oliver.
Homepage Builder
Full Homepage Control
Hero scenes, memorial strip, and all page sections
Up to 7 scenes. Carousel auto-advances. Drag arrows to reorder.
Loading scenes...
🎬 Page Hero Sliders
Manage the multimedia hero sliders that appear at the top of interior pages across the website — Events, Community, Programming, and more. Up to 5 slides per page. Supports images and video.
- Click + Add Scene to create a new slide for any page.
- Select the target page from the Page dropdown when creating or editing a scene.
- Upload a 1920×1080px image (JPG/WebP) or an MP4 video for video heroes.
- Reorder slides using the arrow controls — the first scene is the default displayed slide.
⚠️ Images should be 1920×1080px (16:9) for best results. Video heroes should be MP4 H.264, max 30 seconds, no audio (auto-plays muted). Max file size 200MB for video, 5MB for images.
👤 Admin or Programming Staff — changes are live immediately after saving.
Manage the multimedia hero sliders across the entire website. Up to 5 slides per page.
Loading...
🎤 Artist Cards
Control which approved artists are displayed on the public Artists page and what information appears on each card — photo, bio, music sample, vote count, and social links. Use Global Defaults to set the baseline for all cards at once.
- Set Global Card Defaults first — these apply to all artists unless overridden individually.
- Search or sort to find specific artists quickly.
- Toggle individual card fields on/off per artist to customize their public profile.
- Use Featured sort to prioritize which artists appear at the top of the public page.
⚠️ Only artists with Approved EPK status appear here. If an artist is missing, check the EPK panel first. Changes to card display are live immediately.
👤 Programming or Music Director — card display edits can be made by any authorized staff.
Manage which approved artists appear on the public Artists page and control what information is displayed on each card.
Global Card Defaults
Loading...
Loading...
🎼 Music Library
Manage the station's full music catalog — artists, songs, rotation data, and listener votes. Syncs with RadioDJ via CSV import. Use the Intelligence tab to see AI-powered insights about your music rotation and listener preferences.
- Use Artists tab to browse or search the artist roster and manage individual profiles.
- Use Songs tab to view and manage individual tracks, rotation category, and metadata.
- Use 📥 Import RadioDJ CSV to sync your RadioDJ playlist data into the system.
- Check Suggestions for listener-submitted song requests and new artist nominations.
⚠️ When importing from RadioDJ CSV, use the Preview step to verify the data before confirming. The import will update existing records by ID and add new ones — it will not delete anything.
👤 Music Director or Programming — RadioDJ imports require Programming access or higher.
🎼 Music Library
📢 Bulletin Board
Post and moderate community announcements and news stories. The Bulletin Board is the public-facing community hub for local news, church announcements, and neighborhood updates. Pending posts from public submissions arrive here for review.
- Review Pending posts — check for accuracy, appropriate content, and complete information.
- Approve to publish the post on the public community page.
- Use + New Post to create a staff-written announcement or station news item.
- Use the Type filter to separate Announcements from News Stories.
⚠️ Never approve posts containing unverified claims, political endorsements, or content that could embarrass the station. When in doubt, ask a supervisor before approving.
👤 Community Coordinator or Admin — volunteers can flag posts but should not approve without review.
📢 Add Bulletin Post
0 / 1,500 characters
Loading...
🏢 Business Directory
Review and manage local business listings submitted to the WWJK community directory. Approved listings appear on the public Directory page. Businesses can be partners, individuals, or community organizations.
- Review Pending listings — verify the business name, category, and contact info are real and complete.
- Approve to publish the listing on the public Directory page.
- Reject listings with incomplete info, spam content, or businesses outside the station's service area.
- Check partner status — Partner-tier businesses get a highlighted badge on the Directory page.
⚠️ Do not approve businesses that offer services conflicting with the station's values or mission (e.g., gambling, alcohol-focused businesses). When unsure, escalate to Bishop Oliver.
👤 Community Coordinator or Admin — standard approvals can be handled by authorized volunteers.
📋 Add Directory Listing
0 / 800 characters
PNG/WebP/JPG · Max 5MB · Square or landscape · Shown next to listing name
Check only after payment is confirmed. Featured listings appear pinned at the top of their category with a gold badge.
Loading...
💼 Job Listings
Review and manage employment listings submitted by local businesses and organizations. Approved jobs appear on the public Jobs page. WWJK serves as a free job board for the Orangeburg community.
- Review Pending listings — check that the job is real, local, and has valid contact information.
- Approve to publish the listing on the public Jobs page.
- Reject incomplete or spam listings — note the reason for records.
- Use + New Job to post a listing for the station itself or a community partner.
⚠️ Do not approve listings that appear fraudulent or require upfront payment from applicants. Pyramid schemes and multi-level marketing listings should always be rejected.
👤 Community Coordinator or Admin — any authorized staff member can approve job listings.
💼 Add Job Listing
0 / 2,000 characters
Loading...
🤝 Partner Inquiries
Review partnership inquiries from churches, ministries, nonprofits, and businesses who want to formally partner with WWJK. Approved partners receive a listing on the public Partners page and may receive promotional benefits.
- Review each inquiry — read the organization's description and partnership goals.
- Approve organizations that align with WWJK's community and faith mission.
- Reject or hold inquiries that are unclear, commercial-only, or misaligned with the station's values.
- After approving, follow up with the partner contact to discuss specific terms and benefits.
⚠️ Formal partnership agreements (beyond directory listing) require Bishop Oliver's final approval. Do not make any financial or sponsorship commitments without his sign-off.
👤 Admin or Community Coordinator — financial partnership terms: Bishop Oliver only.
🤝 Community Partners — Relationship-based partnerships only: churches, ministries, nonprofits, funeral homes, community orgs. Not for advertising. Businesses paying for ad placements → use Underwriters (FCC-regulated) or Sponsors instead.
📋 Relationship Levels: Strategic Partner — deep, ongoing co-mission (events, programming, cross-promotion) · Ministry Partner — faith-based orgs with active spiritual collaboration · Community Partner — local orgs with shared community goals · Event Partner — single-event or seasonal basis only.
🤝 Add Community Partner
0 / 800 characters
Loading...
✉️ Newsletter Subscribers
View and manage all email newsletter subscribers who have signed up on the WWJK website. This is a read-only list used for sending community digest newsletters. Export the list for use in email platforms like Mailchimp or Constant Contact.
- Search by email to check if a specific person is subscribed.
- Click ⬇️ Export CSV to download the full subscriber list for email campaigns.
- Use the Digest Builder panel to send an automated newsletter digest to this list.
- If someone requests removal, find their email and delete the record to honor the unsubscribe.
⚠️ This list is private. Never share subscriber emails publicly or with third parties. Honor all unsubscribe requests immediately — failure to do so may violate CAN-SPAM regulations.
👤 Admin only — subscriber data is sensitive and access should be limited.
All newsletter subscribers.
Loading...
📥 All Submissions
Unified inbox showing all public form submissions across the website — dedications, celebrations, prayer requests, EPK/music submissions, contact forms, and shoutouts. Use this panel to triage new submissions and route them to the correct workflow.
- Filter by type to focus on one category at a time (e.g., show only Contact forms).
- Switch to Reviewed status once you have handled a submission — this keeps the inbox clean.
- Route submissions to their specific panel (Prayers → Prayer Requests, Music → EPK) for full approval workflow.
- Use this panel as a daily check-in — anything "New" needs to be triaged before end of day.
⚠️ This panel is a triage view only. Approvals, rejections, and publishing must happen in the specific panel for each content type. Do not delete submissions without first routing them.
👤 Admin or assigned coordinator — daily inbox triage is a shared staff responsibility.
Loading...
📡 Underwriters (FCC Compliant Advertising)
Manage WWJK's underwriting accounts — the FCC-compliant form of advertising for nonprofit LPFM stations. Underwriters receive on-air mentions and banner placements in exchange for financial support. All on-air messages must meet FCC rules — no promotional language, no calls to action, no price comparisons.
- Click + Add Underwriter to create a new underwriting account.
- Write the FCC Script field carefully — this is the approved on-air text. Keep it factual: name, location, service, website only.
- Set the Tier (Anchor $1,029 · Cornerstone $500 · Community $250 · Friend $102.90) and billing cycle.
- Use the Visibility toggle to activate or pause banner placements without deleting the account.
⚠️ FCC LPFM Rule: Underwriting messages CANNOT include price comparisons, calls to action ("Call us today!"), or qualitative claims ("best in town"). Violations can jeopardize the station license. When in doubt, keep the script factual — name, location, service, website.
👤 Admin only — FCC scripts must be reviewed by Bishop Oliver before the account goes live.
📡 FCC LPFM Underwriting Rules — On-air underwriting messages for nonprofits must be neutral identifications only. Allowed: business name, location, product/service description, website, phone. Not allowed: price comparisons ("lowest prices"), calls to action ("call us today"), qualitative claims ("best in town"), or promotional language. Violation can jeopardize the station license. When in doubt, keep it factual. Use the FCC Script field in each underwriter record to store the approved on-air text.
Tiers: Anchor $1,029/period · Cornerstone $500/period · Community $250/period · Friend $102.90/period — Billing cycle can be monthly, quarterly, annual, or one-time event sponsor.
Community Underwriters
| Business | Tier | Status | Visibility | Dates | |
|---|---|---|---|---|---|
Loading... | |||||
Add Underwriter
📋 Underwriting vs Sponsorship — Underwriting is FCC-regulated advertising. On-air messages CANNOT include price comparisons, calls to action ("call us today"), or superlatives ("best in town"). They CAN identify the business, location, and a neutral description of services. Use the FCC Script field to store the exact approved on-air text.
0 / 390 chars (~25 sec on-air)
PNG/WebP transparent · Max 5MB · Used on underwriting wall
Storefront or team · JPG/WebP · Max 5MB
Leaderboard: 970×90px · Sidebar: 200×200–600px · Mid: 600×150px
Image/GIF/WebP or MP4 video (max 60 sec, loops silently · viewer can pop out to full view)
Image/GIF/WebP or MP4 video (max 60 sec, loops silently · viewer can pop out to full view)
Leaderboard 320×50 · Sidebar 300×250 · Mid 320×100 · Falls back to desktop if not uploaded
Select which pages and ad zones this underwriter appears in. Overrides zone config — only shows if the zone is enabled for that page.
🏷️ Legacy Sponsors
Manage commercial sponsors and their banner ad placements across the WWJK website. Unlike Underwriters (FCC-regulated), these are standard digital advertising relationships. Use the Placements matrix to assign banners to specific zones on specific pages.
- Click + Add Sponsor to create a new sponsor account with tier and date range.
- After saving, click the Placements button on a sponsor to open the banner placement matrix.
- Check the zones (Leaderboard, Sidebar, Mid-Content) for each page where the sponsor should appear.
- Save the placement matrix — banners go live immediately on the selected pages and zones.
⚠️ Sponsors are distinct from Underwriters. On-air mentions for sponsors must still follow FCC rules if WWJK is an LPFM. For digital-only placements, standard advertising rules apply. Confirm the banner creative is appropriate before activating.
👤 Admin — financial sponsor agreements require Bishop Oliver's approval.
Legacy Sponsors
| Business | Tier | Status | Dates | Placements | |
|---|---|---|---|---|---|
Loading... | |||||
🏠 House Ads (Fallback Banners)
House ads are WWJK's own promotional banners shown automatically in any ad zone that does not have a paying sponsor or underwriter assigned. They promote the 1029 Movement, station events, and station services. They are the "default filler" that keeps empty zones looking professional.
- Click + New House Ad to create a fallback banner for any zone.
- Select the Zone (Leaderboard, Sidebar, Mid-Content) and target Page — or set to All Pages for a sitewide fallback.
- Upload the banner image (JPG/WebP/GIF) or video (MP4, max 60 sec, loops silently).
- Set Priority — higher priority house ads display first when multiple are eligible for the same zone.
⚠️ Zone sizes: Leaderboard 970×90px desktop / 320×50px mobile · Sidebar 200–600px desktop / 300×250px mobile · Mid-Content 600×150px desktop / 320×100px mobile. Uploading the wrong size will result in a stretched or cropped banner.
👤 Admin or Programming Staff — house ad creative should reflect current station priorities.
🏠 House Ads — Fallback banners shown when no paying sponsor or underwriter is assigned to a zone on a given page. These are WWJK's own promotional content (1029 Movement, events, station promos). They fill empty slots automatically.
Zones: Leaderboard 970×90px desktop / 320×50px mobile · Sidebar-1/2/3 200×200–600px desktop / 300×250px mobile · Mid-Content 600×150px desktop / 320×100px mobile. Set page to All Pages for a sitewide fallback, or target a specific page.
Media: JPG/WebP/GIF (animated OK) or MP4 video (max 60 sec, loops silently, viewer can pop out to full screen on click).
In-House Ads (Fallback Banners)
| Title | Zone | Page | Priority | Active | |
|---|---|---|---|---|---|
Loading... | |||||
⚙️ Ad Zone Configuration
Enable or disable ad zones on a per-page basis. A disabled zone shows nothing — not even house ads. Use this to turn off advertising on sensitive pages (e.g., memorial or prayer pages) or to clean up pages that do not need banners.
- Each toggle represents one ad zone on one page — enabling it allows banners to show there.
- Disable zones on pages where advertising feels inappropriate (memorial wall, prayer wall, FCC page).
- Click Save Zone Config after making changes — nothing is saved until you click Save.
- After saving, visit the live page to confirm the zone behaves as expected.
⚠️ Disabling a zone removes ALL banners from that location — including paid sponsor placements. If a sponsor is actively running on a zone, do not disable it without notifying them first.
👤 Admin only — zone configuration affects paying sponsors and should be changed with care.
Enable or disable ad zones per page. Disabled zones show nothing, not even house ads.
Loading...
💛 1029 Movement Members
Manage the WWJK 1029 Movement — the station's founding member and donor community across 9 giving tiers. Zeffy donations are added automatically via webhook. Cash, check, Zelle, and CashApp gifts must be entered manually. Members with "Show Publicly" enabled appear on the Founding Wall.
- Check the tier summary at the top to see how many spots remain in each founding tier.
- Click + Add Member to manually record a cash, check, Zelle, or CashApp gift.
- Use the Tier, Status, and Wall filters to find specific members quickly.
- Toggle "On Wall" for a member to control whether their name appears on the public Founding Wall.
⚠️ Never add a member to the public Founding Wall without their consent. Zeffy donors consent during checkout — for manual entries, always confirm the donor wants to be listed publicly before enabling the Wall toggle.
👤 Admin only — member financial data is confidential. Export CSV only when needed for station records.
💛 1029 Movement — All 9 Giving Tiers
🏆 Legacy Founder
$25,000
One-time · 3 spots
— of 3 claimed
🏛️ Legacy Partner
$10,000
One-time · 6 spots
— of 6 claimed
🔨 Station Builder
$5,000
One-time · 12 spots
— of 12 claimed
🎙️ Founding Voice
$1,029
One-time · 24 spots
— of 24 claimed
🌟 Inspiration Partner
$514.50
One-time · 52 spots
— of 52 claimed
🤝 Faith Builder
$205.80
One-time · 129 spots
— of 129 claimed
💛 Community Supporter
$102.90
One-time · 515 spots
— of 515 claimed
⭐ Community Partner
$10.29/mo
Monthly recurring · 1,029 goal
— of 1,029 joined
💙 Movement Supporter
Any
One-time · Unlimited
— supporters
Monthly Revenue
$—
Total Members
—
Members added here appear on the 1029-movement.html Founding Wall when Show Publicly is on. Zeffy webhook auto-adds donors.
| Name | Tier | Amount | Joined | On Wall | Status | |
|---|---|---|---|---|---|---|
Loading... | ||||||
💰 Donations Log
A complete record of every donation received by the station, regardless of source or amount. Zeffy donations arrive automatically via webhook. Cash, Zelle, CashApp, and check gifts are entered manually. Use this panel to reconcile station finances and manage the donor recognition wall.
- Review the stat cards at the top for total count, total raised, and monthly recurring totals.
- Enter any offline gift (cash, check, Zelle) using the manual entry form so it is recorded.
- Use action buttons to resend confirmation emails, override donor tiers, or remove names from the wall.
- Filter by source, tier, or date range to find specific donation records.
⚠️ This log is the financial record of the station. Do not delete donation entries without authorization from Bishop Oliver. The donor wall uses consent flags from Zeffy — always confirm before adding a name manually.
👤 Admin only — financial records are confidential and should not be shared outside authorized staff.
💰 Donations Log — Every gift is recorded here regardless of amount or source. Zeffy donations arrive automatically via webhook. Cash, check, Zelle, and CashApp gifts can be entered manually. The donor wall is auto-approved based on the donor's Zeffy consent. Use the action buttons to resend emails, override tiers, or remove names from the wall.
Total Donations
-
Total Raised
-
Monthly Recurring
-
On Wall
-
| Donor | Tier | Amount | Type | Source | Wall | Date | Actions |
|---|---|---|---|---|---|---|---|
Loading... | |||||||
Welcome to the Intelligence Queue
This is where RSS feeds and news sources land after ingestion.
Filter by Tier 1 first — those are your highest-trust daily sources.
Use ☑ Select All → Delete to clear stale categories in bulk.
High copyright risk items must be summarized only — never published verbatim.
🧠 Intelligence Queue Workflow
Ingested content from RSS feeds and news sources lands here for editorial review. Nothing is published without approval.
- Filter by Tier 1 and review pending items first.
- Check the copyright risk badge — High risk requires manual summarization.
- Use ✨ Summarize to generate AI summary before approving.
- Approve to send to the published community feed, or route to Blog / Bulletin / Social.
- Use ☑ Select All → Delete to clear stale or irrelevant content in bulk.
⚠️ All content must preserve original_url and source attribution. Never publish AI-generated text as factual news without verification.
👤 Community Intelligence Editor · Admin can override any decision.
🧠 Intelligence Queue
Copyright reminder: Low risk = headlines + attribution OK. Medium risk = summarize only + link. High risk = manual review required before any publishing action.
📡 Content Sources — Intake Command Center
Master ingestion command center. Manage RSS, email, video, audio, event, press release, social, and internal sources. All content flows through Preview → Governance → Human Selection → Draft → Intelligence Queue. Nothing publishes automatically.
- Click a source family tab to view sources of that type.
- Click ▶ Preview on any source to fetch new items into the Preview queue.
- Review previewed items — check priority badges, rights risk, and duplicate flags.
- Select items and click Prepare Draft to route to the Intelligence Queue.
- Use the Rules tab to manage noise filters and governance rules.
⚠️ No source publishes directly. Every item requires human review. Priority items (severe weather, missing child, boil water) are flagged automatically but still require your approval.
👤 Admin or Community Intelligence Editor
📡 Content Sources
✨ AI Drafts
AI-summarized versions of approved community content, ready for editing and publishing. Each draft includes an AI-generated headline, summary, and broadcast scripts (30-sec, 60-sec, 2-min). You MUST review and edit the AI text before publishing — never publish AI content without human review.
- Read the AI-generated headline and summary carefully — check for accuracy, tone, and WWJK brand voice.
- Click Edit on a draft to revise the headline, summary, or broadcast scripts before publishing.
- After editing, click Save Draft to preserve your changes.
- Use Publish to push the approved, edited content to the blog, social queue, or on-air bulletin system.
⚠️ AI-generated content can contain errors, hallucinations, or inappropriate tone. Always verify facts against the original source before publishing. Never use AI text about specific people (deaths, health, legal matters) without careful manual review.
👤 Community Intelligence Editor or Admin — AI drafts must have a human review before any publish action.
✨ AI Drafts
Items here are approved community content items that have been AI-summarized and are ready for editing or publishing.
📨 Community Digest Builder
Generate and send the WWJK Community Digest — a curated newsletter roundup emailed to all subscribers. The AI assembles approved community content from the selected time period into a formatted digest. You review and edit the digest before it sends.
- Select a date and range (Today or Past 7 Days) then click Generate Draft to create a new digest.
- Review the generated digest preview — edit headlines, summaries, and section order as needed.
- Remove any items that are not suitable for the newsletter audience.
- Click Send Digest to email it to all newsletter subscribers. This action cannot be undone.
⚠️ The digest goes to ALL newsletter subscribers at once. Double-check every item before sending — once sent it cannot be recalled. Send digests on a consistent schedule (weekly recommended) so subscribers know when to expect them.
👤 Admin or Community Intelligence Editor — final send approval should come from a senior staff member.
📨 Community Digest Builder
Generate New Digest
🎙️ On-Air Bulletin Generator
Generate broadcast-ready scripts from approved community content. The system creates 30-second, 60-second, and 2-minute versions for DJs to read on-air. Scripts are formatted for natural speech — DJs can read directly from the screen or print them. You can edit scripts before copying to the DJ studio.
- Select a date and range then click Generate Scripts to create bulletin scripts from approved content.
- Review each script — check that names, dates, locations, and facts are accurate.
- Click Edit on a script to revise the wording before sending to the DJ booth.
- Use Copy to clipboard or Print to get the script to your on-air talent.
⚠️ Always review scripts before they go on-air. AI-generated scripts may contain awkward phrasing, mispronounced names, or outdated information. The DJ should also be briefed on any sensitive topics (deaths, emergencies) before reading live.
👤 Programming Staff, On-Air Coordinator, or Admin — DJ talent should not generate or edit their own scripts without editorial approval.
🎙️ On-Air Bulletin Generator
Generate New Scripts
📣 Social Post Queue
Review and manage social media posts generated from approved community content. Draft posts are created automatically from AI Drafts. Once the Meta Pages API is configured in Station Config → Social Media, approved posts will auto-post to Facebook and Instagram. Until then, use the Copy button to manually post.
- Review Drafts — check each post's caption, image, and hashtags before approving.
- Edit the caption if the AI tone or phrasing does not match WWJK's voice.
- Approve a post to move it to the scheduled queue — or manually copy it to post yourself.
- Check Posted tab to confirm auto-posts completed successfully.
⚠️ Auto-posting is disabled until Meta Pages API credentials are entered in Station Config → Social Media tab. Until configured, all posts must be manually copied and posted. Never approve AI-generated posts about sensitive topics (deaths, health, legal) without careful human review.
👤 Admin or Community Intelligence Editor — social posting credentials are in Station Config (Admin only).
📣 Social Post Queue
⚠️ Auto-post disabled —📡 Station Configuration
The master settings panel for WWJK 102.9FM. Configure the live stream URL, emergency alerts, contact information, donation platform settings, FCC/legal records, department email addresses, player theme, and social media API credentials. Changes here affect the entire public website.
- Use the Stream tab to update the live stream URL or audio player settings.
- Use the Alerts tab to activate or deactivate emergency broadcast banners sitewide.
- Use the Social Media tab to enter Meta Pages API credentials for auto-posting from the Social Queue.
- Save each tab individually — changes on one tab do not affect other tabs.
⚠️ This panel controls live production settings. A wrong stream URL will break the audio player for all listeners. Test the stream URL in the player before saving. Emergency Alert changes go live immediately — double-check the message before activating.
👤 Super Admin (Bishop Oliver) only — no other role should change stream or alert settings without explicit authorization.
📡 Live Stream
👥 Portal Users & Access
Manage who has access to the WWJK admin portal (/admin) and partner portal (/partner). Staff roles control what panels each team member can see and use. Partners see only their own submissions. Authentication uses email one-time PIN via Cloudflare Access — no passwords needed.
- Click + Add User and enter the email address of the new staff member or partner.
- Assign the correct Role — Super Admin for Bishop Oliver, Ministry for pastoral staff, Community for outreach, Programming for music/DJ team.
- For Partners, select the Partner Type (Funeral Home, Event Organizer, DJ, etc.) so they see only relevant sections.
- Deactivate a user to remove access without deleting their record.
⚠️ Super Admin access should be limited to Bishop Oliver only. Never grant Super Admin to volunteers or partners. Partners can only see their own submissions — they cannot see other partners' data or any admin-only panels.
👤 Super Admin only — user management is restricted to Bishop Oliver or designated IT administrator.
📋 Portal Access System — Quick Reference
WWJK has two portals on one login system (Cloudflare Access). Staff use /admin. Partners use /partner. Both authenticate via email — one-time PIN sent to their inbox, no passwords needed.
Staff Roles — /admin portal
⭐ Super Admin
Full access to everything. Station config, members, financials, all content, all settings. Bishop Oliver only.
📻 Programming
EPK/music review, broadcast/shows, volunteer apps, artist cards, page heroes. Music Director, Program Manager.
🙏 Ministry
Death notices, prayer requests, celebrations, dedications. Ministry coordinator or pastoral staff.
🏘️ Community
Events, bulletin board, directory, jobs, partners. Community outreach coordinator.
👁️ Read Only
Can view all queues, cannot approve, edit, or delete anything. Good for interns or observers.
Partner Types — /partner portal
🕊️ Funeral Home
Submit death notices, track status, see only their own families. Payment verification still required.
📅 Event Organizer
Submit and manage their own events, upload flyers and promo video (60 sec max).
🎙️ DJ / On-Air Talent
Submit show proposals, manage their artist profile and promo materials independently.
📰 Blogger / Reporter
Submit community news and stories to the bulletin board. Status tracked per submission.
⛪ Church / Ministry
Submit events, prayer requests, and celebrations for their congregation.
🏢 Business
Manage their own directory listing and post job openings without calling the station.
📢 Advertiser
View active ad placements and submit new creative assets for review.
🤝 General Partner
Custom access — use the Permissions field to specify exactly which sections they can see.
💡 Tip: Partners see only their own submissions — a funeral home can't see another funeral home's notices. Use the Permissions field to override the default sections for any partner. E.g. a church partner could be given
["events","prayer","celebrations","bulletin"] for broader access.
👥 Portal Users
| Name / Notes | Role | Partner Type | Status | Added | ||
|---|---|---|---|---|---|---|
Loading... | ||||||
📈 SEO & Analytics Tracking
Configure Google Analytics 4, Google Ads conversion tracking, Meta Pixel, and Cloudflare Web Analytics. Also manage per-page SEO overrides — custom titles, meta descriptions, and social share images — for each public page of the website.
- Enter your tracking IDs in the top section (GA4, Google Ads, Meta Pixel) and toggle each tracker on or off.
- Use the Custom <head> Script field for any tag manager code or additional tracking scripts.
- Select a page from the Per-Page SEO section to override its title, description, and OG image.
- Click Save for each section separately — Tracking Config and Page SEO have separate save buttons.
⚠️ Incorrect tracking IDs will cause analytics to stop recording data. Always verify IDs from your Google Analytics or Meta Business dashboard before entering them. The Custom Head Script runs on every page — test changes on a non-critical page first.
👤 Admin only — analytics credentials are sensitive and should be managed by a designated technical staff member.
📈 Tracking & Analytics IDs
Enable / Disable Trackers
Google Analytics 4
Google Ads Conversion Tracking
Meta Pixel
Cloudflare Web Analytics
🔍 Per-Page SEO Overrides
Override meta title, description, and OG image per page. Stored in D1, injected by app.js on load.
0 / 160
📝 Blog & Articles
Write, edit, and manage WWJK's blog — station news, DJ spotlights, community features, faith inspiration, and event coverage. Articles in Draft are not public. Published articles appear on the public blog page. Archived articles are hidden but preserved.
- Click + New Article to open the article editor — write title, body, excerpt, and upload a hero image.
- Save as Draft to work on the article over time without publishing it yet.
- Set Status to Published when the article is ready — it will appear on the public blog page immediately.
- Fill in the SEO section (slug, meta description) before publishing to help the article rank on Google.
⚠️ Hero images should be 1200×630px JPG or WebP for best display and social sharing. Always write a unique meta description (155 chars) and URL slug for every article — this directly affects search engine visibility.
👤 Admin or Programming Staff — articles about station news or editorial positions should be approved by Bishop Oliver before publishing.
Loading...
New Article
0 / 200
0 / 5000 characters
JPG/WebP · 1200×630px recommended · Used as article header and social share image
🔍 SEO & Meta Tags
📖 Community Story Submissions
Review community stories submitted by the public — personal testimonies, neighborhood news, faith experiences, and local human interest pieces. Approved stories may be featured on the WWJK website, blog, or read on-air as community spotlights.
- Read each submission fully before acting — context matters for community stories.
- Approve stories that are uplifting, community-relevant, and appropriate for all audiences.
- Reject submissions that contain unverified claims, divisive content, or personal attacks.
- For approved stories worth featuring, use the Edit option to clean up formatting before publishing to the blog.
⚠️ Community members share personal stories in good faith. Handle each submission with dignity. Do not approve stories that name specific individuals negatively or that could expose the station to legal risk. When in doubt, escalate to Bishop Oliver.
👤 Community Coordinator or Admin — sensitive stories (personal hardship, legal matters) require senior staff review.
Loading…
✍️ Edit Story Submission
🖼️ Hero Image
JPG/WebP/PNG · Max 5MB · Recommended 1600×900px
📝 Publish to Blog
Save edits first, then click Publish to create a blog article from this story.
🎙️ Programming
Manage WWJK's on-air talent and weekly show schedule. DJ Profiles control what appears on the public Programming page — bios, photos, show times, and social links. The Show Schedule defines the station's weekly broadcast lineup.
- Use DJ Profiles tab to add, edit, or deactivate on-air talent profiles.
- Upload a professional headshot (square, 1080×1080px) for each DJ — this appears on the public Programming page.
- Use Show Schedule tab to create or edit time slots — include show name, day, time, and host.
- Deactivate a DJ profile to remove them from the public page without deleting their record.
⚠️ DJ profiles are public-facing. Ensure bios are approved by the talent before publishing. Do not include personal contact information (phone, personal email) in public bios — use station contact info only.
👤 Programming Director or Admin — DJ profile changes should be approved by the Program Director or Bishop Oliver.
Manage on-air talent profiles shown on programming.html
Loading...
Add DJ / Host
0 / 500
Square crop · JPG/WebP · Min 400×400px recommended · Displayed as circular photo on programming page
1200×400px landscape · Used as show header background
Add Show
0 / 800 characters
Square · JPG/WebP · 600×600px recommended
📊 Fundraising Campaigns
Create and manage fundraising campaigns with visual thermometers showing progress toward goals. Campaigns can appear on the donations page and have their own shareable link. Zeffy-linked campaigns update automatically from webhook donations. Manual updates are also supported.
- Click + New Campaign to create a campaign with a name, goal amount, and description.
- Enter the Zeffy Campaign ID if this campaign is on Zeffy — it will auto-update from donations.
- Set Raised amount manually for offline campaigns (cash drives, check collections).
- Toggle the campaign active/inactive to control whether it appears on the public donations page.
⚠️ Campaign totals are public-facing — make sure the Raised amount is accurate before activating. Never enter a goal amount higher than what was actually authorized. Campaign end dates should match any public-facing promotional materials.
👤 Admin only — campaign goals and financial targets require Bishop Oliver's authorization.
📊 Campaigns
Fundraising campaigns with thermometers. Each campaign can appear on donations.html and/or have its own shareable page.
Loading...
📋 Audit Log
A read-only record of every create, update, delete, and approve action taken by admin users in the portal. Each entry includes the staff member's name, email, the action taken, the affected record, and a timestamp. Use this to investigate issues, verify changes, or review staff activity.
- Filter by Action (Create, Update, Delete, Approve) to narrow down what you are looking for.
- Filter by Table to see all actions on a specific content type (e.g., only Death Notices changes).
- Use the date filters to find activity from a specific time period.
- This log cannot be edited or deleted — it is a permanent record for accountability.
⚠️ This panel is read-only and restricted to Super Admin access. The log exists to protect the station — if something goes wrong, this is how you find out who changed what and when. Do not share audit log exports outside of authorized staff.
👤 Super Admin only (Bishop Oliver) — this panel is not visible to other staff roles.
| When | Action | Who | Table | Record ID | Summary |
|---|---|---|---|---|---|
Loading... | |||||
🔌 Platform Accounts
Connect and manage WWJK's presence across every distribution platform — social media, newsletters, operations channels, and internal systems. Each platform account stores its credentials securely and defines which channels receive published content.
- Select a platform tier and click Connect Account to add a new platform.
- Fill in the account's label, page/channel/server IDs, and account type (Public, Operational, or Internal).
- After creating the account, open it and add credentials (tokens, API keys, secrets) — these are stored encrypted.
- Add Distribution Targets for the account — the specific pages, channels, or feeds content will be sent to.
⚠️ Credentials are encrypted at rest using AES-GCM. Never share access tokens, app secrets, or page tokens outside the OCC. Requires CREDENTIAL_ENCRYPTION_KEY Worker secret to be configured. Contact Bishop Oliver before adding or removing platform connections.
👤 Super Admin only — platform credentials are sensitive and require Bishop Oliver's authorization to configure.
Loading platform accounts…
🔌 Connect Platform Account
📋 Distribution Templates
Message templates used when distributing content across platforms. Templates support variable substitution (e.g.
{{title}}, {{url}}, {{summary}}). Create per-platform or universal templates for each content type: Show Announcement, Event Promo, News Alert, Obituary Notice, Prayer Request, Listener Picks.
Templates
New Template
Variables:
{{title}} {{summary}} {{url}} {{dj_name}} {{show_name}} {{date}} {{time}}
Loading templates…
📡 Operations Channels
Messaging channels used for internal station operations — WhatsApp Business, Facebook Messenger, Slack, Discord, and Google Business Profile. These channels deliver alerts, on-air bulletins, event reminders, and community messages outside of public social media. Connect accounts here and assign them as operational targets for automated workflows.
Operations Channels
Loading operational channels…
🔁 Feed Distribution
Automated feed publishing configuration for Apple Podcasts, Spotify, Google Podcasts, and RSS. Feeds are generated from show recordings uploaded to R2 and pushed to directories on a schedule. Each feed has its own format, approval workflow, and publishing cadence. Require approval is recommended for all public podcast feeds until the workflow is validated.
Distribution Feeds
New Feed
Loading feeds…
💚 Distribution Health
Real-time status overview of every connected platform account. Use this dashboard to identify disconnected accounts, expired tokens, permission issues, and platforms needing attention before content distribution is attempted.
- Review the health grid — red or orange cards need immediate attention.
- Click Mark Status on any card to manually set its health state after investigating an issue.
- Check the Failed Deliveries count — click to go directly to the failure queue.
- Expired tokens show a warning — go to Platform Accounts to update the credential.
⚠️ Health checks are currently manual (Phase 1). In a future phase, automated API health pings will update status automatically. Always verify token expiry before important broadcasts or events.
👤 Admin or Super Admin — health status affects all content distribution. Report issues to Bishop Oliver.
Platform account health — updated manually or on next distribution attempt
Checking health…
Loading targets…
⚠️ Failed Deliveries
Review and resolve content distribution failures. Failed deliveries occur when a post could not be published to a platform — due to expired tokens, API errors, permission changes, or rate limits. Each failure can be retried or resolved.
- Review each failure — check the error message to understand why it failed.
- If the issue is a credential problem, go to Platform Accounts to update the token first.
- Click Retry to re-queue the item for another delivery attempt.
- Click Resolve to dismiss a failure you have handled manually (e.g., posted it yourself).
⚠️ A failure does NOT mean the content was lost — it means delivery to a specific platform failed. The content remains in the Social Queue. Always investigate root cause before retrying repeatedly.
👤 Admin or Super Admin — repeated failures on a platform account require credential review by Bishop Oliver.
Loading unresolved failures…
Loading failures…
📡 Operations Center
Loading…
📅 Today's Operations
⏳ Pending Reviews
—
Across all queues
🧠 Community Items
—
Ingested today
📣 Social Ready
—
Pending publish
📢 Bulletins
—
Awaiting review
🎙️ Avg Review
—
Minutes (30d)
💚 System
—
Overall health
🚦 What Needs Attention
Checking…
💚 Station Health
Loading…
✅ Approval Queue
Loading…
🧠 Community Activity
📣 Social Publishing
Loading…
🏛️ Sponsor Health
Loading…
⚡ Quick Actions
Review Queue
—
AI Intelligence
Community inbox
Social Queue
Publish drafts
Death Notices
—
Sponsor Health
Zone inventory
Station Config
Alerts & stream
Media Assets
—
Source Registry
Health & feeds
✅ Approval Queue
The unified approval queue surfaces content from every module — Community Intelligence, AI Drafts, Social Posts, Bulletins, Media Assets, and EPK — in one review workspace. Approve, reject, schedule, or escalate directly from this panel.
- Use the Module filter to focus on one content type at a time.
- Select multiple items and use Bulk Actions to process in batch.
- Add a Review Note on any item for internal documentation.
- Escalated items (red border) need senior review before action.
👤 Admin or higher — bulk approve requires confirmation.
⏳ Review: —
✓ Approved: —
🔴 Escalated: —
📅 Scheduled: —
Loading queue…
🖼️ Media Governance
Manage all media assets — images, audio, and video — with rights tracking, expiration alerts, and an approval workflow. Assets with unknown or expired rights should not be published publicly.
👤 Admin — rights and expiration decisions require review by Bishop Oliver.
⏳ Pending: —
⚠️ Expiring: —
📁 Total: —
🖼️ Add Media Asset
📂
Click to choose a file or drag & drop
Images, audio, video, documents · Max 128 MB
Loading assets…
📊 Advertiser Zone Health
Active Zones w/ Ads
—
Paid placement zones
⚠️ Expiring Soon
—
Any type, within 30d
Impressions (7d)
—
Banner served
Clicks (7d)
—
Banner clicks
Avg CTR
—
Click-through rate
🗺️ Zone Utilization
Zones grouped by page. ■ Green = occupied · ■ Amber = expiring · ■ Red = empty. Underwriters hold a dedicated guaranteed slot not shown per-zone.
Loading zones…
⏰ Expiring Campaigns
Loading…
📱 Device Performance (7d)
Loading…
📈 Top Zones by Impressions (7d)
📈 Banner Performance
Loading analytics…
📋 Ad Campaigns
Campaigns track advertiser contracts — impressions, clicks, budget, UTM parameters, and GA4/Pixel event names. Campaigns link to Creatives and feed into Fulfillment reporting. Zone Config remains the master placement control layer.
Loading campaigns…
🎨 Ad Creatives
Creatives are individual ad assets — images, banners, HTML, video embeds. Each creative can carry its own UTM parameters and GA4/Pixel event names. Link a creative to a campaign for fulfillment tracking.
Loading creatives…
📦 Ad Fulfillment
Fulfillment compares contracted impressions and clicks against delivered actuals for each sponsor, underwriter, and campaign. Status: ✔ Fulfilled · ↑ On Track · ⚠ At Risk · ✗ Under-Delivery · — No Contract
Loading fulfillment data…
🗄️ Ad Inventory
Inventory shows how many ad slots are occupied, available, expiring, or empty across all zones. Automatically detects empty zones, missing creatives, and broken links. House ads fill empty slots automatically.
Loading inventory…
❤️🩺 Sponsor, Underwriter & Ad Inventory Health
📊 Top Placements (7d)
…
🏆 Top Sponsors (7d)
…
⚠ Under-Delivery Alerts
…
🔥 Creative Fatigue Alerts
…
🤖 Ad Automation Rules
Automation continuously scans for: expired campaigns in active placements, empty zones without house ad fallback, under-delivery against contracts, creative fatigue, and broken assets. Each issue is surfaced here with a recommended action.
Loading recommendations…