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

# Manage documents

> Preview, edit, and delete the documents and media in a knowledge base, then apply the changes with a reindex.

export const Browser = ({url, children}) => <div className="tars-browser">
    <div className="tars-browser-bar">
      <span className="tars-browser-dots">
        <i />
        <i />
        <i />
      </span>
      {url ? <span className="tars-browser-url">{url}</span> : null}
    </div>
    <div className="tars-browser-view">{children}</div>
  </div>;

export const img = {
  activity: {
    activityTimeline: "/docs/guides/activity/images/activity-timeline.png",
    capturedVariablesPanel: "/docs/guides/activity/images/captured-variables-panel.png",
    dataViewCards: "/docs/guides/activity/images/data-view-cards.png",
    exportDataDialog: "/docs/guides/activity/images/export-data-dialog.png",
    tasksPanelExportReady: "/docs/guides/activity/images/tasks-panel-export-ready.png"
  },
  analytics: {
    analyticsOverview: "/docs/guides/analytics/images/analytics-overview.png",
    exploreGallery: "/docs/guides/analytics/images/explore-gallery.png",
    exploreTab: "/docs/guides/analytics/images/explore-tab.png",
    goalForm: "/docs/guides/analytics/images/goal-form.png",
    goalsTab: "/docs/guides/analytics/images/goals-tab.png",
    improveDiagnostics: "/docs/guides/analytics/images/improve-diagnostics.png",
    improveTab: "/docs/guides/analytics/images/improve-tab.png",
    teamTab: "/docs/guides/analytics/images/team-tab.png"
  },
  billing: {
    billingOverview: "/docs/guides/billing/images/billing-overview.png",
    buyConversationsDialog: "/docs/guides/billing/images/buy-conversations-dialog.png",
    buySeatsDialog: "/docs/guides/billing/images/buy-seats-dialog.png",
    livechatSeatsTab: "/docs/guides/billing/images/livechat-seats-tab.png",
    organizationDeletionLifecycle: "/docs/guides/billing/images/organization-deletion-lifecycle.svg",
    organizationSwitcher: "/docs/guides/billing/images/organization-switcher.png",
    rolesAndAccessMatrix: "/docs/guides/billing/images/roles-and-access-matrix.png"
  },
  building: {
    agentBehaviorGuardrails: "/docs/guides/building/images/agent-behavior-guardrails.png",
    agentCardMenu: "/docs/guides/building/images/agent-card-menu.png",
    agentConfigure: "/docs/guides/building/images/agent-configure.png",
    agentExitRoutesDialog: "/docs/guides/building/images/agent-exit-routes-dialog.png",
    agentLibrary: "/docs/guides/building/images/agent-library.png",
    agentModelParameters: "/docs/guides/building/images/agent-model-parameters.png",
    aiAgentGambitLoop: "/docs/guides/building/images/ai-agent-gambit-loop.svg",
    builderBasics: "/docs/guides/building/images/builder-basics.png",
    builderConnectHandlePanel: "/docs/guides/building/images/builder-connect-handle-panel.png",
    builtInToolsDialog: "/docs/guides/building/images/built-in-tools-dialog.png",
    configureDebugTab: "/docs/guides/building/images/configure-debug-tab.png",
    configureLanguage: "/docs/guides/building/images/configure-language.png",
    configureNotifications: "/docs/guides/building/images/configure-notifications.png",
    createAgentDialog: "/docs/guides/building/images/create-agent-dialog.png",
    draftPublishRollbackPinning: "/docs/guides/building/images/draft-publish-rollback-pinning.svg",
    draftSwitcherChip: "/docs/guides/building/images/draft-switcher-chip.png",
    duplicateAgentDialog: "/docs/guides/building/images/duplicate-agent-dialog.png",
    flowConditions: "/docs/guides/building/images/flow-conditions.png",
    gambitPalette: "/docs/guides/building/images/gambit-palette.png",
    gambits: {
      gambitAiAgent: "/docs/guides/building/gambits/images/gambit-ai-agent.png",
      gambitApiCall: "/docs/guides/building/gambits/images/gambit-api-call.png",
      gambitAutoSuggestion: "/docs/guides/building/gambits/images/gambit-auto-suggestion.png",
      gambitButton: "/docs/guides/building/gambits/images/gambit-button.png",
      gambitCard: "/docs/guides/building/gambits/images/gambit-card.png",
      gambitChannel: "/docs/guides/building/gambits/images/gambit-channel.png",
      gambitCustomCode: "/docs/guides/building/gambits/images/gambit-custom-code.png",
      gambitDateTime: "/docs/guides/building/gambits/images/gambit-date-time.png",
      gambitGeoLocation: "/docs/guides/building/gambits/images/gambit-geo-location.png",
      gambitLanguage: "/docs/guides/building/gambits/images/gambit-language.png",
      gambitLiveChat: "/docs/guides/building/gambits/images/gambit-live-chat.png",
      gambitMediaUpload: "/docs/guides/building/gambits/images/gambit-media-upload.png",
      gambitNoInput: "/docs/guides/building/gambits/images/gambit-no-input.png",
      gambitRedirect: "/docs/guides/building/gambits/images/gambit-redirect.png",
      gambitStarRating: "/docs/guides/building/gambits/images/gambit-star-rating.png",
      gambitStartAndEnd: "/docs/guides/building/gambits/images/gambit-start-and-end.png",
      gambitText: "/docs/guides/building/gambits/images/gambit-text.png",
      gambitTrigger: "/docs/guides/building/gambits/images/gambit-trigger.png"
    },
    languagesTranslateGambit: "/docs/guides/building/images/languages-translate-gambit.png",
    languageSystemMessages: "/docs/guides/building/images/language-system-messages.png",
    newDraftDialog: "/docs/guides/building/images/new-draft-dialog.png",
    outputComponentsGrid: "/docs/guides/building/images/output-components-grid.png",
    publishDialog: "/docs/guides/building/images/publish-dialog.png",
    systemPromptDialog: "/docs/guides/building/images/system-prompt-dialog.png",
    testModeEventLog: "/docs/guides/building/images/test-mode-event-log.png",
    testModePanel: "/docs/guides/building/images/test-mode-panel.png",
    validationProblemsPanel: "/docs/guides/building/images/validation-problems-panel.png",
    variablePickerPanel: "/docs/guides/building/images/variable-picker-panel.png",
    variablePillInserted: "/docs/guides/building/images/variable-pill-inserted.png",
    versionsDraftsPanel: "/docs/guides/building/images/versions-drafts-panel.png"
  },
  campaigns: {
    campaignFlavorsTriggers: "/docs/guides/campaigns/images/campaign-flavors-triggers.svg",
    campaignReplyRouting: "/docs/guides/campaigns/images/campaign-reply-routing.svg",
    campaignSendAnatomy: "/docs/guides/campaigns/images/campaign-send-anatomy.svg",
    createACampaign: "/docs/guides/campaigns/images/create-a-campaign.png",
    walletReserveSettleRefund: "/docs/guides/campaigns/images/wallet-reserve-settle-refund.svg",
    webhookCampaignContractLocking: "/docs/guides/campaigns/images/webhook-campaign-contract-locking.svg",
    webhookCampaignLifecycleStates: "/docs/guides/campaigns/images/webhook-campaign-lifecycle-states.svg",
    webhookCampaignOneCallOneDelivery: "/docs/guides/campaigns/images/webhook-campaign-one-call-one-delivery.svg"
  },
  channels: {
    distributeWhatsappConnect: "/docs/guides/channels/images/distribute-whatsapp-connect.png",
    whatsappConnectDialogWaiting: "/docs/guides/channels/images/whatsapp-connect-dialog-waiting.png",
    whatsappEmptyState: "/docs/guides/channels/images/whatsapp-empty-state.png"
  },
  deploy: {
    bridgeEventGambitSection: "/docs/guides/deploy/images/bridge-event-gambit-section.png",
    deploymentSurfacesAndChannels: "/docs/guides/deploy/images/deployment-surfaces-and-channels.svg",
    designAgentTab: "/docs/guides/deploy/images/design-agent-tab.png",
    designLauncherTab: "/docs/guides/deploy/images/design-launcher-tab.png",
    embedIframeTab: "/docs/guides/deploy/images/embed-iframe-tab.png",
    embedTheWidget: "/docs/guides/deploy/images/embed-the-widget.png",
    mobileAppIntegration: "/docs/guides/deploy/images/mobile-app-integration.png",
    onYourDomain: "/docs/guides/deploy/images/on-your-domain.png",
    shareYourAgentLink: "/docs/guides/deploy/images/share-your-agent-link.png"
  },
  developer: {
    api: {
      channelSendTemplateVsMessage: "/docs/developer/api/images/channel-send-template-vs-message.svg",
      endUsers: {
        endUsersListCursorPagination: "/docs/developer/api/end-users/images/end-users-list-cursor-pagination.svg"
      },
      triggerCallConversationLifecycle: "/docs/developer/api/images/trigger-call-conversation-lifecycle.svg"
    },
    developerSurfacesMap: "/docs/developer/images/developer-surfaces-map.svg",
    embed: {
      embedConfigToWidgetContext: "/docs/developer/embed/images/embed-config-to-widget-context.svg",
      hostPageBridgeFlow: "/docs/developer/embed/images/host-page-bridge-flow.svg",
      identitySigningFlow: "/docs/developer/embed/images/identity-signing-flow.svg",
      scriptVsIframeEmbed: "/docs/developer/embed/images/script-vs-iframe-embed.svg"
    },
    mobile: {
      bridgeMessageProtocol: "/docs/developer/mobile/images/bridge-message-protocol.svg",
      webviewBridgeArchitecture: "/docs/developer/mobile/images/webview-bridge-architecture.svg"
    }
  },
  endUsers: {
    anonymousToIdentifiedProfile: "/docs/guides/end-users/images/anonymous-to-identified-profile.svg",
    bulkActionBar: "/docs/guides/end-users/images/bulk-action-bar.png",
    campaignConsentGate: "/docs/guides/end-users/images/campaign-consent-gate.svg",
    consentPerChannelStates: "/docs/guides/end-users/images/consent-per-channel-states.svg",
    dynamicVsStaticSegments: "/docs/guides/end-users/images/dynamic-vs-static-segments.svg",
    endUserDirectory: "/docs/guides/end-users/images/end-user-directory.png",
    endUserProfileAcrossChannels: "/docs/guides/end-users/images/end-user-profile-across-channels.svg",
    endUserProfilePanes: "/docs/guides/end-users/images/end-user-profile-panes.png",
    profileMergeAndTakeoverProtection: "/docs/guides/end-users/images/profile-merge-and-takeover-protection.svg",
    segmentBuilder: "/docs/guides/end-users/images/segment-builder.png",
    segmentsPage: "/docs/guides/end-users/images/segments-page.png"
  },
  getStarted: {
    agentStates: "/docs/get-started/images/agent-states.svg",
    buildToLivePath: "/docs/get-started/images/build-to-live-path.svg",
    dashboardSidebarMap: "/docs/get-started/images/dashboard-sidebar-map.png",
    organizationOwnershipAndRoles: "/docs/get-started/images/organization-ownership-and-roles.svg",
    quickstart: {
      step1CreateYourAccount: "/docs/get-started/images/quickstart/step-1-create-your-account.png",
      step3ConnectTheAiAgent: "/docs/get-started/images/quickstart/step-3-connect-the-ai-agent.png",
      step4TestMode: "/docs/get-started/images/quickstart/step-4-test-mode.png"
    },
    quickstartCanvas: "/docs/get-started/images/quickstart-canvas.png"
  },
  knowledge: {
    addASource: "/docs/guides/knowledge/images/add-a-source.png",
    addRetrieverPicker: "/docs/guides/knowledge/images/add-retriever-picker.png",
    attachKnowledgeGambit: "/docs/guides/knowledge/images/attach-knowledge-gambit.png",
    configureARetriever: "/docs/guides/knowledge/images/configure-a-retriever.png",
    createKnowledgeBaseDialog: "/docs/guides/knowledge/images/create-knowledge-base-dialog.png",
    customRetrieverDialog: "/docs/guides/knowledge/images/custom-retriever-dialog.png",
    datasetTab: "/docs/guides/knowledge/images/dataset-tab.png",
    documentChangeReindexLifecycle: "/docs/guides/knowledge/images/document-change-reindex-lifecycle.svg",
    documentsTabPreview: "/docs/guides/knowledge/images/documents-tab-preview.png",
    importAWebsite: "/docs/guides/knowledge/images/import-a-website.png",
    kbList: "/docs/guides/knowledge/images/kb-list.png",
    retrieverIndexStates: "/docs/guides/knowledge/images/retriever-index-states.svg",
    retrieverQueryPipeline: "/docs/guides/knowledge/images/retriever-query-pipeline.svg",
    standardVsParentChildChunking: "/docs/guides/knowledge/images/standard-vs-parent-child-chunking.svg",
    syncManagement: "/docs/guides/knowledge/images/sync-management.png",
    testRetriever: "/docs/guides/knowledge/images/test-retriever.png"
  },
  liveChat: {
    agentWorkspace: "/docs/guides/live-chat/images/agent-workspace.png",
    assignedAgentPicker: "/docs/guides/live-chat/images/assigned-agent-picker.png",
    automaticAssignmentRouting: "/docs/guides/live-chat/images/automatic-assignment-routing.svg",
    availabilityDropdown: "/docs/guides/live-chat/images/availability-dropdown.png",
    cannedResponses: "/docs/guides/live-chat/images/canned-responses.png",
    composerPreferences: "/docs/guides/live-chat/images/composer-preferences.png",
    copilotPanel: "/docs/guides/live-chat/images/copilot-panel.png",
    filterConversationsDialog: "/docs/guides/live-chat/images/filter-conversations-dialog.png",
    inboxAnalyticsTab: "/docs/guides/live-chat/images/inbox-analytics-tab.png",
    inboxAvailabilityTab: "/docs/guides/live-chat/images/inbox-availability-tab.png",
    inboxesSettings: "/docs/guides/live-chat/images/inboxes-settings.png",
    inboxRoutingTab: "/docs/guides/live-chat/images/inbox-routing-tab.png",
    labelsSettings: "/docs/guides/live-chat/images/labels-settings.png",
    newAttributeDialog: "/docs/guides/live-chat/images/new-attribute-dialog.png",
    newCannedResponseDialog: "/docs/guides/live-chat/images/new-canned-response-dialog.png",
    notificationPreferences: "/docs/guides/live-chat/images/notification-preferences.png",
    notificationsPage: "/docs/guides/live-chat/images/notifications-page.png",
    pickupTargetCard: "/docs/guides/live-chat/images/pickup-target-card.png",
    resolveMenu: "/docs/guides/live-chat/images/resolve-menu.png",
    searchDialog: "/docs/guides/live-chat/images/search-dialog.png",
    seatGateConversation: "/docs/guides/live-chat/images/seat-gate-conversation.png",
    seatsSettings: "/docs/guides/live-chat/images/seats-settings.png",
    workTheInbox: "/docs/guides/live-chat/images/work-the-inbox.png"
  },
  security: {
    addOpenRouterKeyDialog: "/docs/guides/security/images/add-open-router-key-dialog.png",
    auditChainVerified: "/docs/guides/security/images/audit-chain-verified.png",
    auditEventDrawer: "/docs/guides/security/images/audit-event-drawer.png",
    auditExportDialog: "/docs/guides/security/images/audit-export-dialog.png",
    auditLogViewer: "/docs/guides/security/images/audit-log-viewer.png",
    auditRecordLifecycle: "/docs/guides/security/images/audit-record-lifecycle.svg",
    logPrivacyRedactionEnabled: "/docs/guides/security/images/log-privacy-redaction-enabled.png",
    modelProviderEmptyState: "/docs/guides/security/images/model-provider-empty-state.png",
    privacySettings: "/docs/guides/security/images/privacy-settings.png",
    siemConnectWizard: "/docs/guides/security/images/siem-connect-wizard.png",
    supportActorMasking: "/docs/guides/security/images/support-actor-masking.svg"
  },
  tools: {
    addToolModal: "/docs/guides/tools/images/add-tool-modal.png",
    addToolsPanel: "/docs/guides/tools/images/add-tools-panel.png",
    codekitActionEditor: "/docs/guides/tools/images/codekit-action-editor.png",
    codekitConnectToolkitsDialog: "/docs/guides/tools/images/codekit-connect-toolkits-dialog.png",
    codekitSchemaDialog: "/docs/guides/tools/images/codekit-schema-dialog.png",
    codekitToolkit: "/docs/guides/tools/images/codekit-toolkit.png",
    codekitToolkitAnatomy: "/docs/guides/tools/images/codekit-toolkit-anatomy.svg",
    createActionDialog: "/docs/guides/tools/images/create-action-dialog.png",
    createCodekitDialog: "/docs/guides/tools/images/create-codekit-dialog.png",
    responseFilteringDialog: "/docs/guides/tools/images/response-filtering-dialog.png",
    toolGambitEditorAgentMode: "/docs/guides/tools/images/tool-gambit-editor-agent-mode.png",
    toolGambitEditorWorkflowMode: "/docs/guides/tools/images/tool-gambit-editor-workflow-mode.png",
    toolkitDetail: "/docs/guides/tools/images/toolkit-detail.png",
    toolsConnected: "/docs/guides/tools/images/tools-connected.png",
    toolsDirectory: "/docs/guides/tools/images/tools-directory.png",
    viewActionsModal: "/docs/guides/tools/images/view-actions-modal.png",
    workflowModeResponse: "/docs/guides/tools/images/workflow-mode-response.png"
  }
};

