# Connectors

Product: Identity Universe
Source: https://docs.fortytwo.io/identity-universe/iam-core/connectors/

Connectors are one of the most essential part of IAM Core, as it is the only way for data to flow into it. There is no way to modify a [core object](https://docs.fortytwo.io/identity-universe/iam-core/objecttypes/common/) without the information being flown through a [sync rule](https://docs.fortytwo.io/identity-universe/iam-core/sync/syncrules/) from a connector.

Each connector has its own space for data, where no other connector can touch. This space is called the _connector space_. One connector does not know about other connectors.

In order to make the [sync rules](https://docs.fortytwo.io/identity-universe/iam-core/sync/syncrules/) as powerfull as possible, while also providing you as the IAM Admin insight into connector data, changes that have happened, etc. the goal of connectors is that the connector space is as similar to the originating data as possible. This means that if the first name of a person record in the HR system is named _given_, it should also be named _given_ in that connector's connector space. This way it is much easier to understand what was actually changed in the HR system, and it is up to the [sync rules](https://docs.fortytwo.io/identity-universe/iam-core/sync/syncrules/) to map the information from _given_ in the connector space to the _firstName_ attribute of a [CoreIdentity](https://docs.fortytwo.io/identity-universe/iam-core/objecttypes/coreidentity/).

For organizations with multiple source systems, [sync rules](https://docs.fortytwo.io/identity-universe/iam-core/sync/syncrules/) have join functionality to ensure that certain objects, such as the [CoreIdentity](https://docs.fortytwo.io/identity-universe/iam-core/objecttypes/coreidentity/) of an employee exists only once, even though that employee is registered in multiple HR systems, with multiple part time positions. 

## Connector types

There are a few general types of connectors:

### First party connector

A first party connector is connector where Fortytwo maintains the integration, such as for [Visma Enterprise Plus](https://docs.fortytwo.io/identity-universe/iam-core/connectors/vismaenterpriseplus/) and [Alexis HR](https://docs.fortytwo.io/identity-universe/iam-core/connectors/alexishr/), and you as a customer only provides the required input configuration, such as a username and password, client id and secret, certificate, etc.

After a first party connector is created, it has the state "Created", until the first party connector runtime of the IAM Core picks it up and creates a job for it, after which it becomes "Provisioned".

### API based connector

An API based connector is a connector where you as the customer can populate data from any system, using our [Connector API](https://docs.fortytwo.io/identity-universe/iam-core/api/connector-api/) or our [Connector PowerShell Module](https://docs.fortytwo.io/identity-universe/iam-core/api/connector-powershell-module/) (Which uses the API...). From a [syncrule](https://docs.fortytwo.io/identity-universe/iam-core/sync/syncrules/) standpoint, these connectors work as any first party connector. It is only the way the connector space is actually populated that differs from the first party connectors.

## Available connectors

Which connectors are enabled varies per tenant. Run `Get-IAMCoreConnectorTemplate` to see the ones available to you, along with the exact inputs each expects.

### HR and payroll

| Connector | Source system |
|-|-|
| [Alexis HR](https://docs.fortytwo.io/identity-universe/iam-core/connectors/alexishr/) | Alexis HR |
| [Simployer](https://docs.fortytwo.io/identity-universe/iam-core/connectors/simployer/) | Simployer |
| [SAP SuccessFactors](https://docs.fortytwo.io/identity-universe/iam-core/connectors/successfactors/) | SAP SuccessFactors |
| [Visma Enterprise Plus](https://docs.fortytwo.io/identity-universe/iam-core/connectors/vismaenterpriseplus/) | Visma Enterprise HRM |
| [Dottie](https://docs.fortytwo.io/identity-universe/iam-core/connectors/dottie/) | Dottie |

### Education

| Connector | Source system |
|-|-|
| [Vigilo OnEdHub](https://docs.fortytwo.io/identity-universe/iam-core/connectors/vigiloonedhub/) | Vigilo, through the OnEdHub OneRoster API |
| [Visma Flyktning og Voksenopplæring](https://docs.fortytwo.io/identity-universe/iam-core/connectors/vismaflyvo/) | Visma FLYVO |

### Entra ID

| Connector | Purpose |
|-|-|
| [Entra ID Inbound](https://docs.fortytwo.io/identity-universe/iam-core/connectors/entraidinbound/) | IAM Core reads users from Entra ID, populating `entraObjectId` and related attributes |

### Other

| Connector | Purpose |
|-|-|
| [Demo data — HR](https://docs.fortytwo.io/identity-universe/iam-core/connectors/demodatahr/) | Fictional HR data for a demo municipality |
| [Demo data — SAS](https://docs.fortytwo.io/identity-universe/iam-core/connectors/demodatasas/) | Fictional school information system data for the same municipality |
| [File upload](https://docs.fortytwo.io/identity-universe/iam-core/connectors/fileupload/) | How file based connectors receive their data |
| [Maskinporten](https://docs.fortytwo.io/identity-universe/iam-core/connectors/maskinporten/) | A prerequisite for connectors that authenticate through Maskinporten, rather than a connector itself |

If the system you need is not listed, an [API based connector](#api-based-connector) can bring in data from anywhere — see the [Connector API](https://docs.fortytwo.io/identity-universe/iam-core/api/connector-api/).
