Comparison
Refik and Shopify Inbox, read side by side.
One of these two is free and published by the platform both of them run on. The other is ours, it is paid, and it is billed by the conversation. That asymmetry is the reason the useful question here is not which one costs less — it is what each one is actually wired to do, and what neither of them does. The rows below answer that, and every one of them carries the date it was read and the page it came from.
Method
Two dates on their side, one on ours, and an empty cell that means something.
The Shopify Inbox column was read twice, and the two readings are kept apart rather than merged. The price, the publisher and the two self-descriptions come from the app listing as it stood on 10 October 2026. Everything about what the assistant does — the surfaces it puts up, the channels it covers, where its answers come from, what the seller sees — comes from an earlier pass on 18 September 2026 that worked through that listing and the help pages behind it, one dimension at a time. Each row header says which of the two dates it belongs to, because a price moves faster than a feature list and collapsing the two would quietly hide that.
The Refik column was read on 4 October 2026 out of our own source code, 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. That reading has a limit worth stating plainly: it followed each claim down to the lines that produce it, so every cell on our side means “the code builds this”. It does not mean “we watched it happen in a live shop”. Those are two different sentences, and only the first one was measured.
An empty cell is a third state and it is deliberate. It does not mean “they do not have it”. It means we did not read it on either of those days, 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 the table. And where a cell does say something is absent, the wording is not a guess either: the September pass only recorded an absence when a page’s own complete list — its channel list, its feature taxonomy, its “Works with” line — did not contain the item. Anything it looked for and simply could not find was left unresolved, and an unresolved reading becomes an empty cell here rather than a sentence.
Two things are missing from this page on purpose. There is no verdict row and no score, because a free app from the platform and a paid app from a third party are not two prices of one thing and dividing one by the other would produce a number that looks like a measurement and is not one. And there is no sentence anywhere here arguing that a paid assistant beats a free one. Nothing on this page measures that. A free tool from the platform costs a merchant nothing to try, which is a real advantage and belongs in the first row, not in a footnote.
The rows
What each one costs, where it answers, and what it is wired into.
Read the first group and the last group together. The first says what a merchant pays; the last says what each assistant can reach. The two are connected in a way that is easy to miss: one of these apps is published by Shopify itself, and that shows up twice in the table below — once as a price, and once as a kind of shopper data a third-party app is not able to read at all.
Shopify Inbox read from apps.shopify.com/inbox, and from that listing together with the help pages under help.shopify.com/en/manual/inbox. Refik read from its own source code and from the pricing page in this repository.
| What the row measures | Refik | Shopify Inbox |
|---|---|---|
| What it costs, and who stands behind it | ||
| The price, in each side’s own words | Starter, $39 a month or $390 a year, for the whole shop. Growth, $99 a month or $990 a year. Premium, $249 a month or $2,490 a year. What the money buys is a band of conversations in the billing period: 300, 1,000 or 3,000. | “Shopify Inbox Pricing Free Free”. |
| Charges above the plan, and a trial | On monthly billing, $0.15, $0.12 or $0.10 for a conversation past the band, depending on the plan. On yearly billing, none. Every plan opens with a 14-day free trial. | |
| Who publishes it | We do, as a third-party app. It is not listed on the Shopify App Store at the time of writing, so there is no listing page to read it from. | “Developer Shopify”. |
| The Built for Shopify badge | No. The badge is awarded to an App Store listing, and there is no listing. | Yes, the listing carried the badge on the day it was read. |
| How each one describes itself | A shopping assistant on the storefront: it recommends, it looks up an order, and it hands a hard question to a person rather than guessing at it. | “Shopify Inbox - An AI sales associate that knows your customers | Shopify App Store”, and from the same page: “Inbox puts an AI-powered sales associate on your storefront. Buyers can ask questions and get help finding the right products from your catalog.” |
| Where it answers | ||
| The chat surface on the storefront | A chat bubble on the online store, with the colour, the greeting and eight merchant-written prompt chips set from the theme editor. The position is only half adjustable: the phone bottom offset can move, the right edge cannot, and there is no light or dark theme switch. | A chat window on the online store, with background and text colour, icon, button position, corner radius and typography set from the theme editor, a greeting message, an automatic first reply, and up to one hundred clickable prepared answers inside the window. |
| Surfaces beyond the chat window | Four more, all on the storefront: a question block on the product page, help inside the search results, a question bar, and a routine suggestion. A cart-page surface as well, gated to the Growth plan and above and off until the merchant turns it on. | |
| 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 paying. | The web store, and “Email chat”. The listing’s own channel list does not contain WhatsApp, Instagram, Messenger or SMS. |
| The language a shopper is answered in | Eleven languages are detected, three of them act on it — Turkish, English and Spanish. Everything else falls back to the store language, so a shopper writing in a fourth language gets a reply in the shop’s own tongue rather than their own. | “Responds in the customer's chat language”, and a staff greeting is translated to the browser language automatically. The number of languages the assistant itself covers was not stated on the pages read. |
| What it is wired into | ||
| Where the answers come from | One store’s Admin API: a full catalogue pull, then a product update and delete queue and an hourly refresh, with three counters watching for a silent truncation. Return, shipping and privacy policies are pulled from the shop’s own policy records and offered to the merchant as a draft rather than applied on their behalf. | “Automatic connection to catalog, inventory, and policies”, with the policies attached without the merchant wiring them up. |
| What a merchant can add by hand | Hand-written question and answer pairs, capped at three hundred records. No page crawling, no document upload, and no ingestion of the shop’s own pages or blog posts. Corrections generalise by wording rather than by learning, so a correction reaches a near-identical question and stops there. | “Knowledge Base facts and files”, plus the shop’s pages and blog posts. Training runs on practice scenarios and on real conversations, scored up or down, with an improved reply proposed for review; a change to the assistant’s persona is never applied automatically. |
| Order lookup | Yes, from the same store’s Admin API, and the assistant is told never to say a refund has been approved. | “Order updates”, with the customer required to sign in before the order can be looked up. |
| Personalisation from the shopper’s Shop account | Not available to us. A third-party app cannot read a shopper’s purchase history from across Shopify, so recommendations are built from one store’s catalogue and the conversation itself. | A buyer signed in with Shop gets recommendations drawn from preferences and purchase history across Shopify, and recommended products can be added straight to that customer’s cart. |
| Cart reminders and complementary products | A reminder on the site only: a shopper who comes back after half an hour sees it, at most once in a day. No email, no SMS and no cart webhook. Complementary products are suggested on three surfaces — in the conversation, as a grid on the product page, and in a bubble after something is added. | The listing’s own automated-response list does not contain cart recovery, and its feature list does not contain upsell or cross-sell. |
| The seller’s side of it | A console inbox in the browser, with conversation counts against the previous period, response times at the median and the ninetieth percentile, the questions it could not answer recorded, and one click from such a question to the correction. Team roles, notifications and a conversation export are written in the code as planned and none of the three is built; there is no service-level target either, only the measured times. | An inbox on the web and in an iOS and Android app, with search, filters and assignment, a staff “online store chat permission”, notification settings and push notifications, an “Avg. response time” figure, a “Satisfaction rate”, and counts of “Assisted sessions” and “Assisted orders”. |
| Other apps it connects to | Klaviyo is connected. A ticket can be opened in one help desk, with an encrypted key and an hourly job behind it, and the settings screen for choosing which help desk is not built — so a shop on a different one cannot wire the handover up from our panel. Subscription apps, analytics tags and advertising pixels are all absent; the integrations page records the first and the security page the other two. | The listing’s own “Works with” line names the Shopify admin and the online store, and nothing else. |
- Charges above the plan and a trial, their cell is empty. The listing printed one line for price and said nothing about usage charges or an allowance, and we did not read a billing page behind it. A free app may well have nothing to put there, but that is our inference rather than their statement, and an inference does not belong in a cell.
- Surfaces beyond the chat window, their cell is empty. A product-page question block, a search-bar surface and a cart-page surface were all looked for on the help pages and none of the three was found. “We did not find it” is not the same sentence as “it is not there”, and the pages we read were about the chat window.
- One cell on their side has a hole in it, and it is named. In the language row, the quoted line says the assistant replies in the shopper’s chat language; the number of languages it covers was never stated. The listing itself is offered in twenty-one interface languages, Turkish among them, but that is the merchant’s admin interface and not the assistant’s replies — putting one in the other’s place would be a different claim.
- Part of the channel row rests on a page that is not theirs. The absence of the two social channels is recorded because the listing’s own channel list does not contain them. A third-party article says those channels were removed in July 2023; our notes mark that as third-party and unconfirmed on the help pages, so it is not in the cell.
- No cell on our side is empty, and that is not a boast. Our source is our own code, so the reading reached every row. Its limit is the one stated in the method: each of our cells means the code builds the thing, not that a shopper has been watched using it.
- Neither side’s answer quality is here. Not theirs, not ours. Measuring it would need the same shoppers asking the same questions of both assistants on a real catalogue, and that has not been done on either side.
The difference that matters
One of them is the platform. That is not a feature, it is a position.
Almost everything else in the table follows from a single structural fact, and it shows up in two rows rather than one. The first is the price: an app published by Shopify can be given away, and a third-party app that pays for its own hosting and its own model calls cannot. The second is quieter and matters more. A buyer signed in with Shop brings preferences and purchase history from across Shopify with them, and the platform’s own app can read that. A third-party app cannot — not because we chose not to build it, but because that data is not reachable from outside. Our cell in that row says “not available to us” and it will keep saying that.
The same position cuts the other way in exactly one place, and it is the last row. The listing’s own “Works with” line names the Shopify admin and the online store and nothing else, which is a reasonable thing for a platform app to be: it does not need to reach outward, because it is already inside. A third-party app has to reach outward to be useful at all, and so our row carries a marketing tool, a help desk and a frank note about which parts of that handover are not finished.
There is also a gate on the free app that a merchant should know about before counting on it, and it came out of the same September reading. Its AI staff member needs the newer customer accounts, which the older ones are not compatible with, and a store on one of Shopify’s standard plans. The mode that decides when the assistant answers at all can be set to every conversation, to only when no staff are around, or to never — and never is the default, so an install is not the same thing as a working assistant. Our own equivalent is smaller but real and also in the table: the cart-page surface is held behind the Growth plan and stays off until the merchant switches it on.
What the two genuinely share is worth naming, because it is most of the table’s middle: both put a chat window on a storefront, both read a catalogue and a set of policies without being told to, both look up an order, both hand a question to a person when they should, and both give the seller an inbox with the conversations in it. The integrations page lists what we connect to and what we do not, in the same words as the row above.
Who each one fits
Where we would tell you to install the free one instead.
The free app fits you if the thing you want is a chat window that costs nothing to try, answers from your catalogue and your policies, and lands in an inbox you can read on a phone. It fits you better than we do if your shoppers sign in with Shop, because then the assistant is working from a purchase history we cannot see. It also fits you better if more than one person answers and you need permissions, assignment and notifications today, since all three are on their side of that row and none of them is on ours. And if you want to upload files to a knowledge base, or have the assistant read your own pages and blog posts, that is their row too.
We fit you if the chat bubble is not where your questions actually arrive. Four of our five surfaces are not a bubble: a block under the product description, help inside the search results, a bar on the page, a routine suggestion. Behind the recommendation there is also a two- or three-question quiz whose answers become a stated need rather than a guess, though in the neutral industry pack that question list is empty, so today it only has something to ask in the beauty pack. If the money you lose is lost on a product page before anyone thinks to open a chat window, that is the difference between the two columns. We also fit you if you want the questions nobody could answer written down and correctable in one click, if you want complementary products suggested in three places rather than none, or if you want a conversation to feed Klaviyo.
Neither of us fits you on two counts, and they are in the table rather than hidden. If your shoppers message you on WhatsApp, Instagram or by text, neither column covers it: ours because those channels are not built, theirs because the listing’s channel list does not contain them. And if what you actually need is a person, both products end the path at one. Ours opens a handover, tells the shopper a human will pick it up, and is instructed never to say a refund has been approved. If there is nobody to pick it up, no assistant in either column fixes that.