> For the complete documentation index, see [llms.txt](https://doc.wearepatchworks.com/product-documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doc.wearepatchworks.com/product-documentation/connectors-and-instances/connectors-and-instances-introduction.md).

# Connectors & instances introduction

## Introduction

Understanding the relationship between **connectors** and **instances** is key when you are working with process flows. In short:&#x20;

* A [connector](#connectors) is a generic integration of a third-party business system/application - it contains everything needed 'under the hood' (for example, endpoints, authentication methods, etc.) to sync data from/to the associated application.&#x20;
* An [instance](#instances) of a connector is unique to your company, personalised with your own credentials and settings. Any instances that you add are available for use in [process flows](/product-documentation/process-flows/about-process-flows.md) when you add a [connection shape](/product-documentation/process-flows/building-process-flows/process-flow-shapes/standard-shapes/connector-shape.md).

These relationships are illustrated below:

<div align="left"><figure><img src="/files/eRlAYyGUcx95E9XhejsD" alt="" width="563"><figcaption></figcaption></figure></div>

## Connectors

The chances are that your business uses a range of third-party applications - for example, you might take sales orders in Shopify, manage customer data in Voyado, and handle financial accounts in NetSuite.&#x20;

In Patchworks, a **connector** is an integration of a third-party business system/application that you can [install](/product-documentation/connectors-and-instances/working-with-connectors/installing-a-connector.md) if you need to sync data from/to the associated application. A curated library of **prebuilt connectors** can be found in the [Patchworks marketplace](/product-documentation/marketplace/the-patchworks-marketplace.md).

{% hint style="info" %}
If you need to integrate a third-party application that doesn't have a prebuilt connector in the [Patchworks marketplace](#patchworks-marketplace) - and if you have technical knowledge of APIs and working with data structures - you can use the [connector builder](/product-documentation/developer-hub/connector-builder.md) to integrate any application with a REST API.&#x20;
{% endhint %}

When you [install a connector](/product-documentation/connectors-and-instances/working-with-connectors/installing-a-connector.md), you are installing a package of generic configuration and setup that's required to integrate the associated third-party application in Patchworks. You only need to install a given **connector** once. After that, you can add as many [instances](#instances) of it as you need for use in your [process flows](/product-documentation/process-flows/about-process-flows.md).&#x20;

Similarly, if you [update an installed connector](/product-documentation/connectors-and-instances/working-with-connectors/updating-a-connector.md), that update is applied to all associated instances automatically.

{% hint style="info" %}
The Patchworks development team maintains all prebuilt connectors in the marketplace. If you have installed a connector, you may find that updates become available in the marketplace - you can decide if/when you apply these updates.
{% endhint %}

## Instances

An **instance** is the mechanism used to configure a **connector** for your own use in [process flows](/product-documentation/process-flows/about-process-flows.md).&#x20;

{% hint style="info" %}
**Instances** are added to process flows via the [connection shape](/product-documentation/process-flows/building-process-flows/process-flow-shapes/standard-shapes/connector-shape.md).
{% endhint %}

Every instance requires authentication credentials that allow you to access the associated third-party application. Typically, you'll create one instance for each set of credentials that you have for a given connector that you want to use in [process flows](/product-documentation/process-flows/about-process-flows.md). The examples below show how this might work in practice.

<details>

<summary><img src="/files/VDlwYFR9Br2ScHUDewYv" alt="" data-size="line"> Example 1: simple </summary>

In the simplest scenario, you might have one UK Shopify store which needs to sync orders to NetSuite. In this case, you would:

* Install the Shopify **connector** (once)
* Add one **instance** of your Shopify connector&#x20;
* Install the NetSuite **connector** (once)
* Add one **instance** of your NetSuite connector&#x20;

This is illustrated below:&#x20;

![](/files/PB23ZayKgv1v63xfRYCs)

</details>

<details>

<summary><img src="/files/VDlwYFR9Br2ScHUDewYv" alt="" data-size="line"> Example 2: complex</summary>

For a more complex scenario, let's say you have three Shopify stores - UK, EU and US (each with its authentication credentials) which need to sync orders to NetSuite. In this case, you would:

* Install the Shopify **connector** (once)
* Add three **instances** of your Shopify connector - one for each store
* Install the NetSuite **connector** (once)
* Add one instance of your NetSuite connector&#x20;

This is illustrated below:

![](/files/uGNY8iHxIqUyRIUvucQp)

</details>

## Event connectors

Event connectors are a different sort of connector, used to configure listeners for message brokers such as RabbitMQ. For more information please see the [Event connectors](/product-documentation/connectors-and-instances/event-connectors-beta.md) section.
