Integration guide

Catalog in. Channels on. Your cart stays yours.

eSentriX puts one selling agent on every channel your shoppers use. Each channel is a snippet you paste; the agent never touches your checkout — it tells your site or app what the shopper wants, and your own cart code does it.

See the snippets Talk to us first
STEP 01
Connect your catalogPaste a store link, or give us a feed, a dump, or a read-only SQL user.
STEP 02
Turn on channelsWebsite, app, search bar, WhatsApp, ads, phone, shelf — one snippet each.
STEP 03
Go liveVerify each channel in a minute, then watch revenue per channel in the console.
Step 01 · Catalog in

Four ways to hand us your products. Pick the one you already have.

Everything below ends the same way: a normalized, multilingual, LLM-ready catalog that the agent sells from — live prices, live stock, your product ids.

fastest
🔗

Paste your store link

Shopify and WooCommerce are read through their own APIs. Any other site is crawled — sitemap, structured data, then a headless render — and the agent is live on a mirror of your homepage in minutes.

⤵️

Pull — API or feed

Point us at a product endpoint or a feed URL (JSON, XML, CSV, Google Shopping). We poll it on your cadence; price and stock changes land on the next pull.

🗂️

Dump — file or export

A one-off or scheduled export dropped to a bucket or sent to us. Good for ERPs that can export but can't serve an API.

🛢️

SQL — read-only user

A read-only database user on your product and inventory tables. We read, never write; the schema is mapped once.

Multi-branch platforms get one store per branch (yourname_<branch>) and area-wide search across them. Restaurants bring option groups and add-ons along.

Step 02 · Channels on

One agent. Every channel is a snippet.

The exact snippets with your store id are on the Channels page of your commerceOS console. These are the same ones, so you can plan the work before you have an account.

Website

One script tag on your site.

The assistant floats over your pages and sells from your live catalog — in Arabic, Hebrew or English, by text or voice. Cart and checkout stay yours.

  1. Paste the snippet before </body> on every page — or use the console's Install page, which does it for Shopify, WooCommerce and WordPress.
  2. Optional attributes: data-lang, data-color, data-greeting, data-suggestions, data-mode="bar|chat", data-position.
VerifyLoad your site — the assistant button appears bottom-right. Ask it for a product.
index.html
<script src="https://onboarding-service-230492521256.me-west1.run.app/sdk/embed.js"
        data-store="your-store-id"
        data-store-name="Your Store"
        data-lang="AR" data-color="#E8B800"
        defer></script>
// self-contained, shadow-DOM isolated — your CSS can't reach it and it can't reach yours
Agent page

The agent on its own page.

A page of its own, in your colors, that sells from your live catalog — no site needed. Share the link in a bio, a message or an ad.

  1. Design it on the console's Design page and publish.
  2. Optional: claim your own domain on the Channels page — add the _esentrix TXT record it shows you and the page answers on agent.yourbrand.com.
  3. Share the link wherever your shoppers are.
VerifyOpen the link and ask for a product.
your link
# on your own domain — add one TXT record, the console verifies it
https://agent.yourbrand.com

# until then, the console's Agent page shows the link it is already live on
Your mobile app

One package, three calls.

The assistant screen ships from our servers and updates without an app release. It never touches your cart: it tells your app what the shopper asked for, and your app does it.

  1. Add the package for your platform and configure it once at launch with your store id.
  2. Open the assistant from a button, a tab, or your search screen's “Ask AI” row.
  3. Handle the three actions — add, remove, checkout — with the cart code you already have.
VerifyOpen the assistant in a debug build and ask it to add something — your own cart badge should change.
iOS 14+ · Android minSdk 24 · RN · Flutter
// Xcode → Add Package → github.com/esentrix/mobile-sdk (mobile-sdk/ios)
import Esentrix

Esentrix.configure(.init(storeId: "your-store-id", language: "AR"))
Esentrix.delegate = self
Esentrix.present(from: self, query: searchBar.text)

func esentrix(didReceive event: EsentrixEvent) {
  switch event {
  case .addToCart(let id, _, let qty, _): cart.add(id, quantity: qty)
  case .removeFromCart(let id, _):        cart.remove(id)
  case .checkout:                         router.push(.checkout)
  default: break
  }
}
WhatsApp

Shoppers message, the agent sells.

Your WhatsApp Business number answers with the agent: search, cart, and a checkout link, in the shopper's language.

  1. Press Connect on the console's Channels page and pick your number in Meta's window — you keep using the WhatsApp Business app as before.
  2. Put the number on your site, your ads and your receipts.
VerifyMessage your own number. A reply within a few seconds means it is live.
no code · Meta Embedded Signup
// Nothing to paste. The console runs Meta's Embedded Signup for you:
//   1. choose or create the WhatsApp Business account
//   2. pick the number · 3. the agent answers from that moment

// Already on the Cloud API with another vendor? We attach as an
// additional webhook on the same number — no migration.
Your ads

Every ad's button opens the agent.

Instead of a landing page, the ad opens a conversation. The agent starts on the product the ad showed, sells from your live catalog, and the order is attributed to the campaign.

  1. Click-to-WhatsApp / Instagram ads: choose your connected number in Ads Manager. Nothing else — Meta sends the ad with the first message and the agent opens in context.
  2. Link ads (Google, TikTok, bio links): the destination is your agent page with ask= the product the ad shows — the agent opens on it; the campaign and ad ids fill in from the platform's macros.
  3. Watch revenue per campaign on Analytics.
