Applications
Applications group all resources and dependencies needed to implement an use case.
Overview
An application groups resources that represent a project’s entire lifecycle. It’s not just a collection of processes; it’s an organized workspace containing all dependencies required for that project, from themes and templates to integrations and other resources. Applications enable you to:
- Create Versions of an application to manage changes over time.
- Deploy Builds for consistent environments.
- Organize Resources to ensure clarity and reduce errors.
Core features
Centralized Resource Management
Applications provide a single view of all resources referenced in a process, enabling you to manage everything from one central workspace. This approach reduces context-switching and keeps configuration focused.
Localization and Multi-Language Support
Applications support the definition of multiple locales, allowing for easy handling of regional content and settings. Enumerations, substitution tags, and media can be localized to meet specific environment requirements.
Version Control and Builds
Applications support a robust versioning mechanism that tracks changes to processes, resources, and configurations. The Application Version captures a snapshot of all included resources, while the Build consolidates everything into a deployable package. Each build contains only one version of an application, ensuring a consistent deployment.
Dependency Management
Applications can leverage Libraries, which act similarly to applications but are designed for resource sharing across projects. A library can contain reusable components like processes or templates that can be included in other applications. Dependencies between applications and libraries are managed carefully to ensure compatibility.
Config
Config mode is the environment where you set up, adjust, and manage your application’s resources, processes, and configurations. It’s the workspace where you fine-tune every aspect of the application before it’s ready for deployment. Think of it as the design phase, where the focus is on setup, organization, and preparation.
Application components
Processes
- Processes: Process definitions that drive the application’s core functionality and share an application’s resources.
Processes
- Subprocesses: Processes that can be invoked within the main process. These can either be part of the same application or imported from a library set as a dependency for the application.
Subprocesses
Content Management System (CMS)
- Enumerations: Predefined sets of options or categories used across the application. These are useful for dropdown menus, filters, and other selection fields.
Enumerations
- Substitution tags: Here you have system predefined substitutin tags and dynamic placeholders that allow for personalized content, such as user-specific data in notifications or documents.
Substitution tags
- Media Library: A collection of images, videos, documents, and other media assets accessible within the application.
Task Management
- Views: Views are configurable interfaces that present task-related data based on specific business process definitions. They allow users to create tailored visualizations of task information, utilizing filters, sorting options, and custom parameters to focus on relevant data.
- Hooks: Custom scripts or actions triggered at specific points in a task’s lifecycle.
- Stages: The phases that a task goes through within a workflow (e.g., Pending, In Progress, Completed).
- Allocation Rules: Criteria for assigning tasks within workflows based on predefined rules (e.g., user roles, availability).
Integrations
- Systems (API Endpoints): Configurations for connecting to external systems via REST APIs. These endpoints facilitate data exchange and integration with third-party platforms.
- Workflows: Workflows are configurable sequences of tasks and decision nodes that automate data processing, system interactions, and integrations, enabling efficient communication and functionality across different applications and services.
Dependencies
Dependencies refer to the relationship between an application and the external resources it relies on, typically housed in a Library. These dependencies allow applications to access and utilize common assets, like processes, enumerations, or media files, from another project without duplicating content. By managing dependencies effectively, organizations can ensure that their applications remain consistent, efficient, and modular, streamlining both development and maintenance.
- Libraries: A library is a special type of project that stores reusable resources. Applications can declare a library as a dependency to gain access to the resources stored within it.
- Build-Specific Dependencies: When an application adds a library as a dependency, it does so by referencing a specific build of that library
This build-specific dependency ensures that changes in the library do not automatically propagate to the dependent applications, providing stability and control over which version is in use.
- Versioning: Dependencies are versioned, meaning an application can rely on a particular version of a library’s build. This versioning capability allows applications to remain insulated from future changes until they are ready to update to a newer version.
Libraries
Read more about libraries by accessing this section
Configuration Parameters
Configuration Parameters are essential components that allow applications to be dynamic, flexible, and environment-specific. They provide a way to manage variables and values that are likely to change based on different deployment environments (e.g., Development, QA, Production), without requiring hardcoded changes within the application. This feature is particularly useful for managing sensitive information and environment-specific settings.
What Are Configuration Parameters? Configuration Parameters are user-defined variables that can be referenced throughout an application. These parameters allow you to:
- Set environment-specific values: Tailor your application’s behavior depending on the target environment.
- Store sensitive data securely: Store API keys, passwords, or tokens securely using environment variables.
- Centralize settings: Manage common values in one place, making it easier to update settings across multiple processes or integrations.
Application level settings
Name
The name of the application, which serves as the main identifier for your project within FlowX AI. This name is used to categorize and manage all associated resources.
Type
You have two options:
- Application: A standard project that will contain processes, resources, integrations, and other elements.
- Library: A reusable set of resources that can be referenced by multiple applications.
Platform type
You can specify the platforms for the application:
- Omnichannel: The application will support web, mobile, and other platforms.
- Web: The application will be restricted to web-based access.
- Mobile: The application will only be accessible via mobile platforms.
Default theme
Choose a theme to apply a consistent look and feel across the application. Themes manage colors, fonts, and UI elements for a unified visual experience. In the screenshot, “FlowXTheme” is selected as the default.
Theming
Number formatting
- Min Decimals and Max Decimals: Configure how numbers are displayed in the application by setting the minimum and maximum decimal points. This helps ensure data consistency when dealing with financial or scientific information.
- Date Format: Choose the format for displaying dates (e.g., short or long formats) to ensure the information is localized or standardized based on your application’s requirements.
- Currency Format: Set whether currency is displayed using the ISO code (e.g., USD) or using a symbol ($). This affects how financial information is presented across the application.
Languages
This section allows you to manage languages supported by the application.
- Default Language: You can set one language as the default, which will be the primary language for users unless they specify otherwise. In the screenshot, English (EN) is set as the default language.
- Add Multiple Languages: This enables multi-language support. Substitution tags and enumerations can be localized to provide a better experience for users in different regions.
Fore more information about localization and interanationalization, check the following section:
l10n & i18n
Creating and managing applications
An application’s lifecycle includes the following stages:
Creating an application
- Start by defining the name and type (Omnichannel, Web, Mobile).
- Set up initial configurations like themes, languages, and formats.
- Inherit system-wide design assets like themes or fonts.
Configuring Resources
- Add processes, define templates, set up enumerations, and manage integrations.
- Configure environment-specific parameters like API URLs or passwords using environment variables.
- Reuse resources from libraries by setting up dependencies, allowing access to shared content.
Publishing an Application
- Submit your configured resources to a version.
- Once finalized, a version can be committed for stability.
- Create a build from a version when ready to deploy to a different environment.
Deploying a Build
- A build packages the application version for a consistent deployment.
- Each build is immutable and cannot be modified once created, ensuring runtime stability.