Javascript Rule Builder
Build complex, powerful custom rules with JavaScript
Getting Started
By default, every rule starts out on the visual rule builder which means you must opt into using JavaScript.
You can opt-in to using JavaScript by navigating to your rule, clicking the "Code Editor" tab and then clicking "Edit Code" which will prompt you about opting into using JavaScript.
Once you convert your rule to using JavaScript, you can go back to the visual rule builder at anytime by clicking the "Rule Builder" tab.
Note: Opting back into the visual rule builder will restore the last state of the rule builder meaning any changes to the JavaScript code will be lost.
Feathery Context
The feathery
object exposes the Context API to your rule's logic. Using this object, you can perform actions such as setting a field value, navigating to a step, setting custom errors and more. Full reference.
Accessing Form Fields
If the field's ID is a valid JavaScript variable name, then you can access the field directly through a field global that is pre-defined for your convenience.
For example:
Note: Field globals are only available in logic rules running inside Feathery, not in SDK call-backs running outside of Feathery.
If the field ID is not a valid JavaScript variable name, then you can access the field using feathery.fields
which is an object containing all keys.
For example:
Each method of accessing the field will result in a Field
object being returned. You can read more about the available methods and properties on the Field object here.
Rule Runtime
Rule are run synchronously in that a rule must complete before feathery runs other rules or continues with form processing. However, network requests made by rules may be either done from within the browser or on the server. In either case, the network request is asynchronous. If you want that network request to complete before continuing, you must await the request call. See an example of awaiting a network request here.
Last updated