Pages
Corteza Low Code provide a graphic user interface to access the data contained within the given namespace. Each page consists of a series of page blocks that allow you to construct pages of arbitrary complexity while assuring each page is responsive and mobile friendly.
There are two types of pages:
Pages are available under the "Pages" sub administration page. Pages are represented in a tree view, that allows you to change their order and even their nesting. This allows unlimited flexibility when defining your namespace.
Record pages
A record page is designed to show information regarding a specific record, such as it’s field values and other related records. In order for a module to be accessible to the user, it must have an associated record page.
You can define a record page for the given module by pressing the "Page builder" button next to the module you wish to use. This will open up a new editor. Please refer to [admin-compose-pages-build] for details on the page building process.
List pages
List pages are not related to any specific record; rather, they are designed to show multiple record lists, charts, notes, calendars and so on and so forth. With list pages we can create a home page, a dashboard, a list of contacts, etc.
To create a List page, you need to go to the "Pages" administrative page and enter a title in the Create a new page box at the top. When you submit this form, it opens the Edit page form, which allows you to add a page description (for internal use; the end user will not see it), and you can set the page to "Visible" so it can be accessed.
The actual page editor can be accessed via the "Page builder" button either on the page editor or on the page tree view.
Page builder
Page’s content is defined as a grid consisting spanning over 12 columns. The content is defined by a series of page blocks that helps maintain responsive and mobile-friendly pages.
Page blocks can be added using the "Add block" button on the bottom toolbar. This opens a modal window where you can select the page block type you wish to use (refer to Page blocks for details on page blocks).
Once added, they can be arranged, resized and moved with an intuitive drag and drop style interface. Blocks can be edited by clicking on the edit icon or deleted by pressing the trash can icon on the bottom left corner of the page block.
Once finished, press the "Save" or the "Save and close" button on the bottom right of the toolbar. To revert the changes, press the "Back (without saving changes) button".
Page blocks
Content
A content page block is designed to present some static content to the user, such as important announcements, help text, etc.
The content is defined by using the rich-text editor, powered by TipTap.
Metric
A metric page block is quite similar to chart page blocks in the sense, that they present a metric based on the namespaces data. The difference is that a metric page block displays the defined metric in plain text, as a number with some additional formatting options. This can be used to show information, such as the number of new opportunities, total number of leads this month, etc.
Definition
A metric page block consists of a set of metrics. Each metric defines:
- Label
-
A user friendly name that identifies what the metric shows,
- Dimension Module
-
The module that will be used as a data source,
- Dimension Filter
-
Any additional filtering that should be performed on the output value,
- Metric Field
-
What field should be used when calculating the final value, such as the number of records, the cost associated with the record, …
- Metric Aggregation operation
-
Determines how the data should be aggregated into a single value. The available options are:
-
Count: the number of matched records,
-
sum: the value sum from the specified metric field,
-
max: the maximum value from the specified metric field,
-
min: the minimum value from the specified metric field,
-
avg: the average value from the specified metric field.
-
- Metric Transform value
-
Additional operations to perform over the computed value, such as rounding, calculating percentages, etc. See below Examples for examples,
- Metric Number format
-
Determines the formatting to be used when displaying the final result. See Numeral.js format for available number formatting,
- Metric Prefix
-
Determines the prefix to be used when displaying the final result,
- Metric Suffix
-
Determines the suffix to be used when displaying the final result,
- Style Text color
-
Determines the color of the final result,
- Style Background color
-
Determines the background color of the final result,
- Style Font size
-
Determines the font size of the final result. Value is specified in pixels.
Examples
- Divide result by 1000 to show cost in thousands
-
v / 1000
- Round result to remove decimal places
-
Math.round(v)
- Round result to remove decimal places (round up)
-
Math.ceil(v)
- Round result to remove decimal places (round down)
-
Math.floor(v)
- Round result to two decimal places
-
Math.round(v * 100) / 100
The used interface uses standard JavaScript syntax, so any operation achievable in standard JavaScript is also achievable here. |
Rounding can already be achieved by using value format. |
Chart
Chart page block is designed to display any chart defined under the "Charts" administration page.
Useful when defining dashboards |
Social media feed
A social media feed is designed to show content from any supported social network. This allows you to show a live social media feed of your clients from the comfort of your CRM.
When using social media feed page blocks in a record page, a source can be defined as a module field. This allows to show different feeds based on the viewed record. |
Currently only Twitter feeds are supported. |
Record
Record page blocks are designed to allow access to the data inside each record, for either viewing or editing.
When defining a record page block, you select a set of fields that will be present in the given page block. This allows you to customize the layout as much as you wish. Group contact related information in one block, subscription related information in another block, and so on.
When selecting fields, you can rearrange these with an intuitive drag and drop interface. |
Make sure that all required fields are accessible via the record page. Otherwise the records will fail to save, since the value will be missing. |
This page block type is only available for record pages. |
Record list
Record list page blocks are designed to show the data from a specific module — it’s records. These blocks also provide a way of accessing record pages.
Another important feature is, that record lists support client-side automation scripts. This feature can be accessed in the "Automation" tab of the page block editor.
These automation scripts will be visible in the header of the page block, when any rows are selected.
Definition
- Module
-
The module that will be used as a data source,
- Hide add record button
-
Hides the "Add" button, hence disabling the ability to add new records,
- Prefilter records
-
Enables us to apply additional filtering. Filters define a standard SQL syntax and also support dynamic value interpolation. Refer to Examples for examples,
- Hide search box
-
Disables the search box,
- Presort records
-
Enables us to apply additional sorting to the resulted records. Sorting defines a standard SQL syntax. Refer to Examples for examples,
- Hide paging
-
Hides the record list paging section,
- Allow records export
-
Enables the record export feature,
- Enable record selection
-
Enables record selection by providing a selection checkbox next to each row,
- Hide record reminder button
-
Hides the set reminder button,
- Hide clone record button
-
Hides the clone record button,
- Hide edit record button
-
Hides the edit record button,
- Hide view record button
-
Hides the view record button.
When searching over the records in the record list, the system only uses the fields that are shown to the user. |
Examples
Record list prefiltering supports value interpolation that is relative to the viewed content, such as a record. Available variables:
|
- Show only records created this year
-
YEAR(created_at) = YEAR()
, - Show only records linked to the viewed record
-
related_contact = ${recordID}
, - Show only active contacts
-
is_active = '1'
, - Show lost opportunities
-
status = 'closed/lost'
, - Sort by latest
-
created_at DESC
- Sort by latest and opportunity stage
-
created_at DESC, stage DESC
Automation
An automation page block is designed to define an interface to the explicit automation scripts.
The payload provided to the automation script differs from where the automation page block is placed. For example, if it’s placed in a record page, then that record is included in the payload. |
When selecting what automation the page block should show, you are able to specify a custom label and style.
Automation script not showing? Make sure that:
|
You can also use server side automation scripts, as long as they define an explicit automation trigger; for example:
|
Calendar
Calendar page block is designed to display a calendar along with a set of associated events.
The calendar supports a configurable set of views. These include:
-
Month view
-
week view
-
day view
-
agenda view
An event source is defined as a module, where a record defines the date and time and the title of the event.
Calendar event sources also enable prefiltering, but it is important to notice, that they do not support value interpolation.
Prefilters
A prefilter is an SQL like string that allows you to filter the resources on the database level before the results are provided.
With prefiltering you are able to determine a more specific set of records that will be shown in the record list, define what records should be included in a chart, and much more.
Prefilters usually support value interpolation, which allows them to be more flexible when working with different resources.
For example, you can show only records related to a specific record, show only records owned by the current user.
Value interpolation can be invoked by using the JavaScript’s standard template string syntax (${…}
).
For example related_contact=${recordID}
.
Some resources may not support value interpolation when working with prefilters and will be disclosed in the documentation. |
Available interpolation values differ between resources and will be mentioned in the documentation. |
When defining prefilters on boolean (check box) fields, keep in mind that the positive value is represented as For example, when showing inactive contacts, you would write This will be improved upon in later releases. |
File
A file page block is quite similar to the content page block in a way that is designed to display some content. The only difference is, that it is designed to display a set of files instead of a text content.
This can be useful to handle files that are relevant to all resources in the system, such as a ToS, schedule, etc.
If the file should differ based on the record, you have to define a module File field. File page blocks are unable to display content relative to the context. |
Record organizer
A record organize page block is a record list like, light weight container to display modules record with an intuitive drag-and-drop interface for reordering.
Furthermore, a set of these page blocks can be used to define a kan-ban like interface that allows you to move records between different statuses.
Record organizer page block also supports prefiltering with value interpolation
Prefilters
A prefilter is an SQL like string that allows you to filter the resources on the database level before the results are provided.
With prefiltering you are able to determine a more specific set of records that will be shown in the record list, define what records should be included in a chart, and much more.
Prefilters usually support value interpolation, which allows them to be more flexible when working with different resources.
For example, you can show only records related to a specific record, show only records owned by the current user.
Value interpolation can be invoked by using the JavaScript’s standard template string syntax (${…}
).
For example related_contact=${recordID}
.
Some resources may not support value interpolation when working with prefilters and will be disclosed in the documentation. |
Available interpolation values differ between resources and will be mentioned in the documentation. |
When defining prefilters on boolean (check box) fields, keep in mind that the positive value is represented as For example, when showing inactive contacts, you would write This will be improved upon in later releases. |
IFrame
An iframe page block is designed to embed some website or a webpage inside the namespace. This can be useful when wanting to embed an external system not natively supported inside the namespace.
Our system is no exception to IFrame embedding limitations and it is up to you to assure quality experience. |