export const urls = {
  app: "https://dashboard.hellotars.com",
  site: "https://hellotars.com",
  support: "mailto:support@hellotars.com",
  status: "https://status.hellotars.com"
};

At the end of this page, you can read, edit, and delete any document in a knowledge base, and describe its images and videos. You can also bring the changes into live answers with a reindex.

<Browser url={urls.app}>
  <img src={img.knowledge.documentsTabPreview} alt="The Documents tab with the document list on the left and a selected document rendered on the right, with the Preview and Raw toggle above the content" />
</Browser>

## Before you start

Before you start, sign in to <a href={urls.app}>the dashboard</a> and select the organization you want to work in.

* You need a knowledge base with at least one source. See [Create a knowledge base](/docs/guides/knowledge/create-a-knowledge-base).
* Your role must allow resource management to add, edit, or delete documents.

## The Documents tab

Open the knowledge base from **Knowledge** in the sidebar. The page opens on the **Documents** tab. The left pane lists every document, and the right pane previews the selected one.

A bar above the panes shows the last sync time and the page count. It also holds **Manage media** and, for roles that manage resources, **Sync management**.

When edits or deletions leave a retriever behind, an amber alert reads **A retriever needs reindexing**. With several, it counts them. Its **Reindex** button switches to the **Retriever** tab.

