Extending Celonis object types and event types
You can add custom attributes, custom object to object relationships, and custom event to object relationships to extend the Celonis object types and event types. The relationships can be to other Celonis object types and event types, or to custom object types and event types that you’ve created.
Modeling objects and events helps you choose whether to use a Celonis object type as it's supplied, extend a Celonis object type or event type by adding extra attributes and relationships for your business needs, or create your own custom object type or event type.
When you publish your extensions to Celonis object types and event 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 or event type is used - 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.
Tip
Before you start customizing Celonis object types and event 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 and event types. If you have any problems, check the solutions in Troubleshooting for modeling objects and events.
From the Celonis navigation bar, select Data > Objects and Events.
Select Objects in the top navigation bar to view the existing object types for your Celonis team, or Events to view the existing event types. Use the search box to search for any object type or event type. You can click View in Graph to explore the object type and its related objects visually, and see how it’s used.
Select the name of any object type or event type in the list to see its attributes, its relationships, and the transformations that you’ve already installed for it. Select the details pane (Object details or Event details) and the relationships pane (Relationships to objects), and verify that each attribute or relationship that you want to create isn’t already present.
Tip
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.
To add custom attributes, select Object details or Event details.
Click Add to add a new attribute to the object type or event type.
Give the attribute a name.
Tip
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 attributes and relationships must be unique within an object type or event type, and you can't give a relationship the same name as an attribute. Uniqueness is validated case-insensitively.
Don’t use the reserved words ”activity” (for event types) and “epoch” (for object types and event types) as the names of attributes.
Select the data type for the property from the Data Type dropdown. The available data types are String, Boolean, Datetime, Integer, and Floating Point.
Tip
Event logs can now break down event types into subsets using their attributes. For example, you could analyze each specific delivery method for the ReleaseDelivery event separately. Instead of replacing a Celonis event type with lots of similar but more specific event types, you can add attributes to extend the Celonis event type. Modeling objects and events explains more about this.
To add custom relationships, select the option from the sidebar:
For event types, you can add event to object relationships by selecting Related objects.
For object types, you can add event to object relationships by selecting Related events.
For object types, you can add object to object relationships by selecting Relationships to objects.
To add event to object relationships:
Click Add to add a new event to object relationship.
In the search box, start typing all or part of the name of the object type or event type that you want to link, and pick it from the list. If you’re working in the event type, this will be the object type, and if you’re working in the object type, this will be the event type. Choose whether the event involves one of the objects, or many of the objects.
In the Description field, add a descriptive name for the event to object relationship. Use words that explain the role of the object in the event and how it is involved (for example, “Approver”).
Click Save to create the relationship.
To add object to object relationships:
Click Add to add a new object to object relationship.
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.
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.
Tip
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.
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.
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.
When you’ve finished adding custom attributes and relationships, click Save to apply the extensions to the object type or event type.
Select Publish > Publish to development to synchronize your changes to the development environment.
Next, follow the steps in Creating custom transformations to populate your new attributes and relationships with data.