Add new events to modeler

I want to the following events are available in the symbol palette: Conditional start event, Conditional Boundary event (non interrupting), Conditional intermediate catch event, Conditional Boundary event.


There are just regular StartEvent, Intermediate/Boundary Event, EndEvent.

That should be doable by creating a custom palette provider. Did you already check out the custom controls example?

Here is an example for creating a conditional start event

Source: custom palette provider (conditional start event) - CodeSandbox

getPaletteEntries() {
  const create = this._create;
  const elementFactory = this._elementFactory;

  function createConditionalStartEvent(event) {
  const shape = elementFactory.createShape({
    type: "bpmn:StartEvent",
    eventDefinitionType: "bpmn:ConditionalEventDefinition"

  create.start(event, shape);

  return function (entries) {

  // add conditional start event
  entries["create.conditional-start-event"] = {
    group: "event",
    className: "bpmn-icon-start-event-condition",
    title: "Create Conditional Start Event",
    action: {
      dragstart: createConditionalStartEvent,
      click: createConditionalStartEvent

  return entries;

@Niklas_Kiefer thank you so much!

@Niklas_Kiefer I implemented “conditional boundary event (non interrupting)” and “conditional intermediate catch event” based on example above. custom palette provider (conditional start event) (forked) - CodeSandbox

I am interested is it good implementation? and where are used properties of entries object and how is important their naming? I think on “create.conditional-intermediate-event” and “create.conditional-intermediate-catch-event”.