While an import runs, a progress banner reports the scraped page count. See [Import a website](/docs/guides/knowledge/import-a-website) for the import flow, the page review, and the sync schedules.

## The document list

The list header reads **Pages**.

| Control                             | What it does                                                                                                                                                 |
| ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Flat list** / **Group by source** | Icon toggle for the list layout. The grouped view puts website pages under their host and uploaded files under **Uploads**. The choice persists per browser. |
| **Add more**                        | Opens the **Add a source** dialog. Disabled while a retriever builds, with the tooltip **Locked while a retriever is building**.                             |
| **Search pages…**                   | Searches document titles. No match shows **No documents match.**                                                                                             |

When the knowledge base has no documents and no import, the pane shows **No content yet** with an **Add source** button.

Each row shows the document title and its page address, **Uploaded file**, or **Document**. A row carries a status badge only while it needs attention. A document without a badge is ready.

| Status badge                 | Meaning                                   |
| ---------------------------- | ----------------------------------------- |
| **Queued** / **Processing…** | The content is still being processed.     |
| **Couldn't process**         | Processing failed.                        |
| **Cancelled**                | Processing was cancelled.                 |
| **Sync paused**              | Website syncs no longer change this page. |

During the first import of a website, the list shows **Importing pages** and fills in as pages are scraped. During a later sync, the list keeps its current rows until the crawl finishes.

