Dashboard
Welcome back! Here's what's happening on AgriPlan.
User Growth
Revenue Overview
Subscriptions by Plan
Top Features Usage
Latest Farms
Subscription Overview
Top Countries
AI & Scanner Usage
Recent Activity
Alerts & Notifications
System Status
Recent Signups
Recent Contacts
Blog posts
Notes from the farm. Visible to visitors at /blog.
Products & animals
Manage everything for sale on your shop. Changes go live in 30 seconds.
Shop Orders
Every website checkout lands here with an order ref (also in the customer's WhatsApp message). Confirm on WhatsApp, then track status here.
Could not load orders — run sql/shop-orders-admin.sql in Supabase first (adds admin read access + customer columns).
Species & Breeds
Manage species (Sheep, Goats…) and the breeds under each one.
site-species-setup.sql then alter-site-species.sql in Supabase.Clients
Every customer who signed up to AgriPlan. Search, view their farm, or remove inactive accounts.
Client details
Waitlist signups
Everyone who entered their email on the homepage to be notified.
Farming Library
Download any guide for free as the owner, or help a customer who paid but can't download.
Product Requests
"Source for Me" and "Build My Farm" requests from the website Shop page. Reply on WhatsApp, then update the status.
Product Reviews
Reviews from customers on the Shop. Approve genuine ones to show them (and their stars) on the website; hide the rest.
Farm Kits
Complete starter kits on the Shop page. Fill in what's included, quantities, price, stock and photos, then set the kit to Published.
Page Content
Editable sections of website pages. Write only confirmed information, add real farm photos, then tick Published.
Contact submissions
Messages sent through the site's contact form.
Payments
IntaSend M-Pesa transactions from AgriPlan subscriptions.
💳
No payment records yet
Run admin-payments-setup.sql to create the payments table, then configure IntaSend webhook.
Payments table not set up yet
Run admin-payments-setup.sql in Supabase → then configure your IntaSend webhook URL to https://auwkatnnqgcclucumstz.supabase.co/functions/v1/intasend-webhook
Analytics
Signup trends and plan distribution from your live data.
Plan distribution
Signup activity (last 12 weeks)
Onboarding funnel
Client activity
Revenue (last 12 months)
From completed payments. Visit Payments tab first to load data.
No payment data loaded — open the Payments tab then revisit Analytics.
Broadcast
Send one message to a segment of clients by email and/or WhatsApp, or send magic sign-in links.
Send a message
Write it once, send it by email, WhatsApp, or both. Email goes out in one click. WhatsApp has no bulk API wired up, so it builds a queue below — one click per client opens WhatsApp with your message ready to send.
0/4000 · Each client's name is added as a greeting automatically.
WhatsApp queue
0 left to send. Click a row (or "Send next") to open WhatsApp with the message ready — press send there, then come back for the next one.
Send magic links
Sends a personalised sign-in link to each recipient's email via Supabase Auth. Uses the same recipient segment picked above.
Broadcast history
No broadcasts sent yet.
Daily content
Tips, guides, and updates posted to AgriPlan users inside the app.
Certificates
Issue Vinfarm-branded certificates in bulk after a training day, workshop or farm visit.
Audit log
Record of admin actions — plan changes, deletions, magic links.
No audit events yet. Run admin-audit-log.sql to enable logging.
Sign-in activity
Every sign-in attempt — successful and failed — from the app and mobile.
No sign-in attempts logged yet.
Account deletion requests
Users who requested their AgriPlan account be deleted from Settings > Danger Zone. Fulfilling actually deletes their login and all farm data — this cannot be undone.
No deletion requests.
Website content
Upload farm photos, manage reviews, and edit hero text on vinfarm.co.ke.
Farm photos shown in the Gallery section of the website.
View on site ↗Farm builds, installations and consultancy work shown in the Projects section.
View on site ↗Customer reviews shown in the What farmers are saying section.
View on site ↗Override the homepage hero image, headline and subtext. Changes go live immediately after saving — no deploy needed.
JPG / PNG / WebP · max 5 MB · recommended 1600 × 900 px (16:9 landscape)
Leave blank to keep the existing headline.
Leave blank to keep the existing subtext.
Species shown in the "What We Farm" section on the website. Edit photos, names, descriptions and order from the Breeds tab → species accordion.
🐄 Go to Breeds tab →Quick status
App screenshots shown in the "A look inside the app" section on vinfarm.co.ke.
View on site ↗Help & tips
How do I write a new blog post? +
Go to Blog Posts tab → click + New post.
Fill in title, category, an emoji or image URL for the cover, and the body. Click Publish.
The post appears immediately on vinfarm.co.ke/#blog with a unique link.
What's a "slug"? +
It's the URL part. For "Starting Dorper Sheep in Kenya", the slug is usually starting-dorper-sheep-kenya. Lowercase letters and dashes only.
The admin auto-generates one from the title. You can override it before saving.
Can I use formatting in the body? +
Yes. The body field accepts HTML tags. Common ones:
<p>Paragraph</p>— a paragraph<h2>Section title</h2>— section heading<strong>Bold text</strong>— bold<em>Italic text</em>— italic<ul><li>Item</li></ul>— bullet list<blockquote>Quote</blockquote>— pull-quote<a href="https://...">Link text</a>— link
How do I unpublish a post without deleting it? +
Edit the post, toggle Published to off, click Save. The post stays in your dashboard but disappears from the public site.
Where do orders show up? +
Two places: the customer's WhatsApp message arrives on your phone (with an order ref like VF-260702-ABC), and the same order appears in the 🧾 Orders tab here — with the customer's name, phone, items and total.
Confirm price and delivery on WhatsApp, then mark the order Confirmed → Delivered in the Orders tab so you always know what's outstanding.
How do I update the animal photos on the website? +
Species and breed photos are managed directly from this admin — no file upload or redeploy needed.
To update a species photo: go to the 🐄 Breeds tab → find the species accordion → click the photo thumbnail to upload a new image. It saves to Supabase Storage and appears on the website instantly.
To update a breed photo: open the breed in the Breeds tab → click "Upload photo" inside the breed editor modal.
Testimonials and hero text are managed from the 🌐 Website tab — no deploy needed for those either.
Farms
Every farm registered on AgriPlan, with owner, size and activity.
Staff & Roles
Who can access this admin panel, and what they may do.
Role permissions
Subscriptions
Plans, trials and renewals across every account.
Invoices
Every payment attempt from IntaSend and Flutterwave.
Plans & Pricing
The price list MRR and revenue figures are calculated from.
Stored in website_settings under plan_prices. Changing a price here changes every MRR and revenue figure in this admin — it does not change what the app charges.
Coupons
Discount codes for trials, launches and campaigns.
Feeds & Ingredients
Central nutrition table pushed to every farm's ration calculator.
Diseases
Symptoms, risk level and prevention guidance by species.
Vaccines
Catalogue and recommended schedules by species, age and booster interval.
AI & Assistant
Usage, cost and what farmers are actually asking.
Usage by feature
Busiest farms
Recent questions
Flagged answers
Health Scanner
Scan volume by mode, and the accuracy loop.
Scans by mode
Recent scans
Announcements
Banners shown inside the app — releases, maintenance, news.
System Monitor
Live health of every service AgriPlan depends on.
Database
Integrations
Every external service, and whether it is actually working.
Settings
Global configuration and feature flags.
General
Feature flags
Turn features on or off for everyone without deploying a new build.