bpmn.io Forum - Latest posts https://forum.bpmn.io Latest posts Alternatives for displaying of BPMN IO Watermark Is there any way to remove the bpmn io watermark without breaking the license? Any options like acknowledging bpmn.io in another place in my application or even paying some kind of fee to have it removed?

]]>
https://forum.bpmn.io/t/alternatives-for-displaying-of-bpmn-io-watermark/15181#post_1 Wed, 18 Mar 2026 20:11:01 +0000 forum.bpmn.io-post-36723
Patchley šŸš€: New BPMN 2.0 AI Generator Thanks for sharing, and good luck with your project!

]]>
https://forum.bpmn.io/t/patchley-new-bpmn-2-0-ai-generator/15176#post_2 Fri, 13 Mar 2026 14:45:08 +0000 forum.bpmn.io-post-36721
Patchley šŸš€: New BPMN 2.0 AI Generator Hey! We’ve created an AI-powered BPMN generator using BPMN.io called Patchley. You can try it directly here.

With Patchley, you can convert text or audio into a correct BPMN 2.0 file in seconds. You can also explore all of our agents through the Sandbox dropdown inside the tool.

The generation is free to use and doesn’t require login. Feel free to test it and share your feedback! :rocket:

]]>
https://forum.bpmn.io/t/patchley-new-bpmn-2-0-ai-generator/15176#post_1 Sun, 08 Mar 2026 18:54:43 +0000 forum.bpmn.io-post-36714
Create BPMN diagram with AI Thank you. I’m glad you fixed this :slight_smile:

]]>
https://forum.bpmn.io/t/create-bpmn-diagram-with-ai/15165#post_4 Wed, 25 Feb 2026 08:28:36 +0000 forum.bpmn.io-post-36689
Create BPMN diagram with AI I have investigated this issue and found a project based on bpmn.io on GitHub. They removed the bpmn.io flag. Thank you怂I have already performed the display operation

]]>
https://forum.bpmn.io/t/create-bpmn-diagram-with-ai/15165#post_3 Wed, 25 Feb 2026 00:45:41 +0000 forum.bpmn.io-post-36688
Create BPMN diagram with AI Hi,

Thanks for sharing. I looked at the tool and noticed that you removed the bpmn.io logo. What is the reason for that? Note that this is contrary to the bpmn.io license: License | bpmn.io .

]]>
https://forum.bpmn.io/t/create-bpmn-diagram-with-ai/15165#post_2 Tue, 17 Feb 2026 13:45:03 +0000 forum.bpmn.io-post-36685
Create BPMN diagram with AI Hi everyone :wave:

I created a tool to create a BPMN diagram, with AI.
You can try it here.
(free, no registration)

BPMN can be generated through chat or by uploading images

]]>
https://forum.bpmn.io/t/create-bpmn-diagram-with-ai/15165#post_1 Thu, 12 Feb 2026 02:34:36 +0000 forum.bpmn.io-post-36684
Licensing question We’re happy you enjoy using bpmn-js! :heart:

According to our license notice, you’re all good.

]]>
https://forum.bpmn.io/t/licensing-question/15164#post_2 Thu, 05 Feb 2026 12:19:26 +0000 forum.bpmn.io-post-36683
Licensing question Hello,
I am working on an app that shows bpmn diagrams in the editor using bpmn-js and have ensured the watermark is always visible and it is not disturbed by any background drawings etc. You can see it below. Have also made sure that in dark mode, the watermark is still visible by ensuring a white-ish background appears behind it to always make it visible.

Am I meeting the required licensing for bpmn-js?Do I need to do anything else to comply with the license?

]]>
https://forum.bpmn.io/t/licensing-question/15164#post_1 Thu, 05 Feb 2026 12:03:37 +0000 forum.bpmn.io-post-36682
Adding a shape to a connection In SVG you’d typically use markers to accomplish that - you don’t want to be bothered by the direction the arrow is coming from, or do you?

]]>
https://forum.bpmn.io/t/adding-a-shape-to-a-connection/15155#post_2 Tue, 03 Feb 2026 10:19:20 +0000 forum.bpmn.io-post-36670
Adding a shape to a connection Hi all,

