PMS integrations
Connect a practice management system, map its sites, review patient matches, and monitor automatic polling.
Use Settings → Integrations to connect a practice management system (PMS), request a planned integration, and monitor sync health. Dentally, CareStack and Open Dental support live data connections; every other listed PMS is request-only until its adapter and provider partnership are available.
A practice can run one active PMS connection at a time. If you are moving between systems, disconnect the old one before connecting the new one.
Owners and managers can create, pause, resume, map, and disconnect PMS connections. Coordinators see connection details read-only and can review suggested patient matches. Telesales see the same read-only connection details. Analysts do not have access to PMS connections.
Connect Dentally
Go to Settings → Integrations and click Connect Dentally.
Review the supported capabilities, then click Connect.
Wait for the connection to move from Awaiting activation to Active after the Dentally partnership is approved. No further credential step appears in SmileLine.
Connect CareStack
CareStack needs credentials from your practice, so the connection has one extra step. Ask CareStack support for your API details before you start — you need the account subdomain from your CareStack web address, an Account ID, and an Account Key.
Go to Settings → Integrations and click Connect CareStack.
Enter the account subdomain, Account ID, and Account Key, then click Connect. SmileLine checks the credentials against CareStack before saving them.
Map each CareStack location to a SmileLine location. Appointments for an unmapped location wait until you map it.
Check Clinicians on the connection. CareStack has no directory of its providers, so SmileLine learns them from the appointments it imports and adds each one as an inactive practitioner named after its CareStack id.
Go to Settings → Practitioners, give each of those a real name, and make them active.
An unnamed clinician is not bookable. Their CareStack appointments still import and still block that column of the diary, so you cannot double-book them — but they will not be offered for new bookings until you name and activate them.
What CareStack syncs
The connection imports patients, appointments, surgeries, and appointment types, and it writes new bookings, cancellations, and confirmations back to CareStack.
It does not import treatment plans, invoices, or payments, and CareStack does not send SmileLine live updates — changes arrive on an hourly poll rather than instantly. Availability always comes from your SmileLine rota, not from the CareStack diary, so keep your practitioner rotas accurate.
Bookings SmileLine sends to CareStack carry a short reference tag in the appointment notes. It is how SmileLine recognises its own bookings if a request is interrupted. Leave it in place; removing it means a booking may need manual review.
Connect Open Dental
Open Dental needs one credential from your practice: the customer API key SmileLine issues for it. Open Dental charges the practice directly for API access (free for many practices, a small monthly fee per location for others) and your practice must run the Open Dental eConnector, which most already do.
Go to Settings → Integrations, click Connect Open Dental, then Continue. SmileLine creates the connection, shows Awaiting credentials, and opens the credentials form. If you do not have your customer API key yet, close the form — SmileLine issues the key for your practice and passes it to you, and Enter credentials on the card reopens the form later.
In Open Dental, open Setup → Advanced Setup → API Setup, enter the key and tick Enabled. The eConnector must be running on the practice server.
Back in SmileLine, paste the Customer API key and, if you know it, the eConnector computer name (the Windows name of the machine running the eConnector). Click Save credentials. SmileLine checks the key with Open Dental before saving it.
If your practice uses Open Dental's Clinics feature, map each clinic to a SmileLine location. A practice without clinics gets one site called Practice; map it to your location. Appointments for an unmapped site wait until you map it.
The eConnector computer name pins Open Dental's live updates to that machine. Leave it blank if you are unsure — the connection still works and changes arrive on the hourly poll. If live updates could not be registered, the connection says so beneath its status and SmileLine retries the registration on each hourly sync until it succeeds.
What Open Dental syncs
The connection imports patients, appointments, providers, operatories and appointment types. Both the dentist and the hygienist on an appointment are carried across, so each one's column is blocked in the SmileLine diary. It writes new bookings, confirmations and cancellations back to Open Dental; a cancellation sends the appointment to Open Dental's unscheduled list, and SmileLine never adds a missed- or cancelled-appointment fee procedure to the patient's account.
Availability comes from Open Dental's own diary: SmileLine asks Open Dental for free slots, so keep your provider schedules in Open Dental accurate. Live updates are delivered by Open Dental as changes happen; a full poll runs every hour as well.
It does not import treatment plans, invoices or payments, and it does not update patient details in Open Dental — SmileLine creates a patient there only when an online booking arrives for someone who has no chart yet, after checking by email and phone that they do not already have one.
Open Dental records a missed appointment and a cancelled one the same way from SmileLine's point of view, so both appear as Cancelled here. Record no-shows in Open Dental itself. Times are read in the Practice timezone set under Settings → Practice details; check it is right before connecting.
The customer API key belongs to one Open Dental database. To connect a different practice, disconnect first — reusing the connection with another practice's key would attach its records to the wrong charts. Bookings SmileLine sends carry the same short reference tag in the appointment note as CareStack bookings do; leave it in place.
Request another PMS
The page groups the most widely used systems for UK and US practices. Find your PMS and click Request integration, then confirm with Request. SmileLine records one request per PMS for the whole practice and shows Requested on that card. Click Cancel if the practice no longer needs it.
Requesting a PMS does not start a data connection or grant SmileLine access to the provider. The card remains request-only until an adapter has passed the same activation, security, and reliability checks as a live integration.
The connection imports patients, appointments, treatment-plan summaries, invoices, and payments from Dentally. You can also book against the Dentally diary from a linked patient record.
The initial historical import is silent to outbound webhook endpoints. It builds the SmileLine record without sending one integration event for every historical patient, appointment, treatment plan, invoice, or payment. After activation, live provider changes and polling updates can emit the configured events. Exact provider retries are ignored. If only the provider's revision timestamp changes, SmileLine advances that marker without rewriting the record or sending another event. A conflicting change at the same revision, or one without a usable revision, is held for review instead of overwriting the existing record.
PMS financial and clinical mirrors remain read-only in SmileLine. Two-way patient conflict resolution remains design-only and is not an enabled product mode.
For an appointment the PMS owns, cancelling it in SmileLine is sent on to the provider so both diaries agree. Chairside outcomes — arrived, in chair, attended, no-show — are recorded in the PMS instead: SmileLine cannot send them, and setting one locally would contradict the provider's own record. If the two views do disagree, the incoming record is held for review rather than overwriting what staff recorded.
Review appointment corrections
When a provider update would move an appointment backwards or replace a completed, cancelled or no-show fact, the connection shows Review N appointment corrections. SmileLine keeps the local appointment unchanged and stops any reminder that reaches its final provider boundary while that correction is pending.
Open the review sheet to compare the current and provider status, time, location, status timestamp and note. The provider side also lists the clinicians it proposes, which may be more than one where the PMS records a combined visit. A team member with appointment-edit permission can then choose:
- Keep SmileLine — retain the local fact and resume each interrupted reminder that is still relevant.
- Use PMS correction — apply the reviewed PMS projection, recompute time-anchored reminders and create an urgent follow-up task. The task asks staff to check patient messages, deposits and other external effects that may already have happened. SmileLine does not invent a retrospective booking, move, cancellation or no-show message from this decision.
One correction immediately releases at most twenty due reminders. If recompute produces more, the remaining reminders stay durably scheduled for the next bounded reminder sweep instead of blocking the correction decision.
The decision is version-fenced. If the appointment changed after the sheet was opened, reload and compare it again. Repeating the same completed decision is a write-free replay. If a later provider update resolves the contradiction on its own, SmileLine supersedes the pending review. A live webhook or poll re-arms each still-relevant interrupted reminder. A historical backfill remains silent: it marks that frozen occurrence as not sent but leaves its ledger eligible for a later live appointment change. While a correction is still pending, a newer provider revision carrying the same material is re-evaluated if the local appointment changes. The stale review is then superseded by one tied to the new appointment version.
A patient the PMS marks as declining marketing is opted out in SmileLine, and a patient it marks inactive is archived. Neither is reversed by a later provider update: an opt-out or an archive recorded in SmileLine is never lifted automatically. Patients who have declined SMS or email in the PMS are not contacted on that channel, including by appointment reminders.
Map provider sites
Provider sites appear under the active connection. Map each site to one SmileLine location so imported records land in the correct practice context.
- Select Not mapped when a site isn't ready.
- Click Park to stop processing a site temporarily, then Resume when it should participate again.
- Records from unmapped or parked sites wait; SmileLine does not guess a location or discard them.
Waiting records are retried a limited number of times and expire after 30 days, so a record that can never be routed does not wait indefinitely. Map or resume the site before then to have it processed.
An appointment can arrive before the clinician it names has been imported — Dentally sends no practitioner event, so a new clinician is picked up on the next hourly poll. SmileLine records that appointment against a placeholder clinician straight away so the time is still counted as busy and cannot be double-booked online, then renames it automatically once the real practitioner arrives. The placeholder is inactive, so it is never offered to patients.
Review patient matches
When an imported PMS patient resembles an existing SmileLine patient, the connection shows Review N matches.
Open the review sheet and compare the name, date of birth, email, and phone on both sides. Choose Accept to link the records or Reject to keep them separate. A suggested match never authorizes a link or provider write by itself.
Monitor automatic polling
Dentally has a provider-managed polling cadence of 60 minutes. The connection card shows the cadence and its read-only scheduling diagnostics:
- Next due — when the connection is eligible for its next poll.
- Poll claimed until — another worker currently owns the bounded poll lease.
- Last started and Last completed — the most recent poll timestamps.
- Waiting for activation — polling will begin after the connection becomes active.
SmileLine also consumes provider webhooks when available. Polling closes gaps without starting overlapping work: a claimed poll carries a fenced lease, and a stale worker cannot complete over a newer claim.
Pause or disconnect
- Pause stops new sync work while keeping the connection, mappings, links, and history. Click Resume to schedule it again. Use Pause for a temporary stop — it is fully reversible.
- Disconnect permanently ends the connection and its record links. In-flight bookings and pending writes for that connection stop and are marked for review rather than left hanging. Existing CRM records and imported history remain available.
- Cancel removes a connection that is still waiting for provider activation.
Disconnecting is final for that connection: reconnecting the same provider later creates a fresh connection that re-imports and re-links records. Patients converge onto their existing CRM records, and recent appointments that are unchanged reconnect to the same entries; other records are imported again. If the provider needs clean-up on its side (Open Dental webhook subscriptions), the disconnected connection stays visible in the list until that clean-up completes, with any error shown on it.
If a connection reports an error, inspect its message and the affected patient. Failed PMS writes are called out on the connection and patient record instead of being hidden.
Connected apps
A PMS connection is one kind of integration. The other is an app your practice connects itself — Zapier, or anything built on SmileLine's OAuth connections. These hold a credential that belongs to the practice rather than a personal API key, which is what makes them listable and revocable in one place.
- Only owners and managers can authorise a connection, and each one is bound to a single practice. Connect again for each practice you run.
- A connection acts as the person who authorised it: it can see and change exactly what their role allows, and its changes appear in the activity log under their name with an API key marker.
- Every role that can open Settings → Integrations can see which apps are connected. Owners and managers can remove any of them; anyone can remove a connection they authorised themselves.
- Disconnecting takes effect on that app's very next request, not when its token would have expired. It also switches off the webhook endpoints the connection created, releasing their share of the practice's 20 endpoints.
- Disconnecting removes access, not data. Records the app created stay; anything already copied into that app has to be deleted there.
Connected apps are listed with GET /connected-apps and removed with DELETE /connected-apps/{id} — see the Connected apps group in the API reference.
Outbound webhooks
The last section of Settings → Integrations lists the endpoints SmileLine delivers events to. Owners and managers see it; other roles do not.
Each endpoint shows its name, the host it delivers to, how many event types it carries, whether it is delivering or paused, and when it last succeeded or failed. Only the host is shown, never the full address — a subscriber's URL often carries its own secret in the path.
Creating, verifying, testing, enabling and pausing endpoints belongs to the webhooks API and to the apps that subscribe through it, so the only action here is Remove.
An endpoint a connected app created is managed by that app. Removing it here frees its place among the practice's 20, but the app will create it again on its next subscription — turn the trigger off in the app instead.