You are reading the documentation for an outdated Corteza release. 2023.9 is the latest stable Corteza release.

Low Code configuration

By configuring your Low Code, you define the logical data structure and its representation. This page focuses on the most important aspects of the configuration process. If you wish to learn more about a specific topic, refer to the subsections under Integrator Guide  Corteza Low Code configuration.

Namespaces

Before we can configure anything, we need to create a new namespace.

A namespace encapsulates all of the data that is specific to some area (such as a CRM). The namespace also defines how the data is structured, any relations between the data, and how the data is displayed.

A namespace can not directly access data from another namespace. If this is needed, consider implementing this using workflows or automation scripts.

To create a new namespace:
  1. navigate to the Corteza Low Code,

  2. click on the Create namespace button at the bottom of the page,

  3. provide all the requested data,

  4. press the Save or the Save and close button.

When you enter the newly created namespace, you will see that there is nothing there. Let us change this.

Modules

We now need to create a few modules to define the data’s shape and any relations (for example, a contact is related to an account). A module consists of two parts; the module itself and a series of module fields.

Think of this as a table in a relational database.

Enter the Admin panel  Modules subpage and click on the New Module button.

Define the name and the handle for the module. The handle defines a unique identifier that you can use instead of the system generated ID. We recommend you define a handle for all modules as it simplifies any automation.

Next, you need to define a set of module fields. Click on the + Add new field button on the bottom of the page to add a new field. A module field is fairly complicated, so let’s break it down:

Name

A field name defines how the system stores the corresponding value internally. Module field names are mostly used within automation scripts and workflows, so we recommend that a field name is short, descriptive and consistent.

Use the value of the name field when accessing records of the ComposeRecord type.

The name field must:
  1. start with a character,

  2. contain at most 64 characters,

  3. contain only characters, numbers, _ (underscore), - (dash) or . (dot),

  4. end with a character or a number.

Title

A field title defines how the field is shown to the user. You can write field titles in any format and any language; they do not affect the internals. We recommend that the title is short, descriptive and consistent with the handle. If a title is not provided, the name is displayed instead.

A title is limited to 64 characters; no other constraints apply.

Type

A field type defines what type of data the field will contain. For example, if we wish to store the users' email, the field type will be Email.

Refer to the Module field types section for more details regarding field types.

Base field settings

The base field settings control the general behaviour of the module field.

You can view base field settings directly under the "Attributes" column of the module field list.

When exporting multi-value fields into the CSV format, only the first value is exported.

Type specific field settings

Type-specific field setting control the behavior of the module field based on the field type.

To access type-specific settings, click on the settings icon next to the field type and navigate to the second tab (the one with the same name as the field type).

Field expressions

A field expression allows you to implement a formula (calculated) field. When you define an expression, you can no longer directly manipulate the field; the value only changes when the expressions' result changes.

Click on the settings icon next to the field type and navigate to the "General" tab. Check the "Field value expression" checkbox and insert the formula into the new input box.

Refer to the Field expressions for more details.

Field validation

Custom field validation allows you to implement custom user-provided value validation and sanitisation.

Click on the settings icon next to the field type and navigate to the "Validation" tab.

You will see two sections:
  • Value sanitisation allows you to write custom sanitisation rules. Sanitisation allows you to transform the data before it is saved.

  • Value validation allows you to write custom validation rules. Validation allows you to write additional validation rules or replace the built-in rules.

Built-in sanitisers can not be disabled. The custom sanitisers are run before the built-in sanitisers.

Refer to the Field expressions for more details.

Pages

The next step is to define how the data is displayed. To do this, we need to define some pages. There are two types of pages:

Record pages

A record page allows you to define how your users will interact with the given module. The record page is used when you want to create or edit records. A record page is created directly from the module list by clicking on the Create record page or on the Page builder if the record page already exists.

If a module does not have a record page defined, you are unable to create or update its records through the user interface.

Workflows and automation scripts can still interact with such modules.

List pages

A list page allows you to display aggregated data from different sources (e.g. modules and external websites). You can use list pages to implement simple record lists for a single module or a complex dashboard showing multiple record lists and charts. A list page is created in the Admin panel  Pages section.

Page builder

The page builder allows you to define your page’s shape using page blocks and an intuitive drag and drop interface. Refer to the Page block reference section for details regarding specific page blocks. Each page defines a grid of 12 columns that page blocks can populate.

To add a new page block, click on the + Add block button on the bottom of the page. A new popup opens up where you can select what page block you wish to use. Each page block has its specific purpose, from showing records to showing charts and attached files.

Existing page blocks can be edited, moved, resized, or removed.

Navigation

The navigation on the Corteza Low Code changes dynamically based on the defined pages, their visibility, and their hierarchy. We call this a page tree, and it’s accessible directly in the Admin panel  Pages section.

You can easily change the order of the pages by dragging them around.

To create a subpage (a dropdown menu), nest the page by dropping it into another page.

Charts

The last major component of the Low Code configuration are charts. Charts allow you to visualise your data and create beautiful dashboards.

Go to the Admin panel  Charts subsection, click on the New Chart button, and select one of the available categories (let’s start by making a generic chart)

