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

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

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

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

  3. provide all the requested data (see namespace properties),

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

You can only define permissions for existing namespaces.

Edit a namespace

To edit an existing namespace:
  1. navigate to the Corteza Low Code page,

  2. hover over the namespace you wish to edit,

  3. press on the edit icon,

  4. provide all the requested data (see namespace properties),

  5. 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.

To delete an existing namespace:
  1. navigate to the Corteza Low Code page,

  2. hover over the namespace you wish to delete,

  3. press on the edit icon,

  4. 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:
  1. start with a character,

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

  3. end with a character or a number.

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:
  • module ~= table

  • module field ~= attribute

  • record ~= entity

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:
  1. start with a character,

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

  3. end with a character or a number.

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:
  1. start with a character,

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

  3. end with a character or a number.

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

To create a new module:
  1. navigate to the Corteza Low Code page and enter the namespace you wish to edit,

  2. click on the "Admin panel" in the top right corner,

  3. navigate to the "Modules" subpage,

  4. enter the module name and press the "Create" button,

  5. 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.

To import modules:
  1. navigate to the Corteza Low Code page and enter the namespace you wish to edit,

  2. click on the "Admin panel" in the top right corner,

  3. navigate to the "Modules" subpage,

  4. find the "Import module(s)" section on the top of the page,

  5. click on the "Browse" button and select the JSON file containing module definitions,

  6. click on the "Import" button,

  7. select on the modules you wish to import and press the "Import" button.

Editing a module

To edit an existing module:
  1. navigate to the Corteza Low Code page and enter the namespace you wish to edit,

  2. click on the "Admin panel" in the top right corner,

  3. navigate to the "Modules" subpage,

  4. click on the edit icon next to the module you wish to edit,

  5. update the data and save the changes.

Deleting a module

To delete an existing module:
  1. navigate to the Corteza Low Code page and enter the namespace you wish to edit,

  2. click on the "Admin panel" in the top right corner,

  3. navigate to the "Modules" subpage,

  4. click on the edit icon next to the module you wish to edit,

  5. click on the "Delete" button on the bottom of the page and confirm the action.

Adding module fields

To add a new module field:
  1. navigate to the Corteza Low Code page and enter the namespace you wish to edit,

  2. click on the "Admin panel" in the top right corner,

  3. navigate to the "Modules" subpage,

  4. click on the edit icon next to the module you wish to edit,

  5. click on the "+ Add new field" button,

  6. 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.

To edit an existing field:
  1. navigate to the Corteza Low Code page and enter the namespace you wish to edit,

  2. click on the "Admin panel" in the top right corner,

  3. navigate to the "Modules" subpage,

  4. click on the edit icon next to the module you wish to edit,

  5. 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.

To delete an existing field:
  1. navigate to the Corteza Low Code page and enter the namespace you wish to edit,

  2. click on the "Admin panel" in the top right corner,

  3. navigate to the "Modules" subpage,

  4. click on the edit icon next to the module you wish to edit,

  5. 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:
  1. start with a character,

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

  3. end with a character or a number.

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.

Checkbox (Y/N)

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:
  • true/false label: the label to show when the value is true or false.

Date and time

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:
  • date only: omit the time part and only use the date,

  • time only: omit the date part and only use the time,

  • past values only: only allow past values,

  • future value only: only allow future values,

  • output relative value: show the value relative to now,

  • custom output format: custom output date format.

See Moment.js format for available date-time formatting.

Email

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:
  • don’t turn email into a link: keep the link as plain text.

The email is stored as plain text regardless of the configuration options. The email is converted to a link before it is shown on the user interface.

Select / dropdown

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:
  • Options: a set of label/value pairs of the available options. The value part defines how the data is stored internally; the label part describes how the data is presented to the user (defaults to the value).

  • Multiple value input type: specify how multiple values are selected.

Number

The number field type represents a numerical value. When editing, the field is a number input; when viewing, it’s a formatted text string.

The same field can store both full and fractional numbers.

Additional configurations:
  • prefix: specify the prefix, such as $,

  • suffix: specify the suffix, such as USD/h,

  • precision: specify the number precision (maximum is 6),

  • format: specify the display format.

See Numeral.js format for available number formatting.

Record

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.

You can only reference records in the same namespace.

Additional configurations:
  • module: specify what module this field will be linked to,

  • record label field: specify what field should be used when showing the linked record,

  • query fields on search: specify the fields that should be included in the search,

  • pre-filter records: specify the pre-filtering.

String

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:
  • multi-line: specify that the value can span over multiple lines,

  • use rich text editor: use the rich text editor instead of the simple plain text editor.

URL

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:
  • trim # from the URL: specify that the fragment should be ignored (the thing after the #),

  • trim ? from the URL: specify that the query should be ignored (the thing after the ?),

  • only allow SSL (HTTPS) URLs: specify that only secure URL’s can be provided,

  • don’t turn URL into a link: keep the URL as a plain text value.

The above configurations can help you sanitize user input with no additional code required.

