@picked/client 0.0.101-next.1 → 0.0.101-next.3
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/README.md +34 -158
- package/dist/{api-DThEBKPu.cjs → api-9o_emCM5.cjs} +1 -1
- package/dist/{api-DcXndm41.js → api-BbQt8aW3.js} +1 -1
- package/dist/cjs/index.js +2 -2
- package/dist/cjs/plugins/dynamic-experiences/index.js +1 -1
- package/dist/cjs/server/index.js +1 -1
- package/dist/esm/index.js +2 -2
- package/dist/esm/plugins/dynamic-experiences/index.js +2 -2
- package/dist/esm/server/index.js +2 -2
- package/dist/{plugin-DA34qpbe.cjs → plugin-I8_6ncy_.cjs} +1 -1
- package/dist/{plugin-BZPx7WhX.js → plugin-uZJ45vK6.js} +2 -2
- package/dist/{preview-unavailable-sDBBJFrE.cjs → preview-unavailable-BUNxTYLe.cjs} +1 -1
- package/dist/{preview-unavailable-Bg8UuQeR.js → preview-unavailable-BYFD2a58.js} +1 -1
- package/dist/{provider-BkN7A93w.cjs → provider-Bzi_Kb-n.cjs} +1 -1
- package/dist/{provider-DRNHPacW.js → provider-CQKp0iUJ.js} +1 -1
- package/package.json +5 -5
- package/dist/docs/_root.css +0 -101
- package/dist/docs/explanation/conditions-and-the-logic-engine.md +0 -94
- package/dist/docs/explanation/content-references.md +0 -99
- package/dist/docs/explanation/feature-flag-allocation.md +0 -218
- package/dist/docs/explanation/how-picked-works.md +0 -124
- package/dist/docs/explanation/how-pickedql-works.md +0 -76
- package/dist/docs/explanation/pages-and-flows.md +0 -64
- package/dist/docs/explanation/the-content-model.md +0 -87
- package/dist/docs/explanation/the-two-apis.md +0 -68
- package/dist/docs/explanation/why-server-side-rendering.md +0 -76
- package/dist/docs/explanation/workspaces-and-versions.md +0 -71
- package/dist/docs/how-to/add-a-step-field-or-action.md +0 -43
- package/dist/docs/how-to/analytics/index.md +0 -316
- package/dist/docs/how-to/archive-or-delete-a-workspace.md +0 -46
- package/dist/docs/how-to/authenticate-the-cli.md +0 -101
- package/dist/docs/how-to/authenticate-with-a-magic-link.md +0 -47
- package/dist/docs/how-to/authenticate-with-a-password.md +0 -59
- package/dist/docs/how-to/authenticate-with-an-api-key.md +0 -51
- package/dist/docs/how-to/authenticate-with-oauth.md +0 -40
- package/dist/docs/how-to/build-a-flow.md +0 -93
- package/dist/docs/how-to/call-an-external-api-from-a-workflow.md +0 -102
- package/dist/docs/how-to/connect-the-mcp-server.md +0 -46
- package/dist/docs/how-to/create-a-content-entry.md +0 -48
- package/dist/docs/how-to/create-a-project.md +0 -29
- package/dist/docs/how-to/create-an-experience.md +0 -42
- package/dist/docs/how-to/create-and-revoke-an-api-key.md +0 -42
- package/dist/docs/how-to/debug-with-the-chrome-extension.md +0 -57
- package/dist/docs/how-to/define-a-page-layout.md +0 -46
- package/dist/docs/how-to/fill-and-publish-a-page.md +0 -66
- package/dist/docs/how-to/install-the-gtm-template.md +0 -84
- package/dist/docs/how-to/install-the-sdk.md +0 -93
- package/dist/docs/how-to/install-the-vite-plugin.md +0 -69
- package/dist/docs/how-to/invite-and-remove-members.md +0 -35
- package/dist/docs/how-to/point-one-entry-at-another.md +0 -61
- package/dist/docs/how-to/preview-a-workspace.md +0 -28
- package/dist/docs/how-to/publish-a-workspace.md +0 -30
- package/dist/docs/how-to/read-a-feature-flag.md +0 -113
- package/dist/docs/how-to/read-a-referenced-entry.md +0 -109
- package/dist/docs/how-to/register-a-component.md +0 -55
- package/dist/docs/how-to/register-an-action-handler.md +0 -85
- package/dist/docs/how-to/register-an-api-that-uses-oauth2.md +0 -107
- package/dist/docs/how-to/render-a-step-form.md +0 -131
- package/dist/docs/how-to/render-an-unpublished-preview.md +0 -41
- package/dist/docs/how-to/retry-a-failed-call-with-a-loop.md +0 -81
- package/dist/docs/how-to/reuse-a-section.md +0 -53
- package/dist/docs/how-to/reuse-a-step-field-or-action.md +0 -28
- package/dist/docs/how-to/roll-back-a-published-version.md +0 -26
- package/dist/docs/how-to/run-an-ab-test.md +0 -49
- package/dist/docs/how-to/run-code-on-a-form-submission.md +0 -125
- package/dist/docs/how-to/server-render-a-page.md +0 -81
- package/dist/docs/how-to/set-a-content-security-policy.md +0 -32
- package/dist/docs/how-to/set-up-mfa.md +0 -113
- package/dist/docs/how-to/switch-workspaces.md +0 -122
- package/dist/docs/how-to/upload-and-use-an-asset.mdx +0 -73
- package/dist/docs/how-to/validate-a-field.md +0 -52
- package/dist/docs/how-to/wait-for-an-action-response.md +0 -182
- package/dist/docs/how-to/write-a-condition.md +0 -45
- package/dist/docs/how-to/write-a-predicate.md +0 -60
- package/dist/docs/index.md +0 -59
- package/dist/docs/reference/dashboard/actions.mdx +0 -56
- package/dist/docs/reference/dashboard/api-keys.mdx +0 -38
- package/dist/docs/reference/dashboard/conditions.mdx +0 -42
- package/dist/docs/reference/dashboard/content/asset-library.mdx +0 -63
- package/dist/docs/reference/dashboard/content/blocks.mdx +0 -57
- package/dist/docs/reference/dashboard/content/content-entries.mdx +0 -95
- package/dist/docs/reference/dashboard/content/models.mdx +0 -108
- package/dist/docs/reference/dashboard/content/pages.mdx +0 -61
- package/dist/docs/reference/dashboard/experiences.mdx +0 -51
- package/dist/docs/reference/dashboard/external-apis.md +0 -169
- package/dist/docs/reference/dashboard/features.mdx +0 -154
- package/dist/docs/reference/dashboard/fields.mdx +0 -106
- package/dist/docs/reference/dashboard/flow-builder/canvas.mdx +0 -58
- package/dist/docs/reference/dashboard/flow-builder/condition-builder.md +0 -57
- package/dist/docs/reference/dashboard/flow-builder/keyboard-shortcuts.md +0 -72
- package/dist/docs/reference/dashboard/flow-builder/nodes.md +0 -63
- package/dist/docs/reference/dashboard/labels.md +0 -321
- package/dist/docs/reference/dashboard/lead-search.md +0 -224
- package/dist/docs/reference/dashboard/projects.mdx +0 -44
- package/dist/docs/reference/dashboard/reports.mdx +0 -43
- package/dist/docs/reference/dashboard/steps.mdx +0 -37
- package/dist/docs/reference/dashboard/team-management.md +0 -29
- package/dist/docs/reference/dashboard/workflow-runs.md +0 -142
- package/dist/docs/reference/dashboard/workflow-templates.md +0 -182
- package/dist/docs/reference/dashboard/workflow-test-runs.md +0 -77
- package/dist/docs/reference/dashboard/workspace-versioning.mdx +0 -30
- package/dist/docs/reference/dashboard/workspaces.mdx +0 -76
- package/dist/docs/reference/delivery-api/experience-content.md +0 -152
- package/dist/docs/reference/delivery-api/index.md +0 -45
- package/dist/docs/reference/delivery-api/preview-caching-crawling.md +0 -79
- package/dist/docs/reference/delivery-api/project-config.md +0 -65
- package/dist/docs/reference/delivery-api/workspace-schema.md +0 -107
- package/dist/docs/reference/glossary.md +0 -201
- package/dist/docs/reference/management-api/authentication.md +0 -87
- package/dist/docs/reference/management-api/authorization-and-scopes.md +0 -291
- package/dist/docs/reference/management-api/error-handling.md +0 -232
- package/dist/docs/reference/management-api/pagination.md +0 -192
- package/dist/docs/reference/pickedql/data-sources.md +0 -174
- package/dist/docs/reference/pickedql/dimensions.md +0 -103
- package/dist/docs/reference/pickedql/filtering.md +0 -64
- package/dist/docs/reference/pickedql/index.md +0 -18
- package/dist/docs/reference/pickedql/schema.md +0 -172
- package/dist/docs/reference/pickedql/virtual-functions.md +0 -248
- package/dist/docs/reference/sdk/actions.md +0 -154
- package/dist/docs/reference/sdk/analytics-events.md +0 -453
- package/dist/docs/reference/sdk/conditions.md +0 -147
- package/dist/docs/reference/sdk/content-security-policy.md +0 -21
- package/dist/docs/reference/sdk/content.md +0 -253
- package/dist/docs/reference/sdk/experiences.md +0 -51
- package/dist/docs/reference/sdk/features.md +0 -256
- package/dist/docs/reference/sdk/fields.md +0 -255
- package/dist/docs/reference/sdk/index.md +0 -68
- package/dist/docs/reference/sdk/plugins/create-experience.md +0 -123
- package/dist/docs/reference/sdk/plugins/dynamic-experiences.md +0 -74
- package/dist/docs/reference/sdk/plugins/index.md +0 -29
- package/dist/docs/reference/sdk/plugins/window-object.md +0 -25
- package/dist/docs/reference/sdk/predicates.md +0 -43
- package/dist/docs/reference/sdk/ssr/index.md +0 -33
- package/dist/docs/reference/sdk/ssr/rendering-and-hydration.md +0 -103
- package/dist/docs/reference/sdk/ssr/serialize.md +0 -80
- package/dist/docs/reference/sdk/ssr/slots-and-placements.md +0 -113
- package/dist/docs/reference/sdk/steps.md +0 -86
- package/dist/docs/reference/sdk/type-generation.md +0 -265
- package/dist/docs/reference/tools/chrome-extension.md +0 -16
- package/dist/docs/reference/tools/cli.md +0 -292
- package/dist/docs/reference/tools/image-optimisation-service.md +0 -104
- package/dist/docs/reference/tools/mcp.md +0 -136
- package/dist/docs/reference/tools/vite-plugin.md +0 -163
- package/dist/docs/tutorials/first-api-call.md +0 -235
- package/dist/docs/tutorials/first-experience-in-the-dashboard.mdx +0 -143
- package/dist/docs/tutorials/first-experience.mdx +0 -254
- package/dist/docs/tutorials/first-server-rendered-page.mdx +0 -186
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: reference
|
|
3
|
-
layout: docs
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
import { Screenshot } from '../../../../components/Screenshot'
|
|
7
|
-
|
|
8
|
-
# Projects
|
|
9
|
-
|
|
10
|
-
A project is one site or one application that you want to measure with Picked. Each
|
|
11
|
-
project has its own experiences, content, and options.
|
|
12
|
-
|
|
13
|
-
<Screenshot
|
|
14
|
-
route="/{orgSlug}"
|
|
15
|
-
alt="The organization home page on the Picked dashboard, with the projects in an organization"
|
|
16
|
-
/>
|
|
17
|
-
|
|
18
|
-
## Workspaces
|
|
19
|
-
|
|
20
|
-
Each project holds one or more [Workspaces](/reference/dashboard/workspaces). In a workspace you set the
|
|
21
|
-
options for an experience and you see a preview of it before you make it live.
|
|
22
|
-
|
|
23
|
-
## Project home
|
|
24
|
-
|
|
25
|
-
When you open a project, you land on the project home page. It shows your SDK
|
|
26
|
-
snippet and a list of the setup tasks that are still open.
|
|
27
|
-
|
|
28
|
-
Copy the snippet and add it to your site. The snippet connects your site to the
|
|
29
|
-
project and lets Picked serve experiences to it. See
|
|
30
|
-
[SDK Installation](/reference/sdk) for the setup detail.
|
|
31
|
-
|
|
32
|
-
## Project navigation
|
|
33
|
-
|
|
34
|
-
The sidebar shows the sections of your project: **Feature flags**, **Fields**, **Flows**,
|
|
35
|
-
**Pages**, and **Workspace settings**. **Flows** holds **Step Layouts**, and **Pages**
|
|
36
|
-
holds **Page Layouts** and **Sections**.
|
|
37
|
-
|
|
38
|
-
A step, an action, and a condition have no sidebar entry. You reach all three from the
|
|
39
|
-
library in the flow builder, because each one belongs to a flow.
|
|
40
|
-
|
|
41
|
-
## Related
|
|
42
|
-
|
|
43
|
-
- [How to create a project](/how-to/create-a-project)
|
|
44
|
-
- [How to install the SDK](/how-to/install-the-sdk)
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: reference
|
|
3
|
-
layout: docs
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
import { Screenshot } from '../../../../components/Screenshot'
|
|
7
|
-
|
|
8
|
-
# Reports
|
|
9
|
-
|
|
10
|
-
A report is an embedded Metabase dashboard or question, attached to a Picked project. Use
|
|
11
|
-
a report to see how your visitors move through your experiences and your feature flags.
|
|
12
|
-
|
|
13
|
-
<Screenshot
|
|
14
|
-
route="/{orgSlug}/{projectId}/reports"
|
|
15
|
-
alt="The reports list for a project on the Picked dashboard"
|
|
16
|
-
/>
|
|
17
|
-
|
|
18
|
-
## Report options
|
|
19
|
-
|
|
20
|
-
| Option | Description |
|
|
21
|
-
| --- | --- |
|
|
22
|
-
| **Report name** | The name that the reports list shows. |
|
|
23
|
-
| **Description** | An optional note about what the report shows. |
|
|
24
|
-
| **Metabase report type** | `Dashboard` or `Question`. |
|
|
25
|
-
| **Metabase report ID** | The numeric ID from the Metabase URL. |
|
|
26
|
-
| **Display order** | Optional. It controls the position of the report in the list. |
|
|
27
|
-
|
|
28
|
-
The create form has a link that opens the report, so you can check that the ID is
|
|
29
|
-
correct before you save.
|
|
30
|
-
|
|
31
|
-
## Permissions
|
|
32
|
-
|
|
33
|
-
A member needs permission in the organization to create, edit, or delete a report. The
|
|
34
|
-
dashboard hides those actions from a member without it.
|
|
35
|
-
|
|
36
|
-
## Delete a report
|
|
37
|
-
|
|
38
|
-
Open the report settings page and click **Delete report**. You cannot reverse a delete.
|
|
39
|
-
|
|
40
|
-
## Related
|
|
41
|
-
|
|
42
|
-
- [Analytics queries](/how-to/analytics) — query the same data with SQL.
|
|
43
|
-
- [About PickedQL](/explanation/how-pickedql-works) — what the query layer expands.
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: reference
|
|
3
|
-
layout: docs
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
import { Screenshot } from '../../../../components/Screenshot'
|
|
7
|
-
|
|
8
|
-
# Steps
|
|
9
|
-
|
|
10
|
-
A step is one screen or card that a visitor sees during an experience. Each step
|
|
11
|
-
holds one or more fields. A field collects data or shows content.
|
|
12
|
-
|
|
13
|
-
<Screenshot
|
|
14
|
-
route="/{orgSlug}/{projectId}/workspaces/{workspaceId}/steps"
|
|
15
|
-
alt="The steps list for a workspace on the Picked dashboard"
|
|
16
|
-
/>
|
|
17
|
-
|
|
18
|
-
## Set up a step
|
|
19
|
-
|
|
20
|
-
**Name**: The name that the dashboard shows. Your visitors do not see it.
|
|
21
|
-
|
|
22
|
-
**Key**: The identifier that your application uses for this step. Your
|
|
23
|
-
visitors do not see it.
|
|
24
|
-
|
|
25
|
-
**Layout Name**: The name of the component layout that renders this step. Examples
|
|
26
|
-
are `card`, `modal`, and `fullscreen`.
|
|
27
|
-
|
|
28
|
-
A step can also carry a **Step Layout**. A step layout is a reusable CMS schema, and
|
|
29
|
-
it gives the step a Content Entry. See [Models](/reference/dashboard/content/models).
|
|
30
|
-
|
|
31
|
-
## Related
|
|
32
|
-
|
|
33
|
-
- [How to add a step, a field, an action, or a condition](/how-to/add-a-step-field-or-action)
|
|
34
|
-
|
|
35
|
-
- [How to build a flow](/how-to/build-a-flow) — add a step and assign fields to it.
|
|
36
|
-
- [How to reuse a step, a field, or an action](/how-to/reuse-a-step-field-or-action)
|
|
37
|
-
- [Models](/reference/dashboard/content/models) — the step layout schema.
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: reference
|
|
3
|
-
layout: docs
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Team management
|
|
7
|
-
|
|
8
|
-
Control who can reach your organization and what each person can do. An organization
|
|
9
|
-
is the top-level container for your projects and members.
|
|
10
|
-
|
|
11
|
-
## Organizations
|
|
12
|
-
|
|
13
|
-
An organization groups your projects, your members, and your settings. You can belong
|
|
14
|
-
to more than one organization.
|
|
15
|
-
|
|
16
|
-
To move between organizations, use the organization control at the top of the
|
|
17
|
-
sidebar.
|
|
18
|
-
|
|
19
|
-
## Roles and permissions
|
|
20
|
-
|
|
21
|
-
Each member holds a role, and the role controls what the member can reach. A role
|
|
22
|
-
decides whether a member can create a project, edit an experience, control other
|
|
23
|
-
members, or read a report.
|
|
24
|
-
|
|
25
|
-
Give each member the smallest role that the work of that member needs.
|
|
26
|
-
|
|
27
|
-
## Related
|
|
28
|
-
|
|
29
|
-
- [How to invite and remove members](/how-to/invite-and-remove-members)
|
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: reference
|
|
3
|
-
layout: docs
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Workflow runs
|
|
7
|
-
|
|
8
|
-
A run is one execution of a published workflow. An event or an action starts it. Picked
|
|
9
|
-
records each run, each node that the run reached, and each lead that the run created or
|
|
10
|
-
changed.
|
|
11
|
-
|
|
12
|
-
## Where runs show
|
|
13
|
-
|
|
14
|
-
| Page | Address | Content |
|
|
15
|
-
| ---- | ----------------------------------- | -------------------------------------------------------------------------------------------- |
|
|
16
|
-
| Runs | `…/workflows/<workflow>/runs` | The runs of one workflow, the last run first. Open it with the **Runs** tab of the workflow. |
|
|
17
|
-
| Run | `…/workflows/<workflow>/runs/<run>` | One run: its records, its tasks, its details and its labels. |
|
|
18
|
-
| Lead | `…/leads/<lead>` | The **Workflow runs** card. It lists the runs that created or changed the lead. |
|
|
19
|
-
|
|
20
|
-
A run starts only from a published version of the workspace. A change to a workflow that
|
|
21
|
-
you did not publish does not start runs.
|
|
22
|
-
|
|
23
|
-
## Run status
|
|
24
|
-
|
|
25
|
-
| Status | Meaning |
|
|
26
|
-
| ----------- | ----------------------------------------------------------------------------------------------- |
|
|
27
|
-
| `Running` | The run started and did not stop yet. A **Wait** node can keep a run in this status for days. |
|
|
28
|
-
| `Completed` | Each node that the run reached did its work, or failed and the run continued on its error exit. |
|
|
29
|
-
| `Failed` | A node failed. The run stopped at that node. The run shows the reason. |
|
|
30
|
-
|
|
31
|
-
A tool node that fails with an edge on its error exit shows `Failed` on its task. The run
|
|
32
|
-
continues on that edge only when the tool itself fails:
|
|
33
|
-
|
|
34
|
-
- An External API call fails. Refer to the [External APIs reference](/reference/dashboard/external-apis#errors).
|
|
35
|
-
- Another tool refuses the request. For example, a label value is not a number for a
|
|
36
|
-
`number` label, or the lead does not exist. The tool also refuses a row with `increment`
|
|
37
|
-
on a label that is not a `number` label. It refuses some project labels and run labels
|
|
38
|
-
with a key in the format of a hash. Refer to the [Labels reference](/reference/dashboard/labels).
|
|
39
|
-
|
|
40
|
-
When the tool refuses the request, the error record has the code `tool_failed` and a
|
|
41
|
-
reason from the tool, for example `value_invalid_for_type`, `label_write_invalid` or
|
|
42
|
-
`owner_not_found`.
|
|
43
|
-
|
|
44
|
-
Other failures stop the run, with or without an edge on the error exit:
|
|
45
|
-
|
|
46
|
-
- A required argument has no value.
|
|
47
|
-
- An argument has a value that the tool does not accept:
|
|
48
|
-
- The value has the wrong type.
|
|
49
|
-
- The value is not one of the options.
|
|
50
|
-
- A number is not in the range that the tool accepts.
|
|
51
|
-
- A label namespace or key does not have the correct format.
|
|
52
|
-
- Two labels have the same namespace and key.
|
|
53
|
-
- A list of labels is empty.
|
|
54
|
-
- A label row has `value` and `increment`, or neither.
|
|
55
|
-
- A label row has `increment` and `onlyIfAbsent`, or `increment` and a type other than
|
|
56
|
-
`number`.
|
|
57
|
-
- An `expiresIn` is not a whole number from 1 to 31536000.
|
|
58
|
-
- A template cannot be rendered.
|
|
59
|
-
- The workflow does not have a scope that the tool needs.
|
|
60
|
-
- The tool gives output that is not valid.
|
|
61
|
-
- An error occurs in Picked.
|
|
62
|
-
|
|
63
|
-
## Visit cap
|
|
64
|
-
|
|
65
|
-
A run can go back to a node that it reached before, on a loop. Each time that the run gets
|
|
66
|
-
to a node is a visit. The visit cap is the maximum number of visits to one node in a run.
|
|
67
|
-
|
|
68
|
-
| Setting | Value |
|
|
69
|
-
| ------------- | ------------------------------------------------------------------ |
|
|
70
|
-
| **Visit cap** | A number from 1 to 100. If you do not set it, the visit cap is 10. |
|
|
71
|
-
|
|
72
|
-
Set the visit cap in the workflow settings. In the definition of the workflow, the field is
|
|
73
|
-
`maxNodeVisits`.
|
|
74
|
-
|
|
75
|
-
A node can get to the visit cap. If the run then gets to the node again, the run stops.
|
|
76
|
-
The run shows `Failed`, with the code `loop_limit_reached` and the ID of the node. Refer to [How to retry a failed call with a loop](/how-to/retry-a-failed-call-with-a-loop).
|
|
77
|
-
|
|
78
|
-
When you save a workflow, Picked refuses these loops:
|
|
79
|
-
|
|
80
|
-
- A loop that does not have a sleep node on it.
|
|
81
|
-
- A loop that does not have a condition node on it.
|
|
82
|
-
- An edge from a node to the same node.
|
|
83
|
-
- A loop with the **Action response** node on it.
|
|
84
|
-
|
|
85
|
-
## Records
|
|
86
|
-
|
|
87
|
-
The **Records** card lists each lead that the run created or changed. It shows each lead
|
|
88
|
-
one time.
|
|
89
|
-
|
|
90
|
-
| Label | Meaning |
|
|
91
|
-
| --------- | -------------------------------------------------------------------------------------------------- |
|
|
92
|
-
| `Created` | A node of the run created the lead. This label replaces `Updated` for the same lead. |
|
|
93
|
-
| `Updated` | A node of the run changed the lead or its labels. |
|
|
94
|
-
| `Deleted` | A node of the run deleted the lead. This label replaces `Created` and `Updated` for the same lead. |
|
|
95
|
-
|
|
96
|
-
When a lead does not exist now, the card shows `Deleted lead` and the ID of the lead,
|
|
97
|
-
with no link.
|
|
98
|
-
|
|
99
|
-
## Tasks
|
|
100
|
-
|
|
101
|
-
A task is one visit to a node. The **Tasks** card lists the tasks in the order that the
|
|
102
|
-
run reached them. When the run visits a node more than one time, each visit is a task.
|
|
103
|
-
A task of a later visit shows the number of the visit, such as `visit 2`.
|
|
104
|
-
|
|
105
|
-
The card shows 50 tasks. **Show more tasks** adds the next 50.
|
|
106
|
-
|
|
107
|
-
| Column | Value |
|
|
108
|
-
| ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
109
|
-
| Name | The tool of a tool node, or the kind of node: **Start**, **Condition** or **Wait**. |
|
|
110
|
-
| Node | The ID of the node. It links to the node in the editor while the workflow has the node. |
|
|
111
|
-
| Status | `Running`, `Succeeded` or `Failed`. |
|
|
112
|
-
| Time | The time from the start of the task to its end. |
|
|
113
|
-
| Operations | The leads and the labels that the task created, changed or removed, the first operation first. A label shows its namespace and its key. It never shows its value. |
|
|
114
|
-
|
|
115
|
-
A condition task does not show which branch it chose.
|
|
116
|
-
|
|
117
|
-
## Labels
|
|
118
|
-
|
|
119
|
-
The **Labels** card shows the labels of the run. A user with `ORGANIZATION_PROJECTS_UPDATE` can
|
|
120
|
-
change, add and remove them. Refer to [Labels in the dashboard](/reference/dashboard/labels#labels-in-the-dashboard).
|
|
121
|
-
|
|
122
|
-
## Leads and runs
|
|
123
|
-
|
|
124
|
-
A lead lists a run when a node of that run created the lead, set one of its labels, or
|
|
125
|
-
removed one of its labels. A change to the labels of a lead is a change to the lead.
|
|
126
|
-
|
|
127
|
-
The **Workflow runs** card shows 20 runs. **Show older runs** adds the next 20.
|
|
128
|
-
|
|
129
|
-
## Access
|
|
130
|
-
|
|
131
|
-
| Surface | Scopes |
|
|
132
|
-
| -------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
133
|
-
| Runs, Run | `ORGANIZATION_WORKSPACE_READ` and `ORGANIZATION_PROJECTS_READ` |
|
|
134
|
-
| The labels of a run | `ORGANIZATION_PROJECTS_READ` to read them, and `ORGANIZATION_PROJECTS_UPDATE` to change them |
|
|
135
|
-
| The **Runs** tab of the workflow | `ORGANIZATION_WORKSPACE_READ` and `ORGANIZATION_PROJECTS_READ`. Without these scopes, the workflow does not show the **Runs** tab. |
|
|
136
|
-
| Workflow runs card | `ORGANIZATION_LEADS_READ` for the lead, and `ORGANIZATION_WORKSPACE_READ` and `ORGANIZATION_PROJECTS_READ` for its runs. Without the last two scopes, the card does not show. |
|
|
137
|
-
|
|
138
|
-
## Deleted workflows
|
|
139
|
-
|
|
140
|
-
A run stays after you delete its workflow. The run page and the lead card show it as
|
|
141
|
-
**Deleted workflow**. The **Runs** page of a deleted workflow does not exist, and the run
|
|
142
|
-
page has no link to the editor.
|
|
@@ -1,182 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: reference
|
|
3
|
-
layout: docs
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Workflow templates
|
|
7
|
-
|
|
8
|
-
A template is text with `{{ … }}` in it. Picked fills it with data from the run before the
|
|
9
|
-
node uses it. A tool node can have a template in each of its fields. A condition node can
|
|
10
|
-
have a template in a text value of its rule.
|
|
11
|
-
|
|
12
|
-
## Data that a template reads
|
|
13
|
-
|
|
14
|
-
| Root | Data | Example |
|
|
15
|
-
| ----------------- | ---------------------------------------------------------------------- | -------------------------------- |
|
|
16
|
-
| `trigger` | The event or the action that started the run. | `trigger.action.responses.email` |
|
|
17
|
-
| `nodes.<node-id>` | The output of the last visit to a tool node. Refer to [Loops](#loops). | `nodes.n2.leads[0].id` |
|
|
18
|
-
| `run` | The run. Refer to [Variables](#variables). | `run.startedAt` |
|
|
19
|
-
| `workflow` | The workflow. Refer to [Variables](#variables). | `workflow.name` |
|
|
20
|
-
| `current` | The node that reads the data. Refer to [Variables](#variables). | `current.visit` |
|
|
21
|
-
|
|
22
|
-
A template writes an index as `[0]`, such as `leads[0].id`. The `var` operator of a rule
|
|
23
|
-
reads the same paths, and writes an index as a segment, such as `leads.0.id`.
|
|
24
|
-
|
|
25
|
-
In the editor, the **Insert reference** button of a field shows the data that the node can
|
|
26
|
-
read. The **Previous steps** tab shows `trigger` and `nodes`. The **Variables** tab shows
|
|
27
|
-
`run`, `workflow` and `current`.
|
|
28
|
-
|
|
29
|
-
## Variables
|
|
30
|
-
|
|
31
|
-
| Path | Type | Value |
|
|
32
|
-
| ------------------- | ------------- | ----------------------------------------------------------------------------------------- |
|
|
33
|
-
| `run.id` | Text | The ID of the run, such as `wkrun_…`. In a test run, the ID of the test run. |
|
|
34
|
-
| `run.startedAt` | Text | The time that Picked recorded the run. In a test run, the time that the test run started. |
|
|
35
|
-
| `run.preview` | True or false | True for a run of the draft from a preview of the workspace, and for a test run. |
|
|
36
|
-
| `workflow.id` | Text | The ID of the workflow. |
|
|
37
|
-
| `workflow.name` | Text | The name of the workflow. |
|
|
38
|
-
| `current.id` | Text | The ID of the node that reads the variable. |
|
|
39
|
-
| `current.startedAt` | Text | The time that the node started. If the node starts again, the time of the last start. |
|
|
40
|
-
| `current.visit` | Number | The number of the visit to the node, from 1. On a loop, each visit adds 1. |
|
|
41
|
-
|
|
42
|
-
A time is ISO 8601 in UTC, such as `2026-10-12T21:30:00.000Z`. The `date` filter changes the
|
|
43
|
-
format and the timezone.
|
|
44
|
-
|
|
45
|
-
Picked sets `run.startedAt` and `run.preview` one time, when it records the run. All the
|
|
46
|
-
nodes of the run read the same values.
|
|
47
|
-
|
|
48
|
-
Picked gets the `current` values when the node starts, and records the result of the node:
|
|
49
|
-
|
|
50
|
-
- When a run continues after a stop, Picked uses the recorded results of the nodes that ran.
|
|
51
|
-
It does not run these nodes again.
|
|
52
|
-
- If a node stops before Picked records its result, Picked starts the node again. The node
|
|
53
|
-
gets a new `current.startedAt`.
|
|
54
|
-
- Picked does not start a failed node again. The run continues on the error exit of the node,
|
|
55
|
-
or stops at the node. Refer to the
|
|
56
|
-
[Workflow runs reference](/reference/dashboard/workflow-runs#run-status).
|
|
57
|
-
- When the `retry` argument of an **External API** node is on, the node can send its request
|
|
58
|
-
more than one time. Each request uses the values that the node got when it started.
|
|
59
|
-
|
|
60
|
-
When you save a workflow, Picked refuses a path below `run`, `workflow` or `current` that is
|
|
61
|
-
not in this table. It also refuses `run`, `workflow` or `current` without a path below it.
|
|
62
|
-
The error shows the path.
|
|
63
|
-
|
|
64
|
-
## Loops
|
|
65
|
-
|
|
66
|
-
A run can visit a node more than one time, on a loop. The path `nodes.<node-id>` gives the output of
|
|
67
|
-
the last visit to that node that has a result. This is a visit that succeeded, or a visit
|
|
68
|
-
that failed with an error.
|
|
69
|
-
|
|
70
|
-
A node can read a node that comes after it on the loop. On the first visit, that node did
|
|
71
|
-
not run, so the path has no value. In a condition, the value is `null`. In the editor,
|
|
72
|
-
**Insert reference** shows these nodes with `(from the previous pass)`.
|
|
73
|
-
|
|
74
|
-
## Templates in a condition
|
|
75
|
-
|
|
76
|
-
A text value in a rule can have a template. Picked fills the template before it checks the
|
|
77
|
-
rule.
|
|
78
|
-
|
|
79
|
-
| Value | Result |
|
|
80
|
-
| -------------------------------------------------------- | ------------------------------------------------- |
|
|
81
|
-
| Only one `{{ … }}`, such as `"{{ nodes.n2.count }}"` | The value with its type. A number stays a number. |
|
|
82
|
-
| Text with a `{{ … }}` in it, such as `"id-{{ run.id }}"` | Text. |
|
|
83
|
-
| Only one `{{ … }}`, with no value | `null`. |
|
|
84
|
-
|
|
85
|
-
A value that is only one `{{ … }}` must give text, a number, `true`, `false` or `null`. If it
|
|
86
|
-
gives a list or an object, the condition stops with the code `condition_failed`. Text with a
|
|
87
|
-
`{{ … }}` in it always gives text, also when the `{{ … }}` gives a list.
|
|
88
|
-
|
|
89
|
-
Picked fills all the templates of a rule before it checks the rule. This includes a template
|
|
90
|
-
in a part of `if`, `and` or `or` that the rule does not use. A template that gives a list or
|
|
91
|
-
an object stops the condition, also when the rule does not use that part.
|
|
92
|
-
|
|
93
|
-
A template in the rule of `map`, `filter`, `reduce`, `all`, `some` or `none` reads the data of
|
|
94
|
-
the run. Picked fills it one time, before it checks the rule. It does not read the item.
|
|
95
|
-
|
|
96
|
-
In a rule, only `{{` starts a template. A text value with only `{% … %}` in it stays as you
|
|
97
|
-
write it. In a field of a tool node, `{% … %}` also starts a template.
|
|
98
|
-
|
|
99
|
-
These values cannot have a template. Picked refuses the workflow when you save it:
|
|
100
|
-
|
|
101
|
-
- The path of `var`.
|
|
102
|
-
- The pattern and the flags of `regexp_matches`.
|
|
103
|
-
- The message of `throw`.
|
|
104
|
-
|
|
105
|
-
When you save a workflow, Picked checks each path in a template of a rule. It checks them as
|
|
106
|
-
it checks a template in a tool node.
|
|
107
|
-
|
|
108
|
-
## The `sha256` filter
|
|
109
|
-
|
|
110
|
-
The `sha256` filter changes a value to its SHA-256 hash. The hash has 64 characters. Each
|
|
111
|
-
character is a digit or a lowercase letter from `a` to `f`. You can use the filter in a tool
|
|
112
|
-
node and in a rule.
|
|
113
|
-
|
|
114
|
-
| Value | Result |
|
|
115
|
-
| ------------------------------ | ------------------------------------------------------------------------- |
|
|
116
|
-
| Text | The hash of the text in UTF-8. Picked does not remove spaces in the text. |
|
|
117
|
-
| A number, `true` or `false` | The hash of the value as text. The number `42` gives the hash of `"42"`. |
|
|
118
|
-
| No value, `null` or empty text | Empty text. |
|
|
119
|
-
| A list or an object | The template stops. |
|
|
120
|
-
|
|
121
|
-
The filter does not take an argument. A template that gives an argument to the filter stops.
|
|
122
|
-
|
|
123
|
-
When a template stops, its node stops:
|
|
124
|
-
|
|
125
|
-
- A tool node stops with a message that ends in `a template could not be rendered`. The node
|
|
126
|
-
does not use its error exit.
|
|
127
|
-
- A condition stops with the code `condition_failed`.
|
|
128
|
-
|
|
129
|
-
Picked does not have the `hmac_sha256` filter. When you save a workflow, Picked refuses a
|
|
130
|
-
template that uses it.
|
|
131
|
-
|
|
132
|
-
### A hash as a label key
|
|
133
|
-
|
|
134
|
-
The namespace and the key of a label row can have a template. A hash fits the format of a
|
|
135
|
-
label key. A namespace or a key has 1 to 64 characters, and a hash has 64 characters. A key
|
|
136
|
-
that has a hash cannot have other text. Put other text in the namespace, for example
|
|
137
|
-
`cms-lock-email`.
|
|
138
|
-
|
|
139
|
-
When you save a workflow, Picked does not check the format of a namespace or a key that has a
|
|
140
|
-
template. Picked checks the result when the node runs. If the result is not a correct namespace
|
|
141
|
-
or key, the node stops. The node does not use its error exit.
|
|
142
|
-
|
|
143
|
-
An empty key is not correct. Put the `default` filter before `sha256` when the template can
|
|
144
|
-
give no value:
|
|
145
|
-
|
|
146
|
-
```
|
|
147
|
-
{{ trigger.action.responses.email | default: run.id | sha256 }}
|
|
148
|
-
```
|
|
149
|
-
|
|
150
|
-
## Example: a rule for a time of day
|
|
151
|
-
|
|
152
|
-
This rule is true on days 1 to 5 of the week, from 08:00 to 16:59, in the timezone
|
|
153
|
-
`Australia/Sydney`:
|
|
154
|
-
|
|
155
|
-
```json
|
|
156
|
-
{
|
|
157
|
-
"and": [
|
|
158
|
-
{ "<=": ["{{ current.startedAt | date: '%u', 'Australia/Sydney' | plus: 0 }}", 5] },
|
|
159
|
-
{ ">=": ["{{ current.startedAt | date: '%H', 'Australia/Sydney' | plus: 0 }}", 8] },
|
|
160
|
-
{ "<": ["{{ current.startedAt | date: '%H', 'Australia/Sydney' | plus: 0 }}", 17] }
|
|
161
|
-
]
|
|
162
|
-
}
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
- `%u` gives the ISO day of the week, from 1 to 7.
|
|
166
|
-
- `%H` gives the hour, from `00` to `23`.
|
|
167
|
-
- `plus: 0` changes the text to a number.
|
|
168
|
-
|
|
169
|
-
The offset of `Australia/Sydney` from UTC changes two times each year. The `date` filter
|
|
170
|
-
follows the offset that applies on the date of the time.
|
|
171
|
-
|
|
172
|
-
| Node started at, in UTC | Time in `Australia/Sydney` | Branch |
|
|
173
|
-
| ----------------------- | ----------------------------- | ------- |
|
|
174
|
-
| `2026-10-12T21:30:00Z` | Day 2, 08:30, offset `+11:00` | `true` |
|
|
175
|
-
| `2026-06-12T21:30:00Z` | Day 6, 07:30, offset `+10:00` | `false` |
|
|
176
|
-
|
|
177
|
-
## Related
|
|
178
|
-
|
|
179
|
-
- [Workflow test runs](/reference/dashboard/workflow-test-runs) — run the draft of a
|
|
180
|
-
workflow one time, and see the values that each node read.
|
|
181
|
-
- [How to call an external API from a workflow](/how-to/call-an-external-api-from-a-workflow)
|
|
182
|
-
— read the answer of a call in a later node.
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: reference
|
|
3
|
-
layout: docs
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Workflow test runs
|
|
7
|
-
|
|
8
|
-
A test run runs the draft of a workflow one time, with the trigger input that you give.
|
|
9
|
-
It shows what each node did. It saves nothing, so you can test a change before you
|
|
10
|
-
publish it.
|
|
11
|
-
|
|
12
|
-
## Where to start a test run
|
|
13
|
-
|
|
14
|
-
| Page | Address | Content |
|
|
15
|
-
| -------- | ----------------------------- | ------------------------------------------------------------------------------- |
|
|
16
|
-
| Test run | `…/workflows/<workflow>/test` | The trigger form and the result. Open it with the **Test** tab of the workflow. |
|
|
17
|
-
|
|
18
|
-
You must have the scope `ORGANIZATION_WORKSPACE_UPDATE` and each scope that the workflow
|
|
19
|
-
uses. The page names each scope that you do not have.
|
|
20
|
-
|
|
21
|
-
## Trigger input
|
|
22
|
-
|
|
23
|
-
| Trigger | Input | Meaning |
|
|
24
|
-
| ------- | ------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
25
|
-
| Action | One input for each action field | The answer to that field. Nodes read it as `trigger.action.responses.<key>`. If a field is empty and not required, the run sends no answer for it. |
|
|
26
|
-
| Event | **Entity ID** | The entity that the event is about. Nodes read it as `trigger.entityId`. An empty field uses the workspace. |
|
|
27
|
-
|
|
28
|
-
Each action field gets the input for its type:
|
|
29
|
-
|
|
30
|
-
| Field | Input |
|
|
31
|
-
| ---------------------- | -------------------------------------------------- |
|
|
32
|
-
| Text | A text box. |
|
|
33
|
-
| Number | A number box. The value must be a number. |
|
|
34
|
-
| True or false | A checkbox. |
|
|
35
|
-
| Record | A box for JSON. The value must be valid JSON. |
|
|
36
|
-
| Field with options | A list to choose one option. |
|
|
37
|
-
| Field with many values | Checkboxes for options, or one value on each line. |
|
|
38
|
-
|
|
39
|
-
A required field must have a value before the test run starts.
|
|
40
|
-
|
|
41
|
-
## What runs
|
|
42
|
-
|
|
43
|
-
| Node | In a test run |
|
|
44
|
-
| -------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
|
|
45
|
-
| Tool that reads, such as **Search leads** or an **External API** `GET` or `HEAD` | Runs. |
|
|
46
|
-
| Tool that writes, such as **Create lead**, **Set lead labels** or an **External API** `POST` | Does not run. The result shows the input that it would send. |
|
|
47
|
-
| **Set run labels** and **Remove run labels** | Do not run, because Picked does not keep a test run. The result shows the input that they would send. |
|
|
48
|
-
| **Get run** | Runs, and gives the ID of the test run, which starts with `test_`, and no labels. |
|
|
49
|
-
| Condition | Runs, and shows the branch that it took. |
|
|
50
|
-
| Wait | Does not wait. |
|
|
51
|
-
|
|
52
|
-
A later node that reads the output of a skipped node gets no value.
|
|
53
|
-
|
|
54
|
-
A test run does not wait on a loop. It goes around the loop until a condition takes the
|
|
55
|
-
exit, or until a node gets to the visit cap. Each visit shows as a node of the result, and
|
|
56
|
-
a later visit shows its number, such as `visit 2`. Refer to the
|
|
57
|
-
[workflow runs reference](/reference/dashboard/workflow-runs#visit-cap).
|
|
58
|
-
|
|
59
|
-
## Result
|
|
60
|
-
|
|
61
|
-
| Status | Meaning |
|
|
62
|
-
| ----------- | ------------------------------------------------ |
|
|
63
|
-
| `Succeeded` | The node did its work. |
|
|
64
|
-
| `Skipped` | The tool writes, so the test run did not run it. |
|
|
65
|
-
| `Failed` | The node failed, and shows the reason. |
|
|
66
|
-
|
|
67
|
-
When a node fails, the test run stops at that node and shows `Failed`. If an edge leaves
|
|
68
|
-
the error exit of the node, the test run continues on that edge as a run does, and can
|
|
69
|
-
show `Completed`. Refer to the [workflow runs reference](/reference/dashboard/workflow-runs#run-status).
|
|
70
|
-
|
|
71
|
-
Each node shows its input and its output. A test run does not show in **Runs**, and it
|
|
72
|
-
does not create or change leads or labels.
|
|
73
|
-
|
|
74
|
-
## Run variables
|
|
75
|
-
|
|
76
|
-
A test run gives its own values to `run.id`, `run.startedAt` and `run.preview`. Refer to
|
|
77
|
-
[Workflow templates](/reference/dashboard/workflow-templates#variables).
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: reference
|
|
3
|
-
layout: docs
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
import { Screenshot } from '../../../../components/Screenshot'
|
|
7
|
-
|
|
8
|
-
# Workspace versioning
|
|
9
|
-
|
|
10
|
-
When you publish, Picked makes an immutable snapshot of your workspace. A project
|
|
11
|
-
always serves exactly one version, the *live* version. A roll-back moves the live
|
|
12
|
-
pointer of the project to an earlier snapshot. It changes no data.
|
|
13
|
-
|
|
14
|
-
<Screenshot
|
|
15
|
-
route="/{orgSlug}/{projectId}/publish-history"
|
|
16
|
-
alt="The Publish history page with published workspace versions and the Live and Restore actions"
|
|
17
|
-
hide={['[data-testid="version-row-relative-time"]']}
|
|
18
|
-
/>
|
|
19
|
-
|
|
20
|
-
## Publish history
|
|
21
|
-
|
|
22
|
-
The **Publish history** page lists each published version of every workspace in the
|
|
23
|
-
project, the newest first. The version that Picked serves now carries a **Live**
|
|
24
|
-
badge.
|
|
25
|
-
|
|
26
|
-
## Related
|
|
27
|
-
|
|
28
|
-
- [About workspaces and versions](/explanation/workspaces-and-versions) — why a roll-back
|
|
29
|
-
changes no data.
|
|
30
|
-
- [How to roll back a published version](/how-to/roll-back-a-published-version)
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: reference
|
|
3
|
-
layout: docs
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
import { Screenshot } from '../../../../components/Screenshot'
|
|
7
|
-
|
|
8
|
-
# Workspaces
|
|
9
|
-
|
|
10
|
-
A workspace is one version of the configuration of your project. Use a workspace to hold
|
|
11
|
-
a change, to see a preview of it, and to publish it when it is ready.
|
|
12
|
-
|
|
13
|
-
<Screenshot
|
|
14
|
-
route="/{orgSlug}/{projectId}/workspaces"
|
|
15
|
-
alt="The workspaces list inside a project on the Picked dashboard"
|
|
16
|
-
hide={['[data-testid="workspace-row-relative-time"]']}
|
|
17
|
-
/>
|
|
18
|
-
|
|
19
|
-
## How workspaces work
|
|
20
|
-
|
|
21
|
-
Each project has a workspace that holds your experiences, feature flags, steps, fields,
|
|
22
|
-
actions, and conditions. When you make a change in the dashboard, that change stays in
|
|
23
|
-
the workspace until you publish it. A change to a flow, to a feature flag, or to a step
|
|
24
|
-
all behave the same way.
|
|
25
|
-
|
|
26
|
-
A workspace is in one of three states:
|
|
27
|
-
|
|
28
|
-
- **Live** — the workspace that the SDK serves to your visitors. Each project has
|
|
29
|
-
exactly one live workspace.
|
|
30
|
-
- **Draft** — a workspace that no visitor sees. You can edit a draft, see a preview
|
|
31
|
-
of it, and publish it to make it live.
|
|
32
|
-
- **Archived** — a draft that you put to one side. An archived workspace is still
|
|
33
|
-
editable, but it does not appear in the default workspaces list.
|
|
34
|
-
|
|
35
|
-
## Change previews
|
|
36
|
-
|
|
37
|
-
The publish modal shows a side-by-side change preview. It compares the current
|
|
38
|
-
workspace against the last published snapshot. Use it to see exactly what your
|
|
39
|
-
visitors get after you publish.
|
|
40
|
-
|
|
41
|
-
<Screenshot
|
|
42
|
-
route="/{orgSlug}/{projectId}/workspaces/{workspaceId}/experiences?action=publish"
|
|
43
|
-
alt="The publish modal with a change preview of added experiences, steps, and conditions"
|
|
44
|
-
selector='[role="dialog"]'
|
|
45
|
-
wait='[role="dialog"]'
|
|
46
|
-
hide={['[data-testid="publish-diff-replaces-version"]']}
|
|
47
|
-
renderWidth={720}
|
|
48
|
-
renderHeight={579}
|
|
49
|
-
/>
|
|
50
|
-
|
|
51
|
-
The preview puts the changes into groups: experiences, feature flags, steps, fields,
|
|
52
|
-
actions, and conditions. Each row shows whether the record was **added**, **removed**,
|
|
53
|
-
or **modified**. For a modified record, expand the row to see which properties changed.
|
|
54
|
-
|
|
55
|
-
Some changes break other records. An example is a field that you remove while other
|
|
56
|
-
steps still point at it. The change preview shows a banner above the diff for these
|
|
57
|
-
entries, so that you can look at them again before you publish.
|
|
58
|
-
|
|
59
|
-
The first publish of a workspace has no earlier snapshot to compare against. The
|
|
60
|
-
publish modal shows the contents of the workspace as the first publish, with no diff.
|
|
61
|
-
|
|
62
|
-
## Unpublished changes
|
|
63
|
-
|
|
64
|
-
The workspace records whether anything changed since the last publish. The toolbar then
|
|
65
|
-
shows a warning badge. It counts a change to any of these:
|
|
66
|
-
|
|
67
|
-
- An experience or a feature flag.
|
|
68
|
-
- A step, a field, an action, or a condition.
|
|
69
|
-
|
|
70
|
-
## Related
|
|
71
|
-
|
|
72
|
-
- [About workspaces and versions](/explanation/workspaces-and-versions) — why a draft and
|
|
73
|
-
a version are separate.
|
|
74
|
-
- [How to see a preview of a workspace](/how-to/preview-a-workspace)
|
|
75
|
-
- [How to publish a workspace](/how-to/publish-a-workspace)
|
|
76
|
-
- [How to archive or delete a workspace](/how-to/archive-or-delete-a-workspace)
|