AIML Docs

If Element

Element for conditional execution

If Element

The <if> element enables conditional execution based on a test condition:

<if condition={({state}) => state.count > 0}>
<llm>
  <prompt>Processing positive count</prompt>
</llm>
</if>
PropTypeDefault
id?
string
-
condition
Expression
-

Examples

Basic Condition

<if condition={({state}) => state.isReady}>
<llm>
  <prompt>System is ready</prompt>
</llm>
</if>

Multiple Conditions

<if condition={({state}) => state.count > 10}>
<llm>
  <prompt>Count is greater than 10</prompt>
</llm>
</if>
<elseif condition={({state}) => state.count > 5}>
<llm>
  <prompt>Count is greater than 5</prompt>
</llm>
</elseif>
<else>
<llm>
  <prompt>Count is 5 or less</prompt>
</llm>
</else>

Complex Conditions

<if condition={({state}) => 
state.isAuthenticated && 
state.hasPermission && 
!state.isLocked
}>
<llm>
  <prompt>Access granted</prompt>
</llm>
</if>

Usage Notes

  • Use for branching logic in workflows
  • Can be combined with elseif and else elements
  • Condition must evaluate to a boolean
  • Can contain any executable content

Common Patterns

State Validation

<if condition={({state}) => state.isValid}>
<transition target="nextState" />
</if>

Error Checking

<if condition={({error}) => error !== null}>
<assign location="state.status" expr="error" />
<log expr={({error}) => `Error occurred: ${error.message}`} />
</if>

Permission Control

<if condition={({state}) => state.hasPermission}>
<assign location="state.access" expr={`granted`} />
<else>
<assign location="state.access" expr={`denied`} />
<log expr="Access denied due to insufficient permissions" />
</else>
</if>

On this page