From d1e95d1d05b8642c738c1715e3ebbe6dba30c9de Mon Sep 17 00:00:00 2001 From: Eugene Titerman Date: Fri, 7 Aug 2026 01:52:00 -0300 Subject: [PATCH 1/2] copy and archive flows --- scripts/generate-md.mjs | 66 +++++++++++++++++- scripts/generate-platform-llms-full.mjs | 8 ++- src/assets/Inline/_gallery.html | 1 + src/assets/Inline/restore.svg | 1 + .../shared/img/back-to-active-flow.webp | Bin 0 -> 16262 bytes src/assets/shared/img/flow-copy-archive.webp | Bin 0 -> 14046 bytes .../flow-builder/builder-save-publish.mdx | 4 +- .../docs/guides/flow-builder/manage-flows.mdx | 59 ++++++++++++++++ .../version-3.0/paywall-builder-templates.mdx | 2 +- .../paywall-layout-and-products.mdx | 20 +++++- src/data/sidebars/tutorial.json | 5 ++ 11 files changed, 158 insertions(+), 8 deletions(-) create mode 100644 src/assets/Inline/restore.svg create mode 100644 src/assets/shared/img/back-to-active-flow.webp create mode 100644 src/assets/shared/img/flow-copy-archive.webp create mode 100644 src/content/docs/guides/flow-builder/manage-flows.mdx diff --git a/scripts/generate-md.mjs b/scripts/generate-md.mjs index b7546c93dc..c42e35db58 100644 --- a/scripts/generate-md.mjs +++ b/scripts/generate-md.mjs @@ -168,8 +168,10 @@ ${content} // 4. Remove other self-closing component tags that we might want to strip? // For now, let's keep others unless specific instruction, but user said "Remove everything extra". - // Let's strip standard HTML comments - processed = processed.replace(//g, ''); + // Strip HTML and MDX comments. Both render to nothing on the site, so authors + // use them to hide unreleased features and TODOs — without this they leak into + // the .md exports and llms-full.txt and read as shipped documentation. + processed = stripComments(processed); // 5. Clean extra empty lines created by stripping processed = processed.replace(/\n{3,}/g, '\n\n'); @@ -177,6 +179,66 @@ ${content} return processed.trim(); } +// Remove `{/* ... */}` and `` comments, including multi-line ones, +// while leaving fenced code blocks untouched. Snippets legitimately contain both +// — an AndroidManifest example, a JSX sample — and those must survive verbatim. +export function stripComments(content) { + const PAIRS = [['{/*', '*/}'], ['']]; + const lines = content.split('\n'); + const out = []; + let inFence = false; + let closer = null; + + for (const line of lines) { + if (/^\s*(```|~~~)/.test(line)) { + inFence = !inFence; + out.push(line); + continue; + } + if (inFence) { + out.push(line); + continue; + } + + let rest = line; + let kept = ''; + + // Finish a comment that opened on an earlier line. + if (closer) { + const end = rest.indexOf(closer); + if (end === -1) continue; + rest = rest.slice(end + closer.length); + closer = null; + } + + // Consume every comment that opens on this line. + for (;;) { + let next = null; + for (const [open, close] of PAIRS) { + const at = rest.indexOf(open); + if (at !== -1 && (next === null || at < next.at)) next = { at, open, close }; + } + if (!next) { + kept += rest; + break; + } + kept += rest.slice(0, next.at); + const after = rest.slice(next.at + next.open.length); + const end = after.indexOf(next.close); + if (end === -1) { + closer = next.close; + break; + } + rest = after.slice(end + next.close.length); + } + + // Drop lines that were nothing but a comment; keep genuine blank lines. + if (kept.trim() || !line.trim()) out.push(kept.trimEnd()); + } + + return out.join('\n'); +} + function cleanFrontmatter(content) { const frontmatterRegex = /^---\s*\n([\s\S]*?)\n---\s*\n/; const match = content.match(frontmatterRegex); diff --git a/scripts/generate-platform-llms-full.mjs b/scripts/generate-platform-llms-full.mjs index 2dc3591e3c..1656d31a35 100644 --- a/scripts/generate-platform-llms-full.mjs +++ b/scripts/generate-platform-llms-full.mjs @@ -1,3 +1,4 @@ +import { stripComments } from './generate-md.mjs'; import fs from 'node:fs/promises'; import path from 'node:path'; import { fileURLToPath } from 'node:url'; @@ -92,6 +93,10 @@ async function getLocaleReusableComponents(baseComponents, locale) { function stripContent(content, reusableComponents) { let processed = content; + // 0. Remove MDX/HTML comments before anything else, so hidden unreleased + // features and TODOs never reach the LLM bundles. + processed = stripComments(processed); + // 1. Remove imports processed = processed.replace(/^import\s+.*?;?\s*$/gm, ''); @@ -115,8 +120,7 @@ function stripContent(content, reusableComponents) { processed = processed.replace(regex, componentContent); } - // 4. Remove HTML comments - processed = processed.replace(//g, ''); + // 4. HTML comments are already gone — stripComments() handled them in step 0. // 5. Clean extra empty lines processed = processed.replace(/\n{3,}/g, '\n\n'); diff --git a/src/assets/Inline/_gallery.html b/src/assets/Inline/_gallery.html index 24b8111472..29b17dcb3a 100644 --- a/src/assets/Inline/_gallery.html +++ b/src/assets/Inline/_gallery.html @@ -105,6 +105,7 @@

