Quick settings
- · Theme (light, dark, auto)
- · Launcher position
- · Widget title
- · Welcome message and greeting
- · Input placeholder text
- · Active / inactive toggle
Everything you need to install, configure, and operate the FloGPT Shopify app. Storefront chat widget, AI voice agent, in-call Shopify tools, outbound triggers, webhooks and GDPR — all in one place.
FloGPT is distributed as an embedded Shopify app. Open the FloGPT listing on the Shopify App Store, click Add app, and approve the requested OAuth scopes. Shopify redirects you straight into the embedded FloGPT admin.
<shop>@shopify-merchant.flogpt.com. You don't need to register separately.shopify.app.toml.FloGPT requests read-only scopes for the data the AI agent needs to answer support questions and recommend products. Refund and cancel actions never happen silently — they route to a human ticket with the call or chat transcript attached.
| Scope | What FloGPT does with it |
|---|---|
read_orders | Order lookup, status, line items |
read_customers | Customer 360 — past orders, contact details |
read_fulfillments | Live shipment status and tracking URLs |
read_returns | Return eligibility and existing return cases |
read_products | Product search, attributes, variants, pricing |
read_inventory | Filter recommendations by in-stock items |
read_discounts | Quote active discount codes during a call/chat |
read_checkouts | Abandoned-checkout recovery triggers |
read_content | Pages and blog content for knowledge grounding |
read_legal_policies | Refund/return, shipping, privacy & terms policies |
read_themesNext version | Detect whether the app embed is live in the published theme. Read-only, and limited to config/settings_data.json on the main theme.Not in the currently published app version — no store has granted it. |
The chat widget installs as a theme app embed. No theme code changes are required and you can toggle the widget on or off without touching Liquid.
The embed automatically detects your shop domain and the widget loads its configuration from FloGPT — no widget ID needs to be hardcoded into the theme.
The embedded admin covers widget toggles and customization. For everything else — knowledge base, voice agents, call pipelines, workflows, analytics — click Open Dashboard.
/auth/shopify-sso?code=… on the FloGPT frontend, which exchanges the code for a session.During a call or chat, the FloGPT agent reaches Shopify through a single shopify tool whose action list is narrowed to the scopes you've granted — the LLM is never shown an action it has no permission to run.
search_productsSearch the live catalog by keyword, filtered to in-stock items.
get_productFull details, variants, pricing and images for one product.
list_ordersFind a shopper's own orders by their email or phone.
get_orderFull details for one order by name (e.g. #1042) — line items, totals, status.
track_orderCurrent shipping status with carrier and tracking URL, gated on a phone match.
get_customersResolve a customer profile and order-history summary for support context.
Outbound calls fire from Shopify webhooks and time-relative cadences. Each trigger ships with a Shopify webhook subscription, a dedupe key, a phone resolver and a default call script — drop it into a pipeline and the agent starts dialing.
carts/updateRecovery SMS + outbound call once cart value crosses your minimum.
checkouts/createRecover the sale while it's still warm — agent dials with cart context.
orders/createConfirmation call on high-AOV orders to verify intent and reduce chargebacks.
fulfillments/createProactive "your order is on the way" call with live tracking link.
refunds/createConfirmation call when a refund is created — sets clear expectations.
time-relativeAutomated CSAT call N days after fulfillment — capture feedback and reviews.
Webhook subscriptions are declared in shopify.app.toml (the App Store source of truth) and reconciled on every page load of the embedded admin. The API version is pinned to 2026-01.
| Topic | Purpose |
|---|---|
app/uninstalled | Uninstall cleanup — marks the merchant inactive in FloGPT |
app/scopes_update | Re-syncs scopes after a permissions change |
app_subscriptions/update | Legacy Billing API plan changes (pre-App-Pricing subscriptions) |
orders/create | Powers high-value order confirmation calls |
orders/updated | Keeps order state in sync for in-call lookups |
orders/paid | Marks the order payable before any confirmation outreach |
orders/cancelled | Suppresses follow-up triggers and updates state |
orders/fulfilled | Powers proactive shipment-update calls |
orders/partially_fulfilled | Split-shipment state for "where is my order" answers |
fulfillments/create | Tracking numbers land in the mirror as carriers push them |
fulfillments/update | Shipment status changes, including cancelled fulfillments |
fulfillment_events/create | Carrier scan timeline — in transit, out for delivery, delivered |
refunds/create | Answers "did my refund go through" without an API hop |
returns/* | Return lifecycle (request, approve, decline, cancel, close, reopen, update) |
products/* | Catalog mirror for product and availability questions |
inventory_levels/update | Keeps "is this in stock" answers accurate |
discounts/* | Lets the agent quote currently-active promo codes |
checkouts/* | Abandoned-checkout recovery surface |
shop/update | Re-seeds store profile, pages and policies into the agent's grounding |
bulk_operations/finish | Backfill worker reacts on completion instead of polling |
customers/create | Onboarding flows and welcome SMS triggers |
customers/update | Customer context stays current for support agents |
customers/delete | Removes the customer reference from FloGPT |
customers/data_request | GDPR — packages customer data on request |
customers/redact | GDPR — purges customer PII from the order and customer mirrors |
shop/redact | GDPR — purges the entire shop record after uninstall |
Shopify permits access to protected customer data only where it delivers app functionality. Every field FloGPT reads is listed below against the feature that consumes it. Access is read-only throughout.
| Field | Used by | Why it's required |
|---|---|---|
| Order number & order contents | shopify → get_order / list_orders | Answers "where is my order" and "what did I buy" with the shopper's own line items, totals and payment status. |
| Fulfillment & tracking | shopify → track_order | Returns carrier, tracking number and tracking URL so the agent resolves shipping questions without a human. |
| Email address | shopify → list_orders / get_customers | The lookup key a shopper gives to find their own orders, and the field matched against the order before anything is disclosed. Merchants can restrict it to the signed-in shopper. |
| Phone number | shopify → track_order · outbound notifications | Gates disclosure — a tracking lookup is refused when the supplied phone does not match the order. Also the number merchant-configured notifications dial, under quiet hours, a 24h dedupe window and DLT/TCPA consent rules. |
| Name | Agent console · customer context | Lets the AI and the human agent taking over address the shopper correctly and confirm they have the right record. |
| Shipping address | shopify → get_order | Answers "where is it going" and resolves delivery exceptions — a wrong city or undeliverable postcode cannot be corrected unless the agent can read the address back. |
| Customer default address | shopify → get_customers | Country and region only, so shipping times, duties and the applicable return address are answered for the shopper's own locale. |
| Billing address | Not read or stored | The order mirror has no billing-address field and the bulk order query never selects one. The single touch is reading billing_address.phone as the last fallback when an outbound notification has no other number for the customer; no billing address field is persisted or displayed. |
| Order count & amount spent | Agent console · customer context | Lets a human agent gauge account standing before applying a goodwill or returns decision. |
| Shopify customer ID | Internal join key only | Never shown to the AI or to staff. Links the Shopify record to ours across an email change, and is the selector used to execute a customers/redact deletion reliably. |
#100 cannot surface #1001.On customers/redact, every materialized PII field on the customer and order mirrors is nulled and the raw Shopify payload is removed outright. Non-PII accounting fields (totals, currency, financial status) are kept so your bookkeeping survives the deletion. On shop/redact all orders, customers, the merchant record and the OAuth session are deleted, and stored webhook payloads for the shop are scrubbed — only non-PII audit metadata proving the request was honoured remains.
None of the scopes below are in the OAuth grant, and none are requested through the Partner Dashboard. They are listed only so this page can be diffed against the manifest without the gaps reading as undisclosed access.
read_all_ordersNot requestedNot needed. The agent answers questions about current orders, which the default 60-day window covers, and everything placed after install arrives through the orders/* webhooks. No date-filtered historical query exists in the codebase. Not in the OAuth grant and not requested through the Partner Dashboard.
write_ordersNot requestedNo code path mutates an order. Cancel and refund intents open a human ticket instead.
write_themesNot requestedThe app embed is read to detect activation; it is never written.
read_shippingNot requestedNo shipping-rate query exists — shipping answers come from fulfillment tracking.
read_analyticsNot requestedChat ROI metrics are computed from FloGPT's own conversation records.
read_purchase_optionsNot requestedProduct reads never select selling-plan or subscription fields.
read_product_feedsNot requestedThe catalogue mirror uses the standard products connection.
read_own_subscription_contractsNot requestedFloGPT is not a subscription-commerce app. It never reads a customer subscription contract; there is no subscriptionContract query in the codebase.
write_own_subscription_contractsNot requestedNo subscription contract is ever created, modified or cancelled. No subscriptionContract mutation exists in the codebase.
write_customer_payment_methodsNot requestedFloGPT never stores, vaults or updates a customer payment method. No customerPaymentMethod mutation exists in the codebase.
FloGPT bills through Shopify App Pricing, with plans defined in the Partner Dashboard. App Pricing apps are refused the Billing API outright, so the app never calls appSubscriptionCreate, appUsageRecordCreate, appSubscriptionLineItemUpdate or appSubscriptionCancel. Merchants subscribe on Shopify's hosted plan page and the app observes the result: the only billing read is currentAppInstallation.activeSubscriptions, which is the app's own installation data and needs no access scope. Metered usage is reported through the App Events API and priced by Shopify from the dashboard meters.
The app_subscriptions/update webhook subscription is retained solely for merchants whose app plan predates the move to App Pricing — those continue to bill through the Billing API and continue to emit it. It carries no shopper data and is unrelated to subscription contracts.
FloGPT implements Shopify's mandatory compliance webhooks plus additional opt-in privacy controls for chat and call transcripts.
customers/data_requestA merchant request is logged and any customer data FloGPT has stored is packaged for delivery within the documented response window.
customers/redactCustomer chat transcripts, call transcripts and stored profile fields are purged after the documented retention window so no PII remains tied to that customer.
shop/redact48 hours after a shop uninstalls FloGPT, the entire shop record (merchant profile, encrypted creds, derived caches) is purged.
The embedded admin runs four health probes on every load — backend sync, SSO code minting, public widget lookup, and widget asset CDN — and surfaces a diagnostic banner the moment one of them fails. The most common issues and their fixes:
Install FloGPT from the Shopify App Store, approve the requested OAuth scopes, and Shopify redirects you into the embedded FloGPT admin. The app provisions a widget ID and a FloGPT account for your store automatically — no extra signup is needed. You can manage the chat widget and open the full dashboard from inside Shopify.
Read-only scopes for orders, all orders, analytics, checkouts, customers, discounts, fulfillments, inventory, product feeds, products, purchase options, returns, shipping, content, pixels, and customer draft orders and orders. FloGPT never requests write scopes for your storefront — refund or cancel actions taken by the AI go through your store policies and route to a human ticket when needed.
FloGPT installs as a theme app embed. From the embedded FloGPT admin, click "Open theme editor" — it deep-links straight to the App embeds tab — toggle FloGPT Chat Widget on and click Save. The widget then appears on every storefront page; no theme code changes are required. Headless storefronts can paste the manual installation snippet shown on the same page.
FloGPT subscribes to app/uninstalled, app/scopes_update, orders/create, orders/cancelled, orders/fulfilled, orders/updated, customers/create, customers/update, customers/delete, plus the GDPR compliance topics customers/data_request, customers/redact, and shop/redact. The API version is pinned to 2026-01 in shopify.app.toml and every webhook is HMAC-verified before processing.
FloGPT processes the customers/data_request, customers/redact, and shop/redact webhooks per Shopify's mandatory compliance contract. Customer chat and call transcripts are scrubbed of redacted customer references within the documented retention window, and the shop record itself is purged on shop/redact. PII redaction on transcripts is also available as an opt-in setting.
FloGPT ships templates for cart-abandoned recovery calls, checkout-abandoned recovery, high-value order placed confirmations, fulfillment-created proactive updates, refund-initiated confirmations, and time-relative post-delivery CSAT calls. Each trigger has filters for minimum order value, tags, and product IDs, plus per-region quiet hours and a deduplication window so the same customer isn't called twice in 24 hours.
Through the in-call Shopify tool, the AI can look up an order, customer, product, or fulfillment; search products with attribute filters; summarize line items and tracking; and SMS a tracking link or recovery code while still on the call. Refund and cancel requests are handled safely — the AI never promises a refund and instead opens a high-priority human ticket with full context attached.
Reload the embedded FloGPT admin first; the SSO code has a 60-second TTL and is minted fresh on every load. If a Backend connection or Storefront widget banner appears, your deploy environment's INTERNAL_API_SECRET likely doesn't match the FloGPT backend's. Fix the secret on both sides and reload — the embedded admin re-syncs your merchant record and the Open Dashboard button reappears.
Install the app, enable the theme embed, and let the AI agent handle order lookups, refunds, returns and recovery calls 24/7 — across phone and chat.