Skip to main content

Celonis Product Documentation

Knowledge Model - Flags (legacy views only)


Flags can only be used with legacy Views in Studio and aren't supported in the new Studio experience.

For more information about legacy Views, see: Studio feature availability matrix.

When you discover unwanted behavior in your process that impacts business goals (KPIs), you can flag and capture those instances within Celonis. This enables you to identify which execution gaps have to be tackled. These execution gaps are captured as flag objects within the Knowledge Model (KM). Flags are a boolean attritbute that use TRUE or FALSE statements to evaluate underlying data in your KM records.

With the Execution Gap List component, you can give your users an overview of how the flags they have defined in their KM impact certain KPIs. See: Configuring an execution gap list in legacy views.

Prerequisites for creating and using flags

For flags to work correctly you must meet the following prerequisites:

  • The flag must be assigned to a record in the KM.

  • The underlying record must have an identifier defined. You are prompted to create a record identifier when creating a flag if one isn't already defined.

Creating flags in the Knowledge Model

To create flags in the KM:

  1. Click Studio and then open the package containing the KM you want to create the flag in.

  2. Open the KM asset.

  3. Click Flags and select Create Flag.

  4. Configure your flag using the following settings:

    • Record: Select the record you want to assign this flag to. See: Records.

    • Identifier: Select the identifier assign to the record selected above. If no identifier exists, create one. See: Record identifiers (legacy views only).

    • Display Name: A human-readable label used in the user interface.

    • Short Display Name: Shorter human readable label for the object shown automatically on the Views whenever the Display Name is truncated. Can contain max 20 characters.

    • ID: A unique technical identifier used to reference this flag. Must be unique within all attributes in the KM.

    • Description: A human-readable description for the flag.

    • Internal Note: A field only visible within the KM.

    • Flag statement: Use the PQL editor to create your flag statement. Flags are a boolean attritbute that use TRUE or FALSE statements to evaluate underlying data in your KM records.

    • Impacted KPIs: Add the KPIs that are impacted by this flag to calculate the impact. You can display the relationship and the calculated impact for each KPI on a View within the Execution Gap component.

  5. Click Flag Preview and / or Impact Calculation to ensure that your flag works as expected. If not, re-configure the flag and try again.

  6. Click Save.

    The flag is assigned to your KM record and available to use in your related content.

Managing existing Knowledge Model objects

You can manage existing Knowledge Model objects by clicking the Options icon:


You then have the following options per object:

  • Disable scope: By disabling the scope of an object, the object then can't be used anywhere within the package. This is a good option if you want to disable an object but delete it from your KM.

  • Duplicate: This opens the create object window with the configuration of the object you are duplicating used as a template. When saving a duplicate object, the object ID must be unique.

  • Delete: This deletes the object from the KM and any references to that object in existing content. When deleting an object, there is no undo or recovery option.

In YAML, flag objects have the following value declaration format:

      - id: sales_order_automation
        displayName: Sales Order Automation
        pql: "\"O2C_ACTIVITY_TABLE\".\"ACTIVITY_EN\" = 'Create Sales Order'"
  • id: A unique technical identifier used to reference this flag. Must be unique within all flags in the Record.

  • displayName: A human-readable label used in the user interface.

  • description (optional): A human-readable description for the flag.

  • pql: Contains the PQL query that will flag specific rows of your Record if they meet the condition described in this field.

You can also add KPIs that will be impacted by the flags in your Knowledge Model by creating new anomalies. These are added in the anomalies section of the Knowledge Model and have the following value declaration format:

  - id: sales_order_automation_ANOMALY
    displayName: Sales Order Automation
    flag: sales_order_automation
    kpiIds: []
      - id: o2c_automation_rate_undefined
        kpiId: o2c_automation_rate
    knowledgeObjectId: O2C_ACTIVITY_TABLE_ANOMALY
    type: ANOMALY
  • id: Is the unique identifier for the anomaly. Must be unique among all anomalies within the Knowledge Model.

  • displayName: A human-readable label used in the user interface.

  • description(optional): A human-readable description for the impacted KPI.

  • flag: The ID of the flag that will be used with this anomaly.

  • Kpiids (deprecated): Impacted KPI <kpiIds is only used by the deprecated anomaly list component>

  • kpis: List of KPIs impacted in this anomaly, where each of these KPIs has:

    • id: A unique identifier for the KPI in the anomaly.

    • kpiId: Id of the KPI impacted in this anomaly.

    • impactCalculation (optional): The KPI used for the custom impact calculation. Field only needs to be included if the impact calculation will differ from the default method. To learn more about the impact calculation methods you can review the Execution Gap List documentation.

  • knowledgeObjectId: Discloses the ID of the Record that contains the flag. This Record ID is used to link the Execution Gap List to a profile view.

  • type: Contains the type of object.


The KPIs referenced inside the anomaly section must have 'desiredDirection' set. This is used to understand if the impact is positive or negative.

An example configuration for late entered invoices could be defined as the following:

   displayName: "Anomaly: Invoices entered late"
   description: "This Anomaly displays Invoices that were entered late"
       impactCalculation: IMPACT_FOR_PERCENTAGES   
   knowledgeObjectId: "INVOICE"

This anomaly calls the flag FLAG_LATE_ENTERED_INVOICES which was defined inside the Record INVOICE.

    - id: INVOICE     
      displayName: Invoice     
        - id: LATE_ENTERED_INVOICES     
        displayName: Late Entered Invoices

In the definition for a KPI that will be used with a flag, you can specify up to three special pql parameters with the keywords: global, flagged and nonFlagged. These will be populated by the Execution Gap List with the following values:

  • global will be populated with the unfiltered value of the selected KPI in the execution gap list component.

  • flagged will be populated with the value of the KPI when filtering only on Records that have been flagged with the anomaly.

  • nonFlagged will be populated with the value of the KPI when filtering on Records that have not been flagged with the anomaly.

Such as:

    displayName: Impact for percentages
    format: "+.0%"
    pql: "CASE WHEN {p2} > 0.0 THEN ({p2} - {p1}) / {p1} ELSE 0.0 END"
      - id: global 
        displayName: global
        defaultValue: 100
      - id: flagged                            
        displayName: flagged
        defaultValue: 75

As mentioned above, the Execution Gap List Component is used to display the flags: you have created impact certain KPIs. Here is a minimal YAML configuration of such a component within a View:

  - id: Execution Gaps
    type: execution-gap-list
      kpi: "KPI_ON_TIME_PAYMENT"