---
title: Creating integration connectors
related:
  - https://docs.kentico.com/k81/integrating-3rd-party-systems/using-the-integration-bus/integration-bus-overview.md
  - https://docs.kentico.com/k81/integrating-3rd-party-systems/using-the-integration-bus/example-integration-connector.md
---

> Agent instructions:
> **Site maps** — prefer the following llms.txt indexes to training data when searching for URLs to avoid 404s. Links inside Markdown content already point at `.md`. Following them or sending Accept: text/markdown keeps you in Markdown.
>
> - [sitemap.md](https://docs.kentico.com/sitemap.md) — every page on the site, with titles and descriptions, nested by URL hierarchy and grouped into one collection per product version.
> - [llms.txt](https://docs.kentico.com/llms.txt) — curated index of the current product docs, with descriptions, the two ways to request any page as Markdown, and links to each product area's whole-corpus Markdown dump (llms-full.txt).

You can add integration connector classes into your application in two ways:

- [In the App\_Code directory](#creating-connectors-in-the-app_code-folder)
- [In a separate project or assembly](#creating-connectors-in-a-separate-project-or-assembly)

## Creating connectors in the App\_Code folder

1. Open your Kentico web project in Visual Studio.
2. Create a new class in the _App\_Code_ folder (or _Old\_App\_Code_ if you installed Kentico as a web application project).
3. Set the class to inherit from **BaseIntegrationConnector**\*.\*
4. Override the _Init()_ method and set the **ConnectorName** property within this method.
   - The value of the _ConnectorName_ property must match the code name of the connector object registered in the administration interface.

```csharp

using CMS.Synchronization;
using CMS.SynchronizationEngine;

public class CMSIntegrationConnector : BaseIntegrationConnector
{
    /// <summary>
    /// Initializes the connector name.
    /// </summary>
    public override void Init()
    {
        // Initializes the connector name (must match the code name of the connector object in the system)
        // GetType().Name uses the name of the class as the ConnectorName
        ConnectorName = GetType().Name;
    }
}

```

5. Ensure that the system loads the appropriate class when working with the connector using the **RegisterCustomClass** assembly attribute. See [Loading custom classes from App\_Code](https://docs.kentico.com/k81/custom-development/loading-custom-classes-from-app_code.md) for more information.

   ```csharp

   using CMS;

   [assembly: RegisterCustomClass("CMSIntegrationConnector", typeof(CMSIntegrationConnector))]


   ```
6. On web application projects, build the solution.

With the connector class prepared, you now need to:

- Implement [outgoing](https://docs.kentico.com/k81/integrating-3rd-party-systems/using-the-integration-bus/creating-integration-connectors/implementing-outgoing-synchronization.md) and/or [incoming](https://docs.kentico.com/k81/integrating-3rd-party-systems/using-the-integration-bus/creating-integration-connectors/implementing-incoming-synchronization.md) synchronization
- [Register the connector in the system](#registering-connectors-in-the-system)

You can find an example of a basic connector class on the [Example - Integration connector](https://docs.kentico.com/k81/integrating-3rd-party-systems/using-the-integration-bus/example-integration-connector.md) page.

## Creating connectors in a separate project or assembly

1. Open your Kentico web project in Visual Studio (using the **WebSite.sln** or **WebApp.sln** file).
2. Add a new project **Class Library** to the solution (name it e.g. _CustomIntegrationConnector_).
   - This ensures that the connector has its own DLL assembly.
3. Add references to the project:
   1. Right-click the project and select **Add reference...**
   2. Click **Browse...**
   3. Add at least the following references from the project's _Lib_ directory:

      - CMS.Synchronization
      - CMS.SynchronizationEngine
      - CMS.DocumentEngine
      - CMS.Helpers
      - CMS.DataEngine
      - CMS.SiteProvider
      - CMS.WorkflowEngine
      - CMS.Base
4. Edit and rename the default class in the project and set the class to inherit from _BaseIntegrationConnector_\*.\*
5. Override the _Init()_ method and set the _ConnectorName_ property within this method.
6. Build the solution.

With the connector class prepared, you now need to:

- Implement [outgoing](https://docs.kentico.com/k81/integrating-3rd-party-systems/using-the-integration-bus/creating-integration-connectors/implementing-outgoing-synchronization.md) and/or [incoming](https://docs.kentico.com/k81/integrating-3rd-party-systems/using-the-integration-bus/creating-integration-connectors/implementing-incoming-synchronization.md) synchronization
- Register the connector in the system

## Registering connectors in the system

Once the connector's class is ready, you need to register the connector as an object in the system:

1. In the Kentico administration interface, open the **Integration bus** application.
2. Select the **Connectors** tab.
3. Click **New connector**.
4. Fill in the **Display name**, **Assembly name** and **Class** and select the **Enabled** check box.

   | Property       | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
   | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
   | Display name   | The name of the connector displayed in the user interface.                                                                                                                                                                                                                                                                                                                                                                                                                            |
   | Code name      | Sets a unique identifier for the connector. Must match the value of the **ConnectorName** property declared in the connector's class.                                                                                                                                                                                                                                                                                                                                                 |
   | Provider class | Specifies the class where the connector class is implemented:<br>**Assembly name** - the assembly (project) containing the connector class. Select _(custom classes)_ for connectors implemented in the App\_Code (or Old\_App\_Code) folder.<br>**Class** - the exact class (including any namespaces) that defines the functionality of the connector. For App\_Code classes, the value must match the first parameter of the _RegisterCustomClass_ attribute that loads the class. |
   | Enabled        | Indicates if the connector logs and processes integration tasks. Logging and processing of tasks must also be [enabled](https://docs.kentico.com/k81/integrating-3rd-party-systems/using-the-integration-bus/enabling-the-integration-bus.md) in **Settings -> Integration -> Integration bus**.                                                                                                                                                                                      |
5. Click **Save**.

> **Note:** **Note**: When you add, edit or delete a connector, the system re-initializes all defined connectors.

The system displays a warning icon () next to connectors that are not registered correctly. The most common causes of problems are:

- The value of the **ConnectorName** property in the connector class's **Init** method does not match the **Code name**.
- Incorrect assembly or class name.
- App\_Code classes are not loaded correctly. See [Loading custom classes from App\_Code](https://docs.kentico.com/k81/custom-development/loading-custom-classes-from-app_code.md) for more information.