## The preview pane

Select a row to load it on the right. The header shows the title and the source address. After a document has changed, an activity line gives the last update time, the cause, and the revision number.

A sliding toggle switches the content view:

| View        | What it shows                                                                |
| ----------- | ---------------------------------------------------------------------------- |
| **Preview** | The content rendered as formatted text, with its images and playable videos. |
| **Raw**     | The stored plain text.                                                       |

A document still parsing shows **Parsing this document…**. A failed one shows **This document failed to parse.** with the stored error.

Roles that manage resources also see actions in the header:

| Action                                           | What it does                                                                                                  |
| ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------- |
| **Pause website sync** / **Resume website sync** | An icon button on scraped pages only. Paused, this website's fetches can no longer change or remove the page. |
| **More actions** > **Edit**                      | Opens the inline editor. Shown only when parsing is done and content exists.                                  |
| **More actions** > **Delete**                    | Opens the delete confirmation.                                                                                |

Edit and delete are disabled while a retriever builds. The menu then notes **Locked while a retriever is building**.

A scraped page that you edited and did not pause shows an amber warning above the content. It states that a website sync can replace your edit with the live page.

## Edit a document

<Warning>
  A website sync can replace a manual edit on a scraped page. [Pause website sync](#pause-website-sync-for-one-page) on the page before you edit it.
</Warning>

<Steps>
  <Step title="Select the document">
    The preview loads on the right.
  </Step>

  <Step title="Open More actions and select Edit">
    The pane switches to an editor with the title field above the full text.
  </Step>

  <Step title="Change the title, the text, or both">
    The body cannot be saved empty.
  </Step>

  <Step title="Select Save changes">
    Retrievers keep answering from their current index until the next reindex.
  </Step>
</Steps>

A toast confirms **Document updated**. Every saved change to the text creates a revision that the activity line reports.

Your draft stays when you select another document and come back. If the page changes while you edit, an alert tells you that your unsaved changes are kept. Saving then replaces the latest content.

## Pause website sync for one page

Select **Pause website sync** in the preview header of a scraped page. The row badge switches to **Sync paused**, and future fetches of that website skip the page. Select **Resume website sync** to let syncs update it again.

Pausing protects one page. To change a whole source's re-fetch schedule, use **Sync management**. See [Import a website](/docs/guides/knowledge/import-a-website#sync-management).

## Delete a document

<Warning>
  A reindex makes the removal permanent.
</Warning>

Open **More actions** in the preview header and select **Delete**. The **Delete document?** dialog explains that the document keeps answering until the next reindex applies the removal. Confirm with **Delete**.

A toast confirms **Document removed**, and the row leaves the list. The **Apply pending changes** dialog counts the removal until a reindex runs.

## Manage media

Select **Manage media** above the document list to open the **Manage media** dialog.

The **Media search** switch at the top embeds the images and videos of this knowledge base so the agent can find them. It is off by default, and turning it on uses extra vector storage. With media search on, the agent can show matching images and videos in its replies. Roles that cannot manage resources see an **Enabled** or **Disabled** badge instead.

Turning the switch off stops new media from being embedded.

| Control                              | What it does                                                                                                                                        |
| ------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Search media by alt text or URL…** | Filters the list.                                                                                                                                   |
| **Reprocess all media**              | Extracts and embeds every image and video again. Shown when media search is on. Use it after you turn the switch on, so existing media is embedded. |
| **Load more**                        | Loads the next part of the list.                                                                                                                    |

Each row shows a thumbnail, the media type, the alt text, the URL, and the documents that reference it. A **No vector** badge marks media that is not embedded yet. Hover over the badge to see the error, when there is one.

### Describe an image or video

A short description helps search find media whose alt text is missing or vague.

<Steps>
  <Step title="Find the image or video">
    Use the row in **Manage media**, or hover over the media in the document preview and select **Add context**.
  </Step>

  <Step title="Type a description in the manual context field">
    The field takes up to 4000 characters, but only the first 500 are embedded.
  </Step>

  <Step title="Select Save">
    With media search on, the affected documents are embedded again shortly.
  </Step>
</Steps>

A saved description replaces the surrounding page text when the media is embedded. The button reads **Edit context** when a description exists. Select **Clear** to remove it.

## Reindex after changes

Edits and removals reach live answers only through a reindex. Each affected retriever switches to **Needs reindex**, and the amber alert counts them on both tabs. A stale retriever keeps answering from the index built before your changes.

<Frame>
  <img src={img.knowledge.documentChangeReindexLifecycle} alt="An edit or a deletion puts the retriever into Needs reindex until a reindex builds a new index, with a dashed branch where a scheduled crawl starts the build itself when the Auto badge is on." />
</Frame>

<Warning>
  A reindex applies every pending removal at once, and removals are permanent once applied.
</Warning>

<Steps>
  <Step title="Open the Retriever tab">
    Or select **Reindex** in the amber alert on the **Documents** tab.
  </Step>

  <Step title="Select Reindex on a stale retriever card">
    The **Apply pending changes** dialog opens.
  </Step>

  <Step title="Review the counts">
    The dialog counts **Changed documents** and **Pending removals**.
  </Step>

  <Step title="Select Reindex now">
    The retriever keeps answering from its current index until the new one is ready.
  </Step>
</Steps>

To reindex every stale retriever at once, select **Reindex all** in the amber alert and confirm.

## Automatic reindex after crawls

Each retriever card carries an **Auto** or **Manual** badge. The switch behind it, **Reindex on scheduled crawl updates**, lives in the retriever's **Edit retriever** dialog.

With the switch on, a scheduled crawl that changes content starts the reindex itself. Manual edits and deletions always wait for a reindex you start, whatever the switch says.

## Locked while a retriever builds

While any retriever of the knowledge base builds its index, document changes are locked. Adding sources, editing, deleting, and manual re-fetches are all disabled. The controls show **Locked while a retriever is building** and unlock when the build finishes.

## Verify

Edit a document, reindex the retriever, and run **Test retriever** with a question the edit answers. The results show your new text.

## Related pages

* [Import a website](/docs/guides/knowledge/import-a-website)
* [Configure a retriever](/docs/guides/knowledge/configure-a-retriever)
* [Retrievers explained](/docs/guides/knowledge/retrievers-explained)
