Back to Blog
Jun 09, 2026
AI Tutorials
Greta Editorial Team

How to Build a Customer Support Portal with Greta

Build a customer support portal in 4--6 days — ticket submission, agent inbox, knowledge base, SLA tracking, AI-powered categorization and suggested replies. Replaces $50--$500/month of Zendesk/Intercom for indie SaaS.

How to Build a Customer Support Portal with Greta

How to Build a Customer Support Portal with Greta

TL;DR: Building a customer support portal with Greta is achievable in 4--6 days. Core scope: ticket submission, status tracking for customers, agent inbox, knowledge base with search, customer-agent messaging, SLA tracking. Replaces $50--$500/month spent on Zendesk, Intercom, Freshdesk for indie SaaS that want owned infrastructure and customization. This guide covers the data model, the build sequence, the AI-powered automation that genuinely helps (auto-categorization, suggested replies, knowledge base search), integration with email and existing tools, and the operational discipline that determines whether your support portal is helpful or another forgotten tool.

Introduction

Customer support tools dominate SaaS tool stacks. Zendesk at $55--$215/user/month. Intercom at $39--$139/user/month plus AI features. Freshdesk at $15--$79/user/month. HelpScout at $20--$50/user/month. For indie SaaS with 1--3 support people, these tools represent significant cost and lock-in to generic workflows that often don't match how the founder actually wants to handle support.

Building a custom customer support portal with Greta takes 4--6 days for the core technical build. You get ticket submission, status tracking for customers, agent inbox, knowledge base with search, customer-agent messaging, SLA tracking, and AI-powered automation. Operational cost drops to $30--$80/month in hosting and AI API costs. More importantly, the workflow fits your actual support process instead of forcing your process to fit Zendesk's.

This guide covers the realistic build. The data model, the build sequence, the AI-powered features that genuinely help, email integration, and the operational discipline that determines whether your portal becomes a real support system or another tool that fades into disuse.

Why build vs buy

Reasons to build

  • Workflow fit --- Generic tools force generic processes; custom builds match yours
  • Cost at indie scale --- $30--$80/month vs $200--$1,000/month for commercial tools
  • Code ownership --- Real Next.js/React code in GitHub; no platform lock-in
  • Integration freedom --- Connect to your existing product database for context
  • AI customization --- Train AI on your specific knowledge base
  • Customer experience match --- Portal feels like part of your product, not third-party

Reasons to buy

  • Mature support workflows you don't want to design from scratch
  • Need omnichannel from day one (email + chat + phone + social)
  • Enterprise compliance requirements (SOC 2, HIPAA, etc.) with audit trails
  • Team larger than 5 agents
  • Need advanced reporting and analytics

Honest framing: most indie SaaS at $0--$50K MRR benefit from custom builds. Above $50K MRR, the decision depends on support volume and team size. Above $200K MRR with 5+ support agents, commercial tools often win on scale economics.

Core v1 scope

  • Customer ticket submission (web form, with optional email-in)
  • Customer portal showing their tickets and status
  • Agent inbox with all tickets, filters by status/priority/category
  • Ticket detail with conversation thread
  • Knowledge base with article CRUD and search
  • Public-facing help center (knowledge base + ticket submission)
  • Customer-agent messaging within ticket
  • Ticket status workflow (open → in progress → resolved → closed)
  • SLA timers based on priority
  • Email notifications (to customer and agent)
Greta AI

Got an idea? Build it now!

Just start with a simple Prompt. No coding required — Greta turns your idea into a working app in minutes.

What to skip in v1

  • Live chat (defer to v1.1; email-style messaging suffices for v1)
  • Multi-channel intake (email + web in v1; phone/social later)
  • Team-based assignment with round-robin (single-agent or manual assignment v1)
  • Custom ticket forms per category (single form v1)
  • Advanced reporting (basic metrics v1)
  • Customer satisfaction surveys (defer to v1.1)
  • Macros and canned responses (AI suggested replies cover most of this in v1)
  • Workflow automation rules engine (simple status flows v1)

The data model

  • Customer (id, user_id, email, name, subscription_tier, lifetime_value)
  • Ticket (id, customer_id, subject, description, status, priority, category, assigned_to, created_at, first_response_at, resolved_at)
  • Message (id, ticket_id, sender_id, sender_type, body, created_at)
  • Agent (id, name, email, role)
  • Article (id, title, slug, body, category, tags, published_at, view_count)
  • Category (id, name, parent_id, description)
  • TicketTag (ticket_id, tag) --- many-to-many tags for tickets
  • SLAConfig (priority, first_response_minutes, resolution_minutes)

