RedRiver AI — Admin Manual

Complete knowledge base for site administration, client management, and platform architecture.

1. Overview — RedRiver AI Platform

RedRiver AI is a Manitoba-based AI + IT services company serving local businesses with a full suite of tools including AI receptionists, enterprise phone systems, managed IT security, network infrastructure, and on-site support. The platform is built on Base44 (React + Tailwind frontend, serverless backend functions, and a built-in database). The app serves two primary audiences: (1) Admin/Staff who manage clients, tickets, and content, and (2) Clients who access their own dashboard to view services, reports, and tickets.

Company Contact:
- Address: 1032 Logan Ave, Winnipeg MB R3E 1P5
- Phone: +1 204-955-4357 (204-955-HELP)
- Toll Free: 833-253-8351
- Email: hello@redriverai.com
- Gmail (internal alerts): redriver3cx@gmail.com

2. Site Pages & Navigation

PUBLIC PAGES (no login required):
- / (Home): Main landing page. Features hero, service grid, pricing, client logos, footer.
- /AIReceptionist: Dedicated page for the AI Receptionist product with pricing tiers and industry breakdowns.
- /USD2SIP: Standalone landing page for the Restaurant Order AI product (SIP-based voice ordering for Uber Eats/DoorDash/Skip).
- /Contact: Contact form that saves submissions to the ContactSubmission entity and notifies hello@redriverai.com.
- /HelpCenter: Customer-facing support article browser with search, categories, and helpfulness voting.
- /KnowledgeBase: Internal AI-powered knowledge base for support articles. Admin can add articles and AI auto-categorizes/tags them.
- /TicketView or /tickets/:id: Public ticket status page (no login needed). Callers receive a link to view their ticket.

AUTHENTICATED PAGES (login required):
- /ClientDashboard: Client portal. Shows services, call transcripts, monthly reports, support tickets, and on-site booking.
- /ProposalGenerator: Admin tool to generate branded IT proposal Google Docs for prospects.
- /AdminSEO: Admin page to manage per-page SEO metadata (title, description, OG tags, robots).
- /AdminSEORankings: Admin page showing Google Search Console data — keyword rankings, clicks, impressions.
- /USD2SIP: Also accessible from main nav as a standalone product page.

3. Database Entities (Data Models)

The following entities store all app data. Each record automatically has: id, created_date, updated_date, created_by.

SupportTicket:
- Fields: client_email, title, description, priority (Low/Medium/High/Critical), status (Open/In Progress/Awaiting Client/Resolved/Closed), category (AI Receptionist/Phone System/Network/Hardware/Software/Billing/On-Site/Other), admin_notes, resolved_date.
- Access: Clients can read/update their own tickets. Admins have full access.

ContactSubmission:
- Fields: name, email, phone, message, welcome_email_sent.
- Access: Anyone can create (public form). Admins can read/update/delete.

ClientService:
- Fields: client_email, service_name, service_type, status (Active/Paused/Cancelled), plan, price_per_month, renewal_date, notes.
- Access: Clients see their own. Admins see all.

MonthlyReport:
- Fields: client_email, report_month, report_label, file_url, summary, total_calls_handled, tickets_resolved, uptime_percent.
- Access: Clients see their own. Admins manage all.

CallTranscript:
- Fields: client_email, caller_name, caller_phone, call_date, duration_seconds, summary, transcript, sentiment, action_taken.
- Access: Clients see their own. Admins manage all.

KnowledgeArticle:
- Fields: title, content, category, tags, summary, view_count, helpful_count.
- Access: Admins create/edit. Everyone can read.

SupportArticle:
- Fields: title, slug, category, summary, content, tags, is_published, helpful_yes, helpful_no.
- Access: Public read. Admin create/edit/delete.

SEOSettings:
- Fields: page_slug, page_label, title, description, keywords, og_title, og_description, og_image, canonical_url, robots.
- Access: Admin only.

SIPAccount:
- Fields: extension, username, secret, server (default: redriver.my3cx.ca), user_email, notes.
- Access: Users see their own. Admins see all.

ClientSuccess (Testimonials):
- Fields: client_name, company, industry, result_headline, testimonial_quote, logo_url, case_study_url, is_featured.
- Access: Public read. Admin manage.

4. Backend Functions

