diff --git a/site/faq/faq-inventory.qmd b/site/faq/faq-inventory.qmd index cbe623d9dd..5ab9888aa9 100644 --- a/site/faq/faq-inventory.qmd +++ b/site/faq/faq-inventory.qmd @@ -27,6 +27,10 @@ categories: ["inventory", "record registration", "inventory customization", "rec By default, the [{{< fa code >}} Developer]{.bubble} role[^2] has sufficient permissions to register records. +## Can submitters register records before the final inventory type is known? + +Yes. When Record Intake is enabled, the **Intake** holding inventory record type lets submitters register a record first; a classification workflow (or an admin) then converts it in place to the correct type, or rejects and archives it.^[[Record Intake](/guide/inventory/record-intake.qmd)] + ## Are registration questionnaires customizable? - Yes, along with default fields provided by {{< var vm.product >}} as part of your basic record (model) information, you can add additional record information and make these custom fields required when creating records.[^3] diff --git a/site/guide/_sidebar.yaml b/site/guide/_sidebar.yaml index 62b615481b..98a9483bd2 100644 --- a/site/guide/_sidebar.yaml +++ b/site/guide/_sidebar.yaml @@ -87,6 +87,7 @@ website: contents: - guide/inventory/manage-inventory-record-types.qmd - guide/inventory/manage-inventory-fields.qmd + - guide/inventory/record-intake.qmd - text: "Working with the inventory" file: guide/inventory/working-with-the-inventory.qmd contents: diff --git a/site/guide/inventory/archive-delete-records.qmd b/site/guide/inventory/archive-delete-records.qmd index 93d98b8254..30c3dd2f0b 100644 --- a/site/guide/inventory/archive-delete-records.qmd +++ b/site/guide/inventory/archive-delete-records.qmd @@ -66,6 +66,8 @@ c. Click **Yes, Archive Record** to confirm archival of that record. Archived records can be reactivated to make them available for use again in the inventory. +For **Intake** records, admins can also use **Reject intake** on the record overview to archive the submission with a required reason without converting it to another inventory record type.^[[Record Intake](record-intake.qmd#reject-intake)] + #### Activate records a. Select any stage other than Archived from the **{Record} Stage** drop-down menu where `{Record}` is the type of record. diff --git a/site/guide/inventory/manage-inventory-record-types.qmd b/site/guide/inventory/manage-inventory-record-types.qmd index e1f44f8017..790fd4e036 100644 --- a/site/guide/inventory/manage-inventory-record-types.qmd +++ b/site/guide/inventory/manage-inventory-record-types.qmd @@ -27,6 +27,20 @@ date: last-modified {{< include /guide/inventory/_add-edit-record-types.qmd >}} +## Enable Intake + +If Record Intake is available for your organization, you can seed the opt-in **Intake** holding inventory record type from this page: + +1. In the left sidebar, click **{{< fa gear >}} Settings**. + +2. Under {{< fa cube >}} Inventory, select **Inventory Record Types**. + +3. Click **Enable Intake**. + +Intake becomes available for registration and classification workflows. The Intake slug is reserved and cannot be changed. + +**Learn more:** [Record Intake](record-intake.qmd) + ## Enable or disable record types {{< include /guide/inventory/_enable-disable-record-types.qmd >}} diff --git a/site/guide/inventory/record-intake.qmd b/site/guide/inventory/record-intake.qmd new file mode 100644 index 0000000000..62eec3d122 --- /dev/null +++ b/site/guide/inventory/record-intake.qmd @@ -0,0 +1,132 @@ +--- +# Copyright © 2023-2026 ValidMind Inc. All rights reserved. +# Refer to the LICENSE file in the root of this repository for details. +# SPDX-License-Identifier: AGPL-3.0 AND ValidMind Commercial +title: "Record Intake" +description: "Enable the Intake holding type, classify submissions with workflows, convert records in place, and reject intake when needed." +date: last-modified +--- + +Use **Record Intake** when non-expert submitters need a simple path to register a new system, and specialists later classify it into the correct inventory record type (for example Agent, Model, or Tool). + +Intake is an opt-in holding inventory record type. Records keep the same identifier when they convert, so activity history continues on the converted record. + +::: {.callout} +## Availability + +Record Intake appears in {{< var vm.product >}} only when it is available for your organization. If you do not see **Enable Intake** under Inventory Record Types, contact {{< var vm.product >}} Support. +::: + +::: {.attn} + +## Prerequisites + +- [x] {{< var link.login >}} +- [x] You are a [{{< fa hand >}} Customer Admin]{.bubble} or assigned another role with sufficient permissions to perform the tasks in this guide.[^1] + +::: + +## Enable Intake + +1. In the left sidebar, click **{{< fa gear >}} Settings**. + +2. Under {{< fa cube >}} Inventory, select **Inventory Record Types**. + +3. Click **Enable Intake**. + + {{< var vm.product >}} seeds the **Intake** inventory record type (including its governed **Awaiting Classification** stage) and makes it available for registration. + +4. Confirm that **Intake** appears in the list of inventory record types and is not disabled.^[[Enable or disable record types](manage-inventory-record-types.qmd#enable-or-disable-record-types)] + +::: {.callout} +## Intake slug is reserved + +The Intake URL slug (`intake`) is reserved and cannot be changed when you edit the Intake record type. +::: + +## Register Intake records + +1. In the left sidebar, click **{{< fa cubes >}} Inventory**. + +2. Select **Intake Inventory** (or the Intake view in the inventory record type selector). + + When Intake is enabled and you have not yet chosen an inventory view, {{< var vm.product >}} can open the **Intake** view on first visit so submitters land in the right place. + +3. Click **Register {Record}** where `{Record}` is Intake, and complete the registration fields configured for Intake.^[[Register records in the inventory](register-records-in-inventory.qmd)] + +Submitting an Intake record is recorded in record activity as an intake submission.^[[View record activity](/guide/reporting/view-record-activity.qmd)] + +::: {.callout} +## Documents and artifacts after conversion + +While a record is still Intake, document and artifact navigation for that record is hidden. Those surfaces become available after the record converts to its real inventory record type. +::: + +## Configure an Intake classification workflow + +Classify Intake records with a workflow scoped to the **Intake** inventory record type:^[[Configure workflows](/guide/workflows/configure-workflows.qmd)] + +1. Collect the information reviewers need (for example with **{{< fa arrow-pointer >}} User Action**, **{{< fa maximize >}} Condition Branch**, and **{{< fa users >}} Approval** steps).^[[Workflow step types](/guide/workflows/workflow-step-types.qmd)] + +2. Finish the path with an **{{< fa layer-group >}} Inventory Record Type Change** step that converts the record in place to the target type. + + - The step is available in the workflow builder for **Intake** workflows. + - Choose a fixed target type, or resolve the target from a field value at runtime. + - Set **Classification Method** to **Automated routing** or **Manual review** so record activity records how the type was assigned. + - Target options exclude Intake and disabled inventory record types. + +3. Publish the workflow.^[[Configure workflows](/guide/workflows/configure-workflows.qmd#publish-workflow)] + +After conversion, {{< var vm.product >}} can start matching workflows on the target inventory record type that listen for a record-type-changed trigger (best effort). The record URL updates to the new inventory record type so you stay on the converted record instead of seeing a "not found" error. + +## Change inventory record type + +Admins can reclassify a record without waiting for the classifier workflow: + +1. Open the record overview. + +2. Click **Change inventory record type**. + +3. Select the **New inventory record type**. Intake cannot be selected as a migrate target. + +4. (Optional) Enter a **Reason** for the activity history. + +5. Review the compatibility preview, acknowledge any warnings, and confirm **Change inventory record type**. + +The change keeps the same record identifier and continues the activity history on the new type. + +## Reject intake + +If an Intake submission should not be converted: + +1. Open the Intake record overview. + +2. Click **Reject intake**. + +3. Enter a **Reason** (for example duplicate or out of scope). + +4. Click **Reject and archive**. + +Rejecting archives the Intake record via its reserved **Archived** stage without converting it. The record remains available under the archived filter, and the reason is preserved in activity.^[[Archive and delete records](archive-delete-records.qmd)] + +## Track Intake activity + +On the record **{{< fa wifi >}} Activity** page, Intake lifecycle events can include:^[[View record activity](/guide/reporting/view-record-activity.qmd)] + +- Submitted for intake +- Classified or reclassified (from type → to type), including whether assignment used automated routing, manual review, or an admin change, and how many fields carried over +- Rejected and archived, with the reason + +When classification ran through a workflow, use **View workflow execution** to open the related execution on the record's Workflows tab. + +## What's next + +- [Manage inventory record types](manage-inventory-record-types.qmd) +- [Workflow step types](/guide/workflows/workflow-step-types.qmd#inventory-record-type-change) +- [Configure workflows](/guide/workflows/configure-workflows.qmd) +- [View record activity](/guide/reporting/view-record-activity.qmd) + + + + +[^1]: [Manage permissions](/guide/configuration/manage-permissions.qmd) diff --git a/site/guide/inventory/register-records-in-inventory.qmd b/site/guide/inventory/register-records-in-inventory.qmd index b535f7ac49..d25b0152f7 100644 --- a/site/guide/inventory/register-records-in-inventory.qmd +++ b/site/guide/inventory/register-records-in-inventory.qmd @@ -12,6 +12,8 @@ tbl-cap-location: bottom Register records with {{< var vm.product >}} as the first step towards streamlining your organization's risk management oversight. +When Record Intake is enabled for your organization, submitters can also register records under the **Intake** holding type for later classification.^[[Record Intake](record-intake.qmd#register-intake-records)] + ::: {.attn} ## Prerequisites diff --git a/site/guide/inventory/setting-up-the-inventory.qmd b/site/guide/inventory/setting-up-the-inventory.qmd index e108b251d1..a46f196244 100644 --- a/site/guide/inventory/setting-up-the-inventory.qmd +++ b/site/guide/inventory/setting-up-the-inventory.qmd @@ -14,6 +14,7 @@ listing: contents: - manage-inventory-record-types.qmd - manage-inventory-fields.qmd + - record-intake.qmd --- Set up the {{< var validmind.platform >}} to support your organization's requirements by customizing what record types and associated fields are available in the inventory. diff --git a/site/guide/inventory/working-with-the-inventory.qmd b/site/guide/inventory/working-with-the-inventory.qmd index 5bed54c6b6..97885f1318 100644 --- a/site/guide/inventory/working-with-the-inventory.qmd +++ b/site/guide/inventory/working-with-the-inventory.qmd @@ -13,6 +13,7 @@ listing: fields: [title, description] contents: - register-records-in-inventory.qmd + - record-intake.qmd - customize-inventory-layout.qmd - edit-inventory-fields.qmd - customize-record-overview-page.qmd diff --git a/site/guide/reporting/_view-record-activity-overview.qmd b/site/guide/reporting/_view-record-activity-overview.qmd index 9884a359cd..2ede9ee88b 100644 --- a/site/guide/reporting/_view-record-activity-overview.qmd +++ b/site/guide/reporting/_view-record-activity-overview.qmd @@ -12,4 +12,5 @@ The record **{{< fa wifi >}} Activity** page shows a history of activities for t - User comment creation and replies on documents - Stakeholders added or removed - Workflow activity +- Record Intake lifecycle events when Intake is enabled — submitted for intake, classified or reclassified (including automated routing, manual review, or admin changes), and rejected and archived^[[Record Intake](/guide/inventory/record-intake.qmd#track-intake-activity)] diff --git a/site/guide/workflows/_conditional-requirements.qmd b/site/guide/workflows/_conditional-requirements.qmd index 609183e810..a1cd90cfe3 100644 --- a/site/guide/workflows/_conditional-requirements.qmd +++ b/site/guide/workflows/_conditional-requirements.qmd @@ -8,6 +8,15 @@ Conditional requirements are required or optional for the following step types:^ ### {{< fa cube >}} Inventory Record Stage Change [optional]{.smallercaps .pink} +1. Under **When These Conditions Are Met**, set your `AND` and `OR` conditions. +2. Add a single independent rule or a linked condition group. These rules and groups can be nested if desired: + + - Click **{{< fa plus >}} Add Rule** to add an independent rule. + - Click **{{< fa plus-minus >}} Add Group** to add a linked group of rules that all must be true to qualify. + +### {{< fa layer-group >}} Inventory Record Type Change [optional]{.smallercaps .pink} + + 1. Under **When These Conditions Are Met**, set your `AND` and `OR` conditions. 2. Add a single independent rule or a linked condition group. These rules and groups can be nested if desired: @@ -179,6 +188,8 @@ Configure conditional requirements for the following step types: - {{< fa cube >}} Inventory Record Stage Change **[optional]{.smallercaps}** +- {{< fa layer-group >}} Inventory Record Type Change **[optional]{.smallercaps}** + - {{< fa tag >}} Artifact Status Change **[optional]{.smallercaps}** - {{< fa arrow-pointer >}} User Action **[optional]{.smallercaps}** diff --git a/site/guide/workflows/_workflow-step-types.qmd b/site/guide/workflows/_workflow-step-types.qmd index c98c76d31e..3439190617 100644 --- a/site/guide/workflows/_workflow-step-types.qmd +++ b/site/guide/workflows/_workflow-step-types.qmd @@ -16,6 +16,20 @@ SPDX-License-Identifier: AGPL-3.0 AND ValidMind Commercial --> | **Set Inventory Record Stage To** | Select the record stage to transition to. | : **{{< fa cube >}} Inventory Record Stage Change** step configuration {.hover tbl-colwidths="[40,60]"} +### {{< fa layer-group >}} Inventory Record Type Change + + +- Converts a record to a different inventory record type in place (same record identifier; activity history continues).^[[Record Intake](/guide/inventory/record-intake.qmd)] +- Available when configuring workflows for the **Intake** inventory record type. +- Target options exclude Intake and disabled inventory record types. + +| Field | Description | +|---:|---| +| **When These Conditions Are Met** (optional) | Add conditional requirements to qualify for this step.^[[Conditional step requirements](/guide/workflows/conditional-step-requirements.qmd#inventory-record-type-change)] | +| **Target Inventory Record Type** | Choose **A fixed type**, or **From a field value** so the target is read from a record field at runtime (the field value should be a record-type slug such as `agent`, or the type id). | +| **Classification Method** | Select **Automated routing** or **Manual review**. Recorded in record activity as how the inventory record type was assigned. | +: **{{< fa layer-group >}} Inventory Record Type Change** step configuration {.hover tbl-colwidths="[40,60]"} + ### {{< fa tag >}} Artifact Status Change @@ -261,6 +275,10 @@ Sends a HTTP request with optional additional conditions.^[[Conditional step req Transitions a record into another stage. +#### {{< fa layer-group >}} Inventory Record Type Change + +Converts a record to a different inventory record type in place (for example Intake → Agent). + #### {{< fa tag >}} Artifact Status Change Transitions an artifact into another status.