Skip to main content

Celonis Product Documentation

Creating custom object types and custom event types

You can model objects and events specific to your business as custom object types and custom event types. You can set up object to object relationships and event to object relationships between them, and also between them and the Celonis object types and event types in the preloaded object-centric data model. Objects and events and Relationships between objects and events explain the basics of objects, events, and relationships.

When you create and publish custom object types and custom event types, Celonis automatically creates tables for them in the underlying database in the OCPM Data Pool. You’ll need to create a custom SQL transformation to use the relevant source data to create objects and events from your custom object types and custom event types. Creating custom transformations has the instructions to do this.

Tip

Before you start working with custom object types, event types, relationships, and transformations, 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 create a custom object type or custom event type. 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 or Events in the top navigation bar.

  3. Click the Create Object or Create Event button on the list of objects or events.

  4. Enter a name for the object type or event type. You can’t change the name afterwards, so choose carefully.

    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 properties and relationships must be unique within an object type or event type. Uniqueness is validated case-insensitively.

  5. Add any of the existing tags that apply to the object type or event type.

  6. If you want to, add a description for the object type or event type.

  7. Add the attributes for the object type or event type. The ID property, and the timestamp property for event types, are already provided for you and can’t be changed.

    1. Click Add to add a new attribute.

    2. Give the attribute a name. You can’t use spaces or special characters.

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

  8. Click Save to create the new object type or event type.

  9. Add the new object type or event type’s relationships.

    1. For event types, you can add event to object relationships by selecting Related objects.

    2. For object types, you can add event to object relationships by selecting Related events.

    3. For object types, you can add object to object relationships by selecting Relationships to objects.

  10. To add event to object relationships:

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

    2. 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.

      Tip

      You can't create event to object relationships involving a Celonis catalog event type. This is because the event type holds the record of the event to object relationship, and you can't extend Celonis catalog event types.

    3. Choose whether the event involves one of the objects, or many of the objects.

    4. 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”).

    5. Click Save to create the relationship.

  11. To add object to object relationships:

    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.

      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.

    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.

  12. If you need to make any changes to your custom object type or event type, click it in the list to bring up its details again. You can delete a custom type using the Delete button at the bottom of the details.

  13. 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, set up transformations that use your extracted source system data to create instances of objects and events from your custom object types and custom event types. Follow the steps in Creating custom transformations  to do this.