Aby dla danego procesu włączyć obsługę podprocesów należy zdefiniować przynajmniej jeden podproces. Stany podprocesu należy objąć tagiem subprocess. Jeżeli dany proces ma uruchomioną obsługę podprocesów, stany nie wchodzące w skład żadnego podprocesu automatycznie tworzą podproces główny o nazwie MAIN.
Przykładowa definicja podprocesu:
<states>
...
...
<!-- subprocess definition -->
<subprocess name="SUBPROCESS_1">
<state id="STATE_E" first="true">
<transitions>
<transition destination="STATE_F" />
<transitions/>
</state>
<state id="STATE_F">
<transitions>
<transition destination="STATE_G" />
<transition destination="STATE_H" />
<transitions/>
</state>
<state id="STATE_G" last="true" success="true"/>
<state id="STATE_H" last="true" success="false"/>
</subprocess>
</states>