The URL is stored as plain text regardless of the configuration options. The URL is converted to a link before it is shown on the user interface.

User

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:
  • preset with current user: default to the user that created/updated the record,

  • multiple value input type: determine how multiple values are selected.

File upload

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:
  • view mode: specify how the files are presented when viewing the value.

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

Value expressions calculate the field value based on the rest of the field values.

Currently, you can only use values of the current record. References are not yet supported.

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).

Use the custom validators for value validation.

If your field is a multi-value field, you need to return an array of items.

Available variables in the evaluation context:
  • old: record object with old values (empty when creating).

  • new: record object with current field values.

  • <field-name>: a string or array of strings with current field values.

If field name collides with (they have the same name) any of reserved variables you can access them via old.values.<field-name>.

Example expression that calculates the price with tax:
price * 1.25
Example expression that generates a full name:
trim(firstName + " " + lastName)
Example of a multi-value expression evaluation:
["foo", "bar", "baz"]

Sanitizers

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:
length(value) > 5 ? substr(value, 0, 5) + "..." : value
Available variables in the evaluation context:
  • value: the current field value.

Validators

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.

The field validation step errors out when first error occurs.

If we define validators A, B, and C, and the validator A raises an error; validators B and C are not evaluated.

Validation expressions are not executed when:
  • the value is not changed,

  • the value is missing.

Use the required flag to check for required values.

Available variables in the evaluation context:
  • value: the current field value,

  • oldValue: the old field value,

  • values: all current field values (values.<field-name>).

Example validator to check the text length:
length(title) < 5

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

To create a list page:
  1. navigate to the Corteza Low Code page and enter the namespace you wish to edit,

  2. click on the "Admin panel" in the top right corner,

  3. navigate to the "Pages" subpage,

  4. enter the page name and press the "Create" button,

  5. provide the page handle, a description and save the changes.

You can only define permissions for existing pages.

Create/edit a record page

To create a record page:
  1. navigate to the Corteza Low Code page and enter the namespace you wish to edit,

  2. click on the "Admin panel" in the top right corner,

  3. navigate to the "Modules" subpage,

  4. 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

To edit an existing page:
  1. navigate to the Corteza Low Code page and enter the namespace you wish to edit,

  2. click on the "Admin panel" in the top right corner,

  3. navigate to the "Pages" subpage,

  4. click on the edit icon next to the page you wish to edit,

  5. update the data and save the changes.

To change the structure of your page, see the page builder section.

Delete a page

To delete an existing page:
  1. navigate to the Corteza Low Code page and enter the namespace you wish to delete,

  2. click on the "Admin panel" in the top right corner,

  3. navigate to the "Pages" subpage,

  4. click on the edit icon next to the page you wish to delete,

  5. 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).

To enter the page builder:
  1. navigate to the Corteza Low Code page and enter the namespace you wish to edit,

  2. click on the "Admin panel" in the top right corner,

  3. navigate to the "Pages" subpage,

  4. 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

Content

A content page block is used to contain some static content, such as an important announcement, help text, or some contact information.

Metric

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:
Label

Metric label specifies what the metric shows; this is not visible to the user.

Dimension module

Dimension module specifies what module will be used as a data source.

Dimension filter

The dimension filter allows you to filter the data source to include only the records you wish to have.

Metric field

Metric field specifies what field will be used to calculate the metric. This can be one of the numeric fields or the general record count.

Metric aggregation operation

Metric aggregation operation specifies how the value is generated. You can pick one of the count, sum, max, min, or avg functions.

Metric transform value

Metric transform value specifies how the calculated value is transformed before displayed to the user. You can implement things like rounding, and percentage calculations. See some examples.

Metric number format

Metric number format specifies how to format the final result. See Numeral.js for available number formatting options.

Metric prefix

Metric prefix specifies the prefix to be used when displaying the final result.

Metric suffix

Metric suffix specifies the suffix to be used when displaying the final result.

Style

The style section specifies how to style the metric when showing it to the user.

Chart

A chart page block allows you to show your charts on the page. Refer to Charts for more details.

Social media feed

Currently, only Twitter feeds are supported.

Social media feed page blocks let you embed content from different social media platforms.

This can help you keep up with the client’s latest updates.

When you use a social media feed within a record page, the source can be defined by a module field.

Record

This page block type is only available for record pages.

Record page blocks let you access and change data related to a specific record.

You can define multiple record page blocks for a nicer field grouping.

For example, you can put contact-related information in one block, shipping-related information in another, and so on.

When selecting fields, you can rearrange these by dragging them around.

Record list

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.

You can trigger explicit automation scripts within the record list’s header. Click the "Automation" tab to select the automation scripts.

Configuration options:
Module

The module specifies what module will be used as a data source.

Hide the add record button

Hide the "Add" button; disabling the ability to add new records from this record list.

Allow inline record editing

Inline record editing is only available in record pages. It lets you edit, add, or remove records from the child record list when editing a parent record. Imagine a quote as a parent record, and a record list of quote line items as a child record list.

