---
id: object/codeunit/1991
type: object
title: Codeunit 1991 "Guided Experience Impl."
summary: Codeunit 1991 "Guided Experience Impl." in System Application (System.Environment.Configuration). 41 public procedures, 2 event subscribers. Present since at least BC23, still in BC30, changed in BC24-26.
tier: official
language: en
tags:
  - codeunit
  - system application
versions:
  introduced: null
  last_changed: "26"
  deprecated: null
review:
  state: derived
  by: null
  at: null
  flags: []
generated:
  at: "2026-10-11T00:31:51.816Z"
  pipeline: 0.2.0
  prompts: {}
  input_hash: 00b404d685e28c9d7defeb9b63c5df6f2e1cf3edf22b840e0f9c7b4151261d33
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/System%20Application/App/Guided%20Experience/src/Guided%20Experience/GuidedExperienceImpl.Codeunit.al
    title: src/System Application/App/Guided Experience/src/Guided Experience/GuidedExperienceImpl.Codeunit.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
object_type: codeunit
object_id: 1991
name: Guided Experience Impl.
namespace: System.Environment.Configuration
app: System Application
extends: null
first_version: "23"
last_version: "30"
present_in:
  - "23"
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in:
  - "24"
  - "25"
  - "26"
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 0
  procedures: 69
  events: 0
  subscribers: 2
relations:
  out: 0
  referenced_by: 0
  pages: 0
  extended_by: 0
  event_subscribers: 0
  calls: 9
  called_by: 9
  implements: 0
---

# Codeunit 1991 "Guided Experience Impl."

> Codeunit 1991 "Guided Experience Impl." in System Application (System.Environment.Configuration). 41 public procedures, 2 event subscribers. Present since at least BC23, still in BC30, changed in BC24-26.

System Application · System.Environment.Configuration · BC23-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/System%20Application/App/Guided%20Experience/src/Guided%20Experience/GuidedExperienceImpl.Codeunit.al) · facts from BC29

## Properties

| Property | Value |
|---|---|
| Access | Internal |
| Permissions | tabledata AllObj = r, tabledata "Guided Experience Item" = rimd, tabledata "Primary Guided Experience Item" = rimd, tabledata "Spotlight Tour Text" = rimd |

## Event subscriptions

- OnRegisterVideo subscribes to Codeunit "Video" OnRegisterVideo
- OpenRoleBasedSetupExperience subscribes to Codeunit "Navigation Bar Subscribers" OnBeforeDefaultOpenRoleBasedSetupExperience

## Procedures

