CRM & Email Marketing
CustomerWebMaster
One place for everyone your business talks to. Contacts arrive here from
your forms, shop, subscriptions and bookings; from here you group them into lists and send
email campaigns. Open:
CRM Admin.
Dashboard — how the business is doing
Totals at a glance across the suite: contacts, recent orders, bookings, form
submissions and campaign results. Start here; click through to the tab that needs
attention.
Contacts — the people
- New contact adds one by hand; Import CSV brings in
a spreadsheet and Export CSV takes everything out again.
- Each contact keeps a history of what they did — subscribed, ordered, booked,
wrote in — and any custom fields you have defined.
- Consent is tracked per contact. Marketing email only ever goes to people who opted
in; a purchase or a booking is not treated as consent.
Issues — support requests
Messages your customers send from their My Account page land here. Reply and
track them until they are resolved.
Lists — who a campaign goes to
Group contacts into named lists (newsletter, VIPs, past customers). A campaign is
always sent to a list, never to "everyone".
Campaigns — sending email
- New campaign: pick a list, pick or write a template, preview, send.
AI Generate can draft the content for you (uses AI credit).
- New subscribers can catch up. After a campaign is sent, the
Send to N new button mails it to people who joined the list since
— and the Auto toggle does the same thing continuously: with
Auto on, every new subscriber receives the campaign within a few minutes of joining.
Either way, nobody who already received it can ever get it twice.
- An unsubscribe link is added to every campaign automatically — it cannot be
forgotten and cannot be removed.
Click and open counting — how it works
Both counters are off by default and are switched on per website in
the Webmaster settings (group "Email marketing"). They only ever apply to campaigns
— never to receipts, confirmations or reminders.
- Clicks. With counting on, each link in a campaign is swapped for a
short counting address on your own website. When a reader clicks, the count goes up
and they are sent straight on to the real page — one extra hop, nothing to see.
- Opens. An invisible one-pixel image is added at the end of the
email; each time it is fetched, the open count goes up.
- Totals only, never people. Every recipient gets the identical
links, so no click or open can be traced to a person — no names, no addresses,
nothing stored about who. "Who opened this?" deliberately has no answer.
- Read clicks, not opens. Mail apps fetch images before the reader
sees anything, so opens are inflated — sometimes grossly. That is why the
Campaigns table shows clicks in bold and opens greyed with a
warning.
- The unsubscribe link is never rewritten. Leaving must stay
one-click and uncounted.
- The email says so. When counting is on, every campaign carries a
sentence telling recipients what is counted, in totals only. That sentence is not
optional — measuring readers without saying so is not fair.
Email templates — reusable designs
Build and edit the designs campaigns are made from, with images from upload, AI
generation, or stock photo search.
Deliverability — what came back
Bounces, spam complaints and unsubscribes, reported back by the mail service.
Addresses that bounce repeatedly, complain, or unsubscribe are
suppressed: the system will not email them again, even if they appear
in a list.
Custom fields, Business,
Website summary, AI credit
- Custom fields — add your own contact fields (size, region,
anything); they appear on every contact and in CSV import/export.
- Business — your business details: name, the email that
receives notifications, timezone, opening hours.
- Website summary — what the AI assistant knows about your site
when it writes for you.
- AI credit — the balance the AI features draw on, and what
each action cost.
Shop
CustomerWebMaster
Run the store: catalogue, delivery, discount codes, and the money.
Prices are always calculated on the server from what you set here — what a
shopper's browser claims is never trusted. Open:
Shop Admin.
Categories and Products
- Create categories, then products: name, price, description, category and sort
order.
- Stock is optional — "Track stock" enables a units count that
sells down and blocks overselling; "Not tracked" never runs out.
- Tax rate: leave blank to use the site rate, or set a per-product
rate (0 for zero-rated goods).
Product pictures — three ways to create one, without leaving the page
The picture block sits inside the product form. Whichever way you choose, the result
lands in the Image URL box and is kept when you press
Save Product — no design tool, no separate download, no other
website needed.
- 1. Upload a file. Your own photo or packshot. It is checked,
resized to fit (never stretched larger), and stored on your website. Costs
nothing.
- 2. Create with AI. Describe the image you want — "a blue
ceramic mug on a light wooden table" — and one is generated on the spot.
Uses a small amount of your AI credit per image (the button shows the cost), so it is
there whenever a product has no photo yet.
- 3. Search free stock photos. Type a keyword, browse real
photographs from a licensed library, and import the one you like — free. The
photographer's credit is stored with the picture and your storefront shows
"Photo by … on Pexels" under the product automatically, which is what
the licence requires — you never have to manage attribution yourself.
Every picture you have used stays in the shop's own image library — a thumbnail
strip in the same block — so a returning product can reuse an image with one
click. A source that is not set up for your site simply does not appear; WebMaster can
switch sources on.
Shipping — delivery options
- With no options here, the shop charges no delivery and asks for no
address. Adding the first option is what turns delivery on at checkout.
- Each option has a price, an ETA the customer sees, an optional free
over threshold, and an optional country list (blank = deliver anywhere).
Discounts — codes
Create codes with a value and an optional use limit. A redemption is only counted when
an order is paid — someone typing the code and walking away
costs a limited campaign nothing.
Orders — Sales and Abandoned
- Sales lists completed orders. Expand a row for line items, the
payment reference, and refunds.
- Refunds are by line and quantity, never a typed amount. Pick how
many of each item to refund, whether to refund delivery, and whether to put stock
back — the system works out the exact amount, including that line's share of
any discount and tax.
- Abandoned lists checkouts that were started but never paid —
who, when, and what was in the basket. It is read-only; each basket shows where it is
in the recovery process (recent → nudge due → nudge sent, or "payment
pending" while a card payment is still being confirmed).
Basket recovery is off by default. Switched on, it emails each
abandoned basket once, after a delay you choose, with a link that restores
the basket. Old baskets are cleaned away after a set number of days either way.
Appointments
CustomerWebMaster
What customers can book, who or what they book, and when. The public
booking page offers only times that pass every rule you set here. Open:
Appointments Admin.
Diary — the bookings
The day-by-day view of what has been booked, against which service and resource. This
is the tab you live in day to day; the others are setup.
Services — what can be booked
Each service has a name, a duration and a price. Customers pick a service first; only
services listed here appear on the booking page.
Resources — who or what serves it
Staff members, rooms, chairs, courts — whatever a booking occupies. A time slot
is offered only while a resource is free.
Opening hours and Closures
- Set bookable hours per weekday — or copy from business opening
hours (set in CRM → Business) and adjust.
- Closures are exceptions: holidays, maintenance days. A closure
removes those days from booking without touching the weekly pattern.
Forms
CustomerWebMaster
Build any form — enquiry, quote request, event signup —
without touching the website's code, and collect the answers here. Open:
Forms Admin.
Building a form
- New form, then Add field for each question: text,
email, choices, and more. Mark fields required as needed and save.
- After submitting sets what the visitor sees or where they are sent
once the form goes through.
- Advanced: the JSON view lets you paste or adjust a whole form
definition at once (Apply JSON).
Format — how the visitor sees it
The Format picker on the form's identity card chooses the
presentation, without changing the form itself:
- All fields at once — the classic single page.
- One question at a time — a step-by-step flow with Back and
Next, a progress bar, and one final Send. Good for longer forms: one question on
screen keeps people moving. Section headings become the introduction to the question
that follows them, and questions with a “show if” condition are skipped
automatically when they don't apply.
Walkthrough — create a one-question-at-a-time form
- Open Forms
Admin and click New form.
- On the identity card: give it a Name and a Slug
(lowercase letters, digits, hyphens — it goes in the public URL), set
Format to One question at a time, leave
Access on Anyone with the link, and keep
Active ticked.
- Add field for each question — each input field becomes one
step, in the order listed (reorder with the arrows). A section field is not
its own step: its text introduces the question after it. A field with a
“show if” condition only appears when its answer applies; otherwise the
step is skipped and the count adjusts.
- Optional: set CRM mapping (map an email field so submissions
create contacts) and the After submitting message.
- Save form — it is live immediately, no deploy needed.
Visitors open it on the
Forms page at
?f=<slug>.
The visitor sees one question per screen with Back and Next, a progress bar, and
Enter to advance; the last question's button reads Send, and the
whole reply is checked again on the server at that one final submit.
Access — public, or invitation only
The Access picker decides who can submit:
- Anyone with the link — the normal public form.
- Email invitation only — save the form and an
Invitations panel appears. Paste email addresses and/or pick a CRM
list and Send invitations: each recipient gets a personal
single-use link by email. Only those links can open and submit the
form, so the form needs no email field — every reply is logged under its
recipient's address and CRM contact automatically. The panel shows who has been
invited and who has submitted; Re-send issues a fresh link (for
another round), Remove revokes one. Invitation-only forms never
appear in the public form list.
CRM mapping — submissions become contacts
Map form fields to CRM fields (email, name, your custom fields) and every submission
creates or updates a contact automatically — so the people who write to you are
already in the CRM when you want to follow up.
Reading the answers
Submissions are listed per form, newest first, and Export CSV hands
the whole set to a spreadsheet.
Translations
WebMaster only
Run the site in more than one language. The apps' texts — product
names, service names, form labels, email content — are translated here, row by row
or by spreadsheet. Open:
Translations Admin.
Locales — which languages
Add locale to introduce a language, then activate it when its
translation is ready. One locale is the default the site falls back to.
Translate — the editor
- Every translatable text appears as a row: the original beside its translation in
the locale you are working on. Coverage shows how much is done.
- Untranslated rows fall back to the default language — an incomplete
translation shows mixed languages, never a gap.
- Export CSV hands the rows to an outside translator;
Import CSV brings the finished file back in one step.
Webmaster
WebMaster only
The operator's page — platform plumbing the business owner never
needs to touch. Open:
CRM Admin Webmaster.
Claude assist — settings and credit
- Edit settings holds the AI configuration for this site —
including the "Email marketing" group with the click and open counting switches.
Values are stored per site.
- Credit: the balance the site's AI features spend from.
Adjust (USD) tops it up or corrects it, with a reason;
Recent movements is the ledger of every charge and adjustment.
- Usage and margin shows what was spent today and how usage relates
to what the customer is charged. Sweep stranded releases charges
left behind by interrupted jobs.
Scheduler — the background jobs
The timetable of everything that runs unattended: appointment reminders, campaign
sending, basket-recovery emails, payment reconciliation, clean-up sweeps.
Run now triggers a job immediately instead of waiting for its slot
— useful when testing.
Mail feedback webhook
The connection that lets the mail service report bounces, complaints and unsubscribes
back to the CRM's Deliverability tab. Re-check verifies it is wired
up; Provisioning sets it up.
If Deliverability stops receiving events, this page is where to look first — a
healthy webhook here means the reports flow by themselves.
All six apps share one database per website: a contact created by a form submission is
the same contact the CRM emails and the shop's receipts reference.
Changes made in these pages take effect on the live website immediately — there is
no separate "publish" step for app data.