Prefilter records

Prefiltering allows you to filter the data source to include only the records you wish to have. See some examples.

Hide search box

Disables the search box.

Presort records

Presorting allows you to specify the initial sorting. Use standard SQL syntax. See some examples.

Hide paging

Hides the record list paging section.

Allow records export

Allow records export show an "Export" button on the record list to export your data.

Enable record selection

Enables record selection by providing a selection checkbox next to each row.

When using the search box on the record list, the system only includes the selected fields.

DevNote: move this somewhere else?

Automation

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.

Refer to the extensions section for details.

If you can’t see your automation scripts:
  • make sure there were no compilation errors,

  • you refreshed your page after you’ve added the scripts,

  • the trigger defined a .uiProp('app', 'compose') constraint.

Calendar

A calendar page block lets you show records on a calendar.

Supported calendar views:
  • month view,

  • week view,

  • day view,

  • agenda view.

Record event source uses a module as the data source, where each record specifies event parameters; the label, start, and end dates.

Calendar event sources enable pre-filtering.

DevNote: link QL; enable value interpolation?

Reminder event source uses your system reminders as the data source, where each reminder specifies event parameters; the label, start, and end dates.

File

A file page block is used to contain a set of files (attachments), such as TOS, schedule, or a brochure.

Record organizer

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.

The columns define a drag 'n drop interface.

DevNote link to QL.

IFrame

An iframe page block is used to embed some external website inside your application.

Make sure to keep any iframe embedding limitation in mind; we are no exception.

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.

To change the navigation:
  1. navigate to the Corteza Low Code page and enter the namespace you wish to edit,

  2. click on the "Admin panel" in the top right corner,

  3. navigate to the "Pages" subpage,

  4. 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

To create a new chart:
  1. navigate to the Corteza Low Code page and enter the namespace you wish to edit,

  2. click on the "Admin panel" in the top right corner,

  3. navigate to the "Charts" subpage,

  4. enter the chart name and press the "Add chart" button,

  5. select one of the chart groups.

Refer to below sections on how to configure specific 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

To edit an existing chart:
  1. navigate to the Corteza Low Code page and enter the namespace you wish to edit,

  2. click on the "Admin panel" in the top right corner,

  3. navigate to the "Charts" subpage,

  4. press on the edit button next to the chart you wish to edit.

Refer to below sections on how to configure specific chart groups:

Delete a chart

To delete an existing chart:
  1. navigate to the Corteza Low Code page and enter the namespace you wish to edit,

  2. click on the "Admin panel" in the top right corner,

  3. navigate to the "Charts" subpage,

  4. press on the edit button next to the chart you wish to delete,

  5. press the "Delete" button and confirm the operation.

Generic chart configuration

Generic charts include:
  • bar chart,

  • line chart,

  • pie chart,

  • doughnut chart.

Properties:
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:
  1. start with a character,

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

  3. end with a character or a number.

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:
  • m: the previous value,

  • n: the current value.

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

When defining a post-processing function, the previous value (m) is undefined for the first element of the chart.

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:
  1. start with a character,

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

  3. end with a character or a number.

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:
  1. start with a character,

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

  3. end with a character or a number.

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:
  • m: the previous value,

  • n: the current value.

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

When defining a post-processing function, the previous value (m) is undefined for the first element of the chart.

Permissions for all charts

Read any chart

Determines if the role is allowed to see any Corteza Low Code chart.

Update any chart

Determines if the role is allowed to update any Corteza Low Code chart.

Delete any chart

Determines if the role is allowed to delete any Corteza Low Code chart.

Permissions for a specific chart

Read chart "(chart name)"

Determines if the role is allowed to access the given chart.

Update chart "(chart name)"

Determines if the role is allowed to update the given chart.

Delete chart "(chart name)"

Determines if the role is allowed to delete the given chart.

Messaging channels

A channel enables communication between users that are related to a specific topic, such as project management and sales.

Corteza Messaging defines three channel types:
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

To create a new channel:
  1. navigate to the Corteza Messaging,

  2. click on the "+" icon next to the Public, Private channels; or Direct messages,

  3. provide all the requested data (see channel properties),

  4. press the "Create" button.

Edit a channel

Not available for direct messages.

To edit an existing channel:
  1. navigate to the Corteza Messaging,

  2. open the channel and hover over the three dots in the top right corner,

  3. click on the "Edit channel" option,

  4. provide all the requested data (see channel properties),

  5. press the "Update" button.

Archive a channel

To archive an existing channel:
  1. navigate to the Corteza Messaging,

  2. open the channel and hover over the three dots in the top right corner,

  3. click on the "Edit channel" option,

  4. click and confirm the "Archive" option.

Delete a channel

You can instead archive the channel.

To delete an existing channel:
  1. navigate to the Corteza Messaging,

  2. open the channel and hover over the three dots in the top right corner,

  3. click on the "Edit channel" option,

  4. 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.