> This page is for Docs.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://zuora.ferndocs.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://zuora.ferndocs.com/_mcp/server.

# Decision tree overview

> Decision tree, a supported custom logic type in Zuora, allows you to define logic rules for standard objects with a codeless user interface.

Decision tree, a supported custom logic type in Zuora, allows you to define logic rules for standard objects with a codeless user interface.

You can create logic rules with if-then-else statements in decision trees. When objects are created or updated, Zuora triggers the rules in decision trees to validate data accuracy or manipulate field values.

If you want to create more complicated logic rules with advanced calculations or operations, see [Function](/docs/platform/extensibility/custom-logic/function/function-overview).

## Supported objects

For all supported objects and fields, see [Objects and fields supported by Custom Logic](/docs/platform/extensibility/custom-logic/objects-and-fields-supported-by-custom-logic).

## Rule evaluation process

A decision tree consists of one or more if-then statements and one else statement.

When an object is created or updated, Zuora evaluates the first if-then statement in the decision tree. If the conditions in the IF statement are met, Zuora executes all results in the THEN statement. If the conditions are not met, Zuora skips this if-then statement and evaluates the next one.

If all if-then statements are skipped, Zuora evaluates the results in the ELSE statement.

`Result.Success` determines the evaluation outcome, and `Result.Message` defines the error messages displayed on associated object pages in the Zuora UI.

## Example

![decision tree](/_fern-img/ffcbdef7d2576e01d2eeb7e63db6604ac5f8a5559d98da7e1e129d641b15b5cd.webp)

In this example, when an account object is created or updated, if the `CustomerBalance__c` custom field of this account is greater than or equal to `0`, the evaluation succeeds and Zuora will create or update the account object. Otherwise, the evaluation fails and Zuora will not create or update the account object.