Before you start
Make sure you have the following:- A project registered in CDF.
- The Cognite API and the CDF application registered in Microsoft Entra ID and Microsoft Entra ID and CDF groups set up to control access to CDF data.
- Data in the CDF project, an asset-centric data model must be in place.
- URLs in your allowlist.
Set up access
You can use your existing identity provider (IdP) framework to manage access to InField and choose admin users. We currently support Microsoft Entra ID, Microsoft’s cloud-based identity and access management service. By creating groups, you can assign different sets of capabilities to users and thus give different access rights to each group.Create an admin group
Create a group of users who can configure the InField application across all locations.Navigate to Manage access
Create a group
applications-configuration.Assign capabilities
read and write access to all capabilities with the scope All, or have the minimum set of capabilities.| Capability type | Action | Scope | Description |
|---|---|---|---|
| Assets | assets: read | All | View asset data from the CDF project that InField runs on top of. |
| Groups | groups: read, groups: list | All | For InField administrators to grant access to users. |
| 3D | 3D: read | All | Upload 3D models to display in InField. |
| Data sets | datasets: read | All | Get data from work order management system, such as SAP, and work orders. |
| Data models | dataModel: read | All | Organize and structure data. |
| Data model instances | dataModelInstance:read | All | Access data organized in data models. |
| Data model instances | dataModelInstance:write | cognite_app_data, APM_Config | Access and edit data organized in data models and spaces. |
Create standard user groups
Create groups of users who can view checklists, administer checklists and templates, and work with checklists in the field. You can create similar groups for different locations. The groups can have the same capabilities but different access based on the group name.Read only access
Create a group of users who can view but not edit checklists. You can name the groupinfield_dev_location_viewers, where dev is the InField environment, and location is the location that the group will have access to.
| Capability type | Action | Scope | Description |
|---|---|---|---|
| Groups | groups: read, groups: list | All | View user groups. |
| Assets | assets: read | asset_datasets | View and analyze asset details. |
| 3D | 3D: read | threed_datasets | View and analyze 3D models. |
| Files | files: read | files_datasets, infield_app_data_dataset | View and analyze images and files. |
| Relationships | relationships: read | relationship_datasets | View relationships between assets. |
| Time series | timeseries: read | timeseries_datasets, infield_app_data_dataset | View and analyze time series data. |
| Data models | dataModel: read | APM_Config , cdf_apm , cdf_infield , cdf_core , cdf_apps_shared , apm_source_datamodel_space- the space where the APM_SourceData model is defined | View and analyze the data created in InField. |
| Data model instances | dataModelInstance:read | APM_Config , cdf_apm , cognite_app_data , location_app_data_space , location_source_data_space | View and analyze the data created in InField. |
| Data model instances | dataModelInstance:write | cognite_app_data | Access and edit data organized in data models and spaces. |
Read and write access
Create a group of users who can administer checklists and templates and work with checklists in the field. This can be a single group for all users or 3 different groups. If you create 3 separate groups, you can use the following naming suggestions.| Name | Description |
|---|---|
infield_dev_location_checklist_admins | Users in this group can create, update, delete, and approve checklists in the specified location (location) and environment (dev). |
infield_dev_location_template_admins | Users in this group can create, update, and delete templates in the specified location (location) and environment (dev). They can also create, update, and delete observations and send them to SAP. |
infield_dev_location_checklist_users | Users in this group can work with checklists and create observations in the specified location (location) and environment (dev). |
- Read only capabilities.
- The following write capabilities:
| Capability type | Action | Scope | Description |
|---|---|---|---|
| Files | files: write | infield_app_data_dataset | View and edit documents and files. |
| Relationships | relationships: write | infield_app_data_dataset | Relationships represent connections between pairs of CDF resources. |
| Data model instances | dataModelInstance:write | location_app_data_space | Access and edit data organized in data models and spaces. |
| Time series | timeseries: write | timeseries_datasets, infield_app_data_dataset | View, create, and edit time series data. |
Navigate to Template/checklist admins
Assign groups and save
SAP writeback (optional)
Assign the SAP writeback capability to the standard user groups to let them send observations to SAP.| Capability type | Action | Scope | Description |
|---|---|---|---|
| SAP writeback requests | sapwritebackrequests: write, sapwritebackrequests: list | All | Create requests to send data, such as work orders, assets, and observations, to SAP. |
Create data modeling spaces
InField has two ways of storing assets: classic asset hierarchy and asset data modeling. You need to create at least 5 spaces to store your data and data models.| Space name | Description |
|---|---|
cognite_app_data | This space holds user data, such as user profiles. |
APM_Config | This space holds configurations in Asset Performance Management (APM). |
APM_SourceData | This space holds the schemas/data models for the data types that should be stored in the yourRootLocation_source_data space. |
yourRootLocation_source_data | This space holds space data (data coming from a customer source system, such as SAP) for a particular location. |
yourRootLocation_app_data | This space holds data coming from InField (from checklists and templates) for a particular location. |
ApmAppData | You don’t need to set up or change this space. ApmAppData is a system data model that’s present in all projects by default. The data model has the System tag. |
- All 5 spaces with the Cognite Python SDK.
- 3 spaces with the Cognite API and 2 spaces manually in the Cognite Data Fusion (CDF) or automatically by using the script.
Spaces created with SDK
You can create all 5 spaces using Cognite Python SDK. Use the following Python code and replaceyourRootLocation with your root location/asset name in yourRootLocation_source_data, yourRootLocation_app_data.
Create spaces
Create spaces
Spaces created with API
Create the following 3 spaces using the API endpoint:cognite_app_datayourRootLocation_source_datayourRootLocation_app_data
space and name attributes. The space attribute is also the space ID.
Replace yourRootLocation with your root location/asset name in yourRootLocation_source_data, yourRootLocation_app_data.
APM_Config and APM_SourceData are the spaces that you can create manually in CDF or automatically by running the script. You create these spaces by creating corresponding data models.
To create the spaces manually:
Navigate to Create data model
Name the data model
APM_Config and add a description if needed.Create new space
Name the space
APM_Config.APM_SourceData data model and space.
To create the spaces automatically:
- Run the scripts in the repository for
APM_ConfigandAPM_SourceDatato automatically deploy these data models for your project.
Add a scheduling function
With the scheduling function, users can create checklists from template tasks based on the schedule. To add the scheduling function:- Go to the GitHub repository and follow the manual deployment process instructions.
AWS cluster
If you are on the AWS cluster and you want to enable file upload to it, add your project to the feature flag.Configure APM_Config in CDF
A data model is an abstract model that organizes data elements and standardizes how they relate to one another and the properties of real-world entities. The CDF data model collects industrial data by resource types that let you define the data elements, specify their attributes, and model the relationships between them. The different resource types are used to both store and organize data.
To create the APM_Config model and the corresponding space:
Navigate to APM_Config model
Paste the model code
APM_Config model data code snippet.APM_Config model
APM_Config model
Create transformations
Populate your locations with asset data. As you already have a classic asset hierarchy in place, you can use transformations to convert this data into assets in data modeling. Read about data transformation and how to transform data in CDF. First, create a transformation via the API or SDK since certain functionality is unavailable in CDF. For the code snippets, change the key for theinstanceSpace attribute to yourRootLocation_source_data you created earlier. Ensure the parameters in the view object remain unchanged.
API code snippet
API code snippet
SDK code snippet
SDK code snippet
Select the transformation
migrate-classic-asset-to-core-asset transformation.Update the SQL editor
location_source_data_instance_space with your location_space (the space you created via the API in the beginning), and the configured_location_externalId with the externalId of your root asset.Preview the transformation
Comment out relations
Run the transformation
Run again with relations
Configure a root location
Add Root Location
Add a location
Edit and configure