- `Insert(Title: Text[2048]; ShortTitle: Text[50]; Description: Text[1024]; ExpectedDuration: Integer; ExtensionId: Guid; GuidedExperienceType: Enum "Guided Experience Type"; ObjectTypeToRun: ObjectType; ObjectIDToRun: Integer; Link: Text[250]; AssistedSetupGroup: Enum "Assisted Setup Group"; VideoUrl: Text[250]; VideoCategory: Enum "Video Category"; HelpUrl: Text[250]; ManualSetupCategory: Enum "Manual Setup Category"; Keywords: Text[250]; SpotlighTourType: Enum "Spotlight Tour Type"; SpotlightTourTexts: Dictionary of [Enum "Spotlight Tour Text", Text]; CheckObjectValidity: Boolean)`
- `Insert(Title: Text[2048]; ShortTitle: Text[50]; Description: Text[1024]; ExpectedDuration: Integer; ExtensionId: Guid; GuidedExperienceType: Enum "Guided Experience Type"; ObjectTypeToRun: ObjectType; ObjectIDToRun: Integer; Link: Text[250]; AssistedSetupGroup: Enum "Assisted Setup Group"; VideoUrl: Text[250]; VideoCategory: Enum "Video Category"; HelpUrl: Text[250]; ManualSetupCategory: Enum "Manual Setup Category"; Keywords: Text[250]; SpotlighTourType: Enum "Spotlight Tour Type"; SpotlightTourTexts: Dictionary of [Enum "Spotlight Tour Text", Text]; CheckObjectValidity: Boolean; IsPrimarySetup: Boolean)`
- `OpenManualSetupPage()`
- `OpenManualSetupPage(ManualSetupCategory: Enum "Manual Setup Category")`
- `GetManualSetupPageIDs(var PageIDs: List of [Integer])`
- `AddTranslationForSetupObject(GuidedExperienceObjectType: Enum "Guided Experience Type"; ObjectType: ObjectType; ObjectID: Integer; LanguageID: Integer; TranslatedName: Text; FieldNo: Integer)`
- `RunExtensionSetup(AppId: Guid)`
- `SetupForExtensionExists(AppId: Guid): Boolean`
- `OpenCombinedSetupList(AppId: Guid)`
- `IsAssistedSetupComplete(ObjectTypeToRun: Enum "Guided Experience Object Type"; ObjectID: Integer): Boolean`
- `IsAssistedSetupComplete(ObjectType: ObjectType; ObjectID: Integer): Boolean`
- `Exists(GuidedExperienceType: Enum "Guided Experience Type"; ObjectType: ObjectType; ObjectID: Integer): Boolean`
- `Exists(GuidedExperienceType: Enum "Guided Experience Type"; Link: Text[250]): Boolean`
- `AssistedSetupExistsAndIsNotComplete(ObjectType: ObjectType; ObjectID: Integer): Boolean`
- `CompleteAssistedSetup(ObjectType: ObjectType; ObjectID: Integer)`
- `ResetAssistedSetup(ObjectType: ObjectType; ObjectID: Integer)`
- `Run(GuidedExperienceType: Enum "Guided Experience Type"; ObjectType: ObjectType; ObjectID: Integer)`
- `RunAndRefreshAssistedSetup(var GuidedExperienceItemToRefresh: Record "Guided Experience Item")`
- `OpenAssistedSetup()`
- `OpenAssistedSetup(AssistedSetupGroup: Enum "Assisted Setup Group")`
- `Remove(GuidedExperienceType: Enum "Guided Experience Type"; ObjectType: ObjectType; ObjectID: Integer)`
- `Remove(GuidedExperienceType: Enum "Guided Experience Type"; ObjectType: ObjectType; ObjectID: Integer; SpotlightTourType: Enum "Spotlight Tour Type")`
- `Remove(GuidedExperienceType: Enum "Guided Experience Type"; Link: Text[250])`
- `NavigateToAssistedSetupHelpPage(GuidedExperienceItem: Record "Guided Experience Item")`
- `IsAssistedSetupSetupRecord(GuidedExperienceItem: Record "Guided Experience Item"): Boolean`
- `GetTranslationForField(GuidedExperienceItem: Record "Guided Experience Item"; FieldNo: Integer): Text`
- `GetTranslationForField(GuidedExperienceType: Enum "Guided Experience Type"; ObjectTypeToRun: Enum "Guided Experience Object Type"; ObjectIDToRun: Integer; Link: Text[250]; VideoUrl: Text[250]; SpotlightTourType: Enum "Spotlight Tour Type"; FieldNo: Integer): Text`
- `IsObjectToRunValid(GuidedExperienceObjectType: Enum "Guided Experience Object Type"; ObjectID: Integer): Boolean`
- `IsObjectToRunValid(ObjectType: ObjectType; ObjectID: Integer): Boolean`
- `GetContentForAllSetups(var TempGuidedExperienceItem: Record "Guided Experience Item" temporary)`
- `GetContentForAssistedSetup(var TempGuidedExperienceItem: Record "Guided Experience Item" temporary)`
- `GetContentForManualSetup(var TempGuidedExperienceItem: Record "Guided Experience Item" temporary)`
- `GetContentForSetupPage(var TempGuidedExperienceItem: Record "Guided Experience Item" temporary; GuidedExperienceType: Enum "Guided Experience Type")`
- `GetCode(Type: Enum "Guided Experience Type"; ObjectType: Enum "Guided Experience Object Type"; ObjectID: Integer; Link: Text[250]; VideoUrl: Text[250]; SpotlightTourType: Enum "Spotlight Tour Type"): Code[300]` (internal)
- `InsertTranslations(GuidedExperienceItem: Record "Guided Experience Item"; Title: Text[2048]; ShortTitle: Text[50]; Description: Text[1024]; Keywords: Text[250])`
- `GetObjectTypeToRun(var GuidedExperienceObjectType: Enum "Guided Experience Object Type"; ObjectType: ObjectType)`
- `FilterGuidedExperienceItem(var GuidedExperienceItem: Record "Guided Experience Item"; GuidedExperienceType: Enum "Guided Experience Type"; ObjectType: ObjectType; ObjectID: Integer; Link: Text[250]; VideoUrl: Text[250]; SpotlightTourType: Enum "Spotlight Tour Type")`
- `FilterGuidedExperienceItem(var GuidedExperienceItem: Record "Guided Experience Item"; GuidedExperienceType: Enum "Guided Experience Type"; ObjectType: Enum "Guided Experience Object Type"; ObjectID: Integer; Link: Text[250]; VideoUrl: Text[250]; SpotlightTourType: Enum "Spotlight Tour Type")`
- `GetObjectType(GuidedExperienceObjectType: Enum "Guided Experience Object Type"): ObjectType`
- `RefreshAssistedSetup(var GuidedExperienceItemToRefresh: Record "Guided Experience Item")`
- `AddGuidedExperienceItemDimensions(var Dimensions: Dictionary of [Text, Text]; GuidedExperienceItem: Record "Guided Experience Item"; DimensionName: Text)`