I’m new to bpmn-js and I’m experimenting on customization.
On my Angular project I’m trying to put a shape on top of a connection, so I’ve started from your example. Here you put a red rectangle on top of other existing rectangles from the BPMN file.

image
I managed to achieve that, but what I actually want to accomplish is to draw that red rectangle on top of the arrows, if the corresponding sequenceFlow on the BPMN has a conditionExpression. Then I want to print that condition as a label on the rectangle.

Unfortunately, I can’t even manage to put the rectangle on the arrow.
This is what I’ve tried:

override drawConnection(parentNode: SVGElement, element: Connection): SVGElement {
  const connection = this.bpmnRenderer.drawConnection(parentNode, element);
  const rect = drawRect(parentNode, 30, 20, TASK_BORDER_RADIUS, '#cc0000')

  svgAttr(rect, {
    transform: 'translate(185, 178)'
  });

  return connection;
}

This does not put the rectangle on top of the arrow, so I tried to translate it according to the arrow’s path d directions, but I was not able to calculate the translation properly (the 185 and 178 are just examples).

Is there a better way, through the library, to achieve that? Without the translation the red rectangle gets positioned at 0, 0, even though it is in the same djs-group as its arrow.

]]>
https://forum.bpmn.io/t/adding-a-shape-to-a-connection/15155#post_1 Wed, 21 Jan 2026 17:00:48 +0000 forum.bpmn.io-post-36665
Resizing a diagram using bpmnViewer I also tried using canvas.zoom(ā€˜fit-viewport’), but it doesn’t control the container height. If the viewer container does not have an explicit height, it collapses, and fit-viewport simply scales the diagram into that small area. For example: Without setting a height, the diagram technically fits, but the rendered height is very small. If I give the container a fixed height (e.g. 300px), the diagram is rendered correctly and fit-viewport works as expected. I’ve attached images showing: the diagram without a fixed height the same diagram with a fixed 300px height

Diagram: diagram
Diagram without fixed height: without fixed height

Diagram with fixed 300px height: with fixed 300px height

]]>
https://forum.bpmn.io/t/resizing-a-diagram-using-bpmnviewer/15148#post_3 Mon, 19 Jan 2026 11:47:23 +0000 forum.bpmn.io-post-36662
Resizing a diagram using bpmnViewer Do you look to resize the BPMN diagram so it fits exactly into the available space?

You can accomplish that by zooming the diagram to fit the available viewport, copied from our starter example:

// zoom to fit full viewport
viewer.get('canvas').zoom('fit-viewport');
]]>
https://forum.bpmn.io/t/resizing-a-diagram-using-bpmnviewer/15148#post_2 Mon, 19 Jan 2026 09:08:53 +0000 forum.bpmn.io-post-36661
Resizing a diagram using bpmnViewer I am using bpmnViewer with the container width set to 100% and the height set to 700px. Is it possible to automatically resize the viewer so that the BPMN diagram can take whatever dimensions it needs to display properly, instead of being constrained by a fixed height?

For example, in React I’m using a component like this:

import React, { useEffect, useRef } from 'react';
import BpmnViewer from 'bpmn-js';

const BpmnDiagram = ({ xml }) => {
  const containerRef = useRef(null);
  const viewerRef = useRef(null);

  useEffect(() => {
    if (!viewerRef.current) {
      viewerRef.current = new BpmnViewer({
        container: containerRef.current,
        width: '100%',
        height: '700px'
      });
    }

    if (xml) {
      viewerRef.current.importXML(xml).catch(err => {
        console.error('Failed to load diagram', err);
      });
    }
  }, [xml]);

  return <div ref={containerRef} style={{ width: '100%', height: '700px' }} />;
};

