# Connectors

Connectors are an integral part of your application logic that handle the translation between Heisenware and the outside world. They allow your flows to communicate natively with third-party systems, industrial protocols, and external databases.

## Connection scenarios

Where a connector executes depends on whether the target system is accessible over the public internet.

### Direct cloud connection

If the system is accessible from the public internet (e.g., a cloud API, a web service, or a public MQTT broker), you can use the connector directly in your application backend. The Heisenware platform manages the connection and execution for you in the cloud.

### Local connection (via Edge Agent)

If the target system is on a private, isolated network with no inbound internet access (such as a PLC on a factory shop floor), it cannot be reached directly from the cloud.

In this scenario, you must use an Edge Agent (available as a native binary or Docker container).

* **Customized Native Agent**: You can compile a native agent directly inside the App Builder. You decide exactly which connectors and credentials you want to include in the package.
* **Deployment**: Once you have built your custom binary, you install it on a target system within the local network.
* **Visibility in library**: Once the agent is online, it automatically appears in your [library](/app-builder/build-backend/function-explorer.md). Inside the visual Agent representation, you will find the specific connector classes you selected during the build process.
* **Edge execution**: Using functions from this agent-specific category ensures that the logic is executed directly at the edge, allowing you to integrate local devices seamlessly.

{% hint style="info" %}
For a deep dive into the build process and deployment options, please refer to the [Edge Agent](/app-builder/build-backend/function-explorer/agents.md) article.
{% endhint %}

## Available Connectors

The following connectors are available. Most of them in both connection scenarios. Each link leads to a detailed guide on configuring and using that specific integration.

<table><thead><tr><th width="213.8148193359375">Connector</th><th>Description</th></tr></thead><tbody><tr><td><a href="/pages/uBy72PCjtEfPRip1fNRn">Allen-Bradley</a></td><td>Connects directly to Allen-Bradley PLCs for machine data acquisition and control.</td></tr><tr><td><a href="/pages/C40KMwsBQDP0Q1uSh99a">Email</a></td><td>Sends and receives emails via SMTP and IMAP.</td></tr><tr><td><a href="/pages/c0zTMdX07seAUx6QG202">File I/O</a></td><td>Reads from and writes to files on a connected file system.</td></tr><tr><td><a href="/pages/mw4R48qcTckl2gj75XfB">GraphQL</a></td><td>Interacts with any GraphQL API for flexible data queries.</td></tr><tr><td><a data-mention href="/pages/uR7ag0e2XYlJZxKBVUym">/pages/uR7ag0e2XYlJZxKBVUym</a></td><td>Connects to Heidenhain DNC systems. Always requires a <a href="#local-connection-via-edge-agent">local connection scenario</a>.</td></tr><tr><td><a data-mention href="/pages/EpkGBqvJEohlwCLGY3sK">/pages/EpkGBqvJEohlwCLGY3sK</a></td><td>Connects to Heidenhain controllers using the OPC UA protocol.</td></tr><tr><td><a data-mention href="/pages/L08PCk3zIc2TgpfsrzgF">/pages/L08PCk3zIc2TgpfsrzgF</a></td><td>Makes requests to standard web APIs and HTTP endpoints.</td></tr><tr><td><a data-mention href="/pages/kw6aas3ewlQQg7TvBTwc">/pages/kw6aas3ewlQQg7TvBTwc</a></td><td>Integrates natively with the Manufacturing Integration Platform (MIP) and the corresponding MES Hydra from MPDV.</td></tr><tr><td><a data-mention href="/pages/jfNWX6WTm4kRbEY5NDTO">/pages/jfNWX6WTm4kRbEY5NDTO</a></td><td>Controls Kuando Busylight status indicators.</td></tr><tr><td><a data-mention href="/pages/6J6Z8QTDo8V7qfnIamFx">/pages/6J6Z8QTDo8V7qfnIamFx</a></td><td>Sends print commands to ZPL-compatible label printers.</td></tr><tr><td><a href="/pages/bBpBJHJDgCgRBimPfTVS">Modbus</a></td><td>Communicates with industrial devices using the Modbus protocol.</td></tr><tr><td><a data-mention href="/pages/SjaZX1Ck2iulBLfYMBsc">/pages/SjaZX1Ck2iulBLfYMBsc</a></td><td>Connects to an MQTT broker to publish and subscribe to topics.</td></tr><tr><td><a data-mention href="/pages/WS4WBTv7pGfvEU4Mfv9Q">/pages/WS4WBTv7pGfvEU4Mfv9Q</a></td><td>Connects to an OPC UA server for industrial automation data exchange.</td></tr><tr><td><a data-mention href="/pages/wjUA4cwxxIGAza9c27Mv">/pages/wjUA4cwxxIGAza9c27Mv</a></td><td>Deploys an OPC UA server to expose data from your application.</td></tr><tr><td><a data-mention href="/pages/MdmdlXd1DsLNYXnno74M">/pages/MdmdlXd1DsLNYXnno74M</a></td><td>Accesses stats and info from the host operating system.</td></tr><tr><td><a data-mention href="/pages/dXgBShltvuNrQPP8wxys">/pages/dXgBShltvuNrQPP8wxys</a></td><td>Connects to external SQL databases.</td></tr><tr><td><a data-mention href="/pages/IyQBYLW5fzoba8o2vbBz">/pages/IyQBYLW5fzoba8o2vbBz</a></td><td>Communicates with devices over a serial port.</td></tr><tr><td><a data-mention href="/pages/0Fml3upShU9SRZFhooR4">/pages/0Fml3upShU9SRZFhooR4</a></td><td>Integrates natively with SAP Digital Manufacturing.</td></tr><tr><td><a data-mention href="/pages/mwKgD9VN42LBsPIDSzZ8">/pages/mwKgD9VN42LBsPIDSzZ8</a></td><td>Connects directly to Siemens S7 PLCs for data acquisition and control.</td></tr><tr><td><a data-mention href="/pages/Is04w82dY7i1e4Uo4Y0w">/pages/Is04w82dY7i1e4Uo4Y0w</a></td><td>Connects to an external InfluxDB database.</td></tr><tr><td><a data-mention href="/pages/u1Gr4YwMakcH7v5iujQH">/pages/u1Gr4YwMakcH7v5iujQH</a></td><td>Interacts with Zebra RFID readers and devices.</td></tr></tbody></table>

{% hint style="success" %}

#### Internal Storage

Heisenware includes production-ready internal [PostgreSQL](/app-builder/build-backend/function-explorer/storage/relational-database.md) and internal [InfluxDB](/app-builder/build-backend/function-explorer/storage/timeseries-database.md) databases by default. You only need the connectors above if you are linking to your own *external* database servers.
{% endhint %}


---

# 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.heisenware.com/app-builder/build-backend/function-explorer/connectors.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.
