Skip to main content

Enhanced Reporting System

The Enhanced Reporting Dashboard gives a unified view of your organization's data and metrics. It is available from the Dashboard item in the admin sidebar and includes KPIs and charts on the Overview tab, built-in and custom reports, financials, form responses, bulk data export, and duplicate patient detection.

Dashboard Tabs​

Overview​

The Overview tab presents a high-level summary of your organization's key metrics. It includes:

  • Resource counts (e.g., Patients, Appointments, Documents, Tasks, Observations, Questionnaire Responses)
  • Trend indicators for each metric
  • A time-based bar chart showing new patients and tasks over time

Campaigns​

If the campaigns feature is enabled for your organization, this tab provides insights into your campaign performance and metrics, including a line chart of campaign activity.

Reports​

Example Report Output Example of a report showing patients without intake visits

The Reports tab lists your saved reports. Built-in reports such as Financial Reconciliation and Appointment Reminders are available from their own menu routes. From the Reports tab you can:

  • Open any saved report to see its results as a table
  • Export CSV for the current report
  • Use the ⋯ menu to Copy Link
  • Edit, Duplicate, or Delete a report (Platform Admins only)
  • Pin a report so it appears as its own dashboard tab

The New Report button at the top of the Dashboard (Platform Admins only) opens a menu with two authoring options:

  • Report Builder — build a report from patient filters and segments
  • SQL Editor — write a SQL-backed report

Organization Admins can build segments under Outreach → Segments and export them as a saved report; see Report Builder Segments below.

Report Configuration​

When creating or editing reports, you'll need to provide:

  • Name: A clear, descriptive name for the report (3-100 characters)
  • Description: Detailed explanation of what the report shows (required, up to 500 characters)
  • Category: Organizational grouping for the report (required)
  • SQL Query: The SQL statement that generates the report data
    • Must start with SELECT or WITH
    • Must include your organization's dataset
    • Supports parameterization for dynamic reports
    • Use the dataset placeholder {{dataset_id}} to reference your organization's dataset

The editor includes Auto-generate description and an AI Assistant for the query, plus a non-AI Format Query button.

Enhanced Draft Management System​

The draft management system helps protect against data loss:

  • Auto-save every 60 seconds with change detection
  • Visual indicators for unsaved changes and saving status
  • Draft recovery available if you accidentally close the page or experience connection issues
  • Automatic cleanup of drafts after successful save

Report Saving & Validation​

  • Real-time validation with immediate feedback on query syntax and structure
  • Success notifications with detailed confirmation of saved changes
  • Comprehensive error handling with specific guidance for resolution
  • Field validation ensuring all required fields meet quality standards

Financials​

If your organization uses payments, the Financials tab provides a lightweight reconciliation view of service requests and Stripe transactions. It is separate from the BigQuery-backed Financial Reconciliation report; see Financial Reconciliation for the full reconciliation and exception details.

Form Responses​

The Form Responses tab lets you review questionnaire responses submitted in your organization.

Data Export​

The Data Export tab lets Platform Admins export all patients and all appointments as JSON or CSV.

Duplicates​

The Duplicates tab helps you identify and manage potential duplicate patient records. It offers:

  • A list of potential duplicate entries
  • Ability to compare and merge duplicate records
  • Bulk merge functionality for multiple duplicates

See Duplicate Patient Resolution for the full guide to how duplicates are detected, reviewed, and merged.

Key Features​

Custom Reports​

  • Create, view, and manage custom reports
  • Use SQL queries to generate report data
  • Export report data as CSV
  • Auto-save protection against data loss

Report Results Table​

A saved report shows its results as a plain table with the following capabilities:

  • Column sorting (click column headers)
  • Pagination with page sizes of 25, 50, 100, or All
  • CSV export
  • Date formatting for improved readability
  • Automatic date formatting for columns whose names contain date or time

Data Visualization​

  • Charts and graphs appear on the Overview and Campaigns tabs
  • Saved reports display results as a table, not charts