export default BpmnDiagram;
]]>
https://forum.bpmn.io/t/resizing-a-diagram-using-bpmnviewer/15148#post_1 Fri, 16 Jan 2026 12:01:50 +0000 forum.bpmn.io-post-36656
Adding custom groups and fields in dmn-js properties panel @julia-yh-kim we’ll soon publish an example that shows how a properties panel extension for dmn-js can be created. If you want to take a sneak peek, you find it here.

Different from bpmn-js you have to ensure that the properties panel extension is registered for the correct DMN editor view, mind the drd in the following example:

const dmnModeler = new DmnModeler({
  container: '#canvas',
  drd: {
    propertiesPanel: {
      parent: '#properties-panel-parent'
    },
    additionalModules: [
      DmnPropertiesPanelModule,
      DmnPropertiesProviderModule,
      magicPropertiesProviderModule,
      changedLoggerModule
    ]
  },
  moddleExtensions: {
    magic: magicModdleDescriptor
  }
});
]]>
https://forum.bpmn.io/t/adding-custom-groups-and-fields-in-dmn-js-properties-panel/14990#post_5 Mon, 13 Oct 2025 13:32:51 +0000 forum.bpmn.io-post-36612
Resizing of external labels There is a PR waiting to be merged - 1513 dynamic resizing labels by timonlazarviadee Ā· Pull Request #2345 Ā· bpmn-io/bpmn-js Ā· GitHub to adjust the external label behavior to follow text annotation resizing

]]>
https://forum.bpmn.io/t/resizing-of-external-labels/15010#post_2 Mon, 22 Sep 2025 12:30:03 +0000 forum.bpmn.io-post-36572
Camunda modeler extension - Add new group to properties panel I changed the webpack configuration (now I’m using camunda-modeler-webpack-plugin) and it works.

]]>
https://forum.bpmn.io/t/camunda-modeler-extension-add-new-group-to-properties-panel/15075#post_5 Fri, 19 Sep 2025 05:33:26 +0000 forum.bpmn.io-post-36566
Camunda modeler extension - Add new group to properties panel Hi,
here you can find the code GitHub - marcinbien/properties-panel-extension-sandbox: properties-panel-extension-sandbox

and here you can see empty group

]]>
https://forum.bpmn.io/t/camunda-modeler-extension-add-new-group-to-properties-panel/15075#post_4 Thu, 18 Sep 2025 20:26:41 +0000 forum.bpmn.io-post-36564
Camunda modeler extension - Add new group to properties panel I have also the registration and new group appear on the screen but… I don’t see any options, any text inputs inside that group.
So probably something is wrong with the entries section but I don’t know what

]]>
https://forum.bpmn.io/t/camunda-modeler-extension-add-new-group-to-properties-panel/15075#post_3 Wed, 17 Sep 2025 07:57:35 +0000 forum.bpmn.io-post-36560
Camunda modeler extension - Add new group to properties panel I believe what you’re looking for is an example plug-in that ships a BPMN properties panel extension for the Camunda Modeler? Have a look at, i.e this, and the client plug-in registration here.

]]>
https://forum.bpmn.io/t/camunda-modeler-extension-add-new-group-to-properties-panel/15075#post_2 Wed, 17 Sep 2025 07:31:46 +0000 forum.bpmn.io-post-36559
Camunda modeler extension - Add new group to properties panel Hi,
I’m trying to build a Camunda Modeler extension.
In one of the steps, I need to add a new custom group to the Properties panel.
This group should contain one text input — when the user enters some text there, it needs to be saved in custom attributes.
I was able to create a group but I don’t know how to add custom entries to the group. All examples that I found are not working.

Can you point me to some examples or documentation on how to add such entries to a custom group and then how to save the entered data into the BPMN diagram?
I know about custom moddle — I already have it.

This one is based on camunda-modeler-process-io-specification-plugin/client/properties-panel /process-io-extension-provider.js)


import { TextFieldEntry, isTextFieldEntryEdited, useService } from 'camunda-modeler-plugin-helpers/vendor/bpmn-js-properties-panel';

