Skip to main content

Celonis Product Documentation

Extending Celonis object types

You can add custom attributes and custom object to object relationships to extend the Celonis object types. The relationships can be to other Celonis object types, or to custom object types that you’ve created. You can’t extend the Celonis event types.

Modeling objects and events helps you choose whether to use a Celonis object type as it's supplied, extend a Celonis object type by adding extra attributes and relationships for your business needs, or create your own custom object type.

When you publish your extensions to Celonis object types, Celonis automatically updates the tables in the underlying database in the OCPM Data Pool. The extensions also appear in supplied or custom perspectives where the object type is linked - you don’t need to edit the perspectives. Apps that use the perspectives won’t make use of your extensions until you edit the app package in Studio to reflect them, and reload the perspective.

You’ll need to create and run custom SQL transformations to map your extracted business data into your custom attributes and relationships. Creating custom transformations has the instructions to do this. When you’ve done that, you can use the extended objects and events with Celonis features and apps.


Before you start customizing Celonis object types, we recommend you complete the Celonis Academy training track Implement Object-Centric Process Mining, which teaches you how to model objects and events. The course OCPM in Action - Build Object-Centric Data Models (2 hours) has step by step examples for you to work through.

Follow these steps to extend Celonis object types. If you have any problems, check the solutions in Troubleshooting for modeling objects and events.

  1. From the Celonis navigation bar, select Data > Objects and Events.

  2. Select Objects in the top navigation bar to view the existing object types for your Celonis team. Use the search box to search for any object type. From any object type, you can click View in Graph to explore the object type and its related objects visually, and see how it’s used.

  3. Select the name of any object type in the list to see its attributes, relationships to other objects, and relationships to events, and the transformations that you’ve already installed for it. Select Object details and then Relationships to objects, and verify that each attribute or object to object relationship that you want to create isn’t already present.

  4. To add your custom attributes, select Object details.

    1. Click Add to add a new attribute to the object.

    2. Give the attribute a name.


      Here are all the naming rules for object types, event types, and relationships:

      • The name of an object type or event type can’t have any spaces or special characters. Upper and lower case letters and numbers are allowed ([A-Za-z0-9]), and the name must start with a letter.

      • The length limits are 40 characters for the name of an object type or event type, 50 characters for the name of an attribute, and 41 characters for the name of a relationship.

      • The names of properties and relationships must be unique within an object type or event type. Uniqueness is validated case-insensitively.

    3. Select the data type for the property from the Data Type dropdown. The available data types are String, Boolean, Datetime, Integer, and Floating Point.

  5. To add your custom object to object relationships, select Relationships to objects.

    1. Click Add to add a new object to object relationship.

    2. In the search box, start typing all or part of the name of the object type that you want to link to this object, and pick the object type from the list.

    3. Use the Cardinality dropdown to say whether this relationship is many to one (m:1), one to many (1:m), many to many (m:n) with the relationship table as a join table on the source object, or many to many (m:n) with a join table on the target object.


      The object-centric data model doesn't enforce uniqueness of a foreign key, which is why one to one relationships aren't available as a choice now.

    4. By default, we'll create the incoming relationship from the other object as well, to make a bidirectional relationship. If you want the relationship to be unidirectional, where the first object type has a record of the relationship but the second object type involved in it doesn’t, click the trash can icon to delete the incoming relationship.

    5. Give each side of the relationship a name. We’ve prefilled this with the name of the related object, but you can change this if you want. You can't use spaces or special characters. Upper and lower case letters and numbers are allowed. There's a length limit of 41 characters.

  6. Click Save to apply the extensions to the object type.

  7. Select Publish > Publish to development to synchronize your changes to the development environment.

You can view all the outgoing and incoming relationships for an object by selecting Relationships to objects.

  • The Outgoing tab shows the relationships where the foreign key or join table is to be implemented on this object, and the Incoming tab shows the relationships where the foreign key or join table is to be implemented on the other object.

  • Check Include inactive to show any other relationships that exist for the object, but the related object isn't enabled in your object-centric data model yet.

  • Click any relationship to view the implementation details and the location of the transformation.

Next, follow the steps in Creating custom transformations to populate your new attributes and relationships with data.