--- title: "SDK: Flow Steps (Basic)" slug: "flow-steps-simple" description: "Learn how to create custom Flow Steps in Visual Studio by referencing Decisions, using a zip code validation example." tags: ["Flow Step", "SDK Basic", "SDK"] updated: 2026-04-27T20:46:52Z published: 2026-04-28T14:12:58Z canonical: "documentation.decisions.com/flow-steps-simple" --- > ## Documentation Index > Fetch the complete documentation index at: https://documentation.decisions.com/llms.txt > Use this file to discover all available pages before exploring further. # SDK: Flow Steps (Basic) ## Overview Developers can easily create custom Flow and Rule steps by methods in a **Class Library (.NET Core) project**. This article will show users how to accomplish this. For more examples Prerequisites - Knowledge of the desired integrated development environment (IDE) for development - Understanding of SDK in Decisions. To learn more, visit [SDK Overview](https://documentation.decisions.com/version-10/docs/sdk-overview) and [SDK Basics](https://documentation.decisions.com/version-10/docs/project-sdk-extensions). - Custom steps will be located and stored at **C:\Program Files\Decisions\Decisions Server\modules\Decisions.Local\CoreServiceDlls** --- ## Basic Flow Step The below code example will create a Flow step that checks if a string is 5 digits long. For more examples, check the [Public GitHub Repository](https://github.com/decisions-com/sdk-examples) for Decisions. This code uses the **AutoRegisterMethodsOnClass** attribute, which will allow the code to show as a Flow step in the Steps panel. This attribute and others are further explained in the [AutoRegister Attribute Glossary](https://documentation.decisions.com/version-10/docs/autoregister-attributes) article. ```csharp using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using DecisionsFramework.Design.Flow; namespace ShippingExtensions { [AutoRegisterMethodsOnClass(true, "SDK/ZipCode")] public class ZipCodeManagement { public bool IsZipCodeValid(string zipCode) { if (zipCode.Length ==5) { foreach (char eachChar in zipCode.ToCharArray()) { if (Char.IsDigit(eachChar) == false) { return false; } } return true; } return false; } } } ``` | Code Snippet | What it does | | --- | --- | | using DecisionsFramework.Design.Flow | Decisions reference | | [AutoRegisterMethodsOnClass(true, "SDK/ZipCode")] | This attribute will allow the code to show as a Flow step in the Steps panel. "SDK/ZipCode" will be the categories that this step is nested in within. | | IsZipCodeValid(string zipCode) | This will be the name of the step and (string zipCode) will be the input. | | return true | The output of this step | | return false | The output of this step | --- ## Using the Method in Decisions After writing the method to build the project, add it to Decisions by following the steps in [Software Development Kit (SDK) Overview](https://documentation.decisions.com/version-10/docs/sdk-overview). Custom code needs to be saved here: **C:\Program Files\Decisions\Decisions Server\modules\Decisions.Local\CoreServicesDlls** 1. [Create a new Flow](/version-10/docs/create-flows). 2. In the **Steps** panel, navigate to **SDK > ZipCode.** ![](https://cdn.document360.io/6ef8bcc1-6489-4486-9ad1-83acff7e5df0/Images/Documentation/2024-08-22_16h58_21.png) 3. Drag and drop the custom **Is Zip Code Valid** step onto the workspace. 4. This step displays as a Rule step with a True and False outcome as stated in the method written. The step also has the Zip Code input that is expecting a string. 5. Click **Unknown** and select **Constant** as the mapping type, and type in a 5-digit zip code. ![](https://cdn.document360.io/6ef8bcc1-6489-4486-9ad1-83acff7e5df0/Images/Documentation/2024-08-22_17h00_04.png) 6. Click **Save** to save changes to the Flow. --- ## Debug 1. Click **Debug** on the top action bar. In the debugger, the Flow runs using "23322" as the input for the Rule step, and the step outputs as True. ![](https://cdn.document360.io/6ef8bcc1-6489-4486-9ad1-83acff7e5df0/Images/Documentation/2024-08-22_17h01_00.png) --- For further information on SDK, visit the [Decisions Forum](https://community.decisions.com/categories/SDK).