Frontdesk
Scheduled Sep 24, 2026Ticketing that does not bill you per agent.
Replaces
- Zendesk Suite · Zendesk, Inc. — $115 per seat per month (Suite Professional), about $552,000/yr at 400 seats
- Freshdesk · Freshworks Inc. — $55 per seat per month (Pro), about $264,000/yr at 400 seats
Rented, per year
$552,000
Zendesk Suite list price at 400 seats.
Owned, per year
$8,280
AWS infrastructure only. Azure is $8,880.
Build
10 weeks
2 engineers. To parity on the core features above, including migration of ticket history, macros, SLA policies and CSAT results from Zendesk or Freshdesk.
Difficulty
3/5
Well-understood shape. Low delivery risk.
Reference organisation: 150 agents plus 400 free light agents, 40,000 tickets a month, 5 years of ticket history, 1.5 TB of attachments, single region, prod + non-prod. 3-year Compute Savings Plan on Fargate / 3-year reservation on Container Apps. Aurora minimum 1 ACU in prod. Attachments on S3 Standard for 90 days then Glacier Instant Retrieval. PostgreSQL full-text search rather than OpenSearch at this volume. Excludes LLM gateway token cost, telephony and vendor support plans. Figures are infrastructure only and exclude the build.
What it is
Frontdesk is a support desk: email, web form and API intake, queues and routing, SLA policies with business calendars, macros, side conversations and CSAT. It is aimed at support organisations past roughly 80 agents, where the per-agent licence has made seasonal staffing a budget conversation and where the ticket history — the most detailed record of what your product actually does wrong — sits in a vendor's schema. Frontdesk is deliberately conventional software. The interesting engineering is in email threading and SLA timing, which is where support tools quietly fail.
Why this one stops making sense
- Zendesk Suite Professional lists at $115 per agent per month paid yearly. A 150-agent desk is $207,000 a year, and every seasonal hire adds $1,380 for the year whether they work three months or twelve.
- Per-agent pricing makes the right operational decision — staffing up for a launch or a peak — an expensive one, so teams share logins, which destroys the audit trail you bought the tool for.
- Ticket history is the highest-resolution record of your product's defects and your customers' confusion. It is a research dataset, and it is trapped behind an export API with rate limits.
- Macros, triggers, automations and custom fields become an undocumented business process over five years, with no version history and no way to test a change before it fires on live traffic.
- Freshdesk Pro at $55 per agent per month is cheaper and has the same structural problem: the price of knowing what your customers said scales with how many people are allowed to read it.
What ships
- Email, web form, API and chat intake into one ticket model with reliable threading
- Queues, views and assignment rules with skills-based and round-robin routing
- SLA policies with business calendars, holiday schedules, pause states and breach prediction
- Macros and canned responses with placeholders, versioned in git and testable
- Triggers and automations with a dry-run mode against historic tickets
- Side conversations to engineering and vendors without leaking the customer thread
- CSAT surveys on resolution, with response rates and driver analysis
- Customer-facing portal with ticket history and Atlas knowledge-base search
- Unlimited light agents — engineers, product managers and finance read and comment for nothing
- Full-text search over every ticket, comment and attachment with retention rules per field
Data model
Stack
- frontend
- Next.js 15 App Router + Tailwind + TanStack Query, with an agent workspace built for keyboard use
- backend
- NestJS on Node 22 — agent API, a mail ingress service and an SLA sweeper
- database
- PostgreSQL 16 with Row Level Security per brand and per queue
- cache
- Redis 7 for view counts, agent presence and macro lookup
- queue
- BullMQ for trigger execution, notification and CSAT dispatch
- auth
- OIDC against the customer IdP for agents; magic-link or IdP for portal users
- search
- PostgreSQL tsvector with pg_trgm; OpenSearch only above roughly 20M tickets
- ai
- Optional summarisation, macro suggestion and intent classification through an LLM gateway
Parity, honestly
What we match, and what we do not.
The rows marked No are the important ones. If one of them is the reason you bought Zendesk Suite, keep buying it — and we will tell you that on the first call rather than the fifth month.
| Capability | Zendesk Suite | Ours | Note |
|---|---|---|---|
| Email, form and API ticket intake | Yes | Yes | — |
| SLA policies with business hours and pause states | Yes | Yes | Ours predicts breaches rather than only reporting them. |
| Macros, triggers and automations | Yes | Yes | Defined as code, reviewed as code, and dry-runnable against last month's tickets. |
| Skills-based and round-robin routing | Yes | Yes | — |
| CSAT collection and reporting | Yes | Yes | — |
| Unlimited free light-agent seats | No | Yes | Zendesk light agents are limited and plan-dependent. This is usually the largest cost line to disappear. |
| Customer portal with knowledge-base search | Yes | Yes | Shares Atlas's index rather than maintaining a second copy of the articles. |
| Marketplace of 1,500+ apps and integrations | Yes | No | Zendesk's marketplace is a genuine asset. We build the four or five integrations your desk depends on. If your workflow rests on a dozen marketplace apps, the migration cost is larger than the licence saving. |
| Built-in cloud telephony with global numbers | Yes | No | Zendesk Talk carries carrier relationships, number provisioning in dozens of countries and emergency-calling obligations. We are not becoming a telecoms provider. Frontdesk integrates with Amazon Connect, Genesys or your existing contact centre and logs the interaction. |
| Industry benchmark reporting | Yes | No | Zendesk can compare your first-response time with thousands of other desks. We only have yours. |
| Vendor-run SOC 2, ISO 27001 and FedRAMP authorisations | Yes | No | Frontdesk inherits your cloud posture. FedRAMP in particular cannot be reproduced by building your own. |
| AI ticket summarisation and suggested replies | Partial | Yes | Through your LLM gateway, on your data, with no training on customer content. |
| Live chat and in-product messaging | Yes | Partial | Converse covers this properly and shares the contact model. Frontdesk alone is asynchronous. |
| Multilingual agent interface and content translation | Yes | Partial | The interface ships in the languages you need. Automatic content translation runs through your LLM gateway and is not free. |
Reference architecture
Built twice, on purpose.
Every application in Techtons ships with a production architecture for AWS and one for Azure, using the same diagram grammar so you can read them side by side. Your cloud, your account, your bill.
Amazon Web Services
- Compute
- ECS Fargate (api, mail-ingress, sweeper, worker) behind an ALB
- Data
- Aurora Serverless v2 PostgreSQL, ElastiCache Redis
- Storage and edge
- S3 for raw inbound MIME and attachments, CloudFront for the front end and the portal
- Identity
- Cognito federated to the customer IdP for agents; a second pool for portal users
- Observability
- CloudWatch and OpenTelemetry; SLA sweeper lag is a paging alarm, because a late sweep is an invisible breach
- Infrastructure as code
- Terraform, one module per environment
Services
The decision worth arguing about
Inbound mail lands through an SES receipt rule that writes the raw MIME to S3 and notifies SNS, and the non-obvious decision is how a reply gets attached to the right ticket. The standard trick is plus-addressing — support+1234@example.com — and it breaks in the field more often than vendors admit: distribution lists rewrite the envelope, some corporate gateways strip subaddressing entirely, and a customer forwarding the thread to a colleague loses it altogether. So Frontdesk threads primarily on RFC 5322 Message-ID, In-Reply-To and References, which survives forwarding and rewriting because it lives in the headers rather than the address. The cost is a table of every Message-ID the system has ever emitted, indexed and never pruned, which for a desk handling 40,000 tickets a month is roughly two million rows a year — small, but it must be treated as permanent, because pruning it is how you get a reply to a two-year-old ticket opening a new one. Two fallbacks sit behind it: a signed token in the subject line, and finally a requester-plus-subject-similarity match that creates a linked ticket rather than guessing. SLA timers run as a single sweeper scanning an indexed breach_at column every 30 seconds rather than a scheduled event per ticket, which caps breach detection granularity at half a minute and costs nothing at any ticket volume.
Microsoft Azure
- Compute
- Container Apps (api, mail-ingress, sweeper, worker) with KEDA scaling on queue depth
- Data
- PostgreSQL Flexible Server, Azure Cache for Redis
- Storage and edge
- Blob Storage for raw MIME and attachments, Front Door Standard for edge and WAF
- Identity
- Entra ID for agents, Entra External ID for portal users
- Observability
- Azure Monitor and Application Insights, with sweeper lag as an alert rule
- Infrastructure as code
- Bicep, azd-compatible layout
Services
The decision worth arguing about
Azure gives you a better mechanism for SLA timing than AWS does, and it is worth using rather than porting the sweeper across unchanged. Service Bus supports scheduled messages with an arbitrary future enqueue time, so each ticket can carry its own one-shot timer that fires exactly at the breach moment — no polling, no 30-second granularity, no sweeper to fall behind during a queue backlog. SQS caps delivery delay at 15 minutes, which is why that shape is unavailable on AWS without either EventBridge Scheduler at one schedule per ticket or the sweeper we actually use. The trade-off is bookkeeping: cancelling or moving a scheduled message requires holding its sequence number, so every SLA pause, reassignment or policy change has to find and cancel the old message and enqueue a new one, and a dropped sequence number leaves an orphan timer that fires on a ticket already closed. Frontdesk stores the sequence number on the SLA clock row and treats a fired timer for a resolved ticket as a no-op, which makes the failure mode harmless rather than merely unlikely. We run this on Service Bus Standard; Premium's fixed monthly floor is only worth it past roughly 1,000 messages a second, which no support desk of this size reaches.
Sources
Every price on this page, with the page we read it from and the date we read it.
| Product | Plan | List price | Checked | Source |
|---|---|---|---|---|
| Zendesk Suite | Suite Professional | $115 / seat/month | 2026-09-05 | www.zendesk.com/pricing/ Paid yearly. Suite Team lists at $55 per agent per month; Suite Enterprise is quoted by sales. |
| Freshdesk | Pro | $55 / seat/month | 2026-09-05 | www.freshworks.com/freshdesk/pricing/ Billed annually. Growth lists at $19 and Enterprise at $89 per agent per month. |
Should you still be paying for Zendesk Suite?
Two weeks, fixed price. We audit what you actually use, map it against Frontdesk, cost the replacement on your own AWS or Azure account, and give you a delivery plan. If the honest answer is to keep the licence, that is what the report will say.