Plus 26 local procedures.

## Calls

From the extracted call graph of BC29 (graphify-al on the snapshot checkout): calls whose target is known from a declared type or an `Object::"Name"` argument. Interface dispatch and calls through events are not counted, so the list is not complete.

- [Codeunit 3711 "Translation"](../codeunit/3711.md) (7 calls: `AddGuidedExperienceItemDimensions → Get`, `AddTranslationForSetupObject → Set`, `InsertExistingTranslationsForSpotlightTour → Copy`, …)
- [Codeunit 1990 "Guided Experience"](../codeunit/1990.md) (5 calls: `GetManualSetupPageIDs → OnRegisterManualSetup`, `OnRegisterVideo → OnRegisterAssistedSetup`, `OpenRoleBasedSetupExperience → OnBeforeOpenRoleBasedAssistedSetupExperience`, …)
- [Codeunit 4100 "Temp Blob"](../codeunit/4100.md) (3 calls: `GetExtensionLogo → CreateOutStream`, `GetIconInStream → CreateInStream`, `GetIconInStream → HasValue`)
- [Codeunit 1993 "Checklist Implementation"](../codeunit/1993.md) (1 call: `Delete → Delete`)
- [Codeunit 3710 "Video"](../codeunit/3710.md) (1 call: `OnRegisterVideo → Register`)
- [Codeunit 43 "Language"](../codeunit/43.md) (1 call: `AddGuidedExperienceItemDimensions → GetDefaultApplicationLanguageId`)
- [Codeunit 8711 "Telemetry"](../codeunit/8711.md) (1 call: `LogMessageOnDatabaseEvent → LogMessage`)
- [Page 1801 "Assisted Setup"](../page/1801.md) (1 call: `OpenAssistedSetup → (object)`)
- [Page 1875 "Manual Setup"](../page/1875.md) (1 call: `OpenManualSetupPage → (object)`)

## Called by

- [Codeunit 1990 "Guided Experience"](../codeunit/1990.md) (22 calls: `AddTranslationForSetupObjectDescription → AddTranslationForSetupObject`, `AddTranslationForSetupObjectShortTitle → AddTranslationForSetupObject`, `AddTranslationForSetupObjectTitle → AddTranslationForSetupObject`, …)
- [Codeunit 1996 "Checklist Banner Impl."](../codeunit/1996.md) (5 calls: `GetTranslationForField → GetTranslationForField`, `IsAssistedSetupComplete → IsAssistedSetupComplete`, `RunObject → IsObjectToRunValid`, …)
- [Page 1801 "Assisted Setup"](../page/1801.md) (5 calls: `OnAfterGetRecord → IsAssistedSetupSetupRecord`, `OnOpenPage → GetContentForAssistedSetup`, `RunPage → IsAssistedSetupSetupRecord`, …)
- [Page 1991 "App Setup List"](../page/1991.md) (4 calls: `OnAfterGetCurrRecord → RunAndRefreshAssistedSetup`, `OnOpenPage → GetContentForAllSetups`, `RunPage → IsAssistedSetupSetupRecord`, …)
- [Codeunit 1993 "Checklist Implementation"](../codeunit/1993.md) (2 calls: `Delete → FilterGuidedExperienceItem`, `LogMessageOnDatabaseEvent → AddGuidedExperienceItemDimensions`)
- [Codeunit 1999 "Guided Experience Upgrade"](../codeunit/1999.md) (2 calls: `InsertSpotlightTourInGuidedExperienceItem → GetCode`, `InsertSpotlightTourInGuidedExperienceItem → InsertTranslations`)
- [Page 1875 "Manual Setup"](../page/1875.md) (2 calls: `OnAfterGetRecord → IsAssistedSetupSetupRecord`, `OnOpenPage → GetContentForManualSetup`)
- [Codeunit 1995 "Checklist Administration"](../codeunit/1995.md) (1 call: `GetObjectCaption → GetObjectType`)
- [Page 1996 "Guided Experience Item List"](../page/1996.md) (1 call: `SetGuidedExperienceType → GetContentForSetupPage`)

## Across versions

- Present in: BC23-30
- Changed (declaration) in: BC24-26

Source: AL metadata extracted from the code (names, ids, signatures, properties); no code bodies (D10).

## Ask your agent

Procedure bodies are not stored here (D10). The call sections above are our own, per object, from the BC29 call graph. For a procedure body or the calls of one procedure, ask bc-code-atlas (external, by Stefan Maron, MIT; default corpus w1-28), which the bc-observatory plugin connects: `bcatlas_resolve_node(object_type: "codeunit", object_name: "Guided Experience Impl.")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
