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

# Intake Matching

> Review automated provider matching decisions, apply coordinator overrides, and configure matching rules.

The Intake Matching page at `/pm/intake-matching` displays the automated provider-matching log and allows authorized coordinators to override match decisions and manage matching settings.

## Overview

The page loads a paginated list of match log entries from the `pm_appointment_match_log` table via `useMatchLogList`. Records can be filtered by override-only flag and date range. Selecting a row opens the **Coordinator Override Dialog**, which lets a coordinator with `pm.intake_match.override` permission reassign or override the automated match result. Users with `pm.intake_match.configure` permission additionally see the **Intake Match Settings Card**, where matching rules can be configured. The page uses a default page size of 25 rows.

## Who it's for

Requires `pm.intake_match.view` (`PM_PERMISSIONS.INTAKE_MATCH_VIEW`). Override actions additionally require `pm.intake_match.override` (checked via `PermissionGate` in the page). Settings configuration requires `pm.intake_match.configure`.

## Before you start

* Your role must include `pm.intake_match.view`.
* Match log rows are created by the automated matching process; the table must contain entries for the selected filters to show data.

## Steps

<Steps>
  <Step title="Open the Intake Matching page">
    Navigate to `/pm/intake-matching`. The page loads the most recent 25 match log entries.
  </Step>

  <Step title="Filter the log">
    Use the **Match Log Filters** control to narrow results by date range or to show override-only entries.
  </Step>

  <Step title="Review match entries">
    The match log table displays entries ordered newest-first. Each row represents one automated matching decision.
  </Step>

  <Step title="Override a match (coordinators)">
    Click a row to open the **Coordinator Override Dialog**. Complete the override form to record a manual reassignment. Requires `pm.intake_match.override`.
  </Step>

  <Step title="Configure matching settings (admins)">
    Users with `pm.intake_match.configure` see the **Intake Match Settings Card** below the table to adjust matching rules.
  </Step>
</Steps>

## Key concepts

**Match log** — Each row in `pm_appointment_match_log` records one automated match event, scoped to the current organization. The `coordinator_override` boolean field marks entries that were manually corrected.

**Coordinator override** — A manual correction to an automated match decision, recorded in the same log row. Requires `pm.intake_match.override`.

<AccordionGroup>
  <Accordion title="Empty state (no matches)">
    When the filtered query returns no rows, the table renders an empty state. Adjust the date range or remove the override-only filter to broaden the result set.
  </Accordion>
</AccordionGroup>

## Related

<Columns cols={2}>
  <Card title="Practice Management" icon="briefcase" href="/pm/overview">
    Overview of the Practice Management core.
  </Card>

  <Card title="Governance & parity" icon="scale-balanced" href="/governance/index">
    Documentation coverage and governance.
  </Card>
</Columns>

<Note>
  This page documents shipped product behavior. It is not medical, legal, or
  billing advice. Verify against your organization's policies and applicable
  regulations before using it for clinical, compliance, or billing decisions.
  Protected health information (PHI) shown in the product is governed by your
  tenant's access controls and is never exposed in this documentation.
</Note>

<Accordion title="Documentation sources">
  * src/routes/pm.tsx
  * src/cores/pm/pages/IntakeMatchingPage.tsx
  * src/cores/pm/hooks/useMatchLog.ts
  * src/platform/permissions/constants.ts
</Accordion>