function CustomTextEntry(props) {
  const { element, id } = props;

  const modeling = useService('modeling');

  const getValue = () => {
    return element.businessObject.get('custom:text') || '';
  };

  const setValue = (value) => {
    modeling.updateProperties(element, { 'custom:text': value });
  };

  return TextFieldEntry({
    element,
    id,
    label: 'Custom Text',
    description: 'Enter some custom text',
    getValue,
    setValue
  });
}

export default class SampleExtensionProvider {
  constructor(propertiesPanel, injector) {
    this._injector = injector;
    propertiesPanel.registerProvider(this);
  }

  getGroups(element) {
    return (groups) => {
      const customGroup = {
        id: 'customGroup',
        label: 'Custom Group',
        // How to define entries and components ?
        entries: [ 
          {
            id: 'customText',
            component: CustomTextEntry,
            isEdited: isTextFieldEntryEdited
          }
        ]
      };

      return [...groups, customGroup];
    };
  }
}

SampleExtensionProvider.$inject = ["propertiesPanel", "injector"];

and the second approach (this one is based on properties-panel-extension/src/provider/magic/MagicPropertiesProvider.js)


import { TextFieldEntry, isTextFieldEntryEdited, useService } from 'camunda-modeler-plugin-helpers/vendor/bpmn-js-properties-panel';

import { html } from 'htm/preact';
import { is } from 'bpmn-js/lib/util/ModelUtil';

function Spell(props) {
  const { element, id } = props;

  const modeling = useService('modeling');
  const translate = useService('translate');
  const debounce = useService('debounceInput');

  const getValue = () => {
    return element.businessObject.spell || '';
  };

  const setValue = value => {
    return modeling.updateProperties(element, {
      spell: value
    });
  };

  return html`<${TextFieldEntry}
    id=${id}
    element=${element}
    description=${translate('Apply a black magic spell')}
    label=${translate('Spell')}
    getValue=${getValue}
    setValue=${setValue}
    debounce=${debounce}
    tooltip=${translate('Check available spells in the spellbook.')}
  />`;
}


const LOW_PRIORITY = 500;

export default class SampleExtensionProvider {
  constructor(propertiesPanel, injector) {
    this._injector = injector;
    propertiesPanel.registerProvider(LOW_PRIORITY, this);
  }

  getGroups(element) {
    return (groups) => {
      if (is(element, 'bpmn:ServiceTask')) {

        const customGroup = {
          id: 'customGroup',
          label: 'Custom Group',

          entries: [
            {
              id: 'spell',
              element,
              component: Spell,
              isEdited: isTextFieldEntryEdited
            }
          ]
        }

        groups.push(customGroup);
      }

      return groups;
    };
  }
}

SampleExtensionProvider.$inject = ["propertiesPanel", "injector"];

But still same result - I see the group but no options after I will expand it

]]>
https://forum.bpmn.io/t/camunda-modeler-extension-add-new-group-to-properties-panel/15075#post_1 Tue, 16 Sep 2025 18:28:09 +0000 forum.bpmn.io-post-36555
Adding custom groups and fields in dmn-js properties panel @chenhaoyu1122 Please open a new thread instead of replying in an irrelevant one.

]]>
https://forum.bpmn.io/t/adding-custom-groups-and-fields-in-dmn-js-properties-panel/14990#post_4 Tue, 16 Sep 2025 12:02:48 +0000 forum.bpmn.io-post-36551
Adding custom groups and fields in dmn-js properties panel image

If I want to add other types besides Decision Table and Literal Expression to this change type, is that possible?

]]>
https://forum.bpmn.io/t/adding-custom-groups-and-fields-in-dmn-js-properties-panel/14990#post_3 Tue, 16 Sep 2025 12:01:53 +0000 forum.bpmn.io-post-36549
Bpmn autoplace places nodes on top of existing nodes It looks like a bug in the module, so it would be great if you opened an issue in bpmn-js repo, describing the problem with steps to reproduce.

