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

# Manage your Help Center

> Use your AI or REST integration to organize content, review proposals, and import Knowledge articles.

## Choose access

In **Settings → API**, choose **Full Access**, or choose **Custom Access → Help Center → Full Access**. Existing keys keep their old permissions until you edit them. For OAuth, reconnect with the new scopes and approve the request.

| Access | What it allows |
| - | - |
| Read | Read drafts, published articles, collections, and settings |
| Propose | Read and submit content for review |
| Draft | Propose, create drafts, and edit unpublished articles |
| Publish | Also publish, unpublish, and edit live articles |
| Full Access | Also manage collections, settings, imports, proposal decisions, and deletion |

Management reads require `help:read` and `help:manage`. Management writes additionally require `help:articles:publish`. Direct article creation and editing use `help:articles:write`. The person who granted access must remain an owner or admin.

## Start with your AI

Connect to `https://mcp.protodesk.io/mcp` using [Setup](/mcp/connect). Then ask:

```text theme={null}
Show me this workspace's Help Center collections and pending proposals.
Summarize the first proposal in full, but wait for my decision before changing it.
```

For collection changes:

```text theme={null}
Create an English “Getting started” collection. Put it first, keep all existing
collections, and show me the final order.
```

The assistant reads the workspace and current IDs first. It should never guess an article, collection, member, or workspace ID.

## Use the REST API

Create a collection with a unique retry key:

```bash theme={null}
curl https://api.protodesk.io/v1/authoring/collections \
  -H "Authorization: Bearer $PROTODESK_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: create-getting-started-001" \
  -d '{"name":"Getting started","slug":"getting-started","locale":"en"}'
```

Keep the returned collection ID and revision. To update or delete it, read the current collection list and supply `expectedRevision`. Reuse the same idempotency key only when retrying the identical request.

See the [collection API reference](/api-reference/help-management/list_authoring_collections) for request and response fields.

## Review proposals

List pending proposals, then read the specific proposal's full content with `get_authoring_review`. The queue omits full bodies and supports pages of up to 100 results using `nextAfter` and `after`.

Apply only the user's explicit decision:

* **Approve as draft:** `decision: "approved", approvalOutcome: "draft"`.
* **Approve and publish:** `decision: "approved", approvalOutcome: "publish"`.
* **Dismiss:** `decision: "dismissed"`, without overrides or an approval outcome.

Approval defaults to draft. Choosing draft for an existing published article removes it from publication. A stale base revision returns a conflict so the user can review the newer content.

The ordinary proposal endpoint only reads proposals created by that same connection. Management permission adds access to the workspace review queue and full proposal details.

## Import Knowledge articles

1. Find eligible articles with `list_authoring_import_candidates`.
2. Select the exact IDs and optional destination collection.
3. Choose `skip` or `overwrite` for existing imports.
4. Call `import_authoring_articles` with up to 100 IDs.
5. Inspect each result: an item may be imported, overwritten, skipped, or rejected.

The source Knowledge article stays unchanged. Overwriting an existing import can change its live Help Center content. Candidate search returns at most 100 matches; narrow the search when needed.

## Ordering and deletion

Collection ordering requires the complete list of siblings. Article ordering requires the complete list within the selected collection and locale. Concurrent ordering changes use the last successful write.

Deleting a collection moves its child collections and articles to the root. Deleting an article permanently removes it. Use unpublish when you want to retain the article.

## Settings and retries

Settings cover publication status, name, description, enabled locales, and translations. Read the settings revision before saving. Publishing requires a published article in the default locale; a locale used by an article cannot be removed.

Custom domains and public addresses remain dashboard settings.

Every management write requires an idempotency key; MCP additionally checks `expectedWorkspaceId`. Updates to collections/settings and deletion also require the current revision. Identical retries return the saved result without repeating the change or its indexing job. Changed payloads conflict, and revoked or expired connections cannot replay results.


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