Backend functions are serverless Deno handlers that integrate with external APIs.

daleWebhook (CRITICAL — AI Receptionist Bridge):
- URL: Available in Dashboard → Code → Functions → daleWebhook
- Purpose: Receives webhook calls from Dale (the AI voice agent) and creates records in the database.
- Actions supported:
  • create_ticket → Creates a SupportTicket + sends email alert to redriver3cx@gmail.com
  • create_customer → Creates a ContactSubmission
  • log_inquiry → Creates a ContactSubmission  
  • log_call → Creates a CallTranscript
- Authentication: Uses Gmail OAuth via GMAIL_REFRESH_TOKEN, GMAIL_CLIENT_ID, GMAIL_CLIENT_SECRET secrets.
- Email alert: Sends HTML-formatted ticket notification to redriver3cx@gmail.com via Gmail API.

generateITProposal:
- Purpose: Creates a branded IT proposal as a Google Doc using the Google Docs API.
- Authentication: Uses the authorized Google Docs connector (OAuth).
- Input: Client name, company, services selected, plan, pricing, notes.
- Output: Returns Google Doc URL.

syncOnsiteToCalendar:
- Purpose: Syncs on-site support bookings from ClientDashboard to Google Calendar.
- Authentication: Uses the authorized Google Calendar connector.

sendWelcomeEmail:
- Purpose: Sends welcome emails to new ContactSubmission entries.
- Authentication: Uses Gmail connector.

searchConsoleRankings:
- Purpose: Fetches keyword ranking data from Google Search Console for the AdminSEORankings page.
- Authentication: Uses the authorized Google Search Console connector.

5. Integrations & Connected Services

