Open Dental CSV export for reactivation campaigns — field map + gotchas
Open Dental has the cleanest patient-data export of any major PMS. Here's exactly which fields you need, which to skip, and the 3 gotchas that break reactivation tool imports.
The Open Dental export endpoint
Open Dental 22.4+ includes a REST API. For CSV workflow: Reports → Patient List → Standard Filters. Set Patient Status = 'Patient' AND Last Seen < today-180d AND Appointments Future = 0. Export: Output → Export CSV.
The 9 fields you need (and the 30 you don't)
The minimum viable reactivation export:
- `PatNum` (internal patient id — primary key)
- `LName` + `FName`
- `WirelessPhone` (SMS-capable)
- `Email` (required for email touches)
- `DateLastVisit` (drives segmentation)
- `AptDateLastBroken` (if available; drives A1/A2 segmentation)
- `FirstVisit` (drives long-lapsed identification)
- `TxtMsgOk` (TCPA consent flag)
Skip procedure codes, insurance plan details, balance data — all irrelevant for reactivation and pose HIPAA risk.
3 gotchas that break imports
Gotcha 1: Open Dental stores phone numbers as US-formatted strings ('407-555-0123'). Most reactivation tools want E.164 ('+14075550123'). Convert before import or the SMS send will fail.
Gotcha 2: `TxtMsgOk` is a 3-state field (Yes / No / Unknown). If you treat Unknown as Yes, you're pre-TCPA-safe; if you treat Unknown as No, you exclude ~15-30% of your list. Industry norm: treat Unknown as No, explicitly collect consent at next visit.
Gotcha 3: `DateLastVisit` counts ANY appointment including consultations, X-ray-only, etc. If you want 'last productive visit', filter on procedure count > 0 in ProcedureLog.
Automating the export
Open Dental's REST API endpoint: `GET /api/v1/patients?filter=last_seen_lt_{date}&future_appts_eq_0`. Returns JSON. Convert to CSV for the reactivation tool. If the tool has a direct Open Dental integration ([usdpr. does](/)) you skip the CSV step entirely.
Weekly export cadence
Reactivation needs fresh data. Export weekly — Sunday night or Monday morning — and feed into the reactivation tool. A 30-day-old export means 30 days of broken appointments that haven't been worked.
Frequently asked
Does Open Dental have direct reactivation tool integrations?
As of 2026-Q2, Open Dental integrates natively with several reactivation tools via REST API. [usdpr. has direct sync](/pms/open-dental.html); others via CSV.
Can I schedule the Open Dental export?
Yes. Use Open Dental's Report Scheduler (Admin → Report Scheduler) to auto-export to a shared folder weekly. Pair with a cron'd upload script to the reactivation tool.
How do I handle patient opt-outs in Open Dental?
Set TxtMsgOk = No. The reactivation tool should respect this flag on import. Double-check — many tools ignore PMS consent flags and rely on their own opt-in collection.
Want to put this on autopilot?
The 5-touch reactivation sequence runs end-to-end in [usdpr.](/) — pre-written templates, reply-intent AI, TCPA rate limits enforced in code. 14-day free trial, no card.