Let AI do the typing¶
AI in 换换 does not make decisions for you — it does the typing. Say a sentence, paste the whole message a customer sent you, or take a photo of an item, and it fills the form in. You check it, then you press save.
Since v3.1.2 five places have used it; v3.2.4 added a sixth (list from a photo):
| Where | What you give it | What it fills in |
|---|---|---|
| Record a deal | one spoken line | customer, type, items, amount, deposit, payment method |
| Schedule a job | the whole WeChat blurb | customer, WeChat / phone, from, to, date, time, note |
| 🆕 Self-order inbox | what the customer typed when booking | difficulty, risk, ⚠ special items, 🤖 suggestion |
| Start a store | one line about your trade | trade type, shop name, a few preset items |
| 🧩 Order form | one line about what you want to ask | fields, types, options, hints |
| 📦 Inventory / Services (v3.2.4) | one photo of an item | name, type, brand, model, colour, specs, condition |
The first five are text AI and run on this store's AI settings (except the one-off shop opener). List from a photo is different: it always uses the platform's vision model and ignores your AI settings — see List from a photo.
Before v3.1.2 none of this actually reached a model
From launch until 2026-09-08 these "AI features" quietly ran on keyword fallback — the provider endpoint was missing a path segment, so the requests went nowhere, and every feature had a fallback so it all looked fine. v3.1.2 fixed it. You now see "(AI)" in the confirmations rather than "(keyword)", and a parse takes about 5 seconds (down from about 10 — the two calls now run at the same time).
Say it, we'll record it¶
Open the record-a-deal page (the + button bottom-right of your shop dashboard). The first card is "🎤 Say it, we'll record it".
- Type it, or tap "🎤 Press to talk" — while it is recording the button reads "🔴 Listening… tap to stop".
- Then tap "🤖 AI: turn into a deal".
- The placeholder shows the tone it wants: "Moved Sarah's place, took $300 cash, $50 deposit".
It fills in the three steps below (① Customer ② Items ③ Money · confirm) and says '✓ AI filled it in (AI) — check it, then "Record this deal"'. It does not save on its own — nothing is booked until you tap ✓ Record this deal.
Rambling is fine. Something like "just moved Sarah's place, took three hundred cash and a fifty deposit" used to yield a couple of numbers scraped by regex; now the customer, type, item, amount, deposit and payment method all land in one go.
Stash it while you're driving
The same card has "💾 Save for later, driving now". Tap it and you get "Draft saved ✓", plus a line reading "📝 N draft(s) waiting to be organized ›". That opens Drafts, which describes itself as "Quick-saved on the go — tidy them up here later."
Paste a message, get a job¶
On the Schedule page tap "+ Add job". Inside that card is a collapsed section: "🤖 AI scheduling (recommended) · paste customer info / say it".
Paste in the whole WeChat message the customer sent you. The placeholder literally says "Paste in whatever the customer sent", with this example:
Contact Ms Zhang · from 24 Burwood Rd Burwood · to 5/88 Anzac Pde Maroubra
· 0491 570 156 · booked 6.19 19:00 · about 2 hours
(The name, addresses and number are all made up — the number is from the range the Australian regulator ACMA reserves for film and TV.)
Tap "🤖 AI fill it in (check the time after)" and it populates customer name, WeChat, phone, from, to, date, start time and note, then says '✓ AI filled it in (AI) — check the time, then "Schedule"'. Again it does not book anything — the job hits your calendar when you tap ✓ Schedule.
A phone number and a WeChat ID sitting in the same blurb now get told apart — they used to end up in the wrong box.
Press-to-talk works here too.
Booking requests get triaged for you¶
Nothing to press here. Open the "🆕 Self-order inbox" and anything you haven't looked at is assessed automatically. Each card picks up:
- Difficulty — easy / medium / hard
- Risk — low / medium / high, and high-risk cards get a pink outline
- ⚠ Special items — piano, fish tank, glass, fourth floor with no lift, that sort of thing
- 🤖 Suggestion — one line, e.g. "two people and a van, strap the piano separately, price up per floor"
High-risk requests are pushed to the top of the list so they don't get buried.
It looks at a few at a time, and only once
Each time you open the inbox it triages at most 6 requests, and the result is stored on the request so it is never recomputed (saves your quota and your waiting). With a big backlog the tags appear in batches — open it again and the rest fill in.
These tags are hints only. Approving, holding or rejecting is still your call, and the only thing it judged was the text the customer typed. It knows nothing about the site.
Open a shop by describing it¶
The top of the "Start a store" page has a "🤖 Describe it, we fill it in" card: "Tell us what your business does — we pick the type, name it, and add a few starter items."
The placeholder suggests "e.g. I have a ute and help people move house". Fill it in and tap "Fill it in" (the button reads "Thinking…" while it works).
It fills in all three things below: the trade grid gets a selection, the shop name is written in, and a few typical items are preset under "Starter items" (e.g. small move $80 · full move $150 · rubbish removal $120). You get "Filled in from your description — edit anything". Every part is editable — retype the name, tap a different tile for the trade.
If it can't work it out it says "Could not work it out — picking a type by hand works just as well", or "Guessed from keywords — edit anything". Neither stops you opening the shop. See Open a store in three minutes.
Build the order form by describing it¶
Go to Me → 🖼 Edit store (on the right of your store's row) → the Ordering section. The order form sits under "Storefront mode", and at the top of it is "🤖 Generate the form from one sentence": "Say what you want to ask customers when they book; edit any field afterwards."
The example is "e.g. ask the home type and whether they have pets". Tap "Generate" and it lays out field names, field types, options and hints together. Say something like "when a customer books a move, ask the home type, whether there's a lift and whether there's any big furniture" and you get three fields, each with its type and options.
Generating replaces the fields you have
It asks first: "The generated form replaces the fields below (unsaved edits are lost). Continue?" Afterwards you get "Generated — save it once it looks right". Nothing is stored yet; edit what you want, then press "💾 Save — customers fill this".
If the model returns nothing it drops back to that trade's default fields and tells you: "The AI had nothing to add, so the template defaults are back"
For the field types and the five fields the system always adds, see Storefront.
List from a photo¶
Me → tap your store open → "📦 Inventory / Services" has "List from a photo (AI fills it in)" at the top: take (or pick) a photo of an item, AI reads its name, type, brand, model, colour, specs and condition, and you check it, choose a type, set a price and list it — three steps. The old "+ Add a new item / service" form also gained a "Fill from photo" button once you've picked a photo: it puts the name in the name box and the rest into Details.
The step-by-step and every box are in Storefront · List from a photo. Here is just the AI side:
- Like everywhere else, it fills and never saves. Nothing is stored until you tap "List", so a wrong guess never reaches your storefront. If the condition it reads isn't "brand new" (全新), "Second-hand" is ticked for you; untick it if that's wrong.
- It always uses the platform's vision model. It does not use the key, base URL or model in your "🤖 AI settings" — those only cover the five text features above. With your own key it still runs on the platform; without one it works just the same.
- There are limits, per store: "Each store can recognise one photo at a time, up to 20 an hour." Past that: "This hour’s photo recognitions are used up (20 per hour). Try again in about N min". It only takes jpg / png / webp up to 12 MB; a wrong file gets "Photo recognition needs a jpg/png/webp image, max 12 MB" and doesn't use up a try.
- There's no keyword fallback. The text features can scrape something with keywords when the model is unreachable; a photo can't be read without one. When the model can't help (it recognised nothing, or couldn't be reached) you get "Could not recognise it. Please fill in by hand" and the boxes stay blank for you.
- What it reads comes back in Chinese (brand and model stay as printed). It only fills what it can see or recognise with confidence; anything else stays blank rather than an invented model number.
When it gets it wrong¶
- The bracket in the confirmation is it reporting on itself: "(AI)" = a model filled this in; "(keyword)" = it couldn't reach the model this time and scraped it with keywords. Rougher, but the same rule applies: check it before saving.
- If it can't read the text at all, the deal page says "Parsing failed — fill it in by hand instead", and the schedule page says "Parsing failed — schedule it by hand instead". By hand is just as quick; don't fight it.
- Tap too fast and you get "Too many tries, wait a moment".
- Some phones can't record in the browser. You'll see "This device dictates better from the keyboard 🎤 — tap the text box, then its mic key". Do that; the result is the same.
Always eyeball an AI-filled deal before you save it
Amount, deposit and date are the three it mishears most. The record page does block empty deals — "Nothing to save yet: add at least one line item, or take a deposit" — but nothing stops it hearing 30 when you said 300.
What it can see (and what it can't)¶
Only the text (or the one photo) you hand it leaves the app. Case by case:
- Record a deal — the one line you spoke or typed.
- Schedule a job — the whole blurb you pasted. Whatever you paste, it sees — that blurb usually carries the customer's name, phone and address, so delete anything you'd rather not send before pasting.
- Request triage — only the item name, quantity, your custom form fields and the note. The customer's name and contact details are not included.
- Open a shop / generate a form — the description you wrote.
- List from a photo / Fill from photo (v3.2.4) — the one photo you picked (a shrunk copy), sent to the platform's AI provider to be recognised. Recognising it doesn't save the photo or change anything; only when you tap "List" is the same photo uploaded as the cover. Before you shoot, keep anything you'd rather not send out of the frame, such as a name and address on a shipping label.
Nothing else goes anywhere near it — not your ledger, your books, your customer list or your other jobs. It does not go digging through your shop to fill a form.
The public-board rule hasn't loosened either: before you confirm, an applicant structurally cannot reach the customer's name, address or phone. See The public board.
Bring your own model¶
AI is set up per store, not per account: on the Me page, tap your store open and use the "🤖 AI settings" tile. It says: "Connect your own LLM (OpenAI-compatible). Leave blank to use the platform default / keyword fallback."
Enter a model name (the hint suggests "e.g. qwen-turbo / abab6.5s-chat") and your key. To back out, tap "Clear API key (revert to default)". The page notes the key is write-only — once saved, the API Key field only carries a small "Set" tag and the box reads "Saved · leave blank to keep"; the key itself is never shown again.
What "per store" means in practice:
- One account with several stores has one AI setup per store, independent of each other. Store A on your own key while store B uses the platform default is fine.
- Whose quota a call uses follows the store you are working in: record a deal in store A and it runs on store A's setup.
- Only the owner can change it. Like the rest of a store's settings, helpers can't open this page.
- Opening a store runs on the platform's quota — "🤖 Describe your business" happens before the store exists, so there is no store setup to use yet.
- List from a photo ignores this page (v3.2.4) — recognition always runs on the platform's vision model; the key, base URL and model here have no effect on it. See List from a photo.
This only started working in v3.1.2
Before that, entering your own key did nothing — everything ran on the platform's quota. Now your key is used.
A base URL without a key falls back wholesale
Your base URL and model only count when you also supply your own key. Fill in a base URL but no key and the store falls back to the platform's default configuration entirely — the address you typed is not used.
That is deliberate: otherwise the platform's key would be sent to a server you chose. "My key at my endpoint" is the only combination that holds together.
Is the AI actually working? Check "AI status"¶
For three months before v3.1.2 the AI was quietly falling back and no screen said so. the top of "🤖 AI settings" has an "AI status" card that tells you at a glance whether it is really calling a model or just making do:
| The card says | Meaning |
|---|---|
| Really calling the model (green) | All good |
| Some calls failing | Some worked, some didn't — usually the provider being flaky |
| All calls falling back — AI is not actually working (red) | Nothing got through; the text features are all running on keywords |
| No key/endpoint — every AI feature is on keyword fallback | Neither the platform nor you have one configured |
| No calls yet since this restart | The service just restarted and nobody has used it yet — nothing to judge |
Underneath: "Last {n}: … ok · … failed", response times, whether it's "Using your own key" or "Using the platform quota", and if something failed, "Last failure: …" with the reason.
It's a short window
The figures only cover the most recent calls since the service last started ("Window = last {n} calls in this process; resets on restart."). Seeing "No calls yet since this restart" right after a deploy is normal — use it a couple of times and look again.
What it still cannot do¶
- It won't accept jobs, quote or price for you. Triage only suggests; which request you approve and what you charge are yours.
- It never saves anything by itself. All six places are "fill in → you confirm". None of them skip you.
- It reads item photos, not screenshots or audio files. it can look at a picture, but only in list from a photo / fill from photo, and only to read the item itself; recording a deal and scheduling a job still take text only, so a chat screenshot won't go in. Press-to-talk uses your phone's own speech-to-text, so a voice recording won't either.
Related: PC part lists paste in whole
Repair-template shops get "🧩 PC builds (PCPartPicker)". When creating one you can "Paste PCPartPicker list" — the whole thing at once, markdown table or plain text — and it splits into line items, with sell price defaulting to cost so you add your own markup. That's format parsing rather than AI, but it saves the same half hour.
Next¶
- Open a store in three minutes — the one-line shop opener is in step two
- Orders and reviewing — how to use the triage tags
- Storefront — editing the form it generated, and the three steps of list from a photo
- Ledger and invoices — where the money goes once AI has filled the form
- Short-video tutorial — episode 1 shows the one-line shop opener, episode 3 recording a deal by voice while driving