Free cookie consent management tool by TermsFeed

Record Knowledge Graph Component

On This Page

Displays a record and its related records as an interactive knowledge graph.

The record knowledge graph component renders a visual diagram starting from a single record (such as a Customer named "Amelia Richardson") and shows configured related data, like the customer's orders, their status, and the order priority. End users can search across the graph, zoom in and out of relationship levels, and click records to explore their connections.

Scroll or drag to pan · ⌘+/⌘− to zoom · Esc to closeimages/record-knowledge-graph-cluster.gif

Where to use the record knowledge graph component

Use a!recordKnowledgeGraph() in the following components:

You can't use a!recordKnowledgeGraph() in the following components:

Parameters

a!recordKnowledgeGraph( recordType, recordIdentifier, enableLevelSlider, label, labelPosition, helpTooltip, accessibilityText, marginAbove, marginBelow, relationshipLevel, excludedRelatedRecords, includedRelatedRecords, showWhen, height, showMiniMap, selectionSaveInto )

Name Keyword Types Description

Record Type

recordType

Record Type

The base record type for the diagram. The record type must be referenced using the recordType! domain. For example, recordType!Customer.

Record Identifier

recordIdentifier

Any Type

The identifier of the record to display in the diagram. This is typically the value of the primary key field.

Enable Level Slider

enableLevelSlider

Boolean

Determines whether end users can progressively expand relationship levels using a slider. When true, the graph initially renders at level 1 (the base record and its immediate relationships) and displays a slider that lets users expand up to the configured relationshipLevel value. When false, all levels up to the configured relationshipLevel render on initial load with no depth slider. Default: false.

Label

label

Text

The text to display as the diagram label.

Label Position

labelPosition

Text

Determines where the label appears. Valid values: "ABOVE" (default), "ADJACENT", "JUSTIFIED", "COLLAPSED".

Help Tooltip

helpTooltip

Text

Displays a help icon with the specified text as a tooltip. The tooltip displays a maximum of 500 characters. The help icon does not show when the label position is "COLLAPSED".

Accessibility Text

accessibilityText

Text

Additional text to be announced by screen readers. Used only for accessibility; produces no visible change.

Margin Above

marginAbove

Text

Determines how much space is added above the component. Valid values: "NONE" (default), "EVEN_LESS", "LESS", "STANDARD", "MORE", "EVEN_MORE".

Margin Below

marginBelow

Text

Determines how much space is added below the component. Valid values: "NONE", "EVEN_LESS", "LESS", "STANDARD" (default), "MORE", "EVEN_MORE".

Relationship Level

relationshipLevel

Number (Integer)

The number of relationship levels to display from the base record type. A value of 1 displays only the related record types configured on the base record type. A value of 2 adds the relationships configured on each related record type. Default: 3. Maximum: 10.

Excluded Related Records

excludedRelatedRecords

Any Type

The related records to exclude from the knowledge graph. Use this parameter to hide specific relationships that would otherwise display. This parameter overrides includedRelatedRecords; if a related record is specified in both parameters, the record is excluded. Valid values include a record type reference (recordType!Order) or a relationship reference (recordType!Customer.relationships.order).

Included Related Records

includedRelatedRecords

Any Type

The related records to include in the knowledge graph. When configured, only the specified related records display. The relationshipLevels parameter applies to the specified records. Valid values include a record type reference or a relationship reference. Valid values include a record type reference (recordType!Order) or a relationship reference (recordType!Customer.relationships.order).

Show When

showWhen

Boolean

Determines whether the component is displayed on the interface. When set to false, the component is hidden and its contents are not evaluated. Default: true.

Height

height

Text

Determines the diagram height. Valid values: "SHORT", "MEDIUM", "TALL", "AUTO" (default).

Show Mini Map

showMiniMap

Boolean

Determines whether to display a mini map in the bottom corner of the graph. Default: true.

Selection Save Into

selectionSaveInto

Save

Accepts local variables to save the selected record's information. When a user clicks a record in the knowledge graph, the component saves the record type reference, record type display name, record title, and record identifier into the configured variable. You can pass this information into other interface components.

