--- title: "User Certifications" slug: "user-certifications" updated: 2025-10-28T15:55:49Z published: 2025-10-28T15:55:49Z canonical: "support.tulip.co/user-certifications" --- > ## Documentation Index > Fetch the complete documentation index at: https://support.tulip.co/llms.txt > Use this file to discover all available pages before exploring further. # User Certifications ## Overview of this article - The scope of this article discusses a simple Tulip Table solution to implement a solution for User Certifications wherein depending on a User's Certification status, a User is or is not able to perform a function in a Tulip app. - The context of this solution is an alternative to integration to a traditional Learning Management System (LMS), when an LMS is not implemented or integration to an LMS is not practical. --- ## Solution Design This simple solution consists of a single horizontally-scalable Tulip Table, optionally a 'CRUD app' enabling appropriate users to Create/Read/Update/Delete records in the table, and app triggers to check for certifications. ### Tulip Table Design Create a Tulip Table with the following columns, where each record represents the association between a user and a specific certification. This structure is both simple and scalable, with one record per user-certification pair. When a user is re-certified, only the 'Expiration Date/Time' field requires updating. ![image.png](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/image-FF2DJBMS.png) #### Columns | Column | Data Type | Summary | | --- | --- | --- | | ID | Text | Can be a RANDOMSTRING(). Just needs to be a unique value. | | User | User | The user to which the certification applies. | | Certification Name | Text | Name of the certification. | | Expiration Date/Time | Datetime | Certification's expiration date and time. | #### Query & Aggregations Use dynamic queries to check certification status by passing the logged-in user and required certification name into the app. ![Screenshot 2025-10-28 at 8.19.00 AM.png](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/Screenshot%202025-10-28%20at%208.19.00%E2%80%AFAM.png) **Query Limit**: Set to 1, as there should only be one record per User <-> Certification Name, pair. **Aggregations** - Count aggregation - if the Count = 0, the User does not have the certification. - Use a 'Mode' aggregation on the 'Expiration Date/Time' - If the 'Expiration Date/Time' is >= the App Info - Current Date and Time, the User is allowed to perform the function as determined by the App's design. --- ## Additional Solutions For a more sophisticated solution, consider the 'Frontline Training and Skill Management' app suite: - [Knowledge Base article](/r230/docs/frontline-training-management) - [Tulip Library link](https://library.tulip.co/suites/frontline-training-management-system) --- Did you find what you were looking for? You can also head to [community.tulip.co](https://community.tulip.co/?utm_source=intercom&utm_medium=article-link&utm_campaign=all) to post your question or see if others have solved a similar topic!