@aglyn/aglyn 1.0.0-beta.199 → 1.0.0-beta.200
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +11 -11
- package/src/lib/app-utils/activity-search.d.ts +39 -0
- package/src/lib/app-utils/activity-search.js +85 -0
- package/src/lib/app-utils/activity-search.js.map +1 -0
- package/src/lib/app-utils/admin-audit-index.d.ts +104 -0
- package/src/lib/app-utils/admin-audit-index.js +177 -0
- package/src/lib/app-utils/admin-audit-index.js.map +1 -0
- package/src/lib/app-utils/artifact-list-keys.d.ts +51 -0
- package/src/lib/app-utils/artifact-list-keys.js +144 -0
- package/src/lib/app-utils/artifact-list-keys.js.map +1 -0
- package/src/lib/app-utils/content-query-fields.d.ts +69 -0
- package/src/lib/app-utils/content-query-fields.js +79 -0
- package/src/lib/app-utils/content-query-fields.js.map +1 -0
- package/src/lib/app-utils/crm.d.ts +151 -1
- package/src/lib/app-utils/crm.js +388 -1
- package/src/lib/app-utils/crm.js.map +1 -1
- package/src/lib/app-utils/dataset-models.d.ts +75 -24
- package/src/lib/app-utils/dataset-models.js +107 -40
- package/src/lib/app-utils/dataset-models.js.map +1 -1
- package/src/lib/app-utils/docs-index.generated.js +40 -40
- package/src/lib/app-utils/docs-index.generated.js.map +1 -1
- package/src/lib/app-utils/email-search.d.ts +36 -0
- package/src/lib/app-utils/email-search.js +53 -0
- package/src/lib/app-utils/email-search.js.map +1 -0
- package/src/lib/app-utils/forms.d.ts +83 -3
- package/src/lib/app-utils/forms.js +67 -0
- package/src/lib/app-utils/forms.js.map +1 -1
- package/src/lib/app-utils/marketplace-listing-visibility.d.ts +7 -6
- package/src/lib/app-utils/marketplace-listing-visibility.js +12 -10
- package/src/lib/app-utils/marketplace-listing-visibility.js.map +1 -1
- package/src/lib/app-utils/media-metadata.d.ts +79 -0
- package/src/lib/app-utils/media-metadata.js +74 -0
- package/src/lib/app-utils/media-metadata.js.map +1 -1
- package/src/lib/app-utils/message-search.d.ts +40 -0
- package/src/lib/app-utils/message-search.js +168 -0
- package/src/lib/app-utils/message-search.js.map +1 -0
- package/src/lib/app-utils/name-search.d.ts +83 -0
- package/src/lib/app-utils/name-search.js +97 -0
- package/src/lib/app-utils/name-search.js.map +1 -1
- package/src/lib/app-utils/server.d.ts +2 -0
- package/src/lib/app-utils/server.js +2 -0
- package/src/lib/app-utils/server.js.map +1 -1
|
@@ -1500,7 +1500,7 @@ export const ASSIST_DOCS_INDEX = [
|
|
|
1500
1500
|
title: 'Reusable components',
|
|
1501
1501
|
heading: 'Manage',
|
|
1502
1502
|
anchor: '#manage',
|
|
1503
|
-
text: 'From the site\'s Components page you can rename, edit the description, open the besigner, or delete a reusable component. The component\'s ID is persisted inside every screen that places it and never changes.\nYou can also give a component its own icon, from the same picker the besigner uses for icon elements — either in the Edit component dialog on the Components page, or on the component\'s detail page. Every instance is then marked with it: in the hierarchy, on the canvas badge, and in the element drawer under Your components. A page assembled from promoted sections becomes readable at a glance. Components without an icon keep the generic package glyph.\nFilters in the Components table\'s toolbar narrows the list by name, Used in (page or email), ID,
|
|
1503
|
+
text: 'From the site\'s Components page you can rename, edit the description, open the besigner, or delete a reusable component. The component\'s ID is persisted inside every screen that places it and never changes.\nYou can also give a component its own icon, from the same picker the besigner uses for icon elements — either in the Edit component dialog on the Components page, or on the component\'s detail page. Every instance is then marked with it: in the hierarchy, on the canvas badge, and in the element drawer under Your components. A page assembled from promoted sections becomes readable at a glance. Components without an icon keep the generic package glyph.\nFilters in the Components table\'s toolbar narrows the list by name (a word of it, or the whole name), Used in (page or email), ID, or the date it was last updated, and Search finds a component by the start of any word of its name. Every filter and the search word are part of the list\'s query, so they look through every component on the site, not only the page on screen. Each filter in force shows as a chip above the table. A combination that cannot be asked at once — a name "contains" filter beside a search, or a second date range — is left out, and the table says which one and why. See Filter and search a list.'
|
|
1504
1504
|
},
|
|
1505
1505
|
{
|
|
1506
1506
|
path: '/building-sites/besigner/reusable-components',
|
|
@@ -2263,7 +2263,7 @@ export const ASSIST_DOCS_INDEX = [
|
|
|
2263
2263
|
title: 'Layouts',
|
|
2264
2264
|
heading: 'Find a layout',
|
|
2265
2265
|
anchor: '#find-a-layout',
|
|
2266
|
-
text: 'The site\'s Layouts page lists every layout. Filters in the table\'s toolbar narrows it by display name,
|
|
2266
|
+
text: 'The site\'s Layouts page lists every layout. Filters in the table\'s toolbar narrows it by display name (a word of it, or the whole name), ID, or the date it was last updated, and Search finds a layout by the start of any word of its name. Every filter and the search word are part of the list\'s query, so they look through every layout on the site, not only the page on screen, and the pager turns through the matches. Each filter in force shows as a chip above the table; remove a chip to drop it. Some combinations cannot be asked at once — a name "contains" filter beside a search, or a second date range — and the table says which filter it left out and why rather than applying it to part of the list. See Filter and search a list.'
|
|
2267
2267
|
},
|
|
2268
2268
|
{
|
|
2269
2269
|
path: '/building-sites/screens-and-layouts/layouts',
|
|
@@ -2774,7 +2774,7 @@ export const ASSIST_DOCS_INDEX = [
|
|
|
2774
2774
|
title: 'Build a blog',
|
|
2775
2775
|
heading: '2. Write entries',
|
|
2776
2776
|
anchor: '#2-write-entries',
|
|
2777
|
-
text: 'Add rich blog entries with images, a live preview, and scheduling so posts publish at the right time.\nNew entry, or clicking any row in the entries table, opens that entry on its own page. The page has its own address, so you can bookmark an entry you\'re mid-way through or paste the link to a colleague and they land on the same one. Back to entries — or your browser\'s Back button — returns to the list; if the entry has edits you haven\'t saved, you\'re asked before they\'re dropped.\nThe table opens with the most recently Published entries first. A scheduled entry sorts by the date it\'s due to go out, so the next posts in your queue open the list, and when you reverse the column they come last among the dated entries. Click the Title, Status, Updated or Published header to sort by that column, and again to reverse it. Entries with nothing in the sorted column, such as a draft with no published date, follow the rest in either direction rather than dropping out. Filters in the table\'s toolbar narrows the list
|
|
2777
|
+
text: 'Add rich blog entries with images, a live preview, and scheduling so posts publish at the right time.\nNew entry, or clicking any row in the entries table, opens that entry on its own page. The page has its own address, so you can bookmark an entry you\'re mid-way through or paste the link to a colleague and they land on the same one. Back to entries — or your browser\'s Back button — returns to the list; if the entry has edits you haven\'t saved, you\'re asked before they\'re dropped.\nThe table opens with the most recently Published entries first. A scheduled entry sorts by the date it\'s due to go out, so the next posts in your queue open the list, and when you reverse the column they come last among the dated entries. Click the Title, Status, Updated or Published header to sort by that column, and again to reverse it. Entries with nothing in the sorted column, such as a draft with no published date, follow the rest in either direction rather than dropping out. Filters in the table\'s toolbar narrows the list by Title (a word of it), Status, Category, Author, or the Published or Updated date, and Search finds an entry by the start of any word of its title. Every filter and the search word are part of the list\'s query, so they look through the whole collection, not only the page you\'re on, and each filter in force shows as a chip above the table. While the list is filtered or searched it sorts by Published or Updated, and a date filter sorts by the date it filters; a note above the table says when the order moved. A combination that cannot be asked at once — a Title filter beside a search, or two date ranges — is left out, and the table says which one and why. See Filter and search a list.\nEach entry carries, besides the title, excerpt, cover image, and markdown body:\n- Catego'
|
|
2778
2778
|
},
|
|
2779
2779
|
{
|
|
2780
2780
|
path: '/building-sites/site-templates/build-a-blog',
|
|
@@ -2858,7 +2858,7 @@ export const ASSIST_DOCS_INDEX = [
|
|
|
2858
2858
|
title: 'Save & share a template',
|
|
2859
2859
|
heading: 'Start from a template',
|
|
2860
2860
|
anchor: '#start-from-a-template',
|
|
2861
|
-
text: 'Open the starter template gallery and install a template. It lands in your templates library as one page template per page — publishing nothing until you choose which pages you want. Aglyn\'s own starter templates still create their pages straight away, since you pick those when a site is empty.\nWhere to find it\nTemplates sits next to the create button on three lists, and each one offers templates of its own kind:\n| List | What the picker offers |\n| Screens | Page templates, plus Aglyn\'s starter sites and marketplace templates |\n| Layouts | Layout templates |\n| Components | Component templates |\nStarter sites and marketplace templates are whole-site page bundles, so they appear only on Screens — a layout or component picker would have nothing to do with them.\nUse the filter icon in the dialog\'s header to search by name, description or category.'
|
|
2861
|
+
text: 'Open the starter template gallery and install a template. It lands in your templates library as one page template per page — publishing nothing until you choose which pages you want. Aglyn\'s own starter templates still create their pages straight away, since you pick those when a site is empty.\nWhere to find it\nTemplates sits next to the create button on three lists, and each one offers templates of its own kind:\n| List | What the picker offers |\n| Screens | Page templates, plus Aglyn\'s starter sites and marketplace templates |\n| Layouts | Layout templates |\n| Components | Component templates |\nStarter sites and marketplace templates are whole-site page bundles, so they appear only on Screens — a layout or component picker would have nothing to do with them.\nThe picker\'s search box finds a template, a starter or a marketplace listing by the start of any word of its name. Each shelf asks its own query, so the search looks through your whole library and the whole marketplace, not only the cards on screen, and your templates and the marketplace templates page through what matched.\nUse the filter icon in the dialog\'s header to search by name, description or category.'
|
|
2862
2862
|
},
|
|
2863
2863
|
{
|
|
2864
2864
|
path: '/building-sites/site-templates/save-a-template',
|
|
@@ -2886,7 +2886,7 @@ export const ASSIST_DOCS_INDEX = [
|
|
|
2886
2886
|
title: 'Your templates library',
|
|
2887
2887
|
heading: '',
|
|
2888
2888
|
anchor: '',
|
|
2889
|
-
text: 'Your templates library\nTemplates are saved starting points. A template is inert: nothing in your library is on your live site until you deliberately use it. That is the whole point of the library — it means installing something from the marketplace can never publish pages to a site you are running.\nFind it at Templates in a site\'s navigation, alongside Screens, Layouts and Components — the three things a template can produce.\nA template is a copy, not a live link: once you use one, the result is yours outright and editing the template never changes what you already made. If you want one edit to update every place a thing appears, you want a reusable component. If you want one frame around many pages, you want a layout.\nFilters in the library\'s toolbar narrows it by Kind (page, component, or layout), Source (marketplace, starter, or saved here), name,
|
|
2889
|
+
text: 'Your templates library\nTemplates are saved starting points. A template is inert: nothing in your library is on your live site until you deliberately use it. That is the whole point of the library — it means installing something from the marketplace can never publish pages to a site you are running.\nFind it at Templates in a site\'s navigation, alongside Screens, Layouts and Components — the three things a template can produce.\nA template is a copy, not a live link: once you use one, the result is yours outright and editing the template never changes what you already made. If you want one edit to update every place a thing appears, you want a reusable component. If you want one frame around many pages, you want a layout.\nFilters in the library\'s toolbar narrows it by Kind (page, component, or layout), Source (marketplace, starter, or saved here), name (a word of it, or the whole name), or the date it was last updated, and Search finds a template by the start of any word of its name — a starter by its starter\'s name. Every filter and the search word are part of the library\'s query, so they look through every template on the site, and the library pages through the matches. Each filter in force shows as a chip above the table; a combination that cannot be asked at once is left out, and the table says which one and why. See Filter and search a list.'
|
|
2890
2890
|
},
|
|
2891
2891
|
{
|
|
2892
2892
|
path: '/building-sites/site-templates/templates-library',
|
|
@@ -3117,7 +3117,7 @@ export const ASSIST_DOCS_INDEX = [
|
|
|
3117
3117
|
title: 'Product catalog',
|
|
3118
3118
|
heading: 'Collections',
|
|
3119
3119
|
anchor: '#collections',
|
|
3120
|
-
text: 'Collections group products for landing pages and storefront blocks:\n- Manual collections are an ordered, hand-picked list.\n- Smart collections define rules — match by tag, category, price, name, or product type, with all or any semantics — and membership updates automatically as products change. Draft and archived products never appear.'
|
|
3120
|
+
text: 'Collections group products for landing pages and storefront blocks:\n- Manual collections are an ordered, hand-picked list.\n- Smart collections define rules — match by tag, category, price, name, or product type, with all or any semantics — and membership updates automatically as products change. Draft and archived products never appear. A smart collection lists every product that matches, however large the catalog. Saving or deleting one updates which products it holds right away. On a big catalog that can take a few seconds after Collection saved appears.\nOn a Product grid scoped to a smart collection whose rules use any, is not, a name, or a price above, the grid\'s search box and its category and tag chips can\'t be combined with the collection. Using one shows a notice above the grid instead of narrowing it. The type, In stock and price controls still work.'
|
|
3121
3121
|
},
|
|
3122
3122
|
{
|
|
3123
3123
|
path: '/commerce-and-bookings/commerce/catalog',
|
|
@@ -3152,28 +3152,28 @@ export const ASSIST_DOCS_INDEX = [
|
|
|
3152
3152
|
title: 'Commerce',
|
|
3153
3153
|
heading: 'Products hub',
|
|
3154
3154
|
anchor: '#products-hub',
|
|
3155
|
-
text: 'The Products page is the catalog manager:\n- Products with up to 3 options and 100 variants each — per-variant SKU, barcode, price, compare-at (sale badge), weight, and stock. See Product catalog.\n- Categories & collections — a category tree plus manual and smart (rule-based) collections with a live match preview.\n- CSV import/export in the Shopify column dialect, with a dry-run report — switching from Shopify is a file upload.\n- Payments — Stripe Connect onboarding status and your plan\'s fee ladder.\nThe product list filters through its own toolbar
|
|
3155
|
+
text: 'The Products page is the catalog manager:\n- Products with up to 3 options and 100 variants each — per-variant SKU, barcode, price, compare-at (sale badge), weight, and stock. See Product catalog.\n- Categories & collections — a category tree plus manual and smart (rule-based) collections with a live match preview.\n- CSV import/export in the Shopify column dialect, with a dry-run report — switching from Shopify is a file upload.\n- Payments — Stripe Connect onboarding status and your plan\'s fee ladder.\nThe product list filters through its own toolbar, and every filter and the search reach the whole catalog, not only the rows on screen. The list is in name order and pages through whatever matches.\n- Search matches the start of a word in a product\'s name, using the first word you type.\n- Filters offers Product (the name contains a word, is, or starts with), Status (Active, Draft, Archived), Type (Physical, Digital, Service), Slug, SKU and Barcode. A SKU or barcode is matched whole, the way you copy or scan it; is any of takes several, separated by commas.\nFilters combine. The one exception: the search, a Product contains filter, and a SKU or Barcode filter each look a word or code up in a list, and only one of those lookups can apply at a time. The list says which one it set aside, above the table, rather than applying it to some products and not others. Each filter in force shows as a chip above the table; remove the chip to clear it. See Filter and search a list.\nExport writes every product the filters and search match, in the same order — up to 10,000 in one file. With nothing filtered, that is the whole catalog except deleted products.'
|
|
3156
3156
|
},
|
|
3157
3157
|
{
|
|
3158
3158
|
path: '/commerce-and-bookings/commerce/overview',
|
|
3159
3159
|
title: 'Commerce',
|
|
3160
3160
|
heading: 'Inventory',
|
|
3161
3161
|
anchor: '#inventory',
|
|
3162
|
-
text: '- Per-variant stock; blank = untracked, 0 = sold out.\n- Oversell policy per product: stop selling or allow backorders.\n- Low-stock alerts notify managers once per threshold crossing.\n- Adjustment history with reason codes (sale, restock, correction…).\n- Locations split stock across warehouses/storefronts (plan-capped); adjustments and POS sales bucket per location.\n- Reserved in checkout holds units for a shopper who has reached the payment page, so the last one cannot be sold twice.\nReserved stock {#reserved-stock}\nWhen a shopper reaches the payment page, the units in their basket are reserved — the next shopper is offered what is left, not the same unit. It is what stops two people paying for the last one.\nYour stock count does not move when a unit is reserved. A reservation is a promise, not a sale, and the count means what is on the shelf. The products list names the difference instead: 3 (1 reserved) is three units on the shelf with one of them spoken for, so two are available to buy right now.\nA reservation is released when the shopper pays (the count moves then), when they abandon the checkout, or after 31 minutes, whichever comes first. A checkout page left open expires on its own, so nothing stays reserved by someone who walked away.\nTwo cases reserve nothing, deliberately: a variant with no stock tracking has no number to reserve against, and a product set to allow backorders is one you have told us to keep selling past zero.\nSales at the register are not affected — the till never refuses a sale, because the shelf in front of the cashier is the truth.\nStock movements {#stock-movements}\nInventory → Stock movements is the history behind every tracked count — the answer to "the shelf says four and the console says six, what happened?"\
|
|
3162
|
+
text: '- Per-variant stock; blank = untracked, 0 = sold out.\n- Oversell policy per product: stop selling or allow backorders.\n- Low-stock alerts notify managers once per threshold crossing.\n- Adjustment history with reason codes (sale, restock, correction…).\n- Locations split stock across warehouses/storefronts (plan-capped); adjustments and POS sales bucket per location.\n- Reserved in checkout holds units for a shopper who has reached the payment page, so the last one cannot be sold twice.\nReserved stock {#reserved-stock}\nWhen a shopper reaches the payment page, the units in their basket are reserved — the next shopper is offered what is left, not the same unit. It is what stops two people paying for the last one.\nYour stock count does not move when a unit is reserved. A reservation is a promise, not a sale, and the count means what is on the shelf. The products list names the difference instead: 3 (1 reserved) is three units on the shelf with one of them spoken for, so two are available to buy right now.\nA reservation is released when the shopper pays (the count moves then), when they abandon the checkout, or after 31 minutes, whichever comes first. A checkout page left open expires on its own, so nothing stays reserved by someone who walked away.\nTwo cases reserve nothing, deliberately: a variant with no stock tracking has no number to reserve against, and a product set to allow backorders is one you have told us to keep selling past zero.\nSales at the register are not affected — the till never refuses a sale, because the shelf in front of the cashier is the truth.\nStock movements {#stock-movements}\nInventory → Stock movements is the history behind every tracked count — the answer to "the shelf says four and the console says six, what happened?"\nFour things write to it and '
|
|
3163
3163
|
},
|
|
3164
3164
|
{
|
|
3165
3165
|
path: '/commerce-and-bookings/commerce/overview',
|
|
3166
3166
|
title: 'Commerce',
|
|
3167
3167
|
heading: 'Gift cards & store credit',
|
|
3168
3168
|
anchor: '#gift-cards',
|
|
3169
|
-
text: 'Gift cards lists every card your store has issued, what is left on each one, and what that adds up to. Business plan and above.\nCards arrive two ways:\n- A shopper buys one. A gift-card purchase mints a card with a code at the moment the payment settles.\n- You issue one by hand. Enter an amount and, optionally, an email address and the code is created and mailed to that person. This is the goodwill gesture and the service-recovery path — a refund you would rather keep as store credit.\nBalances apply automatically at checkout; a shopper enters the code and the card is drawn down by what the order uses. Search the list
|
|
3169
|
+
text: 'Gift cards lists every card your store has issued, what is left on each one, and what that adds up to. Business plan and above.\nCards arrive two ways:\n- A shopper buys one. A gift-card purchase mints a card with a code at the moment the payment settles.\n- You issue one by hand. Enter an amount and, optionally, an email address and the code is created and mailed to that person. This is the goodwill gesture and the service-recovery path — a refund you would rather keep as store credit.\nBalances apply automatically at checkout; a shopper enters the code and the card is drawn down by what the order uses. Search by code or email finds a card anywhere in the list, not only on the page in front of you: type the start of its code (with or without GC-) or a word of the recipient\'s address. Search matches one word at a time and reads the first 12 characters of it.\nOutstanding balance is a liability, not revenue The outstanding total at the top is money customers have already paid you and have not yet spent. It is store credit you owe against future orders, and it belongs on the liability side of your books — not in a sales figure. Cards are counted at zero or above, so a card that has somehow gone negative cannot flatter that total downward.\nVoiding a card zeroes whatever is left on it. The holder can no longer redeem it and the action cannot be undone, so you are asked to confirm the remaining amount first.'
|
|
3170
3170
|
},
|
|
3171
3171
|
{
|
|
3172
3172
|
path: '/commerce-and-bookings/commerce/overview',
|
|
3173
3173
|
title: 'Commerce',
|
|
3174
3174
|
heading: 'Recovery & alerts',
|
|
3175
3175
|
anchor: '#recovery-and-alerts',
|
|
3176
|
-
text: 'Two queues the storefront fills and Aglyn drains for you, both visible so you can see they are moving.\nAbandoned checkouts — a shopper who reached checkout, entered their email and left. Aglyn emails them once, with a link back to the cart they had built, about fifteen minutes after that checkout has been idle for an hour. A checkout that gets completed stops reminding itself, and one that is never completed is given up on after seven days. The card shows how many are due a reminder, how many are still inside the first hour, and how many have already been reminded, with the most recent
|
|
3176
|
+
text: 'Two queues the storefront fills and Aglyn drains for you, both visible so you can see they are moving.\nAbandoned checkouts — a shopper who reached checkout, entered their email and left. Aglyn emails them once, with a link back to the cart they had built, about fifteen minutes after that checkout has been idle for an hour. A checkout that gets completed stops reminding itself, and one that is never completed is given up on after seven days. The card shows how many are due a reminder, how many are still inside the first hour, and how many have already been reminded, with the five most recent open checkouts named. Pro plan and above.\nBack-in-stock alerts — anyone who used "Notify me when it\'s back" on a sold-out product is emailed once its stock goes above zero. The count of shoppers waiting is a demand signal worth restocking against. Available on every plan that includes commerce.\nEvery figure is counted across the whole queue, however long it is, and counted again when a checkout changes. Until a count arrives its chip shows a dash rather than a zero.\nBoth are read-only here on purpose. Sending is the scheduled job\'s to do, and a "send now" button would race it for a reminder you cannot un-send.'
|
|
3177
3177
|
},
|
|
3178
3178
|
{
|
|
3179
3179
|
path: '/commerce-and-bookings/commerce/overview',
|
|
@@ -3222,7 +3222,7 @@ export const ASSIST_DOCS_INDEX = [
|
|
|
3222
3222
|
title: 'POS & reservations',
|
|
3223
3223
|
heading: 'The register',
|
|
3224
3224
|
anchor: '#the-register',
|
|
3225
|
-
text: 'Open /{site}/pos in the console for a touch-first register. Pick which register you\'re on at the top of the panel (skipped automatically when you have only one):\n- Product grid — tap to add; products with variants show quick chips.\n- Barcode scanners — any keyboard-wedge scanner works: it types the code into the search box and presses Enter, which adds the exact SKU/barcode match. No drivers or pairing needed.\n- Payments — cash (with change calculation), card via QR (the customer scans and pays on their phone; the sale completes automatically), or charge to room for checked-in reservation guests. Stripe Terminal readers can replace the QR step later without changing the flow.\n- Receipts print through the browser\'s print dialog — any receipt printer with a system print driver works. Set the paper size to your roll width once and the browser remembers it.\nPOS sales create normal orders tagged pos, decrement the same inventory as your online store (per location if you use locations), and appear in the orders list under the channel filter.\nPlatform fees at the register\nYour plan\'s platform fee is charged on the sale, not on how it was paid — the rate is the same whether the customer hands you cash, scans the QR, or charges it to their room. What differs is only how it reaches us:\n| Tender | How the fee is collected |\n| Card (QR) | Deducted from your Stripe payout for that sale |\n| Cash | No payout to deduct from — added to your next monthly invoice |\n| Charge to room | Same as cash: added to your next monthly invoice |\nThe customer never pays the fee, and the amount Due on the register is the same on every tender. On
|
|
3225
|
+
text: 'Open /{site}/pos in the console for a touch-first register. Pick which register you\'re on at the top of the panel (skipped automatically when you have only one):\n- Product grid — tap to add; products with variants show quick chips. The grid shows your first 500 active products by name; typing in the search box finds a product by the start of a word in its name across the whole catalog.\n- Barcode scanners — any keyboard-wedge scanner works: it types the code into the search box and presses Enter, which adds the exact SKU/barcode match. No drivers or pairing needed.\n- Payments — cash (with change calculation), card via QR (the customer scans and pays on their phone; the sale completes automatically), or charge to room for checked-in reservation guests. Stripe Terminal readers can replace the QR step later without changing the flow.\n- Receipts print through the browser\'s print dialog — any receipt printer with a system print driver works. Set the paper size to your roll width once and the browser remembers it.\nPOS sales create normal orders tagged pos, decrement the same inventory as your online store (per location if you use locations), and appear in the orders list under the channel filter.\nPlatform fees at the register\nYour plan\'s platform fee is charged on the sale, not on how it was paid — the rate is the same whether the customer hands you cash, scans the QR, or charges it to their room. What differs is only how it reaches us:\n| Tender | How the fee is collected |\n| Card (QR) | Deducted from your Stripe payout for that sale |\n| Cash | No payout to deduct from — added to your next monthly invoice |\n| Charge to room | Same as cash: added to your next monthly invoice |\nThe customer never pays the fee, and the amount Due on the register is the same on every tender. On pl'
|
|
3226
3226
|
},
|
|
3227
3227
|
{
|
|
3228
3228
|
path: '/commerce-and-bookings/commerce/pos-and-reservations',
|
|
@@ -3579,7 +3579,7 @@ export const ASSIST_DOCS_INDEX = [
|
|
|
3579
3579
|
title: 'Companies',
|
|
3580
3580
|
heading: 'The companies list',
|
|
3581
3581
|
anchor: '#the-companies-list',
|
|
3582
|
-
text: 'The list shows every company your site may see,
|
|
3582
|
+
text: 'The list shows every company your site may see, most recently changed first, with its domain, how many contacts are linked to it, its owner, when it was last changed and its next activity — when the earliest open task against it is due. The table\'s Search box finds a company by a word of its name or its domain. Filters › Company finds one whose name is exactly what you type, or starts with it — which orders the list by name — Filters › Owner shows one teammate\'s accounts, or any of several, and Next activity › is empty keeps only the companies with nothing scheduled.\nEvery filter and the search are answered by the list\'s query, so they reach every company, a page at a time, not only the page on screen, and filters on different columns add up. The search matches whole words from their start — "cof" finds Coffee, a fragment from the middle of a word does not — one word at a time: type several and it searches the first, and says so. Under a site, a member whose access is limited to particular sites searches by the start of a company\'s name, and a notice says so. When a combination cannot be answered by one query, the list does not apply that filter, and a notice above the table names it and says why; see Filter and search a list. Clicking a row opens the company\'s page.\nThe Contacts column is a count kept on the company and moved with every link and unlink, so a page of companies costs no lookup per row. A company linked before the count existed can read lower than its page shows; the company\'s own page counts live, and is the figure to trust when the two differ.'
|
|
3583
3583
|
},
|
|
3584
3584
|
{
|
|
3585
3585
|
path: '/content-and-data/crm/companies',
|
|
@@ -3719,7 +3719,7 @@ export const ASSIST_DOCS_INDEX = [
|
|
|
3719
3719
|
title: 'The contact record',
|
|
3720
3720
|
heading: 'Finding a contact',
|
|
3721
3721
|
anchor: '#finding-a-contact',
|
|
3722
|
-
text: 'The list\'s filters
|
|
3722
|
+
text: 'The list\'s filters and its search box reach every contact, page by page; the search finds a person by a word of their name or email addresses — see Filters on the Contacts list. The console\'s search (the magnifying glass in the top bar) finds contacts too — by name, email, phone number or company name — and opens the person\'s page. Contacts appear in that search only for members who can manage data on the site, and only while the CRM is available to them.\nThe phone number and company name are kept on the record itself for that lookup, as this site last saved them; the values you see on a person\'s page are always your own site\'s.'
|
|
3723
3723
|
},
|
|
3724
3724
|
{
|
|
3725
3725
|
path: '/content-and-data/crm/contact-record',
|
|
@@ -3824,7 +3824,7 @@ export const ASSIST_DOCS_INDEX = [
|
|
|
3824
3824
|
title: 'Deals pipeline',
|
|
3825
3825
|
heading: 'The board and the table',
|
|
3826
3826
|
anchor: '#the-board-and-the-table',
|
|
3827
|
-
text: 'The section opens as a board of the chosen pipeline: one column per open stage, with Won and Lost folded away at the end until you expand them. Each card shows the deal\'s title, amount, the contact and company it is with, its owner, and how many days it has sat in its current stage. Drag a card between columns to move it, or use the card\'s menu to move it, mark it won, or mark it lost from the keyboard.\nAbove the board, three figures summarize what is open: the open count, the pipeline value (every open deal\'s amount, per currency) and the weighted value (each amount multiplied by its stage\'s probability).\nSwitch to the table for a paged list with the title, stage, amount, owner, expected close date, status and next activity of every deal in the pipeline, including the closed ones. The table\'s Filters panel narrows it by Status (open, won or lost), and Next activity › is empty keeps only the deals
|
|
3827
|
+
text: 'The section opens as a board of the chosen pipeline: one column per open stage, with Won and Lost folded away at the end until you expand them. Each card shows the deal\'s title, amount, the contact and company it is with, its owner, and how many days it has sat in its current stage. Drag a card between columns to move it, or use the card\'s menu to move it, mark it won, or mark it lost from the keyboard.\nAbove the board, three figures summarize what is open: the open count, the pipeline value (every open deal\'s amount, per currency) and the weighted value (each amount multiplied by its stage\'s probability).\nSwitch to the table for a paged list with the title, stage, amount, owner, expected close date, status and next activity of every deal in the chosen pipeline, including the closed ones, most recently changed first. The table\'s Filters panel narrows it by Status (open, won or lost — one, or any of them), and Next activity › is empty keeps only the deals with no open task scheduled against them — the ones the reports page counts as stuck. Search finds a deal by any word of its title.\nEvery filter and the search are answered by the table\'s query, so they reach every deal in the pipeline, a page at a time, not only the page on screen, and filters on different columns add up. The search matches whole words from their start — "cof" finds Coffee, a fragment from the middle of a word does not — one word at a time: type several and it searches the first, and says so. Under a site, a member whose access is limited to particular sites searches by the start of a deal\'s title, and a notice says so. When a combination cannot be answered by one query, the table does not apply that filter, and a notice above it names the filter and says why; see Filter and search a list. The board ha'
|
|
3828
3828
|
},
|
|
3829
3829
|
{
|
|
3830
3830
|
path: '/content-and-data/crm/deals',
|
|
@@ -3971,7 +3971,7 @@ export const ASSIST_DOCS_INDEX = [
|
|
|
3971
3971
|
title: 'Leads',
|
|
3972
3972
|
heading: '',
|
|
3973
3973
|
anchor: '',
|
|
3974
|
-
text: 'Leads\nA lead is somebody you have heard of but not yet qualified: a visitor who booked or wrote in through a form that routes leads, a person from a list you imported, or one you added by hand. It is a record of its own — the way it is in Salesforce — and it becomes a contact only when you convert it. The Leads section of the CRM is where the team works them — decides who owns each one, keeps notes, and either converts the lead into a contact or closes it with a reason.\nLeads live under the site that captured them, so each site\'s list is its own. Open CRM → Leads in the console, or use Open in CRM on a
|
|
3974
|
+
text: 'Leads\nA lead is somebody you have heard of but not yet qualified: a visitor who booked or wrote in through a form that routes leads, a person from a list you imported, or one you added by hand. It is a record of its own — the way it is in Salesforce — and it becomes a contact only when you convert it. The Leads section of the CRM is where the team works them — decides who owns each one, keeps notes, and either converts the lead into a contact or closes it with a reason.\nLeads live under the site that captured them, so each site\'s list is its own. Open CRM → Leads in the console, or use Open in CRM on a row of the Leads list in the Inbox\'s Site Members & Leads section.\nPlan availability Leads are part of the CRM, included from Starter. On Free the section is shown locked, with the rest of the CRM. Leads are still filed on Free, exactly as described below, and kept; workspace owners and admins can export every lead, or erase a person, from Settings → Privacy. See What each plan includes.'
|
|
3975
3975
|
},
|
|
3976
3976
|
{
|
|
3977
3977
|
path: '/content-and-data/crm/leads',
|
|
@@ -3992,7 +3992,7 @@ export const ASSIST_DOCS_INDEX = [
|
|
|
3992
3992
|
title: 'Leads',
|
|
3993
3993
|
heading: 'The Leads list',
|
|
3994
3994
|
anchor: '#the-leads-list',
|
|
3995
|
-
text: 'The list shows the most recently seen leads first — a person who booked yesterday sits above one who signed up last month, whichever came first. Each row carries:\n| Column | What it shows |\n| Lead | The name the person gave, with their email beneath it — or the email alone. |\n| Company, Title | The lead\'s own company and job title, as text. |\n| Status | New, Working, Qualified or Unqualified. Change it in place from the row. |\n| Email | The last verdict on the lead\'s address — see Email state — or a dash when nothing is known. |\n| Owner | The team member working the lead, or Unassigned. A lead inherits its contact\'s owner when one is assigned on capture. |\n| Source | Every surface that captured this person: Booking, the form they submitted, an import, New lead, or the API — and Sign-up on leads filed before sign-ups stopped making leads. |\n| Lead source | The lead\'s lead source.
|
|
3995
|
+
text: 'The list shows the most recently seen leads first — a person who booked yesterday sits above one who signed up last month, whichever came first. It keeps that order: the column headers do not re-sort it. Each row carries:\n| Column | What it shows |\n| Lead | The name the person gave, with their email beneath it — or the email alone. |\n| Company, Title | The lead\'s own company and job title, as text. |\n| Status | New, Working, Qualified or Unqualified. Change it in place from the row. |\n| Email | The last verdict on the lead\'s address — see Email state — or a dash when nothing is known. |\n| Owner | The team member working the lead, or Unassigned. A lead inherits its contact\'s owner when one is assigned on capture. |\n| Source | Every surface that captured this person: Booking, the form they submitted, an import, New lead, or the API — and Sign-up on leads filed before sign-ups stopped making leads. |\n| Lead source | The lead\'s lead source. |\n| Tags | The lead\'s tags. |\n| Campaign | The campaigns the lead is filed under, by name. Under a site only — a campaign belongs to one site. |\n| Last seen | When the person last did something on your site. |\nFilter and search the leads {#filter-the-leads}\nThe table\'s own toolbar filters the list: Filters opens the filter panel, and Search finds a lead by a word of its name, its email address — and each part of the address, so the domain alone finds it — its company, its title or its tags. Status, Email, Owner, Lead source and Campaign are picked from a list in the panel, and from each column\'s menu. Status starts on Open (new or working), every lead that still needs working; pick one status instead, or remove the filter to see every lead. A lead nobody has touched yet has no status of its own and reads as New, so the leads your site co'
|
|
3996
3996
|
},
|
|
3997
3997
|
{
|
|
3998
3998
|
path: '/content-and-data/crm/leads',
|
|
@@ -4160,7 +4160,7 @@ export const ASSIST_DOCS_INDEX = [
|
|
|
4160
4160
|
title: 'Reports',
|
|
4161
4161
|
heading: 'Lead funnel',
|
|
4162
4162
|
anchor: '#lead-funnel',
|
|
4163
|
-
text: 'Of the leads this site captured in the period, where each one stands now, and why the ones closed without converting were closed.\n- Leads captured — leads first seen in the period, counted on the server, with the change against the previous period.\n- Qualified and Unqualified — how many of those captured have been converted, or closed without converting, each with its share of the leads captured.\n- Still open — leads that are New or Working.\n- Where they stand — one bar per status. A lead nobody has touched yet is New.\n- Why leads were unqualified — the reasons given when leads were unqualified, most common first, each with its share of the unqualified leads. Different spellings of one reason are counted together; a lead closed with no reason is listed as No reason given.\nA lead is placed by when it was first seen, so a returning visitor\'s second form does not make a second lead in a second period. The funnel is read from the period\'s 200 most recently captured leads
|
|
4163
|
+
text: 'Of the leads this site captured in the period, where each one stands now, and why the ones closed without converting were closed.\n- Leads captured — leads first seen in the period, counted on the server, with the change against the previous period.\n- Qualified and Unqualified — how many of those captured have been converted, or closed without converting, each with its share of the leads captured.\n- Still open — leads that are New or Working.\n- Where they stand — one bar per status. A lead nobody has touched yet is New.\n- Why leads were unqualified — the reasons given when leads were unqualified, most common first, each with its share of the unqualified leads. Different spellings of one reason are counted together; a lead closed with no reason is listed as No reason given.\nA lead is placed by when it was first seen, so a returning visitor\'s second form does not make a second lead in a second period. The funnel is read from the period\'s 200 most recently captured leads, and says so when the period held more. Because leads belong to a site rather than to the workspace, this card reports the site you are looking at; at the organization level it reads every site — at most 200 leads per site — and totals them, naming the per-site window when any site held more.'
|
|
4164
4164
|
},
|
|
4165
4165
|
{
|
|
4166
4166
|
path: '/content-and-data/crm/reports',
|
|
@@ -4279,7 +4279,7 @@ export const ASSIST_DOCS_INDEX = [
|
|
|
4279
4279
|
title: 'Sequences',
|
|
4280
4280
|
heading: 'Sequences',
|
|
4281
4281
|
anchor: '#sequences',
|
|
4282
|
-
text: 'A sequence is the emails, and the tasks between them, one person gets from one rep. Sequences → All sequences lists each one with its mailbox, its status, and how many people it has enrolled, and how many of them are still active, replied, bounced or opted out.\nThe table\'s toolbar filters
|
|
4282
|
+
text: 'A sequence is the emails, and the tasks between them, one person gets from one rep. Sequences → All sequences lists each one with its mailbox, its status, and how many people it has enrolled, and how many of them are still active, replied, bounced or opted out.\nThe list is newest first, a page at a time. The table\'s toolbar filters it. Filters narrows it by Status or Mailbox (pick one or several), by the name (a word in it, or the whole name), or by the day it was Created (on, before or after a date). Search finds a sequence by the start of any word of its name. Every filter and the search are answered by the database across all your sequences, not only the page on screen, and each filter in force shows as a chip above the table; remove a chip to drop its filter. The Filters panel edits one filter at a time, and filters on different columns add up. A combination the database cannot answer at once — a name word together with a search, for example — is named above the table rather than applied to some rows. See Filter and search a list.\nBuild a sequence {#build-a-sequence}\nSelect New sequence, name it, and choose the site whose CRM the people you enroll are contacts of and the mailbox it sends from. A sequence sends as the member who connected its mailbox, so only that member, or an organization owner or admin, can edit or activate it.\nThe Mailbox list offers the mailboxes you connected, and an owner or admin every mailbox in the organization. A disconnected mailbox is never offered. When exactly one of your own mailboxes is active, a new sequence starts on it. With none, connect one first.\nA sequence holds up to eight steps, of which up to four are emails:\n- Email — a subject and a body, or a CRM email template whose body is sent. Insert merge fields — the contact\'s firs'
|
|
4283
4283
|
},
|
|
4284
4284
|
{
|
|
4285
4285
|
path: '/content-and-data/crm/sequences',
|
|
@@ -4293,7 +4293,7 @@ export const ASSIST_DOCS_INDEX = [
|
|
|
4293
4293
|
title: 'Sequences',
|
|
4294
4294
|
heading: 'Enrollments',
|
|
4295
4295
|
anchor: '#enrollments',
|
|
4296
|
-
text: 'A sequence\'s Enrollments tab lists everyone in it: their status, the step they\'re on, when the next one is due in the mailbox\'s timezone, when the last one went, and why they stopped when they have. A person enrolled as a lead is marked Lead until the lead converts. For each one you can:\n- Pause and Resume — nothing is sent while they\'re paused. An enrollment the engine held because its mail gateway refused you twice is paused the same way, and Resume on it sends the email anyway.\n- Stop — they get nothing more from this sequence.\n- Mark do-not-contact — puts the address on your organization\'s do-not-contact list, which every sequence checks before every send, and stops them in every other sequence too.\nThe tab
|
|
4296
|
+
text: 'A sequence\'s Enrollments tab lists everyone in it: their status, the step they\'re on, when the next one is due in the mailbox\'s timezone, when the last one went, and why they stopped when they have. A person enrolled as a lead is marked Lead until the lead converts. For each one you can:\n- Pause and Resume — nothing is sent while they\'re paused. An enrollment the engine held because its mail gateway refused you twice is paused the same way, and Resume on it sends the email anyway.\n- Stop — they get nothing more from this sequence.\n- Mark do-not-contact — puts the address on your organization\'s do-not-contact list, which every sequence checks before every send, and stops them in every other sequence too.\nThe tab lists the people newest enrolled first, a page at a time, and its toolbar filters them. Filters narrows them by Status, Enrolled as (contact or lead) and Stop reason (pick one or several), by the whole Email address, or by the day they were Enrolled (on, before or after a date). Search finds a person by the start of any word of their name or of their address — casey, morgan or example.com all find casey.morgan@example.com. Every filter and the search are answered by the database across everyone in the sequence, not only the page on screen; a combination it cannot answer at once is named above the table instead of being applied to some rows. See Filter and search a list.'
|
|
4297
4297
|
},
|
|
4298
4298
|
{
|
|
4299
4299
|
path: '/content-and-data/crm/sequences',
|
|
@@ -4412,7 +4412,7 @@ export const ASSIST_DOCS_INDEX = [
|
|
|
4412
4412
|
title: 'Tasks & follow-ups',
|
|
4413
4413
|
heading: 'The tasks page',
|
|
4414
4414
|
anchor: '#the-tasks-page',
|
|
4415
|
-
text: 'The Tasks section is one list with six views, chosen under Show in the table\'s Filters panel — My tasks unless you choose another:\n| View | What it shows |\n| My tasks | Open tasks assigned to you, soonest due first. Tasks with no due date come last. |\n| Overdue | Open tasks whose due date is before today. |\n| Today | Open tasks due at any time today. |\n| Upcoming | Open tasks due tomorrow or later. |\n| All open | Every open task, whoever it is assigned to. |\n| Done | Completed tasks, most recently due first. |\n"Overdue" and "today" are not stored on the task — nothing runs at midnight to stamp them. Each view is a window over the due date computed from your own clock and time zone when you look, and a tab left open across midnight repaints yesterday\'s work as overdue on its own.\nEach row shows a checkbox that completes or reopens the task, the title (with the first line of notes under it), the kind, the priority, the due date colored by where it stands — red when overdue, amber when due today — with a snooze beside it, the assignee, and the record it is for, as a link into that record\'s page.
|
|
4415
|
+
text: 'The Tasks section is one list with six views, chosen under Show in the table\'s Filters panel — My tasks unless you choose another:\n| View | What it shows |\n| My tasks | Open tasks assigned to you, soonest due first. Tasks with no due date come last. |\n| Overdue | Open tasks whose due date is before today. |\n| Today | Open tasks due at any time today. |\n| Upcoming | Open tasks due tomorrow or later. |\n| All open | Every open task, whoever it is assigned to. |\n| Done | Completed tasks, most recently due first. |\n"Overdue" and "today" are not stored on the task — nothing runs at midnight to stamp them. Each view is a window over the due date computed from your own clock and time zone when you look, and a tab left open across midnight repaints yesterday\'s work as overdue on its own.\nEach row shows a checkbox that completes or reopens the task, the title (with the first line of notes under it), the kind, the priority, the due date colored by where it stands — red when overdue, amber when due today — with a snooze beside it, the assignee, and the record it is for, as a link into that record\'s page. The list shows a view a page at a time, with the usual footer to pick how many rows a page holds and to turn to the next page.\nBeside Show, the Filters panel narrows a view by Kind (call, email, meeting, to-do), Priority (low, normal, high) and Assignee, and Search finds a task by a word of its title. The view, the filters and the search are all answered by the list\'s query, so they reach every task in the view, page by page, and add up with each other. The search matches whole words from their start — "cof" finds Coffee, a fragment from the middle of a word does not — one word at a time: type several and it searches the first, and says so. Under a site, a member whose access is li'
|
|
4416
4416
|
},
|
|
4417
4417
|
{
|
|
4418
4418
|
path: '/content-and-data/crm/tasks',
|
|
@@ -4496,28 +4496,28 @@ export const ASSIST_DOCS_INDEX = [
|
|
|
4496
4496
|
title: 'Saved views',
|
|
4497
4497
|
heading: 'Filters',
|
|
4498
4498
|
anchor: '#filters',
|
|
4499
|
-
text: 'Every CRM list filters through its table\'s own toolbar: Filters opens the filter panel, Search finds a record by its name and the words beside it, and each column\'s menu has Filter too. Pick a column, a condition and a value; a field with fixed choices — a status, a stage, an owner, a lead source, a campaign, a kind, a priority — is picked from a list, a date from a calendar, anything else typed.\nThe panel edits one filter at a time. Filters on different columns add up: filter one column, then another, and the list keeps both. Every filter in force shows as a chip beside the views control, where its ✕ removes it, and all of them are part of the saved view. A view saved before the panel existed keeps its filters as they were. The toolbar works the way it does on every console list — see Filter and search a list — and the sections below say what each CRM list\'s filters reach.
|
|
4499
|
+
text: 'Every CRM list filters through its table\'s own toolbar: Filters opens the filter panel, Search finds a record by its name and the words beside it, and each column\'s menu has Filter too. Pick a column, a condition and a value; a field with fixed choices — a status, a stage, an owner, a lead source, a campaign, a kind, a priority — is picked from a list, a date from a calendar, anything else typed.\nThe panel edits one filter at a time. Filters on different columns add up: filter one column, then another, and the list keeps both. Every filter in force shows as a chip beside the views control, where its ✕ removes it, and all of them are part of the saved view. A view saved before the panel existed keeps its filters as they were. The toolbar works the way it does on every console list — see Filter and search a list — and the sections below say what each CRM list\'s filters offer.\nOn every CRM list the filters and the search are answered by the list\'s own query, so they reach every record, a page at a time, and never only the rows on screen. The search matches whole words from their start — "cof" finds Coffee, a fragment from the middle of a word does not — one word at a time: type several and it searches the first, and says so. It reads the first 12 letters of a long word.\nA few combinations cannot be answered by one query — two "contains" or "any of" filters at once, say, or one of them beside the search. Then the list does not apply that filter, and a notice above the table names it and says why.'
|
|
4500
4500
|
},
|
|
4501
4501
|
{
|
|
4502
4502
|
path: '/content-and-data/crm/views',
|
|
4503
4503
|
title: 'Saved views',
|
|
4504
4504
|
heading: 'Filters on the Contacts list',
|
|
4505
4505
|
anchor: '#filters-on-the-contacts-list',
|
|
4506
|
-
text: 'On the Contacts list the fields are the list\'s columns and a few that are not — owner, stage, source, company, tags, form, orders, lifetime value,
|
|
4506
|
+
text: 'On the Contacts list the fields are the list\'s columns and a few that are not — owner, stage, source, company, tags, form, site, orders, lifetime value, the updated date, email verdict, next activity, and one field per custom field your organization has defined.\nEach field offers what the list\'s query can answer:\n| Field | Filter by |\n| Contact | The name contains a word, is exactly a name, starts with or ends with some letters. |\n| Email | is an address, or starts with some letters. |\n| Tags | contains a tag, any of several, or is not empty. |\n| Form ID | contains a form\'s ID — the form\'s own page links here with it. |\n| Site ID | is a site\'s ID, or any of several. |\n| Orders, Lifetime value | is not empty — the person has bought, or is worth something. Each site keeps its own figures on its own record of the person, where no range reaches, so there are no numeric ranges. |\n| Created | on, after or before a date. |\n| Updated | on, after or before a date. |\n| Next activity | is empty — no next activity scheduled. |\n| Owner, Stage | is one, any of several, or is not empty. |\n| Source | is one, or any of several. |\n| Company | is one, or is not empty. |\n| Email verdict | is one verdict, any of several, is empty (nothing known) or is not empty. |\n| A custom field | equals a choice, or any of several, for a choice field; equals for text or a number; is or is not ticked for a checkbox; is not empty for any. |\nSearch finds a person by a word of their name, their email addresses or their company, or by the digits of their phone number — the whole number, or its last seven or last four digits, typed without spaces or brackets. Tags have their own filter.\nCreated, and a name or address that starts with or ends with some letters, each order the list by their own field, so each st'
|
|
4507
4507
|
},
|
|
4508
4508
|
{
|
|
4509
4509
|
path: '/content-and-data/crm/views',
|
|
4510
4510
|
title: 'Saved views',
|
|
4511
4511
|
heading: 'Filters on the other lists',
|
|
4512
4512
|
anchor: '#filters-on-the-other-lists',
|
|
4513
|
-
text: '- Leads — Status, Email, Owner, Lead source and Campaign;
|
|
4513
|
+
text: '- Leads — Status, Email, Owner, Lead source and Campaign; the search finds a lead by a word of its name, email address, company, title or tags. Campaign and the search cannot be combined. See the leads list.\n- Companies — Company (is exactly, or starts with, which orders the list by name), Owner (one teammate, or any of several) and Next activity; the search finds a company by a word of its name or domain. See the companies list.\n- Deals (the table) — Status (open, won or lost; one, or any of them) and Next activity; the search finds a deal by any word of its title. See the board and the table.\n- Tasks — Show is the task view (My tasks, Overdue, Today, Upcoming, All open, Done); Kind, Priority and Assignee filter it, and the search finds a task by a word of its title.\nOn the contacts, companies and deals lists, Next activity › is empty keeps only the records with no open task scheduled against them (see next activity). Like every other filter, it is answered by the query and adds up with the rest.'
|
|
4514
4514
|
},
|
|
4515
4515
|
{
|
|
4516
4516
|
path: '/content-and-data/crm/views',
|
|
4517
4517
|
title: 'Saved views',
|
|
4518
4518
|
heading: 'Columns and sort',
|
|
4519
4519
|
anchor: '#columns-and-sort',
|
|
4520
|
-
text: 'Manage columns in any list\'s column menu chooses what shows, and Move left / Move right in the same menu put a column where you want it. A view keeps both — the choice and the order — and a view saved before a column existed shows the new column too, after the ones it names.
|
|
4520
|
+
text: 'Manage columns in any list\'s column menu chooses what shows, and Move left / Move right in the same menu put a column where you want it. A view keeps both — the choice and the order — and a view saved before a column existed shows the new column too, after the ones it names. On the Leads and Contacts lists the column headers do not sort: those lists keep their newest-first order.'
|
|
4521
4521
|
},
|
|
4522
4522
|
{
|
|
4523
4523
|
path: '/content-and-data/crm/views',
|
|
@@ -4636,7 +4636,7 @@ export const ASSIST_DOCS_INDEX = [
|
|
|
4636
4636
|
title: 'Datasets & Dynamic Content',
|
|
4637
4637
|
heading: 'Filter and search the records',
|
|
4638
4638
|
anchor: '#filter-records',
|
|
4639
|
-
text: 'The records table filters through its own toolbar: Filters opens the filter panel, where
|
|
4639
|
+
text: 'The records table filters through its own toolbar: Filters opens the filter panel, where each filterable field of the dataset\'s model is a column, and Search finds records by the words in their text. Each filter shows as a chip above the table, and removing the chip removes the filter. The panel and chips work as on every console list — see Filter and search a list.\nEvery filter and the search reach the whole dataset. They are answered by the database across every record, and the table pages through the matches exactly as it pages through the unfiltered dataset — nothing is matched only against the records already on screen. What each field type offers:\n| Field | Filters |\n| -- | -- |\n| Text with a fixed list of options | is, is any of — picked from the options |\n| True/false | is — picked |\n| Number | = |\n| Plain text | equals and is any of, ignoring case; contains a word |\n| List | contains one of its entries, spelled exactly as stored |\nDates, references, maps, bytes, coordinates and null fields are not filterable, and no field offers ranges (greater than, before, after), is not, or is empty — the panel does not show what the database cannot answer this way.\nContains and search match the start of a word. kett finds Kettle; ttle finds nothing. The search looks at every text field, option field and list of the record. Each asks for one word: type several and the table uses the first and says so above the records. A word is matched on its first 12 characters, a text value\'s first 40 words are searchable, and equals compares the first 64 characters of a text value.\nCombine as many is, equals, is any of and = filters as you like, but only one contains or search at a time. A second one — a contains while a search word is typed, or a contains on a second field — is not appl'
|
|
4640
4640
|
},
|
|
4641
4641
|
{
|
|
4642
4642
|
path: '/content-and-data/datasets/overview',
|
|
@@ -4811,7 +4811,7 @@ export const ASSIST_DOCS_INDEX = [
|
|
|
4811
4811
|
title: 'Forms & Lead Capture',
|
|
4812
4812
|
heading: 'Find a form in the list',
|
|
4813
4813
|
anchor: '#find-a-form',
|
|
4814
|
-
text: 'The Forms table filters through its toolbar by every column it shows:\n- Display name
|
|
4814
|
+
text: 'The Forms table filters through its toolbar by every column it shows:\n- Display name, by a word in it: contains "audit" finds "Multi-brand site audit".\n- Slug, exactly.\n- Submissions, as a number: equal to, over or under a number, or empty. A form that hasn\'t had a submission shows a dash, and is empty finds it.\n- Leads, equal to a number, or empty. A form counts a lead only once it files one, so a form that doesn\'t route to leads, or hasn\'t filed its first, shows a dash. Is empty finds those forms. No form stores a zero, so Leads = 0 finds none.\n- Last submission and Updated, as days: on, before or after a date. Last submission is set finds every form that has had a submission.\nTwo more columns stay hidden until you show them from Columns, and the Filters panel offers them either way: Status (active or retired) and Lead routing (on or off, the switch on the form\'s CRM routing card). Campaign finds the forms filed under any of the campaigns you pick. The panel lists the site\'s campaigns once you open it.\nSearch finds a form by a word of its name or slug, or by its ID. It looks for one word, the first you type, and says so when you type more.\nEvery filter and the search look through the whole catalog, not just the page on screen, and the pager turns through the matches. Filters on different columns add up, with one limit: one range at a time, meaning a number over or under, or a date before or after. A second range isn\'t applied, and the list says which one it left out. Retired forms stay out of the list until you ask for them: choose Status in the Filters panel and pick Retired to find one and restore it. See Filter and search a list.'
|
|
4815
4815
|
},
|
|
4816
4816
|
{
|
|
4817
4817
|
path: '/content-and-data/forms/overview',
|
|
@@ -4846,7 +4846,7 @@ export const ASSIST_DOCS_INDEX = [
|
|
|
4846
4846
|
title: 'Media Library & CDN',
|
|
4847
4847
|
heading: 'Organize',
|
|
4848
4848
|
anchor: '#organize',
|
|
4849
|
-
text: '- Arrange media in a folder hierarchy. Folders appear as cards in the grid (folders first, before files) as well as in a side rail — open one to browse into it, and use the breadcrumb to step back out.\n- Drag and drop to reorganize: drag a file (or a whole selection) onto a folder to move it in, drag a folder onto another to nest it, or drop onto a breadcrumb to move items up and out. Nesting depth and name-collision rules are enforced automatically.\n- Move to folder… shows the full path, not just the folder name — Blog / Covers and Press / Covers are two different destinations and the menu says so. The same paths appear in the detail drawer\'s Folder field.\n- Big moves are safe to interrupt. Moving a large selection relocates the stored objects one at a time, so the library keeps working through it and tells you how far it has got. If it cannot finish everything, it reports the real split — Moved 7 of 19 — 12 could not be moved — and leaves the files that did not move selected, so clicking Move again picks up exactly where it stopped. Nothing is lost either way: a file is only ever in one folder, its URL keeps working, and a repeat move of a file that already arrived does nothing.\n- Filter
|
|
4849
|
+
text: '- Arrange media in a folder hierarchy. Folders appear as cards in the grid (folders first, before files) as well as in a side rail — open one to browse into it, and use the breadcrumb to step back out.\n- Drag and drop to reorganize: drag a file (or a whole selection) onto a folder to move it in, drag a folder onto another to nest it, or drop onto a breadcrumb to move items up and out. Nesting depth and name-collision rules are enforced automatically.\n- Move to folder… shows the full path, not just the folder name — Blog / Covers and Press / Covers are two different destinations and the menu says so. The same paths appear in the detail drawer\'s Folder field.\n- Big moves are safe to interrupt. Moving a large selection relocates the stored objects one at a time, so the library keeps working through it and tells you how far it has got. If it cannot finish everything, it reports the real split — Moved 7 of 19 — 12 could not be moved — and leaves the files that did not move selected, so clicking Move again picks up exactly where it stopped. Nothing is lost either way: a file is only ever in one folder, its URL keeps working, and a repeat move of a file that already arrived does nothing.\n- Filter, search and sort through the same toolbar as every other list in the console, in either of two views — see Filter and search and Grid and List views below.\n- Search finds a file by any word of its name — banner finds hero-banner2x.png, because a file name\'s words are split at dashes, dots and underscores as well as spaces. Results come from the whole library, however large, and ✕ (or Esc) clears the box.\n- Capture and edit metadata in a detail drawer — file name, alt text, description, tags, and your own custom key/value metadata (mirrored onto the delivered object\'s storage metadata)'
|
|
4850
4850
|
},
|
|
4851
4851
|
{
|
|
4852
4852
|
path: '/content-and-data/media/overview',
|
|
@@ -5441,7 +5441,7 @@ export const ASSIST_DOCS_INDEX = [
|
|
|
5441
5441
|
title: 'Publisher handbook',
|
|
5442
5442
|
heading: 'How installs work (the buyer side)',
|
|
5443
5443
|
anchor: '#how-installs-work-the-buyer-side',
|
|
5444
|
-
text: 'Browse is a catalog — cards link to the detail page, which is the only place an install happens. The buyer picks targets (all sites, selected sites, or org-wide for plugins), confirms a dialog that names exactly where the install lands, and the pin is written: your exact {version, sha256} pinned to the site or org, the plugin enabled for the workspace, loaded on their next visit. Buyers can uninstall from the listing\'s own detail page (Uninstall, or Uninstall org-wide for an org-scope pin) as well as from Marketplace → Installed — removing the pin and disabling it. Data your plugin created stays, so reinstalls resume cleanly. Paid listings require purchase before install; you see sales in your publisher ledger.\nThe detail page shows two install figures side by side: installs is the cumulative all-time total and only ever grows, while active counts the organizations and sites that currently hold a pin — it goes down when someone uninstalls. A big gap between the two is churn worth investigating.\nA purchase licenses the buyer\'s organization, and Marketplace → Licenses lists what the workspace holds and what the buyer bought across every workspace, one table each. Each table filters through its own toolbar: Search finds a
|
|
5444
|
+
text: 'Browse is a catalog — cards link to the detail page, which is the only place an install happens. The buyer picks targets (all sites, selected sites, or org-wide for plugins), confirms a dialog that names exactly where the install lands, and the pin is written: your exact {version, sha256} pinned to the site or org, the plugin enabled for the workspace, loaded on their next visit. Buyers can uninstall from the listing\'s own detail page (Uninstall, or Uninstall org-wide for an org-scope pin) as well as from Marketplace → Installed — removing the pin and disabling it. Data your plugin created stays, so reinstalls resume cleanly. Paid listings require purchase before install; you see sales in your publisher ledger.\nThe detail page shows two install figures side by side: installs is the cumulative all-time total and only ever grows, while active counts the organizations and sites that currently hold a pin — it goes down when someone uninstalls. A big gap between the two is churn worth investigating.\nA purchase licenses the buyer\'s organization, and Marketplace → Licenses lists what the workspace holds and what the buyer bought across every workspace, one table each. Each table filters through its own toolbar: Search finds a license by a word of its listing\'s name, and Filters offers who bought it (You) on the workspace\'s table, and which workspace a purchase landed in — or Every workspace you belong to, for a purchase that names none — on the buyer\'s own. Both answer over every license, not the page on screen, and each filter in force shows as a chip above it; a word that more than 30 listing names share is refused with a note asking for more of it. See Filter and search a list.\nEvery listing shows its artifact type as a chip — Plugin, Component, Site template, Layout, Datas'
|
|
5445
5445
|
},
|
|
5446
5446
|
{
|
|
5447
5447
|
path: '/developers/plugins/publishing/publisher-handbook',
|
|
@@ -6407,7 +6407,7 @@ export const ASSIST_DOCS_INDEX = [
|
|
|
6407
6407
|
title: 'The console tour',
|
|
6408
6408
|
heading: 'Filter and search a list',
|
|
6409
6409
|
anchor: '#filter-and-search',
|
|
6410
|
-
text: 'Most lists in the console are tables with the same toolbar above them: Columns shows and hides columns, Filters narrows the rows, Export downloads the table, and Search finds rows by their words. They work the same way on every list.\n- Filters opens a panel that edits one filter at a time: pick a column, an operator and a value. Pick another column and set it too, and both apply — filters on different columns add up, and each column holds one filter. Clearing the value, or deleting the panel\'s row, drops that column\'s filter.\n- Chips above the table show every filter in force, each read as a sentence such as "Status is Live". The panel shows one filter at a time; the chips show them all. Remove a chip to drop its filter.\n- Search
|
|
6410
|
+
text: 'Most lists in the console are tables with the same toolbar above them: Columns shows and hides columns, Filters narrows the rows, Export downloads the table, and Search finds rows by their words. They work the same way on every list. A list drawn as cards rather than a table — such as All Sites — keeps its cards and has the same Search box, Filters panel and chips above them.\n- Filters opens a panel that edits one filter at a time: pick a column, an operator and a value. Pick another column and set it too, and both apply — filters on different columns add up, and each column holds one filter. Clearing the value, or deleting the panel\'s row, drops that column\'s filter.\n- Chips above the table show every filter in force, each read as a sentence such as "Status is Live". The panel shows one filter at a time; the chips show them all. Remove a chip to drop its filter.\n- Search finds records by the start of a word in the things that list searches — each list\'s page names them. It matches one word at a time: type "acm" and "Acme Coffee" is found; type two words and the list searches the first and says so. A word is read up to its first 12 letters. Search adds to the filters, and an empty box shows the list unfiltered again.\n- The pager at the foot of the table then turns through the matches, not the whole list.\nEvery filter and every search word is answered by the list\'s query, across the whole list — never only the rows already on screen. A record that matches is found whether it would have been on the first page or the fortieth. Two limits follow from asking one query:\n- A filter a query can\'t answer isn\'t offered. The panel lists only the columns and operators the list can look up.\n- A combination one query can\'t hold is refused by name. A note above the list names the filt'
|
|
6411
6411
|
},
|
|
6412
6412
|
{
|
|
6413
6413
|
path: '/getting-started/console-tour',
|
|
@@ -6428,7 +6428,7 @@ export const ASSIST_DOCS_INDEX = [
|
|
|
6428
6428
|
title: 'The console tour',
|
|
6429
6429
|
heading: 'The Sites list',
|
|
6430
6430
|
anchor: '#the-sites-list',
|
|
6431
|
-
text: 'All Sites is the front door of a workspace:
|
|
6431
|
+
text: 'All Sites is the front door of a workspace: one card per site, for the workspace currently selected in the switcher, in name order. A site you can reach in another organization isn\'t missing — it\'s behind the workspace switcher.\nEach card carries:\n- The site\'s display name as the title, with its hostname underneath as the subheader — the custom domain when the site has one, otherwise its name.aglyn.app address. Both are also listed inside the card, as Aglyn Domain and Custom Domain.\n- A status pill (below).\n- Visit, which opens the live site in a new tab, and Manage, which opens that site\'s dashboard in the console.\nAbove the cards are a Search box and a Filters button — the same controls a table\'s toolbar has, over the cards. Search finds a site by the start of any word of its name, its slug (the name in name.aglyn.app) or its custom domain: harbor, bakery and shop.harbor all find Harbor Bakery at shop.harbor-bakery.com. Filters narrows the cards by Custom domain (Connected or None) and by the date a site was Created (on, before or after a day). Each filter in force shows as a chip above the cards; remove a chip to drop it. A filter on the created date lists the cards newest first.\nThe search and the filters are answered by the query that reads the cards, across every site you have in the workspace, not only the cards on screen. The cards come twelve at a time; Load more adds the next twelve that match. The site count beside the heading always counts every site. Status, plan, owner and the last-updated date are not filters: a site\'s status can change with no save at all (a timed suspension ends on its own), and a site doesn\'t store its plan, owner or template. See Filter and search a list.\nThe status pill {#the-status-pill}\n| Pill | Hover tells you |\n| Live (green) | H'
|
|
6432
6432
|
},
|
|
6433
6433
|
{
|
|
6434
6434
|
path: '/getting-started/console-tour',
|
|
@@ -6673,7 +6673,7 @@ export const ASSIST_DOCS_INDEX = [
|
|
|
6673
6673
|
title: 'Commerce end to end',
|
|
6674
6674
|
heading: '3. Design the storefront',
|
|
6675
6675
|
anchor: '#3-design-the-storefront',
|
|
6676
|
-
text: 'Open a screen in the Besigner and add blocks from the Commerce group of the element picker:\n- Product grid — a responsive catalog grid. Its Show property scopes it to all products, a collection, a category, or a tag; set Columns, Sort, a cap, and optional visitor-facing filter chips. Cards link to /products/{slug}.\n- Product detail — gallery, variant picker, price (with sale badge, trial caption, and /mo·/yr when subscribing), Add to cart, and the buy button (Buy now / Subscribe, or the one-time-vs-subscribe toggle for "Both" products). Leave its Product slug blank on a template screen so it follows the URL. The Product page preset drops the whole commerce-standard page in one go: a Shop / {{product.name}} breadcrumb, the detail block, a You may also like strip, and product reviews.\n- Cart — two presets: a Cart button (app-bar icon with an item-count badge and a slide-out drawer — the badge updates live as blocks add to the cart) and a Cart page (inline, with coupon and gift-card fields). Both end in a Checkout button.\nCatalog search, filters, and sort\nThe Product grid carries a toggle per storefront catalog control, so a bare strip on the home page and a full shop page are the same block:\n- Search box — a debounced search field above the grid; matches product
|
|
6676
|
+
text: 'Open a screen in the Besigner and add blocks from the Commerce group of the element picker:\n- Product grid — a responsive catalog grid. Its Show property scopes it to all products, a collection, a category, or a tag; set Columns, Sort, a cap, and optional visitor-facing filter chips. Cards link to /products/{slug}.\n- Product detail — gallery, variant picker, price (with sale badge, trial caption, and /mo·/yr when subscribing), Add to cart, and the buy button (Buy now / Subscribe, or the one-time-vs-subscribe toggle for "Both" products). Leave its Product slug blank on a template screen so it follows the URL. The Product page preset drops the whole commerce-standard page in one go: a Shop / {{product.name}} breadcrumb, the detail block, a You may also like strip, and product reviews.\n- Cart — two presets: a Cart button (app-bar icon with an item-count badge and a slide-out drawer — the badge updates live as blocks add to the cart) and a Cart page (inline, with coupon and gift-card fields). Both end in a Checkout button.\nCatalog search, filters, and sort\nThe Product grid carries a toggle per storefront catalog control, so a bare strip on the home page and a full shop page are the same block:\n- Search box — a debounced search field above the grid; matches the start of a word in a product\'s name ("cof" finds "Acme Coffee"), using the first word typed.\n- Category chips — one chip per product category (plus All), built from the categories you manage in the Products hub. Visitors tap to filter.\n- Sort select — newest, name, price low→high, price high→low, right-aligned above the grid.\n- Type filter — physical / digital / services chips, useful for mixed catalogs.\n- Price filter — a two-thumb price range slider, automatically bounded by the lowest and highest prices among the p'
|
|
6677
6677
|
},
|
|
6678
6678
|
{
|
|
6679
6679
|
path: '/guides/commerce-end-to-end',
|
|
@@ -6799,7 +6799,7 @@ export const ASSIST_DOCS_INDEX = [
|
|
|
6799
6799
|
title: 'Install your first marketplace item',
|
|
6800
6800
|
heading: 'Step 2 — Find something',
|
|
6801
6801
|
anchor: '#step-2-browse',
|
|
6802
|
-
text: 'Browse All is a grid of listing cards you can search, filter and sort. Cards are a catalog only — clicking one takes you to its detail page, which is the only place an install can happen. You cannot install by accident from the grid.\nTwo things on a card are worth reading before you click into one:\n- The price chip. Every card has one. A paid listing shows $29; a free one shows the word Free, rather than leaving the corner empty for you to interpret.\n- The stars, and the number beside them. 4.8 (12) is twelve people\'s opinion; 5.0 (1) is one person\'s. A listing nobody has rated says Not yet rated instead of showing no stars.\nOn the detail page, read three things before anything else:\n1. The What\'s included box. Aglyn writes it from the listing itself, not the publisher, so it is the one description that cannot oversell. Its first row names what the install produces — a sandboxed plugin, an editable component, screens you rework in Besigner, a theme, or a new empty dataset with its fields already defined for a dataset schema, which is the reminder that records never travel: you get the shape, not somebody\'s data. The rows after it cover where it lands (step 4), review, license and updates. See What\'s
|
|
6802
|
+
text: 'Browse All is a grid of listing cards you can search, filter and sort. Cards are a catalog only — clicking one takes you to its detail page, which is the only place an install can happen. You cannot install by accident from the grid.\nThe controls answer over the whole marketplace, not the cards already on screen:\n- Search components finds a listing by a word of its name. It matches one word at a time, from the start of the word (count finds Promo Countdown).\n- The category chips show one category\'s listings; click the chip again to clear it.\n- The sort menu orders by Newest, Most installed or Highest rated (listings nobody has rated come last).\nThe grid pages at the bottom. Your own organization\'s listings still waiting on review appear here too, so you can watch a submission move through review.\nTwo things on a card are worth reading before you click into one:\n- The price chip. Every card has one. A paid listing shows $29; a free one shows the word Free, rather than leaving the corner empty for you to interpret.\n- The stars, and the number beside them. 4.8 (12) is twelve people\'s opinion; 5.0 (1) is one person\'s. A listing nobody has rated says Not yet rated instead of showing no stars.\nOn the detail page, read three things before anything else:\n1. The What\'s included box. Aglyn writes it from the listing itself, not the publisher, so it is the one description that cannot oversell. Its first row names what the install produces — a sandboxed plugin, an editable component, screens you rework in Besigner, a theme, or a new empty dataset with its fields already defined for a dataset schema, which is the reminder that records never travel: you get the shape, not somebody\'s data. The rows after it cover where it lands (step 4), review, license and updates. See What\'s include'
|
|
6803
6803
|
},
|
|
6804
6804
|
{
|
|
6805
6805
|
path: '/guides/install-your-first-plugin',
|
|
@@ -6960,7 +6960,7 @@ export const ASSIST_DOCS_INDEX = [
|
|
|
6960
6960
|
title: 'Member accounts',
|
|
6961
6961
|
heading: '5. Manage members from the console',
|
|
6962
6962
|
anchor: '#5-manage-members-from-the-console',
|
|
6963
|
-
text: 'The site\'s Users page has two cards: Site users (your members — this guide) and Users (console collaborators). The Site users card is paged, newest first, with Email, Name, Joined, and Status columns
|
|
6963
|
+
text: 'The site\'s Users page has two cards: Site users (your members — this guide) and Users (console collaborators). The Site users card is paged, newest first, with Email, Name, Joined, and Status columns. Its search box finds a member by the start of any word of their name or their email address — rae, donovan or example.com all find Rae Donovan at rae@example.com, and a member who never gave a name is found by their address. Filters in the table\'s toolbar narrows it by Email (the whole address), Name (a word of it, or the whole name), Joined (on a day, or before or after a date) and Status (Active or Suspended). The filters and the search add up, and every one is answered by the query that reads the list, across every member rather than the page on screen. Name contains and the search each look for one word, and one query can look for only one: while a search is typed, a Name-contains filter is not applied, and a notice above the table says so. Each filter in force shows as a chip above the table; see Filter and search a list. For members who may open the CRM, each row\'s ⋮ menu holds Open in CRM — the member\'s contact, found by the address they signed up with.\nClick a member to open the member drawer:\n- Profile — email, display name, and join date, with a Suspended chip when applicable.\n- Lifetime purchases — charged order totals minus refunds (pending and canceled orders excluded).\n- Orders — the member\'s payment history, newest first: order number, status, total, date, any refunded amount, and the Stripe payment reference. Needs the editor or admin role on the site.\n- Subscriptions — each with its renewal date and status chip.\n- Addresses — the member\'s saved addresses.\nSuspend & reactivate\nThe drawer\'s action button flips between Suspend member and Reactivate member, ea'
|
|
6964
6964
|
},
|
|
6965
6965
|
{
|
|
6966
6966
|
path: '/guides/member-accounts',
|
|
@@ -7373,7 +7373,7 @@ export const ASSIST_DOCS_INDEX = [
|
|
|
7373
7373
|
title: 'Designed emails',
|
|
7374
7374
|
heading: 'Find a template',
|
|
7375
7375
|
anchor: '#find-a-template',
|
|
7376
|
-
text: 'The templates table filters through its toolbar by name
|
|
7376
|
+
text: 'The templates table filters through its toolbar by name (it contains a word, it is, or it starts with), and Search matches the start of any word of a template\'s name, up to its first twelve characters. The filters and the search are asked of the site\'s templates themselves, so they reach every template the site holds, a page at a time in name order, not only the page on screen. A name that contains a word and Search both match words of the name, so only one of them applies at a time; a note above the table says which was set aside. The Origin column shows whether a template is yours or installed from a listing, but it is not a filter.\nOn your organization\'s Emails page the same filters and search run on each site\'s templates, and Site chooses which sites are read: any of your sites, wherever it sits in the pages of sites. Without it, the table reads the page of sites the Sites picker shows. It lists up to 50 matching templates from each site; where a site has more, the note under the table says so and links to that site\'s own list. See Filter and search a list.'
|
|
7377
7377
|
},
|
|
7378
7378
|
{
|
|
7379
7379
|
path: '/marketing-and-automation/email-campaigns/designed-emails',
|
|
@@ -7492,14 +7492,14 @@ export const ASSIST_DOCS_INDEX = [
|
|
|
7492
7492
|
title: 'Email Campaigns',
|
|
7493
7493
|
heading: 'Email lists',
|
|
7494
7494
|
anchor: '#email-lists',
|
|
7495
|
-
text: 'Lists are audiences shared across your organization\'s sites. Create them on the Marketing page and target any of them from the campaign composer. A list is one of two kinds, chosen when you create it.\nThe lists table filters through its toolbar: Filters narrows it by name or by Membership (manual or rule), and Search matches any word of a list\'s name. The
|
|
7495
|
+
text: 'Lists are audiences shared across your organization\'s sites. Create them on the Marketing page and target any of them from the campaign composer. A list is one of two kinds, chosen when you create it.\nThe lists table filters through its toolbar: Filters narrows it by name (it contains a word, or it is) or by Membership (manual or rule), and Search matches the start of any word of a list\'s name. The filters and the search are asked of your organization\'s lists themselves, so they reach every list, a page at a time in name order. A name that contains a word and Search both match words of the name, so only one of them applies at a time, and a note above the table says which was set aside. See Filter and search a list.\nManual lists\nA manual list holds the people you put in it. Grow it with the "Enroll in a list" automation step (e.g. on form completion), popup email capture, the Add to a list card in the Inbox, or by hand from the list itself. Members stay until they are removed.\nSee and manage who is on a list {#list-members}\nPress Members on any list row to open it. You get the membership a page at a time — address, name, when they joined, how they got there, and what their consent record says — plus the controls to change it. Press Close to collapse it again; nothing is read until you open a list.\nHow tells a rule match apart from somebody who was added. A person a rule enrolled leaves when they stop matching; a person who was added stays.\nThe membership table filters through its toolbar by Address (the whole address) and How (rule or added), and Search matches the start of any word of a member\'s name or of any part of their address: the local part, a piece of it such as doe in jane.doe, or the domain, with or without the @, up to the first twelve characters typed. The f'
|
|
7496
7496
|
},
|
|
7497
7497
|
{
|
|
7498
7498
|
path: '/marketing-and-automation/email-campaigns/overview',
|
|
7499
7499
|
title: 'Email Campaigns',
|
|
7500
7500
|
heading: 'Experiments',
|
|
7501
7501
|
anchor: '#experiments',
|
|
7502
|
-
text: 'Business plans can A/B test screens, sections, and emails from the Experiments card on the Marketing page: weighted variants, deterministic visitor assignment, a conversion goal, and per-variant exposure/conversion rates with a pick-the-winner flow.\nTwo ways to finish a test without watching it:\n- End date — past it, visitors get the default and stats stop accruing until you pick a winner.\n- Auto-declare winner — opt in with a minimum exposure count per variant and a confidence level (90/95/99%); once a challenger clears the bar (or every challenger confidently loses to the control), the experiment completes itself and serves the winner. Auto-completed tests carry a chip in the results dialog.\n- Screens & sections — variants pin a screen version; visitors are split deterministically and the winning version serves to everyone once you pick it. Start a section test straight from the Besigner\'s Interactions panel.\n- Emails — variants override the campaign\'s subject and/or body. Attach a running email experiment in the campaign composer; each recipient deterministically receives one variant (re-sends reach the same variant), sends count as exposures, and once a winner is picked every later send uses the winning copy.\nThe Experiments table filters through its toolbar by name,
|
|
7502
|
+
text: 'Business plans can A/B test screens, sections, and emails from the Experiments card on the Marketing page: weighted variants, deterministic visitor assignment, a conversion goal, and per-variant exposure/conversion rates with a pick-the-winner flow.\nTwo ways to finish a test without watching it:\n- End date — past it, visitors get the default and stats stop accruing until you pick a winner.\n- Auto-declare winner — opt in with a minimum exposure count per variant and a confidence level (90/95/99%); once a challenger clears the bar (or every challenger confidently loses to the control), the experiment completes itself and serves the winner. Auto-completed tests carry a chip in the results dialog.\n- Screens & sections — variants pin a screen version; visitors are split deterministically and the winning version serves to everyone once you pick it. Start a section test straight from the Besigner\'s Interactions panel.\n- Emails — variants override the campaign\'s subject and/or body. Attach a running email experiment in the campaign composer; each recipient deterministically receives one variant (re-sends reach the same variant), sends count as exposures, and once a winner is picked every later send uses the winning copy.\nThe Experiments table filters through its toolbar by Experiment (a name that contains a word, or is exactly a name in either case), Tests (screen, section or email) and Status (draft, running, paused or done; one or several of each). Search finds an experiment by the start of any word in its name: cop finds Hero copy. Every filter and the search are answered by the query, across all of the site\'s experiments, a page at a time and in name order, not only over the page on screen. A combination the query cannot answer together is not applied, and a notice above th'
|
|
7503
7503
|
},
|
|
7504
7504
|
{
|
|
7505
7505
|
path: '/marketing-and-automation/email-campaigns/overview',
|
|
@@ -7618,7 +7618,7 @@ export const ASSIST_DOCS_INDEX = [
|
|
|
7618
7618
|
title: 'Actions builder',
|
|
7619
7619
|
heading: 'Run history',
|
|
7620
7620
|
anchor: '#run-history',
|
|
7621
|
-
text: 'Every automation row has a Runs button. It opens Runs — your automation with a Recent runs table of that one automation\'s executions, in four columns:\n| Column | What\'s in it |\n| Time | The clock time of the run; hover it for the full date and time. |\n| Trigger | The event, in words — formSubmission shows as Form submitted. A custom event keeps the name you gave it. |\n| Result | Succeeded, Failed, or Skipped. |\n| What happened | For a run, what each step did, joined with ·. For a failure, the errors. For a skip, which condition stopped it. |\nThe table\'s toolbar narrows it. Filters offers Trigger and Result as picked values
|
|
7621
|
+
text: 'Every automation row has a Runs button. It opens Runs — your automation with a Recent runs table of that one automation\'s executions, in four columns:\n| Column | What\'s in it |\n| Time | The clock time of the run; hover it for the full date and time. |\n| Trigger | The event, in words — formSubmission shows as Form submitted. A custom event keeps the name you gave it. |\n| Result | Succeeded, Failed, or Skipped. |\n| What happened | For a run, what each step did, joined with ·. For a failure, the errors. For a skip, which condition stopped it. |\nThe table\'s toolbar narrows it. Filters offers Trigger and Result as picked values (is or is any of) and Time by day (is, after, on or after, before, on or before); Search finds a word at the start of any word in What happened. Every filter and the search are asked of the whole history, however far back it goes, and the table pages through the matches newest first, so a run from months ago is found as readily as one from this morning. Each filter in force shows as a chip above the table. Search and filters combine; a combination the history can\'t answer at once is named above the table and not applied, rather than applied to some runs and not others. See Filter and search a list.\nSkipped is a result, not an absence — see Only run when a field matches. A run that fired but whose steps errored is Failed, and the errors are in the last column rather than in a log you have to go and find.\nAt the top of the Actions tab — and again on the Workflows tab, counting workflow runs — a line reads 1,284 action runs this month · 50,000 included: how many metered runs this site has used this calendar month, against the number your plan includes. This line is the only place action runs are counted for you — the billing usage meters meter workflow r'
|
|
7622
7622
|
},
|
|
7623
7623
|
{
|
|
7624
7624
|
path: '/marketing-and-automation/workflows-and-actions/actions-builder',
|
|
@@ -8388,7 +8388,7 @@ export const ASSIST_DOCS_INDEX = [
|
|
|
8388
8388
|
title: 'Invite teammates',
|
|
8389
8389
|
heading: 'Activity log',
|
|
8390
8390
|
anchor: '#activity-log',
|
|
8391
|
-
text: 'The organization\'s Team page shows a Recent Activity log: what happened at organization level — renames, workspace URL changes, ownership transfers, members added/removed or re-roled, and invites sent, revoked, or accepted — together with the changes made on each of the organization\'s sites, newest first, each with who did it, where and when.\nVisible to members whose role carries the Activity & audit log permission. Owners and admins have it by default; viewers do not, and neither does a custom role until you grant it. Revoking it does not merely hide the card — the feed is served by an API that checks the permission, so a member without it cannot read the log by any route.\nEntries name the thing that changed and link straight to it, so "Saved the screen — Home" takes you to that screen. Entries recorded before this shipped show a plain description instead of a link.\nThe log filters through its table\'s toolbar, across the whole log rather than the page on screen:\n- Filters narrows it by Action — picked from the actions the log records as named entries, such as the AI entries below — by Who (one of the organization\'s members), by Where (the organization itself or one of its sites), and by When (before or after a date). They add up, and every one is answered by the log\'s own query.\n- Search
|
|
8391
|
+
text: 'The organization\'s Team page shows a Recent Activity log: what happened at organization level — renames, workspace URL changes, ownership transfers, members added/removed or re-roled, and invites sent, revoked, or accepted — together with the changes made on each of the organization\'s sites, newest first, each with who did it, where and when.\nVisible to members whose role carries the Activity & audit log permission. Owners and admins have it by default; viewers do not, and neither does a custom role until you grant it. Revoking it does not merely hide the card — the feed is served by an API that checks the permission, so a member without it cannot read the log by any route.\nEntries name the thing that changed and link straight to it, so "Saved the screen — Home" takes you to that screen. Entries recorded before this shipped show a plain description instead of a link.\nThe log filters through its table\'s toolbar, across the whole log rather than the page on screen:\n- Filters narrows it by Action — picked from the actions the log records as named entries, such as the AI entries below — by Who (one of the organization\'s members), by Where (the organization itself or one of its sites), and by When (on a day, or before or after a date). They add up, and every one is answered by the log\'s own query.\n- Search finds an entry by the start of a word of the address of the person who made the change (or the API key\'s name, for an entry an integration wrote) and of the name of what changed — ada, example.com or home — across the whole log. It matches one word at a time: type two and the log says it searched the first.\nEvery filter and the search are on the log\'s own query. Anything that query cannot take is not applied, and a notice above the table names it.\nChanging a filter or the '
|
|
8392
8392
|
},
|
|
8393
8393
|
{
|
|
8394
8394
|
path: '/workspace-and-billing/teams-and-roles/invite-teammates',
|
|
@@ -8444,7 +8444,7 @@ export const ASSIST_DOCS_INDEX = [
|
|
|
8444
8444
|
title: 'Members-only areas',
|
|
8445
8445
|
heading: 'Manage your members',
|
|
8446
8446
|
anchor: '#manage-your-members',
|
|
8447
|
-
text: 'The site\'s Users page lists everyone who signed up on your published site — paged, newest first. Filters in the table\'s toolbar narrows the list by email, name
|
|
8447
|
+
text: 'The site\'s Users page lists everyone who signed up on your published site — paged, newest first. The search box finds a member by the start of any word of their name or email address, and Filters in the table\'s toolbar narrows the list by email, name, join date or Status (Active or Suspended). They add up, across every member rather than the page on screen, because the query that reads the list answers them all. See Filter and search a list. Click a member to open their detail drawer:\n- Profile — email, display name, join date, and saved addresses.\n- Order history — the member\'s payment records, newest first: order number, status, total, and date, plus the Stripe payment reference and any refunded amount. Order history is visible to site admins and editors.\n- Subscriptions — active and past storefront subscriptions with their renewal date.\n- Lifetime purchases — everything the member actually paid: charged order totals minus refunds (pending and canceled orders don\'t count).\nSuspend or reactivate a member\nFrom the drawer you can suspend a member (with a confirmation). A suspended member:\n- can no longer sign in on your published site — they see a clear "account suspended" message;\n- is signed out the next time their account page loads;\n- keeps all orders, subscriptions, and history — nothing is deleted.\nReactivate restores access with the member\'s existing password. The member list shows each account\'s Active/Suspended status at a glance.'
|
|
8448
8448
|
},
|
|
8449
8449
|
{
|
|
8450
8450
|
path: '/workspace-and-billing/teams-and-roles/members-only',
|
|
@@ -8465,7 +8465,7 @@ export const ASSIST_DOCS_INDEX = [
|
|
|
8465
8465
|
title: 'Teams, Roles & Membership',
|
|
8466
8466
|
heading: '',
|
|
8467
8467
|
anchor: '',
|
|
8468
|
-
text: 'Teams, Roles & Membership\nAglyn has two kinds of people: your team (who build and manage the site) and site members (visitors who sign up to your site). Both are permission-aware.\nPlan availability Paid. Seats are metered per tier; see Billing & plans.\nThe Team page\'s roster filters through its table\'s toolbar: Filters narrows it by
|
|
8468
|
+
text: 'Teams, Roles & Membership\nAglyn has two kinds of people: your team (who build and manage the site) and site members (visitors who sign up to your site). Both are permission-aware.\nPlan availability Paid. Seats are metered per tier; see Billing & plans.\nThe Team page\'s roster filters through its table\'s toolbar: Filters narrows it by Role (one role, or several at once) or Access (team manager or site collaborator), and Search finds a member by the start of any word of their name, email address or job title — ada, lovelace or example.com all find Ada Lovelace at ada@example.com. The filters and the search add up, and they are answered by the query that reads the roster, so the table lists every member who matches, not a narrowing of the rows already on screen. Each filter in force shows as a chip above the table; see Filter and search a list. The role pickers and Permissions in each row work as before.'
|
|
8469
8469
|
},
|
|
8470
8470
|
{
|
|
8471
8471
|
path: '/workspace-and-billing/teams-and-roles/overview',
|