> For the complete documentation index, see [llms.txt](https://docs.valtimo.nl/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.valtimo.nl/configuration-guides/plugins/external-plugins.md).

# External plugins

External plugins run outside the Valtimo backend — on a **plugin host** or as a standalone **app** — and are connected, installed, and activated from the admin interface. This page introduces the admin screens; the child pages walk through each task step by step.

This includes:

* [**Add a plugin host**](/configuration-guides/plugins/external-plugins/add-a-plugin-host.md) — connect a plugin host that will run uploaded plugin packages
* [**Add an app**](/configuration-guides/plugins/external-plugins/add-an-app.md) — connect a service that provides a single built-in plugin
* [**Upload a plugin**](/configuration-guides/plugins/external-plugins/upload-a-plugin.md) — install a plugin package (`.zip`) on a plugin host
* [**Configure a plugin**](/configuration-guides/plugins/external-plugins/configure-a-plugin.md) — activate a plugin, fill in its settings, and accept its permissions
* [**Manage an integration**](/configuration-guides/plugins/external-plugins/manage-an-integration.md) — repoint connections, tune event delivery, manage frontend origins, and delete safely
* [**Plugin status and reviews**](/configuration-guides/plugins/external-plugins/plugin-status-and-reviews.md) — what each status tag means, and how to resolve a plugin that changed after it was accepted
* [**Plugin logs**](/configuration-guides/plugins/external-plugins/plugin-logs.md) — inspect a configuration's log entries and outbound calls
* [**External plugins in cases and processes**](/configuration-guides/plugins/external-plugins/external-plugins-in-cases-and-processes.md) — bind configured plugins to processes, tasks, tabs, widgets, and menus
* [**Troubleshooting**](/configuration-guides/plugins/external-plugins/troubleshooting.md) — start from the symptom and find the fix

***

## The three admin pages

{% stepper %}
{% step %}
Expand **Admin** in the left sidebar
{% endstep %}

{% step %}
Under **Integrations**, choose a page: **Plugins**, **Plugin hosts**, or **Apps**
{% endstep %}
{% endstepper %}

**Plugins** lists the plugin configurations of embedded plugins and of plugins served by plugin hosts. The **Source** column distinguishes **Embedded** (runs inside Valtimo) from **External** (runs on an integration); external rows also show which host serves them. An app's configuration is not listed here — it is managed on the **Apps** page, together with the app itself.

<figure><img src="https://3330064618-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fq5dx9HWFJGshztp4binE%2Fuploads%2Fgit-blob-a6ffdb20ab80f323b1476ce4ad053fb3b2b22b22%2F06-plugins-external-rows.png?alt=media" alt=""><figcaption><p>Plugins page with an external configuration</p></figcaption></figure>

**Plugin hosts** and **Apps** list the connected integrations with their status:

| Status          | Meaning                                                                                                                    |
| --------------- | -------------------------------------------------------------------------------------------------------------------------- |
| **Connected**   | Check-ins are succeeding — the integration is reachable and accepts Valtimo's credentials.                                 |
| **Unreachable** | Repeated check-ins failed. Configurations stay in place and recover automatically once the integration is reachable again. |

<figure><img src="https://3330064618-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fq5dx9HWFJGshztp4binE%2Fuploads%2Fgit-blob-8ce219622b35a25b908a7906af86f12598cb3550%2F01-plugin-hosts-page.png?alt=media" alt=""><figcaption><p>Plugin hosts page</p></figcaption></figure>

***

## How Valtimo keeps integrations in sync

Valtimo polls every integration on a fixed interval (one minute by default). Each cycle it:

* discovers the plugins and versions the integration offers, and updates their status;
* re-sends every active configuration together with a fresh, short-lived access token;
* verifies that the installed plugin packages are still exactly the ones that were accepted.

Because of this loop, most problems are self-healing: an integration that was down picks up its configurations on the next cycle, without any manual step.

{% hint style="warning" %}
If what an integration serves stops matching what was accepted — a changed package on a plugin host, or a changed manifest on an app — Valtimo suspends it: its actions fail, its screens go dark, and no tokens are issued, until an administrator reviews and accepts the change. It is tagged **Review required** until then; see [Plugin status and reviews](/configuration-guides/plugins/external-plugins/plugin-status-and-reviews.md#review-required) for how to resolve it.
{% endhint %}
