> ## Documentation Index
> Fetch the complete documentation index at: https://docs.zylon.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Integración Confluence

> Lee y sincroniza contenido de Confluence en el espacio de trabajo.

<Warning>
  **Próxima versión — Zylon 1.58**

  Esta documentación se publica antes del lanzamiento para que puedas preparar tus integraciones de API. La imagen de la versión todavía no está disponible. Para instalaciones con 1.57, consulta la [documentación de 1.57](/es/v1.57/overview).
</Warning>

Las integraciones de Confluence importan páginas y espacios para usarlos como artefactos. **Debes habilitar Confluence a nivel de instancia primero**—consulta la guía del operador: [Configuración de Confluence](/es/v1.58/operator-manual/knowledge-base/confluence).

Para crear o volver a autenticar una integración de Confluence Cloud, usa el flujo descrito en [OpenID y OAuth](/es/v1.58/developer-manual/build-with-zylon/workspace-api/authentication/openid). Ese flujo crea o actualiza el artefacto de integración sin exponer los tokens.

## Obtener la integración

Consulta la configuración pública con el endpoint general de artefactos. La respuesta no incluye `private_props` ni tokens OAuth.

<Accordion title="Parametros del endpoint">
  | Tipo | Nombre | Obligatorio | Notas |
  | - | - | - | - |
  | Path | `integrationArtifactID` | Si | ID del artefacto de integración Confluence. |
</Accordion>

```bash theme={null}
curl "https://{BASE_URL}/api/v1/app/artifact/{integrationArtifactID}" \
  -H "Authorization: Bearer {API_TOKEN}" \
  -H "x-org: {org_slug}"
```

<Accordion title="Ejemplo de respuesta">
  ```json theme={null}
  {
    "id": "{integrationArtifactID}",
    "child_count": 0,
    "project_id": "{projectID}",
    "name": "Confluence de soporte",
    "type": "Integration",
    "source": "Confluence",
    "state": "Published",
    "ingest_status": "NotApplicable",
    "props": {},
    "keep_file_after_ingestion": true,
    "created_by": {
      "id": "{accountID}",
      "state": "Active",
      "email": "sasha@example.com",
      "name": "Sasha Patel",
      "provider": "Credentials",
      "roles": ["Workspace"],
      "created_at": "2026-02-08T14:12:45Z",
      "updated_at": "2026-02-08T14:12:45Z"
    },
    "created_at": "2026-03-01T11:00:00Z",
    "updated_at": "2026-03-01T11:00:00Z",
    "scopes": [
      {
        "scope_type": "project",
        "scope_id": "{projectID}",
        "enabled": true,
        "ws_auto_select": false
      }
    ]
  }
  ```
</Accordion>

## Iniciar la ingesta

Indica el proyecto de destino y los espacios que quieres importar. Esta operación sirve para integraciones de Confluence Cloud y ConfluenceLocal. La respuesta es un stream de Server-Sent Events (SSE).

<Accordion title="Parametros del endpoint">
  | Tipo | Nombre | Obligatorio | Notas |
  | - | - | - | - |
  | Path | `integrationArtifactID` | Si | ID del artefacto de integración. |
  | Body | `project_id` | Si | Proyecto de destino. |
  | Body | `space_ids` | Si | IDs de los espacios de Confluence que se importarán. |
</Accordion>

```bash theme={null}
curl -N -X POST "https://{BASE_URL}/api/v1/app/artifact/{integrationArtifactID}/ingest" \
  -H "Authorization: Bearer {API_TOKEN}" \
  -H "x-org: {org_slug}" \
  -H "Content-Type: application/json" \
  -H "Accept: text/event-stream" \
  -d '{
    "project_id": "{projectID}",
    "space_ids": ["{spaceID}"]
  }'
```

<Accordion title="Ejemplo de stream">
  ```text theme={null}
  event: SyncEvent
  data: {"type":"sync_started","current_artifact_count":0,"integration_item_count":120}

  event: SyncEvent
  data: {"type":"sync_progress","artifact_id":"{artifactID}","op":"Added","progress":0.42}

  event: SyncEvent
  data: {"type":"sync_completed"}
  ```
</Accordion>

## ConfluenceLocal con autenticación básica

Los despliegues que usan el proveedor local guardan un artefacto con `source: ConfluenceLocalLegacy`. Las credenciales viajan en `private_props` y nunca se devuelven en respuestas públicas.

### Crear una integración ConfluenceLocal

<Accordion title="Parametros del endpoint">
  | Tipo | Nombre | Obligatorio | Notas |
  | - | - | - | - |
  | Body | `project_id` | No | Proyecto propietario de la integración. Omítelo para una integración de organización; esa operación requiere `AppAdmin` o superior. |
  | Body | `type` | Si | Debe ser `Integration`. |
  | Body | `source` | Si | Debe ser `ConfluenceLocalLegacy`. |
  | Body | `name` | Si | Nombre visible de la integración. |
  | Body | `props` | Si | Usa `{}`. |
  | Body | `props.metadata` | No | Metadatos opcionales del proveedor. |
  | Body | `private_props.username` | Si | Usuario de ConfluenceLocal. |
  | Body | `private_props.password` | Si | Contraseña de ConfluenceLocal. |
</Accordion>

```bash theme={null}
curl -X POST "https://{BASE_URL}/api/v1/app/artifact" \
  -H "Authorization: Bearer {API_TOKEN}" \
  -H "x-org: {org_slug}" \
  -H "Content-Type: application/json" \
  -d '{
    "project_id": "{projectID}",
    "type": "Integration",
    "source": "ConfluenceLocalLegacy",
    "name": "ConfluenceLocal de soporte",
    "props": {},
    "private_props": {
      "username": "{confluence_username}",
      "password": "{confluence_password}"
    }
  }'
```

<Accordion title="Ejemplo de respuesta">
  ```json theme={null}
  {
    "id": "{integrationArtifactID}",
    "child_count": 0,
    "project_id": "{projectID}",
    "name": "ConfluenceLocal de soporte",
    "type": "Integration",
    "source": "ConfluenceLocalLegacy",
    "state": "Published",
    "ingest_status": "NotApplicable",
    "props": {},
    "keep_file_after_ingestion": true,
    "created_at": "2026-03-01T11:00:00Z",
    "updated_at": "2026-03-01T11:00:00Z"
  }
  ```
</Accordion>

### Actualizar las credenciales de ConfluenceLocal

<Accordion title="Parametros del endpoint">
  | Tipo | Nombre | Obligatorio | Notas |
  | - | - | - | - |
  | Path | `integrationArtifactID` | Si | ID del artefacto de integración ConfluenceLocal. |
  | Body | `private_props.username` | Si | Nuevo usuario de ConfluenceLocal. |
  | Body | `private_props.password` | Si | Nueva contraseña de ConfluenceLocal. |
</Accordion>

```bash theme={null}
curl -X PUT "https://{BASE_URL}/api/v1/app/artifact/{integrationArtifactID}" \
  -H "Authorization: Bearer {API_TOKEN}" \
  -H "x-org: {org_slug}" \
  -H "Content-Type: application/json" \
  -d '{
    "private_props": {
      "username": "{confluence_username}",
      "password": "{confluence_password}"
    }
  }'
```

La respuesta es el `ArtifactDTO` actualizado. Usa el mismo `GET /api/v1/app/artifact/{integrationArtifactID}` para consultar sus campos públicos.

## Errores y casos límite

* **400**: faltan `project_id`, `space_ids` o las credenciales obligatorias.
* **403**: integración no habilitada o permisos insuficientes.
* **404**: proyecto o artefacto de integración no encontrado.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.