Flows MCP
Connect the AI you already use, such as Claude, ChatGPT, Grok or Cursor, and let it set up your website, shape your site chat, write your product content and run the data tables the chat answers from. One URL, one approval, and your model is part of the team.
01What is Flows MCP
Flows exposes your site to AI models over the Model Context Protocol — an open standard that lets an AI tool call real, permissioned functions. Once connected, the model you already work in can read your brand context, see what your site looks like, and work on your Flows site:
- Your website — add a site, fill in its business details and install the chat. See Set up a website.
- Your site chat — its greeting, tone, abilities, design and where it shows. See Your chat.
- Your products — product content, descriptions and buy links. See Products.
- Your data tables — the tables in Projects → Databases: create them, shape their columns, read and write rows, and choose which ones your site chat may read. See Data tables.
You describe what you want in plain language, in the tool you already work in, and the change reaches your dashboard and your live chat straight away.
02Requirements
- A Flows account with at least one connected site (connect one in the dashboard first).
- An MCP-capable client — Claude, Claude Code, Cursor, ChatGPT, Windsurf, VS Code, or anything that supports remote MCP servers over Streamable HTTP.
- That's it. Auth is OAuth — your client walks you through it on first use. No API keys to create or paste. (Sites connected through the Wix or Shopify app use a personal link instead — see Site connection links.)
03Connect in a minute
Every MCP client connects the same way: Claude, ChatGPT, Grok, Cursor, Windsurf, VS Code, and anything else that supports remote MCP servers over Streamable HTTP. Everything runs through one server URL:
https://www.flowcrews.com/mcp
- Add the URL to your AI tool's MCP or connector settings (open the one that matches your client below).
- Your tool opens a secure Flows sign-in. Approve it once.
- Ask for what you want. Changes appear in your Flows dashboard straight away.
A client with a connectors or MCP settings panel
Claude, ChatGPT and most desktop apps: add a custom connector or server, paste the URL above, and save. The Flows sign-in opens the first time the client calls a tool.
A client with a JSON config file
Cursor, Windsurf, VS Code and similar: add a server entry with the same URL.
{
"mcpServers": {
"flows": {
"url": "https://www.flowcrews.com/mcp"
}
}
}No API keys, nothing to configure per client: OAuth is handled for you.
get_profile first — if it returns your account email, the connection is working. If you own more than one site, use a site connection link instead and the model always targets the right one.04Site connection links
A site connection link is the second way in: one credential that belongs to a single site and skips the sign-in step entirely. Every site gets one, whichever way you run Flows — web, Wix App Market or Shopify App Store.
Reach for one when:
- You work inside the Wix or Shopify app. There's no separate Flows sign-in to complete — your identity is the platform session — so OAuth can't identify you and a site link is the only route.
- You own several sites. The link is hard-bound to one of them, so the model can't change the wrong project. It's the option Design recommends for exactly this reason.
Open Design in the dashboard and choose the ⋯ menu beside Build with AI. It holds the credential for that site in two forms. The URL form goes anywhere the universal URL goes:
https://www.flowcrews.com/mcp?pair=…
The header form is the better one where your client supports custom headers — it keeps the credential out of URLs, and therefore out of request logs and browser history:
{
"mcpServers": {
"flows": {
"url": "https://www.flowcrews.com/mcp",
"headers": {
"Authorization": "Bearer flows_pair_…"
}
}
}
}Once it's in, there is no sign-in step and every tool is locked to that one site — asking the model to target a different site is refused, not silently redirected.
Expiry and revoking
- The URL expires after 7 days on every platform — a credential carried in a URL ends up in logs and history. Copy a fresh one whenever you need it.
- The Bearer key doesn't expire. Use it in clients that let you set an
Authorizationheader, and keep it the way you'd keep an API key. - Regenerate — the button on the Setup MCP page mints a new credential and permanently kills every link and key issued for that site before it. That's the action to take if you think a link has leaked, or when someone leaves the team.
- Disconnecting the site, or uninstalling the Wix or Shopify app, stops every link for that site working.
05Set up a website
A model can take a website from nothing to a working chat, on any host:
WordPress, Squarespace, Webflow, Wix, Shopify or custom code. The steps run in
this order, and get_setup_status shows where a site stands at any
point, as a checklist.
- Add the site —
add_websitewith its domain. - Business details —
save_business_details. Send only the details that change. - Install the chat —
get_chat_installgives the one-line code and where to paste it. Once you've pasted and published it,check_chat_installlooks for it on your homepage.
Add my website acme.com to Flows, fill in the business details from the site, and walk me through installing the chat.
06Your chat
Everything in Concierge → Configure and
Design → Concierge Chat is open to a model, and each change reaches the
live chat straight away. get_concierge_settings reads it all;
update_concierge_settings changes only what it's sent.
What the agent says update_concierge_settings
The welcome screen's title (welcomeTitle) and the greeting under it, the three suggested asks under the message box (the chip's word and the message it sends), the tone, your own instructions, and which abilities are switched on: shopping, virtual try-on, order tracking, image generation and web search. Booking is switched in the dashboard, under Concierge → Configure.
How it looks update_concierge_settings → theme
style— the base design:default,softorcocoa.palette— one of the style's palettes, by id.get_concierge_settingslists them.colors— your own colours fordarkandlight. Background, text and accent are enough: every other colour, hover and state is worked out from them.mode—dark,lightordevice(the visitor's system setting).font— a heading and a body font: one of 14 hosted fonts,sitefor your site's own typography, or a font you uploaded, asupload:<its name>.launcher— the button that opens the chat:tab(an edge arrow) orbubble(a pill in the bottom corner).launcherColor—match(the chat's colours),accent, orcustomwith a hexlauncherFill.launcherLabel— the pill's words, up to 24 characters. Empty is "Ask AI".corners— the panel's shape on desktop:squareorrounded, withcornerRadiusfrom 8 to 28 pixels. Phones always show the full-screen chat.signInCss— a stylesheet for the sign-in screen.
The header logo set_header_logo
An SVG shown in the chat header in place of the agent's name — a single <svg> with a viewBox, drawn from static shapes. Drawn in currentColor, it follows both modes; otherwise send a logoLight version too. An empty string clears it.
Where it shows get_chat_placement · set_chat_placement
showOn is website (your own website) or off. hiddenPages lists the website pages the chat stays away from, as paths such as /checkout. On your website, the chat appears on pages that carry its install code.
Set my Flows chat to dark mode with a soft dark grey background, keep the text as it is, and make the Ask AI button white.
To open the chat from your own button instead, see Use your own button in the Site chat guide.
07Products
list_products gives each product's id, newest first. From there a model
can write what shoppers read on a product.
- Content sections —
set_product_contentwrites the accordions shoppers open, up to 6. It replaces the whole set, so the model reads them first withget_product_content. - Description —
set_product_description, up to 2,000 characters. Stripe and manual products only. - Buy link —
set_product_buy_linksends the product's Buy action to your own https page instead of the cart: a membership, a subscription, anything bought somewhere else. Stripe and manual products only; an empty string clears it.
08Data tables
The tables in Projects → Databases are reachable over MCP too, through the same data layer the dashboard uses — so a table your model creates is a real table, visible and editable in the app straight away.
These are your own tables. They aren't a mirror of a Wix or Shopify catalogue. Your products have their own tools (see Products), and MCP has no route to your store's orders or customers.
What the model can do
- Read —
list_tablesfor the inventory and your plan's quota,get_tablefor one table's schema and a few sample rows,query_rowsfor the rows themselves with optional keyword search and exact-match filters. - Shape — create and rename tables, add, rename and remove columns.
- Fill — add rows in batches, update a row's fields (a merge, so untouched columns keep their values), delete rows.
- Organise — create, rename and delete folders, and move tables between them. Deleting a folder never deletes tables: they move back to the root.
Column types
text, long_text, number,
price, boolean, date,
select (with an options list),
image, url. A column with no type given is
text.
Synced tables are read-only
A table fed by an external source can be read but not written — writes come
back as synced_readonly naming the provider. Change the data at
its source and re-sync, or delete the table. Connecting a new external
source, and bulk file import, stay in the dashboard: neither is on MCP.
Create a "Store FAQs" table in Flows with question and answer columns, fill it from the FAQ page on my site, and let my site chat read it.
09Site chat access
set_ai_readable is the same switch as Allow AI to read
this table in Databases → Configure. Turned on, your
public site chat may use that table's rows when answering
visitors. That makes it the one data tool worth understanding
before you use it: it changes what strangers on your site can be told.
Turn it on for reference data — FAQs, opening hours, shipping rules, specifications. Leave it off for anything about a person.
Flows checks for you as well. If a table's columns look personal, the first
call comes back as needs_ai_read_confirm with the specific
fields that triggered it and a short-lived confirmToken, rather
than switching anything on. A model should show you that list and ask; only
then does it call again with that token. An optional aiDescription
gives the chat a short note on what the table is for.
10Confirmations
Anything that destroys data refuses to run on the first call. The model has to come back a second time with proof you agreed — so a misread instruction can't take a table with it.
Every one works the same way: the first call returns
needs_confirmation with what will happen and a
confirmToken that Flows issued. The token lasts two minutes,
works once, and only for that exact action — the model can't make one up.
- Deleting a table, folder, column or rows — the confirmation names what goes, with row counts. Rows and tables skip the step if you've switched confirmations off in Databases → Agent access.
- Turning on site-chat reading — see Site chat access.
None of this is something you configure — it's how the tools behave. Your part is simply to read what the model is about to delete before you say yes.
11Tool reference
Every tool below takes an optional instanceId and almost never
needs one — see Working across sites. Tools marked
confirm refuse the first call and ask for agreement; see
Confirmations.
Connection & help 3 tools
Confirms who's connected — your account name and email, or the single site a connection link is bound to. The quickest "is this working?" check.
The Flows sites you own — id, name, domain, platform and niche. A site connection link sees only its own site.
Searches these docs. Each result links to the full section, so the model can answer "how do I…" from the docs instead of guessing.
Website setup 5 tools
Adds a website by its domain, on any host. Adding a domain the account already has reconnects it. See Set up a website.
Where a site's setup stands, as a checklist: the business details still missing and where the chat shows.
The site's business details. Send only the details to change.
The one-line chat code for your website, where to paste it, and where the chat shows today.
Looks for the chat code on your homepage.
Site chat 6 tools
The chat's welcome title and greeting, suggested asks, tone, instructions, abilities and design, plus the fonts you've uploaded.
Changes any of those. Send only what changes; it reaches the live chat straight away. See Your chat.
An SVG logo in the chat header in place of the agent's name, with an optional light-mode version and size. An empty string clears it.
Whether the chat shows on your website, and the website pages it stays away from.
Sets where it shows, and which website pages it skips (hiddenPages, as paths).
Turns site-chat reading on or off for one table, with an optional description for the chat. Personal-looking columns trigger a confirm step first — see Site chat access.
Products 5 tools
Your store products, newest first — id, name, price, which store it came from, its collections, whether it's hidden, and how many content sections it has. Where a product id comes from. Optional name search; 25 by default, 50 maximum.
One product's description and content sections in order, plus the limits a write must respect. Read before writing — writing replaces the whole set.
Writes the accordions shoppers open on a product — up to 6 sections of plain text with •, 1., ## and **bold** markers. Replaces every section in one call, so send back the ones you're keeping; an empty array clears them. Live immediately, and editable in Commerce → Your Products → Content.
The paragraph above a product's sections, up to 2,000 characters. Saved straight to Stripe, so it also appears on Checkout, invoices and receipts. Stripe and manual products only — Wix and Shopify descriptions stay on those platforms.
An https page the product's Buy action opens instead of the cart, on every surface. Stripe and manual products only; an empty string clears it.
Data tables 18 tools
Every table on the site — id, name, columns, row count — plus your plan's table and storage quota.
One table: name, column schema with field types, row count, and a few sample rows.
Rows from a table, with optional keyword search (q) and exact field filters. 25 rows by default, 50 maximum; page with offset.
A new table, with optional starting columns and a description. Live in the Databases tab immediately. Plan table caps apply.
Change a table's name and/or description.
Deletes a table and every row in it. Needs a confirm token from the refused first call.
Add a column, with a type and — for select — its allowed values.
Rename a column. Existing values move to the new field name.
Removes a column and its values from every row. Needs a confirm token from the refused first call.
The folders on a site, for organising tables.
A new folder.
Rename a folder.
Removes a folder. Tables inside move back to the root — they're never deleted. Needs a confirm token from the refused first call.
Move a table into a folder, or back to the root.
Insert rows as plain objects of column → value. Up to 50 per call.
Update one row by id. A merge — send only the columns to change and the rest keep their values.
Delete one row by id. Needs a confirm token from the refused first call.
Delete up to 50 rows by id. Needs a confirm token for that exact set of ids.
12Response statuses
Tools answer with a status rather than throwing, so a model can
react instead of stalling. These are the ones you'll see quoted back at you.
It worked.
You own several sites — name the one you mean.
Your account has no connected site yet.
A destructive call was refused pending your agreement.
A table looks personal and site-chat reading wasn't switched on. The response lists which fields triggered it.
A plan allowance is full: tables or storage. Nothing partial was saved.
That table is fed by an external source. Edit it there and re-sync.
The connection isn't authenticated — see Troubleshooting.
No such id, a service was briefly unavailable, or something else went wrong — the message says which.
13Limits
Generous in practice, but worth knowing when a model reports something got refused.
- Reading rows — 25 by default and 50 at most per call, with up to 20 filter keys. Page with
offset. - Writing rows — up to 50 rows per add or bulk-delete call.
- Columns — up to 100 per table, and up to 50 options on a
select. - Requests — one tool call per request, and 120 requests a minute per account.
- Plan allowances — tables and storage are plan-based. Over the line you get
limit_reached, and nothing partial is written.
14Working across sites
Every tool takes an optional instanceId. You almost never need it:
- One site — tools resolve to it automatically. Just ask.
- Several sites — the tool answers
choose_sitewith your site list and the model asks which one you mean. Name the site in your prompt ("…on my coffee shop") and it carries on. - Connected with a site link — that one site is always the target, and naming a different one is refused rather than silently redirected. To work on another site, add its own link.
Reads and writes only ever succeed on sites your account owns — every call re-checks that on the server, whichever way you connected.
15Authentication
There are two ways to authenticate, and both end at the same server-side ownership check.
OAuth — the universal URL
OAuth 2.1 with PKCE and dynamic client registration, the modern MCP auth standard. When your client first connects it opens a Flows sign-in; you approve access to your email and profile, and the client manages tokens from there. There are no API keys to create, store, or leak. Signing out of the connector in your client ends its access.
Site connection links
A signed per-site credential, used as a URL parameter or a bearer header. It carries no account-wide reach: it identifies one site, and every tool is locked to it. Revocation is a live check on every single call, which is why Regenerate takes effect instantly rather than waiting for a token to age out. Full detail in Site connection links.
Whichever route you take, every call is verified server-side against your Flows account. Nothing is trusted because the model said so.
16Permissions & scope
What a connected model can reach:
- Your websites — add one, save its business details and check the chat install.
- Your site chat — its settings, design, header logo and where it shows.
- Your products — content sections, and for Stripe and manual products the description and buy link.
- Your data tables — read and write the tables in Projects → Databases, and switch site-chat reading on or off per table.
What it cannot reach, by construction:
- Billing, subscribers, orders or account settings. There is no tool for any of them.
- Your store's orders and customers. No route to them on Wix, Shopify or anywhere else.
- Other people's sites. Ownership is re-checked server-side on every call, and a site link is bound to one site.
And how what it writes is handled:
- Confirmed: destructive data operations require a second, explicit confirmation — see Confirmations.
- Plan-aware: new tables count against your plan's allowances. Over the line, the write is declined and nothing partial is saved.
17Troubleshooting
"Unauthorized" from every tool
The OAuth handshake didn't finish. Remove and re-add the connector, and complete the Flows sign-in when it opens.
Client can't find the server
Double-check the URL is exactly https://www.flowcrews.com/mcp and that your client supports remote MCP servers (Streamable HTTP), not just local ones.
Your connection link stopped working
It was regenerated, the site was disconnected, or the Wix or Shopify app was uninstalled. Open Design → the ⋯ menu beside Build with AI and copy the current one. A URL older than 7 days has expired by design — take a fresh one, or switch to the bearer key, which doesn't.
"No sites"
Your Flows account has no connected site yet. Ask the model to add one with add_website, or connect one in the dashboard, then try again.
"Choose a site"
You own several sites. Tell the model which one you mean, or connect with that site's own link.
"This connection is scoped to one site"
You're on a site link and asked for a different site. Add that site's own link as a second server.
"Limit reached"
A plan allowance is full: tables or storage. Delete something unused.
A table refuses writes
It's synced from an external source and is read-only here. Change the data at its source and re-sync.
Still stuck? Ask Sam — the chat bubble on this page — or reach us from the dashboard.
Site chat
The concierge is the AI chat that answers your customers on your own website. Wix needs nothing installed, Shopify one switch, and any other site one script tag.
01What the site chat is
A chat in the corner of your pages that answers from your own content: your products, the page the visitor is on, and the data tables you choose to share with it. Shoppers find the right product in the chat and go from there to your checkout.
The chat can show on every page of your own website: your homepage, product pages, anywhere. How it gets there depends on your platform (see Add it to your website).
02Turn it on
In the dashboard, open Concierge → Configure and set Show the concierge:
- All pages — the chat shows on every page of your own website.
- Off — the chat doesn't appear anywhere.
The switch takes effect straight away. Changing it later never means reinstalling anything: an installed script simply stays quiet while the chat is set to Off.
03Add it to your website
Set Show the concierge to All pages, then:
- Wix — nothing to add. The chat is installed on your site when you add the Flows app.
- Shopify — one toggle. In the dashboard, the Put the concierge on every page of your store banner's Add to my store button opens your theme editor on App embeds. Turn on Flows AI Concierge and save.
- Any other site — paste one script tag, once. Copy it from Concierge → Configure (it already carries your site's ID) and put it just before
</body>on your site, or in your site builder's "custom code in the footer" setting.
The script tag looks like this — use the one from your dashboard, which has your ID filled in:
<script src="https://cdn.flowcrews.com/elements/flows-storefront-boot.min.js" defer data-instance-id="YOUR_SITE_ID"></script>
04Choose the pages
With All pages on, Pages in Concierge → Configure lists your site's pages from its sitemap, all ticked. Untick any page where you don't want the chat — a checkout, a legal page — and it stays off those pages.
- The list shows your 50 most recently changed pages; refresh it to pick up new ones.
- Pages you publish later show the chat automatically. Only what you untick is hidden.
05Design your chat
Open Design → Concierge Chat and pick a design: Flows Default, Soft or Cocoa. Every change shows in the preview straight away, and Save puts it live on your chat; Discard takes it back.
Palettes and your own colours
Each design has its own palettes, every one with a dark and a light version. Custom colours takes three colours — background, text and accent — and works out the rest: surfaces, borders, muted text, your messages and button text. It tells you when text would be hard to read.
Dark or light
Chat mode at the bottom of the sidebar: Dark and Light fix it, and Device follows each visitor's system setting. With Device, the preview follows your own device's setting, as a visitor on it would see the chat.
Fonts
A heading font and a body font: one of 14 hosted fonts, your site's own typography, or a font you upload (paid plans). Upload each weight you use as its own file — regular, bold, italic — and the chat uses the real weights. Only upload fonts your licence lets you use on the web.
Welcome
The first words visitors see when they open the chat: a title, and a line of text under it. Leave either empty to keep the design's own.
Header logo
Your logo in the chat header, in place of the agent's name, from 16 to 34 pixels tall. It has two boxes, Light mode and Dark mode. Drop an SVG, PNG, JPEG or WebP on either box, or click a box to choose a file, and the other box is made from it: black, white and grey flip so they read on that background, and brand colours stay. That works for an SVG, or a PNG or WebP with a see-through background; for a JPEG, drop a second version on the other box. You can also paste SVG code. Also in Concierge → Configure → Header logo.
Chat button
- Type — an edge arrow on the side of the page, or an Ask AI pill in the bottom corner. The pill hides while the chat is open.
- Colour — Match chat, your Accent, or a Custom colour. The words on it take whichever colour reads best.
- Button text — the pill's words, up to 24 characters. Empty goes back to "Ask AI".
Corners
Square keeps the chat flush to the edge of the page. Rounded rounds the two corners facing the page, from 8 to 28 pixels. With the shop open, the shop's outer corners round and the two read as one panel. On a phone the chat fills the screen either way.
06Use your own button
Any button, link or menu item on your page can open the chat — an "Ask AI" in your header,
a "Questions?" link in your footer, an "Ask about this" next to a product. Once the chat
has loaded on a page, it adds window.FlowsConcierge:
Opens the chat.
Closes it.
Opens it when closed, closes it when open.
true while the chat is open.
Opens the chat and sends text as the visitor's message, up to 500 characters.
A button in your header
<button type="button" onclick="window.FlowsConcierge && FlowsConcierge.open()"> Ask AI </button>
A button that asks a question
<button type="button" onclick="window.FlowsConcierge && FlowsConcierge.ask('Which size should I get?')">
Not sure about sizing?
</button>Style your button however you like — it's yours. The chat panel itself keeps its own size and position.
- The chat must be on that page.
FlowsConciergeexists only where the chat shows: check Turn it on and Choose the pages. - It arrives after the page loads. The chat loads deferred, so a click in the first moment can come before it. The
window.FlowsConcierge &&check above keeps that click from throwing an error. - The chat's own button stays. Your button works alongside its edge arrow or pill.
07What it answers from
- Your products — with live prices and stock, when a store is connected.
- The page they're on — the text of the page the visitor is reading.
- Your store's policies — shipping, returns, refunds and payment, on Shopify.
- Your data tables — only the ones you allow; see Site chat access.
- The web — only if you turn on Web search. It's off until you do.
Under Capabilities in Concierge → Configure you choose what else it may do. Shopping, Virtual try-on, Order tracking and Image generation start on; Web search and Booking start off until you turn them on.
08Your domain & free credit
The chat itself needs no DNS records. The script tag and your site address are enough.
Every verified site gets $10 of free chat credit each month, once per domain. Flows checks that the domain is yours first, so the credit can't be claimed on someone else's site:
- Wix and Shopify — already proven by the app install.
- Any other site — have the script tag on your homepage at your main domain (
yoursite.com, not a subdomain), or verify the domain with DNS records from the dashboard.
09Your own AI key
A site's chat can run on your own API key from Anthropic, OpenAI, xAI or Google instead of Flows credit. Your provider then bills you for that site's chat directly.
- Turn it on — in Usage, switch on Use your own API key for that site, then paste a key or keep the one shown. Change picks another of your keys, adds a new one, or goes back to Flows credit.
- Your keys — Settings → AI keys lists every key on your account and how many sites use each. Replace moves every site on a key to the new one; Remove puts them back on Flows credit. Adding a key never moves a site onto it.
- Models — each key runs one of its provider's models: Claude Fable 5.1, Opus 5.5, Sonnet 5 or Haiku 5.5; GPT-6 Astra, GPT-6.1 Sol or GPT-6 Luna; Grok 4.7, Grok 4.5, Grok 4.3 or Grok 4.20; Gemini 4 Argon, Gemini 3.8 Flash or Gemini 3.5 Flash-Lite. Pick it when you add the key, or change it with the model button on the key in Settings: every site on that key moves with it.
- Kept safe — a key is checked with your provider when you save it, stored encrypted, and only ever shown by its last four characters.
On your own key, the chat's replies don't use Flows credit. Credit still pays for image generation and virtual try-on, and your daily cap still applies: it counts what the chat costs on your key. The spend chart in Usage shows that cost in grey. Sites on a Google key don't search the web.
If your provider refuses the key, or your account with them runs out of credit, the chat on the sites using it stops answering and we email you. Add credit with your provider, or replace the key in Settings → AI keys.
10AI assistants & your products
With the chat on All pages and a store connected, AI assistants such as ChatGPT, Claude and Perplexity can find your products. Each product link they give opens your website with the chat already showing that product.
- Your product list — a page for AI assistants with every in-stock product, its price and its link. Copy its address from AI assistants can find your products in Concierge → Configure and add it to your site's
llms.txt. - Flows' public tools —
https://cdn.flowcrews.com/mcp/shop. Any AI that can open a link can search your products there, read one in full, or search the tables you share. Read-only: it can never change anything.
Your store is listed once the chat is really on your homepage:
- Wix and Shopify — automatic. The app adds the chat for you.
- Any other site — the script tag on your homepage, at the address your site uses. The plain tag counts, and so does a script that adds the same tag after the page loads. A subdomain is fine, and no DNS records are needed.
Flows looks at your homepage once a day. If the tag wasn't there, it looks again within the hour.
- Hidden products are never listed.
- Data tables are shared only when both Allow AI to read this table and Outside AI assistants can read this table are on, and the site chat may use your tables (see Site chat access).
11Troubleshooting
Not on my website at all
Check the script tag is on the page (view the page source and search for flows-storefront-boot), that it's the one copied from your dashboard, and that it isn't inside another page's code only.
Missing on one page
That page may be unticked under Pages.
Shopify store shows nothing
Flows AI Concierge is off in the theme editor's App embeds, or the theme wasn't saved.
My own button does nothing
The chat isn't on that page, or the click came before it loaded. Open the browser console and type window.FlowsConcierge: if it's undefined, the chat hasn't loaded there — see Use your own button.
My design changes aren't showing
Reload the page. A page that was already open keeps the design it loaded with.
The $10 free credit hasn't appeared
The script tag isn't on your main domain's homepage yet. Add it there, or verify with DNS. The credit arrives with the first chat after that.
The chat stopped answering on my own key
Open Settings → AI keys: the key shows why. Out of credit — add credit with your provider (Top up opens it). Key refused — replace the key. To keep the chat answering meanwhile, switch the site back to Flows credit in Usage.
AI assistants don't find my products
The chat is off, no store is connected, or the script tag isn't on your homepage. Flows checks your homepage again within the hour.
Still stuck? Ask Sam — the chat bubble on this page — or reach us from the dashboard.