Insert the initial parameters that define the chart; name, handle, and colour scheme. The rest of the configuration depends on the selected category and are discussed in the following sub-sections.

Ensure that the selected colour scheme provides enough colours for your dataset (the number of colours is written next to the colour scheme name).

Generic chart configuration

Generic charts include:
  • bar chart,

  • line chart,

  • pie chart,

  • doughnut chart.

Module

The chart module specifies the data source (the records) for the chart.

Filter

The filter allows you to filter over the data source to include only specific entries. For example, we wish to aggregate the leads that you created in the last month.

The dropdown menu provides you with a selection of the most common filters. If you wish to write something completely custom, tick on the customise filter checkbox and write your filter. Refer to the QL reference for details regarding filter definition.

Y-axis

The y-axis section allows you to configure the axis’s position (left or right), the label, and min-max values.

Dimensions

The dimensions section allows you to specify what field will be used to plot the dimension; the x-axis.

The current implementation only permits one dimension per chart.

You may only use "simple", single-value fields as dimension fields:
  • DateTime

  • Select

  • Number

  • Bool

  • String with rich-text editor disabled.

Field of type DateTime also allows you to define the grouping function.

Metrics

The metric section allows you to specify what field will be used to determine each dimension’s value and how it will be plotted.

You may only use numeric fields as dimension fields. A special count field returns the number of records that match the configuration parameters.

There is a special post-processing function input that allows you to transform the generated values by the reporting system. They are written as simple JavaScript expressions that return a single number based on the two variables.

  • m: the value of the previous dimension entry (the value is undefined for the first entry),

  • n: the value of the current dimension entry.

An example that creates an aggregated chart:
m ? m + n : n

Funnel chart configuration

A funnel chart is constructed from a series of reports where each report may define its dimension and metric. This allows you to piece together reports from different modules, allowing you to visualise the data between multiple modules.

Module

The report module specifies the data source (the records) for the given report.

Filter

The filter allows you to filter over the data source to include only specific entries. For example, we wish only to use leads that are in a specific stage.

The dropdown menu provides you with a selection of the most common filters. If you wish to write something completely custom, tick on the customise filter checkbox and write your filter. Refer to the QL reference for details regarding filter definition.

Dimensions

The dimensions section allows you to specify what field will be used to plot the dimension.

Only fields of type Select may be used as the dimension field. When you select a field, all of the field options are presented to you. Select which values you wish to show and their order.

Metrics

The metric section allows you to specify what field will be used to determine each dimension’s value.

You may only use numeric fields as dimension fields. A special count field returns the number of records that match the configuration parameters.

Gauge chart configuration

Module

The report module specifies the data source (the records) for the given report.

Filter

The filter allows you to filter over the data source to include only specific entries. For example, we wish only to use leads that are in a specific stage.

The dropdown menu provides you with a selection of the most common filters. If you wish to write something completely custom, tick on the customise filter checkbox and write your filter. Refer to the QL reference for details regarding filter definition.

Dimensions

The dimensions section allows you to specify what field will be represented on the gauge. Only fields of type Select may be used as the dimension field.

Each dimension has a series of steps that can be added by clicking on the + Add button. Each step defines a label and the maximum value for the step. The colours are defined based on the colour scheme.

Metrics

The metric section allows you to specify how the value of the gauge is calculated.

You may only use numeric fields as dimension fields. A special count field returns the number of records that match the configuration parameters.

There is a special post-processing function input that allows you to transform the generated values by the reporting system. They are written as simple JavaScript expressions that return a single number based on the two variables.

  • m: the value of the previous dimension entry (the value is undefined for the first entry),

  • n: the value of the current dimension entry.

An example of a chart that converts the price to be in thousands:
n / 1000

Configuring permissions

Our flexible access control system (RBAC) allows you to allow or deny access to all resources except for records (we will add this in the future).

Namespaces

To configure permissions for all namespaces:
  1. go to Corteza Low Code,

  2. click on the Permissions button.

To configure permissions for a specific namespace:
  1. go to Corteza Low Code,

  2. click on the edit icon button on the namespace,

  3. click on the lock icon in the top right.

Modules and module fields

Enter the namespace you wish to manage.

To configure permissions for all modules:
  1. go to Admin panel  Modules,

  2. click on the Permissions button.

To configure permissions for a specific module:
  1. go to Admin panel  Modules,

  2. click on the lock icon next to the module,

To configure permissions for a specific module field:
  1. go to Admin panel  Modules,

  2. click on a module to open the editor,

  3. click on the lock icon next to the module field.

Pages

Enter the namespace you wish to manage.

To configure permissions for all pages:
  1. go to Admin panel  Pages,

  2. click on the Permissions button.

To configure permissions for a specific page:
  1. go to Admin panel  Pages,

  2. click on the lock icon next to the page,

Charts

Enter the namespace you wish to manage.

To configure permissions for all charts:
  1. go to Admin panel  Charts,

  2. click on the Permissions button.

To configure permissions for a specific chart:
  1. go to Admin panel  Charts,

  2. click on the lock icon next to the chart,