Build (Webflow · Xano · Shopify · Cloudflare · MCP) alongside the Buy SaaS most Shopify stores already run — Klaviyo, Sprinklr, Salesforce, Gorgias, Braze, Attentive. Coexistence-first — lower cost, easier org-wide, optional non-destructive migration · June 13, 2026
Live chatbot demo: omenphase1-1.webflow.io ·
CRM Sync: crm-sync.webflow.io ·
PIM Sync on Shopify: apps.shopify.com/pim-sync
The benefit, up front: an organization adds an omni-channel, AI/API-first commerce layer that lowers cost — flat infrastructure (~$100–150/mo) instead of per-seat, per-ticket or per-conversation metering — and is easier for the whole organization to use (one identity, one tool surface, one place to manage consent and access). It is additive: it runs alongside the tools you already use, so adding it also offsets fee, security and risk-dependency exposure with nothing ripped out. Under the hood it is the Chat-Commerce Brain — the MCP Chatbot stack (Botpress chat runtime · Xano identity · Shopify commerce · Cloudflare worker) — a multi-tenant MCP server (9 tools) that drives search → add-to-cart → checkout, orders and returns, and AP2 autonomous purchase under a consented mandate. Xano holds identity, consent and entitlement as the source of truth; Webflow hosts the site and FAQ source; any MCP-client agent runtime can drive it, with Botpress as the reference implementation.
ucp_* events, versioned consent, AP2 + MCP).gid://) and Google/Shopify GID identity. The Brain binds language, catalog and identity into one omni-global segment across applications.The Buy options at a glance — what each single-tenant SaaS does in chat and what it costs per Shopify instance — with the Build row (MCP Brain) at the top.
| Vendor | Sells in chat | Checkout in chat | Autonomous buy | Fee / Shopify instance | Relationship to Brain |
|---|---|---|---|---|---|
| MCP Brain | Yes | Yes | Yes (AP2) | Multi-tenant — ~$1–5 marginal | — |
| Gorgias | Partial | No | No | $10–900/mo per store | Coexist; optional gradual migration |
| Sprinklr | Bots only | No | No | $50k+/yr contract | Coexist beside |
| Klaviyo | Yes (K:AI) | Yes | No | Plan + $0.70/convo per store | Closest overlap; coexist |
| Braze | No | No | No | MAU-priced contract | Pure complement |
| Attentive | Yes (SMS) | No — links out | No | Quarterly minimums per store | Channel complement |
Sources: vendor docs and 2026 pricing reports (Lindy, Chatarmin, Vendr, StackScored, Retainful, vendor press releases).
Four capabilities that decide a chat-commerce deal — agentic checkout (delegated purchase under mandate), RMA (conversational returns/exchanges), a customer-service knowledge base grounding answers, and globalized vectorized search (multilingual semantic retrieval across catalog and KB). The RMA specialists join the matrix here. Read it as Build (the MCP Brain row) versus Buy (every row below it).
| Platform | Agentic checkout | RMA | CS knowledge base | Global vector search |
|---|---|---|---|---|
| MCP Brain | Yes — AP2 mandate + in-chat checkout | Yes — direct Shopify returns tools | Yes — Webflow CMS FAQ + runtime KB | Yes — bge-m3 multilingual KB (en + APAC), locale-gated fallback; product search finishing semantic upgrade |
| Gorgias | No | Via Loop/AfterShip Actions | Yes — Help Center grounded | Partial — multilingual AI over KB |
| Sprinklr | No | Custom enterprise workflows | Yes — enterprise KB + agent assist | Yes — 100+ languages, semantic (enterprise-static, services-gated; not paired with Shopify tools) |
| Klaviyo | Partial — shopper must be present | Partial — order issues; integrations | Yes — learns storefront + docs | Partial — brand-trained RAG, English single-stream |
| Braze | No | No | No — not a service product | No |
| Attentive | No — links out of SMS | Partial — answers, links to portal | Yes — Concierge brand KB | Partial — SMS-centric |
| Siena AI | No | Yes — executes via Loop/AfterShip | Yes | Yes — 100+ languages |
| DigitalGenius | No | Yes — deepest; visual damage AI | Yes | Yes — enterprise multilingual |
| Loop / AfterShip | No | Yes — the portal execution layer | No | No |
gid://) and Google/Shopify GID identity. The Brain has no seam — the multilingual agent, the gid-addressed catalog and the GID identity are one omni-global segment across applications. See Global-First Language Architecture below; the only piece still finishing is search_products’ keyword→semantic upgrade.The Brain separates the conversation surface from commerce execution. The chat runtime is swappable; everything below the MCP line is the product — this is the Build stack (Webflow · Xano · Shopify · Cloudflare, wired by MCP) that you own — designed to run alongside your existing tools, not in place of them.
/auth/me is the canonical identity) and grants consent. create_mandate issues a standing authorization with an amount cap.caps.ap2) and bounds the mandate amount. A signed offline token is projected so revocation also works without a live Xano call.agentic_checkout under the mandate. The shopper does not need to be present.ucp_mandate_used and ucp_checkout_completed events are emitted to GA4 under the canonical identity; revoking the entitlement drops the projection and kills the agent’s purchase authority — including offline.The same tool handlers also back the REST facade, so a helpdesk platform (e.g., Gorgias custom Actions) can drive the identical flow with the consent step hosted on a worker-rendered, signed confirmation page — purchase authority never leaves the merchant’s stack.
Three structural problems the Buy SaaS apps inherit by design — protocol fragmentation, the identity/signals gap, and the purchase-authority ceiling — that Building on Shopify/Google open rails resolves rather than meters around.
Every chat/CX vendor in this audit (Gorgias, Sprinklr, Klaviyo, Braze, Attentive) exposes classic REST/JSON APIs with flat IDs. Shopify, meanwhile, is GraphQL-only for new apps, addressing every object with a global ID (gid://shopify/Product/…, gid://shopify/ProductVariant/…). And the emerging agent-payment rails — Google’s AP2 mandate exchange, OpenAI/Stripe’s Agentic Commerce Protocol — are JSON-over-HTTP message protocols that are neither REST-resource-shaped nor GraphQL. No chat vendor natively bridges all three worlds; merchants are left gluing them together per integration.
Solution: the Brain is the translation layer. Its tools accept flat JSON arguments (a query, a variant ID, a quantity); internally the worker composes Shopify GraphQL and handles gid addressing; externally it speaks standard MCP (JSON-RPC over Streamable HTTP) plus an optional REST facade for platforms like Gorgias Actions. Shopify’s gid complexity and AP2’s mandate handshake never leak to the chat platform — the runtime sees one simple, stable tool surface.
Each vendor traps identity and behavioral signals in its own CDP: Klaviyo profiles, Braze user data, Attentive phone-number identity. A Google or Shopify sign-in is just a login event to them, conversation signals never join commerce outcomes under one identity, and switching vendors forfeits the graph. The result is a signals gap — the moment a shopper converses, researches and then purchases is split across systems that do not share a key.
Solution: the Brain anchors identity in merchant-owned Xano — Google and Shopify act as login providers, but Xano /auth/me is the canonical identity, with consent and entitlement stored beside it. Every commerce event the Brain executes (ucp_checkout_created, ucp_checkout_completed, ucp_mandate_created, ucp_mandate_used) is emitted to GA4 keyed to that identity, and the same event stream can feed Klaviyo, Braze or Attentive journeys. The merchant keeps the identity graph; vendors become consumers of it, not owners.
Even the strongest competitor capability (Klaviyo’s in-chat checkout) is consumer-driven — the shopper must be present and tapping. No vendor offers delegated purchase: a standing, revocable authorization under which an agent may complete a transaction on the customer’s behalf.
Solution: the Brain’s AP2 layer. A consented mandate (create_mandate) carries an amount cap and is gated twice — user consent in Xano, and a tenant/user entitlement that must actively grant AP2. agentic_checkout then executes within those bounds, every use is logged and signaled, and revoking the entitlement kills the authority offline. This is the capability gap none of the five vendors closes, and the basis for replenishment partnerships with Braze and Attentive.
The Buy options, profiled — what each does well, what it costs, and how the Build stack coexists with and complements it — with optional, gradual hand-off only where a merchant chooses.
Ticketing, macros, and order actions inside a shared inbox; AI Agent answers and deflects but cannot build a cart or complete checkout. Pricing is per ticket ($10–900/mo tiers) plus $0.90–1.00 per AI interaction, which also bills as a ticket — automated conversations are effectively double-billed. Its AI Agent supports custom HTTP Actions, so the Brain can plug in via a REST facade; the cleaner end-state is the Brain owning storefront chat with escalations creating Gorgias tickets.
Omnichannel contact center: voice, social listening, workforce management, Digital Twin bots. Self-serve plans (formerly ~$249/seat) were discontinued April 30, 2026; new customers face ~$50k+/yr enterprise contracts with year-one costs typically 15–30% higher. Not commerce-native; no in-chat checkout. The Brain coexists beside it — integrating into Digital Twin would route every change through Sprinklr enterprise services and strengthen their renewal story, not yours.
K:AI Customer Agent (launched 2025, expanded March 2026) recommends products, adds to cart, applies promotions and completes purchases in chat, SMS, email and soon WhatsApp — the Brain’s core loop, shipped by a vendor most target merchants already pay. It is an add-on: ~$140/mo introductory ($200 regular) plus $0.70 per resolved conversation, on top of a profile-scaled Klaviyo plan. Differentiation: the Brain is cheaper at volume, runtime-open via MCP, merchant-owned on identity, resellable per tenant, and uniquely offers AP2 autonomous purchase. Klaviyo’s edge: zero-infrastructure packaging and multi-channel reach.
Read of the references: both headline numbers are service deflection and recommendation-driven sales. Neither showcases completed in-chat checkout at scale, and nothing resembles autonomous purchase — a year after launch the reference base is two flagship studies, which marks an early-adopter window. A demo that completes a purchase in the conversation (and shows the mandate flow) outweighs a deflection-percentage slide.
Cross-channel engagement orchestration (push, in-app, email, SMS, WhatsApp) with RL-driven optimization from the $325M OfferFit acquisition and Project Catalyst. No conversational surface, no checkout, no shopper-facing agent — its “agentic” AI optimizes campaigns. MAU-priced enterprise contracts from ~$30–60k/yr. The play is integration: Braze decides when and what to say; the Brain is the execution layer that completes the purchase (replenishment journey → AP2 reorder → conversion event back).
SMS-first marketing for DTC brands; Concierge is a genuine conversational AI personal shopper over SMS, but SMS cannot host a checkout — Concierge converts by linking out to the site. Thread 2026 announcements (Brand Voice 2.0, Reporting Agent) target marketing operations, not transactions. Custom pricing with quarterly minimums (~$8–12k+/yr effective) plus per-message and carrier fees. Same partnership shape as Braze, with an RCS angle: as rich in-thread interactions arrive, Attentive will want a checkout-execution endpoint behind its messages.
The Build vs. Buy math at one month of volume: Buy meters per conversation, per ticket or per seat; Build is flat — LLM tokens plus marginal infra.
| Stack | Monthly cost | How it scales |
|---|---|---|
| MCP Brain | ~$100–150 | Flat; LLM tokens only |
| Gorgias | ~$1,260+ | Per ticket + $0.90–1.00 per AI interaction (double-billed) |
| Klaviyo Customer Agent | ~$800+ | $0.70 per conversation + base plan |
| Attentive Concierge | Bundled | Platform minimums + per-message + carrier fees |
| Sprinklr / Braze | N/A | Enterprise contracts; not sold at this scale |
What the Brain requires from its chat runtime — five things, all met by Botpress and by any comparable MCP-capable platform: (1) an MCP client over Streamable HTTP (Botpress’s Autonomous Node); (2) the ability to attach the crm_t_ tenant token as a Bearer header on tool calls; (3) a tool-calling LLM strong enough for multi-step loops (search → cart → checkout in one conversation); (4) a webchat embed for the host site; (5) secret hygiene — the token lives in bot configuration and is never rendered into the conversation (the JWT-shield rule).
| Botpress tier | Monthly fee | Included | Brain fit |
|---|---|---|---|
| Free / pay-as-you-go | $0 + usage | 500 incoming msgs · $5 AI credit | Scripted demos only |
| Plus | ~$89–150 + AI | ~250 conversations incl. AI quota · human handoff · no branding | Pilot / single merchant |
| Team | ~$495–750 + AI | ~1,500 conversations · RBAC · collaboration | Managed multi-bot / agency |
| Enterprise | ~$2,000+ custom | Custom quotas · SSO · support | White-glove tier |
The binding limit is AI quota, not message count: one commerce conversation’s Autonomous-Node loop burns 20–50k tokens carrying 9 tool schemas plus product-JSON results — budget roughly 3–10× the AI spend of a FAQ bot per conversation. When the quota runs out mid-month the bot silently stops responding, which from the outside resembles an auth failure; triage order is Botpress quota → worker 401s → Shopify token health. In the BYO model these fees sit on the customer’s bill and the Brain is licensed per tenant with the revocable, shop-scoped crm_t_ token as the license key; in managed models they are pass-through costs to price in.
| Model | Infra cost / tenant·mo | Chat-runtime cost | Suggested list price |
|---|---|---|---|
| Multi-tenant · BYO runtime | ~$1–5 | $0 — customer’s Botpress workspace | $99–199/mo |
| Multi-tenant · managed shared workspace | ~$1–5 | Pooled conversations + AI quota | $249–349/mo |
| Single-tenant · dedicated worker | ~$10–25 incl. ops | Optional managed workspace (~$150/mo pass-through) | $499+/mo, annual |
Why infrastructure is never the cost driver: a Cloudflare Workers paid plan is $5/month with ~10M requests included; a tenant doing 1,000 conversations generates tens of thousands of worker requests — pennies. Per-tenant state in KV (config, tokens, mandates) is negligible. The real marginal costs are LLM tokens (externalized to the customer in the BYO model) and operations: in single-tenant, each instance carries its own ADMIN_KEY, KV namespace, deploy cadence and monitoring, which is what the higher tier prices in. Multi-tenant isolation rides crm_t_ tenant tokens plus per-shop config on one worker — hundreds of tenants fit on a single deployment.
Knowledge splits into two layers with very different economics. Tenant-scoped knowledge (the merchant’s FAQ, policies, catalog behavior) lives in per-shop config, Xano and the runtime’s knowledge base — it grows linearly with tenants but each increment is small. Global knowledge (commerce reasoning, returns logic, AP2/consent explainers, tool-use patterns) is authored once in the worker and the shared skill layer and serves every tenant at zero marginal cost — this is the margin engine of the multi-tenant model. The constraint to watch sits in managed-Botpress variants: vector-DB storage (1–2GB per workspace tier) and pooled AI quotas mean that at scale, clean isolation forces workspace-per-client — i.e., a Botpress subscription per customer. The BYO model externalizes both the quota and the storage ceiling, which is why it is the default recommendation.
One worker deployment serves every tenant (“omni-tenant”); what actually scales — or throttles — is the upstream APIs. GraphQL’s economics compound in the Brain’s favor:
| Scaling axis | Shopify/Google GraphQL | Vendor REST APIs |
|---|---|---|
| Rate limits | Per app × per store bucket — each tenant adds capacity | Per account — pooled across tenants |
| Calls per tool run | One shaped query (product + variants + stock) | N+1 resource fetches |
| Payload to the LLM | Exact fields → lean context, fewer tokens | Full resources → context bloat |
| Tenant isolation | Per-store token in KV, self-healing | Per-account keys to rotate |
Shopify Admin GraphQL meters a calculated-cost leaky bucket per app per store. Because every tenant is its own store, an omni-tenant Brain inherits a fresh quota with each merchant onboarded — throughput scales with the tenant count instead of against a global ceiling. Per-tenant admin tokens live in KV with the self-heal / client-credentials fallback, so a dead token degrades one tenant, never the fleet. Google services behave the same way: OAuth sign-in and GA4 events are scoped per project and per property, with per-tenant properties available where merchants want their own analytics.
Vendor REST APIs invert this. Integrate Gorgias, Klaviyo or Attentive at platform level and their per-account rate limits pool across all of your tenants — the busiest merchant throttles the rest unless you hold one vendor account per tenant. That is the architectural reason the Brain keeps vendor REST integrations at the edge (event sinks, ticket handoffs) and keeps the transaction path on per-tenant GraphQL instances. The Cloudflare Worker itself is stateless and horizontally scaled at the edge — it is never the bottleneck; single-tenant dedicated workers are a compliance choice, not a throughput one.
GraphQL’s single shaped round-trip also matters inside the agent loop: fewer upstream calls per tool invocation means lower latency per Autonomous-Node step and smaller tool-result payloads — which directly cuts the LLM token burn that dominates per-conversation cost.
The one axis the enterprise vendors led on — globalized multilingual search — is now the Brain’s, and it arrives coupled to the multi-tenant suite rather than sold as a separate localization SKU. Klaviyo’s K:AI — the closest functional overlap — is effectively single-tenant, English, single-stream: one brand-trained RAG per account, one language model per conversation. The Brain is Global-First by construction: localization is a property of the data layer, and the answer path falls back across languages instead of dead-ending in English.
Every chatbot answer resolves through a tiered cascade whose vector tiers are filtered by the conversation’s resolved content locale (market → geo → Accept-Language → persona). The retrieval index is multilingual: catalog, KB articles and product-manual PDFs embed with BAAI bge-m3 (1024-d, 100+ languages) into Cloudflare Vectorize, so an English query and a Japanese, Korean, Thai or Vietnamese one hit the same semantic space and return locale-correct passages. A script-level language guard drops cross-lingual bleed (a passage in a script the locale never uses is rejected), and the open-pool fallback fires only when the locale-correct tiers miss — so the shopper never gets a foreign-language answer, and never a hard “no result.”
PIM Sync is the localization spine. Market variants, translations, prices and currencies live in the Xano PIM layer, and publishing is driven by dynamic ISO detection — ISO 639 language + ISO 3166 country/market resolved per request (country TLD / host map, market param, Accept-Language, geo) → the matching locale build, hreflang trio, currency and persona. New markets are additive: enable a locale in the PIM layer and the catalog, KB and chatbot inherit it — ad-hoc language versions provisioned on demand, no per-market re-platform. That is the core tenet of an Enterprise Omni-Tenant strategy: one deployment serves every tenant and every market, with localization owned by the data layer instead of bought as a separate product. By contrast, a single-tenant app pinned to a single-tenant Shopify store only works as an isolated, single-market build — each additional market means another app instance, another store and another contract, so markets multiply cost instead of inheriting it. Global-First makes markets additive; the single-tenant pairing makes them duplicative.
The Brain couples three planes the incumbents sell — and meter — separately: PIM (catalog + localization), CRM (identity, consent, entitlement) and the chatbot (agent runtime). Because they share one identity and one deployment, the suite scales across both SaaS and e-commerce tenants on the same rails. The competitor model is a fee per application — a Klaviyo agent add-on, a Gorgias plan, an Attentive minimum — bolted to a single-tenant account with single-stream, English-first language modeling. Coupling the suite is the differentiator: globalization, identity and commerce arrive together at one marginal cost, not as three contracts in one language.
Where Klaviyo breaks — the seam. Klaviyo’s Language-Based AI sits on one side of a seam and the commerce graph sits on the other: its RAG is trained per brand and in English, while the catalog and identity it would act on live in Shopify (GraphQL gid://) and Google/Shopify sign-in. The two never share a key, so a multilingual conversation cannot resolve to the same catalog object or the same customer segment across applications. The Brain removes the seam: the multilingual agent, the gid-addressed Shopify catalog and the Google/Shopify GID identity are bound under one Xano-canonical identity — one omni-global segment that spans applications (SaaS and e-commerce), in any language. Language is an attribute of that segment, not a separate AI product bolted alongside it.
Where Sprinklr breaks — static KB, unpaired from Shopify. Sprinklr leads on raw language coverage (100+ languages, semantic), but its knowledge base is enterprise-static: per-locale content changes route through Sprinklr professional services and custom workflows, not a self-serve update, so a new market’s KB is a project, not a config change. And it does not pair with Shopify’s native LLM modeling tools — the gid-addressed catalog and Shopify’s own Knowledge Base (its built-in search_shop_policies_and_faqs MCP tool). Incumbents re-train a separate brand KB that is decoupled from Shopify; the Brain instead rides Shopify’s own KB and layers a locale KB on top. The Brain inverts both Sprinklr limits: the layered KB is dynamically updated per locale through the data-layer loops (Webflow → Xano → locale-tagged Vectorize; event-driven content-drain refresh), and it is paired directly with Shopify’s LLM tools in the answer cascade (Shopify’s own Knowledge Base first, then the locale-filtered bge-m3 KB). A new locale goes live by editing the data layer, and every answer grounds on the live Shopify catalog — no services engagement, no stale translation.
An SLA binds only the vendor who issues it — no layer of the stack underwrites the composite, and Xano’s SLA covers the Xano instance alone. What each layer actually offers:
| Layer | SLA availability | Tier required | What it covers |
|---|---|---|---|
| Xano | 99.9%+ uptime | Scale / Enterprise dedicated instance | Identity, consent, entitlements, mandates |
| Shopify | None — even on Plus | N/A (publishes ~99.9x% historical) | Checkout execution, best-effort |
| Botpress | Enterprise plan only | Enterprise | Chat runtime (customer’s bill in BYO) |
| Cloudflare Workers | Enterprise contract only | Enterprise | The Brain itself |
Composite math works against any paper promise: serial dependencies multiply, so three honest 99.9% layers chained together yield ~99.7% — roughly 26 hours per year of theoretical exposure — regardless of any single vendor’s commitment. Shopify is the unfixable hole: it offers no contractual SLA at any tier, which means no competitor in this audit can do better on the checkout layer either.
Offer an SLO on the worker layer you control, with the standard carve-out for third-party service interruptions (which covers the Shopify hole no vendor can close). When a tenant contractually requires a credit-backed SLA, that is precisely what the single-tenant tier ($499+/mo, annual) funds: the upstream enterprise contracts — Xano dedicated instance, Cloudflare Enterprise, Botpress Enterprise — that make a real commitment possible. SLA demand is therefore a pricing signal, not a blocker: it routes the prospect to the tier built for it.
Coexistence is the default; migration is optional, phased and reversible. If a merchant chooses to consolidate, here is the gentle cutover sequencing per incumbent — coexist paths first, at the merchant’s pace, with identity and order data staying on Shopify the whole way (nothing moves that can’t be rolled back).
gid-addressed catalog and GID identity as one omni-global segment built on Shopify + Google’s native omni-channel tools, not a fee-based single-tenant silo.Net positioning: coexistence first. These are mature, well-supported tools most Shopify stores already run — the Brain is built to sit alongside them, not to declare them obsolete. It reads the same Shopify store and moves no customer or order data, so adding it is non-destructive and reversible from day one. Where a merchant later wants to consolidate, migration is gentle, phased and optional: by building on Shopify and Google’s native, free, Global-out-of-the-box rails (GraphQL gid catalog, GID identity, GA4, MCP), identity, catalog and language stay one merchant-owned omni-global segment — and the merchant turns over only the pieces, and only when, they choose. Concretely: Braze and Attentive are integration partners whose journeys need an execution layer; Gorgias coexists, with optional gradual hand-off of storefront chat at the merchant’s pace; Klaviyo is the closest functional overlap — coexist, and consolidate only if the economics and ownership goals call for it; Sprinklr is a different buyer — coexist beside it. The throughline is added optionality and ownership, never a forced rip-and-replace.