# Getting Started

How to get started with Frends, regardless of your role or task.

Welcome to Frends's getting started section. Frends is an easy-to-use and powerful integration platform (iPaaS) that is designed to support your most critical business needs and that developers like to use.&#x20;

## Introduction

Frends' low-code integration editor makes it easy for anyone to understand the logic behind the integrations, while being powerful enough to make it possible to create anything in the capable hands of integration developers.&#x20;

Having version control and CI/CD capable deployment and environments built in to the platform makes it easy to develop and deploy new features to test and production. Once deployed, the provided logging features show instantly what happened and where.

Are you perhaps interested in creating APIs using Frends? We have full suite of API management features too, built in and always included, just like the other features. Pop in your OpenAPI specification and link a process to each endpoint, and you're ready to get the integration logic flowing through an API. Securely, of course.

## Guides

To get started with your path to success with Frends, we have gathered guides here to take your first step. You can start exploring the paths we have created for your specific situation below.

### The basics

Regardless of your role, you might want to get familiar with [frends-glossary](https://docs.frends.com/docs/get-started/frends-glossary "mention") as well as [frends-highlights](https://docs.frends.com/docs/get-started/frends-highlights "mention") which will help you understand the platform and terminology used better.&#x20;

For the very basics of the platform, we recommend also checking out the Welcome tour in your Frends Tenant. You can find it from the Home View of your Frends Platform, under **Onboarding**, if it didn't launch automatically. You can also check this interactive demo we have built just for you:

{% @storylane/embed subdomain="app" linkValue="ldn2hxarpe4m" url="<https://app.storylane.io/share/ldn2hxarpe4m>" %}

### Learning paths

With the basics of the Frends platform grasped, here you can find the curated guides to get you further on your path.

<table data-view="cards"><thead><tr><th data-type="content-ref"></th><th></th><th data-hidden data-type="content-ref"></th></tr></thead><tbody><tr><td><a href="getting-started-guide/integration-development">integration-development</a></td><td><p>How to create, deploy and test integrations, called </p><p>Processes, with Frends.</p></td><td><a href="getting-started-guide/integration-development">integration-development</a></td></tr><tr><td><a href="getting-started-guide/managing-integration-platform-and-data">managing-integration-platform-and-data</a></td><td>How to check what is happening in your Frends environment.</td><td><a href="getting-started-guide/managing-integration-platform-and-data">managing-integration-platform-and-data</a></td></tr><tr><td><a href="getting-started-guide/supporting-integrations">supporting-integrations</a></td><td>Received a support ticket about Frends and no idea how to continue? Start here.</td><td><a href="getting-started-guide/supporting-integrations">supporting-integrations</a></td></tr></tbody></table>

## What's next?

Already got yourself familiarized with Frends basics? Check out these categories to learn more about Frends.

<table data-view="cards"><thead><tr><th data-type="content-ref"></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><a href="https://app.gitbook.com/s/1H5SQ92uIfBOYNIeoUAc/">Reference</a></td><td>Learn more about Frends Processes' technical details.</td><td><a href="https://app.gitbook.com/s/1H5SQ92uIfBOYNIeoUAc/">Reference</a></td></tr><tr><td><a href="https://app.gitbook.com/s/0p415NUmUmiF4ayjI81L/guides">Guides</a></td><td>More guides to learn about common use cases and scenarios.</td><td><a href="https://app.gitbook.com/s/0p415NUmUmiF4ayjI81L/guides">Guides</a></td></tr><tr><td><a href="../frends-development">frends-development</a></td><td>Learn more about the development features in Frends.</td><td><a href="../frends-development">frends-development</a></td></tr><tr><td><a href="../management-and-operations">management-and-operations</a></td><td>Interested in managing and supporting Frends &#x26; integrations? Check here.</td><td><a href="../management-and-operations">management-and-operations</a></td></tr><tr><td><a href="../hybrid-integration-architecture">hybrid-integration-architecture</a></td><td>This is how Frends works in the background.</td><td><a href="../hybrid-integration-architecture">hybrid-integration-architecture</a></td></tr></tbody></table>

## Certification

If you're ready to take your understanding of Frends to the next level, consider following [our certification learning paths available in the Guides section](https://app.gitbook.com/s/0p415NUmUmiF4ayjI81L/learning-paths). These paths are designed to help you deepen your knowledge of the platform, focusing on advanced topics and practical applications.

#### Why Pursue Certification?

* **Enhance Your Skills:** Gain comprehensive insights into complex integration scenarios and platform capabilities.
* **Boost Your Career:** Certification can demonstrate your expertise to employers and clients, potentially opening new professional opportunities.
* **Stay Updated:** Engage with the latest features and techniques as you prepare for the exam.

[Visit the Learning Paths section in Guides](https://app.gitbook.com/s/0p415NUmUmiF4ayjI81L/learning-paths) and you'll be well on your way to mastering Frends and achieving certification. Good luck on your learning journey!


# Integration Development

How to create, deploy and test integrations with Frends.

Starting out as an integration developer, or new to Frends as an experienced integration guru? Or just generally curious about what the developers are doing in your Frends environment? You have found the correct resource to get started.&#x20;

## Get started with Integration Development

Follow along to create your first Frends integration, called Process, and learn how to deploy and test the functionality.&#x20;

If you missed it, the [..](https://docs.frends.com/docs/get-started "mention") page contains the very basics of Frends UI and features, and you might want to start there first before proceeding with this guide.

### How to create integrations using Frends

<details>

<summary>How to create integrations using Frends</summary>

Integration flows in Frends are referred to as Processes. Processes consist of elements such as Triggers, Tasks, Subprocesses, decisions and loops. Processes are created by connecting elements together and configuring their parameters.

## Step by Step Tutorial Available

If you prefer more visual or interactive guidance on how to create Processes with Frends, you can find a step-by-step walkthrough from your own environment's home page, under Onboarding by selecting "Tutorial 1, Step 3: Creating my first Process" tutorial.

## Creating New Process

The Process list displays the already created Processes in the Environment.

<figure><img src="broken-reference" alt="The view shows a list of Processes within Frends."><figcaption><p>Example view of Process list.</p></figcaption></figure>

In order to create a new Process, click on **Create New** button while in Process list view and having the Development Environment selected. All new Processes have to be created and edited in the Development Environment, from where they are then deployed to other Environments and Agent Groups for execution.

<figure><img src="broken-reference" alt="Showing where and how to create a new Process."><figcaption><p>Integrations can be created from Process list view while having Development Environment selected.</p></figcaption></figure>

<figure><img src="broken-reference" alt="Default view in Process Editor, when starting to create a new Process."><figcaption><p>Process Editor for a new Process.</p></figcaption></figure>

When creating a new Process, you can start by providing the Process a name and optionally a description. To use the latest versions in Frends, targeting .NET 8 is recommended, while .NET Framework 4.7.1 or .NET Standard 2.0 are only used to support legacy environments.

As an example, let's create a Process which is started manually without parameters, calls an API endpoint and then returns a result. Because the start element, called **Trigger**, is already provided, we can continue forward by adding a **Task** to the process.

You can drag or click and place the Task shape from the leftside toolbar to right of the Trigger shape.

<figure><img src="broken-reference" alt="Image shows where to select a Task shape and insert it to the canvas."><figcaption><p>Adding a Task shape to the Process.</p></figcaption></figure>

To make the Task perform an API call, click on the **Select a Task** field and search and select **HTTP Request** Task. When the Task type is selected, the right sidebar contents change to show the Task parameters. In here, enter the url as **<https://examplecrm.frends.com/api/customers>** and make sure Method is GET. Rest of the options can be left as-is for this example.

<figure><img src="broken-reference" alt="This image shows the parameters for the chosen Task, to perform an API call."><figcaption><p>Parameters for the Task can be set after selecting its type.</p></figcaption></figure>

Once the Task is configured for our use, we need to connect it to the earlier shape. To do this, click on the **Connect tool** from the left toolbar or from the quick toolbar next to the Trigger shape, and draw an arrow from the Trigger to the Task shape.

<figure><img src="broken-reference" alt="Here we show how to find and use Connect tool to connect shapes together."><figcaption><p>Draw a connection from the Trigger to Task using the Connect tool.</p></figcaption></figure>

Finally, we need to end the Process and save it. All Processes start with a Trigger, and end to a **Return shape**, or optionally to a **Throw** shape. Let's drag a Return shape to the right side of the Task, and connect it to the Task shape to create a complete Process flow.

<figure><img src="broken-reference" alt="Image showing a completed Process flow, with Return shape parameters."><figcaption><p>Complete integration flow with return value.</p></figcaption></figure>

For the example, we want to return the API response's body. We can do this by selecting the Return shape, and writing **#result\[HTTP Request].Body** to the Expression field. Make sure the field's type is set to **Expression,** and not **Text**, in order to Frends consider the content as C# code and not  text.&#x20;

<figure><img src="broken-reference" alt="Utilizing the Auto-complete feature makes Process development faster."><figcaption><p>Utilize the provided Auto-complete feature to fill in variable names and result objects' names quicker.</p></figcaption></figure>

{% hint style="info" %}
We will cover the C# expressions and other programming features of Frends later on in the guides, but you can  also [check out our guide about Expressions in Frends](https://app.gitbook.com/s/0p415NUmUmiF4ayjI81L/development/using-expressions-in-frends-processes) already to learn more right from the start.
{% endhint %}

Once ready, we can **validate** and **save** the process. You can optionally provide a **Description** or a comment to version history, what was changed in this version. It's recommended to always include a short comment on what was done.&#x20;

<figure><img src="broken-reference" alt="Saving and validating the Process is done at the bottom of the editor."><figcaption><p>Saving and validating the Process is done at the bottom of the editor.</p></figcaption></figure>

Validation at this point means that the Process is taken through C# compiler and checked for errors, but it does not save the Process in any way. To save the Process for testing and deployment, select **Create new Process**. Saving the Process also validates it for errors, but save is not done if any errors persist.

When editing a Process, the save button changes to **Save changes**. If you want to save your Process but not create a new version for use yet, you can instead select **Create new draft** from the small arrow menu. This way you can save your work even if the Process is not yet valid.

Once the saving and validation succeeds, you are taken back to Process list view with your new Process highlighted at the top of the list. From there, you can run it, deploy it or continue editing, among other options.

<figure><img src="broken-reference" alt="New Process hightlighted at the top of the Process list, with options for the Process shown."><figcaption><p>New Process hightlighted at the top of the Process list, with options for the Process shown.</p></figcaption></figure>

</details>

### Deploying the Process

<details>

<summary>Deploying the Process</summary>

Once Processes have been created and possibly initially tested out, it's usually recommended to deploy them into another Agent Group for further testing as well as for production use. This guide will take you through the steps and requirements to do so.

## Step by Step Tutorial Available

If you prefer more visual or interactive guidance on how to deploy Processes with Frends, you can find a step-by-step walkthrough from your own environment's home page, under Onboarding by selecting  "Tutorial 4, Step 5: Deploy my first integration" tutorial.

## Requirements

In order to be able to deploy Processes to another Agent Groups and Environments, you will need to have configured at least one other Agent Group in your Frends Tenant. While the Agent Group can be in the same Development Environment as is provided by default, it makes sense to add another Environment at the same time.&#x20;

After deployment, you will also need an Agent, a Frends runtime executable on a server, within that Agent Group in order to execute the Processes deployed there. Not having an Agent will not block deployment, however, so you will not need any extra hardware or server configuration in order to follow this guide.

### Environment Variables and Subprocesses

In case your Process is using Environment Variables and/or Subprocesses, there are some actions that need to be taken before deploying a Process can be done.

First off, any Subprocesses used in your Process must be deployed before the Process can be deployed. Deploying a Subprocess is done in exactly the same way as shown in this guide for Processes, but in Subprocess list view, of course.

Secondly, all used Environment Variables must have a defined value for the target Environment before Process deployment. This ensures that all values are there for the Process and it can be executed after deployment.

## How to deploy a Process

In order to deploy a Process, head to Process list view and select the Environment and Agent Group where the wanted Process version resides. This is usually the development Agent Group if we want to deploy the latest development version, or testing Agent Group if a tested version of a Process is being deployed to production.&#x20;

During deployment an older version can also be chosen to be deployed, but to deploy the very latest version of a Process you need to deploy from the development Agent Group.

<figure><img src="broken-reference" alt="Image shows the view of Frends Process list, after creating a new Process."><figcaption><p>View of the Process list after creating a Process, with available actions shown.</p></figcaption></figure>

When you are in the Process list, browse or search for your Process, and click on the ellipsis button on the right side of the row. This will open the actions available to do for the Process.

To begin the deployment, select **Deploy Process to Agent Group**. This will open a new modal dialog that will have the options and actions for deploying the Process.

<figure><img src="broken-reference" alt="This is what a Process deployment modal looks like."><figcaption><p>Process deployment view.</p></figcaption></figure>

First option to select is where do you want to deploy your Process to. By default, the next Environment's first Agent Group is selected. Order of these can be changed when creating and modifying the Environments and Agent Groups.&#x20;

<figure><img src="broken-reference" alt="Selecting the target Agent Group is done with a dropdown menu."><figcaption><p>Selecting the target Agent Group is done with a dropdown menu.</p></figcaption></figure>

After selecting the target Agent Group and thus the Environment, you can also change which version of the Process will be deployed. This will also show where each version is deployed to already.&#x20;

When editing a Process, a new version will be created each time, but only to the Development Environment. In order to push the changes to other Agent Groups and Environments, the Process needs to be deployed.

<figure><img src="broken-reference" alt=""><figcaption><p>This Process is currently only in Development, with one older version available.</p></figcaption></figure>

By default, the latest version within the current Agent Group is selected, and this is most often the version we want to deploy.

To finally actually deploy the Process, we have two options: **Deploy and activate Triggers**, or just **Deploy**.

When Triggers are activated for a Process, it means that any automated execution conditions for our Process will become active, and the Process will execute when the conditions match. When in deactivated state, even if the Process has for example a Schedule Trigger, the Process will not start automatically. Manual execution can be done in both states, however.

Deploying and activating Triggers will enable the Process to be automatically launched as soon as the deployment is complete. Only deploying the Process without activating Triggers will leave the state of the Process as it was before in the target Agent Group. If the Process was active before deployment, it will stay active afterwards as well.

By clicking either button, the Process will get deployed to the chosen Agent Group if everything went OK and all preparations were complete. In case there were any errors or missing details, an error will be shown and the dialog will not close. Most common error is that the Process is using Subprocesses or Environment Variables, which were not defined and deployed before deploying the Process.&#x20;

<figure><img src="broken-reference" alt="Picture showing an error message that appears, if Environment Variable is not set for target Environment."><figcaption><p>This is what error message about missing Environment Variable value looks like.</p></figcaption></figure>

</details>

### How to test the Process

<details>

<summary>How to test the Process</summary>

In order to run a Process when you need it, instead of relying on automation from the different Triggers, there's a useful action called **Run once** for the Processes and Subprocesses in Frends. This will execute the Process with the Manual Trigger commonly available in Processes.

## Step by Step Tutorial Available

If you prefer more visual or interactive guidance on how to run Processes manually in Frends, you can find a step-by-step walkthrough from your own environment's home page, under Onboarding by selecting "Tutorial 1, Step 4: Running the Process" tutorial.

## Requirements

To run a Process manually or automatically through Triggers, an Agent is required in the Agent Group the Process is deployed to. Agents are what actually perform the actions defined within Processes, so in addition to Environment and Agent Group, you will also need an Agent on a server or computer to run Processes.

Frends at a minimum comes with Development Environment with a Cloud Agent set up, so it's not required to have your own Agents running to follow this guide, but for other purposes than light testing or development, it's recommended to set up your own Agent as well.

Having a Manual Trigger in Process is *not* required. In case there is no Manual Trigger in a Process, an implicit Manual Trigger with no parameters will be used to trigger the Process. However, if the Process expects some values from an API Trigger for example, the values cannot be provided and the Process execution will likely fail.

## How to run Process once

In order to run a Process manually, head over to Process list and select the Agent Group you would like to execute the Process in.

<figure><img src="broken-reference" alt="Use the Agent Group selection in Process list to change displayed Agent Group and its Processes."><figcaption><p>Use the Agent Group selection in Process list to change displayed Agent Group and its Processes.</p></figcaption></figure>

When correct Agent Group is selected, find your Process from the Process list and click on the ellipsis button to open Process actions.

You can then select **Run once** to launch the Process.&#x20;

<figure><img src="broken-reference" alt="Picture highlighting the Run once option in Process actions."><figcaption><p>Run once option is the first on the Process actions list.</p></figcaption></figure>

In case there are any parameters defined in the Process's Manual Trigger, the values will be prompted from the user before starting the Process. If there are no parameters defined, the Process will launch immediately.

Once the Process has started execution, you can go ahead and open the Process Instances for the Process to see what is being done within the Process execution.

<figure><img src="broken-reference" alt="Picture shows an example of parameters being prompted in a modal dialog."><figcaption><p>Example of parameters being prompted for manual execution. </p></figcaption></figure>

</details>

### Reading the Process logs

<details>

<summary>Reading the Process logs</summary>

In order to see what happened during integration flow execution, Frends has a view called Process Instance.&#x20;

## Step by Step Tutorial Available

If you prefer more visual or interactive guidance on how to view Process logs with Frends, you can find a step-by-step walkthrough from your own environment's home page, under Onboarding by selecting  "Tutorial 2b, Step 2: Process Logs" tour.&#x20;

## Accessing process instances

The Process Instances are accessible through Process list by selecting **Show Process instances**. You can also access the Process Instance list by clicking on **Last execution** or **Instance counts per day** columns from the Process list.

<figure><img src="broken-reference" alt="How to access Process Instances from Process List."><figcaption><p>How to access Process Instances from Process list.</p></figcaption></figure>

Then selecting any of the Process Instances on the Process Instance list will take you to the chosen execution's Instance view.&#x20;

<figure><img src="broken-reference" alt="A view of the Process Instance list with filters."><figcaption><p>Process Instance list view.</p></figcaption></figure>

## Process Instance list filters

In the Process Instance list, you can filter the shown Instances using time period and the state of the Process Instance. The search also supports searching for results and values promoted from the Process execution using SQL wildcards.&#x20;

The Instance list is automatically refreshed by default, to show the current state of the executions in almost real time. In case there are a lot of executions happening, setting the **Auto refresh** to Off might help in focusing on the earlier executions.

## Process Instance view usage

From the Process Instance view it is possible to see what happened at each stage of the execution, shape by shape.&#x20;

<figure><img src="broken-reference" alt="Example process execution view"><figcaption><p>Example Process Instance view.</p></figcaption></figure>

From the view, it's possible to click on the Process elements to see details of that part of the Process. Depending on logging settings in the Process as well as in the Agent Group, some details of the execution might not be always visible.

Functionality in the Process Instance view is similar to Process Editor view, but instead of allowing editing the Process and shape details, it shows what happened during the execution.

<figure><img src="broken-reference" alt="Process execution view with HTTP Request Task selected."><figcaption><p>Process Instance view with HTTP Request Task selected. </p></figcaption></figure>

Common information shown for each shape are:

* **Start time**, when the execution of chosen shape was started
* **Duration**, how long the execution took for that shape
* **Task** or **Expression**, what was executed
* **Result**, showing what was the result of the execution

If extended logging is enabled for the Process or Agent Group (**Log everything** in Log settings), the input parameters are also logged and shown here. Because extended logging has some impact on performance, this level of logging is recommended to be used only temporarily. The Log settings provide an easy way to set Log everything for only a specified duration.

<figure><img src="broken-reference" alt="Extended parameter logging is available when Log Everything option is selected."><figcaption><p>Extended information shown for the executed Task, when "Log everything" is set.</p></figcaption></figure>

It's also possible that log settings were adjusted so that **Only errors** are logged, or **Skip logging result and parameters** is enabled for some elements in the Process. In these situations details for successful shape executions are not logged. This is useful for production use, when there can be many and more executions and as long as there are no errors, most details of the executions are not needed.

<figure><img src="broken-reference" alt="If Errors Only log level is selected, nothing but errors and basic details are logged for executions."><figcaption><p>No data shown for the Process execution with "Only errors" log level set.</p></figcaption></figure>

</details>

With these guides and their tutorial and demo counterparts, you are well on your way to becoming the best integration developer with Frends. While this covered only the very basics of Frends Platform, continuing from here should prove to be no issue. Try, test and learn from doing is the perfect way of getting better in developing with Frends.

To help you on your way, we have some more guides and tutorials to assist you in getting to know Frends better.&#x20;

## What's next?

Already got yourself familiarized with Frends basics? Check out these categories to learn more about Frends.

<table data-view="cards"><thead><tr><th data-type="content-ref"></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><a href="https://app.gitbook.com/s/1H5SQ92uIfBOYNIeoUAc/">Reference</a></td><td>Learn more about Frends Processes' technical details.</td><td><a href="https://app.gitbook.com/s/1H5SQ92uIfBOYNIeoUAc/">Reference</a></td></tr><tr><td><a href="https://app.gitbook.com/s/0p415NUmUmiF4ayjI81L/guides">Guides</a></td><td>More guides to learn about common use cases and scenarios.</td><td><a href="https://app.gitbook.com/s/0p415NUmUmiF4ayjI81L/guides">Guides</a></td></tr><tr><td><a href="../../frends-development">frends-development</a></td><td>Learn more about the development features in Frends.</td><td><a href="../../frends-development">frends-development</a></td></tr><tr><td><a href="../../management-and-operations">management-and-operations</a></td><td>Interested in managing and supporting Frends &#x26; integrations? Check here.</td><td><a href="../../management-and-operations">management-and-operations</a></td></tr><tr><td><a href="../../hybrid-integration-architecture">hybrid-integration-architecture</a></td><td>This is how Frends works in the background.</td><td><a href="../../hybrid-integration-architecture">hybrid-integration-architecture</a></td></tr></tbody></table>

## Certification

If you're ready to take your understanding of Frends to the next level, consider following [our certification learning paths available in the Guides section](https://app.gitbook.com/s/0p415NUmUmiF4ayjI81L/learning-paths). These paths are designed to help you deepen your knowledge of the platform, focusing on advanced topics and practical applications.

#### Why Pursue Certification?

* **Enhance Your Skills:** Gain comprehensive insights into complex integration scenarios and platform capabilities.
* **Boost Your Career:** Certification can demonstrate your expertise to employers and clients, potentially opening new professional opportunities.
* **Stay Updated:** Engage with the latest features and techniques as you prepare for the exam.

[Visit the Learning Paths section in Guides](https://app.gitbook.com/s/0p415NUmUmiF4ayjI81L/learning-paths) and you'll be well on your way to mastering Frends and achieving certification. Good luck on your learning journey!


# Managing Integration Platform & Data

How to check what is happening in your Frends environment.

Just got your own Frends platform to start integration project, or accessing existing platform as a new user, interested in learning where to find the logs and what is happening within the integrations? This getting started guide is for you.

## Getting started with Integration Management

Follow along these guides to learn where to look for the data you might be interested in.&#x20;

If you missed it, the [..](https://docs.frends.com/docs/get-started "mention") page contains the very basics of Frends UI and features, and you might want to start there first before proceeding with this guide.

### Using the Dashboard

<details>

<summary>Using the Dashboard</summary>

When there's more than a few Processes in your Frends Tenant and you would like to make sure everything is running as expected, you can use Dashboard to centrally monitor the Processes.

## Step by Step Tutorial Available

If you prefer more visual or interactive guidance on how to use the Dashboard in Frends, you can find a step-by-step walkthrough from your own environment's home page, under Onboarding by selecting  "Tutorial 2b, Step 1: Dashboard" tutorial.

## What is Dashboard? <a href="#what-is-dashboard" id="what-is-dashboard"></a>

**Dashboard** is a comprehensive tool within the Frends Control Panel designed to provide users with a clear and concise overview of their system activities. It includes key metrics such as performance statistics and integration execution logs. The Dashboard offers customizable widgets that allow users to tailor the view according to their specific monitoring needs. Users can adjust settings to highlight critical alerts, track error occurrences, and monitor execution counts, thus enabling proactive management and swift response to any issues that may arise.

<figure><img src="https://frends.gitbook.io/docs/MiTR4bNEPN9WG6QhZtnX/~gitbook/image?url=https%3A%2F%2F421307484-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FQI65mBosbdweu563CvPI%252Fuploads%252F1wAflrJrQmAaWGfOSEpz%252Fscreenshot-rocks%2520%2848%29.png%3Falt%3Dmedia%26token%3D0f8b83b0-1c71-4df8-b646-1b87ba1eab80&#x26;width=768&#x26;dpr=4&#x26;quality=100&#x26;sign=d95efb86&#x26;sv=2" alt="Frends Dashboard shows you a collection of widgets that provide data about Process executions."><figcaption><p>Frends Dashboard shows you a collection of widgets that provide data about Process executions.</p></figcaption></figure>

## Accessing Dashboard

To find the Dashboard, click on your profile name in upper right corner, and select Dashboard from the opening menu.

You can also get a quick access by creating a bookmark pointing at **yourtentant.frendsapp.com/Dashboard.**&#x20;

<figure><img src="broken-reference" alt="Screenshot shows how to find the Dashboard under the profile menu."><figcaption><p>Dashboard can be accessed from the profile menu.</p></figcaption></figure>

## Monitor Process execution counts

Sometimes the count of executions is the most important detail to monitor. This can be required in order to manage and allocate resources to Frends Agents, set up more Agents to High Availability configuration, or simply to see how your business is doing.&#x20;

Dashboard provides a couple widgets to let you see and monitor execution counts in your Frends Tenant. **Successful processes** shows you a daily execution count for successful executions, while **Failed processes** widget can be used to monitor specifically errors. They can also be adjusted to display the count from multiple days if required. They will also show the change from last time period when compared to currently ongoing counter.

More versatile and detailed widget for monitoring execution counts is the **Process execution graph**, which will show you a graph of execution counts for each point in time, for the chosen time period. The smaller the time period chosen, more detailed the graph will become. For this graph you can also choose to display either successful or failed executions.

<figure><img src="broken-reference" alt="It&#x27;s possible to adjust widget settings for Environment, Tags, Time limit as well as Successful or Failed Processes."><figcaption><p>Widget settings for a Process execution graph.</p></figcaption></figure>

## Monitor errors on a per Process basis

In case you want to monitor specifically errors coming from Processes, the **Errors** widget will let you make a list of Processes with failed executions, sorted by latest failed execution timestamp. This is useful if you want to drill down further into where the errors in your Tenant are coming from.

While a single list of Processes and errors in them is efficient, usually it's the specific Environment that's the important part of the monitoring. Monitoring the Test Environment is not very useful, when the issues are happening in production. Widgets allow selecting the Environment they are pulling the data from, making sure that what you're monitoring is from where you expect it to come from, and not the whole Tenant with all of the development work on the way.

<figure><img src="broken-reference" alt="Environment selection in Dashboard widgets allows focusing on the important executions."><figcaption><p>Environments selection allows you to focus on the important Environments.</p></figcaption></figure>

## Focusing on specific Processes

In order to monitor only a subset of your Processes, Environment level separation probably is not enough. For this use case, **tags** can be used to specify which set of Processes to monitor in the chosen Environment.

In Dashboard context, tags provide a way to select a group of Processes to monitor within a widget, optionally with Environment selection as well. If your solution or target system specific Processes need to be monitored as a whole and separate from other systems' integrations, using tags is the way to go.

## Adjusting the Dashboard view

Using the widgets allows you to specify accurately, what data is shown and in what format. While each widget can show only a specific piece of data, having multiple allows you to gather and combine monitoring data with different filters to get a complete overview to your Frends Tenant in one quick glance.

The Dashboard allows you to arrange the widgets however you see fit, by providing the option to drag and drop the widgets around to create different views to suit your style.&#x20;

To remember which widget shows what data, renaming the chosen widgets is of course possible. Just click on the widget's title and you have entered the edit mode for the title.

<figure><img src="broken-reference" alt="Image showing example layout with renamed widgets in Dashboard."><figcaption><p>Rearranging and renaming widgets allows you to make informative views to your Tenant.</p></figcaption></figure>

</details>

### Reading the Process logs

<details>

<summary>Reading the Process logs</summary>

In order to see what happened during integration flow execution, Frends has a view called Process Instance.&#x20;

## Step by Step Tutorial Available

If you prefer more visual or interactive guidance on how to view Process logs with Frends, you can find a step-by-step walkthrough from your own environment's home page, under Onboarding by selecting  "Tutorial 2b, Step 2: Process Logs" tour.&#x20;

## Accessing process instances

The Process Instances are accessible through Process list by selecting **Show Process instances**. You can also access the Process Instance list by clicking on **Last execution** or **Instance counts per day** columns from the Process list.

<figure><img src="broken-reference" alt="How to access Process Instances from Process List."><figcaption><p>How to access Process Instances from Process list.</p></figcaption></figure>

Then selecting any of the Process Instances on the Process Instance list will take you to the chosen execution's Instance view.&#x20;

<figure><img src="broken-reference" alt="A view of the Process Instance list with filters."><figcaption><p>Process Instance list view.</p></figcaption></figure>

## Process Instance list filters

In the Process Instance list, you can filter the shown Instances using time period and the state of the Process Instance. The search also supports searching for results and values promoted from the Process execution using SQL wildcards.&#x20;

The Instance list is automatically refreshed by default, to show the current state of the executions in almost real time. In case there are a lot of executions happening, setting the **Auto refresh** to Off might help in focusing on the earlier executions.

## Process Instance view usage

From the Process Instance view it is possible to see what happened at each stage of the execution, shape by shape.&#x20;

<figure><img src="broken-reference" alt="Example process execution view"><figcaption><p>Example Process Instance view.</p></figcaption></figure>

From the view, it's possible to click on the Process elements to see details of that part of the Process. Depending on logging settings in the Process as well as in the Agent Group, some details of the execution might not be always visible.

Functionality in the Process Instance view is similar to Process Editor view, but instead of allowing editing the Process and shape details, it shows what happened during the execution.

<figure><img src="broken-reference" alt="Process execution view with HTTP Request Task selected."><figcaption><p>Process Instance view with HTTP Request Task selected. </p></figcaption></figure>

Common information shown for each shape are:

* **Start time**, when the execution of chosen shape was started
* **Duration**, how long the execution took for that shape
* **Task** or **Expression**, what was executed
* **Result**, showing what was the result of the execution

If extended logging is enabled for the Process or Agent Group (**Log everything** in Log settings), the input parameters are also logged and shown here. Because extended logging has some impact on performance, this level of logging is recommended to be used only temporarily. The Log settings provide an easy way to set Log everything for only a specified duration.

<figure><img src="broken-reference" alt="Extended parameter logging is available when Log Everything option is selected."><figcaption><p>Extended information shown for the executed Task, when "Log everything" is set.</p></figcaption></figure>

It's also possible that log settings were adjusted so that **Only errors** are logged, or **Skip logging result and parameters** is enabled for some elements in the Process. In these situations details for successful shape executions are not logged. This is useful for production use, when there can be many and more executions and as long as there are no errors, most details of the executions are not needed.

<figure><img src="broken-reference" alt="If Errors Only log level is selected, nothing but errors and basic details are logged for executions."><figcaption><p>No data shown for the Process execution with "Only errors" log level set.</p></figcaption></figure>

</details>

### Viewing the Agent logs

<details>

<summary>Viewing the Agent logs</summary>

Process logs and Instances give a lot of detail about what is happening on the execution level, and most of the time, this is all it takes to figure out what is wrong. Sometimes the reason for issues in Processes is somewhere deeper, and the logs the Agents provide can shed some light on the root cause.

## Step by Step Tutorial Available

If you prefer more visual or interactive guidance on how to view Agent logs in Frends, you can find a step-by-step walkthrough from your own environment's home page, under Onboarding by selecting  "Tutorial 2b, Step 4: Agent Logs" tutorial.

## Requirements

In order to access Agent logs, you will need to have at least Editor role in Frends. In case the roles and permissions have been changed, having at least Environments.View permission is required. Some actions are restricted to Environments.Admin level, but viewing the Agent logs is possible with only the View level.

## Viewing the Agent logs

You can access the Agent logs by heading over to **Administration** menu and opening **Environments**.&#x20;

<figure><img src="broken-reference" alt="Picture shows where to find the Environments management view in Frends navigation."><figcaption><p>Administration menu contains the Environments management, among others.</p></figcaption></figure>

Once in Environments, you will be presented the currently selected Agent Group and its features and settings. On the left, you have a list of Environments and Agent Groups within them, to change which Agents you are looking at.

You can learn more about the architecture Frends has for the execution environment at [hybrid-integration-architecture](https://docs.frends.com/docs/hybrid-integration-architecture "mention") section.

For viewing the Agent logs, we want to click on the Agent(s) shown under Agent Groups.

<figure><img src="broken-reference" alt=""><figcaption><p>Click on an Agent under Agent Group to access its logs.</p></figcaption></figure>

By clicking on the Agent's name or the Agent card in general, you will directly access the Agent's logs, what is happening on the background. These logs will show, among others, errors coming from the Processes and Subprocesses, as well as resource usage and message queue warnings and errors.

<figure><img src="broken-reference" alt="Screenshot showing Frends Agent&#x27;s logs."><figcaption><p>Agent logs show errors and warnings happening behind the integrations.</p></figcaption></figure>

By clicking on the error and warning messages, you can get more accurate message what happened at that point.

<figure><img src="broken-reference" alt=""><figcaption><p>Error message details provide C# stack traces as well as the full message for the warnings.</p></figcaption></figure>

Below the Agent logs, you can also find Triggers that are deployed to the Agent. From these you can confirm which Processes and Triggers should be running on the Agent, as well as receive the whole URL for an API or HTTP endpoint, as long as the external URL is configured for your Agent.

<figure><img src="broken-reference" alt="Picture showing the Triggers list within Agent log view."><figcaption><p>Triggers show the active Triggers on the chosen Agent, as well as the URL for each endpoint.</p></figcaption></figure>

</details>

With these guides and their tutorial and demo counterparts, you are well on your way to becoming the best integration manager with Frends. While this covered only the very basics of Frends Platform, continuing from here should prove to be no issue. Try, test and learn from doing is the perfect way of getting better in managing Frends.

To help you on your way, we have some more guides and tutorials to assist you in getting to know Frends better.&#x20;

## What's next?

Already got yourself familiarized with Frends basics? Check out these categories to learn more about Frends.

<table data-view="cards"><thead><tr><th data-type="content-ref"></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><a href="https://app.gitbook.com/s/1H5SQ92uIfBOYNIeoUAc/">Reference</a></td><td>Learn more about Frends Processes' technical details.</td><td><a href="https://app.gitbook.com/s/1H5SQ92uIfBOYNIeoUAc/">Reference</a></td></tr><tr><td><a href="https://app.gitbook.com/s/0p415NUmUmiF4ayjI81L/guides">Guides</a></td><td>More guides to learn about common use cases and scenarios.</td><td><a href="https://app.gitbook.com/s/0p415NUmUmiF4ayjI81L/guides">Guides</a></td></tr><tr><td><a href="../../frends-development">frends-development</a></td><td>Learn more about the development features in Frends.</td><td><a href="../../frends-development">frends-development</a></td></tr><tr><td><a href="../../management-and-operations">management-and-operations</a></td><td>Interested in managing and supporting Frends &#x26; integrations? Check here.</td><td><a href="../../management-and-operations">management-and-operations</a></td></tr><tr><td><a href="../../hybrid-integration-architecture">hybrid-integration-architecture</a></td><td>This is how Frends works in the background.</td><td><a href="../../hybrid-integration-architecture">hybrid-integration-architecture</a></td></tr></tbody></table>

## Certification

If you're ready to take your understanding of Frends to the next level, consider following [our certification learning paths available in the Guides section](https://app.gitbook.com/s/0p415NUmUmiF4ayjI81L/learning-paths). These paths are designed to help you deepen your knowledge of the platform, focusing on advanced topics and practical applications.

#### Why Pursue Certification?

* **Enhance Your Skills:** Gain comprehensive insights into complex integration scenarios and platform capabilities.
* **Boost Your Career:** Certification can demonstrate your expertise to employers and clients, potentially opening new professional opportunities.
* **Stay Updated:** Engage with the latest features and techniques as you prepare for the exam.

[Visit the Learning Paths section in Guides](https://app.gitbook.com/s/0p415NUmUmiF4ayjI81L/learning-paths) and you'll be well on your way to mastering Frends and achieving certification. Good luck on your learning journey!


# Supporting Integrations

Received a support ticket about Frends and no idea how to continue? Start here.

As fresh IT support or more experienced consultant just accessing Frends for the first time, you might be looking for information on how to solve the issue in Frends you've been tasked with. Or perhaps you need to give access to a new developer to Frends platform. Here's how to do it.

## Getting started with Frends as support personnel

This guide is meant to show you how to find and access the logs and settings that are commonly used in supportive tasks in Frends.&#x20;

If you missed it, the [..](https://docs.frends.com/docs/get-started "mention") page contains the very basics of Frends UI and features, and you might want to start there first before proceeding with this guide.

### Reading the Process logs

<details>

<summary>Reading the Process logs</summary>

In order to see what happened during integration flow execution, Frends has a view called Process Instance.&#x20;

## Step by Step Tutorial Available

If you prefer more visual or interactive guidance on how to view Process logs with Frends, you can find a step-by-step walkthrough from your own environment's home page, under Onboarding by selecting  "Tutorial 2b, Step 2: Process Logs" tour.&#x20;

## Accessing process instances

The Process Instances are accessible through Process list by selecting **Show Process instances**. You can also access the Process Instance list by clicking on **Last execution** or **Instance counts per day** columns from the Process list.

<figure><img src="broken-reference" alt="How to access Process Instances from Process List."><figcaption><p>How to access Process Instances from Process list.</p></figcaption></figure>

Then selecting any of the Process Instances on the Process Instance list will take you to the chosen execution's Instance view.&#x20;

<figure><img src="broken-reference" alt="A view of the Process Instance list with filters."><figcaption><p>Process Instance list view.</p></figcaption></figure>

## Process Instance list filters

In the Process Instance list, you can filter the shown Instances using time period and the state of the Process Instance. The search also supports searching for results and values promoted from the Process execution using SQL wildcards.&#x20;

The Instance list is automatically refreshed by default, to show the current state of the executions in almost real time. In case there are a lot of executions happening, setting the **Auto refresh** to Off might help in focusing on the earlier executions.

## Process Instance view usage

From the Process Instance view it is possible to see what happened at each stage of the execution, shape by shape.&#x20;

<figure><img src="broken-reference" alt="Example process execution view"><figcaption><p>Example Process Instance view.</p></figcaption></figure>

From the view, it's possible to click on the Process elements to see details of that part of the Process. Depending on logging settings in the Process as well as in the Agent Group, some details of the execution might not be always visible.

Functionality in the Process Instance view is similar to Process Editor view, but instead of allowing editing the Process and shape details, it shows what happened during the execution.

<figure><img src="broken-reference" alt="Process execution view with HTTP Request Task selected."><figcaption><p>Process Instance view with HTTP Request Task selected. </p></figcaption></figure>

Common information shown for each shape are:

* **Start time**, when the execution of chosen shape was started
* **Duration**, how long the execution took for that shape
* **Task** or **Expression**, what was executed
* **Result**, showing what was the result of the execution

If extended logging is enabled for the Process or Agent Group (**Log everything** in Log settings), the input parameters are also logged and shown here. Because extended logging has some impact on performance, this level of logging is recommended to be used only temporarily. The Log settings provide an easy way to set Log everything for only a specified duration.

<figure><img src="broken-reference" alt="Extended parameter logging is available when Log Everything option is selected."><figcaption><p>Extended information shown for the executed Task, when "Log everything" is set.</p></figcaption></figure>

It's also possible that log settings were adjusted so that **Only errors** are logged, or **Skip logging result and parameters** is enabled for some elements in the Process. In these situations details for successful shape executions are not logged. This is useful for production use, when there can be many and more executions and as long as there are no errors, most details of the executions are not needed.

<figure><img src="broken-reference" alt="If Errors Only log level is selected, nothing but errors and basic details are logged for executions."><figcaption><p>No data shown for the Process execution with "Only errors" log level set.</p></figcaption></figure>

</details>

### Viewing the Agent logs

<details>

<summary>Viewing the Agent logs</summary>

Process logs and Instances give a lot of detail about what is happening on the execution level, and most of the time, this is all it takes to figure out what is wrong. Sometimes the reason for issues in Processes is somewhere deeper, and the logs the Agents provide can shed some light on the root cause.

## Step by Step Tutorial Available

If you prefer more visual or interactive guidance on how to view Agent logs in Frends, you can find a step-by-step walkthrough from your own environment's home page, under Onboarding by selecting  "Tutorial 2b, Step 4: Agent Logs" tutorial.

## Requirements

In order to access Agent logs, you will need to have at least Editor role in Frends. In case the roles and permissions have been changed, having at least Environments.View permission is required. Some actions are restricted to Environments.Admin level, but viewing the Agent logs is possible with only the View level.

## Viewing the Agent logs

You can access the Agent logs by heading over to **Administration** menu and opening **Environments**.&#x20;

<figure><img src="broken-reference" alt="Picture shows where to find the Environments management view in Frends navigation."><figcaption><p>Administration menu contains the Environments management, among others.</p></figcaption></figure>

Once in Environments, you will be presented the currently selected Agent Group and its features and settings. On the left, you have a list of Environments and Agent Groups within them, to change which Agents you are looking at.

You can learn more about the architecture Frends has for the execution environment at [hybrid-integration-architecture](https://docs.frends.com/docs/hybrid-integration-architecture "mention") section.

For viewing the Agent logs, we want to click on the Agent(s) shown under Agent Groups.

<figure><img src="broken-reference" alt=""><figcaption><p>Click on an Agent under Agent Group to access its logs.</p></figcaption></figure>

By clicking on the Agent's name or the Agent card in general, you will directly access the Agent's logs, what is happening on the background. These logs will show, among others, errors coming from the Processes and Subprocesses, as well as resource usage and message queue warnings and errors.

<figure><img src="broken-reference" alt="Screenshot showing Frends Agent&#x27;s logs."><figcaption><p>Agent logs show errors and warnings happening behind the integrations.</p></figcaption></figure>

By clicking on the error and warning messages, you can get more accurate message what happened at that point.

<figure><img src="broken-reference" alt=""><figcaption><p>Error message details provide C# stack traces as well as the full message for the warnings.</p></figcaption></figure>

Below the Agent logs, you can also find Triggers that are deployed to the Agent. From these you can confirm which Processes and Triggers should be running on the Agent, as well as receive the whole URL for an API or HTTP endpoint, as long as the external URL is configured for your Agent.

<figure><img src="broken-reference" alt="Picture showing the Triggers list within Agent log view."><figcaption><p>Triggers show the active Triggers on the chosen Agent, as well as the URL for each endpoint.</p></figcaption></figure>

</details>

### User administration

<details>

<summary>User administration</summary>

Frends provides powerful user administration and management features in the Frends Control Panel. Users are Tenant-specific and they are specifically for accessing the Control Panel and performing actions within, and not related to who can access your APIs or HTTP endpoints, those are controlled separately using API Policies.

At its basics, users are managed in Frends using RBAC or Role-Based Access Control model, and in addition different authentication methods can be integrated into Frends from the User Management.

## Step by Step Tutorial Available

If you prefer more visual or interactive guidance on how to create and manage users in Frends, you can find a step-by-step walkthrough from your own environment's home page, under Onboarding by selecting  "Tutorial 2b, Step 3: User Administration" tutorial.

## How to create a new user in Frends

If your Frends Tenant has external authentication provider and SSO set up so that you can log in with your company's credentials, adding new users from your company can be done in Frends Control Panel.

Without external authentication provider set up, an administrator will need to invite new users to your Frends Tenant from the Frends Portal. Skip over to the second section to learn more about this method.

### Adding users in Frends Control Panel (SSO enabled)

New users can be added by asking them to log in with their existing credentials into the Frends Tenant, provided they have a user account with the connected authentication provider. If your SSO configuration includes the setting for default role for users, the users can log in and get immediate access with the default role's permissions.&#x20;

If the default role is not set they will not receive automatic access to Frends Tenant, but their username will be added to the list of users in your Frends Tenant after successful authentication, from where it is then easy to simply provide a role for the user.&#x20;

Note that only the users able to authenticate to your authentication provider, such as Entra ID, may use this method. External users will either have to be invited from the Frends Portal, or have account created for them in your company's user management system.

While usually not necessary, it is also possible to add a user from within the Frends Control Panel. This essentially replaces the initial logging in by the user. Start by accessing the Control Panel and navigating to the User Management section, located under Administration menu in main navigation. This section serves as the central hub for all user-related activities, allowing you to manage user accounts, roles and authentication providers.

<figure><img src="broken-reference" alt="Picture shows the default view of User Management section in Frends."><figcaption><p>Default view of User Management section in Frends.</p></figcaption></figure>

To create a new user this way, click on the **New User** button, which will prompt you to enter the necessary details for the new account. Begin by entering the username for the user, which will be used as the username for logging into the system. This is often the email address for the user, but not necessarily, depending on the authentication provider.&#x20;

Next, you will need to select the appropriate role for this user from a predefined list of roles which align with your operational needs. Roles dictate the level of access and permissions the user will have, so it is crucial to assign roles carefully. If needed, the roles can be edited and new roles created to match the exact responsibilities the users need to undertake, ensuring they have enough access to perform their duties effectively while maintaining system security.

Once you’ve filled in all necessary fields, double-check for any errors or missing information before saving. Click 'Save' to create the user. The system will either confirm the successful addition of the user or alert you to any issues that need addressing before the user can be created.

<figure><img src="broken-reference" alt=""><figcaption><p>Creating a new user is as simple as entering the username and role required.</p></figcaption></figure>

### Inviting new users from Frends Portal (Without SSO)

Before a new user can log in to your Frends Tenant with Frends credentials, the user has to be invited to your Frends Tenant by an administrator.&#x20;

Navigate to the Frends Portal at [https://portal.frends.com](https://portal.frends.com/) and log in. Here you can see information about your tenants, check release notes, and links to our documentation.

<figure><img src="https://downloads.intercomcdn.com/i/o/cbxrrbbm/1409599861/8ddeef1e3b9bd6a6866ecc3a40ed/image.png?expires=1757068200&#x26;signature=2054cdb02a992444fce78ffff82b1cb6c56879c0a1da73f14b4f6bad0a10a5a6&#x26;req=dSQnH8x3lIlZWPMW1HO4zZfprQBPOv04%2BP48q%2BHDcTYzjwf7EwZgP%2FiquH8e%0AjzUxv4Su9SsTb9fsMpc%3D%0A" alt=""><figcaption><p>Default view of Frends Portal after logging in.</p></figcaption></figure>

Find the Tenant you want to invite a user to, and click on the settings button ![](https://downloads.intercomcdn.com/i/o/cbxrrbbm/1409601558/4dc6d9c49d821d75bf8a7ec88eb3/image.png?expires=1757068200\&signature=db053f7bd3a0937bf39bbb763471325f45c0d6af383ac8e9baea6c5885687106\&req=dSQnH89%2BnIRaUfMW1HO4zbxlhy6Lv%2FRSBE81wac4CYQ%2FafUuRORQ2t4DSiM7%0AEQVR%0A) to access the Tenant's settings. Navigate to Users section and click on **Invite new users**. You only need to enter the new users' email addresses and press Send invite.

<figure><img src="https://downloads.intercomcdn.com/i/o/cbxrrbbm/1409604607/71a1ca77473b5194a7f91967fb90/image.png?expires=1757068200&#x26;signature=104946bd18a6a4ef4ee347e8e7df5263eb1807bba57815a232e82700d82216c1&#x26;req=dSQnH89%2BmYdfXvMW1HO4zQgLgfGTSb9Sul1sdDMM%2F%2B%2B%2F3EE21TffzPK7dIPl%0AIjIB%0A" alt=""><figcaption><p>Existing users in the selected Frends Tenant.</p></figcaption></figure>

This will invite the new user to you tenant and send the invitation link for them. On their first log in, the user will be asked to create a new password.&#x20;

The user will also the default role (Editor) when they log in the first time. Continue reading to learn how to manage the users in Frends Control Panel.

## Managing existing users

For managing existing users, return to the User Management section at any time. You can search for users by username and role. Selecting a user profile from the list enables you to view their details and make any necessary updates to their roles. Always confirm changes by clicking 'Save' to ensure updates are properly applied within the system.

When it becomes necessary to remove a user from Frends, perhaps due to departure from the organization or a role change that no longer requires system access, this can also be done from the same section. Select the user account you wish to delete, then click the trashcan icon on the top right corner.&#x20;

<figure><img src="broken-reference" alt=""><figcaption><p>Deleting an user is done with the trashcan button on top right of the user's profile.</p></figcaption></figure>

## Role-based Access Control

User roles in Frends are crucial for maintaining a structured and secure access environment, as they help define specific access levels for different users based on their responsibilities.&#x20;

To create a new user role, navigate to the User Management interface in your Frends Tenant and select the **Roles** tab. From there, you can click the **New Role** button and enter a descriptive name for the new role.&#x20;

<figure><img src="broken-reference" alt="Picture shows the settings for Editor role."><figcaption><p>Default values for the Editor role allow creating and editing integrations.</p></figcaption></figure>

Deciding on the permissions for this role involves selecting relevant options, such as access to specific views or functions. You can also allow or limit access according to tags and Environments, in order to limit the role to only view and edit Processes with the specified tags, or disallow access to production environments.

<figure><img src="broken-reference" alt="Picture showing possible rule types for roles."><figcaption><p>Rules are defined using views, actions, tags and environments.</p></figcaption></figure>

If modifications to existing roles are necessary, start by selecting the role to be updated from the list in the Roles tab. Adjust permissions or environment access as needed, then click Save to keep the changes you made.

<figure><img src="broken-reference" alt="Picture shows auto-complete assisting the user to create a new rule for a role."><figcaption><p>Auto-complete will aid you in specifying the views and actions for the role rules.</p></figcaption></figure>

While it's possible, it's recommended to not edit the default roles provided in Frends Tenant. Instead, if customized access is required for some users, create a new role based on the predefined roles, and limit them further.&#x20;

Finally, after having a role created or modified, you can also assign users to that role directly from the role view.

</details>

With these guides and their tutorial and demo counterparts, you are well on your way to becoming the best integration operator with Frends. While this covered only the very basics of Frends Platform, continuing from here should prove to be no issue. Try, test and learn from doing is the perfect way of getting better in operating Frends.

To help you on your way, we have some more guides and tutorials to assist you in getting to know Frends better.&#x20;

## What's next?

Already got yourself familiarized with Frends basics? Check out these categories to learn more about Frends.

<table data-view="cards"><thead><tr><th data-type="content-ref"></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><a href="https://app.gitbook.com/s/1H5SQ92uIfBOYNIeoUAc/">Reference</a></td><td>Learn more about Frends Processes' technical details.</td><td><a href="https://app.gitbook.com/s/1H5SQ92uIfBOYNIeoUAc/">Reference</a></td></tr><tr><td><a href="https://app.gitbook.com/s/0p415NUmUmiF4ayjI81L/guides">Guides</a></td><td>More guides to learn about common use cases and scenarios.</td><td><a href="https://app.gitbook.com/s/0p415NUmUmiF4ayjI81L/guides">Guides</a></td></tr><tr><td><a href="../../frends-development">frends-development</a></td><td>Learn more about the development features in Frends.</td><td><a href="../../frends-development">frends-development</a></td></tr><tr><td><a href="../../management-and-operations">management-and-operations</a></td><td>Interested in managing and supporting Frends &#x26; integrations? Check here.</td><td><a href="../../management-and-operations">management-and-operations</a></td></tr><tr><td><a href="../../hybrid-integration-architecture">hybrid-integration-architecture</a></td><td>This is how Frends works in the background.</td><td><a href="../../hybrid-integration-architecture">hybrid-integration-architecture</a></td></tr></tbody></table>

## Certification

If you're ready to take your understanding of Frends to the next level, consider following [our certification learning paths available in the Guides section](https://app.gitbook.com/s/0p415NUmUmiF4ayjI81L/learning-paths). These paths are designed to help you deepen your knowledge of the platform, focusing on advanced topics and practical applications.

#### Why Pursue Certification?

* **Enhance Your Skills:** Gain comprehensive insights into complex integration scenarios and platform capabilities.
* **Boost Your Career:** Certification can demonstrate your expertise to employers and clients, potentially opening new professional opportunities.
* **Stay Updated:** Engage with the latest features and techniques as you prepare for the exam.

[Visit the Learning Paths section in Guides](https://app.gitbook.com/s/0p415NUmUmiF4ayjI81L/learning-paths) and you'll be well on your way to mastering Frends and achieving certification. Good luck on your learning journey!


# Frends Glossary

All the terms Frends uses, and what they mean.

In this glossary we gather the specialized terms and concepts that reflect the technologies and methodologies we employ. Our vocabulary is designed to align with our innovations, enhancing clarity and collaboration within our platform, while keeping things simple and friendly.

## Integration terms

Here's a list of key terms used during integration development in Frends, and whenever discussing about details of an integration flow.

#### Process

A sequence of Tasks executed in a defined order to achieve a specific integration goal. Otherwise called integration flow, logic or sequence. Execution can be started with various different Triggers, or starting conditions.

#### Subprocess

Reusable sequence of Tasks, created in the same way as Processes. Subprocesses can be inserted into Processes as Task-like shapes, and reused in multiple Processes. Subprocesses can only be executed by using them through Processes or other Subprocesses.

#### Long-running Process

Long-running Processes are sometimes called orchestrations or stateful workflows, where the execution might stop temporarily to wait for external processing. Unlike separate Processes, the Long-running Process remembers the state it was in and the data processed, so it can seamlessly continue from where it left.

#### Shape

Any element in a Process is called shape. As the Processes are created using BPMN notation, the elements added to the Process are shapes.

#### Sequence Flow

Arrow connecting different Tasks together in a Frends Process, to form the integration flow. Not to be mixed up with connectors from other integration platforms, which are Tasks in Frends.

#### Task

A single operation or action within a Process or Subprocess. Comparable to a connector in other integration platforms. Can be pre-defined action as Task or more custom when using Code Task. Custom Tasks can be written using C# and then by compiling and importing them to Frends.

#### Custom Task

A Task that is created by the users of Frends, using C# programming, compiled, and imported into Frends. These can include 3rd party libraries that are otherwise not available in Frends. Custom Tasks are used alongside official Tasks in Frends Processes and Subprocesses.

#### Trigger

A mechanism that executes a Process based on specific events or conditions, like schedule or an incoming message. Processes can have any number of same or different Triggers in them. Subprocesses can only use Manual Trigger and be triggered through calling them from Processes.

#### Parameter

Input values that modify and control the execution of Tasks and Processes.

#### Code Task

Shape in Process that contains a multiline C# code statement. Can be used to create custom functionality within Process, that is not otherwise possible to perform using the provided Tasks or other logic. Commonly called Code Block or Code shape.&#x20;

Not to be confused with Custom Task, which is also written in C#, but is created and compiled outside Frends and imported to be used as a Task. Code Tasks are created within Frends, using the available C# libraries in Frends.

#### Assign Variable

Shape in Process that contains a single expression of C# code. Can be used to assign variable a value using C# code or text, or modify existing variable's value. Also called Expression shape.

#### Handlebars

Frends allows inserting C# code expression's result into any text content using Handlebar ( {{ }} ) notation. Code inside Handlebars is compiled during Process save, but the value itself is evaluated at runtime.

#### Scope

Shape in Process that can contain other shapes. Can be used to arrange Process flow into logical sections as well as implement error handling for the contained logic. Different Scope shapes, Foreach and While, can be used to perform iteration within Process.

#### Process Instance

Single execution of a Process.

#### Reference Values & Variables

Variables and values that are accessible in expressions through hashtag (#) references, such as **#var**, **#env**, **#result**, **#trigger** and **#process**.&#x20;

#### Variable

Variables that are defined in the Process during execution. Accessible in expressions under **#var** reference.

#### Process Variable

Process-specific variables that are defined for a Process to have value right at the beginning. Accessible in expressions under **#var** reference. Can be changed during Process execution.

#### Environment Variable

Centrally managed, globally available variable, that has different values for each environment. Accessible in expressions under **#env** reference.

#### Trigger Variable

Values that are provided in variable-like style from the starting Trigger shape. Accessible in expressions through **#trigger** reference.

#### Process Instance Variable

Process Instance variables contain instance-specific data, such as execution id. Accessible in expressions through **#process** reference.

#### Promoted Value, Promoted Variable

Value or variable specified within Process, that will be shown in the Process Instance list and logging. Monitoring Rules can be set to target and monitor these values as well.

## Execution environment terms

Instead of runtimes, nodes and servers, Frends uses the terms below to mean the parts of an execution environment.

#### Environment

A distinct set of values and configuration that form environments such as Development, Test or Production. Environments contain one or more Agent Groups and provide them a common set of values as Environment Variables.

#### Agent Group

A set of Agents running the same Processes using the same settings. Agent Group can have one or more Agents in them.

#### Agent

A runtime environment where processes are executed. Analogous to a server, node or runtime in distributed systems. A single server is allowed to host multiple Agents.

#### High Availability, HA

Or High Availability confirguration, HA configuration. Specific setup using multiple Agents in one Agent Group, executing the same Processes with same settings and data. Allows Process executions to continue even if one or more Agents are not available or busy, and ensures there's enough resources to handle all processing.

#### Gateway Agent

Agent acting as an API gateway, publishing the API endpoint in a load balancing manner. Does not directly run Processes, instead forwards the API requests to other Agents for execution.

#### Tenant

Your very own execution and management environment to Frends. Includes the Agents, Environments and Control Panel with all of its tools. Your Frends Tenant is identified by its url, at yourtenant.frendsapp.com.

#### Frends AI

AI service hosted on Azure, provided to you by Frends. This is the default and easiest to use AI service available in Frends, and is used for the augmented AI features available in Frends. Can also be used with the AI Connector.

#### Frends Credit

Frends Credit is a usage metric for AI-powered features within the Frends platform. The amount of credits consumed corresponds to an equivalent amount, and the consumption of credits aligns with actual AI tokens used to provide the utilized functionality.

## Frends UI

#### Frends Portal

Your portal to accessing all the Frends Tenants you have access to, as well as for managing your Frends plan.

#### Frends Control Panel

The main user interface for your Frends Tenant. In here you can manage your APIs, Processes and Agents.

#### Home view

Page you arrive on when accessing your Frends Control Panel, containing the global search, onboarding materials and documentation.

#### Dashboard

View with collection of widgets that you can set up to monitor your Frends Tenant and its Processes.

#### Process List

List of Processes deployed to the chosen Agent Group. From the list, you can execute, edit, manage and view logs for the Processes.

#### Subprocess List

Same as Process list, but for Subprocesses.

#### Process Editor

Integration flow editor, built in to your Frends Control Panel.

#### Process Canvas

The part of the Process Editor where you can drag and add visual shapes to in order to create your Process flow. It is the background of the Process Editor.

#### Process Toolbar

Or just toolbar, is the floating menu on the left in Process Editor, where you can access and add different shapes for your Process.

#### Parameter Editor

The part of the Process Editor where you can edit each shapes' and the Process's parameters, visualized as a side view on the right side in the Process Editor.

#### Quick Actions Toolbar

Or Context Pad, is the additional toolbar appearing for you when any shape on the Process Canvas is selected. It allows you to quickly add and connect shapes to your Process after the selected shape.&#x20;

#### Process Instance List

Lists the executions for the chosen Process during the specified time span.

#### Process Instance View

Shows the details of a single execution of a Process in visual format.

#### Monitoring Rules

Feature in Frends that allows creating rules for monitoring Process Instances. Can be used for example to monitor that there are enough Process executions for a given time period, and notify interested parties if not.

## Frends API terms

API management is built in feature of Frends.

#### API Management

Feature in Frends which allows you to create REST APIs from OpenAPI specifications, and then connect endpoints of those APIs to Processes for performing the actual logic behind those endpoints.

#### Passthrough API

API endpoint specified to Frends, but instead of containing Processes for logic, the requests are forwarded to another system for handling. Could also be thought of as API proxies.

#### API Policy

Set of rules and specifications that are connected to the APIs in Frends. They can be used to set up authentication as well as logging rules for the incoming connections to your Frends Tenant.

## Frends Add-On Products

In addition to Frends iPaaS product, Frends offers add-on products that can be used to enhance the Frends experience.

#### Business Automation Portal

Simplified, no-code interface aimed at business users to run and manage integrations. ISVs and SaaS partners can use it to provide embedded iPaaS and IaaS solutions to customers with white-labeling options.

#### API Portal

Allows you to create API products using Frends API Management features that can be published in the API Portal for an API developer self-service experience.&#x20;


# Frends Highlights

Get familiar with the most popular Frends features.

Frends covers a lot of functionality and capabilities in it, with the praised low-code Process Editor at its core. Flexibility of Frends allows it to be used for almost anything you can come up with, but here are some of the most asked capabilities of Frends presented.

## Data & Application Integration

Frends helps connect data from different applications and systems, making it easy to work together. It ensures data is synchronized in real-time, turning scattered data into useful information for making smart decisions. The platform supports various integration types like cloud-to-cloud, cloud-to-on-premises, and on-premises-to-on-premises, giving flexibility across different IT setups.

You can learn more about the integration possibilities of Frends by checking out [integrations](https://docs.frends.com/docs/frends-development/integrations "mention"), and to have a look at different deployment options, you can see them at [hybrid-integration-architecture](https://docs.frends.com/docs/hybrid-integration-architecture "mention").

## API Management

API Management in Frends provides comprehensive tools for creating, deploying, managing, and monitoring APIs with ease and security. The platform empowers organizations to expose and consume APIs efficiently, facilitating integration and interaction between services. It includes features for policy enforcement, access control, and analytics, ensuring that APIs remain secure, performant, and reliable. Frends enhances integration capabilities by providing a scalable platform for managing the entire lifecycle of APIs from design to retirement.

[Check here](https://docs.frends.com/docs/frends-development/api-management) for more about Frends API Management capabilities.

## Workflow Automation

Frends offers intuitive tools for automating complex workflows, thereby reducing manual intervention and enhancing operational efficiency. Users can design and implement workflows that connect applications, data, and services seamlessly. By orchestrating these workflows, Frends helps organizations to streamline operations, reduce process bottlenecks, and accelerate the completion of business tasks, leading to increased productivity and cost savings.

To learn more about the automation capabilities, read our article about [low-code-development](https://docs.frends.com/docs/frends-development/integrations/low-code-development "mention").

## Business Automation Portal

The Business Automation Portal in Frends serves as a centralized hub for managing, monitoring, and optimizing business processes. This portal provides stakeholders with an intuitive interface for overseeing automated workflows, accessing detailed analytics, and gaining insights into business performance. Users can easily track the progress of ongoing processes, receive alerts for exceptions, and make data-driven decisions to optimize operations continually.

You can find the documentation for Frends Business Automation Portal [here](https://app.gitbook.com/s/Y6GDpBcNZ0ne5Crknhg1/).

## B2B/EDI Integration

Frends supports efficient B2B and EDI integration, facilitating seamless data exchange and communication between business partners and external systems. The platform ensures compliance with industry standards like X12, EDIFACT, and others, enabling companies to streamline operations, reduce costs, and improve collaboration. Frends simplifies the complexity of B2B integrations by providing robust tools for supporting various message formats and protocols, allowing companies to focus on strategic initiatives rather than technical intricacies.

You can learn more about the integration possibilities of Frends by checking out [integrations](https://docs.frends.com/docs/frends-development/integrations "mention").

## Integration Templates

Frends offers a rich library of pre-built integration templates designed to expedite deployment processes and minimize development efforts. These templates are engineered to handle common integration challenges across industries and can be easily customized to suit specific business requirements. By leveraging these templates, organizations can accelerate time-to-market for integration projects and reduce potential errors associated with custom development.

Read more about the template options in our [templates](https://docs.frends.com/docs/frends-development/integrations/templates "mention") article. For a full list of readily available templates, visit [https://templates.frends.com](https://templates.frends.com/).

## Tasks & Connectors

Frends provides an extensive suite of connectors, called Tasks in Frends ecosystem, that enable seamless integration with a variety of systems and applications. These components allow organizations to quickly connect to different data sources, applications, and services without extensive custom coding. The reusable nature of Tasks ensures that integration solutions are both flexible and scalable, adapting to the changing needs of the business as it grows and evolves.

Check out more at [connectors](https://docs.frends.com/docs/frends-development/integrations/connectors "mention") page in our documentation. You can also find the full list of available Tasks and supported target platforms at [https://tasks.frends.com](https://tasks.frends.com/).

## AI Integrations

Frends leverages AI to perform seamless integration tasks, automating complex workflows and optimizing processes with minimal human intervention. AI-assisted development within Frends allows for the creation of smarter, more efficient solutions by providing intelligent code and Task suggestions, thereby accelerating the development lifecycle and enhancing overall productivity.

Find more about Frends AI capabilities from [ai-features](https://docs.frends.com/docs/frends-development/ai-features "mention") section.


# Help Resources

Need help with Frends? We're here to assist!

There are multiple channels where you can receive help in using and configuring Frends.&#x20;

## Contact us via Chat

You can contact us and our support team through the Help button in your Frends environment. You can ask the AI assistant to help you for known issues and common questions, and if your need is more specific, the support team is available to help you as well.

## Documentation

You have also already found a very good support channel, our documentation. Here you can find answers and guides to most details and features in Frends, and the search also features an AI assistant, that can help collect and condense the docs into an answer to your specific problem.

## Official support

If your purchased package contains product support, you can always contact us for help. Please reach out to your named Account manager, customer success manager or directly to your dedicated support email address to find a solution.&#x20;

In case you don't have product support or service management included yet in your Frends service, please contact your favourite sales person and let's see what we can arrange. We want nothing more than resolving any adversities you might encounter.

## Bug reports & feedback

Bug reports and help requests are also an important way for us improve our product and we want to make it as easy as possible.&#x20;

In order to report an issue you're facing, you can find the **Bug report** button from the homepage. Requesting a feature you would like to have is also done here.

If you just want to leave us some feedback, good, bad or neutral, you can do so from the menu under your username at top right corner. We'd love to hear back from you on how you like Frends!


# Centralized Portal

From featured content on the Start page, to Process Editor and managing your Agents, Frends Control Panel has it all.

Your Frends Tenant is operated with Frends Control Panel, which is accessible from your Frends Portal at [https://portal.frends.com](https://portal.frends.com/). You can also access the Control Panel directly through yoursubdomain.frendsapp.com.&#x20;

From the Control Panel, you can create, deploy and manage your integrations, as well as create APIs and manage the Agents and Environments.

## Frends Portal

Frends Portal acts as the gateway to effectively manage your Frends Tenants and subscription plans. While it serves primarily as an entry point to various management tools, it provides access to essential resources and information about your account. Users can inspect or adjust subscription details, monitor resource usage, and review billing information, ensuring that your subscription aligns with business requirements.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FyFFJTCI0yrXxAb6UZC6Y%2Fimage.png?alt=media&#x26;token=c74e44d3-b0fa-451b-a65a-6c5d6f48c4da" alt="Picture showing Frends Portal landing page."><figcaption><p>Frends Portal provides a simple and intuitive user interface for managing your Tenants.</p></figcaption></figure>

Read more about Frends Portal [here](https://docs.frends.com/docs/frends-development/centralized-portal/frends-portal).

## Control Panel

Control Panel is the page where you can create and manage your integrations, APIs and execution environments centrally. It includes all the tools you need to create, test and monitor your integrations, as well as perform user administration tasks within your Tenant.

Control Panel is often identified by its URL, which makes it completely separate from other Tenants. Direct URL such as **yourtenant.frendsapp.com** can be used to access your Frends Control Panel directly.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FEJk1b4JEs6k6pqYXaXu0%2Fscreenshot-rocks%20(68).png?alt=media&#x26;token=1d8650f7-7c82-4efd-a4e3-9f6d18bfdbf7" alt="Arriving to your Frends tenant, you are greeted with the help resources available to you."><figcaption><p>Arriving to your Frends Control Panel, you are greeted with the Home view providing helpful resources to get started.</p></figcaption></figure>

Check out the details about Control Panel [here](https://docs.frends.com/docs/frends-development/centralized-portal/control-panel).


# Frends Portal

Management for your Frends Tenants.

Frends Portal acts as the gateway to effectively manage your Frends Tenants and subscription plans. While it serves primarily as an entry point to various management tools, it provides access to essential resources and information about your account. Users can inspect or adjust subscription details, monitor resource usage, and review billing information, ensuring that your subscription aligns with business requirements.

## Dashboard

Dashboard in Frends Portal provides quick access to your Frends Tenants and their management views, as well as links to our documentation as well as the latest notifications and news related to Frends.&#x20;

The interface is kept simple and easy to use, providing quick access to all you need with Frends. At the center, list of your Frends Tenants are shown, giving easy access to the Tenants' Control Panels for integration management and creation.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FyFFJTCI0yrXxAb6UZC6Y%2Fimage.png?alt=media&#x26;token=c74e44d3-b0fa-451b-a65a-6c5d6f48c4da" alt="Picture showing Frends Portal landing page."><figcaption><p>Frends Portal provides a simple and intuitive user interface for managing your Tenants.</p></figcaption></figure>

## Tenant Details

Furthermore, the Frends Portal offers access to support options and a variety of resources meant to enhance your overall experience. As an example, the Tenant Details view provides an allround view of statistics related to your Tenant, including Process execution counts, user counts and AI usage statistics.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2Fr4CQSz2GtUfhJJs1Df5j%2Fimage.png?alt=media&#x26;token=69df2598-39c3-4249-8835-8ac951ffcbdf" alt="Picture shows some usage statistics about the chosen Frends Tenant."><figcaption><p>Comprehensive details and statistics about your Tenant are provided here as well.</p></figcaption></figure>

## Free Trial

If you don't yet have a Tenant of your own, you can always request a 30-day free trial from the Portal.

Creation of the Tenant is automated, you simply need to provide a few details about you and your use case, wait a moment and you're presented with a new Tenant with all the features included. No credit card needed.


# Control Panel

All the integration magic happens within Frends Control Panel.

Control Panel is the page where you can create and manage your integrations, APIs and execution environments centrally. It includes all the tools you need to create, test and monitor your integrations, as well as perform user administration tasks within your Tenant.

Control Panel is often identified by its URL, which makes it completely separate from other Tenants. Direct URL such as **yourtenant.frendsapp.com** can be used to access your Frends Control Panel directly.

## Home view

You can find most of the help and resources available to get going with your Frends tenant from the Home view. It is the first page you arrive to in your Frends Tenant, and you can also access it through the Frends logo in your Frends Control Panel.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FEJk1b4JEs6k6pqYXaXu0%2Fscreenshot-rocks%20(68).png?alt=media&#x26;token=1d8650f7-7c82-4efd-a4e3-9f6d18bfdbf7" alt="Arriving to your Frends tenant, you are greeted with the help resources available to you."><figcaption><p>Arriving to your Frends tenant, you are greeted with the help resources available to you.</p></figcaption></figure>

#### Search

Home view contains a powerful global search tool, able to search for everything in your Frends environment, as well as from the documentation. It also includes integration to an AI assistant, able to give you more specific answers from our docs to your queries.&#x20;

#### Onboarding

Our onboarding section includes interactive walkthroughs to your Frends Tenant, giving you hands-on experience in getting familiar with Frends. We highly recommend checking them out if you're new to Frends or coming from older versions, as some things have changed and there's a lot of new features to get excited about.&#x20;

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FI5tmJDAmUtObsrVPgb76%2Fimage.png?alt=media&#x26;token=7ab2de1e-cdc7-47f1-95c3-7c971b1c6e9a" alt="Image showing the available tutorials in Frends."><figcaption><p>Onboarding page in your Frends Control Panel will take you through the basics.</p></figcaption></figure>

The onboarding tours start from general overview of the Control Panel and where to find everything you might need and go all the way to guiding you to creating whole integrations for common use cases as well as managing your environment, so they cater to many different roles and different situations you might encounter with Frends.

#### Documentation & more

As you're already reading this, you have either already found this from the Home view, or stumbled across our docs site otherwise. The documentation category pulls its contents from here and gives you easy and quick access to whatever you might need, be it reference documentation about a shape or instructions on how to deploy a new Agent.&#x20;

From here you can also find your way to our recorded and upcoming webinars as well as to our Academy courses, to learn more about Frends and even become a Certified Frend™ if you take on the certification exams.&#x20;

Finally, at the very bottom, you can find out about our upcoming features, suggest new features and most importantly, if you ever encounter any issues when using Frends, please let us know about it. We are doing our best to provide you the best experience possible and these are some of the channels you can use to help us help you.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FBwikeD7FSakmHAP74ZOW%2Fscreenshot-rocks%20(20).png?alt=media&#x26;token=daf92432-2dc5-40c4-936d-e889a017b1f3" alt="Feedback section of the home page."><figcaption><p>Feedback section of the home page.</p></figcaption></figure>

## Main navigation

At the very top of the page, you can find the main navigation bar, visible on all pages.

#### Navigation items

[Dashboard](https://docs.frends.com/docs/management-and-operations/dashboard-and-monitoring/dashboard) is a comprehensive tool within the Frends Control Panel designed to provide users with a clear and concise overview of their system activities. It includes key metrics such as performance statistics and integration execution logs, presented using customizable widgets.

**APIs** contain the pages for [API Management](https://docs.frends.com/docs/frends-development/api-management). In here, you can create and manage your APIs and endpoints, monitor the APIs as well as set up API Policies for access control and authentication.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FCiZbPYIycAL4SLn90DDi%2Fscreenshot-rocks%20(69).png?alt=media&#x26;token=1b9399df-3141-4db0-9082-eb7a530445ea" alt=""><figcaption><p>API menu contents.</p></figcaption></figure>

**Processes** is the bread and butter page of Frends, giving you access to Process list and all Processes related topics. Majority of integration development is done through this page.

Along with Processes, **Subprocesses** contain the Subprocess list. These are used as reusable parts in Processes and other Subprocesses, and are developed in the same way as Processes are.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FIceqf8pC2iCyz88vz3Ig%2Fimage.png?alt=media&#x26;token=b2f4c0a2-b1ab-47c0-8307-acc868704af5" alt="Picture shows a list of Processes in Frends."><figcaption><p>Process list view in Frends Control Panel.</p></figcaption></figure>

**Templates** give you access to importing Templates and making them into Processes and Subprocesses. Templates are created to cover many different use cases, from having a starting point for your own Processes and speeding up development for known cases, to allowing running Processes from Business Automation Portal by business personnel, without requiring extensive knowledge to develop and manage integrations otherwise.

**Environment Variables** are variables used in Processes, that have varying content depending on the Environment the Process is deployed to. These allow for example to configure different credentials and API endpoints for test and production environments, making for easy deployment and version control. It's also the centralized location to save credentials and other more sensitive data as well as global constants used in Processes.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2Fp8XMoufcFCLFFHd0LdnJ%2Fimage.png?alt=media&#x26;token=f91f1abd-494b-41f5-af3e-608e7020eb6f" alt="Picture showing an example of Environment Variables in Frends."><figcaption><p>Environment Variables can be used as global values for each Environment.</p></figcaption></figure>

As last item of the navigation, there is the **Administration** menu. Here you can find the global settings and Environment details for your tenant, such as user, Agent and Task management and connected authentication providers.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2Ff9VrgqmQsyDpJ5M64gG4%2Fscreenshot-rocks%20(70).png?alt=media&#x26;token=546c29ca-920e-41fe-b8b4-a94626066671" alt=""><figcaption><p>Administration menu contents.</p></figcaption></figure>

#### Profile, notifications & help

From the right hand side of the navigation bar, you can find the **Notifications** bell icon, showing you all important or new information about your Tenant.&#x20;

**Help** button will open a chat window for you, where you can ask AI for answers and also contact the support team for help. It's also a quick way to access the documentation.

Under your username, you can enable or disable **Dark mode** if you prefer. The menu also provides access to the onboarding page, and if you want to **give feedback**, you can do it from here as well. Please note that any feature requests or bugs should be reported using the specific tools on homepage instead.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2F1qBUz8FXcVEhaCAp6fLz%2Fscreenshot-rocks%20(71).png?alt=media&#x26;token=cbd18801-b4a6-4f32-bbab-0001df9bf1f9" alt=""><figcaption><p>Profile menu contents.</p></figcaption></figure>


# Integrations

Frends is an integration platform, after all.

Processes, Frends term for integrations, offer a straightforward way to connect your various systems and applications, ensuring everything works together seamlessly. By automating tasks and orchestrating workflows, Processes help streamline operations, reduce manual workload, and minimize the chance of errors—boosting the productivity of your team.

The Frends platform provides an intuitive setup, making it accessible even if you're not a coding pro. Its flexible framework supports a wide range of integration needs, whether you're dealing with on-premises systems, cloud-based applications, or a combination of both in a hybrid deployment. With Frends, adapting to changes and staying responsive to business demands is much more manageable, keeping you well-prepared for future challenges.

## Low-code Development

Frends uses BPMN 2.0 notation to define APIs, integrate systems, and automate processes. Frends provides enhancements to the notation with Handlebars-enabled C# programming, making it possible to create most anything that is visually pleasing, easy for non-programmers to read and understand, and requiring only minimal programming by the developer.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FYTedIKKpygO1ylm81Rh5%2Fscreenshot-rocks%20(13).png?alt=media&#x26;token=d5a96e16-f5a5-4eac-a0e3-384f918fb654" alt="Picture shows a view of Frends process editor, with code block shape being displayed."><figcaption><p>Process Editor uses BPMN 2.0 and C# to create integration flows.</p></figcaption></figure>

Learn more about how Frends works for low-code development [here](https://docs.frends.com/docs/frends-development/integrations/low-code-development).

## Connectors

In Frends, we have Tasks instead of what is more commonly known as connectors, that perform actions towards other systems. Each Process also requires a starting condition or event listener to start, which is done using Triggers in Frends.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FO6UwsOd4LKia0diB8In7%2Fscreenshot-rocks%20(15).png?alt=media&#x26;token=2ec47cd0-a5c7-43a0-9e69-b21004ec1fc6" alt="HTTP Request task can be used to make HTTP requests to APIs."><figcaption><p>HTTP Task is used to make HTTP requests to APIs to send or query data.</p></figcaption></figure>

Learn more about Frends Tasks and Triggers [here](https://docs.frends.com/docs/frends-development/integrations/connectors).

## Shared State Storage

Shared State Storage provides a temporary caching mechanism for data that needs to persist across Process executions or be shared between different Processes. Instead of setting up a dedicated database or external storage, you can use Shared State to maintain information like authentication tokens, counters, or temporary configuration data.

Shared State works as a key-value store where each entry lives for a specific duration before being automatically cleaned up. You define how long data should remain available by setting a Time To Live (TTL) ranging from one minute to 30 days. Once the TTL expires, the system removes the data automatically.

The data itself is stored in the Agent Group's database as JSON-serializable values. This means you can store simple strings and numbers, but also complex objects and arrays, as long as they can be represented in JSON format.

[Read more about Share State Storage in Frends](https://docs.frends.com/docs/frends-development/integrations/shared-state-storage).

## Long Running Processes

If you need the same Process to continue with some user interaction or long wait times between steps, it makes sense to have the Process wait for continuation instead of splitting it into separate Processes that have no common data shared between them. Long-running Processes are there for that purpose specifically.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2Fu7Vw5xFGyxOw3OQSvDPE%2Fscreenshot-rocks%20-%202025-10-20T110912.348.png?alt=media&#x26;token=bb6b92ff-40fd-4ab8-a222-9491fa0f6153" alt=""><figcaption><p>Long Running Process can present a whole business process at once.</p></figcaption></figure>

Head on over to [long-running-processes](https://docs.frends.com/docs/frends-development/integrations/long-running-processes "mention") page to learn more.

## Reusable Content

In order to keep up with DRY principle (Don't Repeat Yourself), Frends includes Subprocesses and Environment Variables to allow defining functionality and values once and reusing them in your Processes.

Check out the [reusable-content](https://docs.frends.com/docs/frends-development/integrations/reusable-content "mention") page for more information.

## Templates

Frends Templates are pre-built structures designed to expedite workflow creation and integration processes. They serve as a blueprint that aids in maintaining consistency and minimizing potential errors. By utilizing these Templates, users can save significant time in setting up new integrations, as they provide a reliable and tested starting point tailored for various common tasks.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FXnAJr0qpyEmLuICA7mCt%2Fscreenshot-rocks%20(28).png?alt=media&#x26;token=df92a950-eaaf-4df1-82cd-bb8ba2be26d1" alt=""><figcaption><p>Templates give a starting point for development for the most common use cases.</p></figcaption></figure>

Head over to [templates](https://docs.frends.com/docs/frends-development/integrations/templates "mention") page to learn more.


# Low-code Development

We have visual process editor, enhanced with C# code.

Frends uses BPMN 2.0 notation to define APIs, integrate systems, and automate processes. Frends provides enhancements to the notation with Handlebars-enabled C# programming, making it possible to create most anything that is visually pleasing, easy for non-programmers to read and understand, and requiring only minimal programming by the developer.

## Process Editor

At the core of Frends is our prized Process Editor, which utilises BPMN 2.0 notation to create the integration flows or Processes. With the drag and drop editor, it is easy to both visualize what is happening and in what order, as well as create the logic to do exactly what you want and need to do. No coding expertise required to understand the Processes.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FP5PGljFggo6NZMThsOBg%2Fimage.png?alt=media&#x26;token=f8473d39-de7b-4296-9e17-0c72a71fcca7" alt="View of Frends process editor with an example process shown on it."><figcaption><p>Process Editor is built in to the Frends Control Panel. </p></figcaption></figure>

## Coding features

While most of the logic can be done with only the graphical elements, including the powerful Tasks to perform pre-defined actions, Frends is specifically a low-code platform for integrations. Thus, if you need and want to, you can include C# code in the Processes to fine tune more complex logic.&#x20;

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FYTedIKKpygO1ylm81Rh5%2Fscreenshot-rocks%20(13).png?alt=media&#x26;token=d5a96e16-f5a5-4eac-a0e3-384f918fb654" alt="Picture shows a view of Frends process editor, with code block shape being displayed."><figcaption><p>Code Task can be used to execute C# code.</p></figcaption></figure>

Code can be included as separate shapes to perform actions in task-like manner, or you can include short pieces of code into any text input field using Handlebars-like syntax. Most parameter fields can also be changed to take in C# code instead of text, in case the value is coming from variables instead of predefined text.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FXChH5TKoHeCyT7NDvoLr%2Fimage.png?alt=media&#x26;token=c6f8019a-2bae-47c6-8fab-53f5db727d2d" alt="Feature image showing how handlebar syntax can be used in Frends."><figcaption><p>Handlebar syntax can be used to add variable input from C# code into text.</p></figcaption></figure>

And finally, when handling data from the Process flow in other parts of the Process, you can use References such as **#trigger**, **#var** and **#env** to access values from the start condition that triggered the Process, variables defined in the Process, as well as Environment Variables that are centrally defined for each execution Environment, respectively. These work exactly like variables would in standard C# code and are accessible Process-wide after being initialized in the Process.

[You can learn more about using C# in Frends from here](https://app.gitbook.com/s/1H5SQ92uIfBOYNIeoUAc/process-development/c-in-frends).


# Connectors

Tasks and triggers are the key building blocks of integrations in Frends.

In Frends, we have Tasks instead of what is more commonly known as connectors, that perform actions towards other systems. Each Process also requires a starting condition or event listener to start, which is done using Triggers in Frends.

## Frends Tasks

Frends Tasks are the building blocks of integration processes, enabling seamless automation of workflows. Each Task is a specific operation, such as reading a file, making an API call, or manipulating data. Designed for flexibility, Tasks can be connected and configured to accomplish complex integration scenarios with minimal code.

Tasks in Frends are highly configurable and reusable, allowing for efficient orchestration and scalability of automation operations. Their modular nature ensures that Tasks can be tailored to fit specific business requirements, helping mitigate integration complexities.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FO6UwsOd4LKia0diB8In7%2Fscreenshot-rocks%20(15).png?alt=media&#x26;token=2ec47cd0-a5c7-43a0-9e69-b21004ec1fc6" alt="HTTP Request task can be used to make HTTP requests to APIs."><figcaption><p>HTTP Task is used to make HTTP requests to APIs to send or query data.</p></figcaption></figure>

Due to the platform's flexibility, in case there are no suitable Tasks already available to your specific use case or target system, the Tasks can easily be created and added to your Frends Tenant. From [https://tasks.frends.com](https://tasks.frends.com/) you can request for an Official Task to be made, and contacting your favourite sales person or account manager you can also request a Custom Task to be made just for you.&#x20;

Our Tasks are also open source, so anyone can pull the C# source code for a Task from GitHub and make it their own. Importing the Tasks is done using NuGet packages, and NuGet feeds can also be used to automate publication from your development pipeline.&#x20;

For example, Tasks exist for at least the following target systems and technologies to perform integrations with:

{% columns %}
{% column %}
**Protocols & Messaging**

* HTTP, FTP, SFTP, AMQP, GraphQL
* JSON, XML, EDIFACT, CSV, Fixed Width Flat Files

**Cloud Services**

* AWS
* Azure
* Google Cloud

**Data & Analytics**

* Databricks, Analytics Cloud, Celonis
* Excel, JSON, Avro

**Finance & Payments**

* BILL, Expensify, Chargify, FinancialForce

**AI & ML**

* Google Dialogflow, Google Speech-to-Text, Text-to-Speech, Vision
  {% endcolumn %}

{% column %}
**ERP & CRM**

* Salesforce, HubSpot, Capsule CRM, Insightly, Zoho, Anaplan

**File & Content Management**

* Dropbox, Box, Egnyte, Bynder, BrickFTP

**Project & Workflow Tools**

* JIRA, Asana, Basecamp, Hive, Trello

**Messaging & Communication**

* Gmail, Exchange, Intercom, Facebook Lead Ads, Instagram

**Utilities & DevOps**

* GitHub, Codeship, Confluence, BambooHR
  {% endcolumn %}
  {% endcolumns %}

You can learn more about Tasks [here](https://app.gitbook.com/s/1H5SQ92uIfBOYNIeoUAc/shapes/activity-shapes/task).

## Frends Triggers

Frends Triggers initiate action within the integration system, responding to external events or scheduling needs. They act as the "listener" components, waiting for specified conditions to occur—such as receiving a new message, elapsed time intervals, or API calls—before executing a set of Tasks.

The configurability of Triggers allows them to handle various input types and scenarios. This ensures that the right Tasks and Processes are executed precisely when needed, optimizing resource use and improving process efficiency.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FnglOEpJGd0LGpKavvFdb%2Fscreenshot-rocks%20(16).png?alt=media&#x26;token=70b4c772-65a8-487f-b4f9-64b25cf63ab9" alt="Schedule trigger is used to run process according to date and time."><figcaption><p>Schedule Trigger is used to run the Process according to date and time.</p></figcaption></figure>

Together, Tasks and Triggers form the backbone of the Frends platform, enabling adaptable and robust system integrations. This empowers businesses to automate and streamline operations, resulting in increased productivity and reduced operational costs.

You can learn more about Triggers [here](https://app.gitbook.com/s/1H5SQ92uIfBOYNIeoUAc/shapes/event-shapes/trigger).


# Shared State Storage

Simple cache to store Process data between executions.

Shared State Storage provides a temporary caching mechanism for data that needs to persist across Process executions or be shared between different Processes. Instead of setting up a dedicated database or external storage, you can use Shared State to maintain information like authentication tokens, counters, or temporary configuration data.

## Temporary Memory

Shared State works as a key-value store where each entry lives for a specific duration before being automatically cleaned up. You define how long data should remain available by setting a Time To Live (TTL) ranging from one minute to 30 days. Once the TTL expires, the system removes the data automatically.

The data itself is stored in the Agent Group's database as JSON-serializable values. This means you can store simple strings and numbers, but also complex objects and arrays, as long as they can be represented in JSON format.

Data visibility can be configured in two ways:

* **Process-specific:** The data is only accessible within the Process that created it.
* **Agent Group-wide:** The data is accessible by any Process running in the same Agent Group.

When using Agent Group-wide sharing, all Agents must have access to the same database. For single-Agent setups using SQLite, the storage remains local to that Agent. In High Availability environments with multiple Agents, a centralized database like SQL Server ensures consistent access across all Agents. SQLite is not recommended for HA setups due to potential concurrency issues.

## Token Caching

A common use case for Shared State is caching authentication tokens. When your Process needs to call an API that requires authentication, fetching a new token for every execution wastes time and resources. Instead, you can retrieve a token from Shared State, and only request a new one when the cached token is missing or has expired.

By setting the TTL slightly shorter than the actual token expiration, you ensure the cached token remains valid when retrieved. This approach works particularly well when multiple Processes need to access the same API, as they can all share the same cached token across the Agent Group.

## Process Coordination

Sometimes you need multiple Processes to coordinate their behavior or share information. Shared State provides a lightweight way to exchange data without building complex integrations. One Process can store configuration settings, status flags, or partial results that other Processes read to determine their next actions.

This works well for implementing patterns like rate limiting, where a Process stores a counter in Shared State before performing an operation. Subsequent executions check and update the counter, ensuring operations stay within defined thresholds. The automatic expiration of entries helps reset counters without manual intervention.

## Technical Reference

Read more about [how to implement Shared State Storage usage using Shared State Task from its reference page](https://app.gitbook.com/s/1H5SQ92uIfBOYNIeoUAc/shapes/activity-shapes/shared-state-task).


# Long Running Processes

Have your full business process in one place.

If you need the same Process to continue with some user interaction or long wait times between steps, it makes sense to have the Process wait for continuation instead of splitting it into separate Processes that have no common data shared between them. Long-running Processes are there for that purpose specifically.

## Hold, please

Long-running Processes are sometimes called orchestrations or stateful workflows, where the execution might stop temporarily to wait for external processing. Unlike separate Processes, the Long Running Process remembers the state it was in and the data it needs to continue processing, so it can seamlessly continue from where it left.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2Fu7Vw5xFGyxOw3OQSvDPE%2Fscreenshot-rocks%20-%202025-10-20T110912.348.png?alt=media&#x26;token=bb6b92ff-40fd-4ab8-a222-9491fa0f6153" alt=""><figcaption><p>Long Running Process can present a whole business process at once.</p></figcaption></figure>

In order to make this happen in Frends, Checkpoint shapes can be used to store the Process data and pause the Process execution to allow for waiting for a specified duration, or indefinitely, until the external processing is finished and response received. The feature will not store all of the data available in the Process - only the data it needs to continue later, meaning any data that is actually used in the Process in a later stage.

As can be deducted, Long Running Processes use minimal resources while they are in the paused state, only consuming what is required to store the data the Process needs to continue later, in to a database.&#x20;

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FGKFBw9o2qxHtxiloTVT5%2Fscreenshot-rocks%20-%202025-10-20T103419.505.png?alt=media&#x26;token=78738d37-7bdc-469e-8f6c-881cb6c94ea6" alt=""><figcaption><p>Scheduled Resume dehydrating the Process until specified date.</p></figcaption></figure>

Once the continuation event is received, the Agent loads the Process state from its storage and continues the Process execution from the Checkpoint. This resume event can be externally signaled from another Process by using a Signal Resume shape, or provided by a schedule timer within the same Process by using a Scheduled Resume shape. The scheduled resume event even allows iterative checking to see if conditions have been fulfilled by creating a shorter wait and checking in between if conditions match.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FJ54tLKSsvtcik3dN6jQX%2Fimage.png?alt=media&#x26;token=adada37b-a768-4370-899c-3c2d52697aa3" alt=""><figcaption><p>Using Scheduled Resume to poll condition and wait until condition is fulfilled.</p></figcaption></figure>

## Retry Later

Long Running Process shapes provides new possibilities for handling errors in your Processes as well. Checkpoint by default stores the state of the Process up to that point, and in case errors occur after it, the Process Instance is not lost, but stored in a paused state for resuming later.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FzrxGoaJZLMgvrSarzoWC%2Fimage.png?alt=media&#x26;token=4c10ab2b-33b2-4002-8a66-376e10b66f35" alt=""><figcaption><p>Checkpoint provides state storing capabilities for error handling and recovery.</p></figcaption></figure>

When resuming a paused Process manually, it's possible to view and adjust the content of the stored state, such as the data queried, in order to resolve the possible errors in handling said data. Without Long-Running Process capabilities, this would have resulted a support ticket, discussion with the data source's manager, fixing the data in the source system, and finally running the Process again. With LRP, the resolution can be achieved directly within Frends.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2F2xEERp33L9UqDthmxmjn%2Fimage.png?alt=media&#x26;token=8276b19e-e192-49e3-ad67-aaa1e6418203" alt=""><figcaption><p>Data stored for the paused Process can be edited when manually resuming.</p></figcaption></figure>

Even without requiring modification of data to solve errors in Processes, allowing the Process to resume later after some heavy and long processing being done but failing to a single error at the end will save countless hours as the whole Process will not need to be repeated again.

## Reference Documentation

In order to learn the specifics of how to use Long Running Process features, head over to our [reference documentation for Long Running Process shapes](https://app.gitbook.com/s/1H5SQ92uIfBOYNIeoUAc/shapes/long-running-process-shapes), which will give details on how to use each of the related shape.


# Reusable Content

Keeping yourself DRY makes things more simple.

In order to keep up with DRY principle (Don't Repeat Yourself), Frends includes Subprocesses and Environment Variables to allow defining functionality and values once and reusing them in your Processes.

## Subprocesses

Subprocesses in Frends are like building blocks that help simplify complex integrations. They're reusable bits of Tasks and logic that you can run across different Processes. By breaking things down, Subprocesses make everything easier to manage, share, and update, allowing team members to independently tackle different parts of a project.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FsrG1rdPDKHNLt0j7hj7R%2Fscreenshot-rocks%20(17).png?alt=media&#x26;token=3b76fa56-413b-4f28-be75-c61b70d4aa48" alt="Subprocess calls can be used similarly to tasks. They contain process logic similar to the main processes."><figcaption><p>Subprocess calls can be used similarly to Tasks. They contain Process logic similar to the main Processes.</p></figcaption></figure>

Basically the only differences between "Main Processes" and Subprocesses are that you can only define a single manual Trigger, which is used to provide parameters to the Subprocess to work on, and that Subprocesses can be called from Processes and other Subprocesses, while Processes cannot. Subprocesses can also be **called on unhandled errors** from Processes, making them the catch-block error handlers.&#x20;

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FXQLxaTbastGIVsZffhzW%2Fscreenshot-rocks%20(18).png?alt=media&#x26;token=cb2ddec5-bc01-4e14-824d-1e8a256a0484" alt="Error handler subprocess can be used to process errors, that were not handled during process execution."><figcaption><p>Error handler Subprocess can be used to process errors, that were not handled during Process execution.</p></figcaption></figure>

## Environment Variables

In case it is global values you need in multiple Processes, or values that are Environment specific, such as different credentials and connection points for testing and production, Environment Variables are there to take care of them.&#x20;

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FPOTDQTRq2WNoMjjyYawQ%2Fscreenshot-rocks%20(26).png?alt=media&#x26;token=4d76b72d-66bf-4bcf-9b61-7f970c82c218" alt="Environment variables are global values for each environment."><figcaption><p>Environment Variables are the global values for each Environment.</p></figcaption></figure>

Environment Variables are defined centrally in the Environment Variables section of Frends Control Panel, and can hold groups of values for different purposes. Values can be grouped together by their purpose, such as per target system or for specifically global error handling, and the values themselves can be textual, numerical, lists or secrets.&#x20;

As the key feature of Environment Variables, each Environment in your Frends Tenant can receive separate values for the same variable. This makes it easy to develop and test the integrations using test values and other test environments, and when the Process is ready, it can be deployed to production without any changes to the Process itself, because the Environment-specific values are defined separately and centrally in Environment Variables.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2F4c40jxry4htAO8BnrtXT%2Fscreenshot-rocks%20(27).png?alt=media&#x26;token=15bf2749-6aed-4783-a9e1-cd90948b565a" alt="Using environment variables is recommended for example for connection parameters."><figcaption><p>Using Environment Variables is recommended for example for connection parameters.</p></figcaption></figure>


# Templates

Starting point for your own customizations.

Frends Templates are pre-built structures designed to expedite workflow creation and integration processes. They serve as a blueprint that aids in maintaining consistency and minimizing potential errors. By utilizing these Templates, users can save significant time in setting up new integrations, as they provide a reliable and tested starting point tailored for various common tasks.

## Starting with Templates

To begin Process development in Frends using Templates, navigate to Templates section in your Frends Control Panel and explore the Template list. Once you have identified a suitable Template, you can select it to initiate the workflow creation.&#x20;

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FXnAJr0qpyEmLuICA7mCt%2Fscreenshot-rocks%20(28).png?alt=media&#x26;token=df92a950-eaaf-4df1-82cd-bb8ba2be26d1" alt=""><figcaption><p>Templates give a starting point for development for the most common use cases.</p></figcaption></figure>

In case your Tenant doesn't yet have a suitable Template for you, you can check out more Templates at [https://templates.frends.com](https://templates.frends.com/). This library is organized by targeted system, making it easy to find Templates relevant to your specific system or Process needs.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FYQggBtSgopPELNg96NRz%2Fscreenshot-rocks%20(29).png?alt=media&#x26;token=601a4883-1f98-4f61-8e19-679279094689" alt=""><figcaption></figcaption></figure>

After selecting a Template, you can customize it to better fit your operational requirements. The Templates are designed to be flexible, allowing you to modify parameters, add Tasks, or adjust conditions to align with your organizational goals. This approach not only facilitates a swift setup but also ensures that all new Processes are built upon a solid and well-tested foundation, minimizing integration errors and expediting deployment.

## Templates for Business Users

In the Frends Business Automation Portal, Templates serve as the foundation for streamlining workflow creation and management. Business users can easily select and run pre-designed Templates tailored to frequently encountered Processes, enhancing operational efficiency and reducing setup time. The portal simplifies complex Processes by utilizing the Templates, enabling Processes to be executed without the need for Process editing or other technical know-how.&#x20;

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FmGOpnkDlht2uguSAe0zK%2Fimage.png?alt=media&#x26;token=cf0e1a23-e199-4296-86c0-92927d74ce40" alt="Templates are shown as available processes in BAP"><figcaption><p>Templates are shown as available Processes in the Business Automation Portal.</p></figcaption></figure>

Instead of being the starting point for Process development, Templates are the Processes that can be executed from the Business Automation Portal, to obtain immediate results of the Process using the parameters provided by the user. Just like for normal Process executions in Frends Control Panel, BAP provides access to the execution details to find out what was done, and what the results were.&#x20;

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FYlV1c9oZAswBnFRcdk4L%2Fimage.png?alt=media&#x26;token=164b4012-6bae-4fb3-a5c3-83ea0d444bcc" alt="View showing process execution details at a glance."><figcaption><p>View showing Process execution details at a glance.</p></figcaption></figure>

Because it is a separate environment, there is no need to worry about technical details, integration management or consider the integration architecture or setup in Business Automation Portal. Each Process executed there are their own instance and entity, separate from the larger whole happening in your Frends Tenant.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FEvrGk4O377ph1E6G4PQa%2Fimage.png?alt=media&#x26;token=82416719-e873-4266-963c-44452fbd28b4" alt="Execution details are shown visually, without the extra technical clutter available in control panel."><figcaption><p>Execution details are shown visually, without the extra technical clutter available in Control Panel.</p></figcaption></figure>

## Template Development

Creating new Templates is just as easy as creating new Processes. In fact, Templates are created from the Processes you have created. Just select **Update or Create a Template from Process**, set up the general values to identify the Template, and you're done.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2Fk5YNdKot4uWg8PGGX5ga%2Fimage.png?alt=media&#x26;token=7af9c688-c4cf-4ccb-914c-23f5a6166858" alt="Showing template creation parameters that are available."><figcaption><p>Template creation parameters.</p></figcaption></figure>

In case you want to modify your Process to act as an executable Template for Business Automation Portal, you might want to set up the key values as Process Variables in the Process Editor.&#x20;

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2F0Tt37zpX0bgrQVBjboFv%2Fimage.png?alt=media&#x26;token=3a27cf50-e92c-40af-97b3-6bc13d36d22b" alt="Specifying process variables in the process editor makes it possible to adapt the template to different users and environments."><figcaption><p>Specifying Process Variables in the Process Editor makes it possible to adapt the Template to different users and environments.</p></figcaption></figure>

In general, these values might otherwise be provided as Environment Variables, but for Template use, when they are provided as Process Variables, the values can be filled in when the Template is taken to use, instead of relying on the Environment-specific values. Especially when exporting the Template to another Frends Tenant does this become important, as the new Tenant might not have the same Environment Variables set.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FsKyoW1TF5JFsAgL2QQgS%2Fimage.png?alt=media&#x26;token=a5af4bd5-4d45-4b66-871c-5b2a2d3b2bc2" alt=""><figcaption><p>When creating a Process from the Templates, the Process Variables are set for the specific use case.</p></figcaption></figure>

It is then up to the Template user to provide the Process Variables the values as Environment Variables. The default value for the Process Variables can also be set as Environment Variables, providing information to the Template's user that it might be good idea to do that as well.


# API Management

Creating and managing APIs has never been easier.

Frends includes built-in API management features that you can easily use to create and manage your APIs. With the provided tools, you can create an API using OpenAPI specification, link a Process into each endpoint and then, using our low-code Process Editor, create the logic behind each endpoint. Alternatively, the APIs can be specified as passthrough APIs, where Frends will connect the public endpoint in Frends to another API endpoint in your target system.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FaLPEXBhQIunuoZfYkxmD%2Fscreenshot-rocks%20(56).png?alt=media&#x26;token=f8ea8b17-d167-4320-84f9-b5746e80fd2a" alt=""><figcaption><p>API Management view in Frends.</p></figcaption></figure>

The provided monitoring tools will give you wide access to checking and filtering the logs for incoming requests for each Environment. If, and when, you want to limit who can access your APIs, our powerful API Policies provide a plethora of settings that you can use to authenticate and authorize callers to your endpoints. And finally, to get a word out that you have a new API, the API Portal will show your users exactly what your API can do.

## API Specification

The API Management page in Control Panel is the central management view for all of your APIs. From here, you can create new APIs by providing an OpenAPI specification for it, and then creating a new Process or linking an existing Process to each endpoint you have specified in the spec.&#x20;

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2F8XWikhgtSA7UPDA63Wak%2Fscreenshot-rocks%20(57).png?alt=media&#x26;token=b785ad5e-63ae-4ce4-9ffd-522303cb58ec" alt=""><figcaption><p>OpenAPI specification editor to create or edit an API.</p></figcaption></figure>

To learn more about creating APIs with Frends, head over to [How to create an API with Frends](https://app.gitbook.com/s/0p415NUmUmiF4ayjI81L/api-management/how-to-create-an-api-with-frends "mention").

## Passthrough APIs

Passthrough APIs allow you to forward requests from the Frends API endpoints to your system's provided APIs, in the case where data conversion or other logic is not needed. They are excellent to use to keep a coherence in your API branding, having all used endpoints within the same domain, without requiring much configuration or overhead from creating a Process in between where nothing really happens.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FLobLPGxVvTE04TQAdAPe%2Fscreenshot-rocks%20(58).png?alt=media&#x26;token=85d875bc-3e9e-4e26-b3ad-6e0569f5f75a" alt=""><figcaption><p>Passthrough API creation view.</p></figcaption></figure>

Read more at [passthrough-apis](https://docs.frends.com/docs/frends-development/api-management/passthrough-apis "mention") page.

## API Policies

API Policies are used to authenticate API callers with API keys or OAuth bearer token, as well as to manage the logging and throttling options for the endpoints.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FfGSltkwS3oObv15ZegFV%2Fscreenshot-rocks%20(59).png?alt=media&#x26;token=5cbb769a-f6fb-4c6c-9f17-d4fe5035c434" alt=""><figcaption><p>API Policy for setting up API key authentication.</p></figcaption></figure>

API Policies allow you to define the targeted API endpoints that the policy applies to. It can also target the endpoints through implicit wildcard if only the beginning of a URL is specified.

[Read more about API Policies here](https://docs.frends.com/docs/frends-development/api-management/api-policies).

## API Monitoring

In order to monitor what is happening with your Frends APIs, the **API monitoring** page shows you all the connections made into your tenant, and what happened with them.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FYwENyuNdZljjKKCqOU1k%2Fscreenshot-rocks%20(61).png?alt=media&#x26;token=cb33909d-f402-4f83-a7b9-af127da1b289" alt=""><figcaption><p>API logs in Frends API management.</p></figcaption></figure>

You can easily filter the log by API operation, status code of the response, and what method was used, to figure out what is happening. The logs include events for all requests made against your tenant, and not only the specified API endpoints, so you can also see all the unsolicited attempts made against your environment.


# API Specification

Creating an API is as easy as defining the OpenAPI specification.

The API Management page in Control Panel is the central management view for all of your APIs. From here, you can create new APIs by providing an OpenAPI specification for it, and then creating a new Process or linking an existing Process to each endpoint you have specified in the spec.&#x20;

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2F8XWikhgtSA7UPDA63Wak%2Fscreenshot-rocks%20(57).png?alt=media&#x26;token=b785ad5e-63ae-4ce4-9ffd-522303cb58ec" alt=""><figcaption><p>OpenAPI specification editor to create or edit an API.</p></figcaption></figure>

To learn more about creating APIs with Frends, head over to [How to create an API with Frends](https://app.gitbook.com/s/0p415NUmUmiF4ayjI81L/api-management/how-to-create-an-api-with-frends "mention").


# Passthrough APIs

Coherent API endpoints without extra fluff.

Passthrough APIs allow you to forward requests from the Frends API endpoints to your system's provided APIs, in the case where data conversion or other logic is not needed. They are excellent to use to keep a coherence in your API branding, having all used endpoints within the same domain, without requiring much configuration or overhead from creating a Process in between where nothing really happens.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FLobLPGxVvTE04TQAdAPe%2Fscreenshot-rocks%20(58).png?alt=media&#x26;token=85d875bc-3e9e-4e26-b3ad-6e0569f5f75a" alt=""><figcaption><p>Passthrough API creation view.</p></figcaption></figure>

To configure a passthrough API, you need to have created an API to Frends, and then click **Create passthrough API** button in API management view. In the passthrough API editor, you can specify the target url for each API endpoint, optionally passing along parts of the original request's url or query parameters, as well as manage the headers used in the passthrough.

You can also create an **All endpoints** passthrough, which will always pass on the final part of the request path and query parameters to the target API without having all possible endpoints defined in the API specification. The original url and path are replaced with the target system's url and path.&#x20;


# API Policies

Authentication and logging rules for your API endpoints.

API Policies are used to authenticate API callers with API keys or OAuth bearer token, as well as to manage the logging and throttling options for the endpoints.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FfGSltkwS3oObv15ZegFV%2Fscreenshot-rocks%20(59).png?alt=media&#x26;token=5cbb769a-f6fb-4c6c-9f17-d4fe5035c434" alt=""><figcaption><p>API Policy for setting up API key authentication.</p></figcaption></figure>

API Policies allow you to define the targeted API endpoints that the policy applies to. It can also target the endpoints through implicit wildcard if only the beginning of a URL is specified.

### API Authentication

For each API Policy, either one or more authentication methods can be defined, ranging from externally defined OAuth providers to locally defined API keys. In addition, the APIs can be set to be publicly available, requiring no authentication. In Frends, the lack of authentication method setup or API Policy for your API does not mean public access, but rather no access. An API Policy is required to be set up to allow anyone to connect to it.

### Logging policies

Finally, you can add a **logging configuration** to the API policy, to define whether or not API events should be logged for the targeted endpoints in specified Environments, and what details are logged.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FHQfwmwBGWlIdSEUu8vYl%2Fscreenshot-rocks%20(60).png?alt=media&#x26;token=7854a8bb-caf9-4d10-9eef-ea90e96e0804" alt=""><figcaption><p>API logging configuration options.</p></figcaption></figure>

Like with authentication, not setting up a logging policy will mean no logging for the APIs. This is to avoid increasing load and storage requirements by default, and only enabling logging will give you access to it.

This only applies for the API connection logging, available in API Monitoring. Linked Processes in your APIs will be logged as per the Environment log settings.

### Combining policies

Combining the freely defined targeted endpoints, public access identity rule and logging options, the policies makes it possible to define purely logging-specific policies in addition to authentication policies. If multiple policies target the same endpoints, it is possible to separate authentication, logging and throttling options into multiple policies, as well as creating global policies that set up the default values for your Environments.

[Check here for a guide on how to create an API Policy](https://app.gitbook.com/s/0p415NUmUmiF4ayjI81L/api-management/setting-up-api-policies).


# API Monitoring

Monitor all the connections to your tenant.

In order to monitor what is happening with your Frends APIs, the **API monitoring** page shows you all the connections made into your tenant, and what happened with them.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FYwENyuNdZljjKKCqOU1k%2Fscreenshot-rocks%20(61).png?alt=media&#x26;token=cb33909d-f402-4f83-a7b9-af127da1b289" alt=""><figcaption><p>API logs in Frends API management.</p></figcaption></figure>

You can easily filter the log by API operation, status code of the response, and what method was used, to figure out what is happening. The logs include events for all requests made against your tenant, and not only the specified API endpoints, so you can also see all the unsolicited attempts made against your environment.


# API Portal

Effortlessly create and publish your API docs.

Frends API Portal is a comprehensive, self-service developer portal designed for publishing and managing APIs created in the Frends integration platform.

This portal allows Frends customers and partners to securely expose their Frends-built APIs to their own developers, customers, and end-users. It provides a fully-featured, white-label-ready environment where users can discover available APIs, explore interactive documentation, test endpoints directly in the browser, and manage their subscriptions and API keys.

<figure><img src="broken-reference" alt=""><figcaption></figcaption></figure>

By offering a professional and branded self-service experience, the API Portal accelerates the adoption of your APIs, fosters a vibrant developer community, and unlocks new business opportunities by turning your integrations into reusable products.

In order to get started with API Portal and obtain it for your organisation, please contact Frends Sales.

[You can read more about API Portal from here](https://app.gitbook.com/s/kld7XwlsZKJMSV4KMD07/).


# AI features

In Frends, AI is not an afterthought.

Welcome to Frends AI, where innovation works hand in hand with functionality to enhance your business. Explore how AI can improve productivity, efficiency, and seamless integration in your operations.

## AI Assisted Development

Frends includes powerful AI tools to help you with creating your Processes exactly the way you need them to be. AI can help you both to set up a Task's parameters, as well as generate you code into a Code Task shape to perform more advanced actions within your Process.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FFW5GIaQHHTxEnkaexJhs%2Fimage.png?alt=media&#x26;token=1b4c245b-9aa2-46c9-978b-f791e665fbf1" alt="Image showing AI Assistant at work, performing Task configuration."><figcaption><p>Simply provide the AI what you want to do, and it will suggest you parameters for the Task.</p></figcaption></figure>

Read more about the AI development features from [ai-assisted-development](https://docs.frends.com/docs/frends-development/ai-features/ai-assisted-development "mention") page.

## AI Assisted Documentation

In addition to providing AI Assistants for helping you create Processes and the functionality you require, Frends also includes automatic Process documentation generation with AI. This will take care of the often most important aspect of development, which no one usually wants to do if asked. With AI assisted documentation generation, there are no excuses for not having up to date docs for your Processes.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FjrSUbboIrakKMZhUsI6m%2Fimage.png?alt=media&#x26;token=2f698d28-9ddb-4c41-8174-f516c4894c43" alt=""><figcaption><p>Just click a button and you have comprehensive documentation about the Process.</p></figcaption></figure>

[Check her to learn how to automate your documentation](https://docs.frends.com/docs/frends-development/ai-features/documentation-generation).

## Intelligent AI Connector

Without including AI in your business processes, AI is just a tool to help you achieve what you need to do. While not a bad thing by itself, allowing AI to participate as part of the process will free you from the task altogether. In Frends, AI can be included in the Processes natively using Intelligent AI Connector, automating tasks that have so far required human input.&#x20;

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2Fp1WkDaJCqsOSxicyXuyp%2Fscreenshot-rocks%20(76).png?alt=media&#x26;token=21b47296-0bad-4a2f-9739-f2db59196d10" alt="Picture showing the Native AI shape as part of a Frends Process."><figcaption><p>Intelligent AI Connector in action.</p></figcaption></figure>

[Learn more about the AI revolution here](https://docs.frends.com/docs/frends-development/ai-features/intelligent-ai-connector).

## AI Support Channels

Frends provides intelligent, AI-powered assistance tools to give you immediate help exactly when and where you need it. Every Frends tenant includes an integrated AI chat, accessible through the Help button in the top-right navigation bar. Trained on the complete Frends documentation and extensive training materials, it provides instant answers to your questions without waiting for support responses.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2Fld4nemo6SJ0uhVnehwDh%2Fimage.png?alt=media&#x26;token=f58b3375-d015-437d-a283-a0ca243e6702" alt=""><figcaption><p>Frends Bot will provide quick answers to your questions.</p></figcaption></figure>

Beyond the in-platform chat, you'll also find an AI-powered search right here in the Docs. You can easily access the AI Docs Assistant here from the top navigation bar's search field, or by pressing **CTRL-K**.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FjNpBfUhI0Q1xYB7rETRC%2Fimage.png?alt=media&#x26;token=96e7adb6-f157-4444-969f-292c90703776" alt=""><figcaption><p>Any search queries and questions can be redirected to the AI Assistant in Frends Docs.</p></figcaption></figure>

[Check the AI Support Channels page for more details](https://docs.frends.com/docs/frends-development/ai-features/ai-support-channels).


# AI Assisted Development

AI in Frends will help you with configuring Tasks as well as create code.

Frends includes powerful AI tools to help you with creating your Processes exactly the way you need them to be. AI can help you both to set up a Task's parameters, as well as generate you code into a Code Task shape to perform more advanced actions within your Process.

## AI Task Configurator

To speed up development, Frends includes an AI Assistant to help you configure the Task you need within your Process.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FFW5GIaQHHTxEnkaexJhs%2Fimage.png?alt=media&#x26;token=1b4c245b-9aa2-46c9-978b-f791e665fbf1" alt="Image showing AI Assistant at work, performing Task configuration."><figcaption><p>Simply provide the AI what you want to do, and it will suggest you parameters for the Task.</p></figcaption></figure>

In order to use the AI Assistant, all you need to is add a Task shape to your Process, decide on the Task type, and click on AI Assistant button to open the dialog. After that, simply specify what you would like to accomplish, and the assistant will provide you with parameters for the Task, with reasoning. You can then choose to use the suggested values, or discard them and refine the query more.

The AI Assistant will receive information about available variables and values in your Process and Frends Tenant, so it can automatically suggest using Environment Variables for the parameters, as well as include C# code to perform more advanced logic on what value to use.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FAgf0xhI6nQmQAmxEO7eQ%2Fimage.png?alt=media&#x26;token=aef94003-863c-48d6-a6cf-d74e8c109795" alt=""><figcaption></figcaption></figure>

From the top right, you can also open the Context Panel to see and choose, what is provided for the AI. In case some sensitive data is provided and you would prefer not to include those, they can be removed here.

## AI Code Generator

In case you need to perform complex logic within your Process, you might prefer to use Code Task shape to write the logic out in C#. This is useful for performing complex mapping or analysis into the data within a Process. To speed this up, the AI Assistant is available here as well to give you a functional code snippet or a starting point to continue from where the AI took you.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FuolYd184iMhPAw7t5LPh%2Fimage.png?alt=media&#x26;token=65ccbde4-4b31-4269-90a5-7fbd4c7d7d4f" alt="Image showing the AI Code Generator in action."><figcaption><p>The AI Assistant will provide you with functional code that will work directly within Frends Code Task shape.</p></figcaption></figure>

Because writing C# code within Frends's Code Task has some special requirements that separate it from standard C# program code, the AI can help you in getting started with writing code suitable for embedding into the Process. It understands the namespace requirements as well as knows what libraries are available within Frends, and uses the Frends variables correctly to handle reference values from the Process as needed.


# Documentation Generation

Automate the least favorite task of all development with AI.

In addition to providing AI Assistants for helping you create Processes and the functionality you require, Frends also includes automatic Process documentation generation with AI. This will take care of the often most important aspect of development, which no one usually wants to do if asked. With AI assisted documentation generation, there are no excuses for not having up to date docs for your Processes.

## AI Assistant for Process Documentation

With Frends, you can have the Process documentation in the same place as your Processes, not requiring a separate platform for that as well. In addition, if you don't want to write the documentation yourself, you can ask someone else, or more likely, the Frends AI Assistant to write it for you.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2F9OivTek6t9ShDJHfRLQD%2Fscreenshot-rocks%20(62).png?alt=media&#x26;token=908fab13-7105-4801-af99-c3c04fdf1718" alt="Picture depicting empty field for writing documentation, while highlighting the button to generate docs automatically with AI."><figcaption><p>Afraid of blank paper? Just click a button to generate the documentation you need.</p></figcaption></figure>

What's especially good about the document generation, is that you won't need to specify any details of what you want. We took care of that with our professional integration developers, who have years of experience in creating and documenting Processes. The AI will receive all the information there is about your Process and about the environment as well, and write out perfect documentation detailing the important aspects of the Process. Just press a button, and you will have more than suitable amount of documentation about the Process, in a format that is easy to understand but detailed enough to provide information to both a seasoned veteran as well as integration newbie.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FjrSUbboIrakKMZhUsI6m%2Fimage.png?alt=media&#x26;token=2f698d28-9ddb-4c41-8174-f516c4894c43" alt=""><figcaption><p>Just click a button and you have comprehensive documentation about the Process.</p></figcaption></figure>


# Intelligent AI Connector

Allowing AI to participate in your Processes.

Without including AI in your business processes, AI is just a tool to help you achieve what you need to do. While not a bad thing by itself, allowing AI to participate as part of the process will free you from the task altogether. In Frends, AI can be included in the Processes natively using Intelligent AI Connector, automating tasks that have so far required human input.&#x20;

## Intelligent AI Connector

Intelligent AI Connector is a new building block for Processes in Frends. It allows the AI to participate in your Processes by performing actions you have specified as prompts, in the location of the Process you need to.&#x20;

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2Fp1WkDaJCqsOSxicyXuyp%2Fscreenshot-rocks%20(76).png?alt=media&#x26;token=21b47296-0bad-4a2f-9739-f2db59196d10" alt="Picture showing the Native AI shape as part of a Frends Process."><figcaption><p>Intelligent AI Connector in action.</p></figcaption></figure>

Multiple prompts can be provided for the single shape, making sure the provided answer follows the required format and is repeatable. By default, Frends system prompt is given to the shape in order to make the AI work with Frends ideology and Processes specifically, instead of providing the answers in generic text or other unsuitable format. From there, it's up to the developer to specify the action taken by AI.

## Why Use AI Connector

BPMN 2.0 with AI Connector enables AI Orchestrations. Practically, you can implement the thought process of an employee as steps and decisions. Instead of requiring a human decision for categorizing an incoming message into tech or sales support cases, AI Connector with LLM models can read and categorize the message for you automatically. The Frends Process can then continue handling the case into correct destination. The whole process for multiple different ticket cases can be written as a series of prompts, decisions, and actions that combine the basic operations from Tasks and programming with input from AI.

## Choose your AI Model

The AI Connector in Frends is not tied to a single available model. While Frends provides its own AI services with a curated set of LLM Models to use for various use cases that work out of the box and no configuration, you can also provide your own Azure Inference service, or take a step towards owning your own data even further and use an on-premise Ollama installation to perform the AI actions.

## The Future

Future Frends features will expand the AI steps to do the API calls internally inside the AI step and even enable the Computer Use Access to finalize the Agentic AI path. These two steps will be included later on in our roadmap. With Intelligent AI Connector, you can already start your Agentic AI journey.

## Reference Documentation

In order to learn the specifics of how to use the AI Connector in your Processes, head over to our [reference documentation for AI Connector](https://app.gitbook.com/s/1H5SQ92uIfBOYNIeoUAc/shapes/activity-shapes/ai-connector), which will give details of the shape.


# AI Support Channels

Assistance for your specific questions.

Frends provides intelligent, AI-powered assistance tools to give you immediate help exactly when and where you need it. Every Frends tenant includes an integrated AI chat, accessible through the Help button in the top-right navigation bar. Trained on the complete Frends documentation and extensive training materials, it provides instant answers to your questions without waiting for support responses.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2Fld4nemo6SJ0uhVnehwDh%2Fimage.png?alt=media&#x26;token=f58b3375-d015-437d-a283-a0ca243e6702" alt=""><figcaption><p>Frends Bot will provide quick answers to your questions.</p></figcaption></figure>

When the AI chat cannot fully resolve your issue, you can also seamlessly escalate to our support team directly from the same chat window. This ensures continuity, as the context of your conversation is available to support agents, helping them understand your situation quickly. The system automatically creates support tickets when needed, ensuring proper tracking and prioritization.

Beyond the in-platform chat, you'll also find an AI-powered search right here in the Docs. You can easily access the AI Docs Assistant here from the top navigation bar's search field, or by pressing **CTRL-K**.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FjNpBfUhI0Q1xYB7rETRC%2Fimage.png?alt=media&#x26;token=96e7adb6-f157-4444-969f-292c90703776" alt=""><figcaption><p>Any search queries and questions can be redirected to the AI Assistant in Frends Docs.</p></figcaption></figure>

Rather than simply returning a list of links, the Docs AI analyzes your query and delivers a curated answer tailored to your use case. This transforms these pages from a passive reference into an active problem-solving resource.

Together, these AI-powered tools create a comprehensive support ecosystem that helps you work more efficiently, learn faster, and build integrations with confidence. Whether you're new to the platform or an experienced developer, Frends' AI assistance keeps you moving forward.


# Frends Platform API

Manage and operate your Frends Tenant using API.

The Frends Platform API allows Frends to be managed via an API interface. This can be used to automate actions, such as editing Environment Variables or deploying Processes, or accessing Process Instances for monitoring them.

## Platform management over API

Frends Platform API is a RESTful API that allows you to perform tasks and actions, and receive data from your Frends Tenant. The API thus allows automating management and monitoring tasks that otherwise would have to be done single piece at a time manually.

Accessing the API description and reference is done through your Frends Control Panel, using URL such as **yourtenant.frendsapp.com/swagger**. You can also find the latest Platform API reference from [here](https://app.gitbook.com/s/1H5SQ92uIfBOYNIeoUAc/frends-platform-api/platform-api-reference).

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FFcRcyGTaM19RbuEq88If%2Fimage.png?alt=media&#x26;token=0e328a87-f93e-48a3-87a9-3e4b5f828a00" alt="Image shows the Frends Platform API reference within your Frends Tenant."><figcaption><p>API endpoints are visible in the API description, and can be tested from here as well.</p></figcaption></figure>

Because it is an API and it's accessible within Frends as well, what better way to create your automation to your Frends Tenant than using Frends Processes to implement them. This way you can create Processes that will perform actions to other Frends Processes, as well as collect monitoring data and adjust values in your environment as needed.

The API is designed to be used in a RESTful manner specifying Frends elements to be accessed by their identifiers. Some responses provide links, which help with further requests for the elements contained in the response. Lists use paging or continuation tokens if the data is rapidly changing, e.g. Process Instances. In these cases you need to use the continuation token to have a consistent experience enumerating the list.


# Dashboard & Monitoring

Overview of the analytics features in Frends.

Frends Platform contains multiple levels of analytics and monitoring, from top-level performance and resource usage logs to integration execution logging to monitoring services and error handling that alert you if something happens. All of it presented in user friendly manner that is both easy to understand and flexible to adjust.

## Dashboard

Dashboard is a comprehensive tool within the Frends Control Panel designed to provide users with a clear and concise overview of their system activities. It includes key metrics such as performance statistics and integration execution logs. The Dashboard offers customizable widgets that allow users to tailor the view according to their specific monitoring needs. Users can adjust settings to highlight critical alerts, track error occurrences, and monitor execution counts, thus enabling proactive management and swift response to any issues that may arise.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2F1wAflrJrQmAaWGfOSEpz%2Fscreenshot-rocks%20(48).png?alt=media&#x26;token=0f8b83b0-1c71-4df8-b646-1b87ba1eab80" alt=""><figcaption><p>Frends Dashboard shows you a collection of widgets that provide data about Process executions.</p></figcaption></figure>

[Check here to learn more about the Dashboard](https://docs.frends.com/docs/management-and-operations/dashboard-and-monitoring/dashboard).

## Integration execution logs

Basis to majority of Frends logging, Process Instances contain information what happened during a single integration execution. At top level the instances contain information about when Process was executed, did it succeed and how long it took, as well as any results of the execution.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FmbWZu7MKFL6mSjDYIrZz%2Fscreenshot-rocks%20(49).png?alt=media&#x26;token=85d07437-6d84-46e3-9e1b-16e73d4ef48b" alt=""><figcaption><p>Example view of Process Instance list.</p></figcaption></figure>

Check the [process-instances](https://docs.frends.com/docs/management-and-operations/dashboard-and-monitoring/process-instances "mention") page to learn more about Process logs.

## Error handling & Monitoring

Frends implements multiple ways to handle errors from Processes. While the best option is to have no errors, working with multiple external systems means not everything is controlled by Frends.&#x20;

Frends includes multiple layers of error handling features available to use within Processes, around Processes and on Environment wide level.&#x20;

[Check out here on all the options for error handling and Process monitoring in Frends](https://docs.frends.com/docs/management-and-operations/dashboard-and-monitoring/error-handling-and-monitoring).

## System logs

Frends platform provides logs to monitor the systems that are running your Frends Tenant.

### Agent logs

Agent event logs, accessible under Administration and Environments, show system and Frends Agent events, showing what is happening in the background. Any unhandled errors from integrations, system errors and possible causes of more widespread issues are shown here for each Agent in your Tenant.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2Fu45LiLqzmuktjGTiCVKu%2Fimage.png?alt=media&#x26;token=a9bbf6d2-0788-449b-85d4-865f2dd11b56" alt="Picture shows Frends Agent&#x27;s events from a development environment."><figcaption><p>Filterable list of events from the Agent are shown under Environment administration.</p></figcaption></figure>

### API Monitoring

In order to monitor what is happening with your Frends APIs, the **API monitoring** page shows you all the connections made into your tenant, and what happened with them.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FYwENyuNdZljjKKCqOU1k%2Fscreenshot-rocks%20(61).png?alt=media&#x26;token=cb33909d-f402-4f83-a7b9-af127da1b289" alt=""><figcaption><p>API logs in Frends API management.</p></figcaption></figure>

You can easily filter the log by API operation, status code of the response, and what method was used, to figure out what is happening. The logs include events for all requests made against your tenant, and not only the specified API endpoints, so you can also see all the unsolicited attempts made against your environment.

## AI Audit Logs

Monitoring the use of AI is often critical for security and debugging, due to AI operating almost like a black box, without insight into why the specific decisions and actions were done.

AI audit logs in Frends provide visibility to what the AI is being used for in your Frends Tenant, as well as showing the amount of use AI receives and how much usage, measured in Frends credits, you have left from your Frends subscription. You can also configure additional Frends credits availability here.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2Fp531ml2GBB7r0AQsBHCR%2Fimage.png?alt=media&#x26;token=f9093a89-98a5-4ca0-b308-eb83d47db391" alt=""><figcaption><p>Usage graphs for AI in your Tenant.</p></figcaption></figure>

Read more about the AI logging at [ai-audit-logs](https://docs.frends.com/docs/management-and-operations/dashboard-and-monitoring/ai-audit-logs "mention") page.


# Dashboard

Central monitoring view in Frends Control Panel.

Dashboard is a comprehensive tool within the Frends Control Panel designed to provide users with a clear and concise overview of their system activities. It includes key metrics such as performance statistics and integration execution logs. The Dashboard offers customizable widgets that allow users to tailor the view according to their specific monitoring needs. Users can adjust settings to highlight critical alerts, track error occurrences, and monitor execution counts, thus enabling proactive management and swift response to any issues that may arise.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2F1wAflrJrQmAaWGfOSEpz%2Fscreenshot-rocks%20(48).png?alt=media&#x26;token=0f8b83b0-1c71-4df8-b646-1b87ba1eab80" alt=""><figcaption><p>Frends Dashboard shows you a collection of widgets that provide data about Process executions.</p></figcaption></figure>

## Dashboard widgets

At the core of Dashboard are the customizable widgets that allow you to organise and filter the view as needed.

At the simplest level, counters for successful and failed Process executions are provided, which you can filter according to Environment and tags added to Processes. These are useful for showing the current count from the chosen time period, and how it has changed from the earlier time.

To give more tracking on the trend of execution counts, Process execution graph can be used to visualize the trend of Process execution counts over a period of time. It can used for both longer time periods, spanning multiple days, as well down to one day, showing the changes in execution counts within the day by the hour.

Common need and use case for monitoring is for errors. The errors widget provides you with a simple list of Processes that have had errors in the executions lately. It too can be filtered by Environment and Process tags, allowing you to focus on the specific set of Processes that make up your solution.&#x20;

## How to access Dashboard

You can find the Dashboard from Frends Control Panel, from the menu under your profile name.

To learn more about Dashboard, you can check out our guide at [How to use Dashboard](https://app.gitbook.com/s/0p415NUmUmiF4ayjI81L/integration-management/how-to-use-dashboard "mention").


# Process Instances

Logging for the Process executions.

Basis to majority of Frends logging, Process Instances contain information what happened during a single integration execution. At top level the instances contain information about when Process was executed, did it succeed and how long it took, as well as any results of the execution.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FmbWZu7MKFL6mSjDYIrZz%2Fscreenshot-rocks%20(49).png?alt=media&#x26;token=85d07437-6d84-46e3-9e1b-16e73d4ef48b" alt=""><figcaption><p>Example view of Process Instance list.</p></figcaption></figure>

## Process Instance logs

You can view the Process execution and all its steps by opening any of the Process Instances from the list. On a default log level, all the results of each Process Task are logged into the Process Instance. This can be adjusted based on your needs to log more, including the input parameters for each Task and shape. Or less, to focus solely on erroneus executions, to save bandwidth, storage and performance for the actual execution.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FYvCvTvBk33P6kzpzxknr%2Fimage.png?alt=media&#x26;token=c29cb84f-2da6-4724-8caf-6b0ecadf00bc" alt=""><figcaption><p>Process executions can be viewed from the Process Instance list, including the steps in the Process.</p></figcaption></figure>

With the Process Instance open, it's possible to click and view the logged values for each shape in the Process. This allows for easy debugging and fast development, as well as clear view to less technical personnel on what happened during each Process execution.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FI9bAScfKXwCUDZA8Jf8N%2Fimage.png?alt=media&#x26;token=c64db9a7-1be7-46f6-8b2c-b6b3a534c1aa" alt=""><figcaption><p>HTTP response for an API call shows the duration, response body as well as headers.</p></figcaption></figure>

## Promoted values & Skip logging

Sometimes it's also useful to get more details about an execution into the Process Instance list directly. **Promoted values** can be used to do exactly this during development of a Process. When a shape in the Process is set to promote the result, the value for that shape will be shown on the Process Instance list, and the executions can then be searched by that value.

A side effect of the promotion is that the value will always be logged in the Process Instance, regardless of the set log level, including input parameters. Promoted values can thus also be used as a debugging method even when the Environment as a whole would otherwise have reduced logging set.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FCiqwGcaxCEyxp8Kkl0IW%2Fimage.png?alt=media&#x26;token=94801914-9b0f-4612-8030-5cd8ed6a9272" alt="Picture of Frends Process Editor, showing the advanced settings for a shape."><figcaption><p>Advanced settings for shapes allow adjusting the logging behaviour for that shape alone.</p></figcaption></figure>

As an opposite to promoted value, it's also possible to set a shape to **skip logging result and parameters**. This is useful for hiding sensitive information, such as passwords, authentication tokens and social security numbers from the logs. While it reduces the ability to debug errors for those shapes, it increases the security of Process Instance logs.

It can also have positive implications for the performance, in case the amount of data for the shape is large. Not logging all of the data can be beneficial in many ways. Under default log level settings, the maximum data size logged is limited to 100 array entries or 8192 characters of textual data.&#x20;

## How to access Process Instances?

Process Instances can be accessed through the Process list for each Process and for each Environment. You can find more information about how to read Process Instance logs from this guide: [How to view integration logs](https://app.gitbook.com/s/0p415NUmUmiF4ayjI81L/integration-management/how-to-view-integration-logs "mention").


# Error handling & Monitoring

How to handle errors in Frends Processes.

Frends implements multiple ways to handle errors from Processes. While the best option is to have no errors, working with multiple external systems means not everything is controlled by Frends.&#x20;

Frends includes multiple layers of error handling features available to use within Processes, around Processes and on Environment wide level.&#x20;

## Process error handling

Each Process in Frends can implement their own error handling procedure. At its simplest, a Catch shape can be used to handle any errors within the Process, without disrupting the Process execution more than necessary. This can be useful, if execution should continue for the remainder of data being handled, or if the error is small and can be fixed during the execution.&#x20;

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FKBLbzsPvFdcgX6X39ub1%2Fimage.png?alt=media&#x26;token=1c3c77b3-6abb-416e-b47c-04aeed637cb6" alt="Image shows a Catch shape being used within Frends Process."><figcaption><p>Common structure in Frends Process to handle an error within the Process.</p></figcaption></figure>

Another option for error handling is using a common Subprocess to handle any errors that occurred during Process execution. This way if there are errors within Process that were not handled, a Subprocess will be called and it will execute its logic to handle the error. Common scheme to handle errors is to send an alert by email, optionally having a treshold value before or after sending an email.&#x20;

Because the error handling is implemented as a Subprocess in Frends, the logic for it is just as flexible and easy to create as the integrations themselves. It should be noted however, that the Process execution will have stopped by the time the error handling Subprocess is executed, so it is only usable for alerting and possibly for cleanup of the Process.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FfGowkvjPFhyL9LuQbK48%2Fimage.png?alt=media&#x26;token=3de52792-d135-4b4a-86f0-63783e268f60" alt="Image showing parameters for Subprocess to call on unhandled error."><figcaption><p>Parameters for Subprocess to call on unhandled error are specified by the Subprocess.</p></figcaption></figure>

## Monitoring Rules

In case even more complex monitoring and email alerts are required, Frends includes Monitoring Rules. These rules can be set to trigger a Process or send email alert if the conditions are fulfilled in the environment.&#x20;

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FhaADgDOi0My0vgVeinM1%2Fscreenshot-rocks%20(50).png?alt=media&#x26;token=91bda3f5-28a4-4187-8b93-dcff7625c88e" alt=""><figcaption><p>Monitoring rule view showing instance counts for the specified rule.</p></figcaption></figure>

Common use cases for Monitoring Rules are to see if errors occur multiple times over a time period, or if integrations are not executed at all within a specified time, or less times than what is expected. They can also be used to monitor if something takes longer than expected. While these would be difficult to check and monitor within Process Instances, at Environment level it becomes easier and more intuitive to set up rules to monitor your integrations.

At the basis of Monitoring Rules are the promoted values from Processes. Monitoring Rules specifically target and monitor the promoted values from all Processes in the Environment, so it's possible to target either one or more Processes, or only specific errors from multiple different Processes.

And when the Monitoring Rule does notice that an alert should be made, it can be set to be either a simple email alert to specified recipients, or more advanced set of alerting and error handling tasks by triggering a Process to run, when the rules are fulfilled.


# System Logs

System logs from the Agent and the containing operating system.

Frends platform provides logs to monitor the systems that are running your Frends Tenant.

## Agent Logs

Agent event logs, accessible under Administration and Environments, show system and Frends Agent events, showing what is happening in the background. Any unhandled errors from integrations, system errors and possible causes of more widespread issues are shown here for each Agent in your Tenant.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2Fu45LiLqzmuktjGTiCVKu%2Fimage.png?alt=media&#x26;token=a9bbf6d2-0788-449b-85d4-865f2dd11b56" alt="Picture shows Frends Agent&#x27;s events from a development environment."><figcaption><p>Filterable list of events from the Agent are shown under Environment administration.</p></figcaption></figure>

## API Monitoring

In order to monitor what is happening with your Frends APIs, the **API monitoring** page shows you all the connections made into your tenant, and what happened with them.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FYwENyuNdZljjKKCqOU1k%2Fscreenshot-rocks%20(61).png?alt=media&#x26;token=cb33909d-f402-4f83-a7b9-af127da1b289" alt=""><figcaption><p>API logs in Frends API management.</p></figcaption></figure>

You can easily filter the log by API operation, status code of the response, and what method was used, to figure out what is happening. The logs include events for all requests made against your tenant, and not only the specified API endpoints, so you can also see all the unsolicited attempts made against your environment.


# AI Audit Logs

Monitor the use of AI in your Frends Tenant.

Monitoring the use of AI is often critical for security and debugging, due to AI operating almost like a black box, without insight into why the specific decisions and actions were done.

AI audit logs in Frends provide visibility to what the AI is being used for in your Frends Tenant, as well as showing the amount of use AI receives and how much usage, measured in Frends credits, you have left from your Frends subscription. You can also configure additional Frends credits availability here.

## AI Audit Log

Accessible under **Administration > AI Audit Log**, the view will show you at a glance the number of Augmented AI sessions and Frends credits used for the current month.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2Fp531ml2GBB7r0AQsBHCR%2Fimage.png?alt=media&#x26;token=f9093a89-98a5-4ca0-b308-eb83d47db391" alt=""><figcaption><p>Usage graphs for AI in your Tenant.</p></figcaption></figure>

In order to monitor what was prompted from the AI, by who, and what was the response from the AI, you can check out the **Prompts** list below. This will show you all the prompts made and responses received by the users in your Frends Tenant, as well as the context provided for the AI. For information security auditing, this data is invaluable to make sure no sensitive data is being leaked through the AI.

Note that the use of AI Connector is not visible here due to possibly large amount of executions being done at any time. Executions of AI Connector and its reasoning log is visible in corresponding Process Instance log, if logging is enabled.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FHCpYH8pLbAy8ynloTJQ4%2Fimage.png?alt=media&#x26;token=7731c51b-223e-4f8f-9d31-f511c4fa0d5a" alt=""><figcaption><p>Clicking on Show Context for any AI interaction in the Prompts list shows all the data being sent from Frends.</p></figcaption></figure>

## Frends credits

Using Frends AI in your Frends Tenant consumes credits, that are based on the model being used and how many tokens each interaction with AI required. All Frends subscriptions that include AI features will also include a number of credits available to use at no additional cost for you.&#x20;

If the monthly credit limit is reached, using AI will be blocked from you until next billing period. While the included amount of credits is enough for getting started with AI, heavier use of AI features may require obtaining more credits to continue using the AI.&#x20;

In order to obtain more Frends Credits, click on **Modify monthly limit** button next to the Frends credits usage graph. You can enable **Pay-as-you-go** option to increase the monthly limit of available Frends credits for you. Any credits used over the included amount will be billed afterwards with your Frends subscription.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FpGJZ5qCYEhf3Yk7ESD2G%2Fimage.png?alt=media&#x26;token=33455cdd-167a-4b94-85ed-b144a310cd04" alt=""><figcaption><p>Enabling pay-as-you-go allows you to modify the monthly limit for Frends credits usage.</p></figcaption></figure>


# User Management

Frends includes RBAC user management capabilities.

Frends provides powerful user administration and management features in the Frends Control Panel. Users are Tenant-specific and they are specifically for accessing the Control Panel and performing actions within, and not related to who can access your APIs or HTTP endpoints, those are controlled separately using API Policies.

At its basics, users are managed in Frends using RBAC or Role-Based Access Control model, and in addition different authentication methods can be integrated into Frends from the User Management.

## Users & Roles

Administering users in Frends is as simple as defining the usernames and the roles connected to that account, to provide the user access to your Frends Tenant and give him permissions to access the necessary areas. Because user account management and handling is not done within Frends, only the username used with your authentication provider is needed to connect your authentication method to permissions for the user.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FdnsVABucz52vSLaZEXa0%2Fimage.png?alt=media&#x26;token=abb33d8d-9361-4828-85fe-2d5447cc347b" alt="Picture shows the default view of User Management section in Frends."><figcaption><p>Default view of User Management section in Frends.</p></figcaption></figure>

By default, users can be assigned to Administrator, Editor and Viewer roles, giving different levels of access to the Frends Control Panel. The roles are customizable and new roles can be created to suit your specific needs.&#x20;

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FI1lEp2u6AAZYUAD2BAEP%2Fimage.png?alt=media&#x26;token=e2cef101-a30c-4914-a145-0541e9ef42b7" alt="Picture shows the settings for Editor role."><figcaption><p>Default values for the Editor role allow creating and editing integrations.</p></figcaption></figure>

By combining the role-based access rules with Environments and Process tags, it's possible to control what Environments and Processes a user can access or not. As examples, it's possible to restrict developers from accessing the production environment, including pushing changes there, or allow the user to only see Processes with specific tag.

Learn more about the user management capabilities in our [Role-Based Access Control](https://app.gitbook.com/s/1H5SQ92uIfBOYNIeoUAc/administration/role-based-access-control "mention") reference page.

## Authentication Providers

In order to log in to your Frends Control Panel, authentication provider needs to be set up. Out of the box,  Auth0 provider by Frends is set up, giving initial access to the Control Panel and to your Frends Portal.&#x20;

Under the OpenID tab of User management view you can set up the authentication providers needed. For example, Microsoft Entra ID can be used to log in to Frends Control Panel, once the app registration for Frends is done in your organisation's Azure Portal and it also has been set up as authentication provider under the OpenID tab in Frends' User management.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2Ff4c1j6pSvousItUo8A5A%2Fscreenshot-rocks%20(63).png?alt=media&#x26;token=5b24dcf6-0292-4495-8c35-61a511cbbf05" alt="Standard authentication providers in Frends Tenant being shown."><figcaption><p>Standard authentication providers within a Frends Control Panel.</p></figcaption></figure>

While the provided authentication by Frends can be used fully to access and use Frends, from account management and security perspective it makes sense to connect your internal SSO solution to your Frends Tenant as well, in order to make sure the Frends Tenant cannot be accessed by users who have already left company through the use of separate credentials.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FZJTEeoiKpO2hyDX9Ns6s%2Fimage.png?alt=media&#x26;token=80103707-1d43-4f9e-8f83-e6fa6be50404" alt="Picture shows the available authentication methods on the Frends Control Panel login screen."><figcaption><p>Configured authentication providers will visible on the login screen for Frends Control Panel.</p></figcaption></figure>


# Task Management

Managing Tasks in your Frends Tenant.

Tasks are the crucial building block of Frends that allow creating visually easy to understand Processes with minimal programming requirements. As the number of different Tasks grow, including them all at once in every Frends Tenant would make for a cluttered experience.

Instead, Tasks can be imported and removed from each Frends Tenant as needed.&#x20;

## Task Management

Tasks are managed from the **Administration > Tasks** menu, which provides the list of existing Tasks already imported to your Tenant, as well as options to bring in more.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2Fx1AO0B4jF5z5ySvDeEok%2Fimage.png?alt=media&#x26;token=2286f83b-07ca-4892-8241-4c086b90acea" alt=""><figcaption><p>Default view for Task management.</p></figcaption></figure>

The default view lists the existing Tasks in your Frends Tenant.&#x20;

### Task updates

If there are any updates to imported Task packages in your Tenant, you will be given the option to update them. Version updates to Tasks often include security updates, bug fixes and sometimes new features, so it's recommended to occassionally check if there's any new updates available for you.

In order to easily see any available updates to Tasks, you can toggle the **Show only updatable** option on to filter the Task package list.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FiB1muIMHb4r5DnxraoQb%2Fscreenshot-rocks%20-%202025-09-18T120843.104.png?alt=media&#x26;token=63c5cbef-42fb-4572-90a1-0785da571f95" alt=""><figcaption><p>Tasks with updates are displayed with an icon next to the Task name.</p></figcaption></figure>

While performing an update you can also choose to not update any Processes using the Task. This allows keeping any existing Processes as they are, and only update the Tasks in affected Processes by hand if necessary. Any deployed Processes that are in use are not affected either way, updating the Processes with Task update only creates a new version from the Process, instead of performing in-place update.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FyS5pgzbGIQU15kdzQIDu%2Fimage.png?alt=media&#x26;token=1e2d751d-022f-44cf-a2e2-5f39345e6dc6" alt=""><figcaption><p>Updating Task packages gives you options how to do it.</p></figcaption></figure>

### Search for Task

In order to find more Tasks to import to your Frends Tenant, you can use the **Search for Task** button to open a search view. Search is performed for all Task packages that are included in the **Nuget sources**, defined also in the Task management. By default, only official and legacy Tasks from Frends are included, but more can be added to be findable, such as community Tasks and custom sources.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FxttiwVlJDj5yPIn6j1jQ%2Fimage.png?alt=media&#x26;token=7d65c55f-235d-4d71-951c-94fe51f23b67" alt=""><figcaption><p>Task search in Task management.</p></figcaption></figure>

Searching for Tasks is the main method to find and import Tasks to your Frends Tenant. You can also see if a Task has already been imported to your Tenant, and can choose the version of the Task to import.

### Importing a Task

Once a Task has been found from search, click on **Import** next to it to perform import. Before the Task is imported, you can select whether to import the Task for use, or **only upload the NuGet package to storage**. This option can be used to import a Task package for preloading dependencies that another Task package requires, rather than for actual use.&#x20;

For most use cases, the importing the Task as is is used, without the option enabled.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FtNMkDZx7hNlVITKdTNdL%2Fimage.png?alt=media&#x26;token=d6718b5c-c933-4596-b1f6-7809809c05e3" alt=""><figcaption><p>Importing a Task.</p></figcaption></figure>

Once a Task has been imported, it can be used in Process Editor.&#x20;

When importing a Task, make note of the targeted .NET version. **.NETCoreApp 6.0** means the Task package is created for Processes targeting .NET versions 6 and 8, which is the latest and default. Packages targeting .NET Framework 4.7.1 and .NET Standard 2.0 are legacy Task packages and not available for use on newer versions.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FQUf3d1nT2fTjlgmgCnOJ%2Fimage.png?alt=media&#x26;token=f6ce00e1-2956-4363-a272-ce9235c13ba3" alt=""><figcaption><p>Task has been updated, but Process can continue using an old version with a warning.</p></figcaption></figure>

### Importing Task as NuGet package

If you have a custom Task created and packaged, or you have a Task you need as separate NuGet package, using **Import Task NuGet** button in Task management view can be used to perform the import.  Similarly to importing a Task package from NuGet sources, same options and notes apply.&#x20;

While importing these essentially custom Tasks works the same as for official Tasks from NuGet feeds and repositories, updating them will require separate import instead of automated notification of update being available.

### NuGet sources

In order to find Tasks using the search, the Task needs to be available in the specified NuGet sources, which are NuGet feed endpoints that contain an updated list of Task packages available from there.

Frends supports public NuGet endpoints of version 2. Private endpoints and version 3 endpoints are currently not supported.


# Integration Lifecycle

CI/CD is built in to Frends.

Frends provides effective tools to control the development and release cycle for your Processes. With the Environments and versioning Frends provides, it's possible for developer to develop integrations, test them in development environment, and push the new version forward with just a click of a button.&#x20;

Assuming your other systems support separate testing and production environments, Frends includes easy to way manage and differentiate functionality and values by the Environment the Process is deployed to.

## Environments & Agent Groups

To separate different uses for different publications of the Processes, Frends provides Environments. These can be used to separate development, testing and production sites from each other by their use and target systems, by defining and using Environment Variables. When defined and used in Processes, Environment Variables can hold different values by the Environment the Process is deployed to.&#x20;

While Environments separate the different sites logically by use purpose and shared values, Agent Groups in them define the actual location where the Processes will be executed. Because Frends supports hybrid architecture for execution environment, the Agent Groups essentially define whether the execution is done in dynamic containers, in the cloud or on an on-premise server.&#x20;

In order to push the changes to other Environments and Agent Groups in Frends, all you need to do is to deploy the Process or Processes to another Environment and Agent Group. The centrally managed Environment Variables will be applied directly and immediately to the Processes being deployed, making sure that no development values will be used in production.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FOgPlWtlR4Dvfdlo1uT1C%2Fimage.png?alt=media&#x26;token=4f10c6e2-964a-4f92-8c1e-f59b226b168a" alt="Selection of target Environment and Agent Group for Process deployment."><figcaption><p>Selecting the target Environment and Agent Group for Process deployment.</p></figcaption></figure>

In case you need to take down a Process from Production or return to older version of the Process, is just as easy as deployment. Simply select another, older version of the Process to deploy, and the changes will be rolled back from the target Agent Group. You can also of course deactivate the Process Triggers or delete the Process from the Agent Group you no longer need it in, and that makes sure the Process will no longer run in that Agent Group, without affecting others.

## Environment Variables

In case it is global values you need in multiple Processes, or values that are Environment specific, such as different credentials and connection points for testing and production, Environment Variables are there to take care of them.&#x20;

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FPOTDQTRq2WNoMjjyYawQ%2Fscreenshot-rocks%20(26).png?alt=media&#x26;token=4d76b72d-66bf-4bcf-9b61-7f970c82c218" alt="Environment variables are global values for each environment."><figcaption><p>Environment Variables are the global values for each Environment.</p></figcaption></figure>

Environment Variables are defined centrally in the Environment Variables section of Frends Control Panel, and can hold groups of values for different purposes. Values can be grouped together by their purpose, such as per target system or for specifically global error handling, and the values themselves can be textual, numerical, lists or secrets.&#x20;

As the key feature of Environment Variables, each Environment in your Frends Tenant can receive separate values for the same variable. This makes it easy to develop and test the integrations using test values and other test environments, and when the Process is ready, it can be deployed to production without any changes to the Process itself, because the Environment-specific values are defined separately and centrally in Environment Variables.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2F4c40jxry4htAO8BnrtXT%2Fscreenshot-rocks%20(27).png?alt=media&#x26;token=15bf2749-6aed-4783-a9e1-cd90948b565a" alt="Using environment variables is recommended for example for connection parameters."><figcaption><p>Using Environment Variables is recommended for example for connection parameters.</p></figcaption></figure>

## Version Control

Versioning for the Processes is automatic in Frends. Everytime a change is made, be it to Process, Subprocess or API, a version change is included for that object. This makes sure that no matter what, a traceable and backtrackable path of changes is always available, and the included versioning tools will help in identifying what was changed.

### Semantic Versioning

Frends follows Semantic Versioning system, where the version is presented as three incremental numbers: **major** version, **minor** version and build or **patch** version. When any changes are made to the Processes or APIs, the build version is incremented automatically and the increment is enforced to avoid skipping values and also to make sure it will not overlap with earlier versions.&#x20;

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FxKqiqB2Ojt7vOg6VSPDI%2Fimage.png?alt=media&#x26;token=92c36d78-833c-45d8-a733-443dc1b22ede" alt="Showing general settings for a Process, focusing on version number."><figcaption><p>Processes are versioned in the Process Editor.</p></figcaption></figure>

Major and minor version numbers can be changed as needed for your use case. Common scheme in Frends would be to increment the major version whenever a new featureset or other major change in a Process is deployed to production, while minor version could be incremented for a smaller change, such as bug fix or adjustment to the Process, after it has been deployed to production at least once.

The scheme is not enforced however, so you are free to use the version numbers as needed.

### Version tools

The most important tool and view for versioning in Frends is the Process Changelog. From here, you can see all the versions and changes that have been made to a Process, and where those versions are deployed to. In addition, as long as the developers have followed the guidelines, a version comment or description is shown here for each version, explaining in simple words what was done for that version.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FJv1m1B0FYLFfFC25y3ay%2Fimage.png?alt=media&#x26;token=b40e7af5-7608-4529-b097-990aa08f5766" alt="Image showing version history for a Process in Frends."><figcaption><p>Version history for a Process.</p></figcaption></figure>

To get a further look at what was done between versions, it's possible to view and compare the older versions as well. Simply by clicking on the ellipsis for any version and selecting Edit, you can access the old version in the Process Editor to see its details. For older versions the Editor opens in view-only mode, and you need to restore the old version as the latest version in order to continue editing from there.

Frends also includes a **Diff** tool to compare different versions of a Process easily. It will highlight any new shapes, removed shapes as well as changed shapes, and you can get an easy overview on what changed between versions.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FvYbLcxo2KX5Rdsksa2Mn%2Fimage.png?alt=media&#x26;token=fc0585d9-fdee-483a-b3cb-78aaae361d13" alt="Image shows the functionality of Diff tool in Frends."><figcaption><p>Diff tool in action, highlighting the moved and added shapes between versions.</p></figcaption></figure>

If you need to go back to editing an older version of a Process, changing versions is made easy and possible as well, and without drawbacks. When changing the version of a Process to earlier state, it will copy that version and make a new version from it, without overriding the changes made in between.&#x20;

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FVHGwbwGkYc5XjW6JXm8N%2Fimage.png?alt=media&#x26;token=43c9ade3-c105-447a-93f6-cc47eefe1221" alt="Image showing the Switch version functionality for a Process."><figcaption><p>Changing the version is done using Switch version action for a Process.</p></figcaption></figure>


# Environments

Assuming your other systems support separate testing and production environments, Frends includes easy to way manage and differentiate functionality and values by the Environment the Process is deployed to.

## Environments & Agent Groups

To separate different uses for different publications of the Processes, Frends provides Environments. These can be used to separate development, testing and production sites from each other by their use and target systems, by defining and using Environment Variables. When defined and used in Processes, Environment Variables can hold different values by the Environment the Process is deployed to.&#x20;

While Environments separate the different sites logically by use purpose and shared values, Agent Groups in them define the actual location where the Processes will be executed. Because Frends supports hybrid architecture for execution environment, the Agent Groups essentially define whether the execution is done in dynamic containers, in the cloud or on an on-premise server.&#x20;

In order to push the changes to other Environments and Agent Groups in Frends, all you need to do is to deploy the Process or Processes to another Environment and Agent Group. The centrally managed Environment Variables will be applied directly and immediately to the Processes being deployed, making sure that no development values will be used in production.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FOgPlWtlR4Dvfdlo1uT1C%2Fimage.png?alt=media&#x26;token=4f10c6e2-964a-4f92-8c1e-f59b226b168a" alt="Selection of target Environment and Agent Group for Process deployment."><figcaption><p>Selecting the target Environment and Agent Group for Process deployment.</p></figcaption></figure>

In case you need to take down a Process from Production or return to older version of the Process, is just as easy as deployment. Simply select another, older version of the Process to deploy, and the changes will be rolled back from the target Agent Group. You can also of course deactivate the Process Triggers or delete the Process from the Agent Group you no longer need it in, and that makes sure the Process will no longer run in that Agent Group, without affecting others.


# Version Control

Traceability and backtrackability for your content in Frends.

Versioning for the Processes is automatic in Frends. Everytime a change is made, be it to Process, Subprocess or API, a version change is included for that object. This makes sure that no matter what, a traceable and backtrackable path of changes is always available, and the included versioning tools will help in identifying what was changed.

### Semantic Versioning

Frends follows Semantic Versioning system, where the version is presented as three incremental numbers: **major** version, **minor** version and build or **patch** version. When any changes are made to the Processes or APIs, the build version is incremented automatically and the increment is enforced to avoid skipping values and also to make sure it will not overlap with earlier versions.&#x20;

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FxKqiqB2Ojt7vOg6VSPDI%2Fimage.png?alt=media&#x26;token=92c36d78-833c-45d8-a733-443dc1b22ede" alt="Showing general settings for a Process, focusing on version number."><figcaption><p>Processes are versioned in the Process Editor.</p></figcaption></figure>

Major and minor version numbers can be changed as needed for your use case. Common scheme in Frends would be to increment the major version whenever a new featureset or other major change in a Process is deployed to production, while minor version could be incremented for a smaller change, such as bug fix or adjustment to the Process, after it has been deployed to production at least once.

The scheme is not enforced however, so you are free to use the version numbers as needed.

### Version tools

The most important tool and view for versioning in Frends is the Process Changelog. From here, you can see all the versions and changes that have been made to a Process, and where those versions are deployed to. In addition, as long as the developers have followed the guidelines, a version comment or description is shown here for each version, explaining in simple words what was done for that version.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FJv1m1B0FYLFfFC25y3ay%2Fimage.png?alt=media&#x26;token=b40e7af5-7608-4529-b097-990aa08f5766" alt="Image showing version history for a Process in Frends."><figcaption><p>Version history for a Process.</p></figcaption></figure>

To get a further look at what was done between versions, it's possible to view and compare the older versions as well. Simply by clicking on the ellipsis for any version and selecting Edit, you can access the old version in the Process Editor to see its details. For older versions the Editor opens in view-only mode, and you need to restore the old version as the latest version in order to continue editing from there.

Frends also includes a **Diff** tool to compare different versions of a Process easily. It will highlight any new shapes, removed shapes as well as changed shapes, and you can get an easy overview on what changed between versions.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FvYbLcxo2KX5Rdsksa2Mn%2Fimage.png?alt=media&#x26;token=fc0585d9-fdee-483a-b3cb-78aaae361d13" alt="Image shows the functionality of Diff tool in Frends."><figcaption><p>Diff tool in action, highlighting the moved and added shapes between versions.</p></figcaption></figure>

If you need to go back to editing an older version of a Process, changing versions is made easy and possible as well, and without drawbacks. When changing the version of a Process to earlier state, it will copy that version and make a new version from it, without overriding the changes made in between.&#x20;

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FVHGwbwGkYc5XjW6JXm8N%2Fimage.png?alt=media&#x26;token=43c9ade3-c105-447a-93f6-cc47eefe1221" alt="Image showing the Switch version functionality for a Process."><figcaption><p>Changing the version is done using Switch version action for a Process.</p></figcaption></figure>


# Environment Variables

Global values that allow easy deployment between Environments.

While allowing for using the same values repeatedly in different Processes, Environment Variables are also the key for successful CI/CD operations. Through using the Environment Variables to separate Environments by their source or target systems, it's possible to deploy new and changed Processes with just a click of a button, no changes needed in the Process for deployment.

## Environment Variables

In case it is global values you need in multiple Processes, or values that are Environment specific, such as different credentials and connection points for testing and production, Environment Variables are there to take care of them.&#x20;

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FPOTDQTRq2WNoMjjyYawQ%2Fscreenshot-rocks%20(26).png?alt=media&#x26;token=4d76b72d-66bf-4bcf-9b61-7f970c82c218" alt="Environment variables are global values for each environment."><figcaption><p>Environment Variables are the global values for each Environment.</p></figcaption></figure>

Environment Variables are defined centrally in the Environment Variables section of Frends Control Panel, and can hold groups of values for different purposes. Values can be grouped together by their purpose, such as per target system or for specifically global error handling, and the values themselves can be textual, numerical, lists or secrets.&#x20;

As the key feature of Environment Variables, each Environment in your Frends Tenant can receive separate values for the same variable. This makes it easy to develop and test the integrations using test values and other test environments, and when the Process is ready, it can be deployed to production without any changes to the Process itself, because the Environment-specific values are defined separately and centrally in Environment Variables.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2F4c40jxry4htAO8BnrtXT%2Fscreenshot-rocks%20(27).png?alt=media&#x26;token=15bf2749-6aed-4783-a9e1-cd90948b565a" alt="Using environment variables is recommended for example for connection parameters."><figcaption><p>Using Environment Variables is recommended for example for connection parameters.</p></figcaption></figure>


# Maintenance & Support

Frends services are constantly being monitored and taken care of.

The Frends Cloud services are being monitored and managed by the Platform Operations team. Here's an overview of what is being done and at what frequency.

## Maintenance

Cloud-hosted Frends resources are updated in line with our [release cycle](https://app.gitbook.com/s/JWYUN85OO0IZ4nL8cUjc/version-numbering).&#x20;

For customers with hybrid configurations (Cloud and On-Prem Agents) we arrange a suitable time/date to update the Frends Core service and Agents in order to synchronize the update of On-Prem resources.

OS and Security updates for Cloud Agent are kept in line with Microsoft’s monthly patching cycle.

To avoid Agent downtime during patching we recommend using load balanced Agents in a high availability configuration for production environments.

### Database Maintenance

Log and configuration databases for Frends Tenants are periodically maintained by purging old Process Instance logs, including Instance header data and promoted values, and reorganizing the indices. This is automated for both cloud and self hosted instances of Frends. Note that Process Instance step data is uploaded to Azure Blob Storage, allowing less data to be stored on each Agent's database.&#x20;

By default, the Process Instance purge and index reorganization will be run on Log Service startup, and is rescheduled to run every 24 hours after finishing successfully. The purge will delete Process Instances older than what is set as the retention period by log settings for each Agent Group, which is up to 60 days.

The purge is done by executing the stored procedure `PurgeProcessHistory`. The purge procedure has a 30 minute timeout and if it cannot finish or an error occurs the execution is retried after 30 minutes up to five times by default.

You can configure the maintenance actions with the following optional settings in `deploymentSettings.json` when installing an Agent. These settings should be put directly under the root `settings` node:

* **maintenanceTimeWindowStart** - string with a format of "\[hour]:\[minute]:\[second]", e.g. 00:30:00 for half past midnight
* **maintenanceRetryCount** - number
* **disableDatabaseMaintenance** - boolean, set to true if you have set up your own scheduled cleanup and maintenance procedures.

### Backups

Frends Databases (LogStore, ConfigurationStore) have Point-in-time-restore and geo-redundant backups with 30 day retention. ConfigurationStore have an additional off-site backup with 7 day retention.

## Monitoring

All Frends Cloud resources are monitored around the clock with alert thresholds set for key metrics.

### HTTPS Endpoints for Monitoring

Each agent can have status and monitoring HTTPS endpoints enabled for them, where status and metrics of the Agent can be read from. The endpoints are enabled by configuring HTTPS for the Agent, or by setting `HttpStatusinfoPort` option in [Agent application settings](https://app.gitbook.com/s/1H5SQ92uIfBOYNIeoUAc/architecture/agent-application-settings). API key authentication for the endpoints can be configured by `HealthCheckApiKey` option. If enabled, API key is to be provided in the HTTP request headers with name `health-check-api-key`.

With the base URL set to be your Agent's base URL, the `/frendsstatusinfo` endpoint can be used to check if the Agent is running and not paused, and the response message also contains a message of agent health, executing processes, and memory usage. Information is provided as JSON so it can be used to create automated monitoring.

For additional Agent metric details the `/metrics` endpoint can be used, which exposes metrics in Prometheus format for scraping by third-party monitoring tools. This endpoint provides infrastructure-level metrics including HTTP client operations, SQL client operations, and Agent health indicators.

For guidance on creating monitoring dashboards, see [How to create Grafana dashboard for Frends](https://app.gitbook.com/s/0p415NUmUmiF4ayjI81L/integration-management/how-to-create-grafana-dashboard-for-frends).

### OpenTelemetry Integration

Frends Agents support OpenTelemetry Protocol (OTLP) for exporting metrics and distributed traces to modern observability platforms such as Grafana, Datadog, Splunk, and Honeycomb. OpenTelemetry is enabled through [Agent application settings](https://app.gitbook.com/s/1H5SQ92uIfBOYNIeoUAc/architecture/agent-application-settings) and requires an OpenTelemetry Collector to receive and forward telemetry data.

OpenTelemetry provides two types of telemetry data: **metrics** (Agent health, HTTP client operations, SQL client operations, and infrastructure-level performance data) and **traces** (health check endpoints, SQL database operations, and outbound HTTP requests). This infrastructure-level monitoring does not include Process-level execution data, Task performance, business metrics (promoted variables), or custom KPIs. For Process-level metrics, use the Frends Platform API.

The `/metrics` endpoint allows monitoring tools to pull metrics via HTTP scraping, while OpenTelemetry pushes both metrics and traces to a collector using the OTLP protocol. HTTPS endpoints are simpler to set up and suitable for basic monitoring. OpenTelemetry provides distributed tracing and standardized integration with observability platforms. Both can be used together for comprehensive monitoring coverage.

For detailed implementation instructions, see [How to visualize Frends telemetry with OpenTelemetry](https://app.gitbook.com/s/0p415NUmUmiF4ayjI81L/integration-management/how-to-visualize-frends-telemetry-with-opentelemetry).

### Self-hosted Agents

For self-hosted Agents the monitoring is provided by the above-mentioned endpoints, as well as by any monitoring tools available in the Agent machine's operating system. For example, Windows Performance Counters can be used to retrieve agent status information.

### PaaS Agents

Frends Cloud Agent monitoring services include:

#### Frends Heartbeat Monitor Service

* Agent Service Availability

#### &#xD;Azure Log Analytics Agent (30 Day retention)

* Event logs (System/Application)
  * Error Events (OOM)
  * Service Failures
* Performance Counters (Ingested by Azure Log Analytics)
  * Memory
  * CPU
  * Page File
  * Threads
  * Disk
  * Frends Process Executions
  * Frends Process Logging
  * Network IO

#### &#xD;Application Insights

* Availability Checks
* Monitor Agent API Endpoints (Ports 80 and/or 443)
* 5 Second ping from 5 geographically different locations

### Frends Core & UI

Monitoring for the Frends Core services and the UI includes:

#### Web UI

* Performance Counters (Ingested by Azure Log Analytics)
  * Memory
  * CPU
  * Response Time
* Application Insights (Ingested by Azure Log Analytics)
  * Application Exceptions
  * Availability Checks
    * Monitor Frends UI
    * 5 Second ping from 5 geographically different locations

#### Azure Storage&#xD;

* Performance Counters (Ingested by Azure Log Analytics)
  * Usage
  * Latency
  * Ingress/Egress
  * Transactions
  * Availability

#### Database

* Performance Counters (Ingested by Azure Log Analytics)
  * Storage Usage & Growth
  * DTU Load

#### Service Bus&#xD;

* Performance Counters (Ingested by Azure Monitor)
  * Inbound/Outbound Messages
  * Requests
  * Connections
  * Active Messages
  * Inbound/Outbound Queue Size
  * Errors (User/Server)
  * Dead Letter Count
  * Message Count
  * Throttled Requests


# Recovery from Disaster

How your services are recovered after a disastrous event.

Frends has built comprehensive disaster recovery capabilities into the platform to ensure your integrations keep running even when things go wrong. This page explains how we protect your data, what happens during a disaster, and what you can expect based on your service tier.

## Recovery Objectives

When disaster strikes, two things matter most: how quickly we get you back online (RTO) and how much data you might lose (RPO).

**Recovery Time:** Enterprise and Infinite tiers get the fastest recovery, followed by Business tier, then Startup and Growth tiers. Basic tier operates on best-effort recovery. For catastrophic multi-region failures, recovery times are longer across all tiers. These are objectives that guide our planning—not legal guarantees—though SLA percentages still apply.

**Data Protection:** Across all tiers, we target minimal data loss for standard scenarios through continuous database transaction logs. Only catastrophic failures affecting multiple regions would result in significant data loss.

**Availability:** We target high availability for all tiers, with Enterprise and Infinite getting the highest uptime commitments. This translates to minimal downtime per year, which is why we invest heavily in redundancy and automated failover for premium tiers.

## Data Protection and Backups

The foundation of good disaster recovery is solid backups. We use Azure's enterprise-grade backup infrastructure with Point-in-Time Restore capabilities, meaning we can restore your database to any recent moment—like a time machine for your data. Backups happen automatically and continuously in the background.

All data is geo-redundant, stored in multiple Azure regions simultaneously. Your data exists in triplicate within your primary region and is continuously replicated to a secondary region. If an entire Azure region goes offline, your data remains safe and accessible.

**Database Backups:** The LogStore and ConfigurationStore have point-in-time restore and geo-redundant backups. The ConfigurationStore—which holds all your process definitions and settings—gets extra protection through off-site backups stored separately from the main Azure infrastructure. This is critical for surviving catastrophic failures and gives us the ability to rebuild your entire Frends instance from scratch.

We keep process definitions indefinitely, execution logs for a configurable period (typically up to two months based on your Agent Group log settings), and audit logs for at least a year. Process Instance step data is uploaded to Azure Blob Storage to minimize database storage requirements.

**Task NuGet Package Backups:** Task NuGet packages are stored in an internal repository backed by Azure Blob Storage with Read-Access Geo-Redundant Storage (RA-GRS), ensuring they are stored in triplicate and replicated to a secondary region. The ConfigurationStore database tracks these versions and is protected by continuous point-in-time restore capabilities and off-site backups, allowing for a complete rebuild of the task catalog even if the primary infrastructure is lost.

## High Availability Architecture

The best disaster recovery is preventing disasters from affecting you in the first place. We've built high availability into the Frends architecture using Azure's Availability Zones—services spread across multiple physically separate data centers. If one data center fails, the others keep running.

Cloud Agents run on virtual machines across these zones with load balancers distributing traffic. On the database side, Azure SQL Failover Groups provide automatic failover to a secondary region. The web application runs in active-passive configuration with Azure Traffic Manager monitoring health and redirecting traffic as needed.

For Enterprise and Infinite tier customers, Agent High Availability configuration is available. This requires multiple agents in the same group, a load balancer, and a shared database for synchronization. With this setup, all trigger types can be handled by any agent in the group. Without a shared database, some trigger types only run on the primary agent while others are distributed—a trade-off between setup complexity and full redundancy.

## When Disaster Strikes

Despite all the preventive measures, disasters happen. We follow a three-phase response process that's been tested regularly.

**Response:** Our monitoring detects issues immediately and alerts on-call engineers. We assess the situation, initiate recovery, and start customer communication quickly. Critical issues get immediate attention, less severe issues get progressively longer response windows.

**Resumption:** We recover services by activating failover systems, restarting agents, or restoring databases. Throughout this phase, we validate that recovered services work correctly and your integration processes execute as expected.

**Restoration:** Once stable in the recovery environment, we conduct root cause analysis and plan the rollback to primary infrastructure. Every incident ends with a post-incident review where we document lessons learned and update procedures.

### Agent Recovery

**Frends PaaS Agents:** If a PaaS Agent machine is destroyed, it can be recreated and configured to use the existing Azure SQL database within about half an hour. PaaS Agents are designed to be transient and easily recreatable. If there are customizations like VPNs or certificates on the Agent machine, those need separate handling.

**Self-Hosted Agents:** Recovery depends on your backup configuration. Reinstalling an Agent on a new machine and synchronizing it will re-establish the same Agent from Frends' perspective. Any customizations like firewall settings or certificates must be reconfigured unless the machine is recovered from backup.

When Agents operate without database connectivity, they continue executing integrations based on their cache and attempt to reconnect. This state can't be sustained long—restarting the Agent will clear its cache. Without database access, Agents cannot execute Schedule or File Triggers.

### Database Recovery

**Configuration and Log Stores:** The Configuration Store is the most critical database for Frends survival—it's backed up both in Azure and off-site. The Log Store is backed up in Azure. When these databases crash, Agents continue operating independently, though the Service Bus may fill up and stop processing messages while databases are down.

**Agent Databases:** Agent databases for PaaS Agents are backed up in Azure and can usually be recreated when needed. However, if an Agent database is recreated, File Triggers may re-execute if files haven't been moved from their directories. When Agent databases crash, Agents lose the ability to execute Schedule or File Triggers.

### Service Bus Recovery

Even when the Service Bus connection is down, Agents continue executing integrations normally. However, remote Subprocesses cannot execute as they rely on Service Bus connectivity.

During Service Bus outages, Agents store log data locally until reconnection. Extended outages may cause Agents to run out of local storage space. Additionally, Agents cannot communicate with Frends Core while the Service Bus is down, meaning activity updates won't appear in the UI and Process deployments won't reach Agents until Service Bus is restored.

### Task Recovery

In the event of a disaster or if you need to revert to a previous version of a Task, the locally stored NuGet package can be used for re-importing. Tasks can be managed and imported from the **Administration** > **Tasks** menu in the Frends UI.&#x20;

In a disaster, Frends initiates a failover to the secondary region by synchronizing the geo-replicated storage and restoring the ConfigurationStore database from the latest point-in-time or off-site backup. This process recovers all process definitions and the metadata required to link them to their specific task versions in the recovered repository.

Agents then automatically pull the necessary task packages to resume operations, while any missing or custom packages can be manually re-imported through the administration interface if necessary.

### Regional Outage

If an entire Azure region fails, recovery is largely automated. Databases failover to the secondary region, Traffic Manager redirects web traffic, and our team verifies everything works correctly before notifying customers. This typically takes several hours.

### Catastrophic Failure

Complete platform failure requiring full restoration is extremely rare. In total destruction scenarios, the Frends Environment can be recreated from the Configuration Store database backup kept off-site. Recovery involves provisioning new infrastructure, restoring all databases, deploying applications, and validating everything—typically a day-plus process.

## Disaster Recovery Testing

We don't wait for disasters to test our recovery procedures. Regular testing includes monthly backup verification, quarterly database restoration to test environments, and annual full disaster recovery rehearsals where we recover the complete platform in a secondary region. After every incident, we conduct post-incident reviews to document lessons learned and continuously improve our procedures.

## Your Responsibilities

**Cloud Customers:** We handle disaster recovery entirely. You should understand your tier's RTO and RPO, test your integrations after recovery events, document external dependencies, and provide timely incident feedback.

**On-Premise/Hybrid:** Responsibilities are shared. You handle infrastructure, database backups, network redundancy, and agent deployment. We provide configuration guidance, the Database Initializer tool, technical support during recovery, and assistance with process restoration. For hybrid configurations with Cloud and On-Prem Agents, we coordinate updates to synchronize your resources.

## Getting Help

**Cloud Customers:** Check the Frends Status Page and contact Support through your standard channel. Critical incidents are automatically detected and escalated.

**On-Premise Customers:** Follow your organization's incident response procedures, then contact Frends Support for technical assistance.


# Frends Runtime

Agents performing the Processes you created.

The Frends runtime environment is built upon Agents, that execute your Processes. Agents working together as an Agent Group allow simultaneous execution and load balancing, and different Environments provide common values and settings for the Agent Groups.

## Agents

Agents are the executable software of Frends, performing the Processes as C# executables in the server or environment they have been deployed to. Environments and Agent Groups are mostly logical containers and visual elements tying things together for the user, and Agents are deployed as part of your infrastructure and then connect to your Frends Tenant as part of Agent Groups and Environments.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FMLW7lqNfSb34P9MCLqIF%2Fimage.png?alt=media&#x26;token=0f4f681e-d0f0-498e-b658-8731c4990db3" alt=""><figcaption><p>Agents are defined as part of Agent Groups, which are contained within Environments.</p></figcaption></figure>

### Types of Agents

Depending on where and how the Agent is installed to, it can be classified either as Frends Cloud Agent or Self Service Agent. Frends Cloud Agents, also commonly called only as Cloud Agents, are automatically deployed Agents that reside in Frends Cloud Environment. Unlike Self Service Agents, which are Agents installed by our customers into their own infrastructure, Cloud Agents are managed and monitored by Frends Platform Operations team.

Self Service Agents, which are also often called On Premise or Ground Agents, are installed and managed by the customers themselves. They can also be installed to cloud environments as well as to your local hardware, depending on your needs. It's also perfectly possible to mix and match different deployments, creating a hybrid deployment of Frends.&#x20;

You can learn more about different deployment models at [deployment-models](https://docs.frends.com/docs/hybrid-integration-architecture/deployment-models "mention") page.

In order to determine the types of Agents installed in your Frends Tenant, you can head over to **Administration > Environments** page, and browse the Agent Groups. A good naming scheme will provide you with information about usage and location of the Agents and Agent Groups, and the UI will also show a small cloud icon next to Frends Cloud Agents. To differentiate the types of Agents further, Cloud Agents will not have any settings available to them in the Control Panel, whereas multiple configuration options exist for Self Service Agents.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2F1RGuOsza7I5QPmWSZ60p%2Fimage.png?alt=media&#x26;token=d28298b8-f6e2-4d83-9201-c7baff7eb4b9" alt=""><figcaption><p>A Frends Cloud Agent will show a cloud icon next to its name in Environments page, along with its version.</p></figcaption></figure>

### Cross-Platform Agents

Another way of differentiating Frends Agents is by the targetable operating systems and supported .NET versions.&#x20;

The latest model of Frends Agent is the Cross-Platform Agent, which can be installed to any operating system that supports .NET platform. Windows and Linux are generally supported at least, alongside containerized environments. Cross-Platform Agent supports .NET Standard 2.0 and .NET 8 as target frameworks for Processes.

The legacy version of Agent supports either .NET Standard 2.0 and .NET Framework 4.7.1, but can only be run on Windows operating systems. As the naming suggests, only legacy support is provided for these Agents, and it is highly recommended to use Cross-Platform Agents moving forward.

To determine whether you are using Cross-Platform Agents or Legacy Agents, you can see this from the **Advanced Settings** for Agent Group in **Environments** administration page. If **Cross-Platform** option is turned on, all the Agents in that Agent Group have to be Cross-Platform Agents. Otherwise all the Agents should be Legacy if the option is turned off.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2Fe8PLiojky2QhKNXyDZqG%2Fimage.png?alt=media&#x26;token=882d526e-1d01-4e7e-b506-92403a4887bf" alt=""><figcaption><p>The Cloud Development Agent Group has been updated to be Cross-Platform.</p></figcaption></figure>

### High Availability

While most deployments contain only one Agent for each Agent Group, it's possible to deploy multiple agents into High Availability configuration, which along with a load balancer can split the executions and load on to multiple Agents. This allows for more performance and better availability of your integration service through horizontal scaling. Containerization can be used with this configuration to dynamically launch new Agents if required.&#x20;

Learn more about High Availability configuration [here](https://docs.frends.com/docs/hybrid-integration-architecture/high-availability).

### Gateway Agent

Gateway Agents, or API Gateways are specialized Agents that perform load balancing and proxying for your APIs.

They can be used to securely publish your APIs to public use, while securing your Agents and servers by not allowing direct connections to them from the outside. The Gateway Agent accomplishes this by handling the incoming connections, and only directing valid API requests for handling in the Processes on the actual Agents.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FBjJmqk4sZ67DfIJIGVnS%2Fscreenshot-rocks%20-%202025-09-29T092335.522.png?alt=media&#x26;token=fb182b55-c74b-4932-872d-9bd636a9e520" alt=""><figcaption><p>Gateway Agent publishes your API endpoints without revealing the actual Agents.</p></figcaption></figure>


# Deployment Models

You can deploy your Frends installation in most ways possible.

Because Frends is built upon central management UI and distributed Agents performing the actual execution, we provide and support almost any combination of deployment types available.

## Self-hosted Deployment

Starting with the basic type, in self-hosted deployment the Agents reside on your own servers and computers as a service, or in your own cloud environment outside Frends cloud. Along with .NET runtime it will handle the triggering of Processes. This type of deployment setup can also be called on-premise deployment, in case the Agents are installed solely to your own on-premise server environment. You can of course mix and match between these as needed.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FClAmZAqbrstvK63Jiluo%2Fscreenshot-rocks%20-%202025-09-29T092253.687.png?alt=media&#x26;token=a0831f76-2ae5-4183-b9f1-35440b752a81" alt=""><figcaption><p>Self-hosted environment with High Availability enabled.</p></figcaption></figure>

In this deployment type, connections to your Frends Tenant are done through Azure Service Bus messaging. As the Frends UI is solely used for development and other management tasks, for example API calls will be connected directly to your environment and Agents instead of going through Frends's cloud environment where the UI resides. Even in the situation where the Frends UI would be unavailable, the Agents will continue execution without problems.

In case interoperability between Agents are required, for example when calling Subprocesses remotely over Agent Groups, these are also coordinated over the Service Bus messaging instead of direct connections between the Agents performing the execution.

Self-hosted deployment is essential when you require strict data sovereignty, compliance, or have security requirements that disallow the data being located outside your internal network or geographic location. In this deployment model you are also in full control of the infrastructure, maintenance, updates and monitoring, so while it provides more control over the environment, it also presents additional required actions to perform.

## PaaS Deployment

In case you simply want ease of use from your integration platform, Frends also provides full Platform as a Service deployment. In this deployment model, also known as Frends Cloud deployment model, the Agents will be created to Frends cloud environment by Frends Support, and the support is also then responsible for managing and maintaining your Frends execution environment.&#x20;

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FIcg20685AZMyYzA7JTSe%2Fscreenshot-rocks%20-%202025-09-29T092306.028.png?alt=media&#x26;token=2c85d665-418c-4d85-9e91-8c3cc1437f92" alt=""><figcaption><p>PaaS Agents are located within Frends Cloud.</p></figcaption></figure>

Because Frends will take care of the infrastructure, you can focus on being creative and create all the integrations you need, and expect them to work and run flawlessly. Because the execution environment is in the cloud, connectivity to and from outside sources will not require any additional setup or thought, it just works.

While you will not have direct control over where your Processes are executed and thus your data processed, rest assured that we have taken every action possible to keep the environment secure and up to date. Depending on your subscription tier, you can control geographically where your environment is hosted, in order to keep up with legislation about data processing and storage. With higher tier you can also select how the resources for your execution environment are shared.

While resource sharing might sound scary, different Tenants cannot access each other's data in any event, even if they are processed on the same shared resources.&#x20;

## Container Deployment

With the latest versions of Frends, support for containerized deployments of Frends Agents has been improved greatly.&#x20;

While it has long been possible to deploy Agents as containers in Kubernetes clusters, latest versions added support for dynamic launching of additional containerized Agents when required by allowing unspecified Agents to connect to Agent Groups at will. This will provide more adjustment options to available resources, increasing performance whenever it is needed, and reducing the Agent count once the highest peak has passed.

While it does not matter if the Kubernetes cluster is located on-premise or in the cloud, it also does not matter if the containerized Agents are used with other on-premise or cloud Agents. In this deployment model you are also allowed to mix different types of Agents together.

## Hybrid Deployment

As has been mentioned on all the different deployment models, mixing different types of deployment plans together is very possible with Frends, and only your own use case will dictate what you need to do and can do.&#x20;

By default, Frends comes with a PaaS cloud Agent as part of the development environment on all tiers. From there, you can either install more Agents to your own server or cloud environment to create a self-hosted deployment, or request more PaaS Agents to be added to your Tenant from the Frends Support as full PaaS deployment. If your pricing tier and contract allows, setting up a Kubernetes cluster for your Agents and having them in High Availability configuration is also possible.&#x20;

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FJEBjhzEsfiq1auAC0fHB%2Fscreenshot-rocks%20-%202025-09-29T092317.297.png?alt=media&#x26;token=8e05004c-0c98-4d95-9f37-6f90b96caaad" alt=""><figcaption><p>You can mix and match Agents in different Environments as needed.</p></figcaption></figure>

Whatever your use case and requirements are, deploying Frends Agents should be possible in most ways. Running a Frends Agent on your own computer is also totally viable method to run Processes locally, although outside connectivity might require some additional setup in that scenario.


# Scalability

Frends can do both wide and tall.

Because of Frends' flexibility in deployment options, it's also good for scaling both vertically and horizontally.

## Vertical Scaling

Because you can choose on what kind of hardware Frends Agent is deployed to, vertical scaling through increasing hardware resources is possible. While each Process will run only on one thread, our Agents are capable of multithreaded performance when running multiple Process Instances at once. And the more resources and processing speed you have, the more you can achieve with each Process Instance.

Depending on your service agreement and pricing tier, more resources can also be allocated for the PaaS Agents located in Frends cloud environment as well. No need to change your deployment type in order to get more performance.

## Horizontal Scaling

By creating new Agent Groups and Agents, you are able to scale your Frends deployment horizontally to achieve more at the same time. Using multiple Agent Groups allows you to decide where each Process is being run and balance the load statically that way.

In order to split the load of running same Process efficiently to multiple Agents, High Availability configuration can be used to allow single Agent Group contain multiple Agents that work together to run the Processes. High Availability configuration contains setup for load balancer and shared database, allowing the load balancer to choose which Agent will execute the Process next.

When in High Availability configuration and using container deployment, it's also possible to dynamically launch new Agent containers as a response to increased load on the Agent Group. Once the peak load has passed, the amount of Agents can then be reduced to save on costs.


# High Availability

HA configuration ensures your services stay available.

In standard configuration, if your server or Agent is unavailable, the integration service will be blocked. In order to avoid down time for your internal and external customers, High Availability configuration can be set up to ensure there will be Agents available to process the requests.

Added bonus of High Availability is the capability to scale horizontally, allowing for more Process executions within the same time window.&#x20;

## High Availability Configuration

In HA configuration, multiple Agents are placed into the same Agent Group, so that they can distribute the Process executions between themselves.

In order to coordinate this workload sharing, a load balancer and a shared database are required for HA configuration. Without the coordination, essentially only one of the Agents within the Agent Group will be executing the Processes, known as Primary Agent in that scenario. Extra setup is thus required before HA configuration can be achieved.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2F3RcrIrwCY5hMUtT9xF1M%2Fimage.png?alt=media&#x26;token=060ca73f-3356-479a-83ef-ccab7a3f1b78" alt="Architectural depiction of High Availability configuration in Frends."><figcaption><p>Depiction of High Availability configuration.</p></figcaption></figure>

Once the configuration is set, the workings of multiple Agents performing the same tasks will become mostly invisible to the end users and developers. In general, developers do not have to worry about the Agent or Agents as they are, instead they are mostly working with Environments and Agent Groups, which already abstracts the Agent performing the actual executions. Processes and APIs are always deployed to an Agent Group and not to a specific Agent, so nothing really changes for the users in Frends.

To see that HA configuration is operational and sharing the workload, you can see this by viewing the Process Instance list for some Process in the HA Agent Group. On the list it will detail, which Agent triggered the Process for each execution, making it visible that different Agents are running the same Process side by side.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FVSsQ9xbwnKznrDlxoE3M%2Fimage.png?alt=media&#x26;token=7e4aed5a-ee33-4ee2-b66c-0dc3dcddf1bd" alt="Process Instance list is about the only place where HA configuration&#x27;s functionality is visible."><figcaption><p>Apart from the triggering Agent in the Process Instance list, HA configuration is invisible to users.</p></figcaption></figure>


# Technologies

Frends is built on Azure Cloud and .NET platform.

If you are interested in learning on what Frends is built on, you've come to the right place. Whether it be for technology maturity analysis or preparing for security audit, here you can get an overview of what technologies Frends uses under the hood.

## .NET Platform

At the core of Frends runtime environment and functionality is Microsoft's .NET platform and C# programming language. All the backend functionality and program code written for Frends is in C#, and all the Processes, Subprocesses and APIs created with Frends are converted and compiled to C# code for execution on the Agents.&#x20;

Especially when creating Processes it will be useful to know the basics of C# programming, to understand what is happening behind the BPMN flow chart. Variables, scoping and data typing all come from C#. While it is not mandatory to be an expert in C# or programming to understand the details of Processes, thanks to C# being such a generic C-like language, creating more advanced logic within Process in a Code Task will benefit hugely from C# and .NET knowledge.

### Newtonsoft JSON

Sometimes called the de facto JSON library for C#, Frends is also heavily built upon the library. Essentially all of the data traversing through Frends Processes will be contained in a Newtonsoft JSON object, be it JObject, JArray or generic JToken.&#x20;

Understanding and learning to use this library will be very beneficial for Process developers due to this deep integration with the library, but it shouldn't be a preliminary requirement to become an integration developer with Frends. It's easy to learn and simple to use, and when working with APIs and other interfaces nowadays, JSON data is very close if not the most common notation for data to use, making the Newtonsoft JSON objects almost more intuitive to use than the builtin data types.

### .NET Versions

Frends targets primarily the latest .NET platform, version 8. The latest versions require .NET Runtime 8.0.15 or later to be installed on the machine alongside the Frends Agent for it to function.

Frends also provides legacy support for .NET Framework 4.7.1 for Windows environments, as well as support for .NET Standard 2.0 compatible cross-platform frameworks. Some older versions also supported .NET 6.0, but this was replaced and upgraded to the current 8.0 in Frends 5.7 and later.

While the older Tasks still exist and can be used in Frends for legacy support, new features and updates to Tasks are only provided for the latest .NET platform.&#x20;

## Azure Cloud

Frends cloud services are hosted on Microsoft Azure Cloud platform. Azure is used for hosting the Frends Control Panel, orchestrating Agents, and providing cloud-native scalability for the PaaS Agents.

While on the lower pricing tiers the resources within Azure are shared in a multi-tenant cloud, by purchasing the higher tiers you will receive an option to have private resources, meaning more capacity just for your Tenant, and less interruptions and effects from other Tenants during peak load times. It's also possible to purchase more resources for your Tenant in order to scale the performance vertically, to support larger data amounts and heavier computations for single Process executions.

With higher pricing tiers you can also choose the geographic location for your share of the cloud.

If you choose to create a deployment with self-hosted Agents, Azure Cloud will still be used to host the Frends UI and orchestrate the Agents in your Frends Tenant. For your data this means that Processes execute and handle data mainly within your hosting environment on the Agents, but some logging options and for example remote Subprocess executions in Processes can transfer some of your data to the Frends cloud.

## Azure Service Bus

Frends uses Azure Service Bus as a secure and reliable message bus to connect its Agents with the Frends Control Panel. This approach allows Agents to communicate using only outbound connections, which simplifies firewall configuration and enhances security as there is no need to open inbound ports. All communication is encrypted and authenticated, ensuring data protection.

Using Azure Service Bus also brings operational benefits. It enables reliable message delivery, even if an Agent is temporarily offline, and supports scalable deployments with multiple Agents and High Availability configuration. This is specifically important for hybrid and cloud delpoyment models, allowing your on-premise environment to stay secure even when the UI is hosted outside in Frends cloud.

## Azure AI Services

Frends integrates with Microsoft Azure AI services to deliver its intelligent automation capabilities. The primary integration point is the Frends Intelligent AI Connector, which utilizes the Azure AI Inference API to access advanced large language models like GPT-4o and GPT-5 for sophisticated reasoning and chat completion tasks. Azure AI powers both the Intelligent AI Connector for embedding AI capabilities directly into integrations, as well as the suite of AI assistants that enhance the development experience. These assistants include the AI Task Configurator for suggesting Task parameters based on natural language descriptions, the AI Code Generator for creating C# code snippets tailored to Frends Processes, and the Documentation Generator for automatically creating comprehensive Process documentation with a single click.

This approach allows developers to easily incorporate advanced AI functionalities such as text analysis, data extraction, translation, and intelligent search directly into their integration Processes. For organizations with strict data sovereignty needs, Frends also supports using on-premises AI model deployments through Ollama for the AI Connector, offering a flexible and secure solution for any environment.

## BPMN 2.0

Frends Process Editor utilises a subset of Business Process Modeling & Notation (BPMN 2.0) notation to create the Processes in Process Editor. The user interface and visual building elements of the Processes are part of BPMN 2.0, while the functionality and C# code are added to the elements by Frends, to create the Processes you can run on the Agents.

As an added feature, the BPMN part of your Frends Processes can be exported as BPMN XML, allowing you to document your Processes in other systems that support BPMN notation. This will not include the functionality, meaning the C# content, of the Process though.&#x20;

While it is also possible to import BPMN XML from other systems to create Frends Processes, due to Frends supporting only a subset of BPMN elements, it's likely that the import will not produce the expected results. And again, because the C# code and functionality within the BPMN are unique to Frends, the imported BPMN flow chart will not include any functionality and will have to be created from scratch.

While the BPMN import and export only handle the BPMN part and not whole Frends Processes with their code and functionality, Frends does provide separate means of exporting and importing specifically Frends Processes, that can be transferred from one Frends Tentant to another.

## Containers

Frends utilises Docker to create containers for Agent deployments. The containers can then be used within Kubernetes cluster for orchestrating the Agent containers as well as for horizontal scaling.

For the scaling to work properly, High Availability configuration is required to be set up for the Agent Group the containerized Agents will participate in.


# Integration Security

Securing your integrations on Frends Platform.

It is important to consider security when designing integrations. Frends can transfer confidential data between systems, and all the necessary efforts should be taken to prevent the data from being accidentally deleted or modified, or deliberately misused or stolen. The following sections describe the best practices to use when designing and developing secure integrations.

## Access to Frends Tenant <a href="#h_1f8b229cb3" id="h_1f8b229cb3"></a>

Due to the nature of the integration platform, Frends users may be able to gain access to external systems and sensitive data regarding integration processes. This is why the user list and the users' roles must be kept up to date and no user should have a role they do not need. For auditing purposes, it is important to have an up-to-date list of authorized users.

It is best to attach the authentication for Frends Control Panel to the customer's own Azure AD in order to have full control of who can log in to Frends Control Panel. Also this way it is possible to enable multifactor authentication.

## Credentials and secret values <a href="#h_59e65c8ad6" id="h_59e65c8ad6"></a>

Usernames and passwords are recommended to be stored in Environment Variables. Passwords should always use the type secret in the variables. Every secret and password value should consist of at least twelve characters with at least one upper case letter, one lower case letter, one number, and one special character. There should be a different password for every Environment and every external system.

When creating a new Process, the developer creates the Environment Variables for the credentials, and Company’s integration owner or another person that has access to the credentials fills them in in Frends. Passwords or any other secret values should never be distributed with the related username or ID. Any secret value is not allowed to be sent in clear text or an unencrypted email.

## Security considerations within Processes <a href="#h_a22d6f9547" id="h_a22d6f9547"></a>

If production data is to be used for testing it should be masked to protect personal identifiable information (PII) and commercially sensitive data.

Only encrypted transfer protocols such as HTTPS and SFTP should be used.

### API Development

In API development it is recommended to use OAuth for authentication and API key for authorization. Other security considerations for APIs are:

* IP address filtering
* Rules for allowing and denying CRUD operations
* Limiting transaction amounts
* Blocking faulty headers
* Input parameter validation

### Using SQL <a href="#h_a7282af4dc" id="h_a7282af4dc"></a>

When using SQL in Processes, it is recommended to use parametrization and other SQL-related security practices to avoid SQL injections. SQL Tasks in Frends include built-in fields for entering parameter values to help with this.

### Using LDAP

When using LDAP tasks in Processes with user-provided input, it is recommended to sanitize input values to avoid LDAP injection attacks. Special characters such as `*`, `(`, `)`, `\`, and `/` should be escaped before using them in LDAP filter fields.

### Processing XML

When processing XML from untrusted sources, it is recommended to disable external entity processing to avoid XXE (XML External Entity) attacks. Tasks such as `Frends.XSLT.Transform` include options to disable external entities. XML should be validated against known schemas where possible.

### Executing Commands

When using PowerShell or Python execution tasks with user input, values should never be concatenated directly into command strings. Use `ProcessStartInfo.ArgumentList` with validated input parameters and avoid `UseShellExecute = true` when possible to prevent command injection.

### File Path Handling

When handling file paths from user input, it is recommended to validate paths against allowed directories and sanitize file names to remove path traversal characters such as `..`, `/`, and `\`. File paths should be verified to remain within intended directories using absolute path validation.

### HTTP Headers

When constructing HTTP headers with user-provided values, it is recommended to remove newline characters (`\r`, `\n`) to prevent header injection attacks. URLs from user input should be validated to ensure they use allowed schemes and do not target internal IP ranges.

### Logging User Input

When logging data that includes user input, sensitive information should be masked and input should be sanitized to prevent log injection. Newline characters should be removed and log entries should be limited in length. Passwords, API keys, and authentication tokens should never be logged.

### File Uploads

When processing uploaded files, it is recommended to validate file types by content (magic bytes) rather than file extension alone. File size limits should be implemented and file structure should be validated before processing.

### URL Parameters

When using user-controlled URLs in HTTP tasks, it is recommended to validate URL schemes and block access to internal IP ranges to prevent SSRF (Server-Side Request Forgery) attacks. Only HTTP and HTTPS schemes should be allowed unless specifically required.

## Logging and Archiving <a href="#h_b5b85d94cf" id="h_b5b85d94cf"></a>

Frends enables easy and comprehensive logging features for the Processes for easy development and debugging of Processes, but for production use logging and archiving the handled data is recommended to be disabled.&#x20;

The log level for the Production Environment should be set to "Only errors". APIs that handle sensitive data should be designed and implemented so that it is possible to log only the error and no other content of the message when an error occurs. Logging other data than errors should be carefully considered.

### GDPR

General Data Protection Regulation (GDPR) requires companies to protect the personally identifiable information (PII) of their employees, customers, and third-party vendors. For example, the following can be considered as PII:

* Full name
* Home address/mailing address
* Email address
* Credit card numbers
* Date of birth
* Phone numbers
* Login details
* Precise locations
* Account numbers
* Security codes
* IP addresses
* User IDs
* E-commerce order IDs

When logging or archiving PII, the following should be considered and documented:

* What data is collected and why
* Where the data is stored
* Who has access to the data
* What does the legislation say about storing the data
* How long it is meaningful to store the data
* When deleting the data, possible error situations should be taken into account
* Is it possible to delete data according to certain criteria, e.g. name or email address?

The integration owner should maintain a list of users that have access to the integration logs and archives.

## High Availability <a href="#h_5f91418887" id="h_5f91418887"></a>

Having two or more Agents allows them to share the load, and ensures that services are available even if some event, like operating system updates or a huge peak in load, renders one Frends Agent unavailable for a moment.

Usually, if Frends Agents are used to delivering integrations to some critical or "real-time", e.g. mobile, application it is advisable to use multiple Agents in production.


# Compliance

Frends is built to be compliant at foundational level.

The Frends integration platform is built with regulatory compliance as a foundational principle, ensuring organizations can meet their legal and industry-specific requirements while maintaining operational efficiency.

## GDPR and Data Protection Regulations

Built with European regulations in mind, Frends provides comprehensive support for GDPR compliance. The platform offers data residency controls, including EU-only hosting options, ensuring that personal data remains within specified geographical boundaries as required by data protection laws. Organizations can process data entirely on-premises through the hybrid deployment model, maintaining complete control over where sensitive information is stored and processed.

The platform includes specific features for handling Personally Identifiable Information (PII), with configurable logging controls that prevent sensitive data from being inadvertently stored in system logs. This approach helps organizations meet the data minimization and purpose limitation principles central to GDPR and similar privacy regulations.

## Industry Standards and Certifications

The platform has ISO 27001:2022 certification, the international standard for information security management systems. This certification validates that Frends maintains a systematic approach to managing sensitive information and ensuring its security through people, processes, and technology controls.&#x20;

ISO 9001:2015 and 14001:2015 certifications demonstrate that Frends has implemented internationally recognized management systems to ensure consistent quality in its products and services, while also actively minimizing the environmental impact of its operations. These certifications reflect a strategic commitment to continuous improvement, regulatory compliance, and stakeholder satisfaction. By aligning its processes with ethical principles and sustainability goals, the company reinforces its dedication to responsible business practices that benefit customers, communities, and the planet.

## EU AI Act Compliance

As the European Union's Artificial Intelligence Act comes into effect, Frends is positioned to help organizations meet these emerging regulatory requirements through its AI governance framework. The platform's approach to AI transparency and explainability directly addresses key AI Act provisions, particularly for high-risk AI systems that require human oversight and clear audit trails.

Frends' AI reasoning logs provide detailed documentation of every AI decision-making process, capturing the "thought process" behind each automated action. This level of transparency is essential for AI Act compliance, as it enables organizations to demonstrate that their AI systems operate within defined parameters and can be audited for bias, accuracy, and fairness. The platform's hybrid deployment model also supports data localization requirements, allowing organizations to keep AI processing within EU boundaries when required.

The semi-deterministic AI orchestration approach used in Frends ensures that AI operates within controlled workflows, with human oversight capabilities built into the process design. This architectural approach aligns with the AI Act's emphasis on human-centric AI systems and provides the governance framework necessary for deploying AI in regulated environments while maintaining compliance with European AI regulations.

## Audits and Testing

To continuously validate our security posture, Frends undergoes regular and rigorous testing. We conduct regular internal vulnerability tests and engage a qualified third party operator for an annual platform-level penetration test. Any identified vulnerabilities are addressed based on their risk and severity.

These certifications operation models provide organizations with the confidence that Frends meets internationally recognized standards for security and operational excellence, facilitating compliance with their own regulatory obligations and enabling them to demonstrate due diligence in vendor selection and management.


# API Security Features

Frends APIs are built with ease of use and security in mind.

Frends is committed to providing highly secure and reliable API management services. We use proven technologies, robust practices, and established procedures to ensure your data and services are protected.

## Network Security

To ensure all data transmitted to and from the Frends platform is secure, we enforce several network security measures. The Frends Platform is accessible only over HTTPS protocol, which encrypts all traffic and protects it from interception by unauthorized parties. We follow the current best practices, including the use of strong encryption algorithms of at least 128 bits.

When connecting to on-premises systems, access is managed via a Frends Agent installed behind your firewall. This Agent communicates with the Frends cloud over a secure, encrypted link using TLS 1.2.

Our platform uses a multi-tier architecture that segregates internal application systems from the public internet. All network access is restricted by firewall rules and logged in a secure, centralized system to ensure a controlled and monitored environment.

## Authentication and Access Control

Frends provides multiple robust methods to authenticate and authorize callers to your APIs, ensuring that only legitimate clients can access your endpoints. The primary methods supported are API keys and OAuth 2.0 with external authentication provider or Frends built-in private tokens, with options for Basic Authentication and client certificates also available.

In Frends, each authentication and authorization method is Environment or Agent Group specific and its access rights are defined by one or more API Policies. An API Policy is a collection of rules that grant access to specific URL paths and HTTP methods, allowing for granular control over what each method can do. You can also configure request throttling on a per-identity basis to prevent abuse.


# Firewall Management

Manage access to your Frends for each Agent.

Proper firewall management is a cornerstone of a secure integration environment. Frends is designed with a security-first architecture that provides robust controls for managing network traffic, whether your agents are in the cloud or behind your own corporate firewall.

## Network Architecture and Segmentation

The Frends Platform is built on a multi-tier architecture that segregates internal application systems from the public internet. All network access, both within our data centers and between the data center and external services, is restricted by strict firewall and routing rules. This layered defense model ensures that critical components are not directly exposed and that all network traffic is controlled and monitored.

## On-Premises Agent Firewall Configuration

A key feature of Frends' hybrid capability is the on-premises Agent, which executes Processes securely behind your firewall. The Agent initiates an outbound connection to the Frends Cloud over an encrypted link using TLS 1.2. This means you typically do not need to open inbound ports from the internet to your network for the Agent to function, significantly reducing your attack surface.

However, if an on-premises Agent is used to host an API or receive HTTP-triggered executions, you nay need to create an inbound firewall rule on the Agent's host server to allow traffic on the configured HTTPS ports. The Frends Agent installer will warn about the need if it won't open the ports automatically that are set in Frends Agent settings in your Frends Tenant.

## IP Allowlisting for Enhanced Security

Frends supports IP allowlisting to further restrict access to your resources. For tenants hosted in specific secure environments like Cleura, IP allowlisting is a mandatory security measure for enabling features like the Platform API. In these cases, you must provide Frends Support with the public IP addresses that require access to the UI and the public IPs of any on-premises Agents.

You can also implement IP allowlisting logic directly within your Frends Processes. For any Process started with an HTTP Trigger, you can inspect the caller's IP address using the `#trigger.data.httpClientIp` reference. By comparing this IP against a list of allowed addresses stored in an Environment Variable, you can build a dynamic and secure allowlisting rule inside your integration logic.

## Static IP Addresses for Cloud Agents

All Frends Cloud Agents come with static public IP addresses by default. This means the outbound IP address your Cloud Agent uses for external HTTP or HTTPS requests stays constant over time. Unlike Azure's default behavior where public IPs can change, Frends explicitly reserves static IPs for all Cloud Agents, so you can safely whitelist them in your firewall rules without worrying about connection failures.

This is particularly useful when integrating with external systems that enforce IP-based access control. The IP won't change during agent restarts, updates, or scaling operations, so once you've configured your firewall rules, they'll continue working reliably.

## Firewall Rules for Agent-to-Agent Communication

When using a Gateway Agent to proxy requests to a backend Agent Group, network connectivity between them is crucial. Firewalls on the Agent servers or in the network must be configured to allow the Gateway Agent to reach the backend Agents on their designated ports, such as 443 for HTTPS connections. You can use network troubleshooting tools like `curl`, `nmap` or `Test-NetConnection` from the gateway server to verify that a TCP connection can be established to the backend Agents.


# Access Control

Give access to only those with a need.

Controlling who can access your integration platform and what they can do is critical for security and governance. Frends provides a comprehensive access control system that allows you to manage user authentication, define granular permissions, and maintain strict oversight of your environment.

## User Authentication

Frends offers flexible and secure methods for user authentication to ensure that only authorized personnel can access the platform. For robust enterprise-grade security, we support Single Sign-On (SSO) with Azure Entra ID (formerly Azure Active Directory, Office 365). This allows your organization to centrally manage user access and enforce custom authentication policies, and it is our best practice recommendation.

For environments not using SSO, Frends enforces strong password policies, including requirements for length, complexity, and expiration, to protect user accounts. To further secure user sessions, the platform supports an automatic session logout after a predefined period of inactivity.

## Role-Based Access Control

Frends implements a powerful Role-Based Access Control (RBAC) system that gives you full control over user permissions. You can define custom roles with specific rights, allowing you to grant users the exact level of access they need to perform their duties, adhering to the principle of least privilege.

This granular control extends to all aspects of the Platform, including access to sensitive logging data and Process monitoring information. By using RBAC, you can effectively segregate duties and ensure that users can only view or modify the resources relevant to their role.

## Controlling Access to Your Data

You have complete authority over who can access your data within the Frends Platform. Using the RBAC system, you can even block access for Frends' own Professional Services employees if they are not actively engaged in supporting your environment.

Only a limited and audited number of Frends personnel have access to backend resources. This access is strictly controlled, requiring secure keys stored in Azure Key Vault, and all backend data is always encrypted. This ensures that your data remains confidential and protected from unauthorized access at all levels.


# Data Encryption

Your data is protected with us.

Protecting the confidentiality and integrity of your data is a fundamental aspect of our Platform. We employ a multi-layered strategy that combines strong encryption, secure data handling practices, and granular controls to ensure your information remains safe at every stage of its lifecycle.

## Encryption In Transit and At Rest

All data moving through the Frends Platform is secured using robust encryption protocols. The platform is accessible only over HTTPS, which encrypts traffic and protects it from interception. For communications with other systems, we support secure protocols like SFTP. When using an on-premises agent, all communication with the Frends Cloud is encrypted using TLS 1.2.

Furthermore, all information stored within the Frends Platform is encrypted at rest. We utilize strong encryption algorithms, such as AES-256, to protect your data while it is stored in our databases, ensuring it is unreadable to unauthorized parties.

## Secure Key Management

The security of encrypted data relies on the secure management of encryption keys. Frends leverages Microsoft Azure Key Vault services for this critical function. All data is encrypted with multiple keys managed by this service, which follows industry best practices for key management and security. This approach ensures that the keys themselves are highly protected and managed according to rigorous standards.

## Data Masking and Secret Management

For an additional layer of security, Frends provides the ability to mask sensitive data within your Processes. When a Task is masked, its input and output are not shown in the Process Instance view and are not stored permanently. This data is only held transiently in memory during processing, preventing sensitive information from being logged.

Sensitive configuration values, such as passwords or API keys, can be stored as secret Environment Variables. These variables are securely encrypted in the Frends database using AES-256. Once a variable is marked as a secret, its value is hidden in the user interface and cannot be viewed again, ensuring it remains protected at all times.

## Data Retention and Control

Frends stores monitoring data from Process executions for a limited time to provide visibility and assist with debugging. The maximum retention period is configurable and does not exceed 60 days. For Processes handling highly sensitive information, you can configure zero retention policy on a per-Process basis. In this case, data is only held temporarily in memory and is not stored after the Process completes.

You also have the capability to download all monitoring data through secure HTTPS endpoints. This allows you to manage long-term storage and archiving according to your own organizational policies and compliance requirements.


# AI Trust & Transparency

Trust is built in with the Frends.

As enterprises increasingly adopt AI-driven automation, Frends has built trust and transparency directly into its integration platform architecture. Rather than treating these as afterthoughts, Frends makes AI governance, explainability, and security foundational elements of every AI-powered integration.

## Transparent AI Operations by Design

Frends eliminates some of the "black box" problem through its [**Intelligent AI Connector**](https://docs.frends.com/docs/frends-development/ai-features/intelligent-ai-connector), which logs every AI decision with complete reasoning traces. When AI makes a decision within a Frends Process, you can see exactly what prompt was sent, how the AI reasoned through the problem, and what conclusion it reached. This transparency extends beyond simple input/output logging to capture the AI's actual chain-of-thought process.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FGPHGEPcNGjdgCRWKUcuI%2Fimage.png?alt=media&#x26;token=14976526-a25b-4ee7-a89a-a8c247a9f493" alt=""><figcaption><p>AI reasoning log for generating an automated response.</p></figcaption></figure>

The platform's BPMN 2.0 visualization makes AI logic part of the visual workflow, so stakeholders can literally see where AI reasoning occurs within the Processes. Instead of hidden AI operations, every AI step appears as a specialized Task shape on the Process diagram, making complex AI-driven workflows transparent to both technical and business users.

In order to facilitate secure AI operations, Frends makes it easy to implement your own tokenization logic for masking personally identifiable information (PII) for use in combination with AI. This in combination with multistep AI operations to ensure validity and information security allows easily creating integrations with AI that are secure and have auditability to ensure trust.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FNjTPdpbCXMUZGbepGi0M%2Fimage.png?alt=media&#x26;token=bf167ce2-4c85-4a18-885a-20d26c33559b" alt=""><figcaption><p>Creating your own tokenization logic for PII, and ensuring answer's validity.</p></figcaption></figure>

## Enterprise-Grade Security and Compliance

Frends ensures AI models never retain or learn from customer data. Frends runs its own dedicated Azure Inference AI instances, keeping data processing securely contained within customer-specific configurations. Only metadata, Process configuration data and variable references are shared with AI models—actual data values from Process executions or reference values never leave the secure Frends environment.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2Frw18xGH2wGlhKQbfPYrc%2Fimage.png?alt=media&#x26;token=952e619e-27f0-48cc-9d22-323a835431cb" alt=""><figcaption><p>All data provided to the AI service is visible and editable by the user.</p></figcaption></figure>

Every AI interaction creates detailed audit logs that track what data was accessed, what decisions were made, and what actions were taken. Administrators can review all AI sessions and even delete log entries containing sensitive information, ensuring compliance with data protection regulations.

<figure><img src="https://421307484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQI65mBosbdweu563CvPI%2Fuploads%2FciAQ2fd0C9ZCoKnegDQU%2Fimage.png?alt=media&#x26;token=3fef6b9e-10fa-4180-b21d-eb6fc0eb7272" alt=""><figcaption><p>AI Audit Logs show all interactions with AI, with details provided on included data.</p></figcaption></figure>

As a European platform, Frends builds GDPR and EU AI Act compliance into its AI features from day one. The platform's reasoning logs and explainable AI decisions align with upcoming EU AI regulation requirements for transparency in automated decision-making. The Frends dedicated AI instances are located in Azure's Stockholm datacenter, making sure any data will never leave EU area.

The AI models available in Frends AI Catalogue have guardrails set and managed by Frends to follow and recognise details governed under AI Act and other legislation, as made possible by Azure Inference API's guardrail options.

## Implementation in Practice

Frends provides AI monitoring in Frends Control Panel where users can monitor AI agent activities in real-time and intervene when necessary. The platform shows token consumption and projected AI costs during both development and runtime, preventing unexpected expenses while maintaining full visibility into AI resource usage.

Critical Processes can still be built to include human in the loop, where the result of AI operation may diverge the Process to contact human personnel for confirmation. This ensures sensitive operations maintain human oversight while still benefiting from AI acceleration. Users can configure workflows that require human approval for high-stakes decisions or allow full autonomy for routine tasks.

Frends supports on-premises AI models through integration with platforms like Ollama, ensuring organizations can keep sensitive data completely within their own infrastructure. This hybrid approach allows companies to balance AI capabilities with strict data sovereignty requirements.

## The Frends Advantage

Unlike platforms that retrofit AI governance onto existing systems, Frends designed its AI capabilities with enterprise trust requirements from the ground up. The platform's semi-deterministic AI orchestration combines the intelligence of AI reasoning with the predictability of structured business processes.

This approach enables organizations to deploy AI in mission-critical environments with the confidence that comes from complete transparency, robust governance, and enterprise-grade security.

Key differentiators include:

* **Visual AI orchestration** within standard BPMN workflows
* **Complete reasoning transparency** with logged decision processes
* **IT-governed tool access** preventing unauthorized AI actions
* **Enterprise security** with data sovereignty options
* **Regulatory compliance** built for European standards

By making AI operations as transparent and governable as traditional integrations, Frends enables enterprises to move confidently from AI pilots to production-scale automation. The result is AI that works for the business, not against it—delivering intelligence within the trust frameworks that enterprises require.


# Getting Started

How to get started with Frends, regardless of your role or task.

Welcome to Frends's getting started section. Frends is an easy-to-use and powerful integration platform (iPaaS) that is designed to support your most critical business needs and that developers like to use.&#x20;

## Introduction

Frends' low-code integration editor makes it easy for anyone to understand the logic behind the integrations, while being powerful enough to make it possible to create anything in the capable hands of integration developers.&#x20;

Having version control and CI/CD capable deployment and environments built in to the platform makes it easy to develop and deploy new features to test and production. Once deployed, the provided logging features show instantly what happened and where.

Are you perhaps interested in creating APIs using Frends? We have full suite of API management features too, built in and always included, just like the other features. Pop in your OpenAPI specification and link a process to each endpoint, and you're ready to get the integration logic flowing through an API. Securely, of course.

## Guides

To get started with your path to success with Frends, we have gathered guides here to take your first step. You can start exploring the paths we have created for your specific situation below.

### The basics

Regardless of your role, you might want to get familiar with [frends-glossary](https://docs.frends.com/docs/get-started/frends-glossary "mention") as well as [frends-highlights](https://docs.frends.com/docs/get-started/frends-highlights "mention") which will help you understand the platform and terminology used better.&#x20;

For the very basics of the platform, we recommend also checking out the Welcome tour in your Frends Tenant. You can find it from the Home View of your Frends Platform, under **Onboarding**, if it didn't launch automatically. You can also check this interactive demo we have built just for you:

{% @storylane/embed subdomain="app" linkValue="ldn2hxarpe4m" url="<https://app.storylane.io/share/ldn2hxarpe4m>" %}

### Learning paths

With the basics of the Frends platform grasped, here you can find the curated guides to get you further on your path.

<table data-view="cards"><thead><tr><th data-type="content-ref"></th><th></th><th data-hidden data-type="content-ref"></th></tr></thead><tbody><tr><td><a href="getting-started-guide/integration-development">integration-development</a></td><td><p>How to create, deploy and test integrations, called </p><p>Processes, with Frends.</p></td><td><a href="getting-started-guide/integration-development">integration-development</a></td></tr><tr><td><a href="getting-started-guide/managing-integration-platform-and-data">managing-integration-platform-and-data</a></td><td>How to check what is happening in your Frends environment.</td><td><a href="getting-started-guide/managing-integration-platform-and-data">managing-integration-platform-and-data</a></td></tr><tr><td><a href="getting-started-guide/supporting-integrations">supporting-integrations</a></td><td>Received a support ticket about Frends and no idea how to continue? Start here.</td><td><a href="getting-started-guide/supporting-integrations">supporting-integrations</a></td></tr></tbody></table>

## What's next?

Already got yourself familiarized with Frends basics? Check out these categories to learn more about Frends.

<table data-view="cards"><thead><tr><th data-type="content-ref"></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><a href="https://app.gitbook.com/s/5LGDIGALBToaaFjbtrP5/">Reference</a></td><td>Learn more about Frends Processes' technical details.</td><td><a href="https://app.gitbook.com/s/1H5SQ92uIfBOYNIeoUAc/">Reference</a></td></tr><tr><td><a href="https://app.gitbook.com/s/0p415NUmUmiF4ayjI81L/guides">Guides</a></td><td>More guides to learn about common use cases and scenarios.</td><td><a href="https://app.gitbook.com/s/0p415NUmUmiF4ayjI81L/guides">Guides</a></td></tr><tr><td><a href="../frends-development">frends-development</a></td><td>Learn more about the development features in Frends.</td><td><a href="../frends-development">frends-development</a></td></tr><tr><td><a href="../management-and-operations">management-and-operations</a></td><td>Interested in managing and supporting Frends &#x26; integrations? Check here.</td><td><a href="../management-and-operations">management-and-operations</a></td></tr><tr><td><a href="../hybrid-integration-architecture">hybrid-integration-architecture</a></td><td>This is how Frends works in the background.</td><td><a href="../hybrid-integration-architecture">hybrid-integration-architecture</a></td></tr></tbody></table>


# Integration Development

How to create, deploy and test integrations with Frends.

Starting out as an integration developer, or new to Frends as an experienced integration guru? Or just generally curious about what the developers are doing in your Frends environment? You have found the correct resource to get started.&#x20;

## Get started with Integration Development

Follow along to create your first Frends integration, called Process, and learn how to deploy and test the functionality.&#x20;

If you missed it, the [..](https://docs.frends.com/docs/get-started "mention") page contains the very basics of Frends UI and features, and you might want to start there first before proceeding with this guide.

### How to create integrations using Frends

<details>

<summary>How to create integrations using Frends</summary>

Integration flows in Frends are referred to as Processes. Processes consist of elements such as Triggers, Tasks, Subprocesses, decisions and loops. Processes are created by connecting elements together and configuring their parameters.

## Step by Step Tutorial Available

If you prefer more visual or interactive guidance on how to create Processes with Frends, you can find a step-by-step walkthrough from your own environment's home page, under Onboarding by selecting "Tutorial 1, Step 3: Creating my first Process" tutorial.

## Creating New Process

The Process list displays the already created Processes in the Environment.

<figure><img src="broken-reference" alt="The view shows a list of Processes within Frends."><figcaption><p>Example view of Process list.</p></figcaption></figure>

In order to create a new Process, click on **Create New** button while in Process list view and having the Development Environment selected. All new Processes have to be created and edited in the Development Environment, from where they are then deployed to other Environments and Agent Groups for execution.

<figure><img src="broken-reference" alt="Showing where and how to create a new Process."><figcaption><p>Integrations can be created from Process list view while having Development Environment selected.</p></figcaption></figure>

<figure><img src="broken-reference" alt="Default view in Process Editor, when starting to create a new Process."><figcaption><p>Process Editor for a new Process.</p></figcaption></figure>

When creating a new Process, you can start by providing the Process a name and optionally a description. To use the latest versions in Frends, targeting .NET 8 is recommended, while .NET Framework 4.7.1 or .NET Standard 2.0 are only used to support legacy environments.

As an example, let's create a Process which is started manually without parameters, calls an API endpoint and then returns a result. Because the start element, called **Trigger**, is already provided, we can continue forward by adding a **Task** to the process.

You can drag or click and place the Task shape from the leftside toolbar to right of the Trigger shape.

<figure><img src="broken-reference" alt="Image shows where to select a Task shape and insert it to the canvas."><figcaption><p>Adding a Task shape to the Process.</p></figcaption></figure>

To make the Task perform an API call, click on the **Select a Task** field and search and select **HTTP Request** Task. When the Task type is selected, the right sidebar contents change to show the Task parameters. In here, enter the url as **<https://examplecrm.frends.com/api/customers>** and make sure Method is GET. Rest of the options can be left as-is for this example.

<figure><img src="broken-reference" alt="This image shows the parameters for the chosen Task, to perform an API call."><figcaption><p>Parameters for the Task can be set after selecting its type.</p></figcaption></figure>

Once the Task is configured for our use, we need to connect it to the earlier shape. To do this, click on the **Connect tool** from the left toolbar or from the quick toolbar next to the Trigger shape, and draw an arrow from the Trigger to the Task shape.

<figure><img src="broken-reference" alt="Here we show how to find and use Connect tool to connect shapes together."><figcaption><p>Draw a connection from the Trigger to Task using the Connect tool.</p></figcaption></figure>

Finally, we need to end the Process and save it. All Processes start with a Trigger, and end to a **Return shape**, or optionally to a **Throw** shape. Let's drag a Return shape to the right side of the Task, and connect it to the Task shape to create a complete Process flow.

<figure><img src="broken-reference" alt="Image showing a completed Process flow, with Return shape parameters."><figcaption><p>Complete integration flow with return value.</p></figcaption></figure>

For the example, we want to return the API response's body. We can do this by selecting the Return shape, and writing **#result\[HTTP Request].Body** to the Expression field. Make sure the field's type is set to **Expression,** and not **Text**, in order to Frends consider the content as C# code and not  text.&#x20;

<figure><img src="broken-reference" alt="Utilizing the Auto-complete feature makes Process development faster."><figcaption><p>Utilize the provided Auto-complete feature to fill in variable names and result objects' names quicker.</p></figcaption></figure>

{% hint style="info" %}
We will cover the C# expressions and other programming features of Frends later on in the guides, but you can  also [check out our guide about Expressions in Frends](https://app.gitbook.com/s/0p415NUmUmiF4ayjI81L/development/using-expressions-in-frends-processes) already to learn more right from the start.
{% endhint %}

Once ready, we can **validate** and **save** the process. You can optionally provide a **Description** or a comment to version history, what was changed in this version. It's recommended to always include a short comment on what was done.&#x20;

<figure><img src="broken-reference" alt="Saving and validating the Process is done at the bottom of the editor."><figcaption><p>Saving and validating the Process is done at the bottom of the editor.</p></figcaption></figure>

Validation at this point means that the Process is taken through C# compiler and checked for errors, but it does not save the Process in any way. To save the Process for testing and deployment, select **Create new Process**. Saving the Process also validates it for errors, but save is not done if any errors persist.

When editing a Process, the save button changes to **Save changes**. If you want to save your Process but not create a new version for use yet, you can instead select **Create new draft** from the small arrow menu. This way you can save your work even if the Process is not yet valid.

Once the saving and validation succeeds, you are taken back to Process list view with your new Process highlighted at the top of the list. From there, you can run it, deploy it or continue editing, among other options.

<figure><img src="broken-reference" alt="New Process hightlighted at the top of the Process list, with options for the Process shown."><figcaption><p>New Process hightlighted at the top of the Process list, with options for the Process shown.</p></figcaption></figure>

</details>

### Deploying the Process

<details>

<summary>Deploying the Process</summary>

Once Processes have been created and possibly initially tested out, it's usually recommended to deploy them into another Agent Group for further testing as well as for production use. This guide will take you through the steps and requirements to do so.

## Step by Step Tutorial Available

If you prefer more visual or interactive guidance on how to deploy Processes with Frends, you can find a step-by-step walkthrough from your own environment's home page, under Onboarding by selecting  "Tutorial 4, Step 5: Deploy my first integration" tutorial.

## Requirements

In order to be able to deploy Processes to another Agent Groups and Environments, you will need to have configured at least one other Agent Group in your Frends Tenant. While the Agent Group can be in the same Development Environment as is provided by default, it makes sense to add another Environment at the same time.&#x20;

After deployment, you will also need an Agent, a Frends runtime executable on a server, within that Agent Group in order to execute the Processes deployed there. Not having an Agent will not block deployment, however, so you will not need any extra hardware or server configuration in order to follow this guide.

### Environment Variables and Subprocesses

In case your Process is using Environment Variables and/or Subprocesses, there are some actions that need to be taken before deploying a Process can be done.

First off, any Subprocesses used in your Process must be deployed before the Process can be deployed. Deploying a Subprocess is done in exactly the same way as shown in this guide for Processes, but in Subprocess list view, of course.

Secondly, all used Environment Variables must have a defined value for the target Environment before Process deployment. This ensures that all values are there for the Process and it can be executed after deployment.

## How to deploy a Process

In order to deploy a Process, head to Process list view and select the Environment and Agent Group where the wanted Process version resides. This is usually the development Agent Group if we want to deploy the latest development version, or testing Agent Group if a tested version of a Process is being deployed to production.&#x20;

During deployment an older version can also be chosen to be deployed, but to deploy the very latest version of a Process you need to deploy from the development Agent Group.

<figure><img src="broken-reference" alt="Image shows the view of Frends Process list, after creating a new Process."><figcaption><p>View of the Process list after creating a Process, with available actions shown.</p></figcaption></figure>

When you are in the Process list, browse or search for your Process, and click on the ellipsis button on the right side of the row. This will open the actions available to do for the Process.

To begin the deployment, select **Deploy Process to Agent Group**. This will open a new modal dialog that will have the options and actions for deploying the Process.

<figure><img src="broken-reference" alt="This is what a Process deployment modal looks like."><figcaption><p>Process deployment view.</p></figcaption></figure>

First option to select is where do you want to deploy your Process to. By default, the next Environment's first Agent Group is selected. Order of these can be changed when creating and modifying the Environments and Agent Groups.&#x20;

<figure><img src="broken-reference" alt="Selecting the target Agent Group is done with a dropdown menu."><figcaption><p>Selecting the target Agent Group is done with a dropdown menu.</p></figcaption></figure>

After selecting the target Agent Group and thus the Environment, you can also change which version of the Process will be deployed. This will also show where each version is deployed to already.&#x20;

When editing a Process, a new version will be created each time, but only to the Development Environment. In order to push the changes to other Agent Groups and Environments, the Process needs to be deployed.

<figure><img src="broken-reference" alt=""><figcaption><p>This Process is currently only in Development, with one older version available.</p></figcaption></figure>

By default, the latest version within the current Agent Group is selected, and this is most often the version we want to deploy.

To finally actually deploy the Process, we have two options: **Deploy and activate Triggers**, or just **Deploy**.

When Triggers are activated for a Process, it means that any automated execution conditions for our Process will become active, and the Process will execute when the conditions match. When in deactivated state, even if the Process has for example a Schedule Trigger, the Process will not start automatically. Manual execution can be done in both states, however.

Deploying and activating Triggers will enable the Process to be automatically launched as soon as the deployment is complete. Only deploying the Process without activating Triggers will leave the state of the Process as it was before in the target Agent Group. If the Process was active before deployment, it will stay active afterwards as well.

By clicking either button, the Process will get deployed to the chosen Agent Group if everything went OK and all preparations were complete. In case there were any errors or missing details, an error will be shown and the dialog will not close. Most common error is that the Process is using Subprocesses or Environment Variables, which were not defined and deployed before deploying the Process.&#x20;

<figure><img src="broken-reference" alt="Picture showing an error message that appears, if Environment Variable is not set for target Environment."><figcaption><p>This is what error message about missing Environment Variable value looks like.</p></figcaption></figure>

</details>

### How to test the Process

<details>

<summary>How to test the Process</summary>

In order to run a Process when you need it, instead of relying on automation from the different Triggers, there's a useful action called **Run once** for the Processes and Subprocesses in Frends. This will execute the Process with the Manual Trigger commonly available in Processes.

## Step by Step Tutorial Available

If you prefer more visual or interactive guidance on how to run Processes manually in Frends, you can find a step-by-step walkthrough from your own environment's home page, under Onboarding by selecting "Tutorial 1, Step 4: Running the Process" tutorial.

## Requirements

To run a Process manually or automatically through Triggers, an Agent is required in the Agent Group the Process is deployed to. Agents are what actually perform the actions defined within Processes, so in addition to Environment and Agent Group, you will also need an Agent on a server or computer to run Processes.

Frends at a minimum comes with Development Environment with a Cloud Agent set up, so it's not required to have your own Agents running to follow this guide, but for other purposes than light testing or development, it's recommended to set up your own Agent as well.

Having a Manual Trigger in Process is *not* required. In case there is no Manual Trigger in a Process, an implicit Manual Trigger with no parameters will be used to trigger the Process. However, if the Process expects some values from an API Trigger for example, the values cannot be provided and the Process execution will likely fail.

## How to run Process once

In order to run a Process manually, head over to Process list and select the Agent Group you would like to execute the Process in.

<figure><img src="broken-reference" alt="Use the Agent Group selection in Process list to change displayed Agent Group and its Processes."><figcaption><p>Use the Agent Group selection in Process list to change displayed Agent Group and its Processes.</p></figcaption></figure>

When correct Agent Group is selected, find your Process from the Process list and click on the ellipsis button to open Process actions.

You can then select **Run once** to launch the Process.&#x20;

<figure><img src="broken-reference" alt="Picture highlighting the Run once option in Process actions."><figcaption><p>Run once option is the first on the Process actions list.</p></figcaption></figure>

In case there are any parameters defined in the Process's Manual Trigger, the values will be prompted from the user before starting the Process. If there are no parameters defined, the Process will launch immediately.

Once the Process has started execution, you can go ahead and open the Process Instances for the Process to see what is being done within the Process execution.

<figure><img src="broken-reference" alt="Picture shows an example of parameters being prompted in a modal dialog."><figcaption><p>Example of parameters being prompted for manual execution. </p></figcaption></figure>

</details>

### Reading the Process logs

<details>

<summary>Reading the Process logs</summary>

In order to see what happened during integration flow execution, Frends has a view called Process Instance.&#x20;

## Step by Step Tutorial Available

If you prefer more visual or interactive guidance on how to view Process logs with Frends, you can find a step-by-step walkthrough from your own environment's home page, under Onboarding by selecting  "Tutorial 2b, Step 2: Process Logs" tour.&#x20;

## Accessing process instances

The Process Instances are accessible through Process list by selecting **Show Process instances**. You can also access the Process Instance list by clicking on **Last execution** or **Instance counts per day** columns from the Process list.

<figure><img src="broken-reference" alt="How to access Process Instances from Process List."><figcaption><p>How to access Process Instances from Process list.</p></figcaption></figure>

Then selecting any of the Process Instances on the Process Instance list will take you to the chosen execution's Instance view.&#x20;

<figure><img src="broken-reference" alt="A view of the Process Instance list with filters."><figcaption><p>Process Instance list view.</p></figcaption></figure>

## Process Instance list filters

In the Process Instance list, you can filter the shown Instances using time period and the state of the Process Instance. The search also supports searching for results and values promoted from the Process execution using SQL wildcards.&#x20;

The Instance list is automatically refreshed by default, to show the current state of the executions in almost real time. In case there are a lot of executions happening, setting the **Auto refresh** to Off might help in focusing on the earlier executions.

## Process Instance view usage

From the Process Instance view it is possible to see what happened at each stage of the execution, shape by shape.&#x20;

<figure><img src="broken-reference" alt="Example process execution view"><figcaption><p>Example Process Instance view.</p></figcaption></figure>

From the view, it's possible to click on the Process elements to see details of that part of the Process. Depending on logging settings in the Process as well as in the Agent Group, some details of the execution might not be always visible.

Functionality in the Process Instance view is similar to Process Editor view, but instead of allowing editing the Process and shape details, it shows what happened during the execution.

<figure><img src="broken-reference" alt="Process execution view with HTTP Request Task selected."><figcaption><p>Process Instance view with HTTP Request Task selected. </p></figcaption></figure>

Common information shown for each shape are:

* **Start time**, when the execution of chosen shape was started
* **Duration**, how long the execution took for that shape
* **Task** or **Expression**, what was executed
* **Result**, showing what was the result of the execution

If extended logging is enabled for the Process or Agent Group (**Log everything** in Log settings), the input parameters are also logged and shown here. Because extended logging has some impact on performance, this level of logging is recommended to be used only temporarily. The Log settings provide an easy way to set Log everything for only a specified duration.

<figure><img src="broken-reference" alt="Extended parameter logging is available when Log Everything option is selected."><figcaption><p>Extended information shown for the executed Task, when "Log everything" is set.</p></figcaption></figure>

It's also possible that log settings were adjusted so that **Only errors** are logged, or **Skip logging result and parameters** is enabled for some elements in the Process. In these situations details for successful shape executions are not logged. This is useful for production use, when there can be many and more executions and as long as there are no errors, most details of the executions are not needed.

<figure><img src="broken-reference" alt="If Errors Only log level is selected, nothing but errors and basic details are logged for executions."><figcaption><p>No data shown for the Process execution with "Only errors" log level set.</p></figcaption></figure>

</details>

With these guides and their tutorial and demo counterparts, you are well on your way to becoming the best integration developer with Frends. While this covered only the very basics of Frends Platform, continuing from here should prove to be no issue. Try, test and learn from doing is the perfect way of getting better in developing with Frends.

To help you on your way, we have some more guides and tutorials to assist you in getting to know Frends better. While the getting started path for integration development ends here for now, more will be added a bit later, so stay tuned and check back later for more!

## What's next?

Already got yourself familiarized with Frends basics? Check out these categories to learn more about Frends.

<table data-view="cards"><thead><tr><th data-type="content-ref"></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><a href="https://app.gitbook.com/s/5LGDIGALBToaaFjbtrP5/">Reference</a></td><td>Learn more about Frends Processes' technical details.</td><td><a href="https://app.gitbook.com/s/1H5SQ92uIfBOYNIeoUAc/">Reference</a></td></tr><tr><td><a href="https://app.gitbook.com/s/0p415NUmUmiF4ayjI81L/guides">Guides</a></td><td>More guides to learn about common use cases and scenarios.</td><td><a href="https://app.gitbook.com/s/0p415NUmUmiF4ayjI81L/guides">Guides</a></td></tr><tr><td><a href="../../frends-development">frends-development</a></td><td>Learn more about the development features in Frends.</td><td><a href="../../frends-development">frends-development</a></td></tr><tr><td><a href="../../management-and-operations">management-and-operations</a></td><td>Interested in managing and supporting Frends &#x26; integrations? Check here.</td><td><a href="../../management-and-operations">management-and-operations</a></td></tr><tr><td><a href="../../hybrid-integration-architecture">hybrid-integration-architecture</a></td><td>This is how Frends works in the background.</td><td><a href="../../hybrid-integration-architecture">hybrid-integration-architecture</a></td></tr></tbody></table>


# Managing Integration Platform & Data

How to check what is happening in your Frends environment.

Just got your own Frends platform to start integration project, or accessing existing platform as a new user, interested in learning where to find the logs and what is happening within the integrations? This getting started guide is for you.

## Getting started with Integration Management

Follow along these guides to learn where to look for the data you might be interested in.&#x20;

If you missed it, the [..](https://docs.frends.com/docs/get-started "mention") page contains the very basics of Frends UI and features, and you might want to start there first before proceeding with this guide.

### Using the Dashboard

<details>

<summary>Using the Dashboard</summary>

When there's more than a few Processes in your Frends Tenant and you would like to make sure everything is running as expected, you can use Dashboard to centrally monitor the Processes.

## Step by Step Tutorial Available

If you prefer more visual or interactive guidance on how to use the Dashboard in Frends, you can find a step-by-step walkthrough from your own environment's home page, under Onboarding by selecting  "Tutorial 2b, Step 1: Dashboard" tutorial.

## What is Dashboard? <a href="#what-is-dashboard" id="what-is-dashboard"></a>

**Dashboard** is a comprehensive tool within the Frends Control Panel designed to provide users with a clear and concise overview of their system activities. It includes key metrics such as performance statistics and integration execution logs. The Dashboard offers customizable widgets that allow users to tailor the view according to their specific monitoring needs. Users can adjust settings to highlight critical alerts, track error occurrences, and monitor execution counts, thus enabling proactive management and swift response to any issues that may arise.

<figure><img src="https://frends.gitbook.io/docs/MiTR4bNEPN9WG6QhZtnX/~gitbook/image?url=https%3A%2F%2F421307484-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FQI65mBosbdweu563CvPI%252Fuploads%252F1wAflrJrQmAaWGfOSEpz%252Fscreenshot-rocks%2520%2848%29.png%3Falt%3Dmedia%26token%3D0f8b83b0-1c71-4df8-b646-1b87ba1eab80&#x26;width=768&#x26;dpr=4&#x26;quality=100&#x26;sign=d95efb86&#x26;sv=2" alt="Frends Dashboard shows you a collection of widgets that provide data about Process executions."><figcaption><p>Frends Dashboard shows you a collection of widgets that provide data about Process executions.</p></figcaption></figure>

## Accessing Dashboard

To find the Dashboard, click on your profile name in upper right corner, and select Dashboard from the opening menu.

You can also get a quick access by creating a bookmark pointing at **yourtentant.frendsapp.com/Dashboard.**&#x20;

<figure><img src="broken-reference" alt="Screenshot shows how to find the Dashboard under the profile menu."><figcaption><p>Dashboard can be accessed from the profile menu.</p></figcaption></figure>

## Monitor Process execution counts

Sometimes the count of executions is the most important detail to monitor. This can be required in order to manage and allocate resources to Frends Agents, set up more Agents to High Availability configuration, or simply to see how your business is doing.&#x20;

Dashboard provides a couple widgets to let you see and monitor execution counts in your Frends Tenant. **Successful processes** shows you a daily execution count for successful executions, while **Failed processes** widget can be used to monitor specifically errors. They can also be adjusted to display the count from multiple days if required. They will also show the change from last time period when compared to currently ongoing counter.

More versatile and detailed widget for monitoring execution counts is the **Process execution graph**, which will show you a graph of execution counts for each point in time, for the chosen time period. The smaller the time period chosen, more detailed the graph will become. For this graph you can also choose to display either successful or failed executions.

<figure><img src="broken-reference" alt="It&#x27;s possible to adjust widget settings for Environment, Tags, Time limit as well as Successful or Failed Processes."><figcaption><p>Widget settings for a Process execution graph.</p></figcaption></figure>

## Monitor errors on a per Process basis

In case you want to monitor specifically errors coming from Processes, the **Errors** widget will let you make a list of Processes with failed executions, sorted by latest failed execution timestamp. This is useful if you want to drill down further into where the errors in your Tenant are coming from.

While a single list of Processes and errors in them is efficient, usually it's the specific Environment that's the important part of the monitoring. Monitoring the Test Environment is not very useful, when the issues are happening in production. Widgets allow selecting the Environment they are pulling the data from, making sure that what you're monitoring is from where you expect it to come from, and not the whole Tenant with all of the development work on the way.

<figure><img src="broken-reference" alt="Environment selection in Dashboard widgets allows focusing on the important executions."><figcaption><p>Environments selection allows you to focus on the important Environments.</p></figcaption></figure>

## Focusing on specific Processes

In order to monitor only a subset of your Processes, Environment level separation probably is not enough. For this use case, **tags** can be used to specify which set of Processes to monitor in the chosen Environment.

In Dashboard context, tags provide a way to select a group of Processes to monitor within a widget, optionally with Environment selection as well. If your solution or target system specific Processes need to be monitored as a whole and separate from other systems' integrations, using tags is the way to go.

## Adjusting the Dashboard view

Using the widgets allows you to specify accurately, what data is shown and in what format. While each widget can show only a specific piece of data, having multiple allows you to gather and combine monitoring data with different filters to get a complete overview to your Frends Tenant in one quick glance.

The Dashboard allows you to arrange the widgets however you see fit, by providing the option to drag and drop the widgets around to create different views to suit your style.&#x20;

To remember which widget shows what data, renaming the chosen widgets is of course possible. Just click on the widget's title and you have entered the edit mode for the title.

<figure><img src="broken-reference" alt="Image showing example layout with renamed widgets in Dashboard."><figcaption><p>Rearranging and renaming widgets allows you to make informative views to your Tenant.</p></figcaption></figure>

</details>

### Reading the Process logs

<details>

<summary>Reading the Process logs</summary>

In order to see what happened during integration flow execution, Frends has a view called Process Instance.&#x20;

## Step by Step Tutorial Available

If you prefer more visual or interactive guidance on how to view Process logs with Frends, you can find a step-by-step walkthrough from your own environment's home page, under Onboarding by selecting  "Tutorial 2b, Step 2: Process Logs" tour.&#x20;

## Accessing process instances

The Process Instances are accessible through Process list by selecting **Show Process instances**. You can also access the Process Instance list by clicking on **Last execution** or **Instance counts per day** columns from the Process list.

<figure><img src="broken-reference" alt="How to access Process Instances from Process List."><figcaption><p>How to access Process Instances from Process list.</p></figcaption></figure>

Then selecting any of the Process Instances on the Process Instance list will take you to the chosen execution's Instance view.&#x20;

<figure><img src="broken-reference" alt="A view of the Process Instance list with filters."><figcaption><p>Process Instance list view.</p></figcaption></figure>

## Process Instance list filters

In the Process Instance list, you can filter the shown Instances using time period and the state of the Process Instance. The search also supports searching for results and values promoted from the Process execution using SQL wildcards.&#x20;

The Instance list is automatically refreshed by default, to show the current state of the executions in almost real time. In case there are a lot of executions happening, setting the **Auto refresh** to Off might help in focusing on the earlier executions.

## Process Instance view usage

From the Process Instance view it is possible to see what happened at each stage of the execution, shape by shape.&#x20;

<figure><img src="broken-reference" alt="Example process execution view"><figcaption><p>Example Process Instance view.</p></figcaption></figure>

From the view, it's possible to click on the Process elements to see details of that part of the Process. Depending on logging settings in the Process as well as in the Agent Group, some details of the execution might not be always visible.

Functionality in the Process Instance view is similar to Process Editor view, but instead of allowing editing the Process and shape details, it shows what happened during the execution.

<figure><img src="broken-reference" alt="Process execution view with HTTP Request Task selected."><figcaption><p>Process Instance view with HTTP Request Task selected. </p></figcaption></figure>

Common information shown for each shape are:

* **Start time**, when the execution of chosen shape was started
* **Duration**, how long the execution took for that shape
* **Task** or **Expression**, what was executed
* **Result**, showing what was the result of the execution

If extended logging is enabled for the Process or Agent Group (**Log everything** in Log settings), the input parameters are also logged and shown here. Because extended logging has some impact on performance, this level of logging is recommended to be used only temporarily. The Log settings provide an easy way to set Log everything for only a specified duration.

<figure><img src="broken-reference" alt="Extended parameter logging is available when Log Everything option is selected."><figcaption><p>Extended information shown for the executed Task, when "Log everything" is set.</p></figcaption></figure>

It's also possible that log settings were adjusted so that **Only errors** are logged, or **Skip logging result and parameters** is enabled for some elements in the Process. In these situations details for successful shape executions are not logged. This is useful for production use, when there can be many and more executions and as long as there are no errors, most details of the executions are not needed.

<figure><img src="broken-reference" alt="If Errors Only log level is selected, nothing but errors and basic details are logged for executions."><figcaption><p>No data shown for the Process execution with "Only errors" log level set.</p></figcaption></figure>

</details>

### Viewing the Agent logs

<details>

<summary>Viewing the Agent logs</summary>

Process logs and Instances give a lot of detail about what is happening on the execution level, and most of the time, this is all it takes to figure out what is wrong. Sometimes the reason for issues in Processes is somewhere deeper, and the logs the Agents provide can shed some light on the root cause.

## Step by Step Tutorial Available

If you prefer more visual or interactive guidance on how to view Agent logs in Frends, you can find a step-by-step walkthrough from your own environment's home page, under Onboarding by selecting  "Tutorial 2b, Step 4: Agent Logs" tutorial.

## Requirements

In order to access Agent logs, you will need to have at least Editor role in Frends. In case the roles and permissions have been changed, having at least Environments.View permission is required. Some actions are restricted to Environments.Admin level, but viewing the Agent logs is possible with only the View level.

## Viewing the Agent logs

You can access the Agent logs by heading over to **Administration** menu and opening **Environments**.&#x20;

<figure><img src="broken-reference" alt="Picture shows where to find the Environments management view in Frends navigation."><figcaption><p>Administration menu contains the Environments management, among others.</p></figcaption></figure>

Once in Environments, you will be presented the currently selected Agent Group and its features and settings. On the left, you have a list of Environments and Agent Groups within them, to change which Agents you are looking at.

You can learn more about the architecture Frends has for the execution environment at [Hybrid Integration Architecture](https://app.gitbook.com/s/QI65mBosbdweu563CvPI/hybrid-integration-architecture "mention") section.

For viewing the Agent logs, we want to click on the Agent(s) shown under Agent Groups.

<figure><img src="broken-reference" alt=""><figcaption><p>Click on an Agent under Agent Group to access its logs.</p></figcaption></figure>

By clicking on the Agent's name or the Agent card in general, you will directly access the Agent's logs, what is happening on the background. These logs will show, among others, errors coming from the Processes and Subprocesses, as well as resource usage and message queue warnings and errors.

<figure><img src="broken-reference" alt="Screenshot showing Frends Agent&#x27;s logs."><figcaption><p>Agent logs show errors and warnings happening behind the integrations.</p></figcaption></figure>

By clicking on the error and warning messages, you can get more accurate message what happened at that point.

<figure><img src="broken-reference" alt=""><figcaption><p>Error message details provide C# stack traces as well as the full message for the warnings.</p></figcaption></figure>

Below the Agent logs, you can also find Triggers that are deployed to the Agent. From these you can confirm which Processes and Triggers should be running on the Agent, as well as receive the whole URL for an API or HTTP endpoint, as long as the external URL is configured for your Agent.

<figure><img src="broken-reference" alt="Picture showing the Triggers list within Agent log view."><figcaption><p>Triggers show the active Triggers on the chosen Agent, as well as the URL for each endpoint.</p></figcaption></figure>

</details>

## What's next?

Already got yourself familiarized with Frends basics? Check out these categories to learn more about Frends.

<table data-view="cards"><thead><tr><th data-type="content-ref"></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><a href="https://app.gitbook.com/s/5LGDIGALBToaaFjbtrP5/">Reference</a></td><td>Learn more about Frends Processes' technical details.</td><td><a href="https://app.gitbook.com/s/1H5SQ92uIfBOYNIeoUAc/">Reference</a></td></tr><tr><td><a href="https://app.gitbook.com/s/0p415NUmUmiF4ayjI81L/guides">Guides</a></td><td>More guides to learn about common use cases and scenarios.</td><td><a href="https://app.gitbook.com/s/0p415NUmUmiF4ayjI81L/guides">Guides</a></td></tr><tr><td><a href="../../frends-development">frends-development</a></td><td>Learn more about the development features in Frends.</td><td><a href="../../frends-development">frends-development</a></td></tr><tr><td><a href="../../management-and-operations">management-and-operations</a></td><td>Interested in managing and supporting Frends &#x26; integrations? Check here.</td><td><a href="../../management-and-operations">management-and-operations</a></td></tr><tr><td><a href="../../hybrid-integration-architecture">hybrid-integration-architecture</a></td><td>This is how Frends works in the background.</td><td><a href="../../hybrid-integration-architecture">hybrid-integration-architecture</a></td></tr></tbody></table>


# Supporting Integrations

Received a support ticket about Frends and no idea how to continue? Start here.

As fresh IT support or more experienced consultant just accessing Frends for the first time, you might be looking for information on how to solve the issue in Frends you've been tasked with. Or perhaps you need to give access to a new developer to Frends platform. Here's how to do it.

## Getting started with Frends as support personnel

This guide is meant to show you how to find and access the logs and settings that are commonly used in supportive tasks in Frends.&#x20;

If you missed it, the [..](https://docs.frends.com/docs/get-started "mention") page contains the very basics of Frends UI and features, and you might want to start there first before proceeding with this guide.

### Reading the Process logs

<details>

<summary>Reading the Process logs</summary>

In order to see what happened during integration flow execution, Frends has a view called Process Instance.&#x20;

## Step by Step Tutorial Available

If you prefer more visual or interactive guidance on how to view Process logs with Frends, you can find a step-by-step walkthrough from your own environment's home page, under Onboarding by selecting  "Tutorial 2b, Step 2: Process Logs" tour.&#x20;

## Accessing process instances

The Process Instances are accessible through Process list by selecting **Show Process instances**. You can also access the Process Instance list by clicking on **Last execution** or **Instance counts per day** columns from the Process list.

<figure><img src="broken-reference" alt="How to access Process Instances from Process List."><figcaption><p>How to access Process Instances from Process list.</p></figcaption></figure>

Then selecting any of the Process Instances on the Process Instance list will take you to the chosen execution's Instance view.&#x20;

<figure><img src="broken-reference" alt="A view of the Process Instance list with filters."><figcaption><p>Process Instance list view.</p></figcaption></figure>

## Process Instance list filters

In the Process Instance list, you can filter the shown Instances using time period and the state of the Process Instance. The search also supports searching for results and values promoted from the Process execution using SQL wildcards.&#x20;

The Instance list is automatically refreshed by default, to show the current state of the executions in almost real time. In case there are a lot of executions happening, setting the **Auto refresh** to Off might help in focusing on the earlier executions.

## Process Instance view usage

From the Process Instance view it is possible to see what happened at each stage of the execution, shape by shape.&#x20;

<figure><img src="broken-reference" alt="Example process execution view"><figcaption><p>Example Process Instance view.</p></figcaption></figure>

From the view, it's possible to click on the Process elements to see details of that part of the Process. Depending on logging settings in the Process as well as in the Agent Group, some details of the execution might not be always visible.

Functionality in the Process Instance view is similar to Process Editor view, but instead of allowing editing the Process and shape details, it shows what happened during the execution.

<figure><img src="broken-reference" alt="Process execution view with HTTP Request Task selected."><figcaption><p>Process Instance view with HTTP Request Task selected. </p></figcaption></figure>

Common information shown for each shape are:

* **Start time**, when the execution of chosen shape was started
* **Duration**, how long the execution took for that shape
* **Task** or **Expression**, what was executed
* **Result**, showing what was the result of the execution

If extended logging is enabled for the Process or Agent Group (**Log everything** in Log settings), the input parameters are also logged and shown here. Because extended logging has some impact on performance, this level of logging is recommended to be used only temporarily. The Log settings provide an easy way to set Log everything for only a specified duration.

<figure><img src="broken-reference" alt="Extended parameter logging is available when Log Everything option is selected."><figcaption><p>Extended information shown for the executed Task, when "Log everything" is set.</p></figcaption></figure>

It's also possible that log settings were adjusted so that **Only errors** are logged, or **Skip logging result and parameters** is enabled for some elements in the Process. In these situations details for successful shape executions are not logged. This is useful for production use, when there can be many and more executions and as long as there are no errors, most details of the executions are not needed.

<figure><img src="broken-reference" alt="If Errors Only log level is selected, nothing but errors and basic details are logged for executions."><figcaption><p>No data shown for the Process execution with "Only errors" log level set.</p></figcaption></figure>

</details>

### Viewing the Agent logs

<details>

<summary>Viewing the Agent logs</summary>

Process logs and Instances give a lot of detail about what is happening on the execution level, and most of the time, this is all it takes to figure out what is wrong. Sometimes the reason for issues in Processes is somewhere deeper, and the logs the Agents provide can shed some light on the root cause.

## Step by Step Tutorial Available

If you prefer more visual or interactive guidance on how to view Agent logs in Frends, you can find a step-by-step walkthrough from your own environment's home page, under Onboarding by selecting  "Tutorial 2b, Step 4: Agent Logs" tutorial.

## Requirements

In order to access Agent logs, you will need to have at least Editor role in Frends. In case the roles and permissions have been changed, having at least Environments.View permission is required. Some actions are restricted to Environments.Admin level, but viewing the Agent logs is possible with only the View level.

## Viewing the Agent logs

You can access the Agent logs by heading over to **Administration** menu and opening **Environments**.&#x20;

<figure><img src="broken-reference" alt="Picture shows where to find the Environments management view in Frends navigation."><figcaption><p>Administration menu contains the Environments management, among others.</p></figcaption></figure>

Once in Environments, you will be presented the currently selected Agent Group and its features and settings. On the left, you have a list of Environments and Agent Groups within them, to change which Agents you are looking at.

You can learn more about the architecture Frends has for the execution environment at [Hybrid Integration Architecture](https://app.gitbook.com/s/QI65mBosbdweu563CvPI/hybrid-integration-architecture "mention") section.

For viewing the Agent logs, we want to click on the Agent(s) shown under Agent Groups.

<figure><img src="broken-reference" alt=""><figcaption><p>Click on an Agent under Agent Group to access its logs.</p></figcaption></figure>

By clicking on the Agent's name or the Agent card in general, you will directly access the Agent's logs, what is happening on the background. These logs will show, among others, errors coming from the Processes and Subprocesses, as well as resource usage and message queue warnings and errors.

<figure><img src="broken-reference" alt="Screenshot showing Frends Agent&#x27;s logs."><figcaption><p>Agent logs show errors and warnings happening behind the integrations.</p></figcaption></figure>

By clicking on the error and warning messages, you can get more accurate message what happened at that point.

<figure><img src="broken-reference" alt=""><figcaption><p>Error message details provide C# stack traces as well as the full message for the warnings.</p></figcaption></figure>

Below the Agent logs, you can also find Triggers that are deployed to the Agent. From these you can confirm which Processes and Triggers should be running on the Agent, as well as receive the whole URL for an API or HTTP endpoint, as long as the external URL is configured for your Agent.

<figure><img src="broken-reference" alt="Picture showing the Triggers list within Agent log view."><figcaption><p>Triggers show the active Triggers on the chosen Agent, as well as the URL for each endpoint.</p></figcaption></figure>

</details>

### User administration

<details>

<summary>User administration</summary>

Frends provides powerful user administration and management features in the Frends Control Panel. Users are Tenant-specific and they are specifically for accessing the Control Panel and performing actions within, and not related to who can access your APIs or HTTP endpoints, those are controlled separately using API Policies.

At its basics, users are managed in Frends using RBAC or Role-Based Access Control model, and in addition different authentication methods can be integrated into Frends from the User Management.

## Step by Step Tutorial Available

If you prefer more visual or interactive guidance on how to create and manage users in Frends, you can find a step-by-step walkthrough from your own environment's home page, under Onboarding by selecting  "Tutorial 2b, Step 3: User Administration" tutorial.

## How to create a new user in Frends

If your Frends Tenant has external authentication provider and SSO set up so that you can log in with your company's credentials, adding new users from your company can be done in Frends Control Panel.

Without external authentication provider set up, an administrator will need to invite new users to your Frends Tenant from the Frends Portal. Skip over to the second section to learn more about this method.

### Adding users in Frends Control Panel (SSO enabled)

New users can be added by asking them to log in with their existing credentials into the Frends Tenant, provided they have a user account with the connected authentication provider. If your SSO configuration includes the setting for default role for users, the users can log in and get immediate access with the default role's permissions.&#x20;

If the default role is not set they will not receive automatic access to Frends Tenant, but their username will be added to the list of users in your Frends Tenant after successful authentication, from where it is then easy to simply provide a role for the user.&#x20;

Note that only the users able to authenticate to your authentication provider, such as Entra ID, may use this method. External users will either have to be invited from the Frends Portal, or have account created for them in your company's user management system.

While usually not necessary, it is also possible to add a user from within the Frends Control Panel. This essentially replaces the initial logging in by the user. Start by accessing the Control Panel and navigating to the User Management section, located under Administration menu in main navigation. This section serves as the central hub for all user-related activities, allowing you to manage user accounts, roles and authentication providers.

<figure><img src="broken-reference" alt="Picture shows the default view of User Management section in Frends."><figcaption><p>Default view of User Management section in Frends.</p></figcaption></figure>

To create a new user this way, click on the **New User** button, which will prompt you to enter the necessary details for the new account. Begin by entering the username for the user, which will be used as the username for logging into the system. This is often the email address for the user, but not necessarily, depending on the authentication provider.&#x20;

Next, you will need to select the appropriate role for this user from a predefined list of roles which align with your operational needs. Roles dictate the level of access and permissions the user will have, so it is crucial to assign roles carefully. If needed, the roles can be edited and new roles created to match the exact responsibilities the users need to undertake, ensuring they have enough access to perform their duties effectively while maintaining system security.

Once you’ve filled in all necessary fields, double-check for any errors or missing information before saving. Click 'Save' to create the user. The system will either confirm the successful addition of the user or alert you to any issues that need addressing before the user can be created.

<figure><img src="broken-reference" alt=""><figcaption><p>Creating a new user is as simple as entering the username and role required.</p></figcaption></figure>

### Inviting new users from Frends Portal (Without SSO)

Before a new user can log in to your Frends Tenant with Frends credentials, the user has to be invited to your Frends Tenant by an administrator.&#x20;

Navigate to the Frends Portal at [https://portal.frends.com](https://portal.frends.com/) and log in. Here you can see information about your tenants, check release notes, and links to our documentation.

<figure><img src="https://downloads.intercomcdn.com/i/o/cbxrrbbm/1409599861/8ddeef1e3b9bd6a6866ecc3a40ed/image.png?expires=1757068200&#x26;signature=2054cdb02a992444fce78ffff82b1cb6c56879c0a1da73f14b4f6bad0a10a5a6&#x26;req=dSQnH8x3lIlZWPMW1HO4zZfprQBPOv04%2BP48q%2BHDcTYzjwf7EwZgP%2FiquH8e%0AjzUxv4Su9SsTb9fsMpc%3D%0A" alt=""><figcaption><p>Default view of Frends Portal after logging in.</p></figcaption></figure>

Find the Tenant you want to invite a user to, and click on the settings button ![](https://downloads.intercomcdn.com/i/o/cbxrrbbm/1409601558/4dc6d9c49d821d75bf8a7ec88eb3/image.png?expires=1757068200\&signature=db053f7bd3a0937bf39bbb763471325f45c0d6af383ac8e9baea6c5885687106\&req=dSQnH89%2BnIRaUfMW1HO4zbxlhy6Lv%2FRSBE81wac4CYQ%2FafUuRORQ2t4DSiM7%0AEQVR%0A) to access the Tenant's settings. Navigate to Users section and click on **Invite new users**. You only need to enter the new users' email addresses and press Send invite.

<figure><img src="https://downloads.intercomcdn.com/i/o/cbxrrbbm/1409604607/71a1ca77473b5194a7f91967fb90/image.png?expires=1757068200&#x26;signature=104946bd18a6a4ef4ee347e8e7df5263eb1807bba57815a232e82700d82216c1&#x26;req=dSQnH89%2BmYdfXvMW1HO4zQgLgfGTSb9Sul1sdDMM%2F%2B%2B%2F3EE21TffzPK7dIPl%0AIjIB%0A" alt=""><figcaption><p>Existing users in the selected Frends Tenant.</p></figcaption></figure>

This will invite the new user to you tenant and send the invitation link for them. On their first log in, the user will be asked to create a new password.&#x20;

The user will also the default role (Editor) when they log in the first time. Continue reading to learn how to manage the users in Frends Control Panel.

## Managing existing users

For managing existing users, return to the User Management section at any time. You can search for users by username and role. Selecting a user profile from the list enables you to view their details and make any necessary updates to their roles. Always confirm changes by clicking 'Save' to ensure updates are properly applied within the system.

When it becomes necessary to remove a user from Frends, perhaps due to departure from the organization or a role change that no longer requires system access, this can also be done from the same section. Select the user account you wish to delete, then click the trashcan icon on the top right corner.&#x20;

<figure><img src="broken-reference" alt=""><figcaption><p>Deleting an user is done with the trashcan button on top right of the user's profile.</p></figcaption></figure>

## Role-based Access Control

User roles in Frends are crucial for maintaining a structured and secure access environment, as they help define specific access levels for different users based on their responsibilities.&#x20;

To create a new user role, navigate to the User Management interface in your Frends Tenant and select the **Roles** tab. From there, you can click the **New Role** button and enter a descriptive name for the new role.&#x20;

<figure><img src="broken-reference" alt="Picture shows the settings for Editor role."><figcaption><p>Default values for the Editor role allow creating and editing integrations.</p></figcaption></figure>

Deciding on the permissions for this role involves selecting relevant options, such as access to specific views or functions. You can also allow or limit access according to tags and Environments, in order to limit the role to only view and edit Processes with the specified tags, or disallow access to production environments.

<figure><img src="broken-reference" alt="Picture showing possible rule types for roles."><figcaption><p>Rules are defined using views, actions, tags and environments.</p></figcaption></figure>

If modifications to existing roles are necessary, start by selecting the role to be updated from the list in the Roles tab. Adjust permissions or environment access as needed, then click Save to keep the changes you made.

<figure><img src="broken-reference" alt="Picture shows auto-complete assisting the user to create a new rule for a role."><figcaption><p>Auto-complete will aid you in specifying the views and actions for the role rules.</p></figcaption></figure>

While it's possible, it's recommended to not edit the default roles provided in Frends Tenant. Instead, if customized access is required for some users, create a new role based on the predefined roles, and limit them further.&#x20;

Finally, after having a role created or modified, you can also assign users to that role directly from the role view.

</details>

## What's next?

Already got yourself familiarized with Frends basics? Check out these categories to learn more about Frends.

<table data-view="cards"><thead><tr><th data-type="content-ref"></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><a href="https://app.gitbook.com/s/5LGDIGALBToaaFjbtrP5/">Reference</a></td><td>Learn more about Frends Processes' technical details.</td><td><a href="https://app.gitbook.com/s/1H5SQ92uIfBOYNIeoUAc/">Reference</a></td></tr><tr><td><a href="https://app.gitbook.com/s/0p415NUmUmiF4ayjI81L/guides">Guides</a></td><td>More guides to learn about common use cases and scenarios.</td><td><a href="https://app.gitbook.com/s/0p415NUmUmiF4ayjI81L/guides">Guides</a></td></tr><tr><td><a href="../../frends-development">frends-development</a></td><td>Learn more about the development features in Frends.</td><td><a href="../../frends-development">frends-development</a></td></tr><tr><td><a href="../../management-and-operations">management-and-operations</a></td><td>Interested in managing and supporting Frends &#x26; integrations? Check here.</td><td><a href="../../management-and-operations">management-and-operations</a></td></tr><tr><td><a href="../../hybrid-integration-architecture">hybrid-integration-architecture</a></td><td>This is how Frends works in the background.</td><td><a href="../../hybrid-integration-architecture">hybrid-integration-architecture</a></td></tr></tbody></table>


# Frends Glossary

All the terms Frends uses, and what they mean.

In this glossary we gather the specialized terms and concepts that reflect the technologies and methodologies we employ. Our vocabulary is designed to align with our innovations, enhancing clarity and collaboration within our platform, while keeping things simple and friendly.

## Integration terms

Here's a list of key terms used during integration development in Frends, and whenever discussing about details of an integration flow.

#### Process

A sequence of tasks executed in a defined order to achieve a specific integration goal. Otherwise called integration flow, logic or sequence.

#### Subprocess

Reusable sequence of tasks, created in the same way as Processes. Subprocesses can be inserted into Processes as Task-like shapes, and reused in multiple Processes.&#x20;

#### Long-running Process

Long-running Processes are sometimes called orchestrations or stateful workflows, where the execution might stop temporarily to wait for external processing. Unlike separate Processes, the Long-running Process remembers the state it was in and the data processed, so it can seamlessly continue from where it left.

#### Shape

Any element in a Process is called shape. As the Processes are created using BPMN notation, the elements added to the Process are shapes.

#### Sequence Flow

Arrow connecting different Tasks together in a Frends Process, to form the integration flow. Not to be mixed up with connectors from other integration platforms, which are Tasks in Frends.

#### Task

A single operation or action within a Process. Comparable to a connector in other integration platforms. Can be pre-defined action as Task or more custom when using Code Task.

#### Trigger

A mechanism that executes a Process based on specific events or conditions, like schedule or an incoming message.

#### Parameter

Input values that modify and control the execution of Tasks and Processes.

#### Code Task

Shape in Process that contains a multiline C# code statement. Can be used to create custom functionality within Process, that is not otherwise possible to perform using the provided Tasks or other logic. Commonly called Code Block or Code shape.

#### Assign Variable

Shape in Process that contains a single expression of C# code. Can be used to assign variable a value using C# code or text, or modify existing variable's value. Also called Expression shape.

#### Handlebars

Frends allows inserting C# code expression's result into any text content using Handlebar ( {{ }} ) notation. Code inside Handlebars is compiled during Process save, but the value itself is evaluated at runtime.

#### Scope

Shape in Process that can contain other shapes. Can be used to arrange Process flow into logical sections as well as implement error handling for the contained logic. Different Scope shapes, Foreach and While, can be used to perform iteration within Process.

#### Process Instance

Single execution of a Process.

#### Reference Values & Variables

Variables and values that are accessible in expressions through hashtag (#) references, such as **#var**, **#env**, **#result**, **#trigger** and **#process**.&#x20;

#### Variable

Variables that are defined in the Process during execution. Accessible in expressions under **#var** reference.

#### Process Variable

Process-specific variables that are defined for a Process to have value right at the beginning. Accessible in expressions under **#var** reference. Can be changed during Process execution.

#### Environment Variable

Centrally managed, globally available variable, that has different values for each environment. Accessible in expressions under **#env** reference.

#### Trigger Variable

Values that are provided in variable-like style from the starting Trigger shape. Accessible in expressions through **#trigger** reference.

#### Process Instance Variable

Process Instance variables contain instance-specific data, such as execution id. Accessible in expressions through **#process** reference.

#### Promoted Value, Promoted Variable

Value or variable specified within Process, that will be shown in the Process Instance list and logging. Monitoring Rules can be set to target and monitor these values as well.

## Execution environment terms

Instead of runtimes, nodes and servers, Frends uses the terms below to mean the parts of an execution environment.

#### Environment

A distinct set of values and configuration that form environments such as Development, Test or Production. Environments contain one or more Agent Groups and provide them a common set of values as Environment Variables.

#### Agent Group

A set of Agents running the same Processes using the same settings. Agent Group can have one or more Agents in them.

#### Agent

A runtime environment where processes are executed. Analogous to a server, node or runtime in distributed systems. A single server is allowed to host multiple Agents.

#### High Availability, HA

Or High Availability confirguration, HA configuration. Specific setup using multiple Agents in one Agent Group, executing the same Processes with same settings and data. Allows Process executions to continue even if one or more Agents are not available or busy, and ensures there's enough resources to handle all processing.

#### Gateway Agent

Agent acting as an API gateway, publishing the API endpoint in a load balancing manner. Does not directly run Processes, instead forwards the API requests to other Agents for execution.

#### Tenant

Your very own execution and management environment to Frends. Includes the Agents, Environments and Control Panel with all of its tools. Your Frends Tenant is identified by its url, at yourtenant.frendsapp.com.

#### Frends AI

AI service hosted on Azure, provided to you by Frends. This is the default and easiest to use AI service available in Frends, and is used for the augmented AI features available in Frends. Can also be used with the AI Connector.

#### Frends Credit

Frends Credit is a usage metric for AI-powered features within the Frends platform. The amount of credits consumed corresponds to an equivalent amount, and the consumption of credits aligns with actual AI tokens used to provide the utilized functionality.

## Frends UI

#### Frends Portal

Your portal to accessing all the Frends Tenants you have access to, as well as for managing your Frends plan.

#### Frends Control Panel

The main user interface for your Frends Tenant. In here you can manage your APIs, Processes and Agents.

#### Home view

Page you arrive on when accessing your Frends Control Panel, containing the global search, onboarding materials and documentation.

#### Dashboard

View with collection of widgets that you can set up to monitor your Frends Tenant and its Processes.

#### Process List

List of Processes deployed to the chosen Agent Group. From the list, you can execute, edit, manage and view logs for the Processes.

#### Subprocess List

Same as Process list, but for Subprocesses.

#### Process Editor

Integration flow editor, built in to your Frends Control Panel.

#### Process Instance List

Lists the executions for the chosen Process during the specified time span.

#### Process Instance View

Shows the details of a single execution of a Process in visual format.

#### Monitoring Rules

Feature in Frends that allows creating rules for monitoring Process Instances. Can be used for example to monitor that there are enough Process executions for a given time period, and notify interested parties if not.

## Frends API terms

API management is built in feature of Frends.

#### API Management

Feature in Frends which allows you to create REST APIs from OpenAPI specifications, and then connect endpoints of those APIs to Processes for performing the actual logic behind those endpoints.

#### Passthrough API

API endpoint specified to Frends, but instead of containing Processes for logic, the requests are forwarded to another system for handling. Could also be thought of as API proxies.

#### API Policy

Set of rules and specifications that are connected to the APIs in Frends. They can be used to set up authentication as well as logging rules for the incoming connections to your Frends Tenant.

## Frends Add-On Products

In addition to Frends iPaaS product, Frends offers add-on products that can be used to enhance the Frends experience.

#### Business Automation Portal

Simplified, no-code interface aimed at business users to run and manage integrations. ISVs and SaaS partners can use it to provide embedded iPaaS and IaaS solutions to customers with white-labeling options.

#### API Portal

Allows you to create API products using Frends API Management features that can be published in the API Portal for an API developer self-service experience.&#x20;


# Frends Highlights

Get familiar with the most popular Frends features.

Frends covers a lot of functionality and capabilities in it, with the praised low-code Process Editor at its core. Flexibility of Frends allows it to be used for almost anything you can come up with, but here are some of the most asked capabilities of Frends presented.

## Data & Application Integration

Frends helps connect data from different applications and systems, making it easy to work together. It ensures data is synchronized in real-time, turning scattered data into useful information for making smart decisions. The platform supports various integration types like cloud-to-cloud, cloud-to-on-premises, and on-premises-to-on-premises, giving flexibility across different IT setups.

You can learn more about the integration possibilities of Frends by checking out [integrations](https://docs.frends.com/docs/frends-development/integrations "mention"), and to have a look at different deployment options, you can see them at [hybrid-integration-architecture](https://docs.frends.com/docs/hybrid-integration-architecture "mention").

## API Management

API Management in Frends provides comprehensive tools for creating, deploying, managing, and monitoring APIs with ease and security. The platform empowers organizations to expose and consume APIs efficiently, facilitating integration and interaction between services. It includes features for policy enforcement, access control, and analytics, ensuring that APIs remain secure, performant, and reliable. Frends enhances integration capabilities by providing a scalable platform for managing the entire lifecycle of APIs from design to retirement.

[Check here](https://docs.frends.com/docs/frends-development/api-management) for more about Frends API Management capabilities.

## Workflow Automation

Frends offers intuitive tools for automating complex workflows, thereby reducing manual intervention and enhancing operational efficiency. Users can design and implement workflows that connect applications, data, and services seamlessly. By orchestrating these workflows, Frends helps organizations to streamline operations, reduce process bottlenecks, and accelerate the completion of business tasks, leading to increased productivity and cost savings.

To learn more about the automation capabilities, read our article about [low-code-development](https://docs.frends.com/docs/frends-development/integrations/low-code-development "mention").

## Business Automation Portal

The Business Automation Portal in Frends serves as a centralized hub for managing, monitoring, and optimizing business processes. This portal provides stakeholders with an intuitive interface for overseeing automated workflows, accessing detailed analytics, and gaining insights into business performance. Users can easily track the progress of ongoing processes, receive alerts for exceptions, and make data-driven decisions to optimize operations continually.

You can find the documentation for Frends Business Automation Portal [here](https://app.gitbook.com/s/Y6GDpBcNZ0ne5Crknhg1/).

## B2B/EDI Integration

Frends supports efficient B2B and EDI integration, facilitating seamless data exchange and communication between business partners and external systems. The platform ensures compliance with industry standards like X12, EDIFACT, and others, enabling companies to streamline operations, reduce costs, and improve collaboration. Frends simplifies the complexity of B2B integrations by providing robust tools for supporting various message formats and protocols, allowing companies to focus on strategic initiatives rather than technical intricacies.

You can learn more about the integration possibilities of Frends by checking out [integrations](https://docs.frends.com/docs/frends-development/integrations "mention").

## Integration Templates

Frends offers a rich library of pre-built integration templates designed to expedite deployment processes and minimize development efforts. These templates are engineered to handle common integration challenges across industries and can be easily customized to suit specific business requirements. By leveraging these templates, organizations can accelerate time-to-market for integration projects and reduce potential errors associated with custom development.

Read more about the template options in our [templates](https://docs.frends.com/docs/frends-development/integrations/templates "mention") article. For a full list of readily available templates, visit [https://templates.frends.com](https://templates.frends.com/).

## Tasks & Connectors

Frends provides an extensive suite of connectors, called Tasks in Frends ecosystem, that enable seamless integration with a variety of systems and applications. These components allow organizations to quickly connect to different data sources, applications, and services without extensive custom coding. The reusable nature of Tasks ensures that integration solutions are both flexible and scalable, adapting to the changing needs of the business as it grows and evolves.

Check out more at [connectors](https://docs.frends.com/docs/frends-development/integrations/connectors "mention") page in our documentation. You can also find the full list of available Tasks and supported target platforms at [https://tasks.frends.com](https://tasks.frends.com/).

## AI Integrations

Frends leverages AI to perform seamless integration tasks, automating complex workflows and optimizing processes with minimal human intervention. AI-assisted development within Frends allows for the creation of smarter, more efficient solutions by providing intelligent code and Task suggestions, thereby accelerating the development lifecycle and enhancing overall productivity.

Find more about Frends AI capabilities from [ai-features](https://docs.frends.com/docs/frends-development/ai-features "mention") section.


# Help Resources

Need help with Frends? We're here to assist!

There are multiple channels where you can receive help in using and configuring Frends.&#x20;

## Contact us via Chat

You can contact us and our support team through the Help button in your Frends environment. You can ask the AI assistant to help you for known issues and common questions, and if your need is more specific, the support team is available to help you as well.

## Documentation

You have also already found a very good support channel, our documentation. Here you can find answers and guides to most details and features in Frends, and the search also features an AI assistant, that can help collect and condense the docs into an answer to your specific problem.

## Official support

If your purchased package contains product support, you can always contact us for help. Please reach out to your named Account manager, customer success manager or directly to your dedicated support email address to find a solution.&#x20;

In case you don't have product support or service management included yet in your Frends service, please contact your favourite sales person and let's see what we can arrange. We want nothing more than resolving any adversities you might encounter.

## Bug reports & feedback

Bug reports and help requests are also an important way for us improve our product and we want to make it as easy as possible.&#x20;

In order to report an issue you're facing, you can find the **Bug report** button from the homepage. Requesting a feature you would like to have is also done here.

If you just want to leave us some feedback, good, bad or neutral, you can do so from the menu under your username at top right corner. We'd love to hear back from you on how you like Frends!


# Centralized Portal

From featured content on the Start page, to Process Editor and managing your Agents, Frends Control Panel has it all.

Your Frends Tenant is operated with Frends Control Panel, which is accessible from your Frends Portal at [https://portal.frends.com](https://portal.frends.com/). You can also access the Control Panel directly through yoursubdomain.frendsapp.com.&#x20;

From the Control Panel, you can create, deploy and manage your integrations, as well as create APIs and manage the Agents and Environments.

## Frends Portal

Frends Portal acts as the gateway to effectively manage your Frends Tenants and subscription plans. While it serves primarily as an entry point to various management tools, it provides access to essential resources and information about your account. Users can inspect or adjust subscription details, monitor resource usage, and review billing information, ensuring that your subscription aligns with business requirements.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/o7xrutwqDcofx09AXJQb/image.png" alt="Picture showing Frends Portal landing page."><figcaption><p>Frends Portal provides a simple and intuitive user interface for managing your Tenants.</p></figcaption></figure>

Read more about Frends Portal [here](https://docs.frends.com/docs/frends-development/centralized-portal/frends-portal).

## Control Panel

Control Panel is the page where you can create and manage your integrations, APIs and execution environments centrally. It includes all the tools you need to create, test and monitor your integrations, as well as perform user administration tasks within your Tenant.

Control Panel is often identified by its URL, which makes it completely separate from other Tenants. Direct URL such as **yourtenant.frendsapp.com** can be used to access your Frends Control Panel directly.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/i8ZSAkko7j89SJARVL8q/screenshot-rocks%20(68).png" alt="Arriving to your Frends tenant, you are greeted with the help resources available to you."><figcaption><p>Arriving to your Frends Control Panel, you are greeted with the Home view providing helpful resources to get started.</p></figcaption></figure>

Check out the details about Control Panel [here](https://docs.frends.com/docs/frends-development/centralized-portal/control-panel).


# Frends Portal

Management for your Frends Tenants.

Frends Portal acts as the gateway to effectively manage your Frends Tenants and subscription plans. While it serves primarily as an entry point to various management tools, it provides access to essential resources and information about your account. Users can inspect or adjust subscription details, monitor resource usage, and review billing information, ensuring that your subscription aligns with business requirements.

## Dashboard

Dashboard in Frends Portal provides quick access to your Frends Tenants and their management views, as well as links to our documentation as well as the latest notifications and news related to Frends.&#x20;

The interface is kept simple and easy to use, providing quick access to all you need with Frends. At the center, list of your Frends Tenants are shown, giving easy access to the Tenants' Control Panels for integration management and creation.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/o7xrutwqDcofx09AXJQb/image.png" alt="Picture showing Frends Portal landing page."><figcaption><p>Frends Portal provides a simple and intuitive user interface for managing your Tenants.</p></figcaption></figure>

## Tenant Details

Furthermore, the Frends Portal offers access to support options and a variety of resources meant to enhance your overall experience. As an example, the Tenant Details view provides an allround view of statistics related to your Tenant, including Process execution counts, user counts and AI usage statistics.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/4zMarIMcP65dOPPQFo0z/image.png" alt="Picture shows some usage statistics about the chosen Frends Tenant."><figcaption><p>Comprehensive details and statistics about your Tenant are provided here as well.</p></figcaption></figure>

## Free Trial

If you don't yet have a Tenant of your own, you can always request a 30-day free trial from the Portal.

Creation of the Tenant is automated, you simply need to provide a few details about you and your use case, wait a moment and you're presented with a new Tenant with all the features included. No credit card needed.


# Control Panel

All the integration magic happens within Frends Control Panel.

Control Panel is the page where you can create and manage your integrations, APIs and execution environments centrally. It includes all the tools you need to create, test and monitor your integrations, as well as perform user administration tasks within your Tenant.

Control Panel is often identified by its URL, which makes it completely separate from other Tenants. Direct URL such as **yourtenant.frendsapp.com** can be used to access your Frends Control Panel directly.

## Home view

You can find most of the help and resources available to get going with your Frends tenant from the Home view. It is the first page you arrive to in your Frends Tenant, and you can also access it through the Frends logo in your Frends Control Panel.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/i8ZSAkko7j89SJARVL8q/screenshot-rocks%20(68).png" alt="Arriving to your Frends tenant, you are greeted with the help resources available to you."><figcaption><p>Arriving to your Frends tenant, you are greeted with the help resources available to you.</p></figcaption></figure>

#### Search

Home view contains a powerful global search tool, able to search for everything in your Frends environment, as well as from the documentation. It also includes integration to an AI assistant, able to give you more specific answers from our docs to your queries.&#x20;

#### Onboarding

Our onboarding section includes interactive walkthroughs to your Frends Tenant, giving you hands-on experience in getting familiar with Frends. We highly recommend checking them out if you're new to Frends or coming from older versions, as some things have changed and there's a lot of new features to get excited about.&#x20;

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/oEkerqenXw1hTbspcvxR/image.png" alt="Image showing the available tutorials in Frends."><figcaption><p>Onboarding page in your Frends Control Panel will take you through the basics.</p></figcaption></figure>

The onboarding tours start from general overview of the Control Panel and where to find everything you might need and go all the way to guiding you to creating whole integrations for common use cases as well as managing your environment, so they cater to many different roles and different situations you might encounter with Frends.

#### Documentation & more

As you're already reading this, you have either already found this from the Home view, or stumbled across our docs site otherwise. The documentation category pulls its contents from here and gives you easy and quick access to whatever you might need, be it reference documentation about a shape or instructions on how to deploy a new Agent.&#x20;

From here you can also find your way to our recorded and upcoming webinars as well as to our Academy courses, to learn more about Frends and even become a Certified Frend™ if you take on the certification exams.&#x20;

Finally, at the very bottom, you can find out about our upcoming features, suggest new features and most importantly, if you ever encounter any issues when using Frends, please let us know about it. We are doing our best to provide you the best experience possible and these are some of the channels you can use to help us help you.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/baWAvRIalbRgYadcvIa6/screenshot-rocks%20(20).png" alt="Feedback section of the home page."><figcaption><p>Feedback section of the home page.</p></figcaption></figure>

## Main navigation

At the very top of the page, you can find the main navigation bar, visible on all pages.

#### Navigation items

[Dashboard](https://docs.frends.com/docs/management-and-operations/dashboard-and-monitoring/dashboard) is a comprehensive tool within the Frends Control Panel designed to provide users with a clear and concise overview of their system activities. It includes key metrics such as performance statistics and integration execution logs, presented using customizable widgets.

**APIs** contain the pages for [API Management](https://docs.frends.com/docs/frends-development/api-management). In here, you can create and manage your APIs and endpoints, monitor the APIs as well as set up API Policies for access control and authentication.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/ZlXDGshXzqBYKNl4zGvG/screenshot-rocks%20(69).png" alt=""><figcaption><p>API menu contents.</p></figcaption></figure>

**Processes** is the bread and butter page of Frends, giving you access to Process list and all Processes related topics. Majority of integration development is done through this page.

Along with Processes, **Subprocesses** contain the Subprocess list. These are used as reusable parts in Processes and other Subprocesses, and are developed in the same way as Processes are.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/HZfbiIsQQx8oi7d8K1Wc/image.png" alt="Picture shows a list of Processes in Frends."><figcaption><p>Process list view in Frends Control Panel.</p></figcaption></figure>

**Templates** give you access to importing Templates and making them into Processes and Subprocesses. Templates are created to cover many different use cases, from having a starting point for your own Processes and speeding up development for known cases, to allowing running Processes from Business Automation Portal by business personnel, without requiring extensive knowledge to develop and manage integrations otherwise.

**Environment Variables** are variables used in Processes, that have varying content depending on the Environment the Process is deployed to. These allow for example to configure different credentials and API endpoints for test and production environments, making for easy deployment and version control. It's also the centralized location to save credentials and other more sensitive data as well as global constants used in Processes.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/0NcFunUBp1wnyAh2p8OF/image.png" alt="Picture showing an example of Environment Variables in Frends."><figcaption><p>Environment Variables can be used as global values for each Environment.</p></figcaption></figure>

As last item of the navigation, there is the **Administration** menu. Here you can find the global settings and Environment details for your tenant, such as user, Agent and Task management and connected authentication providers.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/ICrd2nbe9C4sWkfnzL16/screenshot-rocks%20(70).png" alt=""><figcaption><p>Administration menu contents.</p></figcaption></figure>

#### Profile, notifications & help

From the right hand side of the navigation bar, you can find the **Notifications** bell icon, showing you all important or new information about your Tenant.&#x20;

**Help** button will open a chat window for you, where you can ask AI for answers and also contact the support team for help. It's also a quick way to access the documentation.

Under your username, you can enable or disable **Dark mode** if you prefer. The menu also provides access to the onboarding page, and if you want to **give feedback**, you can do it from here as well. Please note that any feature requests or bugs should be reported using the specific tools on homepage instead.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/T2Zyma5so6rjc6G2Ld3C/screenshot-rocks%20(71).png" alt=""><figcaption><p>Profile menu contents.</p></figcaption></figure>


# Integrations

Frends is an integration platform, after all.

Processes, Frends term for integrations, offer a straightforward way to connect your various systems and applications, ensuring everything works together seamlessly. By automating tasks and orchestrating workflows, Processes help streamline operations, reduce manual workload, and minimize the chance of errors—boosting the productivity of your team.

The Frends platform provides an intuitive setup, making it accessible even if you're not a coding pro. Its flexible framework supports a wide range of integration needs, whether you're dealing with on-premises systems, cloud-based applications, or a combination of both in a hybrid deployment. With Frends, adapting to changes and staying responsive to business demands is much more manageable, keeping you well-prepared for future challenges.

## Low-code Development

Frends uses BPMN 2.0 notation to define APIs, integrate systems, and automate processes. Frends provides enhancements to the notation with Handlebars-enabled C# programming, making it possible to create most anything that is visually pleasing, easy for non-programmers to read and understand, and requiring only minimal programming by the developer.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/tptK262mgChnxPiOQF8z/screenshot-rocks%20(13).png" alt="Picture shows a view of Frends process editor, with code block shape being displayed."><figcaption><p>Process Editor uses BPMN 2.0 and C# to create integration flows.</p></figcaption></figure>

Learn more about how Frends works for low-code development [here](https://docs.frends.com/docs/frends-development/integrations/low-code-development).

## Connectors

In Frends, we have Tasks instead of what is more commonly known as connectors, that perform actions towards other systems. Each Process also requires a starting condition or event listener to start, which is done using Triggers in Frends.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/9plM1RLc5iQn9Qa0LTHt/screenshot-rocks%20(15).png" alt="HTTP Request task can be used to make HTTP requests to APIs."><figcaption><p>HTTP Task is used to make HTTP requests to APIs to send or query data.</p></figcaption></figure>

Learn more about Frends Tasks and Triggers [here](https://docs.frends.com/docs/frends-development/integrations/connectors).

## Reusable Content

In order to keep up with DRY principle (Don't Repeat Yourself), Frends includes Subprocesses and Environment Variables to allow defining functionality and values once and reusing them in your Processes.

Check out the [reusable-content](https://docs.frends.com/docs/frends-development/integrations/reusable-content "mention") page for more information.

## Templates

Frends Templates are pre-built structures designed to expedite workflow creation and integration processes. They serve as a blueprint that aids in maintaining consistency and minimizing potential errors. By utilizing these Templates, users can save significant time in setting up new integrations, as they provide a reliable and tested starting point tailored for various common tasks.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/Lp1xZ3g95oxyw210EkvG/screenshot-rocks%20(28).png" alt=""><figcaption><p>Templates give a starting point for development for the most common use cases.</p></figcaption></figure>

Head over to [templates](https://docs.frends.com/docs/frends-development/integrations/templates "mention") page to learn more.


# Low-code Development

We have visual process editor, enhanced with C# code.

Frends uses BPMN 2.0 notation to define APIs, integrate systems, and automate processes. Frends provides enhancements to the notation with Handlebars-enabled C# programming, making it possible to create most anything that is visually pleasing, easy for non-programmers to read and understand, and requiring only minimal programming by the developer.

## Process Editor

At the core of Frends is our prized Process Editor, which utilises BPMN 2.0 notation to create the integration flows or Processes. With the drag and drop editor, it is easy to both visualize what is happening and in what order, as well as create the logic to do exactly what you want and need to do. No coding expertise required to understand the Processes.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/OEHqN76ZOvOPDhmlqEPx/image.png" alt="View of Frends process editor with an example process shown on it."><figcaption><p>Process Editor is built in to the Frends Control Panel. </p></figcaption></figure>

## Coding features

While most of the logic can be done with only the graphical elements, including the powerful Tasks to perform pre-defined actions, Frends is specifically a low-code platform for integrations. Thus, if you need and want to, you can include C# code in the Processes to fine tune more complex logic.&#x20;

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/tptK262mgChnxPiOQF8z/screenshot-rocks%20(13).png" alt="Picture shows a view of Frends process editor, with code block shape being displayed."><figcaption><p>Code Task can be used to execute C# code.</p></figcaption></figure>

Code can be included as separate shapes to perform actions in task-like manner, or you can include short pieces of code into any text input field using Handlebars-like syntax. Most parameter fields can also be changed to take in C# code instead of text, in case the value is coming from variables instead of predefined text.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/bOT7SO6SNYQEXKH4qPWJ/image.png" alt="Feature image showing how handlebar syntax can be used in Frends."><figcaption><p>Handlebar syntax can be used to add variable input from C# code into text.</p></figcaption></figure>

And finally, when handling data from the Process flow in other parts of the Process, you can use References such as **#trigger**, **#var** and **#env** to access values from the start condition that triggered the Process, variables defined in the Process, as well as Environment Variables that are centrally defined for each execution Environment, respectively. These work exactly like variables would in standard C# code and are accessible Process-wide after being initialized in the Process.

[You can learn more about using C# in Frends from here](https://app.gitbook.com/s/5LGDIGALBToaaFjbtrP5/process-development/c-in-frends).


# Connectors

Tasks and triggers are the key building blocks of integrations in Frends.

In Frends, we have Tasks instead of what is more commonly known as connectors, that perform actions towards other systems. Each Process also requires a starting condition or event listener to start, which is done using Triggers in Frends.

## Frends Tasks

Frends Tasks are the building blocks of integration processes, enabling seamless automation of workflows. Each Task is a specific operation, such as reading a file, making an API call, or manipulating data. Designed for flexibility, Tasks can be connected and configured to accomplish complex integration scenarios with minimal code.

Tasks in Frends are highly configurable and reusable, allowing for efficient orchestration and scalability of automation operations. Their modular nature ensures that Tasks can be tailored to fit specific business requirements, helping mitigate integration complexities.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/9plM1RLc5iQn9Qa0LTHt/screenshot-rocks%20(15).png" alt="HTTP Request task can be used to make HTTP requests to APIs."><figcaption><p>HTTP Task is used to make HTTP requests to APIs to send or query data.</p></figcaption></figure>

Due to the platform's flexibility, in case there are no suitable Tasks already available to your specific use case or target system, the Tasks can easily be created and added to your Frends Tenant. From [https://tasks.frends.com](https://tasks.frends.com/) you can request for an Official Task to be made, and contacting your favourite sales person or account manager you can also request a Custom Task to be made just for you.&#x20;

Our Tasks are also open source, so anyone can pull the C# source code for a Task from GitHub and make it their own. Importing the Tasks is done using NuGet packages, and NuGet feeds can also be used to automate publication from your development pipeline.&#x20;

For example, Tasks exist for at least the following target systems and technologies to perform integrations with:

{% columns %}
{% column %}
**Protocols & Messaging**

* HTTP, FTP, SFTP, AMQP, GraphQL
* JSON, XML, EDIFACT, CSV, Fixed Width Flat Files

**Cloud Services**

* AWS
* Azure
* Google Cloud

**Data & Analytics**

* Databricks, Analytics Cloud, Celonis
* Excel, JSON, Avro

**Finance & Payments**

* BILL, Expensify, Chargify, FinancialForce

**AI & ML**

* Google Dialogflow, Google Speech-to-Text, Text-to-Speech, Vision
  {% endcolumn %}

{% column %}
**ERP & CRM**

* Salesforce, HubSpot, Capsule CRM, Insightly, Zoho, Anaplan

**File & Content Management**

* Dropbox, Box, Egnyte, Bynder, BrickFTP

**Project & Workflow Tools**

* JIRA, Asana, Basecamp, Hive, Trello

**Messaging & Communication**

* Gmail, Exchange, Intercom, Facebook Lead Ads, Instagram

**Utilities & DevOps**

* GitHub, Codeship, Confluence, BambooHR
  {% endcolumn %}
  {% endcolumns %}

You can learn more about Tasks [here](https://app.gitbook.com/s/5LGDIGALBToaaFjbtrP5/shapes/activity-shapes/task).

## Frends Triggers

Frends Triggers initiate action within the integration system, responding to external events or scheduling needs. They act as the "listener" components, waiting for specified conditions to occur—such as receiving a new message, elapsed time intervals, or API calls—before executing a set of Tasks.

The configurability of Triggers allows them to handle various input types and scenarios. This ensures that the right Tasks and Processes are executed precisely when needed, optimizing resource use and improving process efficiency.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/U59fiblDI3e4971wNdIP/screenshot-rocks%20(16).png" alt="Schedule trigger is used to run process according to date and time."><figcaption><p>Schedule Trigger is used to run the Process according to date and time.</p></figcaption></figure>

Together, Tasks and Triggers form the backbone of the Frends platform, enabling adaptable and robust system integrations. This empowers businesses to automate and streamline operations, resulting in increased productivity and reduced operational costs.

You can learn more about Triggers [here](https://app.gitbook.com/s/5LGDIGALBToaaFjbtrP5/shapes/event-shapes/trigger).


# Reusable Content

Keeping yourself DRY makes things more simple.

In order to keep up with DRY principle (Don't Repeat Yourself), Frends includes Subprocesses and Environment Variables to allow defining functionality and values once and reusing them in your Processes.

## Subprocesses

Subprocesses in Frends are like building blocks that help simplify complex integrations. They're reusable bits of Tasks and logic that you can run across different Processes. By breaking things down, Subprocesses make everything easier to manage, share, and update, allowing team members to independently tackle different parts of a project.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/NIzzudP05dbUrdGPZrcF/screenshot-rocks%20(17).png" alt="Subprocess calls can be used similarly to tasks. They contain process logic similar to the main processes."><figcaption><p>Subprocess calls can be used similarly to Tasks. They contain Process logic similar to the main Processes.</p></figcaption></figure>

Basically the only differences between "Main Processes" and Subprocesses are that you can only define a single manual Trigger, which is used to provide parameters to the Subprocess to work on, and that Subprocesses can be called from Processes and other Subprocesses, while Processes cannot. Subprocesses can also be **called on unhandled errors** from Processes, making them the catch-block error handlers.&#x20;

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/GunKzQCTWwk4BzUmx4B9/screenshot-rocks%20(18).png" alt="Error handler subprocess can be used to process errors, that were not handled during process execution."><figcaption><p>Error handler Subprocess can be used to process errors, that were not handled during Process execution.</p></figcaption></figure>

## Environment Variables

In case it is global values you need in multiple Processes, or values that are Environment specific, such as different credentials and connection points for testing and production, Environment Variables are there to take care of them.&#x20;

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/ByLEf2gmDKocnm04zVEE/screenshot-rocks%20(26).png" alt="Environment variables are global values for each environment."><figcaption><p>Environment Variables are the global values for each Environment.</p></figcaption></figure>

Environment Variables are defined centrally in the Environment Variables section of Frends Control Panel, and can hold groups of values for different purposes. Values can be grouped together by their purpose, such as per target system or for specifically global error handling, and the values themselves can be textual, numerical, lists or secrets.&#x20;

As the key feature of Environment Variables, each Environment in your Frends Tenant can receive separate values for the same variable. This makes it easy to develop and test the integrations using test values and other test environments, and when the Process is ready, it can be deployed to production without any changes to the Process itself, because the Environment-specific values are defined separately and centrally in Environment Variables.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/TsXWyhvQ0GnbX5T3ZRJ4/screenshot-rocks%20(27).png" alt="Using environment variables is recommended for example for connection parameters."><figcaption><p>Using Environment Variables is recommended for example for connection parameters.</p></figcaption></figure>


# Templates

Starting point for your own customizations.

Frends Templates are pre-built structures designed to expedite workflow creation and integration processes. They serve as a blueprint that aids in maintaining consistency and minimizing potential errors. By utilizing these Templates, users can save significant time in setting up new integrations, as they provide a reliable and tested starting point tailored for various common tasks.

## Starting with Templates

To begin Process development in Frends using Templates, navigate to Templates section in your Frends Control Panel and explore the Template list. Once you have identified a suitable Template, you can select it to initiate the workflow creation.&#x20;

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/Lp1xZ3g95oxyw210EkvG/screenshot-rocks%20(28).png" alt=""><figcaption><p>Templates give a starting point for development for the most common use cases.</p></figcaption></figure>

In case your Tenant doesn't yet have a suitable Template for you, you can check out more Templates at [https://templates.frends.com](https://templates.frends.com/). This library is organized by targeted system, making it easy to find Templates relevant to your specific system or Process needs.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/CbAbUXsNDZC45wk5CzMM/screenshot-rocks%20(29).png" alt=""><figcaption></figcaption></figure>

After selecting a Template, you can customize it to better fit your operational requirements. The Templates are designed to be flexible, allowing you to modify parameters, add Tasks, or adjust conditions to align with your organizational goals. This approach not only facilitates a swift setup but also ensures that all new Processes are built upon a solid and well-tested foundation, minimizing integration errors and expediting deployment.

## Templates for Business Users

In the Frends Business Automation Portal, Templates serve as the foundation for streamlining workflow creation and management. Business users can easily select and run pre-designed Templates tailored to frequently encountered Processes, enhancing operational efficiency and reducing setup time. The portal simplifies complex Processes by utilizing the Templates, enabling Processes to be executed without the need for Process editing or other technical know-how.&#x20;

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/AY35jeBE6jMJTzoPstqs/image.png" alt="Templates are shown as available processes in BAP"><figcaption><p>Templates are shown as available Processes in the Business Automation Portal.</p></figcaption></figure>

Instead of being the starting point for Process development, Templates are the Processes that can be executed from the Business Automation Portal, to obtain immediate results of the Process using the parameters provided by the user. Just like for normal Process executions in Frends Control Panel, BAP provides access to the execution details to find out what was done, and what the results were.&#x20;

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/nCKhPeuhM2DZQNYv7oLd/image.png" alt="View showing process execution details at a glance."><figcaption><p>View showing Process execution details at a glance.</p></figcaption></figure>

Because it is a separate environment, there is no need to worry about technical details, integration management or consider the integration architecture or setup in Business Automation Portal. Each Process executed there are their own instance and entity, separate from the larger whole happening in your Frends Tenant.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/lKMXmlLyAz5d1qkQRPxV/image.png" alt="Execution details are shown visually, without the extra technical clutter available in control panel."><figcaption><p>Execution details are shown visually, without the extra technical clutter available in Control Panel.</p></figcaption></figure>

## Template Development

Creating new Templates is just as easy as creating new Processes. In fact, Templates are created from the Processes you have created. Just select **Update or Create a Template from Process**, set up the general values to identify the Template, and you're done.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/ovx37VFOn5NCx1b7as5n/image.png" alt="Showing template creation parameters that are available."><figcaption><p>Template creation parameters.</p></figcaption></figure>

In case you want to modify your Process to act as an executable Template for Business Application Portal, you might want to set up the key values as Process Variables in the Process Editor.&#x20;

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/dGGx7UElaeF4jDIRMEi7/image.png" alt="Specifying process variables in the process editor makes it possible to adapt the template to different users and environments."><figcaption><p>Specifying Process Variables in the Process Editor makes it possible to adapt the Template to different users and environments.</p></figcaption></figure>

In general, these values might otherwise be provided as Environment Variables, but for Template use, when they are provided as Process Variables, the values can be filled in when the Template is taken to use, instead of relying on the Environment-specific values. Especially when exporting the Template to another Frends Tenant does this become important, as the new Tenant might not have the same Environment Variables set.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/tVbS4sO2fNv2c0OEKKCC/image.png" alt=""><figcaption><p>When creating a Process from the Templates, the Process Variables are set for the specific use case.</p></figcaption></figure>

It is then up to the Template user to provide the Process Variables the values as Environment Variables. The default value for the Process Variables can also be set as Environment Variables, providing information to the Template's user that it might be good idea to do that as well.


# API Management

Creating and managing APIs has never been easier.

Frends includes built-in API management features that you can easily use to create and manage your APIs. With the provided tools, you can create an API using OpenAPI specification, link a Process into each endpoint and then, using our low-code Process Editor, create the logic behind each endpoint. Alternatively, the APIs can be specified as passthrough APIs, where Frends will connect the public endpoint in Frends to another API endpoint in your target system.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/WKmxd6fD8MBohmseqT29/screenshot-rocks%20(56).png" alt=""><figcaption><p>API Management view in Frends.</p></figcaption></figure>

The provided monitoring tools will give you wide access to checking and filtering the logs for incoming requests for each Environment. If, and when, you want to limit who can access your APIs, our powerful API Policies provide a plethora of settings that you can use to authenticate and authorize callers to your endpoints. And finally, to get a word out that you have a new API, the API Portal will show your users exactly what your API can do.

## API Specification

The API Management page in Control Panel is the central management view for all of your APIs. From here, you can create new APIs by providing an OpenAPI specification for it, and then creating a new Process or linking an existing Process to each endpoint you have specified in the spec.&#x20;

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/ORVlLgBuo1Mkh1FlwgLY/screenshot-rocks%20(57).png" alt=""><figcaption><p>OpenAPI specification editor to create or edit an API.</p></figcaption></figure>

To learn more about creating APIs with Frends, head over to [How to create an API with Frends](https://app.gitbook.com/s/0p415NUmUmiF4ayjI81L/api-management/how-to-create-an-api-with-frends "mention").

## Passthrough APIs

Passthrough APIs allow you to forward requests from the Frends API endpoints to your system's provided APIs, in the case where data conversion or other logic is not needed. They are excellent to use to keep a coherence in your API branding, having all used endpoints within the same domain, without requiring much configuration or overhead from creating a Process in between where nothing really happens.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/Aw1pAvLmNhIe7AoLBASO/screenshot-rocks%20(58).png" alt=""><figcaption><p>Passthrough API creation view.</p></figcaption></figure>

Read more at [passthrough-apis](https://docs.frends.com/docs/frends-development/api-management/passthrough-apis "mention") page.

## API Policies

API Policies are used to authenticate API callers with API keys or OAuth bearer token, as well as to manage the logging and throttling options for the endpoints.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/45lEdWnCMSfodyN93TVl/screenshot-rocks%20(59).png" alt=""><figcaption><p>API Policy for setting up API key authentication.</p></figcaption></figure>

API Policies allow you to define the targeted API endpoints that the policy applies to. It can also target the endpoints through implicit wildcard if only the beginning of a URL is specified.

[Read more about API Policies here](https://docs.frends.com/docs/frends-development/api-management/api-policies).

## API Monitoring

In order to monitor what is happening with your Frends APIs, the **API monitoring** page shows you all the connections made into your tenant, and what happened with them.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/L3vlSYp8unqefRc01JUB/screenshot-rocks%20(61).png" alt=""><figcaption><p>API logs in Frends API management.</p></figcaption></figure>

You can easily filter the log by API operation, status code of the response, and what method was used, to figure out what is happening. The logs include events for all requests made against your tenant, and not only the specified API endpoints, so you can also see all the unsolicited attempts made against your environment.


# API Specification

Creating an API is as easy as defining the OpenAPI specification.

The API Management page in Control Panel is the central management view for all of your APIs. From here, you can create new APIs by providing an OpenAPI specification for it, and then creating a new Process or linking an existing Process to each endpoint you have specified in the spec.&#x20;

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/ORVlLgBuo1Mkh1FlwgLY/screenshot-rocks%20(57).png" alt=""><figcaption><p>OpenAPI specification editor to create or edit an API.</p></figcaption></figure>

To learn more about creating APIs with Frends, head over to [How to create an API with Frends](https://app.gitbook.com/s/0p415NUmUmiF4ayjI81L/api-management/how-to-create-an-api-with-frends "mention").


# Passthrough APIs

Coherent API endpoints without extra fluff.

Passthrough APIs allow you to forward requests from the Frends API endpoints to your system's provided APIs, in the case where data conversion or other logic is not needed. They are excellent to use to keep a coherence in your API branding, having all used endpoints within the same domain, without requiring much configuration or overhead from creating a Process in between where nothing really happens.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/Aw1pAvLmNhIe7AoLBASO/screenshot-rocks%20(58).png" alt=""><figcaption><p>Passthrough API creation view.</p></figcaption></figure>

To configure a passthrough API, you need to have created an API to Frends, and then click **Create passthrough API** button in API management view. In the passthrough API editor, you can specify the target url for each API endpoint, optionally passing along parts of the original request's url or query parameters, as well as manage the headers used in the passthrough.

You can also create an **All endpoints** passthrough, which will always pass on the final part of the request path and query parameters to the target API without having all possible endpoints defined in the API specification. The original url and path are replaced with the target system's url and path.&#x20;


# API Policies

Authentication and logging rules for your API endpoints.

API Policies are used to authenticate API callers with API keys or OAuth bearer token, as well as to manage the logging and throttling options for the endpoints.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/45lEdWnCMSfodyN93TVl/screenshot-rocks%20(59).png" alt=""><figcaption><p>API Policy for setting up API key authentication.</p></figcaption></figure>

API Policies allow you to define the targeted API endpoints that the policy applies to. It can also target the endpoints through implicit wildcard if only the beginning of a URL is specified.

### API Authentication

For each API Policy, either one or more authentication methods can be defined, ranging from externally defined OAuth providers to locally defined API keys. In addition, the APIs can be set to be publicly available, requiring no authentication. In Frends, the lack of authentication method setup or API Policy for your API does not mean public access, but rather no access. An API Policy is required to be set up to allow anyone to connect to it.

### Logging policies

Finally, you can add a **logging configuration** to the API policy, to define whether or not API events should be logged for the targeted endpoints in specified Environments, and what details are logged.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/6jQ69wWiTdEiRsz7g9st/screenshot-rocks%20(60).png" alt=""><figcaption><p>API logging configuration options.</p></figcaption></figure>

Like with authentication, not setting up a logging policy will mean no logging for the APIs. This is to avoid increasing load and storage requirements by default, and only enabling logging will give you access to it.

This only applies for the API connection logging, available in API Monitoring. Linked Processes in your APIs will be logged as per the Environment log settings.

### Combining policies

Combining the freely defined targeted endpoints, public access identity rule and logging options, the policies makes it possible to define purely logging-specific policies in addition to authentication policies. If multiple policies target the same endpoints, it is possible to separate authentication, logging and throttling options into multiple policies, as well as creating global policies that set up the default values for your Environments.

[Check here for a guide on how to create an API Policy](https://app.gitbook.com/s/0p415NUmUmiF4ayjI81L/api-management/setting-up-api-policies).


# API Monitoring

Monitor all the connections to your tenant.

In order to monitor what is happening with your Frends APIs, the **API monitoring** page shows you all the connections made into your tenant, and what happened with them.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/L3vlSYp8unqefRc01JUB/screenshot-rocks%20(61).png" alt=""><figcaption><p>API logs in Frends API management.</p></figcaption></figure>

You can easily filter the log by API operation, status code of the response, and what method was used, to figure out what is happening. The logs include events for all requests made against your tenant, and not only the specified API endpoints, so you can also see all the unsolicited attempts made against your environment.


# AI features

In Frends, AI is not an afterthought.

Welcome to Frends AI, where innovation works hand in hand with functionality to enhance your business. Explore how AI can improve productivity, efficiency, and seamless integration in your operations.

## AI Assisted Development

Frends includes powerful AI tools to help you with creating your Processes exactly the way you need them to be. AI can help you both to set up a Task's parameters, as well as generate you code into a Code Task shape to perform more advanced actions within your Process.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/kLFZZIxu2shVQYewSreJ/image.png" alt="Image showing AI Assistant at work, performing Task configuration."><figcaption><p>Simply provide the AI what you want to do, and it will suggest you parameters for the Task.</p></figcaption></figure>

Read more about the AI development features from [ai-assisted-development](https://docs.frends.com/docs/frends-development/ai-features/ai-assisted-development "mention") page.

## AI Assisted Documentation

In addition to providing AI Assistants for helping you create Processes and the functionality you require, Frends also includes automatic Process documentation generation with AI. This will take care of the often most important aspect of development, which no one usually wants to do if asked. With AI assisted documentation generation, there are no excuses for not having up to date docs for your Processes.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/M0z6UsPHzCRyq34ihZQD/image.png" alt=""><figcaption><p>Just click a button and you have comprehensive documentation about the Process.</p></figcaption></figure>

[Check here to learn how to automate your documentation](https://docs.frends.com/docs/frends-development/ai-features/documentation-generation).

## Intelligent AI Connector

Without including AI in your business processes, AI is just a tool to help you achieve what you need to do. While not a bad thing by itself, allowing AI to participate as part of the process will free you from the task altogether. In Frends, AI can be included in the Processes natively using Intelligent AI Connector, automating tasks that have so far required human input.&#x20;

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/9aX2LfP5g21Ez1DE7nnV/screenshot-rocks%20(76).png" alt="Picture showing the Native AI shape as part of a Frends Process."><figcaption><p>Intelligent AI Connector in action.</p></figcaption></figure>

[Learn more about the AI revolution here](https://docs.frends.com/docs/frends-development/ai-features/intelligent-ai-connector).


# AI Assisted Development

AI in Frends will help you with configuring Tasks as well as create code.

Frends includes powerful AI tools to help you with creating your Processes exactly the way you need them to be. AI can help you both to set up a Task's parameters, as well as generate you code into a Code Task shape to perform more advanced actions within your Process.

## AI Task Configurator

To speed up development, Frends includes an AI Assistant to help you configure the Task you need within your Process.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/kLFZZIxu2shVQYewSreJ/image.png" alt="Image showing AI Assistant at work, performing Task configuration."><figcaption><p>Simply provide the AI what you want to do, and it will suggest you parameters for the Task.</p></figcaption></figure>

In order to use the AI Assistant, all you need to is add a Task shape to your Process, decide on the Task type, and click on AI Assistant button to open the dialog. After that, simply specify what you would like to accomplish, and the assistant will provide you with parameters for the Task, with reasoning. You can then choose to use the suggested values, or discard them and refine the query more.

The AI Assistant will receive information about available variables and values in your Process and Frends Tenant, so it can automatically suggest using Environment Variables for the parameters, as well as include C# code to perform more advanced logic on what value to use.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/nRF35NRyhN3gsRlgomAu/image.png" alt=""><figcaption></figcaption></figure>

From the top right, you can also open the Context Panel to see and choose, what is provided for the AI. In case some sensitive data is provided and you would prefer not to include those, they can be removed here.

## AI Code Generator

In case you need to perform complex logic within your Process, you might prefer to use Code Task shape to write the logic out in C#. This is useful for performing complex mapping or analysis into the data within a Process. To speed this up, the AI Assistant is available here as well to give you a functional code snippet or a starting point to continue from where the AI took you.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/6AJ5NgxsfsPwNwqdWEfs/image.png" alt="Image showing the AI Code Generator in action."><figcaption><p>The AI Assistant will provide you with functional code that will work directly within Frends Code Task shape.</p></figcaption></figure>

Because writing C# code within Frends's Code Task has some special requirements that separate it from standard C# program code, the AI can help you in getting started with writing code suitable for embedding into the Process. It understands the namespace requirements as well as knows what libraries are available within Frends, and uses the Frends variables correctly to handle reference values from the Process as needed.


# Documentation Generation

Automate the least favorite task of all development with AI.

In addition to providing AI Assistants for helping you create Processes and the functionality you require, Frends also includes automatic Process documentation generation with AI. This will take care of the often most important aspect of development, which no one usually wants to do if asked. With AI assisted documentation generation, there are no excuses for not having up to date docs for your Processes.

## AI Assistant for Process Documentation

With Frends, you can have the Process documentation in the same place as your Processes, not requiring a separate platform for that as well. In addition, if you don't want to write the documentation yourself, you can ask someone else, or more likely, the Frends AI Assistant to write it for you.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/M67qREI6eUXp37M4J73W/screenshot-rocks%20(62).png" alt="Picture depicting empty field for writing documentation, while highlighting the button to generate docs automatically with AI."><figcaption><p>Afraid of blank paper? Just click a button to generate the documentation you need.</p></figcaption></figure>

What's especially good about the document generation, is that you won't need to specify any details of what you want. We took care of that with our professional integration developers, who have years of experience in creating and documenting Processes. The AI will receive all the information there is about your Process and about the environment as well, and write out perfect documentation detailing the important aspects of the Process. Just press a button, and you will have more than suitable amount of documentation about the Process, in a format that is easy to understand but detailed enough to provide information to both a seasoned veteran as well as integration newbie.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/M0z6UsPHzCRyq34ihZQD/image.png" alt=""><figcaption><p>Just click a button and you have comprehensive documentation about the Process.</p></figcaption></figure>


# Intelligent AI Connector

Allowing AI to participate in your Processes.

Without including AI in your business processes, AI is just a tool to help you achieve what you need to do. While not a bad thing by itself, allowing AI to participate as part of the process will free you from the task altogether. In Frends, AI can be included in the Processes natively using Intelligent AI Connector, automating tasks that have so far required human input.&#x20;

## Intelligent AI Connector

Intelligent AI Connector is a new building block for Processes in Frends. It allows the AI to participate in your Processes by performing actions you have specified as prompts, in the location of the Process you need to.&#x20;

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/9aX2LfP5g21Ez1DE7nnV/screenshot-rocks%20(76).png" alt="Picture showing the Native AI shape as part of a Frends Process."><figcaption><p>Intelligent AI Connector in action.</p></figcaption></figure>

Multiple prompts can be provided for the single shape, making sure the provided answer follows the required format and is repeatable. By default, Frends system prompt is given to the shape in order to make the AI work with Frends ideology and Processes specifically, instead of providing the answers in generic text or other unsuitable format. From there, it's up to the developer to specify the action taken by AI.

## Why Use AI Connector

BPMN 2.0 with AI Connector enables AI Orchestrations. Practically, you can implement the thought process of an employee as steps and decisions. Instead of requiring a human decision for categorizing an incoming message into tech or sales support cases, AI Connector with LLM models can read and categorize the message for you automatically. The Frends Process can then continue handling the case into correct destination. The whole process for multiple different ticket cases can be written as a series of prompts, decisions, and actions that combine the basic operations from Tasks and programming with input from AI.

## Choose your AI Model

The AI Connector in Frends is not tied to a single available model. While Frends provides its own AI services with a curated set of LLM Models to use for various use cases that work out of the box and no configuration, you can also provide your own Azure Inference service, or take a step towards owning your own data even further and use an on-premise Ollama installation to perform the AI actions.

## The Future

Future Frends features will expand the AI steps to do the API calls internally inside the AI step and even enable the Computer Use Access to finalize the Agentic AI path. These two steps will be included later on in our roadmap. With Intelligent AI Connector, you can already start your Agentic AI journey.


# Frends Platform API

Manage and operate your Frends Tenant using API.

The Frends Platform API allows Frends to be managed via an API interface. This can be used to automate actions, such as editing Environment Variables or deploying Processes, or accessing Process Instances for monitoring them.

## Platform management over API

Frends Platform API is a RESTful API that allows you to perform tasks and actions, and receive data from your Frends Tenant. The API thus allows automating management and monitoring tasks that otherwise would have to be done single piece at a time manually.

Accessing the API description and reference is done through your Frends Control Panel, using URL such as **yourtenant.frendsapp.com/swagger**. You can also find the latest Platform API reference from [here](https://app.gitbook.com/s/5LGDIGALBToaaFjbtrP5/frends-platform-api/platform-api-reference).

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/krq4Gu0pAcvincUOhCVM/image.png" alt="Image shows the Frends Platform API reference within your Frends Tenant."><figcaption><p>API endpoints are visible in the API description, and can be tested from here as well.</p></figcaption></figure>

Because it is an API and it's accessible within Frends as well, what better way to create your automation to your Frends Tenant than using Frends Processes to implement them. This way you can create Processes that will perform actions to other Frends Processes, as well as collect monitoring data and adjust values in your environment as needed.

The API is designed to be used in a RESTful manner specifying Frends elements to be accessed by their identifiers. Some responses provide links, which help with further requests for the elements contained in the response. Lists use paging or continuation tokens if the data is rapidly changing, e.g. Process Instances. In these cases you need to use the continuation token to have a consistent experience enumerating the list.


# Dashboard & Monitoring

Overview of the analytics features in Frends.

Frends Platform contains multiple levels of analytics and monitoring, from top-level performance and resource usage logs to integration execution logging to monitoring services and error handling that alert you if something happens. All of it presented in user friendly manner that is both easy to understand and flexible to adjust.

## Dashboard

Dashboard is a comprehensive tool within the Frends Control Panel designed to provide users with a clear and concise overview of their system activities. It includes key metrics such as performance statistics and integration execution logs. The Dashboard offers customizable widgets that allow users to tailor the view according to their specific monitoring needs. Users can adjust settings to highlight critical alerts, track error occurrences, and monitor execution counts, thus enabling proactive management and swift response to any issues that may arise.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/dgZlXoDuTFRSPajI9pET/screenshot-rocks%20(48).png" alt=""><figcaption><p>Frends Dashboard shows you a collection of widgets that provide data about Process executions.</p></figcaption></figure>

[Check here to learn more about the Dashboard](https://docs.frends.com/docs/management-and-operations/dashboard-and-monitoring/dashboard).

## Integration execution logs

Basis to majority of Frends logging, Process Instances contain information what happened during a single integration execution. At top level the instances contain information about when Process was executed, did it succeed and how long it took, as well as any results of the execution.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/pHtefuQz7T5TX7XOTye5/screenshot-rocks%20(49).png" alt=""><figcaption><p>Example view of Process Instance list.</p></figcaption></figure>

Check the [process-instances](https://docs.frends.com/docs/management-and-operations/dashboard-and-monitoring/process-instances "mention") page to learn more about Process logs.

## Error handling & Monitoring

Frends implements multiple ways to handle errors from Processes. While the best option is to have no errors, working with multiple external systems means not everything is controlled by Frends.&#x20;

Frends includes multiple layers of error handling features available to use within Processes, around Processes and on Environment wide level.&#x20;

[Check out here on all the options for error handling and Process monitoring in Frends](https://docs.frends.com/docs/management-and-operations/dashboard-and-monitoring/error-handling-and-monitoring).

## System logs

Frends platform provides logs to monitor the systems that are running your Frends Tenant.

### Agent logs

Agent event logs, accessible under Administration and Environments, show system and Frends Agent events, showing what is happening in the background. Any unhandled errors from integrations, system errors and possible causes of more widespread issues are shown here for each Agent in your Tenant.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/BQwSDh148IdUzqvuehfG/image.png" alt="Picture shows Frends Agent&#x27;s events from a development environment."><figcaption><p>Filterable list of events from the Agent are shown under Environment administration.</p></figcaption></figure>

### API Monitoring

In order to monitor what is happening with your Frends APIs, the **API monitoring** page shows you all the connections made into your tenant, and what happened with them.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/L3vlSYp8unqefRc01JUB/screenshot-rocks%20(61).png" alt=""><figcaption><p>API logs in Frends API management.</p></figcaption></figure>

You can easily filter the log by API operation, status code of the response, and what method was used, to figure out what is happening. The logs include events for all requests made against your tenant, and not only the specified API endpoints, so you can also see all the unsolicited attempts made against your environment.

## AI Audit Logs

Monitoring the use of AI is often critical for security and debugging, due to AI operating almost like a black box, without insight into why the specific decisions and actions were done.

AI audit logs in Frends provide visibility to what the AI is being used for in your Frends Tenant, as well as showing the amount of use AI receives and how much usage, measured in Frends credits, you have left from your Frends subscription. You can also configure additional Frends credits availability here.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/uNNRFu8SJbGfL8UkjxBS/image.png" alt=""><figcaption><p>Usage graphs for AI in your Tenant.</p></figcaption></figure>

Read more about the AI logging at [ai-audit-logs](https://docs.frends.com/docs/management-and-operations/dashboard-and-monitoring/ai-audit-logs "mention") page.


# Dashboard

Central monitoring view in Frends Control Panel.

Dashboard is a comprehensive tool within the Frends Control Panel designed to provide users with a clear and concise overview of their system activities. It includes key metrics such as performance statistics and integration execution logs. The Dashboard offers customizable widgets that allow users to tailor the view according to their specific monitoring needs. Users can adjust settings to highlight critical alerts, track error occurrences, and monitor execution counts, thus enabling proactive management and swift response to any issues that may arise.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/dgZlXoDuTFRSPajI9pET/screenshot-rocks%20(48).png" alt=""><figcaption><p>Frends Dashboard shows you a collection of widgets that provide data about Process executions.</p></figcaption></figure>

## Dashboard widgets

At the core of Dashboard are the customizable widgets that allow you to organise and filter the view as needed.

At the simplest level, counters for successful and failed Process executions are provided, which you can filter according to Environment and tags added to Processes. These are useful for showing the current count from the chosen time period, and how it has changed from the earlier time.

To give more tracking on the trend of execution counts, Process execution graph can be used to visualize the trend of Process execution counts over a period of time. It can used for both longer time periods, spanning multiple days, as well down to one day, showing the changes in execution counts within the day by the hour.

Common need and use case for monitoring is for errors. The errors widget provides you with a simple list of Processes that have had errors in the executions lately. It too can be filtered by Environment and Process tags, allowing you to focus on the specific set of Processes that make up your solution.&#x20;

## How to access Dashboard

You can find the Dashboard from Frends Control Panel, from the menu under your profile name.

To learn more about Dashboard, you can check out our guide at [How to use Dashboard](https://app.gitbook.com/s/0p415NUmUmiF4ayjI81L/integration-management/how-to-use-dashboard "mention").


# Process Instances

Logging for the Process executions.

Basis to majority of Frends logging, Process Instances contain information what happened during a single integration execution. At top level the instances contain information about when Process was executed, did it succeed and how long it took, as well as any results of the execution.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/pHtefuQz7T5TX7XOTye5/screenshot-rocks%20(49).png" alt=""><figcaption><p>Example view of Process Instance list.</p></figcaption></figure>

## Process Instance logs

You can view the Process execution and all its steps by opening any of the Process Instances from the list. On a default log level, all the results of each Process Task are logged into the Process Instance. This can be adjusted based on your needs to log more, including the input parameters for each Task and shape. Or less, to focus solely on erroneus executions, to save bandwidth, storage and performance for the actual execution.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/5gfykxdNAs5MoO35SHkK/image.png" alt=""><figcaption><p>Process executions can be viewed from the Process Instance list, including the steps in the Process.</p></figcaption></figure>

With the Process Instance open, it's possible to click and view the logged values for each shape in the Process. This allows for easy debugging and fast development, as well as clear view to less technical personnel on what happened during each Process execution.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/qUBRqPwVf9vVuJGnTCzk/image.png" alt=""><figcaption><p>HTTP response for an API call shows the duration, response body as well as headers.</p></figcaption></figure>

## Promoted values & Skip logging

Sometimes it's also useful to get more details about an execution into the Process Instance list directly. **Promoted values** can be used to do exactly this during development of a Process. When a shape in the Process is set to promote the result, the value for that shape will be shown on the Process Instance list, and the executions can then be searched by that value.

A side effect of the promotion is that the value will always be logged in the Process Instance, regardless of the set log level, including input parameters. Promoted values can thus also be used as a debugging method even when the Environment as a whole would otherwise have reduced logging set.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/6Va2gutqHbrKRNxg2H7b/image.png" alt="Picture of Frends Process Editor, showing the advanced settings for a shape."><figcaption><p>Advanced settings for shapes allow adjusting the logging behaviour for that shape alone.</p></figcaption></figure>

As an opposite to promoted value, it's also possible to set a shape to **skip logging result and parameters**. This is useful for hiding sensitive information, such as passwords, authentication tokens and social security numbers from the logs. While it reduces the ability to debug errors for those shapes, it increases the security of Process Instance logs.

It can also have positive implications for the performance, in case the amount of data for the shape is large. Not logging all of the data can be beneficial in many ways. Under default log level settings, the maximum data size logged is limited to 100 array entries or 8192 characters of textual data.&#x20;

## How to access Process Instances?

Process Instances can be accessed through the Process list for each Process and for each Environment. You can find more information about how to read Process Instance logs from this guide: [How to view integration logs](https://app.gitbook.com/s/0p415NUmUmiF4ayjI81L/integration-management/how-to-view-integration-logs "mention").


# Error handling & Monitoring

How to handle errors in Frends Processes.

Frends implements multiple ways to handle errors from Processes. While the best option is to have no errors, working with multiple external systems means not everything is controlled by Frends.&#x20;

Frends includes multiple layers of error handling features available to use within Processes, around Processes and on Environment wide level.&#x20;

## Process error handling

Each Process in Frends can implement their own error handling procedure. At its simplest, a Catch shape can be used to handle any errors within the Process, without disrupting the Process execution more than necessary. This can be useful, if execution should continue for the remainder of data being handled, or if the error is small and can be fixed during the execution.&#x20;

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/1Xh6ZwcrofuGIuFsMvPK/image.png" alt="Image shows a Catch shape being used within Frends Process."><figcaption><p>Common structure in Frends Process to handle an error within the Process.</p></figcaption></figure>

Another option for error handling is using a common Subprocess to handle any errors that occurred during Process execution. This way if there are errors within Process that were not handled, a Subprocess will be called and it will execute its logic to handle the error. Common scheme to handle errors is to send an alert by email, optionally having a treshold value before or after sending an email.&#x20;

Because the error handling is implemented as a Subprocess in Frends, the logic for it is just as flexible and easy to create as the integrations themselves. It should be noted however, that the Process execution will have stopped by the time the error handling Subprocess is executed, so it is only usable for alerting and possibly for cleanup of the Process.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/0t83MhsYfWjYuLbH0yaT/image.png" alt="Image showing parameters for Subprocess to call on unhandled error."><figcaption><p>Parameters for Subprocess to call on unhandled error are specified by the Subprocess.</p></figcaption></figure>

## Monitoring Rules

In case even more complex monitoring and email alerts are required, Frends includes Monitoring Rules. These rules can be set to trigger a Process or send email alert if the conditions are fulfilled in the environment.&#x20;

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/fZzhxNZTFje6jGzH7GaI/screenshot-rocks%20(50).png" alt=""><figcaption><p>Monitoring rule view showing instance counts for the specified rule.</p></figcaption></figure>

Common use cases for Monitoring Rules are to see if errors occur multiple times over a time period, or if integrations are not executed at all within a specified time, or less times than what is expected. They can also be used to monitor if something takes longer than expected. While these would be difficult to check and monitor within Process Instances, at Environment level it becomes easier and more intuitive to set up rules to monitor your integrations.

At the basis of Monitoring Rules are the promoted values from Processes. Monitoring Rules specifically target and monitor the promoted values from all Processes in the Environment, so it's possible to target either one or more Processes, or only specific errors from multiple different Processes.

And when the Monitoring Rule does notice that an alert should be made, it can be set to be either a simple email alert to specified recipients, or more advanced set of alerting and error handling tasks by triggering a Process to run, when the rules are fulfilled.


# System Logs

System logs from the Agent and the containing operating system.

Frends platform provides logs to monitor the systems that are running your Frends Tenant.

## Agent Logs

Agent event logs, accessible under Administration and Environments, show system and Frends Agent events, showing what is happening in the background. Any unhandled errors from integrations, system errors and possible causes of more widespread issues are shown here for each Agent in your Tenant.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/BQwSDh148IdUzqvuehfG/image.png" alt="Picture shows Frends Agent&#x27;s events from a development environment."><figcaption><p>Filterable list of events from the Agent are shown under Environment administration.</p></figcaption></figure>

## API Monitoring

In order to monitor what is happening with your Frends APIs, the **API monitoring** page shows you all the connections made into your tenant, and what happened with them.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/L3vlSYp8unqefRc01JUB/screenshot-rocks%20(61).png" alt=""><figcaption><p>API logs in Frends API management.</p></figcaption></figure>

You can easily filter the log by API operation, status code of the response, and what method was used, to figure out what is happening. The logs include events for all requests made against your tenant, and not only the specified API endpoints, so you can also see all the unsolicited attempts made against your environment.


# AI Audit Logs

Monitor the use of AI in your Frends Tenant.

Monitoring the use of AI is often critical for security and debugging, due to AI operating almost like a black box, without insight into why the specific decisions and actions were done.

AI audit logs in Frends provide visibility to what the AI is being used for in your Frends Tenant, as well as showing the amount of use AI receives and how much usage, measured in Frends credits, you have left from your Frends subscription. You can also configure additional Frends credits availability here.

## AI Audit Log

Accessible under **Administration > AI Audit Log**, the view will show you at a glance the number of Augmented AI sessions and Frends credits used for the current month.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/uNNRFu8SJbGfL8UkjxBS/image.png" alt=""><figcaption><p>Usage graphs for AI in your Tenant.</p></figcaption></figure>

In order to monitor what was prompted from the AI, by who, and what was the response from the AI, you can check out the **Prompts** list below. This will show you all the prompts made and responses received by the users in your Frends Tenant, as well as the context provided for the AI. For information security auditing, this data is invaluable to make sure no sensitive data is being leaked through the AI.

Note that the use of AI Connector is not visible here due to possibly large amount of executions being done at any time. Executions of AI Connector and its reasoning log is visible in corresponding Process Instance log, if logging is enabled.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/I4WL0Yc71xyv7Ihvc8WC/image.png" alt=""><figcaption><p>Clicking on Show Context for any AI interaction in the Prompts list shows all the data being sent from Frends.</p></figcaption></figure>

## Frends credits

Using Frends AI in your Frends Tenant consumes credits, that are based on the model being used and how many tokens each interaction with AI required. All Frends subscriptions that include AI features will also include a number of credits available to use at no additional cost for you.&#x20;

If the monthly credit limit is reached, using AI will be blocked from you until next billing period. While the included amount of credits is enough for getting started with AI, heavier use of AI features may require obtaining more credits to continue using the AI.&#x20;

In order to obtain more Frends Credits, click on **Modify monthly limit** button next to the Frends credits usage graph. You can enable **Pay-as-you-go** option to increase the monthly limit of available Frends credits for you. Any credits used over the included amount will be billed afterwards with your Frends subscription.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/cccMz1U9WAug6glibQvn/image.png" alt=""><figcaption><p>Enabling pay-as-you-go allows you to modify the monthly limit for Frends credits usage.</p></figcaption></figure>


# User Management

Frends includes RBAC user management capabilities.

Frends provides powerful user administration and management features in the Frends Control Panel. Users are Tenant-specific and they are specifically for accessing the Control Panel and performing actions within, and not related to who can access your APIs or HTTP endpoints, those are controlled separately using API Policies.

At its basics, users are managed in Frends using RBAC or Role-Based Access Control model, and in addition different authentication methods can be integrated into Frends from the User Management.

## Users & Roles

Administering users in Frends is as simple as defining the usernames and the roles connected to that account, to provide the user access to your Frends Tenant and give him permissions to access the necessary areas. Because user account management and handling is not done within Frends, only the username used with your authentication provider is needed to connect your authentication method to permissions for the user.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/p8ThUgv9E0uN3PfksYo8/image.png" alt="Picture shows the default view of User Management section in Frends."><figcaption><p>Default view of User Management section in Frends.</p></figcaption></figure>

By default, users can be assigned to Administrator, Editor and Viewer roles, giving different levels of access to the Frends Control Panel. The roles are customizable and new roles can be created to suit your specific needs.&#x20;

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/WPyK41PgXEbrrCjGIrP1/image.png" alt="Picture shows the settings for Editor role."><figcaption><p>Default values for the Editor role allow creating and editing integrations.</p></figcaption></figure>

By combining the role-based access rules with Environments and Process tags, it's possible to control what Environments and Processes a user can access or not. As examples, it's possible to restrict developers from accessing the production environment, including pushing changes there, or allow the user to only see Processes with specific tag.

Learn more about the user management capabilities in our [Role-Based Access Control](https://app.gitbook.com/s/5LGDIGALBToaaFjbtrP5/administration/role-based-access-control "mention") reference page.

## Authentication Providers

In order to log in to your Frends Control Panel, authentication provider needs to be set up. Out of the box,  Auth0 provider by Frends is set up, giving initial access to the Control Panel and to your Frends Portal.&#x20;

Under the OpenID tab of User management view you can set up the authentication providers needed. For example, Microsoft Entra ID can be used to log in to Frends Control Panel, once the app registration for Frends is done in your organisation's Azure Portal and it also has been set up as authentication provider under the OpenID tab in Frends' User management.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/RKa3UnM2zbPSRvtL6nM5/screenshot-rocks%20(63).png" alt="Standard authentication providers in Frends Tenant being shown."><figcaption><p>Standard authentication providers within a Frends Control Panel.</p></figcaption></figure>

While the provided authentication by Frends can be used fully to access and use Frends, from account management and security perspective it makes sense to connect your internal SSO solution to your Frends Tenant as well, in order to make sure the Frends Tenant cannot be accessed by users who have already left company through the use of separate credentials.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/zE8i3sAeK4u3XiDtAciD/image.png" alt="Picture shows the available authentication methods on the Frends Control Panel login screen."><figcaption><p>Configured authentication providers will visible on the login screen for Frends Control Panel.</p></figcaption></figure>


# Task Management

Managing Tasks in your Frends Tenant.

Tasks are the crucial building block of Frends that allow creating visually easy to understand Processes with minimal programming requirements. As the number of different Tasks grow, including them all at once in every Frends Tenant would make for a cluttered experience.

Instead, Tasks can be imported and removed from each Frends Tenant as needed.&#x20;

## Task Management

Tasks are managed from the **Administration > Tasks** menu, which provides the list of existing Tasks already imported to your Tenant, as well as options to bring in more.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/IgLCY4PqRMXThcHj2p2z/image.png" alt=""><figcaption><p>Default view for Task management.</p></figcaption></figure>

The default view lists the existing Tasks in your Frends Tenant.&#x20;

### Task updates

If there are any updates to imported Task packages in your Tenant, you will be given the option to update them. Version updates to Tasks often include security updates, bug fixes and sometimes new features, so it's recommended to occassionally check if there's any new updates available for you.

In order to easily see any available updates to Tasks, you can toggle the **Show only updatable** option on to filter the Task package list.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/IkOXVX96dK6JQAcJ8t0x/screenshot-rocks%20-%202025-09-18T120843.104.png" alt=""><figcaption><p>Tasks with updates are displayed with an icon next to the Task name.</p></figcaption></figure>

While performing an update you can also choose to not update any Processes using the Task. This allows keeping any existing Processes as they are, and only update the Tasks in affected Processes by hand if necessary. Any deployed Processes that are in use are not affected either way, updating the Processes with Task update only creates a new version from the Process, instead of performing in-place update.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/wpKirUoZAu5m77IcSnG9/image.png" alt=""><figcaption><p>Updating Task packages gives you options how to do it.</p></figcaption></figure>

### Search for Task

In order to find more Tasks to import to your Frends Tenant, you can use the **Search for Task** button to open a search view. Search is performed for all Task packages that are included in the **Nuget sources**, defined also in the Task management. By default, only official and legacy Tasks from Frends are included, but more can be added to be findable, such as community Tasks and custom sources.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/IPL2jjFXdvmAFxpGudYY/image.png" alt=""><figcaption><p>Task search in Task management.</p></figcaption></figure>

Searching for Tasks is the main method to find and import Tasks to your Frends Tenant. You can also see if a Task has already been imported to your Tenant, and can choose the version of the Task to import.

### Importing a Task

Once a Task has been found from search, click on **Import** next to it to perform import. Before the Task is imported, you can select whether to import the Task for use, or **only upload the NuGet package to storage**. This option can be used to import a Task package for preloading dependencies that another Task package requires, rather than for actual use.&#x20;

For most use cases, the importing the Task as is is used, without the option enabled.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/ODmxB8qt5jEEdL4urE3A/image.png" alt=""><figcaption><p>Importing a Task.</p></figcaption></figure>

Once a Task has been imported, it can be used in Process Editor.&#x20;

When importing a Task, make note of the targeted .NET version. **.NETCoreApp 6.0** means the Task package is created for Processes targeting .NET versions 6 and 8, which is the latest and default. Packages targeting .NET Framework 4.7.1 and .NET Standard 2.0 are legacy Task packages and not available for use on newer versions.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/DpJej4Ky9uEdjKG5rOYx/image.png" alt=""><figcaption><p>Task has been updated, but Process can continue using an old version with a warning.</p></figcaption></figure>

### Importing Task as NuGet package

If you have a custom Task created and packaged, or you have a Task you need as separate NuGet package, using **Import Task NuGet** button in Task management view can be used to perform the import.  Similarly to importing a Task package from NuGet sources, same options and notes apply.&#x20;

While importing these essentially custom Tasks works the same as for official Tasks from NuGet feeds and repositories, updating them will require separate import instead of automated notification of update being available.

### NuGet sources

In order to find Tasks using the search, the Task needs to be available in the specified NuGet sources, which are NuGet feed endpoints that contain an updated list of Task packages available from there.

Frends supports public NuGet endpoints of version 2. Private endpoints and version 3 endpoints are currently not supported.


# Integration Lifecycle

CI/CD is built in to Frends.

Frends provides effective tools to control the development and release cycle for your Processes. With the Environments and versioning Frends provides, it's possible for developer to develop integrations, test them in development environment, and push the new version forward with just a click of a button.&#x20;

Assuming your other systems support separate testing and production environments, Frends includes easy to way manage and differentiate functionality and values by the Environment the Process is deployed to.

## Environments & Agent Groups

To separate different uses for different publications of the Processes, Frends provides Environments. These can be used to separate development, testing and production sites from each other by their use and target systems, by defining and using Environment Variables. When defined and used in Processes, Environment Variables can hold different values by the Environment the Process is deployed to.&#x20;

While Environments separate the different sites logically by use purpose and shared values, Agent Groups in them define the actual location where the Processes will be executed. Because Frends supports hybrid architecture for execution environment, the Agent Groups essentially define whether the execution is done in dynamic containers, in the cloud or on an on-premise server.&#x20;

In order to push the changes to other Environments and Agent Groups in Frends, all you need to do is to deploy the Process or Processes to another Environment and Agent Group. The centrally managed Environment Variables will be applied directly and immediately to the Processes being deployed, making sure that no development values will be used in production.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/E2IudAfhYFxxpW906OjA/image.png" alt="Selection of target Environment and Agent Group for Process deployment."><figcaption><p>Selecting the target Environment and Agent Group for Process deployment.</p></figcaption></figure>

In case you need to take down a Process from Production or return to older version of the Process, is just as easy as deployment. Simply select another, older version of the Process to deploy, and the changes will be rolled back from the target Agent Group. You can also of course deactivate the Process Triggers or delete the Process from the Agent Group you no longer need it in, and that makes sure the Process will no longer run in that Agent Group, without affecting others.

## Environment Variables

In case it is global values you need in multiple Processes, or values that are Environment specific, such as different credentials and connection points for testing and production, Environment Variables are there to take care of them.&#x20;

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/ByLEf2gmDKocnm04zVEE/screenshot-rocks%20(26).png" alt="Environment variables are global values for each environment."><figcaption><p>Environment Variables are the global values for each Environment.</p></figcaption></figure>

Environment Variables are defined centrally in the Environment Variables section of Frends Control Panel, and can hold groups of values for different purposes. Values can be grouped together by their purpose, such as per target system or for specifically global error handling, and the values themselves can be textual, numerical, lists or secrets.&#x20;

As the key feature of Environment Variables, each Environment in your Frends Tenant can receive separate values for the same variable. This makes it easy to develop and test the integrations using test values and other test environments, and when the Process is ready, it can be deployed to production without any changes to the Process itself, because the Environment-specific values are defined separately and centrally in Environment Variables.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/TsXWyhvQ0GnbX5T3ZRJ4/screenshot-rocks%20(27).png" alt="Using environment variables is recommended for example for connection parameters."><figcaption><p>Using Environment Variables is recommended for example for connection parameters.</p></figcaption></figure>

## Version Control

Versioning for the Processes is automatic in Frends. Everytime a change is made, be it to Process, Subprocess or API, a version change is included for that object. This makes sure that no matter what, a traceable and backtrackable path of changes is always available, and the included versioning tools will help in identifying what was changed.

### Semantic Versioning

Frends follows Semantic Versioning system, where the version is presented as three incremental numbers: **major** version, **minor** version and build or **patch** version. When any changes are made to the Processes or APIs, the build version is incremented automatically and the increment is enforced to avoid skipping values and also to make sure it will not overlap with earlier versions.&#x20;

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/W64iVqdb3gdvyerWkCmK/image.png" alt="Showing general settings for a Process, focusing on version number."><figcaption><p>Processes are versioned in the Process Editor.</p></figcaption></figure>

Major and minor version numbers can be changed as needed for your use case. Common scheme in Frends would be to increment the major version whenever a new featureset or other major change in a Process is deployed to production, while minor version could be incremented for a smaller change, such as bug fix or adjustment to the Process, after it has been deployed to production at least once.

The scheme is not enforced however, so you are free to use the version numbers as needed.

### Version tools

The most important tool and view for versioning in Frends is the Process Changelog. From here, you can see all the versions and changes that have been made to a Process, and where those versions are deployed to. In addition, as long as the developers have followed the guidelines, a version comment or description is shown here for each version, explaining in simple words what was done for that version.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/CRYZsjuwNbqfN3nDq56a/image.png" alt="Image showing version history for a Process in Frends."><figcaption><p>Version history for a Process.</p></figcaption></figure>

To get a further look at what was done between versions, it's possible to view and compare the older versions as well. Simply by clicking on the ellipsis for any version and selecting Edit, you can access the old version in the Process Editor to see its details. For older versions the Editor opens in view-only mode, and you need to restore the old version as the latest version in order to continue editing from there.

Frends also includes a **Diff** tool to compare different versions of a Process easily. It will highlight any new shapes, removed shapes as well as changed shapes, and you can get an easy overview on what changed between versions.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/BUvfl5DDnaaIgGroAYXL/image.png" alt="Image shows the functionality of Diff tool in Frends."><figcaption><p>Diff tool in action, highlighting the moved and added shapes between versions.</p></figcaption></figure>

If you need to go back to editing an older version of a Process, changing versions is made easy and possible as well, and without drawbacks. When changing the version of a Process to earlier state, it will copy that version and make a new version from it, without overriding the changes made in between.&#x20;

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/WI6yOtf7FoJQxZ4IiUDy/image.png" alt="Image showing the Switch version functionality for a Process."><figcaption><p>Changing the version is done using Switch version action for a Process.</p></figcaption></figure>


# Environments

Assuming your other systems support separate testing and production environments, Frends includes easy to way manage and differentiate functionality and values by the Environment the Process is deployed to.

## Environments & Agent Groups

To separate different uses for different publications of the Processes, Frends provides Environments. These can be used to separate development, testing and production sites from each other by their use and target systems, by defining and using Environment Variables. When defined and used in Processes, Environment Variables can hold different values by the Environment the Process is deployed to.&#x20;

While Environments separate the different sites logically by use purpose and shared values, Agent Groups in them define the actual location where the Processes will be executed. Because Frends supports hybrid architecture for execution environment, the Agent Groups essentially define whether the execution is done in dynamic containers, in the cloud or on an on-premise server.&#x20;

In order to push the changes to other Environments and Agent Groups in Frends, all you need to do is to deploy the Process or Processes to another Environment and Agent Group. The centrally managed Environment Variables will be applied directly and immediately to the Processes being deployed, making sure that no development values will be used in production.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/E2IudAfhYFxxpW906OjA/image.png" alt="Selection of target Environment and Agent Group for Process deployment."><figcaption><p>Selecting the target Environment and Agent Group for Process deployment.</p></figcaption></figure>

In case you need to take down a Process from Production or return to older version of the Process, is just as easy as deployment. Simply select another, older version of the Process to deploy, and the changes will be rolled back from the target Agent Group. You can also of course deactivate the Process Triggers or delete the Process from the Agent Group you no longer need it in, and that makes sure the Process will no longer run in that Agent Group, without affecting others.


# Version Control

Traceability and backtrackability for your content in Frends.

Versioning for the Processes is automatic in Frends. Everytime a change is made, be it to Process, Subprocess or API, a version change is included for that object. This makes sure that no matter what, a traceable and backtrackable path of changes is always available, and the included versioning tools will help in identifying what was changed.

### Semantic Versioning

Frends follows Semantic Versioning system, where the version is presented as three incremental numbers: **major** version, **minor** version and build or **patch** version. When any changes are made to the Processes or APIs, the build version is incremented automatically and the increment is enforced to avoid skipping values and also to make sure it will not overlap with earlier versions.&#x20;

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/W64iVqdb3gdvyerWkCmK/image.png" alt="Showing general settings for a Process, focusing on version number."><figcaption><p>Processes are versioned in the Process Editor.</p></figcaption></figure>

Major and minor version numbers can be changed as needed for your use case. Common scheme in Frends would be to increment the major version whenever a new featureset or other major change in a Process is deployed to production, while minor version could be incremented for a smaller change, such as bug fix or adjustment to the Process, after it has been deployed to production at least once.

The scheme is not enforced however, so you are free to use the version numbers as needed.

### Version tools

The most important tool and view for versioning in Frends is the Process Changelog. From here, you can see all the versions and changes that have been made to a Process, and where those versions are deployed to. In addition, as long as the developers have followed the guidelines, a version comment or description is shown here for each version, explaining in simple words what was done for that version.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/CRYZsjuwNbqfN3nDq56a/image.png" alt="Image showing version history for a Process in Frends."><figcaption><p>Version history for a Process.</p></figcaption></figure>

To get a further look at what was done between versions, it's possible to view and compare the older versions as well. Simply by clicking on the ellipsis for any version and selecting Edit, you can access the old version in the Process Editor to see its details. For older versions the Editor opens in view-only mode, and you need to restore the old version as the latest version in order to continue editing from there.

Frends also includes a **Diff** tool to compare different versions of a Process easily. It will highlight any new shapes, removed shapes as well as changed shapes, and you can get an easy overview on what changed between versions.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/BUvfl5DDnaaIgGroAYXL/image.png" alt="Image shows the functionality of Diff tool in Frends."><figcaption><p>Diff tool in action, highlighting the moved and added shapes between versions.</p></figcaption></figure>

If you need to go back to editing an older version of a Process, changing versions is made easy and possible as well, and without drawbacks. When changing the version of a Process to earlier state, it will copy that version and make a new version from it, without overriding the changes made in between.&#x20;

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/WI6yOtf7FoJQxZ4IiUDy/image.png" alt="Image showing the Switch version functionality for a Process."><figcaption><p>Changing the version is done using Switch version action for a Process.</p></figcaption></figure>


# Environment Variables

Global values that allow easy deployment between Environments.

While allowing for using the same values repeatedly in different Processes, Environment Variables are also the key for successful CI/CD operations. Through using the Environment Variables to separate Environments by their source or target systems, it's possible to deploy new and changed Processes with just a click of a button, no changes needed in the Process for deployment.

## Environment Variables

In case it is global values you need in multiple Processes, or values that are Environment specific, such as different credentials and connection points for testing and production, Environment Variables are there to take care of them.&#x20;

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/ByLEf2gmDKocnm04zVEE/screenshot-rocks%20(26).png" alt="Environment variables are global values for each environment."><figcaption><p>Environment Variables are the global values for each Environment.</p></figcaption></figure>

Environment Variables are defined centrally in the Environment Variables section of Frends Control Panel, and can hold groups of values for different purposes. Values can be grouped together by their purpose, such as per target system or for specifically global error handling, and the values themselves can be textual, numerical, lists or secrets.&#x20;

As the key feature of Environment Variables, each Environment in your Frends Tenant can receive separate values for the same variable. This makes it easy to develop and test the integrations using test values and other test environments, and when the Process is ready, it can be deployed to production without any changes to the Process itself, because the Environment-specific values are defined separately and centrally in Environment Variables.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/TsXWyhvQ0GnbX5T3ZRJ4/screenshot-rocks%20(27).png" alt="Using environment variables is recommended for example for connection parameters."><figcaption><p>Using Environment Variables is recommended for example for connection parameters.</p></figcaption></figure>


# Maintenance & Support

Frends services are constantly being monitored and taken care of.

The Frends Cloud services are being monitored and managed by the Platform Operations team. Here's an overview of what is being done and at what frequency.

## Maintenance

Cloud-hosted Frends resources are updated in line with our [release cycle](https://app.gitbook.com/s/JWYUN85OO0IZ4nL8cUjc/version-numbering).&#x20;

For customers with hybrid configurations (Cloud and On-Prem Agents) we arrange a suitable time/date to update the Frends Core service and Agents in order to synchronize the update of On-Prem resources.

OS and Security updates for Cloud Agent are kept in line with Microsoft’s monthly patching cycle.

To avoid Agent downtime during patching we recommend using load balanced Agents in a high availability configuration for production environments.

### Database Maintenance

Log and configuration databases for Frends Tenants are periodically maintained by purging old Process Instance logs, including Instance header data and promoted values, and reorganizing the indices. This is automated for both cloud and self hosted instances of Frends. Note that Process Instance step data is uploaded to Azure Blob Storage, allowing less data to be stored on each Agent's database.&#x20;

By default, the Process Instance purge and index reorganization will be run on Log Service startup, and is rescheduled to run every 24 hours after finishing successfully. The purge will delete Process Instances older than what is set as the retention period by log settings for each Agent Group, which is up to 60 days.

The purge is done by executing the stored procedure `PurgeProcessHistory`. The purge procedure has a 30 minute timeout and if it cannot finish or an error occurs the execution is retried after 30 minutes up to five times by default.

You can configure the maintenance actions with the following optional settings in `deploymentSettings.json` when installing an Agent. These settings should be put directly under the root `settings` node:

* **maintenanceTimeWindowStart** - string with a format of "\[hour]:\[minute]:\[second]", e.g. 00:30:00 for half past midnight
* **maintenanceRetryCount** - number
* **disableDatabaseMaintenance** - boolean, set to true if you have set up your own scheduled cleanup and maintenance procedures.

### Backups

Frends Databases (LogStore, ConfigurationStore) have Point-in-time-restore and geo-redundant backups with 30 day retention. ConfigurationStore have an additional off-site backup with 7 day retention.

### Recovery

Recovery in case of catastrophic failure depends partially on your deployment setup.

#### Recovery of Frends PaaS Agents

If Frends PaaS Agent machine is destroyed it can be recreated and configured to use the existing Azure SQL database that the PaaS Agents use by default. This usually takes less than half an hour. If there are customizations to the Agent machine in Frends Cloud, such as VPNs or certificates, those need to be handled separately. The PaaS Agents are meant to be kept as transient as possible to be able to recreate them as easily as possible.

#### Recovery for self-hosted Agents

Recovery of self-hosted Agents depend largely on the administrators for configuration of backups and performing the recovery. However, reinstalling an Agent to a new machine and synchronizing it will re-establish the same Agent from the view of Frends. Any customizations, such as firewall settings or certificates, will have to be reconfigured unless the machine is recovered from a backup.

#### Recovery for databases

The Configuration store is the most important database for the survival of the Frends installation, it is backed up on Azure and off-site. The Log store is backed up in Azure.

If Frends Configuration store or Log store databases, or core services crash, the Agents continue their operation. If the Service Bus is still operational it may fill up and stop operating as messages are not processed while the databases are down.

The Agent databases usually can be recreated at will, but the databases for PaaS Agents are backed up in Azure. If the Agent database is recreated any File Triggers may be re-executed if the files are not moved from their directories, which should be avoided anyway.

If Agent databases crash the Agent can not execute Schedule or File Triggers. If a connection to the database is lost the Agent will continue to execute integrations based on its cache and tries to reconnect to the database. This state can not be sustained long and for example, restarting the Agent will clear its cache.

#### Recovery for Service Bus

Even if the Service Bus connection is down, the Agents will continue to execute integrations as usual, but any remote Subprocesses cannot be executed as they rely on the Service Bus connection.&#x20;

The Agent will start storing log data locally until it can reconnect to the Service Bus. If the connectivity is down for a longer period of time, the Agent may run out of space for the log data and cannot continue functioning.&#x20;

Agents also cannot communicate with the Frends Core while the Service Bus is down, meaning there might not be any activity being updated to the Frends UI and any Process deployments to Agents will not function until the Service Bus is restored.&#x20;

#### Major catastrophic failures

In a total destruction scenario, the Frends Environment can be recreated from the Configuration store database backup that is kept off-site.

## Monitoring

All Frends Cloud resources are monitored around the clock with alert thresholds set for key metrics.

### HTTPS Endpoints for Monitoring

Each agent can have a status and monitoring HTTPS endpoints enabled for them, where status and metrics of the Agent can be read from. The endpoints are enabled by configuring HTTPS for the Agent, or by setting `HttpStatusinfoPort` option in Agent application settings. API key authentication for the endpoints can be configured by `HealthCheckApiKey` option. If enabled, API key is to be provided in the HTTP request headers with name `health-check-api-key`.

With the base URL set to be your Agent's base URL, the `/frendsstatusinfo` endpoint can be used to check if the Agent is running and not paused, and the response message also contains a message of agent health, executing processes, and memory usage. Information is provided as JSON so it can be used to create automated monitoring.&#x20;

For additional Agent metric details the `/metrics` endpoint can be used, which similarly allows scraping by third party tools.&#x20;

### Self-hosted Agents

For self-hosted Agents the monitoring is provided by the above-mentioned endpoints, as well as by any monitoring tools available in the Agent machine's operating system. For example, Windows Performance Counters can be used to retrieve agent status information.

### PaaS Agents

Frends Cloud Agent monitoring services include:

#### Frends Heartbeat Monitor Service

* Agent Service Availability

#### &#xD;Azure Log Analytics Agent (30 Day retention)

* Event logs (System/Application)
  * Error Events (OOM)
  * Service Failures
* Performance Counters (Ingested by Azure Log Analytics)
  * Memory
  * CPU
  * Page File
  * Threads
  * Disk
  * Frends Process Executions
  * Frends Process Logging
  * Network IO

#### &#xD;Application Insights

* Availability Checks
* Monitor Agent API Endpoints (Ports 80 and/or 443)
* 5 Second ping from 5 geographically different locations

### Frends Core & UI

Monitoring for the Frends Core services and the UI includes:

#### Web UI

* Performance Counters (Ingested by Azure Log Analytics)
  * Memory
  * CPU
  * Response Time
* Application Insights (Ingested by Azure Log Analytics)
  * Application Exceptions
  * Availability Checks
    * Monitor Frends UI
    * 5 Second ping from 5 geographically different locations

#### Azure Storage&#xD;

* Performance Counters (Ingested by Azure Log Analytics)
  * Usage
  * Latency
  * Ingress/Egress
  * Transactions
  * Availability

#### Database

* Performance Counters (Ingested by Azure Log Analytics)
  * Storage Usage & Growth
  * DTU Load

#### Service Bus&#xD;

* Performance Counters (Ingested by Azure Monitor)
  * Inbound/Outbound Messages
  * Requests
  * Connections
  * Active Messages
  * Inbound/Outbound Queue Size
  * Errors (User/Server)
  * Dead Letter Count
  * Message Count
  * Throttled Requests


# Frends Runtime

Agents performing the Processes you created.

The Frends runtime environment is built upon Agents, that execute your Processes. Agents working together as an Agent Group allow simultaneous execution and load balancing, and different Environments provide common values and settings for the Agent Groups.

## Agents

Agents are the executable software of Frends, performing the Processes as C# executables in the server or environment they have been deployed to. Environments and Agent Groups are mostly logical containers and visual elements tying things together for the user, and Agents are deployed as part of your infrastructure and then connect to your Frends Tenant as part of Agent Groups and Environments.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/8qRYzfasb4K5ONqUhDFI/image.png" alt=""><figcaption><p>Agents are defined as part of Agent Groups, which are contained within Environments.</p></figcaption></figure>

### Types of Agents

Depending on where and how the Agent is installed to, it can be classified either as Frends Cloud Agent or Self Service Agent. Frends Cloud Agents, also commonly called only as Cloud Agents, are automatically deployed Agents that reside in Frends Cloud Environment. Unlike Self Service Agents, which are Agents installed by our customers into their own infrastructure, Cloud Agents are managed and monitored by Frends Platform Operations team.

Self Service Agents, which are also often called On Premise or Ground Agents, are installed and managed by the customers themselves. They can also be installed to cloud environments as well as to your local hardware, depending on your needs. It's also perfectly possible to mix and match different deployments, creating a hybrid deployment of Frends.&#x20;

You can learn more about different deployment models at [deployment-models](https://docs.frends.com/docs/hybrid-integration-architecture/deployment-models "mention") page.

In order to determine the types of Agents installed in your Frends Tenant, you can head over to **Administration > Environments** page, and browse the Agent Groups. A good naming scheme will provide you with information about usage and location of the Agents and Agent Groups, and the UI will also show a small cloud icon next to Frends Cloud Agents. To differentiate the types of Agents further, Cloud Agents will not have any settings available to them in the Control Panel, whereas multiple configuration options exist for Self Service Agents.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/YE6CnJCmGc6oAEuJtTmI/image.png" alt=""><figcaption><p>A Frends Cloud Agent will show a cloud icon next to its name in Environments page, along with its version.</p></figcaption></figure>

### Cross-Platform Agents

Another way of differentiating Frends Agents is by the targetable operating systems and supported .NET versions.&#x20;

The latest model of Frends Agent is the Cross-Platform Agent, which can be installed to any operating system that supports .NET platform. Windows and Linux are generally supported at least, alongside containerized environments. Cross-Platform Agent supports .NET Standard 2.0 and .NET 8 as target frameworks for Processes.

The legacy version of Agent supports either .NET Standard 2.0 and .NET Framework 4.7.1, but can only be run on Windows operating systems. As the naming suggests, only legacy support is provided for these Agents, and it is highly recommended to use Cross-Platform Agents moving forward.

To determine whether you are using Cross-Platform Agents or Legacy Agents, you can see this from the **Advanced Settings** for Agent Group in **Environments** administration page. If **Cross-Platform** option is turned on, all the Agents in that Agent Group have to be Cross-Platform Agents. Otherwise all the Agents should be Legacy if the option is turned off.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/JkTspxOkROvX1F8R6NYZ/image.png" alt=""><figcaption><p>The Cloud Development Agent Group has been updated to be Cross-Platform.</p></figcaption></figure>

### High Availability

While most deployments contain only one Agent for each Agent Group, it's possible to deploy multiple agents into High Availability configuration, which along with a load balancer can split the executions and load on to multiple Agents. This allows for more performance and better availability of your integration service through horizontal scaling. Containerization can be used with this configuration to dynamically launch new Agents if required.&#x20;

Learn more about High Availability configuration [here](https://docs.frends.com/docs/hybrid-integration-architecture/high-availability).

### Gateway Agent

Gateway Agents, or API Gateways are specialized Agents that perform load balancing and proxying for your APIs.

They can be used to securely publish your APIs to public use, while securing your Agents and servers by not allowing direct connections to them from the outside. The Gateway Agent accomplishes this by handling the incoming connections, and only directing valid API requests for handling in the Processes on the actual Agents.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/QDHCNxvQeVnWMtWxge8l/screenshot-rocks%20-%202025-09-29T092335.522.png" alt=""><figcaption><p>Gateway Agent publishes your API endpoints without revealing the actual Agents.</p></figcaption></figure>


# Deployment Models

You can deploy your Frends installation in most ways possible.

Because Frends is built upon central management UI and distributed Agents performing the actual execution, we provide and support almost any combination of deployment types available.

## Self-hosted Deployment

Starting with the basic type, in self-hosted deployment the Agents reside on your own servers and computers as a service, or in your own cloud environment outside Frends cloud. Along with .NET runtime it will handle the triggering of Processes. This type of deployment setup can also be called on-premise deployment, in case the Agents are installed solely to your own on-premise server environment. You can of course mix and match between these as needed.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/ahGPQR6Iw4uCwYY27gVU/screenshot-rocks%20-%202025-09-29T092253.687.png" alt=""><figcaption><p>Self-hosted environment with High Availability enabled.</p></figcaption></figure>

In this deployment type, connections to your Frends Tenant are done through Azure Service Bus messaging. As the Frends UI is solely used for development and other management tasks, for example API calls will be connected directly to your environment and Agents instead of going through Frends's cloud environment where the UI resides. Even in the situation where the Frends UI would be unavailable, the Agents will continue execution without problems.

In case interoperability between Agents are required, for example when calling Subprocesses remotely over Agent Groups, these are also coordinated over the Service Bus messaging instead of direct connections between the Agents performing the execution.

Self-hosted deployment is essential when you require strict data sovereignty, compliance, or have security requirements that disallow the data being located outside your internal network or geographic location. In this deployment model you are also in full control of the infrastructure, maintenance, updates and monitoring, so while it provides more control over the environment, it also presents additional required actions to perform.

## PaaS Deployment

In case you simply want ease of use from your integration platform, Frends also provides full Platform as a Service deployment. In this deployment model, also known as Frends Cloud deployment model, the Agents will be created to Frends cloud environment by Frends Support, and the support is also then responsible for managing and maintaining your Frends execution environment.&#x20;

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/9YwYhZiocIKlKBMeotk6/screenshot-rocks%20-%202025-09-29T092306.028.png" alt=""><figcaption><p>PaaS Agents are located within Frends Cloud.</p></figcaption></figure>

Because Frends will take care of the infrastructure, you can focus on being creative and create all the integrations you need, and expect them to work and run flawlessly. Because the execution environment is in the cloud, connectivity to and from outside sources will not require any additional setup or thought, it just works.

While you will not have direct control over where your Processes are executed and thus your data processed, rest assured that we have taken every action possible to keep the environment secure and up to date. Depending on your subscription tier, you can control geographically where your environment is hosted, in order to keep up with legislation about data processing and storage. With higher tier you can also select how the resources for your execution environment are shared.

While resource sharing might sound scary, different Tenants cannot access each other's data in any event, even if they are processed on the same shared resources.&#x20;

## Container Deployment

With the latest versions of Frends, support for containerized deployments of Frends Agents has been improved greatly.&#x20;

While it has long been possible to deploy Agents as containers in Kubernetes clusters, latest versions added support for dynamic launching of additional containerized Agents when required by allowing unspecified Agents to connect to Agent Groups at will. This will provide more adjustment options to available resources, increasing performance whenever it is needed, and reducing the Agent count once the highest peak has passed.

While it does not matter if the Kubernetes cluster is located on-premise or in the cloud, it also does not matter if the containerized Agents are used with other on-premise or cloud Agents. In this deployment model you are also allowed to mix different types of Agents together.

## Hybrid Deployment

As has been mentioned on all the different deployment models, mixing different types of deployment plans together is very possible with Frends, and only your own use case will dictate what you need to do and can do.&#x20;

By default, Frends comes with a PaaS cloud Agent as part of the development environment on all tiers. From there, you can either install more Agents to your own server or cloud environment to create a self-hosted deployment, or request more PaaS Agents to be added to your Tenant from the Frends Support as full PaaS deployment. If your pricing tier and contract allows, setting up a Kubernetes cluster for your Agents and having them in High Availability configuration is also possible.&#x20;

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/H68e6ldWIu7sewyflupU/screenshot-rocks%20-%202025-09-29T092317.297.png" alt=""><figcaption><p>You can mix and match Agents in different Environments as needed.</p></figcaption></figure>

Whatever your use case and requirements are, deploying Frends Agents should be possible in most ways. Running a Frends Agent on your own computer is also totally viable method to run Processes locally, although outside connectivity might require some additional setup in that scenario.


# Scalability

Frends can do both wide and tall.

Because of Frends' flexibility in deployment options, it's also good for scaling both vertically and horizontally.

## Vertical Scaling

Because you can choose on what kind of hardware Frends Agent is deployed to, vertical scaling through increasing hardware resources is possible. While each Process will run only on one thread, our Agents are capable of multithreaded performance when running multiple Process Instances at once. And the more resources and processing speed you have, the more you can achieve with each Process Instance.

Depending on your service agreement and pricing tier, more resources can also be allocated for the PaaS Agents located in Frends cloud environment as well. No need to change your deployment type in order to get more performance.

## Horizontal Scaling

By creating new Agent Groups and Agents, you are able to scale your Frends deployment horizontally to achieve more at the same time. Using multiple Agent Groups allows you to decide where each Process is being run and balance the load statically that way.

In order to split the load of running same Process efficiently to multiple Agents, High Availability configuration can be used to allow single Agent Group contain multiple Agents that work together to run the Processes. High Availability configuration contains setup for load balancer and shared database, allowing the load balancer to choose which Agent will execute the Process next.

When in High Availability configuration and using container deployment, it's also possible to dynamically launch new Agent containers as a response to increased load on the Agent Group. Once the peak load has passed, the amount of Agents can then be reduced to save on costs.


# High Availability

HA configuration ensures your services stay available.

In standard configuration, if your server or Agent is unavailable, the integration service will be blocked. In order to avoid down time for your internal and external customers, High Availability configuration can be set up to ensure there will be Agents available to process the requests.

Added bonus of High Availability is the capability to scale horizontally, allowing for more Process executions within the same time window.&#x20;

## High Availability Configuration

In HA configuration, multiple Agents are placed into the same Agent Group, so that they can distribute the Process executions between themselves.

In order to coordinate this workload sharing, a load balancer and a shared database are required for HA configuration. Without the coordination, essentially only one of the Agents within the Agent Group will be executing the Processes, known as Primary Agent in that scenario. Extra setup is thus required before HA configuration can be achieved.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/mbo8ZG8VPrCiGxsIju64/image.png" alt="Architectural depiction of High Availability configuration in Frends."><figcaption><p>Depiction of High Availability configuration.</p></figcaption></figure>

Once the configuration is set, the workings of multiple Agents performing the same tasks will become mostly invisible to the end users and developers. In general, developers do not have to worry about the Agent or Agents as they are, instead they are mostly working with Environments and Agent Groups, which already abstracts the Agent performing the actual executions. Processes and APIs are always deployed to an Agent Group and not to a specific Agent, so nothing really changes for the users in Frends.

To see that HA configuration is operational and sharing the workload, you can see this by viewing the Process Instance list for some Process in the HA Agent Group. On the list it will detail, which Agent triggered the Process for each execution, making it visible that different Agents are running the same Process side by side.

<figure><img src="https://content.gitbook.com/content/56JmZHlo3vGGOoktb3tn/blobs/575t3CpBDcOUVMH5bFtW/image.png" alt="Process Instance list is about the only place where HA configuration&#x27;s functionality is visible."><figcaption><p>Apart from the triggering Agent in the Process Instance list, HA configuration is invisible to users.</p></figcaption></figure>


# Technologies

Frends is built on Azure Cloud and .NET platform.

If you are interested in learning on what Frends is built on, you've come to the right place. Whether it be for technology maturity analysis or preparing for security audit, here you can get an overview of what technologies Frends uses under the hood.

## .NET Platform

At the core of Frends runtime environment and functionality is Microsoft's .NET platform and C# programming language. All the backend functionality and program code written for Frends is in C#, and all the Processes, Subprocesses and APIs created with Frends are converted and compiled to C# code for execution on the Agents.&#x20;

Especially when creating Processes it will be useful to know the basics of C# programming, to understand what is happening behind the BPMN flow chart. Variables, scoping and data typing all come from C#. While it is not mandatory to be an expert in C# or programming to understand the details of Processes, thanks to C# being such a generic C-like language, creating more advanced logic within Process in a Code Task will benefit hugely from C# and .NET knowledge.

### Newtonsoft JSON

Sometimes called the de facto JSON library for C#, Frends is also heavily built upon the library. Essentially all of the data traversing through Frends Processes will be contained in a Newtonsoft JSON object, be it JObject, JArray or generic JToken.&#x20;

Understanding and learning to use this library will be very beneficial for Process developers due to this deep integration with the library, but it shouldn't be a preliminary requirement to become an integration developer with Frends. It's easy to learn and simple to use, and when working with APIs and other interfaces nowadays, JSON data is very close if not the most common notation for data to use, making the Newtonsoft JSON objects almost more intuitive to use than the builtin data types.

### .NET Versions

Frends targets primarily the latest .NET platform, version 8. The latest versions require .NET Runtime 8.0.15 or later to be installed on the machine alongside the Frends Agent for it to function.

Frends also provides legacy support for .NET Framework 4.7.1 for Windows environments, as well as support for .NET Standard 2.0 compatible cross-platform frameworks. Some older versions also supported .NET 6.0, but this was replaced and upgraded to the current 8.0 in Frends 5.7 and later.

While the older Tasks still exist and can be used in Frends for legacy support, new features and updates to Tasks are only provided for the latest .NET platform.&#x20;

## Azure Cloud

Frends cloud services are hosted on Microsoft Azure Cloud platform. Azure is used for hosting the Frends Control Panel, orchestrating Agents, and providing cloud-native scalability for the PaaS Agents.

While on the lower pricing tiers the resources within Azure are shared in a multi-tenant cloud, by purchasing the higher tiers you will receive an option to have private resources, meaning more capacity just for your Tenant, and less interruptions and effects from other Tenants during peak load times. It's also possible to purchase more resources for your Tenant in order to scale the performance vertically, to support larger data amounts and heavier computations for single Process executions.

With higher pricing tiers you can also choose the geographic location for your share of the cloud.

If you choose to create a deployment with self-hosted Agents, Azure Cloud will still be used to host the Frends UI and orchestrate the Agents in your Frends Tenant. For your data this means that Processes execute and handle data mainly within your hosting environment on the Agents, but some logging options and for example remote Subprocess executions in Processes can transfer some of your data to the Frends cloud.

## Azure Service Bus

Frends uses Azure Service Bus as a secure and reliable message bus to connect its Agents with the Frends Control Panel. This approach allows Agents to communicate using only outbound connections, which simplifies firewall configuration and enhances security as there is no need to open inbound ports. All communication is encrypted and authenticated, ensuring data protection.

Using Azure Service Bus also brings operational benefits. It enables reliable message delivery, even if an Agent is temporarily offline, and supports scalable deployments with multiple Agents and High Availability configuration. This is specifically important for hybrid and cloud delpoyment models, allowing your on-premise environment to stay secure even when the UI is hosted outside in Frends cloud.

## Azure AI Services

Frends integrates with Microsoft Azure AI services to deliver its intelligent automation capabilities. The primary integration point is the Frends Intelligent AI Connector, which utilizes the Azure AI Inference API to access advanced large language models like GPT-4o and GPT-5 for sophisticated reasoning and chat completion tasks. Azure AI powers both the Intelligent AI Connector for embedding AI capabilities directly into integrations, as well as the suite of AI assistants that enhance the development experience. These assistants include the AI Task Configurator for suggesting Task parameters based on natural language descriptions, the AI Code Generator for creating C# code snippets tailored to Frends Processes, and the Documentation Generator for automatically creating comprehensive Process documentation with a single click.

This approach allows developers to easily incorporate advanced AI functionalities such as text analysis, data extraction, translation, and intelligent search directly into their integration Processes. For organizations with strict data sovereignty needs, Frends also supports using on-premises AI model deployments through Ollama for the AI Connector, offering a flexible and secure solution for any environment.

## BPMN 2.0

Frends Process Editor utilises a subset of Business Process Modeling & Notation (BPMN 2.0) notation to create the Processes in Process Editor. The user interface and visual building elements of the Processes are part of BPMN 2.0, while the functionality and C# code are added to the elements by Frends, to create the Processes you can run on the Agents.

As an added feature, the BPMN part of your Frends Processes can be exported as BPMN XML, allowing you to document your Processes in other systems that support BPMN notation. This will not include the functionality, meaning the C# content, of the Process though.&#x20;

While it is also possible to import BPMN XML from other systems to create Frends Processes, due to Frends supporting only a subset of BPMN elements, it's likely that the import will not produce the expected results. And again, because the C# code and functionality within the BPMN are unique to Frends, the imported BPMN flow chart will not include any functionality and will have to be created from scratch.

While the BPMN import and export only handle the BPMN part and not whole Frends Processes with their code and functionality, Frends does provide separate means of exporting and importing specifically Frends Processes, that can be transferred from one Frends Tentant to another.

## Containers

Frends utilises Docker to create containers for Agent deployments. The containers can then be used within Kubernetes cluster for orchestrating the Agent containers as well as for horizontal scaling.

For the scaling to work properly, High Availability configuration is required to be set up for the Agent Group the containerized Agents will participate in.


# Integration Security

Securing your integrations on Frends Platform.

It is important to consider security when designing integrations. Frends can transfer confidential data between systems, and all the necessary efforts should be taken to prevent the data from being accidentally deleted or modified, or deliberately misused or stolen. The following sections describe the best practices to use when designing and developing secure integrations.

## Access to Frends Tenant <a href="#h_1f8b229cb3" id="h_1f8b229cb3"></a>

Due to the nature of the integration platform, Frends users may be able to gain access to external systems and sensitive data regarding integration processes. This is why the user list and the users' roles must be kept up to date and no user should have a role they do not need. For auditing purposes, it is important to have an up-to-date list of authorized users.

It is best to attach the authentication for Frends Control Panel to the customer's own Azure AD in order to have full control of who can log in to Frends Control Panel. Also this way it is possible to enable multifactor authentication.

## Credentials and secret values <a href="#h_59e65c8ad6" id="h_59e65c8ad6"></a>

Usernames and passwords are recommended to be stored in Environment Variables. Passwords should always use the type secret in the variables. Every secret and password value should consist of at least twelve characters with at least one upper case letter, one lower case letter, one number, and one special character. There should be a different password for every Environment and every external system.

When creating a new Process, the developer creates the Environment Variables for the credentials, and Company’s integration owner or another person that has access to the credentials fills them in in Frends. Passwords or any other secret values should never be distributed with the related username or ID. Any secret value is not allowed to be sent in clear text or an unencrypted email.

## Security considerations within Processes <a href="#h_a22d6f9547" id="h_a22d6f9547"></a>

If production data is to be used for testing it should be masked to protect personal identifiable information (PII) and commercially sensitive data.

Only encrypted transfer protocols such as HTTPS and SFTP should be used.

### API Development

In API development it is recommended to use OAuth for authentication and API key for authorization. Other security considerations for APIs are:

* IP address filtering
* Rules for allowing and denying CRUD operations
* Limiting transaction amounts
* Blocking faulty headers
* Input parameter validation

### Using SQL <a href="#h_a7282af4dc" id="h_a7282af4dc"></a>

When using SQL in Processes, it is recommended to use parametrization and other SQL-related security practices to avoid SQL injections. SQL Tasks in Frends include built-in fields for entering parameter values to help with this.

## Logging and Archiving <a href="#h_b5b85d94cf" id="h_b5b85d94cf"></a>

Frends enables easy and comprehensive logging features for the Processes for easy development and debugging of Processes, but for production use logging and archiving the handled data is recommended to be disabled.&#x20;

The log level for the Production Environment should be set to "Only errors". APIs that handle sensitive data should be designed and implemented so that it is possible to log only the error and no other content of the message when an error occurs. Logging other data than errors should be carefully considered.

### GDPR

General Data Protection Regulation (GDPR) requires companies to protect the personally identifiable information (PII) of their employees, customers, and third-party vendors. For example, the following can be considered as PII:

* Full name
* Home address/mailing address
* Email address
* Credit card numbers
* Date of birth
* Phone numbers
* Login details
* Precise locations
* Account numbers
* Security codes
* IP addresses
* User IDs
* E-commerce order IDs

When logging or archiving PII, the following should be considered and documented:

* What data is collected and why
* Where the data is stored
* Who has access to the data
* What does the legislation say about storing the data
* How long it is meaningful to store the data
* When deleting the data, possible error situations should be taken into account
* Is it possible to delete data according to certain criteria, e.g. name or email address?

The integration owner should maintain a list of users that have access to the integration logs and archives.

## High Availability <a href="#h_5f91418887" id="h_5f91418887"></a>

Having two or more Agents allows them to share the load, and ensures that services are available even if some event, like operating system updates or a huge peak in load, renders one Frends Agent unavailable for a moment.

Usually, if Frends Agents are used to delivering integrations to some critical or "real-time", e.g. mobile, application it is advisable to use multiple Agents in production.


# Compliance

Frends is built to be compliant at foundational level.

The Frends integration platform is built with regulatory compliance as a foundational principle, ensuring organizations can meet their legal and industry-specific requirements while maintaining operational efficiency.

## GDPR and Data Protection Regulations

Built with European regulations in mind, Frends provides comprehensive support for GDPR compliance. The platform offers data residency controls, including EU-only hosting options, ensuring that personal data remains within specified geographical boundaries as required by data protection laws. Organizations can process data entirely on-premises through the hybrid deployment model, maintaining complete control over where sensitive information is stored and processed.

The platform includes specific features for handling Personally Identifiable Information (PII), with configurable logging controls that prevent sensitive data from being inadvertently stored in system logs. This approach helps organizations meet the data minimization and purpose limitation principles central to GDPR and similar privacy regulations.

## Industry Standards and Certifications

The platform has ISO 27001:2022 certification, the international standard for information security management systems. This certification validates that Frends maintains a systematic approach to managing sensitive information and ensuring its security through people, processes, and technology controls.&#x20;

ISO 9001:2015 and 14001:2015 certifications demonstrate that Frends has implemented internationally recognized management systems to ensure consistent quality in its products and services, while also actively minimizing the environmental impact of its operations. These certifications reflect a strategic commitment to continuous improvement, regulatory compliance, and stakeholder satisfaction. By aligning its processes with ethical principles and sustainability goals, the company reinforces its dedication to responsible business practices that benefit customers, communities, and the planet.

## EU AI Act Compliance

As the European Union's Artificial Intelligence Act comes into effect, Frends is positioned to help organizations meet these emerging regulatory requirements through its AI governance framework. The platform's approach to AI transparency and explainability directly addresses key AI Act provisions, particularly for high-risk AI systems that require human oversight and clear audit trails.

Frends' AI reasoning logs provide detailed documentation of every AI decision-making process, capturing the "thought process" behind each automated action. This level of transparency is essential for AI Act compliance, as it enables organizations to demonstrate that their AI systems operate within defined parameters and can be audited for bias, accuracy, and fairness. The platform's hybrid deployment model also supports data localization requirements, allowing organizations to keep AI processing within EU boundaries when required.

The semi-deterministic AI orchestration approach used in Frends ensures that AI operates within controlled workflows, with human oversight capabilities built into the process design. This architectural approach aligns with the AI Act's emphasis on human-centric AI systems and provides the governance framework necessary for deploying AI in regulated environments while maintaining compliance with European AI regulations.

## Audits and Testing

To continuously validate our security posture, Frends undergoes regular and rigorous testing. We conduct regular internal vulnerability tests and engage a qualified third party operator for an annual platform-level penetration test. Any identified vulnerabilities are addressed based on their risk and severity.

These certifications operation models provide organizations with the confidence that Frends meets internationally recognized standards for security and operational excellence, facilitating compliance with their own regulatory obligations and enabling them to demonstrate due diligence in vendor selection and management.




---

[Next Page](/llms-full.txt/1)