Features
Configure what features your users can access and what asset details they can see in the asset explorer.Configure features
| Feature | Description |
|---|---|
| Templates and checklists | Create templates, create checklists out of a template or its tasks, assign checklists to disciplines, view and analyze the collected data on the Overview page. |
| Work orders | Create checklists from a work order or its tasks that come from a work management system and view and analyze the collected data on the Overview page. |
| Observations | Create observations on malfunctioning equipment or record other issues. When this feature is turned on, you can customize the fields on the observation form on the Observations tab. Provide external IDs for the Notifications and Attachments endpoints. You’ll have these IDs when you create an SAP instance in the new write-back service. |
| Write-back to SAP | Send an observation copy as a Notification to SAP. Make sure that you provide external IDs for the Notifications and Attachments endpoints. |
Configure Asset explorer cards
Save configuration
3D
Set up 3D models for your location to view them on the 3D card on the asset overview page. To display a 3D model on the 3D card:- Under Full weight model, select Add 3d model. The 3D model must already exist in CDF.
Data set
Add the data set ID from a previously created data set that stores data (time series and files) created in InField. The time series created in InField gets a metadata field (source=APP) to identify its origin.
When adding a numerical reading, you can connect it to the time series created directly in InField and the time series stored in the data set for the selected location.
Checklist and template admins (optional)
Specify groups of users who can create and edit templates (template admins) and who can view and approve checklists (checklist admins). If you don’t select any group, all users will have the same access.AppData Instance Space
Enter the name of the space you created (yourRootLocation_app_data) to hold data on templates, checklists, and observations created in the application.
SourceData Instance Space
Enter the name of the space you created (yourRootLocation_source_data) to hold data on assets, work orders, notifications, and other APM-related types.
To display work orders on the Work orders card:
- Upload the work orders into the configured space. Make sure that:
assetExternalIdis set to the correct assetcloneOf=nullsourceis NOTAPPspace=yourRootLocation_source_data
Navigate to Activities
Configure filters
Configure custom data filters
Custom data filtering lets you configure locations to see data from several asset subtrees and root assets in asset hierarchy and from data modeling service. You can filter on general data that includes all data types. You can also filter individually on assets, time series, and files. To get access to data filtering:Navigate to Custom data filtering
Create new configuration version
APM_Config model and select Create. This will create a copy of the existing model and add new fields to allow custom data filtering. All data configured in APM_Config will be available in the new instance.Add general asset IDs
Configure asset filters
Configure time series filters
Configure file filters
- Under General, add external IDs of the assets you want to filter on in addition to your default root location. Make sure your root location and the root locations that you add belong to the same space.
Observations
Once you turn on the Observations feature, you can customize the observation form fields for your users to collect the most relevant data on malfunctioning equipment. Go to Application configuration > Root location > Edit asset > Observations. Here, you’ll have a default list of fields the users will need to fill out when creating an observation. You can change these fields according to your needs and make them required or not.| Section name | Description |
|---|---|
| Media | Users can attach a video or an image in this field. The maximum file size to upload is 50 MB. |
| Description | Users can give details about what happened and where. |
| Asset | Users can select an asset that’s faulty or needs attention. |
| Priority | Users can select how critical the issue is and how quickly it must be resolved. |
| Type | Users can select the type of observation. |
| Troubleshooting | Users can describe the actions they’ve taken to resolve the issue. |
- The left-hand options aren’t visible to users. These options should match those in your work management system (write-back service), and they’ll be stored in CDF. If you’ve turned on the write-back to SAP, it will be also sent as a Notification to SAP.
- The right-hand options are visible to users. You can customize these options and use the preferred language for each location.
Configure APM_SourceData in CDF
APM_SourceData holds the schema for the data that comes from the customer source systems, such as SAP.
InField uses the following data model entities:
| Data entity | View | Description |
|---|---|---|
| Asset | cdf_core.Asset | Preconfigured and can’t be modified. |
| Maintenance orders (work orders/activities) | Apm_SourceData.CogniteMaintenanceOrder | Must be populated and can be modified. See Populate data models. |
| Operations | Apm_SourceData.Operations | Must be populated and can be modified. See Populate data models. |
| Notifications | Apm_SourceData.Notification | Must be populated and can be modified. See Populate data models. |
| Files (P&IDs) | cdf_core.File | Preconfigured and can’t be modified. |
| Annotations (file contextualization) | cdf_core.DiagramAnnotation (edge) | Preconfigured and can’t be modified. |
| 3D | Ingested through 3D APIs | Preconfigured and can’t be modified. |
Populate data models
Populate the data model:Navigate to APM_SourceData model
Paste data types code
APM_Activity, APM_Notification, and APM_Operation types.Data types to populate the model
Data types to populate the model
Add custom columns
TheAPM_Activity data type has a default set of columns with sorting and filtering. You can also add custom columns that will be fetched dynamically.
To add custom columns along with their filtering and sorting:
Find APM_Activity data type
APM_SourceDatadata model, find the APM_Activity data type.Add column name
APM_Activity type, for example, ID:. The names provided aren’t translated.Configure data types for filtering and sorting
- Use the
Datedata type for sorting, for example,ID: Date. Index these fields to ensure efficient sorting, specifically with large data sets. - Use the
Stringor[String]data types for filtering, for example,ID: StringorID:[String]. Index these fields to ensure efficient filtering, specifically with large data sets.
Publish updates
Run transformations
Once you’ve populated theAPM_SourceData model, you can run a transformation for each data type.
Create new transformation
Select target data model
APM_SourceData as your target data model.Select target space
yourRootLocation_source_data as your target space.Select target type
APM_Activity as your target type.Enter transformation values
APM_Activity transformation
APM_Activity transformation
APM_Notification and APM_Operation types.
APM_Notification transformation
APM_Notification transformation
APM_Operation transformation
APM_Operation transformation
APM_SourceData space.
Configure an asset overview page
To see the asset overview page, select the asset you’re interested in. The page has several cards that contain data on the selected asset. Two of the cards you’ve configured when configuring the root location settings are 3D and Work orders. Configure the remaining cards to view the relevant data.

