Low Code configuration
The Low Code configuration defines the logical structure (the skeleton) of your data, how it is stored, and how it can be manipulated.
Namespaces
A namespace is the root of your Low Code application, as it encapsulates the components that make up a specific application. For example, CRM related things go under the CRM namespace; call centre things go under the call centre namespace.
A namespace can be thought of as a schema in a relational database. The schema encapsulates modules, their attributes, and entities. |
Create a namespace
-
navigate to the Corteza Low Code page,
-
click on the "Create namespace" button at the bottom of the page,
-
provide all the requested data (see namespace properties),
-
press the "Save" or "Save and close" button.
You can only define permissions for existing namespaces. |
Edit a namespace
-
navigate to the Corteza Low Code page,
-
hover over the namespace you wish to edit,
-
press on the edit icon,
-
provide all the requested data (see namespace properties),
-
press the "Save" or "Save and close" button.
Delete a namespace
Not sure if the namespace could be used in the future? You can just disable the namespace. |
-
navigate to the Corteza Low Code page,
-
hover over the namespace you wish to delete,
-
press on the edit icon,
-
press and confirm the "Delete" option.
Namespace properties
- Full namespace name
-
The name of your application, which will is visible in the Low Code Namespaces menu. Keep your namespace names short and descriptive.
- short name
-
A shortened name (slug) is used as a human-friendly identifier within the system. You can use the short name instead of the namespace ID (that long number) within your automation scripts and URL references.
The provided short name must:
|
- Subtitle
-
The subtitle is shown below the name of the application in the Low Code Namespaces menu.
- Namespace description
-
A longer description that appears when hovering over the namespace in the Low Code Namespaces menu.
- Enable namespace
-
The namespace is shown regardless of the value; when disabled, you can not enter the namespace.
Permissions for all namespaces
- Access any namespace
-
Determines if the role is allowed to access any Corteza Low Code namespace.
- Update any namespace
-
Determines if the role is allowed to update any Corteza Low Code namespace.
- Delete any namespace
-
Determines if the role is allowed to delete any Corteza Low Code namespace.
- Manage any namespace
-
Determines if the role is allowed to manage any Corteza Low Code namespace.
- Create modules under any namespace
-
Determines if the role is allowed to create modules for any Corteza Low Code namespace.
- Create charts under any namespace
-
Determines if the role is allowed to create charts for any Corteza Low Code namespace.
- Create pages under any namespace
-
Determines if the role is allowed to create pages for any Corteza Low Code namespace.
Permissions for a specific namespace
- Read namespace "(namespace name)"
-
Determines if the role is allowed to access the given namespace.
- Update namespace "(namespace name)"
-
Determines if the role is allowed to update the parameters of the given namespace.
- Delete namespace "(namespace name)"
-
Determines if the role is allowed to delete the given namespace.
- Manage namespace "(namespace name)"
-
Determines if the role is allowed to access the administration section of the given namespace.
- Create modules under namespace "(namespace name)"
-
Determines if the role is allowed to create modules under the given namespace.
- Create charts under namespace "(namespace name)"
-
Determines if the role is allowed to create charts under the given namespace.
- Create pages under namespace "(namespace name)"
-
Determines if the role is allowed to create pages under the given namespace.
Modules
A module stores and shapes your data (records) for a given namespace.
The data from namespace A
can not be referenced by namespace B
.
Relational database correlation:
|
Corteza Low Code supports multi-value fields, which removes the need of simple pivot tables. |
When exporting multi-value fields into the CSV format, only the first value is exported. |
Module definition guidelines
- Module name
-
The module name should be in PascalCase with spaces allowed, it should be short and descriptive, with no special characters except for
:
(colon),-
(dash),_
(underscore),/
(forward slash) and\
(backwards slash). - Module handle
-
The module handle should be in snake_case, it should be short and descriptive, with no special characters.
The provided handle must:
|
Module field definition guidelines
- Field name
-
The module field name should be in snake_case, it should be short and descriptive, with no special characters.
The provided name must:
|
- Field title
-
The maximum module field title length is 64 characters. There are no other restrictions.
- Type
-
The module field type defines the type of the stored data. Make sure to use appropriate types.
Create a module
-
navigate to the Corteza Low Code page and enter the namespace you wish to edit,
-
click on the "Admin panel" in the top right corner,
-
navigate to the "Modules" subpage,
-
enter the module name and press the "Create" button,
-
provide the module handle and save the changes.
You can only define permissions for existing modules. |
Importing modules
The current module importing system is unable to resolve relations between different modules via record fields. References must be fixed manually after the system finishes with the import. |
Currently, only the JSON format is supported. |
-
navigate to the Corteza Low Code page and enter the namespace you wish to edit,
-
click on the "Admin panel" in the top right corner,
-
navigate to the "Modules" subpage,
-
find the "Import module(s)" section on the top of the page,
-
click on the "Browse" button and select the JSON file containing module definitions,
-
click on the "Import" button,
-
select on the modules you wish to import and press the "Import" button.
Editing a module
-
navigate to the Corteza Low Code page and enter the namespace you wish to edit,
-
click on the "Admin panel" in the top right corner,
-
navigate to the "Modules" subpage,
-
click on the edit icon next to the module you wish to edit,
-
update the data and save the changes.
Deleting a module
-
navigate to the Corteza Low Code page and enter the namespace you wish to edit,
-
click on the "Admin panel" in the top right corner,
-
navigate to the "Modules" subpage,
-
click on the edit icon next to the module you wish to edit,
-
click on the "Delete" button on the bottom of the page and confirm the action.
Adding module fields
-
navigate to the Corteza Low Code page and enter the namespace you wish to edit,
-
click on the "Admin panel" in the top right corner,
-
navigate to the "Modules" subpage,
-
click on the edit icon next to the module you wish to edit,
-
click on the "+ Add new field" button,
-
configure the field as you see fit and save the changes (see module field properties).
Editing module fields
If the module contains records, the editing interface is limited. If you wish to change the disabled properties, we suggest you create a new field instead. |
-
navigate to the Corteza Low Code page and enter the namespace you wish to edit,
-
click on the "Admin panel" in the top right corner,
-
navigate to the "Modules" subpage,
-
click on the edit icon next to the module you wish to edit,
-
configure the field as you see fit and save the changes (see module field properties).
Deleting a module field
When deleting existing fields, the change will not take effect unless you explicitly save the changes. When deleting new fields, the changes take effect immediately. |
-
navigate to the Corteza Low Code page and enter the namespace you wish to edit,
-
click on the "Admin panel" in the top right corner,
-
navigate to the "Modules" subpage,
-
click on the edit icon next to the module you wish to edit,
-
click on the trashcan icon next to the field you wish to delete and save the changes.
Module field properties
- Name
-
The name for the field defines how the values are stored. If you don’t provide a title, the field name is used as the title.
The provided name must:
|
- Title
-
A human-friendly field title shown when interacting with the data. It should be short, descriptive and limited to 64 characters. No other restrictions apply.
- Type
-
The module field type defines the type of the stored data. Make sure to use the appropriate type.
- Multi value
-
Multi value fields allow you to store multiple entries under the same field. This removes the need for simple pivot tables.
When exporting multi-value fields into the CSV format, only the first value is exported. |
- Required
-
The required flag makes the field mandatory for the end-user when creating or editing a record.
- Private
-
The private flag marks the data as sensitive; such as name, email, or telephone number. This helps make your namespace compliant with privacy regulations, such as GDPR.
Module field types
Access additional configuration options, by pressing on the wrench icon next to the field type. |
The checkbox field type represents a true/false (yes/no) value; a boolean. When editing, the field is a checkbox; when viewing, it’s the value label. Additional configurations:
|
|||||
The date and time field type represents a temporal value (date and/or time); a timestamp. When editing, the field is a date-time picker; when viewing, it’s a text string. Additional configurations:
|
|||||
The email field type represents an email address (the field has some built-in value validation). When editing, the field is an email input box; when viewing, it’s either a link or a text string. Additional configurations:
|
|||||
The select / dropdown field type represents a text value that is limited to the specified set of options. When editing, the field is a native dropdown; when viewing, it’s a text string. Additional configurations:
|
|||||
The number field type represents a numerical value. When editing, the field is a number input; when viewing, it’s a formatted text string.
Additional configurations:
|
|||||
The record field type represents a reference to another record. When editing, the field is a searchable dropdown select field; when editing, it’s a clickable link.
Additional configurations:
|
|||||
The string field type represents a text string value. When editing, the fields are either regular text input or a rich-text input; when viewing, it’s a formatted text string. Additional configurations:
|
|||||
The URL field type represents a URL value (the field has some built-in value validation). When editing, the field is an URL input box; when viewing, it’s either a link or a text string. Additional configurations:
|
|||||
The user field type represents a reference to a user. When editing, the field is a searchable dropdown; when viewing its a text string (the registered name). Additional configurations:
|
|||||
The file field type represents a reference to a file uploaded to the record. When editing, the field is a file uploader; when viewing, it’s one of the configured displays. Additional configurations:
|
Module field expressions
Module field expressions let you define value expressions (formula fields), custom sanitizers, and custom validators.
Use value expressions instead of automation scripts when you need simple calculations. It is much faster and simpler to maintain. |
Value expressions calculate the field value based on the rest of the field values.
If the value expression evaluation results in an error, the errors are appended to the field error set (in the web application they are shown under the field).
If your field is a multi-value field, you need to return an array of items. Available variables in the evaluation context:
If field name collides with (they have the same name) any of reserved variables you can access them via Example expression that calculates the price with tax:
Example expression that generates a full name:
Example of a multi-value expression evaluation:
|
|||||
Sanitizers modify the field value to cleanup (sanitize) the data before it is saved. If the sanitizer evaluation results in an error, the error is logged in the action log. If you define multiple sanitizers, they are run in the defined order. Example sanitizer that limits the text length:
Available variables in the evaluation context:
|
|||||
Validators validate the field value by raising errors when the value is not valid. Validators can not change the value. Built-in field validators can be disabled; required and unique-multi-value validators can not be disabled. If you define multiple validators, they are run in the defined order.
Validation expressions are not executed when:
Available variables in the evaluation context:
Example validator to check the text length:
|
Permissions for all modules
- Read any module
-
Determines if the role is allowed to access any Corteza Low Code module.
- Update any module
-
Determines if the role is allowed to update any Corteza Low Code module.
- Delete any module
-
Determines if the role is allowed to delete any Corteza Low Code module.
- Create record under any module
-
Determines if the role is allowed to create records for any Corteza Low Code module.
- Read records under any module
-
Determines if the role is allowed to access records for any Corteza Low Code module.
- Update records under any module
-
Determines if the role is allowed to update records for any Corteza Low Code module.
- Delete records under any module
-
Determines if the role is allowed to delete records for any Corteza Low Code module.
Permissions for a specific module
- Read module "(module name)"
-
Determines if the role is allowed to access the given module.
- Update module "(module name)"
-
Determines if the role is allowed to update the properties of the given module.
- Delete module "(module name)"
-
Determines if the role is allowed to delete the given module.
- Create record of module "(module name)"
-
Determines if the role is allowed to create record entries for the given module.
- Read records of module "(module name)"
-
Determines if the role is allowed to access the records of the given module.
- Update records of module "(module name)"
-
Determines if the role is allowed to update the records of the given module.
- Delete records of module "(module name)"
-
Determines if the role is allowed to delete the records of the given module.
Permissions for all module fields
- Read any module field
-
Determines if the role is allowed to see any Corteza Low Code module field.
- Update any module field
-
Determines if the role is allowed to update any Corteza Low Code module field.
Permissions for a specific module field
- Read "(field name)" record fields
-
Determines if the role is allowed to access the given value inside the module. This will hide any data that might appear in the field.
- Update "(field name)" record fields
-
Determines if the role is allowed to update the values in the given module field. This will prevent any data manipulation for the field.
Pages
A page lets you interact with your application to manage the system and your data.
Each page consists of a series of page blocks (blocks) that let you define pages of arbitrary complexity while keeping it responsive and mobile friendly.
A page can be thought of as a view in a relational database. |
Page types
Corteza defines two page types. The main difference is the context; which the system uses. Their definition via the page builder remain the same.
- Record page
-
Record pages are used when viewing specific records. If you wish to interact with records, you need to create a record page for that module.
- List page
-
List pages are used when viewing aggregated data from different sources. These can be used to implement simple record lists, or complicated dashboards consisting of multiple data sources.
Create a list page
-
navigate to the Corteza Low Code page and enter the namespace you wish to edit,
-
click on the "Admin panel" in the top right corner,
-
navigate to the "Pages" subpage,
-
enter the page name and press the "Create" button,
-
provide the page handle, a description and save the changes.
You can only define permissions for existing pages. |
Create/edit a record page
-
navigate to the Corteza Low Code page and enter the namespace you wish to edit,
-
click on the "Admin panel" in the top right corner,
-
navigate to the "Modules" subpage,
-
click on the "page builder" next to the module list, or click on the "Record page" button on the bottom of the module editor.
Edit a page
-
navigate to the Corteza Low Code page and enter the namespace you wish to edit,
-
click on the "Admin panel" in the top right corner,
-
navigate to the "Pages" subpage,
-
click on the edit icon next to the page you wish to edit,
-
update the data and save the changes.
To change the structure of your page, see the page builder section. |
Delete a page
-
navigate to the Corteza Low Code page and enter the namespace you wish to delete,
-
click on the "Admin panel" in the top right corner,
-
navigate to the "Pages" subpage,
-
click on the edit icon next to the page you wish to delete,
-
press the "Delete" button on the bottom of the page and confirm the operation.
Page builder
Each page consists of a series of page blocks (blocks) that let you define pages of arbitrary complexity while keeping it responsive and mobile friendly.
The page builder defines a grid spanning over 12 columns. Add a page block by clicking on the "Add block" button on the bottom toolbar. The page block can be moved and resized on the grid mentioned above.
The grid is not limited in height. |
Page blocks differ by the type and what page type they can be used on (see the page blocks section).
-
navigate to the Corteza Low Code page and enter the namespace you wish to edit,
-
click on the "Admin panel" in the top right corner,
-
navigate to the "Pages" subpage,
-
click on the "Page builder" next to the page you wish to edit, or from the page editor screen.
When finished, click on the "Save" or the "Save and close" button on the bottom right of the toolbar.
Discard your changes by clicking on the "Back (without saving changes)" on the bottom left of the toolbar.
Page blocks
A content page block is used to contain some static content, such as an important announcement, help text, or some contact information. |
|||||||
Metric page blocks display some calculated number based on the data in your namespace. You can use metric page blocks to show things like the total number of leads or the months' revenue. Configuration options:
|
|||||||
A chart page block allows you to show your charts on the page. Refer to Charts for more details. |
|||||||
Social media feed page blocks let you embed content from different social media platforms.
When you use a social media feed within a record page, the source can be defined by a module field. |
|||||||
Record page blocks let you access and change data related to a specific record.
|
|||||||
Record list page blocks display the contents of a module as a table. Record lists also provide a way of adding new, and editing or removing existing records.
Configuration options:
|
|||||||
An automation page block allows your users to trigger explicit automation scripts. When specifying what buttons to show, you are also able to set the label and the button variant.
|
|||||||
A calendar page block lets you show records on a calendar. Supported calendar views:
Record event source uses a module as the data source, where each record specifies event parameters; the label, start, and end dates.
Reminder event source uses your system reminders as the data source, where each reminder specifies event parameters; the label, start, and end dates. |
|||||||
A file page block is used to contain a set of files (attachments), such as TOS, schedule, or a brochure. |
|||||||
Record organizer page blocks let you define a series for columns (stages) that a record is in. Imagine a kanban board — you can build one with record organizers.
|
|||||||
An iframe page block is used to embed some external website inside your application.
|
Navigation
You can freely define your page hierarchy by reordering your pages in the page tree. The page order and the nesting defines the navigation structure.
-
navigate to the Corteza Low Code page and enter the namespace you wish to edit,
-
click on the "Admin panel" in the top right corner,
-
navigate to the "Pages" subpage,
-
drag and drop your pages to define the order; the order is automatically updated
Create a subpage (nesting), by dragging the page into another page. |
Permissions for all pages
- Read any page
-
Determines if the role is allowed to see any Corteza Low Code page.
- Update any page
-
Determines if the role is allowed to update any Corteza Low Code page.
- Delete any page
-
Determines if the role is allowed to delete any Corteza Low Code page.
Permissions for a specific page
- Read page "(page title)"
-
Determines if the role is allowed to access the given page of the namespace.
- Update page "(page title)"
-
Determines if the role is allowed to update the page of the given namespace.
- Delete page "(page title)"
-
Determines if the role is allowed to delete the page of the given namespace.
Charts
Charts let you create beautiful data visualization. It lets you define everything from simple case-specific charts, to complex dashboards.
Create a new chart
-
navigate to the Corteza Low Code page and enter the namespace you wish to edit,
-
click on the "Admin panel" in the top right corner,
-
navigate to the "Charts" subpage,
-
enter the chart name and press the "Add chart" button,
-
select one of the chart groups.
You can not change the chart group once it is selected. You will need to create a new chart. |
You can only define permissions for existing charts. |
Edit a chart
-
navigate to the Corteza Low Code page and enter the namespace you wish to edit,
-
click on the "Admin panel" in the top right corner,
-
navigate to the "Charts" subpage,
-
press on the edit button next to the chart you wish to edit.
Delete a chart
-
navigate to the Corteza Low Code page and enter the namespace you wish to edit,
-
click on the "Admin panel" in the top right corner,
-
navigate to the "Charts" subpage,
-
press on the edit button next to the chart you wish to delete,
-
press the "Delete" button and confirm the operation.
Generic chart configuration
-
bar chart,
-
line chart,
-
pie chart,
-
doughnut chart.
- Chart name
-
Chart name defines a user-friendly label for the chart.
- Chart handle
-
Chart handle defines a system label that is used for internal referencing.
The provided handle must:
|
- Colour theme
-
Color theme allows you to style the data quickly.
Make sure that the selected colour theme provides enough colours for your dataset. |
- Chart module
-
Chart module defines the module that will be used as a data source (the records).
- Chart filters
-
Chart filters allows you to filter the data source to include only the records you wish to have. The dropdown provides a set of the most common filters, but you are free to edit or define your own by checking the "Customize filter" option.
Dev note: reference QL. |
- Y-axis
-
Y-axis allows you to customize the y-axis.
- Dimensions
-
Dimensions specify the data that will be shown in the graph. For example, all of the records bucketed by month based on their creation date.
At the moment you can only define a single dimension. |
- Metrics
-
Metrics specify the values that will be shown in the graph. For example, count the records for the given month and display a line.
Metrics define a post-processing function that lets you do some additional transformations on the outputted values. This is a simple JavaScript expression that must return a number based on two variables:
An example that creates an aggregated chart:
|
When defining a post-processing function, the previous value ( |
Funnel chart configuration
- Chart name
-
Chart name defines a user-friendly label for the chart.
- Chart handle
-
Chart handle defines a system label that is used for internal referencing.
The provided handle must:
|
- Colour theme
-
Color theme allows you to style the data quickly.
- Chart reports
-
A chart report defines a series of items to show in the funnel.
- Report module
-
The report module defines the module that will be used as a data source (the records).
- Report filter
-
The report filter allows you to filter the data source to include only the records you wish to have. The dropdown provides a set of most common filter, but you are free to edit or define your own by checking the "Customize filter" option.
DevNote: reference QL. |
- Report dimension
-
The report dimension specify the data that will be shown in the graph. For example, all of the records bucketed by month based on their creation date.
- Report metrics
-
The report metrics specify the values that will be shown in the graph. For example, count the records for the given month and display a line.
Gauge chart configuration
- Chart name
-
Chart name defines a user-friendly label for the chart.
- Chart handle
-
Chart handle defines a system label that is used for internal referencing.
The provided handle must:
|
- Colour theme
-
Color theme allows you to style the data quickly.
- Chart module
-
Chart module defines the module that will be used as a data source (the records).
- Chart filters
-
Chart filters allows you to filter the data source to include only the records you wish to have. The dropdown provides a set of most common filter, but you are free to edit or define your own by checking the "Customize filter" option.
DevNote: reference QL. |
- Y-axis
-
Y-axis allows you to customize the y-axis.
- Dimensions
-
Dimensions specify the data that will be shown in the graph. For example, all of the records bucketed by month based on their creation date. The steps define the breakpoints in the gauge.
Gauge charts can only show a single dimension. |
- Metrics
-
Metrics specify the values that will be shown in the graph. For example, count the records for the given month and display a line.
Metrics define a post-processing function that lets you do some additional transformations on the outputted values. This is a simple JavaScript expression that must return a number based on two variables:
An example that creates an aggregated chart:
|
When defining a post-processing function, the previous value ( |
Messaging channels
A channel enables communication between users that are related to a specific topic, such as project management and sales.
- Public channels
-
Public channels are visible and accessible to all Corteza users that can access Corteza Messaging. Public channels should not be used to exchange any sensitive information.
- Private channels
-
Private channels are visible and accessible by the Corteza users that can access Corteza Messaging and were invited to the channel.
- Direct channels
-
Direct channels are visible and accessible by the Corteza users that can access Corteza Messaging and were invited to the channel. Direct channels are designed for one-on-one conversations or smaller groups of people.
Create a channel
-
navigate to the Corteza Messaging,
-
click on the "+" icon next to the Public, Private channels; or Direct messages,
-
provide all the requested data (see channel properties),
-
press the "Create" button.
Edit a channel
Not available for direct messages. |
-
navigate to the Corteza Messaging,
-
open the channel and hover over the three dots in the top right corner,
-
click on the "Edit channel" option,
-
provide all the requested data (see channel properties),
-
press the "Update" button.
Archive a channel
-
navigate to the Corteza Messaging,
-
open the channel and hover over the three dots in the top right corner,
-
click on the "Edit channel" option,
-
click and confirm the "Archive" option.
Delete a channel
You can instead archive the channel. |
-
navigate to the Corteza Messaging,
-
open the channel and hover over the three dots in the top right corner,
-
click on the "Edit channel" option,
-
click and confirm the "Delete" option.
Manage a channel
Open the channel and hover over the three dots in the top right corner.
- Member list
-
Member list shows a list of current channel members. It also provides an interface to add or remove members.
- Edit channel
-
Refer to the channel editing for details.
- Channel flags
-
Options to hide the channel, ignore the channel, or remove the flags.
- Bookmarked and Pinned messages
-
Opens a list of bookmarked and pinned messages.
- Leave channel
-
The leave channel option removes you from the channel.
Channel properties
- Name
-
The name property specifies the channel name that is shown to the users.
- Topic
-
The topic property lets you specify what the conversation is about, such as marketing or project management.
- Privacy
-
The privacy flag lets you change the public channel to a private channel, and vice-versa.
- Featured
-
The featured flag automatically includes any new user as the channel member and shows the channel in the channel list.
Use this flag for any introduction channels. |
- Members
-
The * members'* list shows what users entered the channel. In the case of private channels, only the listed users are allowed to access the channel.
Not available for direct messages. |