# Connections and branches

Edges use node IDs in `from` and `to`. A condition selects a branch label through `when`; use `true` and `false` for condition nodes. The following workflow selects `review` for 150 copies and `ready` for 100 or fewer.

```xml
<workflow>
  <input-schema>
    <schema type="object" xmlns="urn:cococo:json-schema:1">
      <property name="copies" type="integer"/>
      <required name="copies"/>
    </schema>
  </input-schema>
  <nodes>
    <condition id="large" test="input.copies > 100"/>
    <transform id="review">
      <value name="status">review</value>
    </transform>
    <transform id="ready">
      <value name="status">ready</value>
    </transform>
  </nodes>
  <edges>
    <edge from="large" to="review" when="true"/>
    <edge from="large" to="ready" when="false"/>
  </edges>
</workflow>
```

Avoid cycles. For parallel work, select split and join nodes with a strategy appropriate to your outputs. A join may receive skipped or failed branches; choose its partial-failure behavior deliberately. Use the node reference to see available settings.