OAuth Connectors (authorized under the app builder's account — shared):
- Gmail: Scope includes gmail.send. Used for sending ticket alerts and welcome emails.
- Google Calendar: Scope includes calendar.events. Used for on-site booking sync.
- Google Docs: Scope includes documents + drive.file. Used for proposal generation.
- Google Search Console: Scope includes webmasters.readonly. Used for SEO rankings dashboard.

Environment Secrets (set in Dashboard → Settings → Environment Variables):
- GMAIL_REFRESH_TOKEN: OAuth refresh token for Gmail API direct calls (used in daleWebhook).
- GMAIL_CLIENT_ID: Google OAuth client ID.
- GMAIL_CLIENT_SECRET: Google OAuth client secret.

3CX Phone System:
- Hosted at: redriver.my3cx.ca
- AI Demo: https://redriver.my3cx.ca/ai
- SIP Server: redriver.my3cx.ca
- Used for: Enterprise phone system, SIP accounts for clients.

Dale AI Agent (Voice Receptionist):
- Communicates with the app via the daleWebhook backend function.
- Creates tickets, logs calls, registers customer inquiries automatically.
- Accessible via WhatsApp through the Dale agent.

External Calendly:
- Used for booking demos: https://calendly.com/your-link (placeholder — update with real link).

6. Admin Tasks & How-To Guide

HOW TO: Manage Support Tickets
1. Log in as admin.
2. Go to /ClientDashboard or access tickets via the database.
3. Update status, add admin_notes, set resolved_date when closing.
4. Clients can view their ticket status at /TicketView?id=<ticket_id>.

HOW TO: Add a Client Service
1. Go to database → ClientService entity.
2. Create a new record with the client's email, service type, plan, price, and renewal date.
3. The client will see this automatically in their /ClientDashboard.

HOW TO: Upload a Monthly Report
1. Go to database → MonthlyReport entity.
2. Create a record with client_email, report_month (e.g. 2026-03), label, and optionally a file_url (PDF link).
3. Fill in summary stats: total_calls_handled, tickets_resolved, uptime_percent.

HOW TO: Generate an IT Proposal
1. Log in as admin, navigate to /ProposalGenerator.
2. Fill in client details, select services and plan tier.
3. Click Generate — the system creates a Google Doc and returns a link.

HOW TO: Manage SEO
1. Navigate to /AdminSEO.
2. Add or edit per-page SEO settings (title, description, OG image, etc.).
3. Use page_slug matching the route (e.g. "/" for Home, "/AIReceptionist").
4. View ranking data at /AdminSEORankings.

HOW TO: Add Knowledge Base Articles
1. Navigate to /KnowledgeBase.
2. Enter title and content — AI will auto-generate category, tags, and summary.
3. Articles are immediately searchable.

HOW TO: Manage Client Success Stories
1. Go to database → ClientSuccess entity.
2. Add company, testimonial_quote, result_headline, and optionally a logo_url.
3. Set is_featured = true to show on the homepage carousel.

HOW TO: Add a SIP Account for a Client
1. Navigate to /AdminSIP.
2. Fill in extension, username, secret, and associate with user_email.
3. Server defaults to redriver.my3cx.ca.

7. Client Portal Guide

The Client Dashboard (/ClientDashboard) is the primary self-service portal for clients. Clients must be invited/registered users.

TABS AVAILABLE:
- Services: Shows active ClientService records for their email. Status badges (Active/Paused/Cancelled).
- Call Transcripts: Shows CallTranscript records. Includes AI summary, sentiment, action taken.
- Monthly Reports: Shows MonthlyReport records with downloadable links and KPI stats.
- Support Tickets: Shows SupportTicket records. Clients can create new tickets and track status.
- Book On-Site: Form to schedule an on-site technician visit. Creates a ticket + syncs to Google Calendar.
- Upgrade Services: Request new or upgraded services — creates a high-priority support ticket.

TICKET STATUS FLOW:
Open → In Progress → Awaiting Client → Resolved → Closed

PRIORITY LEVELS:
Low | Medium | High | Critical

8. Pricing & Plans

MANAGED IT + PHONE + AI BUNDLE:
- Starter: $299/mo — Up to 8 seats
- Growth: $499/mo — Up to 16 seats
- Unlimited: $799/mo — 17+ seats
Includes: AI tools + phone system + full IT support + on-site service (Winnipeg & Selkirk)
No setup fee | No contract | Cancel anytime

AI RECEPTIONIST (Standalone):
- Starter: $49/mo — Basic call answering + routing + messages
- Professional: $149/mo — + 24/7 booking, calendar integration, FAQ handling
- Enterprise: Custom quote — CRM/DMS integration, doc dispatch, advanced analytics

USD2SIP — RESTAURANT ORDER AI:
- Starter: $149/mo per location — Core SIP AI, 1 aggregator, unlimited calls
- Pro: $249/mo per location — All 3 aggregators, upsells, analytics dashboard
- Enterprise: $299+/mo — Multi-location, white-label, custom AI training

9. Current Clients & Service Area

ACTIVE CLIENTS (as of 2026):
- RideTime.ca (Automotive)
- One Evergreen Law (Legal)
- Shelly's Indigenous Bistro (Restaurant)
- Red River Messenger (Media)
- True North Motors (Automotive)
- General Signs Selkirk (Signage)
- St. Norbert Arts Centre / SNAC (Arts)
- Yen's Bookkeeping (Financial)
+ 4 additional clients

SERVICE AREA:
- Primary: Winnipeg, MB & Selkirk, MB
- On-site support: No trip charge within service area
- Remote support: Province-wide and beyond

10. Technology Stack & Architecture

FRONTEND:
- React 18 + Vite
- Tailwind CSS with custom Métis Heritage color palette (metis-blue, metis-red, metis-green, metis-yellow, metis-glow)
- shadcn/ui component library
- framer-motion for animations
- react-router-dom v6 for routing
- @tanstack/react-query for data fetching/caching
- recharts for analytics charts

BACKEND:
- Base44 platform (serverless backend as a service)
- Deno-based backend functions (in /functions directory)
- Built-in entity database with RLS (Row Level Security)
- OAuth connectors for Google services

DESIGN SYSTEM:
- Métis-inspired color palette honoring Red River Métis heritage
- Primary brand colors: Sky Blue (#0077be), Red (#d21034), Green (#006847), Yellow (#fdb913), Glow (#60c8ff)
- Infinity (∞) symbol used as brand motif throughout
- MetisSashPattern and InfinityNetwork decorative components

SECURITY:
- Row-Level Security on all entities (clients only see their own data)
- Admin role required for sensitive operations
- OAuth tokens stored securely, never exposed to frontend
- Environment secrets managed via Base44 dashboard

RedRiver AI — Confidential Admin Manual — 2026-09-27