VerifyRun a ₪20 click-to-WhatsApp ad on one product and message yourself from it — the agent's first line names that product.
landing links
# click-to-WhatsApp / Instagram ads — nothing to paste.
# The ad's button opens WhatsApp on your connected number; Meta sends the ad along
# with the first message, so the agent opens selling that product, in the chat,
# and the order is attributed to the campaign.

# link ads (Google, TikTok, bio links) — the destination is your agent page
https://agent.yourbrand.com/?ask=<the product the ad shows>&campaign={{campaign.id}}&ad={{ad.id}}
Phone line

Call and order by voice.

A number shoppers call; the agent talks, builds the basket and confirms the order — no app needed. Sign-in is by caller id, so a shopper who ordered in the app is recognized on the phone.

  1. Ask us for a number in your country, or point your own Twilio number at the voice webhook.
VerifyCall the number yourself and ask for a product.
Twilio · voice webhook
https://esentrix-gateway-230492521256.me-west1.run.app/twilio/voice
In store

A QR on the shelf.

A code on the shelf or a tablet at the counter opens the agent for this branch. The kiosk mode resets itself between shoppers.

  1. Print the link as a QR and place it where shoppers wait or browse — the console renders the QR for you.
  2. For a counter tablet, use the kiosk snippet.
VerifyScan the code with your phone.
shelf link · kiosk
# shelf QR
https://shop.esentrix.ai/?store=your-store-id&surface=in_store

# kiosk tablet
<script src="https://onboarding-service-230492521256.me-west1.run.app/sdk/embed.js"
        data-store="your-store-id" data-mode="kiosk" data-idle-reset="90" defer></script>
The integration contract

The agent never touches your cart. It emits actions; you run them.

  • Three actions, on every channel. Your handler runs them with the cart logic you already have, in the shopper's own session.
    01add_to_cart02remove_from_cart03checkout
  • A handler resolves { ok, error? } within 5 seconds; on an error the agent tells the shopper and offers an alternative.
  • On Shopify and WooCommerce the handlers are built in. Elsewhere we generate them from a config, write them for you, or you write them — about one to three developer-days.
  • Purchase attribution is one call on your confirmation page: Esentrix.track('purchase', { order_id, total }). That closes the loop from ad click to in-chat order.
Irreducible minimum

A script tag, catalog access, and your approval. Nothing in your checkout changes.

hooks.js — custom storefront
window.Esentrix = window.Esentrix || {};
window.Esentrix.hooks = {
  // the agent resolved a product and the shopper said yes
  async add_to_cart({ id, quantity }) {
    await myCart.add(id, quantity);   // your cart code
    return { ok: true };
  },
  async remove_from_cart({ id }) {
    await myCart.remove(id);
    return { ok: true };
  },
  async checkout() {
    location.assign('/checkout');     // your checkout
    return { ok: true };
  },
};

// on the confirmation page
Esentrix.track('purchase', { order_id, total, currency: 'ILS' });
Step 03 · Go live

A minute per channel, then it runs itself.

Every channel's kit ends with the same check: open it, ask for a product, see your own cart change. Then the console takes over.

🧭

Brand voice & policies

Set the agent's tone, instructions and what it may never promise on the console's Agent page. Changes are staged and approved before they reach shoppers.

📣

What to push

Give each store an objective and a push list — the agent ranks toward it without hiding what the shopper asked for.

📊

Where sales happen

Revenue split per channel, conversations, customers and attach rate — plus a daily digest email with what the agent learned.

🔁

The signal loop

Intent from conversations becomes audiences and campaigns, with closed-loop attribution back to the in-chat order.

Questions developers ask

The short answers.

Which channels need an API key?

Only the search door (/api/ucp/search and its events). The website embed, the agent page, the mobile SDK, WhatsApp, phone and in-store need no key — the store id is enough. Keys are minted, rotated and revoked on the Developers page; each key is scoped to its own platform's stores.

Which languages does the agent speak?

Arabic (including Gulf and Levantine dialects), Hebrew and English — it answers in the language the shopper writes or speaks, and catalogs in one language are searchable from another.

Does the widget conflict with my site's CSS or scripts?

No. The embed renders inside a shadow root with no dependencies, and the APIs it calls allow cross-origin requests from any site. It exposes window.__esentrixWidget.destroy() if you ever need to take it down.

How fresh are prices and stock?

As fresh as your source: platform APIs and feeds are polled on your cadence (every 15 minutes for live-stock partners), and unavailable items are filtered out of results before the agent sees them.

What do you store about my shoppers?

Conversations and the intent signals inside them, tied to your tenant. Audiences are phone-matched only where the shopper consented; frequency and consent gates apply to every outbound message. See the privacy policy.

Can we start with just one channel?

Yes — most partners start with the search bar (AI Mode) or the standalone agent page, and add the app SDK and WhatsApp once they see the numbers.

Ready to connect a catalog?

Send us your store link and we'll have the agent selling on a mirror of your site before the call.

Request Integration → Try on Store Experience ↗