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

## 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="/files/mkSqtu1vYLu9VatAUTy1" 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>

When you save a Process, it is validated and compiled to C# — meaning syntax errors and type mismatches are caught immediately, alongside BPMN flow errors. Expressions, Handlebars, and dynamic types are only evaluated at runtime, so errors such as a null value or an unexpected data shape will surface during execution rather than on save.

## 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="/files/eWuRFw3FCJTJikQIf6fm" 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.&#x20;

Use an **Assign Variable** shape to compute a single value and reuse it across the Process, or a **Code Task** when you need multi-line C# logic.&#x20;

For shorter needs, you can include small pieces of code into any text, JSON, or XML field using **Handlebars syntax** to inject values inline. If a field needs to return a specific type rather than plain text, switch it to **Expression** mode instead.&#x20;

If advanced programming or external libraries are needed, or the action could be useful to others beyond the current Process, consider building a **Custom Task**.

<figure><img src="/files/FzJ4VLac2khKLST6CXuR" 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, Reference values allow you to access data from across the Process using a simple hashtag notation. **#trigger** gives you data from the event that started the Process, **#var** holds variables you have defined or computed during the flow, and **#env** provides Environment Variables that are centrally managed and can differ between Environments like development and production. These are available Process-wide and work just like variables in standard C# code.

[You can learn more about using C# in Frends from here](/reference/frends-6.2.0/process-development/c-in-frends.md).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.frends.com/docs/frends-6.2.0/frends-development/integrations/low-code-development.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