The 4--6 day build sequence

Day 1: Scaffolding, customer portal, ticket submission

  • Hour 1: PRD (workflow specifics, priority levels, SLA targets)
  • Hour 2--3: Data model setup (Customer, Ticket, Message, Agent)
  • Hour 4--5: Customer portal layout (auth, navigation)
  • Hour 6--8: Ticket submission form (subject, description, category, priority, attachments)

Day 2: Customer-side ticket viewing

  • Hour 1--3: Customer ticket list with status filter
  • Hour 4--5: Ticket detail with conversation thread
  • Hour 6--7: Customer reply functionality
  • Hour 8: Status indicators and SLA visibility

Day 3: Agent inbox and ticket management

  • Hour 1--3: Agent inbox UI (all tickets, filters, sort)
  • Hour 4--5: Ticket detail for agent view with full customer context
  • Hour 6--7: Status workflow controls (assign, change priority, change status)
  • Hour 8: Internal notes (agent-only messages on ticket)

Day 4: Knowledge base

  • Hour 1--3: Article CRUD for admin (create, edit, publish, categorize)
  • Hour 4--5: Public help center (article browsing and search)
  • Hour 6--7: Search using Postgres full-text search or Algolia
  • Hour 8: Article display with related articles

Day 5: AI features and email integration

  • Hour 1--3: AI auto-categorization on ticket submission
  • Hour 4--5: AI suggested replies for agents using knowledge base context
  • Hour 6--7: Email integration (incoming tickets via email; outgoing notifications)
  • Hour 8: SLA timer logic and breach alerts

Day 6: Polish, harden, soft launch

  • Hour 1--3: Basic metrics dashboard (open tickets, average response time, SLA compliance)
  • Hour 4--5: Empty states, error handling, mobile responsive
  • Hour 6--7: RLS and security review (customer can only see own tickets; agents see all)
  • Hour 8: Soft launch --- redirect support emails to portal
Greta AI

Got an idea? Build it now!

Just start with a simple Prompt. No coding required — Greta turns your idea into a working app in minutes.

AI features that genuinely help

Auto-categorization

  • On ticket submission, classify by category (billing, technical, feature request, etc.)
  • Pass ticket description to LLM with category list
  • Returns category; saves on ticket record
  • Reduces manual triage time significantly
  • Cost: ~$0.001 per ticket; negligible at indie scale