Inline Icon Gallery

redo.svg
refresh.svg
remote-config.svg
+
restore.svg
send-to-device.svg
settings.svg
strikethrough.svg
diff --git a/src/assets/Inline/restore.svg b/src/assets/Inline/restore.svg new file mode 100644 index 0000000000..c3ced54181 --- /dev/null +++ b/src/assets/Inline/restore.svg @@ -0,0 +1 @@ + diff --git a/src/assets/shared/img/back-to-active-flow.webp b/src/assets/shared/img/back-to-active-flow.webp new file mode 100644 index 0000000000000000000000000000000000000000..0fca96d11e003e3935d5ebf9e0edb04892ee1792 GIT binary patch literal 16262 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 h3f3nk_5cKuf<v`zl|d{T5zM-$6b#FW_!= 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 + +## Copy a flow + +1. Open the **Flows** page. +2. Open the context menu next to the flow and select **Copy**. You can't copy an Archived flow. +3. The Flow Builder opens the copy as a new **Draft** with the name of the original plus a `_copy` suffix. + + The copy contains everything stored in the flow itself: + + - **Screens and elements**: Every screen, with its layout, elements, and interactions. + - **Assigned products**: The connections between your product cards and your store products. + - **Design**: Saved color and text styles, backgrounds, and dark mode values. + - **Variables**: [Custom, element, and product variables](onboarding-variables). + - **Localizations**: Every locale, with its translated text and media. + - **Remote config**: Every locale's [JSON payload](customize-flow-with-remote-config). + + Anything stored outside the flow stays behind: + + - **Placements**: The copy belongs to no [placement](placements). + - **A/B tests**: The copy joins no [A/B test](ab-tests). + - **Metrics**: The copy starts with an empty [analytics history](flow-metrics). + +4. Optional: [rename the flow](paywall-builder-templates#create-flow). Adapty allows duplicate flow names — a unique name helps to avoid confusion. +5. Save [or publish](builder-save-publish) your copy. A copy is always a **Draft** until published. +6. Add the copy to a [placement](placements) to show it to users. + +To copy a single screen instead of the whole flow, see [Copy screens between flows](paywall-layout-and-products#copy-screens-between-flows). + +### When to copy a flow + +- **Serve a different audience**: One [placement](placements) can show a different flow to each [audience](add-audience-paywall-ab-test). Copy the flow once per audience, then tailor each copy. Adapty shows the first match in [priority order](change-audience-priority). +- **Keep metrics separate**: Adapty reports [flow metrics](flow-metrics) per flow. Republish an edited flow and its numbers cover both designs. A copy starts with an empty analytics history, so each design reports separately. +- **Create an A/B test variant**: Copy the flow, change one thing, and add both to the [A/B test](ab-tests). Everything else stays identical, so the result reflects only that change. +- **Avoid breaking older app versions**: [Custom fonts](using-custom-fonts-in-flow-builder) ship with your app, not with the flow. Swap the font in a copy, then serve that copy only for app versions that include it. +- **Branch for a different market or campaign**: Copy the flow, swap the products and images, and publish the copy for a different audience. + +## Archive a flow + +In the [**Flows**](https://app.adapty.io/flows) list, select **Archive** from the flow's context menu . + +You can't archive a flow that an [A/B test](ab-tests) still uses. Adapty names the blocking tests in the error message. Archive those tests first. + +Archiving a flow doesn't remove its metrics. You can't edit an archived flow. + +{/* Restore is not in production yet — uncomment when it lands. + +## Restore a flow +To restore a flow, locate it in the Flows list, and select **Back to active** from the context menu . Adapty restores the flow to its pre-archival status, but doesn't add it to any placements. + +*/} diff --git a/src/content/docs/version-3.0/paywall-builder-templates.mdx b/src/content/docs/version-3.0/paywall-builder-templates.mdx index 5e85bf0454..60c5860b8a 100644 --- a/src/content/docs/version-3.0/paywall-builder-templates.mdx +++ b/src/content/docs/version-3.0/paywall-builder-templates.mdx @@ -65,4 +65,4 @@ Templates marked with a **Custom font** chip use custom fonts. These fonts don't To see the intended typography on device, add the font files to your app bundle. Older app versions that don't ship the font fall back to a system font. -To swap a font without affecting older versions, duplicate the flow, change the font in the copy, and restrict the copy to [users on app versions that include the font](segments). +To swap a font without affecting older versions, [copy the flow](manage-flows), change the font in the copy, and restrict the copy to [app versions that include the font](segments). diff --git a/src/content/docs/version-3.0/paywall-layout-and-products.mdx b/src/content/docs/version-3.0/paywall-layout-and-products.mdx index 056ae37068..fd4f63c2e2 100644 --- a/src/content/docs/version-3.0/paywall-layout-and-products.mdx +++ b/src/content/docs/version-3.0/paywall-layout-and-products.mdx @@ -44,7 +44,7 @@ Click the three-dot icon on a screen e | **Delete** | ⌘⌫ / Ctrl+Del | Remove the screen from the flow | :::tip -The clipboard persists across flows. Copy a screen or element from one flow, open another, and paste it in. +The clipboard works for individual elements too, not just whole screens. See [Copy screens between flows](#copy-screens-between-flows) for what a paste leaves behind. ::: When you copy or duplicate a screen, the actions in the copy point at the copied elements rather than at the originals. This applies to targets set in **Show**, **Hide**, and **Select product** actions, including those nested inside [conditional actions](onboarding-actions#conditional-actions). Actions that reference elements outside the copy keep their original targets — check them after pasting. @@ -53,6 +53,24 @@ When you copy or duplicate a screen, the actions in the copy point at the copied When you delete a screen, any [Navigate to Screen](onboarding-navigation-branching) action that pointed to it **loses its target**, but the action itself **isn't removed**. Assign a new destination or delete the action — otherwise, you won't be able to [preview or publish the flow](builder-save-publish#publish-a-flow). ::: +### Copy screens between flows + +To move a screen into another flow, [**Copy**](#screen-actions) it to your clipboard, open the destination flow, and paste it into the **Screens** panel. The clipboard allows you to transfer the screen between different flows or even browsers. + +Adapty doesn't copy what the screen references at flow level. A pasted screen can end up incomplete, and may include broken references. A flow with broken references may [fail to publish](builder-save-publish#troubleshooting). + +Check each of these after you paste: + +- **Variables**: Text bindings, conditions, and actions no longer resolve. Replace the references with variables from the destination flow. +- **Saved styles**: Elements lose their color and text styles. Apply a style from the destination flow. +- **Navigation actions**: **Navigate to screen** actions lose their destination. Point each one at a screen in the destination flow. +- **Localizations**: Only the locales both flows share keep their translations. Users in any other locale see the destination flow's default. +- **Products**: Product references work only inside one app. The clipboard doesn't stop at app boundaries. Paste into another app's flow, and those products don't exist there. + +Replace each broken reference with a working equivalent in the destination flow. + +To copy a whole flow instead of one screen, see [Copy a flow](manage-flows#copy-a-flow). + ## Navigate between screens :::link diff --git a/src/data/sidebars/tutorial.json b/src/data/sidebars/tutorial.json index c50592916c..3ef033b236 100644 --- a/src/data/sidebars/tutorial.json +++ b/src/data/sidebars/tutorial.json @@ -475,6 +475,11 @@ "id": "builder-save-publish", "label": "Save & publish flows" }, + { + "type": "doc", + "id": "manage-flows", + "label": "Copy & archive flows" + }, { "type": "doc", "id": "flow-metrics", From 04924c0d9a22f678df1bf718ca454901f8b521a4 Mon Sep 17 00:00:00 2001 From: Eugene Titerman Date: Mon, 10 Aug 2026 14:39:12 -0300 Subject: [PATCH 2/2] review --- scripts/generate-md.mjs | 14 +++++ src/assets/shared/img/flow-list.webp | Bin 0 -> 75044 bytes .../shared/img/flows-filter-by-placement.webp | Bin 0 -> 20196 bytes .../shared/img/flows-filter-by-state.webp | Bin 0 -> 19690 bytes .../guides/flow-builder/archive-flows.mdx | 27 ++++++++ .../flow-builder/builder-save-publish.mdx | 6 +- .../docs/guides/flow-builder/copy-flows.mdx | 51 +++++++++++++++ .../docs/guides/flow-builder/filter-flows.mdx | 51 +++++++++++++++ .../docs/guides/flow-builder/manage-flows.mdx | 59 ------------------ .../docs/guides/flow-builder/restore-flow.mdx | 12 ++++ .../using-custom-fonts-in-flow-builder.mdx | 2 + src/content/docs/version-3.0/flow-metrics.mdx | 4 ++ .../version-3.0/paywall-builder-templates.mdx | 4 +- .../paywall-layout-and-products.mdx | 23 +------ src/data/sidebars/tutorial.json | 14 ++++- 15 files changed, 179 insertions(+), 88 deletions(-) create mode 100644 src/assets/shared/img/flow-list.webp create mode 100644 src/assets/shared/img/flows-filter-by-placement.webp create mode 100644 src/assets/shared/img/flows-filter-by-state.webp create mode 100644 src/content/docs/guides/flow-builder/archive-flows.mdx create mode 100644 src/content/docs/guides/flow-builder/copy-flows.mdx create mode 100644 src/content/docs/guides/flow-builder/filter-flows.mdx delete mode 100644 src/content/docs/guides/flow-builder/manage-flows.mdx create mode 100644 src/content/docs/guides/flow-builder/restore-flow.mdx diff --git a/scripts/generate-md.mjs b/scripts/generate-md.mjs index c42e35db58..7525f76e93 100644 --- a/scripts/generate-md.mjs +++ b/scripts/generate-md.mjs @@ -264,6 +264,13 @@ function cleanFrontmatter(content) { return content.replace(frontmatterRegex, `---\n${keptLines.join('\n')}\n---\n\n`); } +// Mirrors the check in generate-platform-llms-full.mjs. +function isDraft(content) { + const match = content.match(/^---\s*\n([\s\S]*?)\n---/); + if (!match) return false; + return /^draft:\s*true\s*$/m.test(match[1]); +} + async function processFiles(dir, reusableComponents, englishFiles) { const entries = await fs.readdir(dir, { withFileTypes: true }); @@ -275,6 +282,11 @@ async function processFiles(dir, reusableComponents, englishFiles) { } else if (entry.isFile() && (entry.name.endsWith('.md') || entry.name.endsWith('.mdx'))) { const rawContent = await fs.readFile(fullPath, 'utf-8'); + // `draft: true` pages are skipped by the site router, so they must not + // get a .md export either — otherwise the content stays fetchable at + // /docs/.md even though the page itself 404s. + if (isDraft(rawContent)) continue; + // Clean Frontmatter let content = cleanFrontmatter(rawContent); @@ -319,6 +331,8 @@ async function processLocaleFiles(locale, baseComponents, englishFiles) { if (!entry.isFile() || (!entry.name.endsWith('.md') && !entry.name.endsWith('.mdx'))) continue; const rawContent = await fs.readFile(path.join(localeDir, entry.name), 'utf-8'); + if (isDraft(rawContent)) continue; + let content = cleanFrontmatter(rawContent); content = stripContent(content, components); diff --git a/src/assets/shared/img/flow-list.webp b/src/assets/shared/img/flow-list.webp new file mode 100644 index 0000000000000000000000000000000000000000..d3492fd079da7a2aed567efc6292da17a26836b7 GIT binary patch literal 75044 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Ξ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 literal 0 HcmV?d00001 diff --git a/src/content/docs/guides/flow-builder/archive-flows.mdx b/src/content/docs/guides/flow-builder/archive-flows.mdx new file mode 100644 index 0000000000..9101bb6d34 --- /dev/null +++ b/src/content/docs/guides/flow-builder/archive-flows.mdx @@ -0,0 +1,27 @@ +--- +title: "Archive flows" +description: "Archive the flows you no longer need, and keep their metrics." +metadataTitle: "Archive flows | Flows | Adapty Docs" +--- + +Archive a flow you stopped using to keep the **Flows** list focused. Archived flows sort to the bottom, and you can filter them out by status. Their metrics stay intact. + +:::warning +An archived flow can't be restored, edited, or [copied](copy-flows). Do not archive the flows you may need in the future. +::: + + + +## Archive a flow + +Find the flow in the [**Flows**](https://app.adapty.io/flows) list. Open the context menu and select **Archive**. + +:::warning +Don't archive a live flow. +::: + +Before you archive the flow: +- Remove it from every [placement](placements). +- Archive any [A/B tests](ab-tests) that still use it. + +Archived flows stay in the **Flows** list with an **Archived** status. To hide them, [filter the list by status](filter-flows#filter-by-status) and leave **Archived** unselected. diff --git a/src/content/docs/guides/flow-builder/builder-save-publish.mdx b/src/content/docs/guides/flow-builder/builder-save-publish.mdx index 471fdce4a0..484e9449dc 100644 --- a/src/content/docs/guides/flow-builder/builder-save-publish.mdx +++ b/src/content/docs/guides/flow-builder/builder-save-publish.mdx @@ -47,12 +47,12 @@ A flow is ready to publish once every action, screen, and product element is ful :::warning [Custom fonts](using-custom-fonts-in-flow-builder) don't ship with the flow — you must add each font file to your app bundle. Without the file, users see the system fallback. -To change a font on a published flow without breaking older versions: [copy the flow](manage-flows), change the font in the copy, and target the copy to an [audience](add-audience-paywall-ab-test) on app versions that include the font. +To change a font on a published flow without breaking older versions: [copy the flow](copy-flows), change the font in the copy, and target the copy to an [audience](add-audience-paywall-ab-test) on app versions that include the font. ::: ## Flow status -Each flow shows a status in the Flows list. The status reflects where the flow is in the save and publish lifecycle. +Each flow shows a status in the [Flows list](filter-flows). The status reflects where the flow is in the save and publish lifecycle. | Status | Meaning | | :----- | :------ | @@ -61,7 +61,7 @@ Each flow shows a status in the Flows list. The status reflects where the flow i | **Publishing** | A publish is in progress. | | **Failed** | The last publish attempt failed. Users keep seeing the last published version, if there is one. | | **Published** | The latest saved version is live. There are no unpublished edits. | -| **Archived** | The flow was [archived](manage-flows#archive-a-flow) and can't be edited. | +| **Archived** | The flow was [archived](archive-flows#archive-a-flow) and can't be edited. | ## Troubleshooting diff --git a/src/content/docs/guides/flow-builder/copy-flows.mdx b/src/content/docs/guides/flow-builder/copy-flows.mdx new file mode 100644 index 0000000000..dc94dcf846 --- /dev/null +++ b/src/content/docs/guides/flow-builder/copy-flows.mdx @@ -0,0 +1,51 @@ +--- +title: "Copy flows and screens" +description: "Duplicate a whole flow to tweak it for an audience or an A/B test variant, or copy single screens to reuse them." +metadataTitle: "Copy flows & screens | Flows | Adapty Docs" +--- + +Copy the flow and change a few elements to tweak it for a specific [audience](add-audience-paywall-ab-test), [A/B test](ab-tests), or app version. Copy a single screen to reuse it in another flow. + + + +## Copy a flow + +1. Open the [**Flows**](filter-flows) page. +2. In the flow's row, open the context menu and select **Copy**. You can't copy an archived flow. +3. The Flow Builder opens the copy as a new **Draft** with the name of the original plus a `_copy` suffix. + + The copy contains everything stored in the flow itself: + + - **Screens and elements**: Every screen, with its layout, elements, and interactions. + - **Assigned products**: The connections between your product cards and your store products. + - **Design**: Saved color and text styles, backgrounds, and dark mode values. + - **Custom fonts**: All flows in one app share the same [custom fonts](using-custom-fonts-in-flow-builder), so the copy keeps them. + - **Variables**: [Custom, element, and product variables](onboarding-variables). + - **Localizations**: Every locale, with its translated text and media. + - **Remote config**: Every locale's [JSON payload](customize-flow-with-remote-config). + + Anything stored outside the flow stays behind: + + - **Placements**: The copy belongs to no [placement](placements). + - **A/B tests**: The copy joins no [A/B test](ab-tests). + - **Metrics**: The copy starts with an empty [analytics history](flow-metrics). + +4. Optional: [rename the flow](paywall-builder-templates#create-flow). Adapty allows duplicate flow names — a unique name helps to avoid confusion. +5. Save [or publish](builder-save-publish) your copy. A copy remains a **Draft** until published. +6. Add the copy to a [placement](placements) to show it to users. + +## Copy screens between flows + +To move a screen into another flow, [**Copy**](paywall-layout-and-products#screen-actions) it to your clipboard, open the destination flow, and paste it into the **Screens** panel. The clipboard allows you to transfer the screen between different flows or even browsers. + +Adapty doesn't copy what the screen references at flow level. A pasted screen can end up incomplete, and may include broken references. A flow with broken references may [fail to publish](builder-save-publish#troubleshooting). + +Review each of these after you paste: + +- **Variables**: Text bindings, conditions, and actions no longer resolve. Replace the references with variables from the destination flow. +- **Saved styles**: Elements lose their color and text styles. Apply a style from the destination flow. +- **Navigation actions**: **Navigate to screen** actions lose their destination. Point each one at a screen in the destination flow. +- **Localizations**: Only the locales both flows share keep their translations. Users in any other locale see the destination flow's default. +- **Products and custom fonts**: Every flow in an app can use the same products and fonts. A screen pasted from a different flow in the same app keeps its products and fonts. Pasting a screen from a different app will break its product and font references. + +Replace each broken reference with a working equivalent in the destination flow. diff --git a/src/content/docs/guides/flow-builder/filter-flows.mdx b/src/content/docs/guides/flow-builder/filter-flows.mdx new file mode 100644 index 0000000000..918eb18685 --- /dev/null +++ b/src/content/docs/guides/flow-builder/filter-flows.mdx @@ -0,0 +1,51 @@ +--- +title: "Find and filter flows" +description: "Search, filter, and sort your flows, and open the actions available for each one." +metadataTitle: "Find and filter flows | Flows | Adapty Docs" +--- + +The [**Flows**](https://app.adapty.io/flows) page lists every flow in your app with its [status](#filter-by-status) and main [metrics](flow-metrics). Click a flow to open its full [metrics](flow-metrics), or, if you hold the **Developer** role — the [Flow Builder](adapty-flow-builder). + + + +## Search by name + +**Search by flow name** matches any part of a flow name. It doesn't search placements, products, or screen content. + +## Filter by status + +Open the **All states** filter above the list, select one or more statuses, and click **Apply**. + +- **Draft**: Never published — users don't see it. +- **Publishing**: Adapty is publishing the flow right now. +- **Published**: The latest saved version is live, no unpublished edits exist. +- **Failed**: The last publishing attempt failed. +- **Dirty**: Published earlier. Contains saved edits that haven't gone live yet. +- **Archived**: Out of use, and not editable. See [Archive flows](archive-flows). + +[Save & publish flows](builder-save-publish#flow-status) describes how a flow moves between these statuses. + + + +## Filter by placement + +Open the **All placements** filter above the list, select one or more [placements](placements), and click **Apply**. This filter appears when you have at least one flow assigned to a placement. + + + +## Sort + +You can sort by **Flow name** or **Status**. The metric columns aren't sortable. By default, published flows come first and archived flows last. + +## Flow actions + +Open the context menu in a flow's row. + +| Action | What it does | +| :----- | :----------- | +| **Metrics** | Opens the flow's [metrics](flow-metrics). | +| **Edit** | Opens the flow in the [Flow Builder](adapty-flow-builder). | +| **Copy** | [Copies the flow](copy-flows) as a new Draft. | +| **Archive** | [Archives the flow](archive-flows). | + +The menu for an archived flow shows **Metrics** only. diff --git a/src/content/docs/guides/flow-builder/manage-flows.mdx b/src/content/docs/guides/flow-builder/manage-flows.mdx deleted file mode 100644 index 83b6eabb48..0000000000 --- a/src/content/docs/guides/flow-builder/manage-flows.mdx +++ /dev/null @@ -1,59 +0,0 @@ ---- -title: "Manage flows: copy and archive" -description: "Duplicate a flow instead of rebuilding it. Archive flows you no longer need." -metadataTitle: "Manage flows: copy & archive | Flows | Adapty Docs" ---- - -Copy a flow to change an existing flow design. Archive the flows you've stopped using. - - - -## Copy a flow - -1. Open the **Flows** page. -2. Open the context menu next to the flow and select **Copy**. You can't copy an Archived flow. -3. The Flow Builder opens the copy as a new **Draft** with the name of the original plus a `_copy` suffix. - - The copy contains everything stored in the flow itself: - - - **Screens and elements**: Every screen, with its layout, elements, and interactions. - - **Assigned products**: The connections between your product cards and your store products. - - **Design**: Saved color and text styles, backgrounds, and dark mode values. - - **Variables**: [Custom, element, and product variables](onboarding-variables). - - **Localizations**: Every locale, with its translated text and media. - - **Remote config**: Every locale's [JSON payload](customize-flow-with-remote-config). - - Anything stored outside the flow stays behind: - - - **Placements**: The copy belongs to no [placement](placements). - - **A/B tests**: The copy joins no [A/B test](ab-tests). - - **Metrics**: The copy starts with an empty [analytics history](flow-metrics). - -4. Optional: [rename the flow](paywall-builder-templates#create-flow). Adapty allows duplicate flow names — a unique name helps to avoid confusion. -5. Save [or publish](builder-save-publish) your copy. A copy is always a **Draft** until published. -6. Add the copy to a [placement](placements) to show it to users. - -To copy a single screen instead of the whole flow, see [Copy screens between flows](paywall-layout-and-products#copy-screens-between-flows). - -### When to copy a flow - -- **Serve a different audience**: One [placement](placements) can show a different flow to each [audience](add-audience-paywall-ab-test). Copy the flow once per audience, then tailor each copy. Adapty shows the first match in [priority order](change-audience-priority). -- **Keep metrics separate**: Adapty reports [flow metrics](flow-metrics) per flow. Republish an edited flow and its numbers cover both designs. A copy starts with an empty analytics history, so each design reports separately. -- **Create an A/B test variant**: Copy the flow, change one thing, and add both to the [A/B test](ab-tests). Everything else stays identical, so the result reflects only that change. -- **Avoid breaking older app versions**: [Custom fonts](using-custom-fonts-in-flow-builder) ship with your app, not with the flow. Swap the font in a copy, then serve that copy only for app versions that include it. -- **Branch for a different market or campaign**: Copy the flow, swap the products and images, and publish the copy for a different audience. - -## Archive a flow - -In the [**Flows**](https://app.adapty.io/flows) list, select **Archive** from the flow's context menu . - -You can't archive a flow that an [A/B test](ab-tests) still uses. Adapty names the blocking tests in the error message. Archive those tests first. - -Archiving a flow doesn't remove its metrics. You can't edit an archived flow. - -{/* Restore is not in production yet — uncomment when it lands. - -## Restore a flow -To restore a flow, locate it in the Flows list, and select **Back to active** from the context menu . Adapty restores the flow to its pre-archival status, but doesn't add it to any placements. - -*/} diff --git a/src/content/docs/guides/flow-builder/restore-flow.mdx b/src/content/docs/guides/flow-builder/restore-flow.mdx new file mode 100644 index 0000000000..eec7e68e96 --- /dev/null +++ b/src/content/docs/guides/flow-builder/restore-flow.mdx @@ -0,0 +1,12 @@ +--- +title: "Restore an archived flow" +description: "Return an archived flow to your active flows with the Back to active action." +metadataTitle: "Restore an archived flow | Flows | Adapty Docs" +draft: true +--- + +## Restore a flow + +To restore a flow, locate it in the [Flows list](filter-flows), and select **Back to active** from the context menu . Adapty restores the flow to its pre-archival status, but doesn't add it to any placements. + + diff --git a/src/content/docs/guides/flow-builder/using-custom-fonts-in-flow-builder.mdx b/src/content/docs/guides/flow-builder/using-custom-fonts-in-flow-builder.mdx index f2d85e8e1d..756898bdb5 100644 --- a/src/content/docs/guides/flow-builder/using-custom-fonts-in-flow-builder.mdx +++ b/src/content/docs/guides/flow-builder/using-custom-fonts-in-flow-builder.mdx @@ -9,6 +9,8 @@ import 'react-medium-image-zoom/dist/styles.css'; When building flows, you might want to use a custom font to match the rest of your app. Here's how to add custom fonts and use them in your flows. +All flows in one app share the fonts you upload. That includes flows you [copy](copy-flows). Other apps in your Adapty account each need their own upload. + :::tip [Configure fonts](onboarding-text) in the **Styles** panel before you start designing the flow. This way, any changes you make will apply globally. ::: diff --git a/src/content/docs/version-3.0/flow-metrics.mdx b/src/content/docs/version-3.0/flow-metrics.mdx index 9e57b7de87..fabbc06ed8 100644 --- a/src/content/docs/version-3.0/flow-metrics.mdx +++ b/src/content/docs/version-3.0/flow-metrics.mdx @@ -15,6 +15,10 @@ Flow revenue is calculated from all transactions that occurred after the flow ha Flow metrics are available on the flow list, providing an overview of the performance of all your flows. This consolidated view presents aggregated metrics for each flow, allowing you to compare their effectiveness and identify areas for improvement. +:::note +The **Developer** role [excludes analytics](members-settings) — members with that role can't view flow metrics. In the [flow list](filter-flows), the metric columns stay empty. +::: + For a more granular analysis of each flow, navigate to the flow detail metrics. There you will find comprehensive metrics specific to the selected flow, offering deeper insight into its performance. diff --git a/src/content/docs/version-3.0/paywall-builder-templates.mdx b/src/content/docs/version-3.0/paywall-builder-templates.mdx index 60c5860b8a..ca8446a62e 100644 --- a/src/content/docs/version-3.0/paywall-builder-templates.mdx +++ b/src/content/docs/version-3.0/paywall-builder-templates.mdx @@ -13,7 +13,7 @@ You can create a flow from a template or from scratch. -1. Open the **Flows** page. +1. Open the [**Flows**](filter-flows) page. 2. Click **Create flow**. 3. Pick an option: - **Browse templates** (opens the Template library) @@ -65,4 +65,4 @@ Templates marked with a **Custom font** chip use custom fonts. These fonts don't To see the intended typography on device, add the font files to your app bundle. Older app versions that don't ship the font fall back to a system font. -To swap a font without affecting older versions, [copy the flow](manage-flows), change the font in the copy, and restrict the copy to [app versions that include the font](segments). +To swap a font without affecting older versions, [copy the flow](copy-flows), change the font in the copy, and restrict the copy to [app versions that include the font](segments). diff --git a/src/content/docs/version-3.0/paywall-layout-and-products.mdx b/src/content/docs/version-3.0/paywall-layout-and-products.mdx index fd4f63c2e2..7d63ed75b9 100644 --- a/src/content/docs/version-3.0/paywall-layout-and-products.mdx +++ b/src/content/docs/version-3.0/paywall-layout-and-products.mdx @@ -6,7 +6,6 @@ metadataTitle: Screens and layers | Flow Builder | Adapty Docs import ZoomImage from '@site/src/components/ZoomImage.astro'; - A flow consists of one or more screens. Each screen represents a single step in the user’s journey — for example, a paywall, a quiz, or a slide with product information. The elements on each screen are organized in a layer hierarchy. @@ -44,7 +43,7 @@ Click the three-dot icon on a screen e | **Delete** | ⌘⌫ / Ctrl+Del | Remove the screen from the flow | :::tip -The clipboard works for individual elements too, not just whole screens. See [Copy screens between flows](#copy-screens-between-flows) for what a paste leaves behind. +The clipboard works for individual elements too, not just whole screens. It also crosses flows — see [Copy screens between flows](copy-flows#copy-screens-between-flows) for what a paste leaves behind. ::: When you copy or duplicate a screen, the actions in the copy point at the copied elements rather than at the originals. This applies to targets set in **Show**, **Hide**, and **Select product** actions, including those nested inside [conditional actions](onboarding-actions#conditional-actions). Actions that reference elements outside the copy keep their original targets — check them after pasting. @@ -53,24 +52,6 @@ When you copy or duplicate a screen, the actions in the copy point at the copied When you delete a screen, any [Navigate to Screen](onboarding-navigation-branching) action that pointed to it **loses its target**, but the action itself **isn't removed**. Assign a new destination or delete the action — otherwise, you won't be able to [preview or publish the flow](builder-save-publish#publish-a-flow). ::: -### Copy screens between flows - -To move a screen into another flow, [**Copy**](#screen-actions) it to your clipboard, open the destination flow, and paste it into the **Screens** panel. The clipboard allows you to transfer the screen between different flows or even browsers. - -Adapty doesn't copy what the screen references at flow level. A pasted screen can end up incomplete, and may include broken references. A flow with broken references may [fail to publish](builder-save-publish#troubleshooting). - -Check each of these after you paste: - -- **Variables**: Text bindings, conditions, and actions no longer resolve. Replace the references with variables from the destination flow. -- **Saved styles**: Elements lose their color and text styles. Apply a style from the destination flow. -- **Navigation actions**: **Navigate to screen** actions lose their destination. Point each one at a screen in the destination flow. -- **Localizations**: Only the locales both flows share keep their translations. Users in any other locale see the destination flow's default. -- **Products**: Product references work only inside one app. The clipboard doesn't stop at app boundaries. Paste into another app's flow, and those products don't exist there. - -Replace each broken reference with a working equivalent in the destination flow. - -To copy a whole flow instead of one screen, see [Copy a flow](manage-flows#copy-a-flow). - ## Navigate between screens :::link @@ -170,7 +151,6 @@ Click a group entry to rename it, change its type, view the variables it exposes - ## Manage layers Each element on a screen is represented as a layer. The Layers section displays the order of the elements on the active screen. @@ -196,7 +176,6 @@ Click the three-dot icon to open the c - | Action | Shortcut | Description | |--------|----------|-------------| | **Copy** | ⌘C / Ctrl+C | Copy the layer to the clipboard | diff --git a/src/data/sidebars/tutorial.json b/src/data/sidebars/tutorial.json index 3ef033b236..0256802571 100644 --- a/src/data/sidebars/tutorial.json +++ b/src/data/sidebars/tutorial.json @@ -477,8 +477,18 @@ }, { "type": "doc", - "id": "manage-flows", - "label": "Copy & archive flows" + "id": "filter-flows", + "label": "Find & filter flows" + }, + { + "type": "doc", + "id": "copy-flows", + "label": "Copy flows & screens" + }, + { + "type": "doc", + "id": "archive-flows", + "label": "Archive flows" }, { "type": "doc",