Duplicate Management​

  • Identify potential duplicate patient records
  • Compare and merge duplicate entries
  • Perform bulk merge operations

Report Builder Segments​

The Report Builder includes a segment builder that lets you define reusable patient cohorts by combining filters over your organization's FHIR data — without writing any SQL. A saved segment can be used as a report input or handed off to a campaign as its audience. These are the same segments campaigns use as their audience. See Segments for the full builder guide.

Where to find it​

Segments are available under Outreach → Segments when the campaigns feature or an Enterprise plan is enabled. They are also reachable from the Dashboard via New Report → Report Builder. Segments can be created, searched, renamed, duplicated, and deleted by Organization Admins and Platform Admins. From the list you can see each one's estimated patient count, last-modified time and author, and campaign status. A segment used by an active or scheduled campaign can't be deleted until it's removed from that campaign.

Building a segment​

The editor is a rule canvas plus a live summary panel:

  • Groups and logic — conditions are organized into groups that match ALL of their conditions (AND) or ANY of them (OR), and groups can be nested for more complex logic.
  • Conditions — each condition reads as resource · field · operator · value. The available resources and fields come from your organization's data catalog and include Patient (demographic and record fields such as age, gender, state, and last-seen date), Observation (a LOINC code compared by value or range), Questionnaire Response (a questionnaire item compared by score), Service Request (category, status, priority, or authored date), and Payment Reconciliation (outstanding balance and payment outcome).
  • Value controls adapt to the field type: numeric/money thresholds and between ranges, choice fields with is / is any of, free text, relative dates in days, presence (has / has no record on file), and count of matching records. Observation and Questionnaire Response conditions include a code picker for choosing the specific LOINC code.

Live estimated count​

As you edit, the summary panel shows an estimated patient count — how many patients currently match, the percentage of your organization's population that represents, and the change since your last edit. The estimate refreshes automatically, a plain-language summary restates the segment in readable form, and a zero-state offers suggestions when no patients match.

Exporting a segment as a report​

Export as report — in the editor's toolbar and in each row's actions menu on the list — saves the segment's rules as a report on the Reports page and opens it. The report lists the matching patients (id, name, date of birth, gender, state, phone, and email) and behaves like any other saved report, so it can be pinned and exported to CSV. The action re-runs the current rules each time the report is opened, and exporting the same segment again refreshes that report rather than creating a second copy — the action reads Update report once a segment has one.

Using a segment in a campaign​

If your organization has the new campaigns enabled, a Use in Campaign action appears in both the list and the editor. It hands the saved segment off to the campaign builder as its audience, with the delivery channel chosen in the handoff dialog — SMS, email, or a call task — already set up as the campaign's first step. For organizations without Campaigns v2, the action is hidden; segments can still be built, saved, and exported as reports.

A segment that a live campaign sends to can't be deleted — the list shows which campaign uses it, and the campaign has to be pointed elsewhere first.

Tips & Best Practices​

Working with Reports​

  • Save your work frequently, though auto-save will protect your changes
  • Use the preview feature to verify your SQL queries before saving
  • Check for existing drafts when reopening a report
  • Clear error messages will guide you if there are any issues
  • All required fields must be filled: name, description, category, and query

Writing Effective Queries​

  • Start with SELECT or WITH statements only (other SQL operations are restricted)
  • Always include your organization's dataset in the query
  • Use the dataset placeholder {{dataset_id}} to reference your organization's dataset
  • Keep queries focused on specific insights for better performance
  • Use the auto-generate description feature to create concise report descriptions

Security Considerations​

  • Queries are validated for security before execution
  • Parameter values are sanitized to prevent injection attacks
  • Reports are organization-specific and respect access controls
  • Error messages are designed to be informative without exposing sensitive details

By utilizing these reporting features, you can gain valuable insights into your organization's data, streamline your operations, and make informed decisions based on accurate and up-to-date information.