Using the record knowledge graph component

The following sections cover important details about configuring and using the record knowledge graph component.

Record type requirements

The recordType parameter must reference a record type using the recordType! domain (for example, recordType!Customer).

The record knowledge graph component supports both synced and unsynced record types. Legacy record types are not supported because they do not support record type relationships.

Record names in the graph

The base record and any related records display two elements:

Scroll or drag to pan · ⌘+/⌘− to zoom · Esc to closeimages/record-title-display-name.png

  • Record type display name: Shown as secondary text. The display name based on the configuration in the record type's Properties.
  • Record title: Shown in bold and populated based on the record title configuration.

Configure a meaningful record title and display name on each record type so records are easy to identify in the graph.

The record knowledge graph component can display a maximum of 500 related records. If a record has many relationships across multiple levels, the record knowledge graph may reach this limit.

To avoid exceeding the 500-record limit, you can:

  • Reduce the relationshipLevel parameter to a lower value.
  • Use the excludedRelatedRecords parameter to omit certain related records from the diagram.

Control which records appear in the graph

By default, the record knowledge graph component displays all related records up to three relationship levels deep.

You can control which records appear using different parameters:

  • Change the relationship depth: Set the relationshipLevel parameter to control how many levels of relationships the component traverses from the base record type. By default, the value is 3. The relationshipLevel value also sets the maximum depth for the relationship level slider.
  • Hide specific relationships: Use the excludedRelatedRecords parameter to remove relationships you don't want to show.
  • Highlight specific relationships: Use the includedRelatedRecords parameter to show only certain related records. When configured, the graph displays the specified related records and any intermediate records needed to connect the base record to each specified record. The relationshipLevel parameter determines how far the graph extends. If you specify a record type that is not related to the base record type within the configured relationship level, only the base record displays.

Note:  If a related record is specified in both excludedRelatedRecords and includedRelatedRecords, the record is excluded.

Using the relationshipLevels parameter

Each relationship level represents one "hop" from the base record type through its configured relationships. A relationshipLevel value of 1 shows only the record types directly related to the base record type. A value of 2 adds the relationships configured on those related record types, and so on, up to a maximum of 10.

The relationshipLevel parameter also sets the maximum depth for the relationship level slider. The relationshipLevel value defines how deep the graph can go, and the enableLevelSlider parameter determines if end users can adjust the relationship levels displayed in the graph.

The following example illustrates how relationship levels map to a data model in the record knowledge graph, starting from the RE Order record type:

Scroll or drag to pan · ⌘+/⌘− to zoom · Esc to closeimages/relationshipLevel-example-knowledge-graph.png

Relationship level Related records displayed from
1 RE Customer
2 RE Customer, RE District
3 RE Customer, RE District, RE Warehouse
4 RE Customer, RE District, RE Warehouse, RE Stock

The excludedRelatedRecords and includedRelatedRecords parameters accept either a record type reference (recordType!RE Order) or a relationship reference (recordType!RE Customer.relationships.order).

Use a relationship reference to exclude related records directly related to the base record type. Use a record type reference to omit related records from a nested relationship.

Using the enableLevelSlider parameter

The enableLevelSlider parameter controls whether end users can interactively explore different relationship depths in the record knowledge graph.

Scroll or drag to pan · ⌘+/⌘− to zoom · Esc to closeimages/relationshipLevel-slider-knowledge-graph.png

  • When enableLevelSlider is true: The graph renders at depth 1 on initial load, hiding deeper relationships. Users adjust the slider to expand up to the configured relationshipLevel value.
  • When enableLevelSlider is false (default): The graph renders all levels up to the configured relationshipLevel on initial load.

Using the selectionSaveInto parameter

The selectionSaveInto parameter lets you capture information about a record when a user clicks one in the graph. You can use the record information to pass the data to another component or process, such as displaying record details in a side panel. See Save a selection to display record details for an example.

To use this parameter, create a local variable in your interface to store the selected record's information. Then, configure the value of the selectionSaveInto parameter to use your local variable.

