Skip to Content

Concepts

Introduction

This page introduces concepts and terminology that are essential to understanding App Builder's approach to building apps:

App Developer and App User Roles

While they can be same person, it is useful to make the distinction between the roles of app developer (the person building the app) and app user (the person using the app), and to show how the App Builder user interface differs for each role:

  • As an app developer, you work in the app developer's UI. This is a visual programming environment, where you design the app's domain model and its application logic.

    • You can preview an app at any stage, to see how it looks and how it works.

    • You can customize an app's appearance to match the target user's language, region, and organization.

    • When the app nears completion, you configure, then publish the app to available environments.

  • As an app user, you see only the app user's UI.

    • You interact with data in a familiar and intuitive UI that is consistent across different apps.

    • You can set up personalized views that lets you see data in grid, calendar, report, or kanban forms.

The Overview page in the app developer's UI: An example app, showing the app user's UI:
Overview page Example app

Domain Model

The domain model is what the data looks like, and what relationships and inter-dependencies there are among data records. An app's data model is defined in the Domain Model section of the developer's UI, on the following pages:

  • Modules is where an app developer defines templates for the app's data storage needs. There can be as many modules as needed, and modules can be hidden or shown for different app user profiles. A module is defined by the following attributes:

    • A module name.

    • The module's data fields, their labels, data types, restrictions, default values, and visibility settings.

    • The data field that will be used to search for records in the module.

    • How data fields should be grouped into sections, and the order and names of sections.

    • The icon that represents the module, in both app developer and app user UIs.

  • Relations is where one-to-many or many-to-many relationships between modules is defined.

  • Dropdowns is where lists of fixed values are made, that users can choose field values from.

  • Dependencies is where data can be hidden, shown, or locked based on values in a module record.

The app developer's UI, showing the Modules page for an example app:

Modules page

Application Logic

An application's logic is defined in the Application Logic section of the app developer's UI by designing flows. A flow is one or more paths through a collection of steps arranged between a start and end point. When a flow runs, it starts at the start point, following the path to the first step, which is evaluated. The result of that evaluation determines which path to follow next and which step to evaluate next. Subsequent paths and steps are followed and evaluated until the flow's end point is reached, where it terminates.

Flows are designed in a visual programming environment by dragging and dropping step icons onto a canvas, then joining the steps with connector lines to define the possible paths between start and end.

The app developer's UI, showing a microflow and a UI flow:

An example microflow: An example UI flow:
Example microflow Example UI flow

There are two kinds of flows:

  1. Microflows, which run on the back-end, and deal mainly with data and external connections.

  2. UI flows, which run on the front-end, and deal mainly with the user interface and data consistency.

Microflows and UI flows differ in what they can do, because the steps available to each are not the same. Here are the differences:

  • A microflow step can perform any of the following:

    • Call an API.

    • Find, create, update, or delete records.

    • Notify a user, or send them an email.

    • Wait for some value to change.

    • Decide what to do next, based on some value.

    • Perform loops, repeating other steps to process multiple records.

  • A UI flow step can perform any of the following:

    • Find or update a record.

    • Refresh data.

    • Show a message to the user.

    • Wait for some value to change.

    • Decide what to do next, based on some value.

Configuration

The later stages of an app developer's work is done in the Configuration section of the developer's UI, refining the user experience, and configuring the app.

Configuring the app involves any or all of the following:

  • Setting up email, security, and domains.

  • Customizing the app's logo and color scheme.

  • Translating UI labels into other languages.

  • Adding help text (user guides) and custom menus.

Publish

You can preview an app at any stage in its development. An app preview is a temporary instance of the app that only you, the app developer, can see.

To release an app and make it permanently available to any user, you must publish it.