If you want to help us with the fix (or even work on it yourself), try to reproduce this problem with a test case.

]]>
https://forum.bpmn.io/t/bpmn-autoplace-places-nodes-on-top-of-existing-nodes/15035#post_2 Fri, 05 Sep 2025 08:25:31 +0000 forum.bpmn.io-post-36514
Bpmn autoplace places nodes on top of existing nodes Hello,

We have a UI project that makes use of bpmn-io js to bring up a modeler and canvas that lets user create workflows.
We have a feature wherein we are making use of the autoplace feature from bpmn-js.

image

Autoplace on the task places nodes over other nodes.

image

Appreciate if someone can guide me on how to solve it.

]]>
https://forum.bpmn.io/t/bpmn-autoplace-places-nodes-on-top-of-existing-nodes/15035#post_1 Thu, 04 Sep 2025 13:51:22 +0000 forum.bpmn.io-post-36512
Adding custom groups and fields in dmn-js properties panel Could you share a CodeSandbox with the minimal code to reproduce what you’re trying to do?

]]>
https://forum.bpmn.io/t/adding-custom-groups-and-fields-in-dmn-js-properties-panel/14990#post_2 Wed, 27 Aug 2025 08:38:24 +0000 forum.bpmn.io-post-36501
Error while calling saveXML with isMany property Name of the type cannot be the same as the name of its property.

As far as I know, the usual patter is to lower case properties names, and you should be fine. :slight_smile:

{
  "name": "Options",
  "extends": ["bpmn:ExclusiveGateway"],
  "properties": [
    { "name": "options", "type": "Option", "isMany": true, "isAttr": false }
  ]
}
]]>
https://forum.bpmn.io/t/error-while-calling-savexml-with-ismany-property/15006#post_2 Wed, 27 Aug 2025 08:27:56 +0000 forum.bpmn.io-post-36500
Resizing of external labels I would like to resize external labels, however enabling resizing does not work quite well for external labels.

The problem is, that the frame is not keeping the size after resizing.

image
image
image
image
image

Code:
I have added a module using the rule provider with the code like this:

this.addRule(ā€˜shape.resize’, function(context) {
return true; // allow resize temporarly. (TODO: Filter external labels)
}

How can I ensure the frame size is kept after resizing?

]]>
https://forum.bpmn.io/t/resizing-of-external-labels/15010#post_1 Thu, 21 Aug 2025 07:55:16 +0000 forum.bpmn.io-post-36483
Drop-not-ok for the custom element Fixed the issue :slight_smile:
The rules for allowing shapes should allow new Element as well

]]>
https://forum.bpmn.io/t/drop-not-ok-for-the-custom-element/14993#post_2 Wed, 20 Aug 2025 09:11:42 +0000 forum.bpmn.io-post-36480
Error while calling saveXML with isMany property Hello

I want to add a custom attribute to a gateway.

I want something with this type

Array<{color:string; text: string}>

So I created an extension with the following:

extension definition (click for more details)

However when I call modeler.saveXML I have the following error:

error stack trace (click for more details)

I made a small CodeSandbox that reproduces the issue

]]>
https://forum.bpmn.io/t/error-while-calling-savexml-with-ismany-property/15006#post_1 Tue, 19 Aug 2025 09:57:01 +0000 forum.bpmn.io-post-36478
Drop-not-ok for the custom element Hello team,

By following exactly the example of ā€œcustom:triangleā€ & ā€œcustom:circleā€ i was able to create custom element, but now the issue is when i grab that and want to put inside diagram as the diagram refuses to add there:

Is there a way to allow adding the custom element?

]]>
https://forum.bpmn.io/t/drop-not-ok-for-the-custom-element/14993#post_1 Thu, 14 Aug 2025 18:13:35 +0000 forum.bpmn.io-post-36465
Adding custom groups and fields in dmn-js properties panel Continuing the discussion on Customizing dmn js properties panel

