SmartSimple configuration refers to the setup and customization of system behavior through workflows, formulas, custom fields, variable syntax, and scripting. Configuration governs how data is collected, processed, and displayed across the system, and understanding SmartSimple's order of operations for scripts and formulas is essential for building reliable, predictable behavior and avoiding logical errors.
Who: System administrators
When to Use Configuration
Use configuration when:
- Setting up or troubleshooting workflows, Variable Processor syntax, or JavaScript and MySQL expressions.
- Learning the correct approach for storing and formatting data in custom fields.
- Choosing between methods to update field values, such as default text, formulas, and workflow tasks.
- Diagnosing unexpected system behavior by understanding SmartSimple's order of operations.
Workflows
When configuring workflows, keep the following in mind:
- Ensure that the workflow contains connectors between tasks, with a defined start and end point, or a connection to another workflow.
- When implementing branching logic within task connectors, account for every potential outcome. Each condition must be mutually exclusive. Avoid overlapping logical conditions.
- Confirm that the object triggering the workflow is appropriately enabled. Level 1 templates must have workflows enabled and specific association workflows selected. Organizations must select specific company or contact workflows.
- Multiple workflows cannot be configured to trigger from a single status.
- Verify that there is no malformed or incorrect syntax in task connectors or workflow routing. For example, routing of an acknowledgment task.
Variable Processor
When working with the Variable Processor, keep the following in mind:
- Ensure that all variables referenced within the system are encapsulated within double quotes.
- Malformed syntax can result in a completely blank page being displayed.
- Ensure there are no mismatched syntax tags, such as sslogic tags embedded within one another or missing sslogic end tags. When embedding different syntax (sslogic, sscalculation, or system variables), understand the SmartSimple order of operations to configure these elements correctly.
- Be aware of all possible return values for a variable. If a value has never been saved to a field, the variable syntax itself will be returned. A variable may also return a blank empty string. The Variable Processor returns a field's configured format by default, such as currency or date format, account for this when manipulating values.
JavaScript and MySQL
SmartSimple uses both JavaScript and MySQL in different areas of the system.
- JavaScript syntax is used in areas displayed to the user in the browser. For example, custom field settings for JavaScript Validation, Special Calculated Value fields, and Special Browser Script fields.
- MySQL syntax is used in backend areas not visible to the user. For example, Template Formulas, Submit Logic, and custom field Visibility Logic.
- The equality operator in JavaScript is a double equal sign (==). In MySQL, it is a single equal sign (=).
- String values must be encapsulated within quotes (double quotes are most secure), reinforcing the recommendation to always encapsulate Variable Processor calls within quotes.
System Call Identifier
The System Call feature allows pre-defined system functions to be executed on the server, avoiding the need for client-side scripting. Benefits include better performance, improved security, and greater stability, since System Calls are programmed and optimized by SmartSimple.
The System Call Identifier is the reference name used for a System Call within a workflow. System Calls can be invoked from a Browser Script custom field using the following syntax:
<!--SysCall_function(@systemCallIdentifierName@)-->
Replace @systemCallIdentifierName@ with the identifier assigned to the System Call in the workflow configuration. JavaScript knowledge is not required to use System Calls.
Correct Data Formats
When storing information in any system, format data consistently to enable calculations, sorting, and analysis. Unstructured data is difficult to manipulate reliably.
To ensure data is stored and represented correctly:
- Design the architecture and schema meaningfully from the start. For example, use separate fields for first name, middle name, and last name rather than a single combined name field.
- Enforce data input into a specific format using validation and transformation. For example, allow only alphabetic characters, apostrophes, and hyphens in a name field.
Apply the following specific practices when designing custom fields:
- Date/time: Always store date and time values as a single Date/time value. SmartSimple stores dates internally in the MySQL format YYYY-MM-DD HH:MM:SS. Using the Date validation on a custom field enforces uniform date storage regardless of each user's display preference.
- Numbers: Use Numeric validation and Currency formatting where appropriate. The system stores the full decimal value, for example 12.948576, and displays it as formatted, for example $12.95.
- General: Enforce consistent formats for all standard data. For example, a Canadian postal code could be entered as M5V 2H1 or M5V2H1. Use the validation configuration of a custom field to enforce one specific format with consistent casing.
Resources
For more information about configuration, see: