Defined Smart Sources
Defined Smart Sources, or LogicStacks as we like to call them, allow you to configure a smart source for situations where you need to conditionally return either a smart source or a constant value. There are many situations where this can be useful, and it gives users a lot of creative freedom! Below are some generic examples of the types of logic that can be achieved with conditional smart sources:
- You have a field on your form and you want to return
123ifABCis true or return456ifXYZis true. - You have a field on your form and you want to return
123only onceABCandXYZare populated.
Navigation: Manage GT eForms 3.x > GT Functional Setup > eForm Parts Gallery > Custom Parts > Defined Smart Sources
Search
You may search for existing Defined Smart Sources or add new ones.
Find an Existing Value
Use the search to find an existing Defined Smart Source.

| FIELD | VALUE |
|---|---|
| Unique Smart Source ID | Optional – enter full or partial ID of desired Defined Smart Source to view/edit |
| Smart Source | Optional – enter full or partial Smart Source Name to view/edit |
| Recent Searches | Choose the dropdown arrow to select a recent search. Click the pencil icon to 'Manage Recent Searches'. You can delete individual searches by clicking the 'X' on the row, or you can delete all recent searches by clicking the 'Delete All' link. Click the 'Save' button to save your changes or the 'Cancel' button to return to the search page without saving changes. |
| Saved Searches | Choose the dropdown arrow to select a saved search. Click the pencil icon to 'Manage Saved Searches'. You can display the saved searches in a different order by selecting the 'Display By' dropdown. The options are 'Newest on top', 'Alphabetical', or 'Oldest on top'. Click the 'Rename' link to rename the saved search. You can delete individual searches by clicking the 'X' on the row. You can delete all saved searches by clicking the 'Delete All' link. Click the 'Save' button to save your changes or the 'Cancel' button to return to the search page without saving changes. |
| Save Search (button) | Once you enter text into the 'Unique Smart Source ID' field and click the 'Search' button, the 'Save Search' button will appear. Click the 'Save Search' button and enter a 'Name' for the search. Click the 'Save' button to save your changes or the 'Cancel' button to return to the search page without saving changes. |
| Show more options / Show fewer options (link) | The search will default to 'begins with', but the operator can be changed. Click the 'Show fewer options' link to search using 'begins with' on a single field. |
| Case Sensititve | The Case Sensitive checkbox allows you the option to make the search case-sensitive. |
| Search (button) | Click the 'Search' button to search for existing math smart sources |
| Clear (button) | Click the 'Clear' button to remove the text in the 'Unique Smart Source' field |
| Add a New Value (button) | Click to add a new Defined Smart Source |
Search Results
The search results display all Defined Smart Sources that match your selected search criteria. If the search fields are left blank, all the Defined Smart Sources will be displayed. Click anywhere in the row of the smart source you want to open. The results table includes the following columns:
Unique Smart Source ID
Smart Source
Type
Smart Source Return Type
Click any column heading to sort the results in ascending or descending order.
Add a New Value
Click on the 'Add a New Value' button to create a new Defined Smart Source. Enter a unique name for the smart souce and click the 'Add' button.

| FIELD | VALUE |
|---|---|
| Unique Smart Source ID | Enter a unique name using alphanumeric characters. The name can contain spaces, hyphens (-), question marks (?), exclamation points (!), and underscores (_). Once saved, this unique ID cannot be changed. |
| Add (button) | Click button to add the new Defined Smart Source after adding a Unique Smart Source ID name |
| Find an Existing Value (button) | Click button to search for an existing Defined Smart Source |
Logic Stacks
The Logic Stacks page defines the values that the smart source can return, as well as the logic for returning those values.

Smart Source Properties
| FIELD | VALUE |
|---|---|
| Smart Source ID | Displays the ID value entered when adding a new defined smart source |
| Smart Source Return Type | Field data type returned by the Defined Smart Source. Options include Date, Number, or String (all supported characters) |
| Smart Source Name | Enter a unique name. Use it to search for this smart source anywhere within the GT Framework. The name can be the same as the Smart Source ID. |
| Notes | Enter notes as needed to document information about the Defined Smart Source for future reference |
Smart Source Logic
| FIELD | VALUE |
|---|---|
| Up Arrow (button) | Moves the row up |
| Down Arrow (button) | Moves the row down |
| Type | Dropdown - select Constant to add a static value or select Smart Source for a dynamic value |
| Constant | Enter a static value where the data value matches the option selected for Smart Source Return Type. Note: If String is selected for Return Type, field is limited to 254 characters. |
| Smart Source | Enter a smart source where the data value matches the option selected for the Smart Source Return Type |
| Search | Use the lookup icon to select any smart source in the framework |
| Logic | Use to add a visual if for when the Defined Smart Source should return the value in the row |
| Add a Row (button) | Adds a new row below the row where the button is clicked |
| Delete a Row (button) | Deletes the row where the button is clicked |
Configuration Tips
The logic stack will resolve in the row order that is configured. This means if the visual if on the first row is true, then that value will be returned, and no further rows will be evaluated. If you need to re-sort the row order, you may use the Up and Down arrows to set the correct sequence. If none of the visual ifs return true, then the smart source will not return any value. If you set the last row of the stack to have a constant/smart source but use a blank visual if, it will have the same effect as none of the rows returning true and equate to saying 'if else' return this value.
You can use these smart sources anywhere in the framework (email templates, initialize from, update when the source changes, etc.). However, they may not work in participation rosters to control who can see the form task links. That is because participation rosters cannot rely on form data. You may use a logic stack in a participation roster if it only uses system variables, such as Current Oprid.