Advanced SmartSuite Solution Design, including Relationships, Rollup Fields, and Data Modeling
When your data is consolidated within a centralized and robust workspace, it is crucial to properly organize your apps, fields, and views to optimize both performance and ease of use for all collaborators. To ensure the success of your SmartSuite Solutions, both new and existing, it is important to consider the following best practices for proper architecture and organization.
At a high level, it is important to follow these guidelines when planning your SmartSuite Solution structures:
- Avoid Redundancy.
- Streamline User Experience.
- Control Access Appropriately.
- Automate Repetitive Tasks.
- Maximize Performance.
Identifying and reducing redundancy in any database schema - including the design of SmartSuite Solutions and Apps - is a crucial step in ensuring the efficiency and accuracy of your data storage. Redundancy occurs when the same information is stored multiple times, leading to increased storage requirements, App “sprawl” with the creation of many similar structures to hold essentially the same information, and (perhaps most significantly) the potential for inconsistencies.
Why is it important to reduce redundancy in your design?
When data is stored multiple times in the same Workspace, it increases both storage requirements and complexity, introduces the need to sync or update data multiple times, and can naturally lead to inconsistencies and poor data quality. For example, if an employee's information is stored in multiple Apps and their address is changed in one of those Apps, it may not be updated in the others. Users who are not informed about which App is authoritative for individual pieces of information could then accidentally rely on outdated, inaccurate information.
How do I identify redundancy?
Review your planned Solutions and Apps (or existing ones if you are looking to optimize a current structure) and look for tables or fields that contain similar information. It is also important to review any relationships between tables to ensure that the data is normalized.
If you’re not familiar with data normalization, it is the process of organizing data in a database so that it is stored in an efficient and organized way. Think of it like a filing system for your computer. Just like how you would want to keep all your documents in different folders and subfolders, so you can easily find what you need, you want to organize your data in a database in a similar way.
By normalizing a database (in our case a Workspace and its Solutions and Apps), you are breaking up the information into smaller, more manageable chunks, which can make it faster to search and less likely to have errors. It also helps in reducing data duplication and ensures that data is consistent and accurate. In simple terms, it's a method to design the data structures in an optimal and efficient way.
Best practices for reducing redundancy in SmartSuite
Normalize the data: Normalization is the process of organizing data in a way that eliminates redundancy and improves data integrity. By normalizing the data, you can ensure that each piece of data is stored only once and can be easily accessed and updated.
Use Linked Records: Linked Record fields are used to establish relationships between apps. By using them, you can ensure that each piece of data is stored only once and can be easily accessed and updated, and that appropriate permissions are applied to control who can make those updates..
Have a Single “Source of Truth”: One of the most helpful things you can do when creating a SmartSuite data structure is to unify “like” data in a single App (or Solution, if the data is split across multiple Apps). For example, instead of having a Customers App in your Marketing Solution and your Sales Solution, Create a Customer Data Solution that Contains a Companies App and a Contacts App. You can then link to that common Solution from both Marketing and Sales (which very likely share many of the same contacts!) to increase visibility, reduce duplication and make it easier to keep everything up to date.
Use Data Validation: Data validation is the process of ensuring that the data entered into the system meets certain criteria. Many SmartSuite field types have integrated data validation, ensuring that their content meets certain criteria. For example, Email fields require a well-formed email address, and Phone fields require formatting that ensures they are valid numbers.
Monitor and Maintain SmartSuite’s Structure: Regularly monitoring and maintaining the structure of your Solutions and Apps can help identify and address any issues with redundancy. You may consider limiting the number of Solution Managers with the access and authority to change important Solutions and their structures to reduce the chance for losing data or reducing its quality.
Streamline User Experience
Well-optimized data structures may not be inherently user-friendly, and the usability of your SmartSuite system should be considered when planning out each activity, task or process that will be managed in SmartSuite. We encourage you to consider the following points when planning your implementation or updates.
Select the Right View
SmartSuite offers a number of different view types, from spreadsheet-like Grid View to more specialized views such as Kanban, Map and Chart. You should consider the type of work that your end user will be performing and select the view that makes it easiest to see the current state of their work, what needs to be done, and whether they have the information at hand to accomplish the task.
When you configure your Views, remember two important things:
- Use the Report Toolbar. You can use sorting, grouping, filtering and spotlights to display the right data, highlight important information, and focus users on information that is critical to managing their work. Remember that you can filter records by the current user’s assignments (using Assigned To fields) to give them a view of things in their task assignment queue.
- Lock Important Views. When you want to standardize a work process it can be helpful to lock the view so that changes can be made only when the view is unlocked. This prevents accidental changes that could impact the information presented to end users that may be less familiar with SmartSuite’s configuration.
Grid View offers a lot of flexibility which can be unnecessary for managing straightforward tasks. For simple data entry, SmartSuite Form Views can be used internally as well as with external users, offering a simple and streamlined way to get information into SmartSuite.
Once your Form View is shared, it can be accessed either by URL or by embedding it in existing HTML. One option is to paste the embed code into a Custom Code widget and place it on a Dashboard that is designed to support streamlined data entry. Remember that you can adjust the Height properly in the iFrame code for the embed to display just the right amount of information on the page.
Take Advantage of Dashboards
While individual Views are great for managing specific tasks, it is often helpful to use a Dashboard to convey overall status or general information to your end users. Dashboards can be used to combine information from multiple Apps - and even different Solutions - to create a holistic view of a work process or set of processes.
A few ideas:
- Use Metrics. You can quickly summarize data and display changes over time, which can help you track important KPIs and other performance indicators.
- Embed Content. You can embed Reports or Grid Views in your Dashboards, and can even control how much data to return (it’s easy to create a “top 10 list” and similar displays with this function). If you have external content, use a Custom Code widget with its embed code to display it directly on the Dashboard to reduce the amount of context-shifting your users need to do.
- Create a Process Home Page. Gather up all of the metrics, charts and other important information for a single process and display it together on a unified Dashboard to form a sort of “command center” that shows the process’s health.
Control Access Appropriately
While it is possible to use SmartSuite for collaboration in a very open and uncontrolled manner, you may consider layering in access controls as you refine and optimize your business processes. Striking the right balance between flexibility and structure is important to ensure that your data remains accurate, reports are consistent and metrics reflect known, well-defined values.
There are a few best practices around managing access controls in SmartSuite that you should consider when planning your approach, including ways to limit the ability to modify important data while preserving accessibility to that data for use in your work processes.
Limit Administrator Role Use
SmartSuite Members given the Administrator role have no restrictions on their ability to modify the SmartSuite Workspace, its configuration and data. It is highly recommended to restrict the number of Administrators in a Workspace, limiting that access level to individuals responsible for the entire program and its core functions, such as billing and user management.
It is also a best practice for Administrators who manage critical business processes in SmartSuite to have two accounts, one for Administrative functions and one for Solution Design, day-to-day management and operations. This helps avoid accidental modifications to structures that are part of ongoing processes and inadvertent changes that impact defined workflows.
Manage Solution Manager Permissions
A best practice for assignment of Solution Manager permissions is to break permissions assignment into two phases: build / test and operational. In the first phase a larger number of users may have the permissions to make changes, add Views and create automations for the new Solution.
Once you have reached a point where the Solution and its Apps are ready for production use, however, it is suggested that you reduce the number of Solution Managers to just a small group - as many as are appropriate for the volume of adjustments and modifications you believe will be necessary to maintain things during its active use.
This approach allows you to empower user-creators to add, modify and help shape the process. We believe that this is one of the powerful aspects of SmartSuite’s platform, allowing end user / consumers of a process to ensure that it meets their needs. At the same time, revoking some of these permissions is appropriate as a process matures to ensure that change controls are in place, automations are not disrupted, and other process participants can be informed of upcoming changes.
This also conforms to the “least access” principle that is a bedrock principle of application security, granting only those permissions required to perform the functions and operations required to complete the task.
Use the Assignee Permission
In many cases, it is appropriate for users to see all of the data contained in an application, whether they can edit it or not. A global user directory or a list of customer accounts may be an example of this type of data.
In other cases, it is more desirable for individual users to view only those tasks that they are assigned to. Take the case of HR profile data as an example. Employees may have access to their own records, or the records belonging to their Team, but may not access the details of the same records for other employees. This type of control can be configured with the Assignee permission, where users can only view those records they are specifically authorized for.
Viewer Permissions for Managed Data
When configuring a shared data source that is maintained by a team or perhaps synchronized from an external system, it is often desirable to make the data accessible to all Workspace Members, but modifiable by a select few only.
The best practice for this type of configuration is to isolate that data in a Solution dedicated to it, with one or more Apps holding the data that should be shared. Set the Solution permissions to Advanced and add the Everyone group as Viewers at the solution level. The individuals or teams requiring greater levels of access can be added with the appropriate permissions. This allows anyone to view the data, while other Apps can be configured (by an individual with the appropriate permissions) to use a Linked Record to reference the data.
Automate Repetitive Tasks
Once you have your Solution and App structures set and have defined your business processes, your next step should be to identify portions of those processes that can be automated. SmartSuite offers a robust automation capability that allows the system to detect and react to certain data conditions and events, creating or updating records or taking other actions (such as sending emails, interacting with external systems and more) in response.
Good candidates for automation generally follow the following patterns:
They Follow a Well-Defined Process
In order to automate a process, it has to follow rules that can be translated into conditions that are interpreted by the system. An example might be a Sales CRM process, where an Opportunity record needs to be created when a Leads record is set to “Converted to Opportunity” status. You could create an automation that detects when the Lead changes from any status to “converted,” eliminating the need for a person to take that manual action - and simultaneously ensuring that an Opportunity record is created every time this condition occurs to reduce the chance for human error.
They Involve a Known Set of Data
Automations need to have a defined set of data - in SmartSuite’s case Fields - that they interact with. Automations need to be instructed where to retrieve information that will be used in the automated action, so having a static set of fields that are reliably populated with data is essential.
For example our Sales CRM process mentioned above would involve the values in a Status type field, potentially one or more Assigned To fields, and perhaps additional fields from the Lead App.
They need to happen frequently
If you’re performing a particular process or action once a month, creating an automation to handle that task may provide limited business value. With Apps that involve hundreds or thousands of records with complicated workflows that require adding checklist items when a new phase begins, or creating records automatically when an update happens, there may be a very different value proposition for automation.
Evaluate the repetitive steps in your workflows and see which of these are frequently occurring and are “mechanical” - in other words, they follow the same pattern using the same criteria each time, and do not involve a person’s judgment or decision making. These are your top candidates for automation, as they will not only save time and increase productivity but also cut down on the chances for error or omission.
It is often said that performance is the most important feature of a SaaS platform, and while SmartSuite has constructed the platform to be as high-performance as possible you can make conscious design decisions that affect overall performance, page responsiveness and user experience.
Solution performance is affected by various factors related to its design. An App with many records or formula fields will load and display more slowly than Apps with a simple structure. Simplifying the individual Apps will improve performance and these improvements will be automatically reflected as changes are made.
To improve performance, try the following:
- Use filters to create limited views. For example, if your App has 20,000 records but you only need to view records from the past month, set up a filter (or several filters) to reduce the number of records shown. The result will be a lighter page that scrolls faster and loads quickly.
- Delete any unused records. Unused records can be deleted, or copied to another Solution/App structure for historical purposes prior to their removal. Also delete unused Apps or entire Solutions if they are no longer in use.
- Eliminate any non-essential Formula, Linked record, or Rollup fields. This will reduce latency and require SmartSuite to do less work to keep records up to date.
- Reduce API usage or insert a pause between calls if making many API calls. High write volume can affect performance for large Apps.
Other things to consider when evaluating performance include:
- Internet connection speed. Data can only load as fast as it can move across your connection to the internet. Users on slower networks may experience sluggishness or unresponsive elements of the UI.
- Browser extensions. Certain browser extensions (especially ad-blockers) introduce overhead and increase page load times.
- Browser overhead. Users who have dozens of tabs open, all loading complex Web-based apps, may run short of memory and processing speed thereby slowing down their experience.