Documents
Enable Documents card
- ‘text/plain’
- ‘text/csv’
- ‘application/json’
- ‘application/pdf’
- ‘image/svg+xml’
Configure document properties
camelCase.Notifications
Enable Notifications card
Configure filters
Properties
Navigate to Asset configuration
Configure properties
externalId of a related asset, for example, a parent or a child asset. Adding them to this list will make them clickable and linked to that asset’s overview page.
The card shows just a few of the configured properties. Expand the card to see the full list of properties.
Media
InField supports the following MIME types (Multimedia Internet Mail Extensions) with a maximum of 100 files per type:- ‘image/png’
- ‘image/jpeg’
- ‘video/quicktime’
- ‘video/mp4’
ChecklistItem view
You can query all media added to a checklist. Adding and removing media displays in the ChecklistItem view in the ApmAppData model. When you query this view, you can receive one of the following values for the files attribute:
files: None- nothing has been populated for the property.files: []- an explicitly empty list has been populated.files: [None]- a list of a single file that was populated once, and that file has since been deleted.
Trends
The trends card displays time series data relevant to the current asset. There are 2 ways of contextualizing a time series; using the first one is recommended:Set assetId field
assetId field of the time series.Create a relationship
assetExternalId.timeSeries.metadata.is_highlighted to true. Only one time series is displayed on the Trends card at a time. Data for the highlighted time series is automatically refreshed every 2 seconds to provide the most recent data.
Additional configurations
Complete the application configuration.Disciplines
Add disciplines to make sure you assign work orders and checklists to field workers who are experts on the particular tasks.AI
Use AI to find information about an asset in the attached documents. Remember that using AI doesn’t guarantee that the answers are always accurate. To make sure the information you receive is accurate:- Make sure the documents are formatted and structured, as AI relies on processed information to search and suggest content.
- Use clear instructions and ask about one thing per question.
- Verify the source of the answers to make sure they’re correct.
Overview: Work orders
A work order can consist of one or several operations. Operations are individual steps in an order or individual tasks in a checklist. Some operations from the work management system, such as SAP, have an order or an operation number. Several operations have the same order/operation number and the same work order number (parentActivityId), which is why one operation in a work order can generate several tasks in a checklist. For example, you have a work order with 2 operations: operation A and operation B. Operation A doesn’t have an order/operation number, and operation B has an order/operation number 10. In your work management system, you have 3 operations with the same order/operation number that belong to the same work order number (parentActivityId). This means that instead of having 1 operation B, that is shown in your work order, you’ll get 3 operations/tasks when you create a checklist from this operation.- In CDF, Data management > Data models > APM_SourceData > APM_Operation.
- In InField, Overview > expand work orders to see what operation number operations have. To check if there’s more than one operation with the same order/operation number, select the work order > Operations.