> For the complete documentation index, see [llms.txt](https://docs.concurrence.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.concurrence.com/developer-guide/platform-api/data-world-model/connector-runner.md).

# Connector Runner

The connector runner was retired on October 10, 2026. What was removed, what remains, and how to move integrations off it.

{% hint style="warning" %}
**Retired October 10, 2026.** The connector runner no longer runs. The platform no longer polls data sources, runs the gap scanner, dispatches scheduled `outbound_task` calls, or delivers connector write-back to external systems, including approved external write proposals.
{% endhint %}

The connector runner was the background service that polled supported EHR, FHIR-store, and warehouse sources, delivered eligible world-model events to supported destinations, ran the gap scanner, and dispatched due outbound tasks. It had no public API of its own. Its Platform API surface changed as follows.

## Removed

* `POST /v1/{workspace_id}/data-sources/{data_source_id}/sync`
* `POST /v1/{workspace_id}/settings/gap-scanner/preview` and `POST /v1/{workspace_id}/settings/gap-scanner/scan`
* `GET` and `PUT /v1/{workspace_id}/settings/gap-scanner`, removed October 14, 2026, because nothing acted on the stored settings
* `GET /v1/{workspace_id}/health/sync`
* `health_status`, `last_sync_*`, and `is_stale` on data-source responses
* The connector status fields on pipeline status, and `last_poll` and `last_sync_*` on the pipeline source list and overview
* `last_poll_at`, `last_change_at`, and `sync_healthy` on FHIR status
* The `pipeline` section of the workspace health snapshot
* Platform SDK 0.111.0 removes `dataSources.triggerSync()`, `settings.gapScanner.preview()`, and `settings.gapScanner.scan()`; 0.112.0 removes `settings.gapScanner.get()` and `update()`

On October 9, 2026, the Developer Console removed its Outreach and EHR Sync pages and the Data Sources connector catalog and detail pages. Customer workspaces have no connector catalog or connector detail page.

## What Remains

* **Data-source records.** [Data Sources](https://docs.concurrence.com/api-reference/readme/platform/data-sources) create, read, update, delete, status, and sync history remain. A saved data source is stored, but nothing polls it.
* **Pipeline reads over stored data.** The pipeline endpoints below report stored events, history, throughput, outbound logs, and entity-resolution counts. They no longer report live connector state.

## Moving Off the Connector Runner

* Place outreach calls through the [Calls API](/developer-guide/platform-api/conversations/calls.md). A trigger action can still write an `outbound_task`, but nothing dispatches it.
* Send source records to the world model through [FHIR](/developer-guide/platform-api/data-world-model/fhir.md), [Bulk Import](/developer-guide/platform-api/data-world-model/bulk-import.md), or [Customer Data Intake](/developer-guide/platform-api/data-world-model/intake.md).
* Read from or write to an external system during a conversation through an [integration](/developer-guide/platform-api/integrations.md), and verify the result at the destination.

## Pipeline Observability

Read-only pipeline endpoints remain under `/v1/{workspace_id}/pipeline/`. All operations require `viewer+` access and are workspace-scoped.

### Pipeline Status

{% openapi src="<https://platform.api-us.concurrence.com/v1/openapi.json>" path="/v1/{workspace\_id}/pipeline/status" method="get" %}
<https://platform.api-us.concurrence.com/v1/openapi.json>
{% endopenapi %}

### List Sources

{% openapi src="<https://platform.api-us.concurrence.com/v1/openapi.json>" path="/v1/{workspace\_id}/pipeline/sources" method="get" %}
<https://platform.api-us.concurrence.com/v1/openapi.json>
{% endopenapi %}

### Source Overview

{% openapi src="<https://platform.api-us.concurrence.com/v1/openapi.json>" path="/v1/{workspace\_id}/pipeline/sources/{source\_id}/overview" method="get" %}
<https://platform.api-us.concurrence.com/v1/openapi.json>
{% endopenapi %}

### Source History

{% openapi src="<https://platform.api-us.concurrence.com/v1/openapi.json>" path="/v1/{workspace\_id}/pipeline/sources/{source\_id}/history" method="get" %}
<https://platform.api-us.concurrence.com/v1/openapi.json>
{% endopenapi %}

### Source Events

{% openapi src="<https://platform.api-us.concurrence.com/v1/openapi.json>" path="/v1/{workspace\_id}/pipeline/sources/{source\_id}/events" method="get" %}
<https://platform.api-us.concurrence.com/v1/openapi.json>
{% endopenapi %}

### Outbound Summary

{% openapi src="<https://platform.api-us.concurrence.com/v1/openapi.json>" path="/v1/{workspace\_id}/pipeline/outbound" method="get" %}
<https://platform.api-us.concurrence.com/v1/openapi.json>
{% endopenapi %}

### Outbound Log

{% openapi src="<https://platform.api-us.concurrence.com/v1/openapi.json>" path="/v1/{workspace\_id}/pipeline/outbound/{data\_source\_id}/log" method="get" %}
<https://platform.api-us.concurrence.com/v1/openapi.json>
{% endopenapi %}

### Entity Resolution Metrics

{% openapi src="<https://platform.api-us.concurrence.com/v1/openapi.json>" path="/v1/{workspace\_id}/pipeline/entity-resolution" method="get" %}
<https://platform.api-us.concurrence.com/v1/openapi.json>
{% endopenapi %}

### Legacy Review Counters

The retired event-review pipeline has no producer. Its compatibility counters remain zero and do not represent external write proposals.

{% openapi src="<https://platform.api-us.concurrence.com/v1/openapi.json>" path="/v1/{workspace\_id}/pipeline/review" method="get" %}
<https://platform.api-us.concurrence.com/v1/openapi.json>
{% endopenapi %}

### Throughput

{% openapi src="<https://platform.api-us.concurrence.com/v1/openapi.json>" path="/v1/{workspace\_id}/pipeline/throughput" method="get" %}
<https://platform.api-us.concurrence.com/v1/openapi.json>
{% endopenapi %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.concurrence.com/developer-guide/platform-api/data-world-model/connector-runner.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
