# Connected apps

**Category**: Connections

**Version**: 1.0

**Last Updated**: January 29, 2026

**Author**: Any2Info

***

### Description

Connected Apps allows end-users to link accounts such as Microsoft account to their **Any2Info** accounts. This could be used within the **DataHub** to execute **DataFlows** as a certain user, using the set Token or Credentials.

***

### Setup

The setup of **Connected Apps** starts in the **Reporting Studio**, in the **Connection** section of the **Data Studio**.

<div align="left"><figure><img src="https://870194474-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M_kE41Rl4pOtwKfvvQq%2Fuploads%2FYhmowIf4XXoYTd4024tN%2Fimage.png?alt=media&#x26;token=ca806c43-f206-4a3e-b70c-8c8a3630fc36" alt=""><figcaption></figcaption></figure></div>

Here Admin users can create Connections. The options ranging from Collection wide, user specific or Authorization Structure specific.

When the + icon is clicked, a new set of inputs are shown. The **Name** and **Level** are the same for all **Types**. Sub-options may become available depending on the **Type** chosen.

<figure><img src="https://870194474-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M_kE41Rl4pOtwKfvvQq%2Fuploads%2FzN7mIHWvI4pb6SSKLU04%2Fimage%201.png?alt=media&#x26;token=37defeb3-2b61-4a35-9a4e-7debcb8fd77f" alt=""><figcaption></figcaption></figure>

There are 3 Levels that can be chosen:

| **Level**                   | **Description**                                                                                      |
| --------------------------- | ---------------------------------------------------------------------------------------------------- |
| **Collection**              | The Connection is valid for all users within the Collection                                          |
| **Personal**                | The Connection is valid for only the user that has entered their credentials or linked their account |
| **Authorization Structure** | The Connection is valid for all users within the Authorization Structure                             |

Furthermore there are 3 Types that can be chosen:

| Types           | Description                                                                |
| --------------- | -------------------------------------------------------------------------- |
| **oAuth2**      | External validation of the Users account, like Microsoft, Apple or Google. |
| **API Headers** | A list of Headers (or Query Parameters) with a set name.                   |
| **Credentials** | A simple combination of Username and Password                              |

When a new **Connection** has been added it will appear in the connection list as such:

<div align="left"><figure><img src="https://870194474-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M_kE41Rl4pOtwKfvvQq%2Fuploads%2Fz47Vve6xf6bo2yiTbcp2%2Fimage%202.png?alt=media&#x26;token=e9bf6697-859e-43f8-bb4e-3546d24a7e0e" alt=""><figcaption></figcaption></figure></div>

***

### Usage

#### Filling a connection

A connection is not worth anything if it is not filled in. The following chapters go over where and how to do this.

**Reporting Studio**

If the **Level** is set to **Collection** then the Admin user can immediately fill in the Connection data. You may do so by hovering over the **Connection** and clicking on the 3 vertical dots, this will open a context menu where you can choose the **Set Values** option.

Clicking on this option will open a dialog depending on the **Type** chosen. Here you can fill in the relevant data. If the **Type** is of **oAuth2** then it will instead redirect you to the Authorization URL that was set when creating the **Connection**.

If the **Level** is set to **Authorization Structure** then they can filled in the **Authorization Structure** menu under **Management**. When a Structure is selected a tab will open on the right of the screen if connections exist.

<figure><img src="https://870194474-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M_kE41Rl4pOtwKfvvQq%2Fuploads%2Fd1kQrlWKZI3eUo7KOVOj%2Fimage%203.png?alt=media&#x26;token=8fe234ce-9dfc-4d86-acfe-a9f1244d157b" alt=""><figcaption></figcaption></figure>

**Viewers**

**Connections** of the **Level Personal** show up in the Viewers, both the web based viewer and the mobile viewer, under Settings > Connections. Here Viewer users can fill in or authenticate their connection.

<div align="left"><figure><img src="https://870194474-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M_kE41Rl4pOtwKfvvQq%2Fuploads%2Fne5UAJb3TT5TSOgy0kPK%2Fimage%204.png?alt=media&#x26;token=9fb5acef-776c-4c65-9630-ff135e6c839e" alt=""><figcaption></figcaption></figure></div>

***

#### Using a connection

A **Connection** can be used in **DataFlows** as a connection for certain **Nodes**. For example the **REST Node**.

A Connection can be selected through the dropdown. If it is set it will use those details in the execution of the Connection.

<figure><img src="https://870194474-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M_kE41Rl4pOtwKfvvQq%2Fuploads%2Fs1fEQOHsgfCPuz5NWYLt%2Fimage%205.png?alt=media&#x26;token=dc04398c-ec89-4ef8-be21-83d2671f9cda" alt=""><figcaption></figcaption></figure>

Given the following **REST API** setup the result would change depending on what user is executing the Node.

<figure><img src="https://870194474-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M_kE41Rl4pOtwKfvvQq%2Fuploads%2FLsrolEMAuTIcXYANU7bs%2Fimage%206.png?alt=media&#x26;token=f76772e8-f2e1-46db-95d3-68f4de0bdaab" alt=""><figcaption></figcaption></figure>

For demo purposes I only opted to extract the **jobTitle**. However this Node in combination with a Personal Connection would result in different outputs for each user.

<figure><img src="https://870194474-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M_kE41Rl4pOtwKfvvQq%2Fuploads%2Fam4zbtVyxJBkdzU1hJOi%2Fimage%207.png?alt=media&#x26;token=c8d8d5ec-e446-4b4c-9621-4a760c300529" alt=""><figcaption></figcaption></figure>

In this way Nodes can be executed as the logged in user, the Authorization Structure or on Collection level which allows for far greater customizability within DataFlows.

***

#### Deleting/Unsetting a connection

A set Connection can be unset rather simply. In the case of **oAuth2 Connection** you can simply click or press on the Sign Out button. For **API Headers** and **Credentials** you could simply empty the inputs and save the empty values.

<div align="left"><figure><img src="https://870194474-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M_kE41Rl4pOtwKfvvQq%2Fuploads%2FQPoPsLJmGCx51mBEmXtX%2Fimage%208.png?alt=media&#x26;token=03bd93ff-aa9e-4c94-85db-5c850f91c806" alt=""><figcaption></figcaption></figure></div>

For **Authorization Structure** and **Collection Connections** the connection can be Deleted/Unset in the **Reporting Studio**, at the same place where it is set.

***

### Tips & Best Practices

* If your use case depends on users having linked an external account, make sure to alert these users to fill in their connections!
* Test a connection out first yourself by setting the **Level** to collection and filling in the values, or connect through oAuth2

***

### Errors

| **Error Message**                                   | **Meaning**                                                               | **Solution**                                                                      |
| --------------------------------------------------- | ------------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
| One or more required parameters aren’t given        | An input marked as “Required” was not filled in                           | Fill in all the Required inputs                                                   |
| Connection reset failed                             | The request to reset an oAuth2 connection has failed                      | Try resetting the connection again, if that does not work restart the DataService |
| Could not start OAuth authorization                 | The request to initiate an oAuth2 connection has failed                   | Try setting the connection again, if that does not work restart the AppsService   |
| The system could not load the connection properties | The request to retrieve the related connection type properties has failed | Try setting the connection again, if that does not work restart the AppsService   |

***

### Changelog

| **Version** | **Date**         | **Change**                       |
| ----------- | ---------------- | -------------------------------- |
| 1.0         | January 29, 2026 | Initial document & documentation |