I’ve tried to set this up myself on my dmn modeler using the examples included in the bpmn-js-examples for creating a custom group in the properties panel.
My setup for this extension is almost identical to that of the bpmn-js-example except for repointing the imports and methods being called to be from dmn-js and the element types for this change to be applied to to be ā€œdmn:Inputdataā€.

The code compiles and doesn’t throw any errors but the new custom group doesn’t get created in the properties panel and I can see that the custom provider I’ve created isn’t being called when i open or create new inputs in the model.

Can someone please clarify if the properties panel for dmn-js should be customizable like the one for bpmn-js? Are there any other changes that would likely need to be made in order to get this example working?

Thanks

]]>
https://forum.bpmn.io/t/adding-custom-groups-and-fields-in-dmn-js-properties-panel/14990#post_1 Wed, 13 Aug 2025 11:13:06 +0000 forum.bpmn.io-post-36462
Subprocess drag/move on canvas Ok, never mind, once adding in elements inside the subprocess it became dragable.
Thanks

]]>
https://forum.bpmn.io/t/subprocess-drag-move-on-canvas/14979#post_2 Thu, 07 Aug 2025 19:12:28 +0000 forum.bpmn.io-post-36450
Subprocess drag/move on canvas Hi,
I noticed when modelling collapsed subprocess that I can not drag the subprocess on the canvas after creating it.
Is there a reason for this or a way to do it?
Thanks

]]>
https://forum.bpmn.io/t/subprocess-drag-move-on-canvas/14979#post_1 Thu, 07 Aug 2025 19:10:19 +0000 forum.bpmn.io-post-36449
Linting and Properties Panel Communication between linting and properties panel happens via the eventBus, cf. my answer to a similar question: Properties panel error badge is not showing - #2 by jarekdanielak

Could you please explain what needs to be done in order to swap the custom linting for camunda/linting and swap the modeler for the camuna modeler

We believe the documentation on our project is enough to get you started. We are happy to answer specific, self-contained questions in the forum, but you need to do your homework. :wink:

]]>
https://forum.bpmn.io/t/linting-and-properties-panel/14970#post_6 Wed, 06 Aug 2025 10:13:30 +0000 forum.bpmn.io-post-36446
Linting and Properties Panel I found this working example for custom linting:
https://codesandbox.io/p/sandbox/bpmn-custom-lint-c9u6lm

Could you please explain what needs to be done in order to swap the custom linting for camunda/linting and swap the modeler for the camuna modeler (ā€˜camunda-bpmn-js/lib/camunda-platform/Modeler’) with this configuration:

    executionPlatform: {
        name: 'Camunda Platform',
        version: '7.24'
    },

I also inspected the code of the properties panel and its fields. The onValidate function does not fire any events and only sets local errors. How does the linter get access to these local errors and displays them on the canvas?

Thank you very much!

]]>
https://forum.bpmn.io/t/linting-and-properties-panel/14970#post_5 Mon, 04 Aug 2025 07:52:39 +0000 forum.bpmn.io-post-36443
Linting and Properties Panel It would be easier if you shared a CodeSandbox with your minimal implementation, so that we can see what goes wrong.

]]>
https://forum.bpmn.io/t/linting-and-properties-panel/14970#post_4 Fri, 01 Aug 2025 14:59:46 +0000 forum.bpmn.io-post-36438
Linting and Properties Panel Hey,

Thank you for the reply. I have been trying to set it up but i cannot get it to run with the modeler. Is there a working example anywhere? It is very confusing which packages work with what.

I want to embed the camunda modeler in a web project which is bundled with vite and I am using these packages:

import BpmnModeler from ā€˜camunda-bpmn-js/lib/camunda-platform/Modeler’;
import lintingModule from ā€˜@camunda/linting/modeler’;
import ā€˜@camunda/linting/assets/linting.css’;

