# How to generate a custom workflow programmatically

**URL:** <https://forum.flowable.org/t/how-to-generate-a-custom-workflow-programmatically/9427>\
**Category:** Flowable Engine\
**Created:** [June 14, 2022, 7:14am UTC](https://forum.flowable.org/t/how-to-generate-a-custom-workflow-programmatically/9427 "2022-06-14T07:14:28Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![sriramb](https://avatars.discourse-cdn.com/v4/letter/s/b38774/32.png) [@sriramb](https://forum.flowable.org/u/sriramb)\
**Post date:** [June 14, 2022, 7:14am UTC](https://forum.flowable.org/t/how-to-generate-a-custom-workflow-programmatically/9427/1 "2022-06-14T07:14:28Z")

</div>

Hi All,  
I am looking for a way to build a workflow from scratch programmatically based on the custom inputs. Is there any service available for custom workflow generation ?

I am using flowable version 6.7.2

Thanks,  
Sriram

---

<div class="post-metadata">

**Author:** ![martin.grofcik](https://yyz1.discourse-cdn.com/flex035/user_avatar/forum.flowable.org/martin.grofcik/32/71_2.png) [@martin.grofcik](https://forum.flowable.org/u/martin.grofcik)\
**Post date:** [June 14, 2022, 8:51am UTC](https://forum.flowable.org/t/how-to-generate-a-custom-workflow-programmatically/9427/2 "2022-06-14T08:51:55Z")

</div>

Hi,

Can you describe your use case please?

Regards  
Martin

---

<div class="post-metadata">

**Author:** ![sriramb](https://avatars.discourse-cdn.com/v4/letter/s/b38774/32.png) [@sriramb](https://forum.flowable.org/u/sriramb)\
**Post date:** [June 16, 2022, 5:23am UTC](https://forum.flowable.org/t/how-to-generate-a-custom-workflow-programmatically/9427/3 "2022-06-16T05:23:20Z")

</div>

Hi @martin.grofcik ,

My usecase is, I have a UI which gets the workflow details from user. With that user inputs(Say necessary info for a workflow), I have to dynamically generate a workflow and deploy it in flowable engine.

Let me know if this info is sufficient

Regards,  
Sriram

---

<div class="post-metadata">

**Author:** ![martin.grofcik](https://yyz1.discourse-cdn.com/flex035/user_avatar/forum.flowable.org/martin.grofcik/32/71_2.png) [@martin.grofcik](https://forum.flowable.org/u/martin.grofcik)\
**Post date:** [June 20, 2022, 9:56am UTC](https://forum.flowable.org/t/how-to-generate-a-custom-workflow-programmatically/9427/4 "2022-06-20T09:56:22Z")

</div>

Hi Sriram,

```auto
repositoryService.createDeployment.addBpmnModel(....)....

```

You can create your own bpmn model programatically.

Regards  
Martin

---

<div class="post-metadata">

**Author:** ![anishpr94](https://avatars.discourse-cdn.com/v4/letter/a/c37758/32.png) [@anishpr94](https://forum.flowable.org/u/anishpr94)\
**Post date:** [November 15, 2022, 7:30am UTC](https://forum.flowable.org/t/how-to-generate-a-custom-workflow-programmatically/9427/5 "2022-11-15T07:30:27Z")

</div>

is the same thing possible for CMMN?

---

<div class="post-metadata">

**Author:** ![martin.grofcik](https://yyz1.discourse-cdn.com/flex035/user_avatar/forum.flowable.org/martin.grofcik/32/71_2.png) [@martin.grofcik](https://forum.flowable.org/u/martin.grofcik)\
**Post date:** [November 16, 2022, 6:16am UTC](https://forum.flowable.org/t/how-to-generate-a-custom-workflow-programmatically/9427/6 "2022-11-16T06:16:04Z")

</div>

yes, it is .

Regards  
Martin

---

<div class="post-metadata">

**Author:** ![anishpr94](https://avatars.discourse-cdn.com/v4/letter/a/c37758/32.png) [@anishpr94](https://forum.flowable.org/u/anishpr94)\
**Post date:** [November 16, 2022, 4:50pm UTC](https://forum.flowable.org/t/how-to-generate-a-custom-workflow-programmatically/9427/7 "2022-11-16T16:50:18Z")

</div>

@martin.grofcik  
I noticed CMMN builder does not have an add model method?

> <https://github.com/flowable/flowable-engine/blob/main/modules/flowable-cmmn-api/src/main/java/org/flowable/cmmn/api/repository/CmmnDeploymentBuilder.java>

Could you please point me to how it can be done?

---

<div class="post-metadata">

**Author:** ![arthware](https://yyz1.discourse-cdn.com/flex035/user_avatar/forum.flowable.org/arthware/32/2869_2.png) [@arthware](https://forum.flowable.org/u/arthware)\
**Post date:** [November 21, 2022, 10:16am UTC](https://forum.flowable.org/t/how-to-generate-a-custom-workflow-programmatically/9427/8 "2022-11-21T10:16:42Z")

</div>

This should work:

```auto
CmmnModel model = /*your programatically created model instance */;
byte[] bytes = new CmmnXmlConverter().convertToXml(model);
cmmnRepositoryService.createDeployment().addBytes("mymodel.cmmn", bytes);

```

---

<div class="post-metadata">

**Author:** ![sriramb](https://avatars.discourse-cdn.com/v4/letter/s/b38774/32.png) [@sriramb](https://forum.flowable.org/u/sriramb)\
**Post date:** [December 7, 2022, 9:52am UTC](https://forum.flowable.org/t/how-to-generate-a-custom-workflow-programmatically/9427/9 "2022-12-07T09:52:25Z")

</div>

Hi @martin.grofcik ,

> [@martin.grofcik](#):
>
> ```auto
> repositoryService.createDeployment.addBpmnModel(....)....
> 
> ```
> 
> You can create your own bpmn model programatically.

I tried as per your suggestions and it worked.

Adding to this, i have to generate a bpmn workflow (not xml) from scratch starting from adding process, pool, lanes etc… Will Bpmn Model accomadates this too ?
