Recipes Explained
About Recipes
A ntw_logicrecipe entity record represents a Logic Recipe definition. The definition includes properties of the Recipe, such as the name of Logic Recipe, the Project to which the Recipe is related, and its configuration as a JSON document.
The three Plugins Flux.Crm.LogicRecipes.Plugins.LogicRecipePlugin, Flux.Crm.LogicRecipes.Plugins.LogicRecipeValidationPlugin and the Flux.Crm.LogicRecipes.Plugins.LogicRecipeOperationPlugin plays a pivotal role during the lifetime of a logic recipe definition.
Flux.Crm.LogicRecipes.Plugins.LogicRecipePlugin plugin supervises the customizations for Recipes. This Plugin springs into action whenever you create a new recipe, make changes, or delete it. The Plugin validates configuration and performs the necessary customization in response to updates. This supervision manifests in a few plugin registration steps (Figure 1: Flux Recipe)

Figure 1: Flux Recipe
Recipes Plugin Steps
| Message | Stage | Description |
|---|---|---|
| Create | PreValidation | Upon creating a Logic Recipe, the Plugin performs a series of validations to ensure the integrity of the configuration. The Plugin blocks the creation of the Recipe in case of validation failures. |
| Create | PostOperation | Following successful validation, the Plugin executes to register a validation step through the Recipe Validation Plugin and an operational step through the Recipe Operation Plugin in the post-operation stage (On Creating and After Creating) (Figure 2: Recipe Create Customizations). |
| Delete | PreOperation | The Plugin executes to delete the recipe with all the registered steps. (Figure 4: Recipe Delete Customizations). |
| Update | PostOperation | After a recipe is updated, the Plugin executes to register any new step or update an existing one. (On Update, After Update) (Figure 3: Recipe Update Customizations). |
Table 1: Recipes Plugin Steps

Figure 2: Recipe Create Customizations

Figure 3: Recipe Update Customizations

Figure 4: Recipe Delete Customizations
Logic Recipe Validation Plugin
Flux.Crm.LogicRecipes.Plugins.LogicRecipeValidationPlugin plugin enforces the validations for a recipe by running Logic Blocks during the pre-validation stage.

Figure 5: Flux Recipe Validation Plugin
Logic Recipe Operation Plugin
Flux.Crm.LogicRecipes.Plugins.LogicRecipeOperationPlugin plugin handles running pre-operations, and post-operation flows for a recipe.

Figure 6: Flux Recipe Operation Plugin
What's Next
After exploring the internals of Recipes, let's end our under the hood toor by exploring the internals of the flux project.