const Modeler = () => {
    const modeler = useModelerContext();
    const modelerContainerRef = useRef<HTMLDivElement>(null);
    const modelerPropertiesPanelRef = useRef<HTMLDivElement>(null);
    const styles = useStyles();

    useEffect(() => {
        modeler.attachTo(modelerContainerRef.current!);
        const propertiesPanel = modeler.get<any>('propertiesPanel');
        propertiesPanel.attachTo(modelerPropertiesPanelRef.current!);

        modeler
            .createDiagram()
            .then(
                () => {
                    modeler.get<any>('canvas').zoom('fit-viewport');
                    // return;
                    // modeler.get<any>('linting').activate();
                    return modeler
                        .saveXML({format: true})
                        .then(
                            xmlResult => {
                                console.log(xmlResult);
                                return;
                                const linter = new Linter({
                                    modeler: 'web', // `desktop` or `web` modeler, defaults to `desktop`
                                    type: 'platform' // `cloud` or `platform` diagrams, defaults to `cloud`
                                });
                                return linter
                                    // .lint(xmlResult.xml)
                                    // modeler:executionPlatform="camunda-platform" modeler:executionPlatformVersion="7.24"
                                    // xmlns:stepgen="http://example.com/stepgen"
                                    .lint(`
<?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL bpmn0.xsd" id="sample-diagram" targetNamespace="http://bpmn.io/schema/bpmn" 
modeler:executionPlatform="camunda-platform" modeler:executionPlatformVersion="7.24">
  <bpmn:process id="Process_1" isExecutable="false" name="Mein Entwurf">
    <bpmn:startEvent id="StartEvent_1" name="Startereignis"/>
  </bpmn:process>
</bpmn:definitions>
                                        `)
                                    .then(
                                        lintResult => {
                                            console.log('### lint', lintResult);
                                            modeler.get<any>('linting').setErrors(lintResult);
                                        }
                                    );
                                console.log(modeler.get<any>('linting'));
                            }
                        );
                }
            ).catch(console.error);

        return () => {
            propertiesPanel.detach();
            modeler.detach();
        };
    }, [modeler]);

    return (
        <div className={styles.root}>
            <div className={styles.modeler} ref={modelerContainerRef} />
            <div
                className={styles.modelerPropPanel}
                ref={modelerPropertiesPanelRef}
            />
        </div>
    );
};
]]>
https://forum.bpmn.io/t/linting-and-properties-panel/14970#post_3 Fri, 01 Aug 2025 09:33:20 +0000 forum.bpmn.io-post-36437
Linting and Properties Panel Camunda Modeler does it via camunda/linting.

Have a look around and feel to ask more specific follow up questions. :slight_smile:

]]>
https://forum.bpmn.io/t/linting-and-properties-panel/14970#post_2 Fri, 01 Aug 2025 09:19:40 +0000 forum.bpmn.io-post-36436
Linting and Properties Panel Hi,
Can the linting module display error which occur in the properties panel (such as missing field value) as an error on the according element in the model? And also display this error inside the tooltip with the errors which are shown based on the linting rules?

I think the Camunda Modeler Desktop application does this but I have no clue how it works. Would you mind explining how to marry the field validations inside the properties panel and the linting module? Both for custom groups/fields and for groups which are already included in the camunda properties panel.

Any tips and guidance would be awesome. Thank you! :slight_smile:

]]>
https://forum.bpmn.io/t/linting-and-properties-panel/14970#post_1 Thu, 31 Jul 2025 20:44:51 +0000 forum.bpmn.io-post-36435
How to list all FormJS component type names? To get all supported component types in FormJS, check the official FormJS documentation or source code, particularly the componentFactory or componentRegistry section. This lists all valid types. You can use this list to filter unsupported components before importing.

]]>
https://forum.bpmn.io/t/how-to-list-all-formjs-component-type-names/14551#post_2 Tue, 22 Jul 2025 18:37:09 +0000 forum.bpmn.io-post-36408
Properties panel error badge is not showing Errors in the ErrorsContext are set with the propertiesPanel.setErrors event. Have a look at the implementation in properties panel.