You can index into the following properties of the local variable to access individual record details:

Property Description
recordTypeReference The unique identifier (UUID) of the record type of the clicked record.
recordTypePluralName The plural display name configured in the record type properties.
recordTitle The title of the specific record.
recordIdentifier The primary key value of the record.

Using the showMiniMap parameter

By default, the showMiniMap parameter is true, so a small satellite view of the record knowledge graph appears at the bottom of the component. The mini map helps users orient themselves as they pan and zoom through the graph.

Consider the complexity of your graph when deciding whether to show the mini map:

  • Show the mini map (default) when the graph displays multiple relationship levels, many related records, or is placed in a tall container where users are likely to pan and zoom.
  • Hide the mini map when the graph is small or simple enough that all records fit in view without panning, or when screen space is limited and you want to maximize the area dedicated to the graph itself.

Scroll or drag to pan · ⌘+/⌘− to zoom · Esc to closeimages/showminimap-record-knowledge-graph.png

End-user interactions

The record knowledge graph provides several interactive features that let end users explore the graph without additional developer configuration.

Grouped one-to-many records

When a one-to-many relationship produces more than one related record, the record knowledge graph automatically groups them into a single visual element.

Each group displays up to 10 records by default. End users can view additional records, search within a group, and select individual records to explore their relationships on the graph or see their summary view.

Scroll or drag to pan · ⌘+/⌘− to zoom · Esc to closeimages/record-knowledge-graph-cluster.gif

The excludedRelatedRecords and includedRelatedRecords parameters affect which records appear in groups. If a related record type is excluded, records of that type do not appear. If includedRelatedRecords is configured, only records of the included types appear.

Search records in the graph

The record knowledge graph provides two levels of search:

Scroll or drag to pan · ⌘+/⌘− to zoom · Esc to closeimages/rkg-search-options.png

# Description
Graph search Search across all records visible in the record knowledge graph.
Group search Search within a grouped set of records.

View a record summary

End users can click the icon on a record in the graph to view its summary view. The summary view option is only available if the record type has a summary view configured.

For records in a one-to-many group, the user must first select a record from the group so it displays as its own record in the graph. The icon is then available on the selected record.

Appian Mobile considerations

The record knowledge graph component is not supported in Appian Mobile. If you include a!recordKnowledgeGraph() in an interface displayed on Appian Mobile, the component does not render.

Examples

The following examples demonstrate the record knowledge graph component.

These examples illustrate how data displays in the record knowledge graph using the following data model:

Scroll or drag to pan · ⌘+/⌘− to zoom · Esc to closeimages/examples-datamodel-knowledge-graph.png

In each example, the recordIdentifier is provided by a rule input (ri!customer), which points to a specific record in the AT Customer record type.

These examples reference record types from a different environment and will error if you try to use them in yours. Use them as a reference only.

This example displays all the related records from the relationships configured on the base record type (AT Customer).

Scroll or drag to pan · ⌘+/⌘− to zoom · Esc to closeimages/rkg-example1.png

1
2
3
4
5
6
7
8
9
10
11
12
13
{
  a!recordKnowledgeGraph(
    label: "Customer Relationships",
    recordType: recordType!AT Customer,
    recordIdentifier: ri!customer[recordType!AT Customer.fields.id],
    /* Only displays related data from the */
    /* relationships configured on AT Customer */
    relationshipLevel: 1,
    showMiniMap: false,
    enableLevelSlider: false,
    height: "MEDIUM"
  )
}

This example displays all the related records from the relationships configured on the base record type (AT Customer), but excludes the AT Customer Event History record type so it doesn't appear in the record knowledge graph.

Scroll or drag to pan · ⌘+/⌘− to zoom · Esc to closeimages/rkg-example2.png

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
  a!recordKnowledgeGraph(
    label: "Customer Relationships",
    recordType: recordType!AT Customer,
    recordIdentifier: ri!customer[recordType!AT Customer.fields.id],
    /* Only displays related data from the */
    /* relationships configured on AT Customer */
    relationshipLevel: 1,
    /* Removes record type from the graph */
    excludedRelatedRecords: {
      recordType!AT Customer.relationships.eventHistory,
    },
    showMiniMap: false,
    enableLevelSlider: false,
    height: "MEDIUM"
  )
}

