Skip to main content

Manage EVV sources

Outcome

Each upstream EVV vendor (Sandata, Tellus, HHAeXchange, AuthentiCare, etc.) that pushes visits into your tenant is registered, healthy, and mapped so that incoming records land on the right members and providers.

Prerequisites

ScopeWhat it lets you do
evv.source.readView sources
evv.source.writeAdd / edit sources, mappings, suppression

A trading-partner credential or push-API feed already configured (see 5.6 — Trading partner credentials or 5.7 — SFTP feeds & Push API) — EVV sources flow over either transport.

The list page

/evv/sources. Each row is one configured source:

ColumnNotes
NameVendor display label.
VendorVendor type (sandata, hhaex, tellus, custom).
TransportSFTP or PUSH.
Last visit receivedTimestamp of the most recent inbound visit.
Healthgreen / amber / red based on expected cadence.
Visits todayCount.
Exceptions todayCount.

Source detail

Click into a source for tabs:

TabPurpose
OverviewVendor metadata, transport, mapping binding.
MappingsVendor's field names → canonical field names.
HealthExpected cadence, current latency, recent failures.
SuppressionsMember / provider IDs whose inbound traffic the platform should drop.
ActivityRecent inbound batches with row counts.

Steps to add a source

  1. Click + New EVV source. Pick the vendor type. The form pre-fills the canonical mapping for that vendor.

  2. Bind the transport:

    TransportBind to
    SFTPAn ingestion feed configured for the vendor's host.
    PUSHA minted Push API key (see 5.7).
  3. Confirm field mappings under the Mappings tab. The default mapping covers the vendor's standard schema; override any field whose vendor name deviates from the standard.

  4. Set expected cadence under Health. Common patterns:

    CadenceWhen to use
    Every 15 minutesReal-time push vendors.
    HourlyHourly SFTP drops.
    DailyEnd-of-day batch vendors.

    The platform raises the source to amber if no traffic in 1.5× the expected window, red at 3×.

  5. Save. The source goes live; the Activity tab will populate as inbound traffic arrives.

Steps to suppress a stuck record

When a vendor keeps re-pushing a known-bad visit (causing a duplicate exception every cycle):

  1. Open the source's Suppressions tab.

  2. Click + Add suppression. Specify the suppression scope:

    ScopeUse case
    Specific visit IDA single bad visit.
    Member + date rangeAll visits for a member in a window (e.g. while migrating away from the vendor).
    Provider + date rangeAll visits for a provider.
  3. Provide a reason and an optional expiration. Save. The platform silently discards matching inbound records and notes the suppression in the source's Activity tab.

Steps to triage source health

A red source is alerting and needs immediate attention:

  1. Open the source detail → Health tab. Look at the latency chart.

  2. Cross-check transport: open the bound feed (under Configuration → Ingestion) and click Test connection. If the connection fails, fix the credential (see 5.6).

  3. Cross-check the vendor's status page if the vendor publishes one.

  4. File a support ticket with the vendor through your normal channel, including the expected vs. actual cadence numbers from the dashboard.

Validation

CheckExpected
Source is green within 1 cadence cycle of saveYes (assuming traffic arrives).
Mapped fields produce visits with the expected member / provider IDsYes — confirm via /evv/visits.
Suppression silently drops matching recordsYes; Activity tab shows the dropped count.
Health alerts fire when traffic stallsYes.

Troubleshooting

SymptomCauseFix
Mapping save returns "field not in canonical schema"Tried to map to a name the platform does not knowUse only canonical field names from the dropdown.
Source stuck on amber despite trafficCadence misconfiguredLower the expected cadence to match actual delivery.
Suppression not blockingScope does not match the vendor's actual identifiersConfirm the suppression scope matches the inbound payload's IDs (some vendors use external IDs you need to add to the member).
Vendor pushes records for unknown membersMapping does not produce a member matchAdd member alias on the affected members (6.1 — Member detail).

Next

5.1 — Manage payers, programs & contracts