message.comDevelopers

Shopify app Coming soon

A Built for Shopify certified app. Embedded admin built with Polaris, OAuth install (no credentials to copy), billing through the Shopify Billing API, and AI grounded in your store data: products, orders, customers, refunds.

The Shopify app is in pre-submission review. Until it lands in the App Store you can still install live chat via the widget snippet in Online Store → Themes → Edit code → theme.liquid.

Installation

Install from the Shopify App Store with a single click. OAuth grants the scopes we need; no API keys to copy, no theme code to paste.

  1. Search for message.com in the App Store, click Add app.
  2. Approve the OAuth scopes (read_products, read_orders, read_customers, write_chat_widget).
  3. Pick your message.com workspace (or create one inline).
  4. Pick a plan. Billing is handled by Shopify; no separate credit card.
  5. The widget appears automatically on every storefront page.

Embedded admin

The app surface inside Shopify admin is built with Polaris so it feels like a native section. You manage chats, tickets, agents, and AI from inside Shopify without leaving the tab.

  • Conversation list with the full unified-inbox model.
  • Order context pinned to every conversation when the visitor is a known customer.
  • One-click refunds via the Admin API, with agent approval gates configurable per role.
  • Cart-abandonment outreach with copy you control.

Shopify Billing API

Subscriptions are issued through the Shopify Billing API, so the merchant pays alongside their existing Shopify invoice. Plan upgrades, downgrades, and cancellations all happen in the Shopify admin. We never see a credit card.

AI tools backed by the Admin API

Once connected, the AI has read access to your store. We expose this as tool calls the model can invoke during a conversation. The AI never bypasses the dashboard agent: tools that mutate state (refunds, order updates) always queue a human-approval step unless you opt out per tool.

AI tool schema
// Tool definition exposed to AI on Shopify-connected workspaces
{
  "name": "lookup_order",
  "description": "Look up a customer order by number or email.",
  "params": {
    "orderNumber": { "type": "string" },
    "email":       { "type": "string" }
  }
}
// AI calls this; we proxy to the Shopify Admin API and return status,
// tracking, items, and last update time.

What this unlocks

  • "Where is my order #4567?". AI calls lookup_order, returns tracking and ETA in plain English.
  • "Do you have the blue medium in stock?". AI calls check_inventory, answers with live counts.
  • "Refund my last order.". AI proposes the refund; an agent confirms with one click.
  • "What did I buy in March?". AI calls list_customer_orders, summarises.

Cart abandonment

For visitors who have added items but not checked out, the widget can proactively engage. Copy and timing are configured per store. AI uses the in-cart context (items, total, abandonment time) to write a relevant nudge; an agent approves or auto-sends depending on your trust threshold.

What we read and write

The OAuth scopes we request match the features we ship. We do not read scopes we do not use.

  • read_products, read_inventory. Stock checks during chat.
  • read_orders. Order lookup and refund context.
  • read_customers. Visitor history.
  • write_orders. Refund initiation (with agent approval).
  • write_script_tags. Inject the widget script into your storefront.

Common pitfalls

  • Do not also paste the widget snippet manually. The app installs a script tag automatically; doubling up double-mounts the launcher.
  • Markets and multi-currency. AI returns prices in the customer's presentment currency by default.
  • Headless storefronts (Hydrogen) need a one-line addition. The script-tag install does not run on headless; use the React SDK or the snippet in your Hydrogen layout.