This example displays only the orders related to the customer. Any other related records, like industry and event history, are not displayed on the graph because they are not explicitly referenced in the includedRelatedRecords parameter.

Scroll or drag to pan · ⌘+/⌘− to zoom · Esc to closeimages/rkg-example3.png

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
  a!recordKnowledgeGraph(
    label: "Related Customer Data",
    labelPosition: "COLLAPSED",
    recordType: recordType!AT Customer,
    recordIdentifier: ri!customer[recordType!AT Customer.fields.id],
    relationshipLevel: 1,
    /* Only displays related orders from the */
    /* relationship configured on AT Customer */
    includedRelatedRecords: {
      recordType!AT Customer.relationships.orders,
    },
    showMiniMap: false,
    enableLevelSlider: false,
    height: "MEDIUM"
  )
}

Save a selection to display record details

This example uses the selectionSaveInto parameter to capture the clicked record's information and display the record details in a side panel next to the graph.

This example also uses the enableLevelSlider parameter to render the record knowledge graph at depth 1 on initial load. Users can expand relationship levels interactively using the depth control slider, up to the configured relationshipLevel value of 4.

Scroll or drag to pan · ⌘+/⌘− to zoom · Esc to closeimages/rkg-example6.png

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
{
  a!localVariables(
    local!selectedRecord,
    a!columnsLayout(
      columns: {
        a!columnLayout(
          contents: {
            a!recordKnowledgeGraph(
              label: "Customer Relationships",
              labelPosition: "COLLAPSED",
              recordType: recordType!AT Customer,
              recordIdentifier: ri!customer[recordType!AT Customer.fields.id],
              relationshipLevel: 4,
              excludedRelatedRecords: {
                recordType!AT Customer.relationships.eventHistory
              },
              /* Saves the clicked record's information */
              /* into a local variable */
              selectionSaveInto: local!selectedRecord,
              height: "TALL",
              /* Starts the graph at depth 1 so users */
              /* can expand levels using the slider */
              enableLevelSlider: true,
            )
          }
        ),
        a!columnLayout(
          width: "NARROW_PLUS",
          contents: {
            a!sectionLayout(
              label: "Selected Record Details",
              contents: {
                if(
                  a!isNullOrEmpty(local!selectedRecord),
                  a!richTextDisplayField(
                    labelPosition: "COLLAPSED",
                    value: a!richTextItem(
                      text: "Click a record in the graph to view its details.",
                      style: "EMPHASIS"
                    )
                  ),
                  {
                    a!textField(
                      label: "Record Type",
                      value: local!selectedRecord.recordTypePluralName,
                      readOnly: true
                    ),
                    a!textField(
                      label: "Record Name",
                      value: local!selectedRecord.recordTitle,
                      readOnly: true
                    ),
                    a!textField(
                      label: "Record Identifier",
                      value: local!selectedRecord.recordIdentifier,
                      readOnly: true
                    )
                  }
                )
              }
            )
          }
        )
      }
    )
  )
}

Feature compatibility

The table below lists this component's compatibility with various features in Appian.
Feature Compatibility Note
Portals Incompatible
Offline Interfaces Incompatible
Sync-Time Custom Record Fields Incompatible
Real-Time Custom Record Fields Incompatible

Custom record fields that evaluate in real time must be configured using one or more Custom Field functions.

Process Reports Incompatible

Cannot be used to configure a process report.

Process Events Incompatible

Cannot be used to configure a process event node, such as a start event or timer event.

Process Autoscaling Incompatible

Cannot be used in autoscaled processes.

Event Consumer Filter Conditions Incompatible

Cannot be used in filter conditions.

Event Consumer Event Handlers Incompatible

Cannot be used in event handler expressions.

Feedback