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 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
SELECTorWITH - Must include your organization's dataset
- Supports parameterization for dynamic reports
- Use the dataset placeholder
{{dataset_id}}to reference your organization's dataset
- Must start with
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
dateortime
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
SELECTorWITHstatements 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.
Related Documentation
- Financial Reconciliation — payment reconciliation and billing exceptions
- Service Requests — track service request lifecycle and payments
- Built-in Reports — the reports every organization gets out of the box
- Duplicate Tasks — find and remove duplicate tasks on a patient
- Duplicate Patient Resolution — detect and merge duplicate patient records
- Appointment Reminders Report — analyze reminder delivery and effectiveness