# Create policies

When you create a policy, you specify the following:

- Conditions of the policy, including standard and custom conditions.
- A workflow of steps.


## Create a policy

To create a policy:

1. Navigate to **Policies**.
2. Click **Create a policy**.
3. Enter the policy details, as follows:


| Page | Details |
|  --- | --- |
| General information | General details of the policy:The policy name.Optional information, including a description and any custom properties.The rank: The order of precedence of the policy relative to other eligible policies. |
| Conditions | Conditions a proposed intent must fulfill for the policy to apply:Governing scope:**Self**: Only applies to intents submitted in the current domain**Descendants**: Only applies to intents submitted in subdomains of the current domain.**Self and Descendants**: Applies to intents submitted in both the current domain and its subdomains.Scope of application:Applies to all intent types.Applies to specific intent types: Select the intent types the policy can apply to.Other conditions the intent must fulfill for the policy to be selected:Standard conditions expressed as key-value pairs.Custom conditions.[Learn more about custom conditions](#custom-conditions)You can view the conditions in JSON format in the **Preview** tab. |
| Workflows | Details of the approval workflow to apply to the intent:Always reject: The intent is rejected without user intervention.Approval workflow with one or more steps. Each step includes the following:An approval group: One or more users with a particular user role that must approve the intent.Optional conditions: Additional approval groups separated from each previous group by **AND** and **OR**, to specify if the current group must approve in addition to the previous group, or can approve instead of them.The submitter of the intent is always the first approver, so the role of the first step must correspond with the user role that can create the specified entities. |
| Summary | This page is for review and submission only. |


1. Click **Submit for approval** and [sign the operation with the app](/products/custody/v1.26/ui/get-started/key-operations/intent-signature).


The new policy is created when the intent is successfully executed.

## Custom conditions

Custom conditions consist of two key-value pairs in JSON format: `type` and `expression`. The expression is written as a JavaScript expression.

When Ripple Custody tests the conditions after intent submission, if the expression evaluates to `true`, then the policy is eligible to apply to the current intent.

Creation of custom conditions is a technical task best performed by users with a good understanding of JSON and JavaScript.

For more information on how to write custom conditions, see [Conditions](/products/custody/v1.26/api/environment/policy/conditions) in the API documentation.