In Camunda, we fire those away in our linting project.

]]>
https://forum.bpmn.io/t/properties-panel-error-badge-is-not-showing/14938#post_2 Tue, 22 Jul 2025 10:39:03 +0000 forum.bpmn.io-post-34792
Properties panel error badge is not showing I have a custom group renderered by ListGroup component and it has item with TextFieldEntry with validate prop. When validate returns string error there is error text under TextFieldEntry. But there are no red error badge in my ListGroup header. How can I add this badge? allErrors = useErrors() is empty somewhy, but TextFieldEntry renders error correctly

]]>
https://forum.bpmn.io/t/properties-panel-error-badge-is-not-showing/14938#post_1 Fri, 18 Jul 2025 11:31:47 +0000 forum.bpmn.io-post-34787
Removing a template from a sequence flow doesn't work Yes, applying the template to connections is no problem, it works as expected.

]]>
https://forum.bpmn.io/t/removing-a-template-from-a-sequence-flow-doesnt-work/14917#post_3 Thu, 17 Jul 2025 07:19:15 +0000 forum.bpmn.io-post-34781
Removing a template from a sequence flow doesn't work Are you able to apply the element template in the first place? As far as I know we don’t officially support element templates for connections.

]]>
https://forum.bpmn.io/t/removing-a-template-from-a-sequence-flow-doesnt-work/14917#post_2 Thu, 17 Jul 2025 07:03:42 +0000 forum.bpmn.io-post-34780
Thesis: LLM-based BPMN generation using bpmn-js I am working on similar project. can you please share your work with me!

]]>
https://forum.bpmn.io/t/thesis-llm-based-bpmn-generation-using-bpmn-js/13753#post_7 Tue, 15 Jul 2025 05:59:20 +0000 forum.bpmn.io-post-34382
Removing a template from a sequence flow doesn't work I’ve implemented a widget that allows to remove a template from a single selected element in the canvas. It works as expected for tasks and start events, but not for sequence flows. For the latter, it just doesn’t do anything.

Here is a snippet on how we do that:

modeler.get('elementTemplates').removeTemplate(element);

There is no error message or anything, it just doesn’t remove the template.

Is that a known issue?

]]>
https://forum.bpmn.io/t/removing-a-template-from-a-sequence-flow-doesnt-work/14917#post_1 Tue, 08 Jul 2025 15:29:13 +0000 forum.bpmn.io-post-33090
Cannot move discretionary stage (CMMN) @k_ch Please do not necrobump old topics. Instead link to this thread from new topic.

Please do not post the same question multiple times in many topics. Create your own, with a clear explanation of what you tried, what failed and what you want to do.

]]>
https://forum.bpmn.io/t/cannot-move-discretionary-stage-cmmn/781#post_4 Fri, 04 Jul 2025 10:20:47 +0000 forum.bpmn.io-post-33075
Is there a way to know that current bpmn has changed Regardless of the fact that we don’t support CMMN anymore this is a universal problem. Even if your LLM can generate XML it cannot generate the visual part of the XML. That’s a separate problem. For BPMN we have GitHub - bpmn-io/bpmn-auto-layout: Layout BPMN diagrams, generating missing DI information. to solve this problem.

]]>
https://forum.bpmn.io/t/is-there-a-way-to-know-that-current-bpmn-has-changed/14882#post_7 Fri, 04 Jul 2025 09:28:27 +0000 forum.bpmn.io-post-33073
Is there a way to know that current bpmn has changed hi please I have an issue with XML code in order to draw my CMMN on API (actually i use openRouter but i will forward for chat gpt) …i need a prompt/script or something else in order to fix this problem,
the syntax or semantic XML generated GPT was true but it needs a visual section there is no size of CMMN s elements

]]>
https://forum.bpmn.io/t/is-there-a-way-to-know-that-current-bpmn-has-changed/14882#post_6 Thu, 03 Jul 2025 22:08:03 +0000 forum.bpmn.io-post-33072