---
title: "Expressions using boolean logic"
description: "Control template sections to appear or hide based on combined true/false conditions using AND, OR, and NOT logic for precise document output."
canonical_url: "https://resources.docmosis.com/template-tutorials/expressions-logic"
last_reviewed: 2026-06-08
---
# Expressions using boolean logic
This example introduces the notation used to perform simple logic calculations in the templates.
It explores how to call logic and boolean operators such as AND/OR within the template, which is most useful in [Conditional Sections](/template-tutorials/conditional-sections).
It is best to view the template and output images or files side\-by\-side to understand their functionality.
### Logical OR
The OR operator, represented by a double pipe "\|\|", can be used with 2 or more fields or expressions.
**Example 1 :**
{sampleValue1\|\|sampleValue2}
The OR operator evaluates if either sampleValue1 or sampleValue2 is true.
When used in a conditional section, the conditional section is shown if either value is true.
**Example 2 :**
{sampleValue3\=’red’\|\|sampleValue4\=’red’}
In the expressions sampleValue3\=’red', sampleValue4\=’red' the "\=" operator tests the values of sampleValue3 and sampleValue4 and returns true or false.
Then the OR operator evaluates whether either of the expressions have returned true.
When used in a conditional section, the conditional section is shown if either value is true.
### Logical AND
The AND operator, represented by a double ampersand "\&\&", can be used with 2 or more fields or expressions.
**Example 1 :**
{sampleValue1\&\&sampleValue2}
The AND operator evaluates if both sampleValue1 and sampleValue2 are true.
When used in a conditional section, the conditional section is shown if both values are true.
**Example 2 :**
{sampleValue3\=’red’\&\&sampleValue4\=’red’}
In the expressions sampleValue3\=’red’,sampleValue4\=’red' the "\=" operator tests the values of sampleValue3 and sampleValue4 and returns true or false.
Then the AND operator evaluates whether both expressions have returned true.
When used in a conditional section, the conditional section is shown if both values are true.
### Logical NOT
The NOT operator, represented by an exclamation mark "!", can be used with one field or applied to an expression.
**Example 1 :**
!(sampleValue2\)
The NOT operator inverses the value, i.e., if samplevelue1 is true, the expression !(sampleValue2\)returns false.
When used in a conditional section, the conditional section is shown if value is false.
**Example 2 :**
!(sampleValue4\=’red’)
In the expression sampleValue4\=’red' the "\=" evaluates the value of sampleValue4 and returns true or false.
Then NOT operator inverses the value.
When used in a conditional section, the conditional section is shown if value is false.
### **Combining logical expressions**
(sampleValue3\=’red’\&\&sampleValue4\=’red’)\|\|( sampleValue3\=’green’\&\&sampleValue4\=’green’)
In the expressions sampleValue3\='red',sampleValue4\='red',sampleValue3\='green',sampleValue4\='green' the "\=" evaluates the values of sampleValue3 and sampleValue4 and returns true or false.
Then the AND operator evaluates whether both expressions within a set of parentheses have returned true. i.e., both sampleValue3\=’red’ and sampleValue4\=’red’ have returned true.
Finally, the OR operator is used to combine these two sets of expressions. i.e., either (sampleValue3\=’red’\&\&sampleValue4\=’red’) or ( sampleValue3\=’green’\&\&sampleValue4\=’green’) is true.
When used in a conditional section, the conditional section is shown if sampleValue3 and sampleValue4 are both 'red', or are both 'green'.
# Expressions using boolean logic - related json data
```json
{
"sampleValue1": "true",
"sampleValue2": "false",
"sampleValue3": "red",
"sampleValue4": "green"
}
```
# Expressions using boolean logic - example template syntax
```docmosis
**Expressions – Logic**
**Data sent:**
sampleValue1: \<\\>
sampleValue2: \<\\>
sampleValue3: \<\\>
sampleValue4: \<\\>
**Logical OR**
\<\\>
This line will show if sampleValue1 OR sampleValue2 is **TRUE**
\<\\>
\<\\>
This line will show if sampleValue3 OR sampleValue4 is **RED**
\<\\>
**Logical AND**
\<\\>
This line will show only if sampleValue1 AND sampleValue2 are both are **TRUE**
\<\\>
EithersampleValue1 or sampleValue2 is **False**
\<\\>
\<\\>
This line will show only if sampleValue3 AND sampleValue4 both are **RED**
\<\\>
EithersampleValue3 or sampleValue4 is **NOT RED**
\<\\>
**Logical NOT**
\<\\>
This line will show if sampleValue2 is **False**
\<\\>
\<\\>
This line will show if sampleValue4 is **NOT** **RED**
\<\\>
**Combining logical expressions**
\<\\>
This line will show if sampleValue3 AND sampleValue4 are **both RED** or **both GREEN**
\<\\>
Both sampleValue3 and sampleValue4 **both** are **NOT RED**, or **both** are **NOT GREEN**.
\<\\>
```