Suggested replies for agents

  • When agent opens ticket, AI retrieves relevant knowledge base articles via embedding search
  • AI generates suggested reply incorporating article content
  • Agent reviews, edits, sends (don't auto-send AI replies)
  • Significantly reduces typing time; consistent answers across team

Smart article suggestions to customer

  • On ticket submission, search knowledge base for related articles
  • Show "You might find these helpful" before submission
  • Deflects significant percentage of tickets
  • Customer self-serves; ticket volume decreases

Ticket summarization

  • Long ticket threads summarized for new agents picking up the case
  • Especially helpful for handoffs and escalations
  • Generated on demand; not pre-computed

Sentiment detection

  • Flag tickets with frustrated customer language
  • Prioritize emotional escalations
  • Use sparingly --- false positives create noise

Email integration patterns

Inbound: ticket-from-email

  • Set up support@yourcompany.com forwarded to webhook (use Resend inbound, Postmark inbound, or AWS SES)
  • Webhook receives email payload
  • Parse sender, subject, body; create new ticket or append to existing thread
  • Match by ticket ID in subject line (for replies)
  • Handle attachments (store in Supabase Storage)

Outbound: notifications via email

  • Customer receives email when ticket status changes
  • Customer receives email when agent replies
  • Agent receives email for high-priority tickets
  • Reply-to address routes back to ticket via parsing

Email thread management

  • Include ticket ID in subject (e.g., "[Ticket #1234] Your subject")
  • Strip quoted reply content when appending to thread
  • Handle email signatures (don't include in ticket display)

SLA tracking

  • Define SLA targets per priority (e.g., urgent: 1 hour first response; normal: 24 hours)
  • First response SLA --- time from ticket creation to first agent message
  • Resolution SLA --- time from ticket creation to status = resolved
  • Display SLA timer on ticket for agent visibility
  • Alert on breach (Slack, email to manager)
  • Pause SLA timers when waiting on customer (status = pending customer)
  • Track SLA compliance metrics over time
Greta AI

Got an idea? Build it now!

Just start with a simple Prompt. No coding required — Greta turns your idea into a working app in minutes.

Metrics that matter

MetricHealthy RangeNote
First response time<4 hours business hoursCustomer perception driver
Resolution timeVaries by categoryBug reports take longer than billing questions
SLA compliance>90%Below 80% indicates capacity issues
Ticket volume per MAU<5% typicalHigher indicates product quality or UX issues
Self-serve deflection>20%Knowledge base success indicator
Tickets per agent per day10--30Varies by ticket complexity

Common Mistakes Building Support Portals

  • Skipping the knowledge base --- KB is your ticket deflection. Build it from day one, even with 3 articles.
  • Building chat in v1 --- Chat changes operational model significantly. Email-style messaging is simpler and effective.
  • Not tracking SLAs --- Without measurement, response times drift. Track from day 1.
  • Auto-sending AI replies --- AI suggests; humans send. Auto-send produces embarrassing edge cases.
  • Ignoring email integration --- Most customers prefer email over portals. Email-in is non-optional.
  • Generic ticket categories --- Categories specific to your product yield better triage.
  • Skipping customer context in agent view --- Show subscription tier, recent activity, account age. Context = better support.
  • Treating support as separate from product --- Support reveals product issues. Connect ticket data to product analytics.
  • Hiring support before measuring --- Measure ticket volume; calibrate hiring to actual demand.
  • Overpolishing the portal --- Customers care about getting help, not UI polish. Function over form.

Frequently Asked Questions

Q1: Should I really build this instead of using Zendesk? Depends on volume and team size. Indie SaaS at $0--$50K MRR with 1--2 support people benefit from custom builds. Above $50K MRR with 3+ support agents, evaluate honestly.

Q2: How do I handle attachments in tickets? Supabase Storage for file uploads. Validate file types and size limits server-side. Display attachments inline (images) or with download link (other files).

Q3: What about live chat? Defer to v1.1 or skip entirely. Live chat changes operational model --- requires staffing during business hours. Email-style messaging via portal is asynchronous and works fine for most indie SaaS.

Q4: Can the AI features handle multiple languages? Yes --- LLMs are multilingual. Auto-categorization and suggested replies work across languages. Knowledge base articles need translation if you support multiple languages.

Q5: What about phone support? Most indie SaaS skip phone. If required, integrate with a service like Twilio Voice or stick with commercial tools. Phone adds significant operational burden.

Q6: How do I handle escalations? Define escalation criteria (priority, age, customer tier). Notify designated escalation contact (often founder for early-stage SaaS). Track escalation rate as separate metric.

Q7: What if customers don't use the portal and just email? Support email forwarded to portal webhook captures all emails as tickets. Customers don't need to know about the portal; the portal is your back-office tool.

Greta AI

Got an idea? Build it now!

Just start with a simple Prompt. No coding required — Greta turns your idea into a working app in minutes.

Conclusion

  • Customer support portal with Greta: 4--6 days for core build. Replaces $50--$500/month of commercial tooling for indie SaaS scale teams.
  • Core scope: ticket submission, status tracking, agent inbox, knowledge base, customer-agent messaging, SLA tracking, AI features (auto-categorization, suggested replies, article suggestions).
  • AI features genuinely help. Auto-categorization saves triage time. Suggested replies speed responses. Smart article suggestions deflect tickets. Cost: pennies per ticket at indie scale.
  • Email integration is non-optional. Most customers prefer email. Inbound parsing via Resend/Postmark/SES; outbound notifications via Resend. Email + portal coexist.

If you're an indie SaaS founder and your support is currently in shared Gmail/email, a custom support portal is a high-ROI build. Start with 4--6 days to ship core functionality. Migrate support email to portal webhook in week 2. Add AI features in week 3. By month 2, your team operates in a system that fits your workflow at a fraction of commercial cost. The investment pays back in 3--6 months through subscription savings; the workflow fit pays back forever in support team efficiency and customer satisfaction. The custom support portal is one of the highest-ROI internal builds for indie SaaS in 2026 --- execute deliberately.

End of Log Entry
Return to Top

Build Something Real

If you can describe it, you can build it.