Comparison
Refik and Freshdesk, read on the same day.
One is billed per agent seat, prices its AI as a separate monthly line on top of that seat, and runs wherever your support team already works. The other is billed per conversation, has no AI line because the conversation is the thing you are buying, and only exists inside a Shopify storefront. That is the whole comparison, and the rows below are the evidence for it — each one dated, each one from a page you can open yourself.
Method
Two sides, two dates, and an empty cell that means something.
The right-hand side of every row was read out of Freshdesk’s own pages on 10 October 2026 — three of them, and nothing else: the pricing page, the product home page and the feature page. No analyst report, no review site, no reseller. The quotes are theirs, word for word, including the odd spacing, because tidying a competitor’s sentence is the first step towards writing it for them. The left-hand side was read out of our own source code on 4 October 2026, and the plan figures come from the pricing page in this same directory, which fails its build if a price in the code changes without the page changing with it.
One of those three pages was a second choice, and it is worth saying so. The feature URL we tried first returned a 404, so the feature reading came from the address that did answer. The site map we would normally use to find the right page refused the request outright. Neither of those changes a price, but both are reasons this page carries a date instead of pretending to be permanent.
Every price quoted on their side is an annually billed one, because those are the figures their pricing page prints beside its billing toggle. The saving they advertise for paying yearly is stated as a percentage, and this site does not print percentages anywhere, so the comparison here uses the prices rather than the discount. Their monthly list prices were not read that day, and so they are not in the table.
An empty cell is a third state and it is on purpose. It does not mean “they do not have it”. It means we did not read it on that day, so printing a dash there would turn a gap in our reading into a claim about their product. Where a cell is empty, the reason is written underneath, with the side it belongs to named.
Three things are missing from this page by design. There is no verdict row and no score: a seat price and a conversation price are not the same unit, and dividing one by the other would produce a number that looks like a measurement and is not one. There is nothing here about how well either assistant answers a shopper, because we did not measure that on either side. And their pricing page carries a self-reported count of the businesses using it, which is not in the table because a vendor counting its own customers is not a property of the product and we did not verify the figure.
The rows
What each side charges for, and where it runs.
Read the first two rows together, then read the fourth. The first two are the reason the rest of the table looks the way it does: a seat price scales with how many people answer, a conversation price scales with how many shoppers ask. The fourth is the one most price comparisons leave out — on their side the AI is a line item that is also charged per seat, so the assistant and the people are billed on the same multiplier.
Freshdesk read from freshworks.com/freshdesk/pricing, freshworks.com/freshdesk and freshworks.com/freshdesk/features; Refik read from this repository and the pricing page.
| What the row measures | Refik | Freshdesk |
|---|---|---|
| What you are billed for | ||
| The billing unit | Conversations in a billing period. Three bands: 300, 1,000 and 3,000. The band belongs to the shop, not to a person, so nobody has to be added to it. | Agent seats. Every price line is written the same way — “$19 /agent/month, billed annually” — so what you owe follows how many people answer. |
| Entry tier, list price in USD | Starter, $39 a month or $390 a year, for the whole shop. | “$19 /agent/month, billed annually”, per seat. |
| Upper tiers, list price in USD | $99 and $249 a month; $990 and $2,490 a year. Same shop-wide unit, larger conversation band. | “$55 /agent/month, billed annually” and “$89 /agent/month, billed annually”. |
| Whether the AI is its own line | No separate line. The conversation is the unit and the assistant is the only thing having it, so there is no plan in which you pay for the product and then pay again for the AI inside it. | “Freddy AI Copilot $29 /agent/month” — a per-seat charge sitting on top of a per-seat plan. |
| Charges on top of the subscription | On monthly billing, $0.15, $0.12 or $0.10 for a conversation above the band, capped at one band’s worth. On yearly billing, none. | “Additional AI Agent sessions $49 /100 sessions”, and “Connector app tasks at $80 /5000 tasks MCP actions $15 /1000 actions”. |
| Paying for one person for one day | “Day passes at $2 /pass”, and on the upper tiers “$7 /pass” and “$12 /pass”. | |
| Free trial | 14 days on every plan, with a conversation allowance scaled to the plan. | |
| Where it runs | ||
| Platforms it connects to | Shopify only. The catalogue, the policies and the order lookups all come from one store’s Admin API, and there is no second platform in the code. That is a limit as much as a focus. | On the three pages read that day, the word “Shopify” appeared no times. |
| Channels a shopper can use | The web storefront, and only that. WhatsApp, Instagram, Messenger, email and SMS are not built, and that is written on the integrations page rather than left to be discovered after the invoice. | |
| Handing a question to your help desk | One help desk is wired end to end, with a live call, an encrypted key and an hourly retry. Freshdesk is not that one, and the settings screen for choosing which help desk to target is not built, so a shop would have no way to point the handover at it from our panel. | |
| How each side describes itself | A shopping assistant on the storefront: it recommends, it looks up an order, and it hands a hard question to a person. | “Boost agent productivity and deliver seamless customer experiences with Freshdesk, an AI-powered customer service solution with omnichannel ticketing and automated workflows.” |
- Day pass, our cell is empty. Our unit is a conversation rather than a person, so there is no seat to open for a day — but a short-term access path was also not something we read in the code on 4 October, and we would rather leave the cell blank than write “none” from memory.
- Free trial, their cell is empty. The three pages read that day did not state a trial length. That is a gap in our reading, not a statement about their product.
- Channels, their cell is empty. Their channel list was not among the pages read. Their own description says “omnichannel ticketing”, which names a category rather than a list, and a category is not something we can put in a row next to five named channels. Ours is written out because a missing channel is the kind of thing a shop finds out after it has paid.
- Handover, their cell is empty. Whether a third-party assistant can open a ticket in their product was not among the facts read on 10 October. Our side of that row is filled in anyway, because the gap is ours and hiding it in a footnote would be the easier thing to do.
- The Shopify count has no positive control. The reading records that the word did not appear on those three pages, but it does not record a word that was found to prove the reader was looking at text at all. So that row says what was read and not that the platform is unsupported; an uncounted zero and a measured absence are not the same line.
- Neither side’s answer quality is here. Not theirs, not ours. Measuring it would need the same shoppers asking the same questions of both, on a real catalogue, and that has not been done.
- No traffic or search figures for either side. They were not measured on 10 October and we are not going to borrow them from a third party that will not show its method.
The difference that matters
A seat price and a conversation price answer different questions.
A seat price asks how many people you need on the other end. It is the right unit when the work is a queue of tickets that humans pick up, and it is why a help desk charges that way: the cost follows the team. A conversation price asks how many shoppers started talking. It is the right unit when nobody is meant to pick anything up — when the assistant answers, and a person only appears for the questions it refuses to guess at.
The add-on line is where the two models pull hardest in opposite directions. On their side the assistant is sold next to the seat and priced the same way, so adding a person adds the AI charge again, and the sessions that assistant runs are metered separately once the plan allowance is used. On our side there is one number for the shop and a known price per conversation above the band, and on yearly billing not even that. Neither arrangement is a trick; they are simply built for different shapes of work. But a shop comparing the two should compare the whole bill rather than the first line of it, because the first line is where a per-seat plan looks cheapest.
That is also why the two are not really alternatives for the same job. A shop that answers email, phone and social messages from several agents has a help desk problem, and a storefront assistant does not solve it. A shop whose owner is the only person answering, and whose pain is the same nine questions arriving before someone decides to buy, has a storefront problem — and buying seats for it means paying for a queue nobody is standing in, plus an AI line on each of those empty seats.
There is a case where both are true at once, and it is common: a shop with a help desk already in place that wants the storefront to stop sending it the easy questions. For that case the handover matters more than the price, and the honest state of ours is in the table rather than down here. The integrations page lists what is connected and what is not, in the same words, and the pricing page prints the bands and the per-conversation prices that this table quotes.
Who each one fits
Where we would tell you to buy the other one.
A help desk fits you if support arrives through more than one door — email, phone, a social inbox — and more than one person answers it. If you need a shared queue, assignment, reporting on response times across channels, or anything that lives after the sale for weeks, that is a help desk’s job and not ours. Our channel list is one channel long and we are not going to pretend otherwise. If you also want to hand a seat to a seasonal helper for a single busy day, a day pass is a real answer to a real problem and we do not have one.
We fit you if the questions that cost you money arrive before the order exists: which of these two is right for me, is this in stock in my size, where is the order I placed on Friday, can I send this back. Those are storefront questions, they arrive on a product page, and answering them needs the catalogue and the policies of one shop rather than a ticket queue. One shop, one bill, and a band you can read before you install.
Neither of us fits you if what you actually need is a person. Both products put a human at the end of the path; ours does it by opening a handover and telling the shopper a person will pick it up, and it is told never to say a refund is approved. If there is nobody to pick it up, no assistant on either side of this table fixes that.
If you are already running their product and want the storefront covered too, the thing to check first is not the price but the join: today our handover points at one help desk and the screen for changing that is not written, so the two would sit side by side without talking. That is a row in the table above, not a disclaimer at the bottom of a page.