> For the complete documentation index, see [llms.txt](https://docs.mdintegrations.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.mdintegrations.com/changelog/readme.md).

# Changelog

New updates and improvements

{% updates format="full" %}
{% update date="2026-09-18" tags="feature,improvement,breaking" %}

## Magic-Link Authentication for Patient Workflows

> **Breaking change:** API endpoints no longer return 2FA codes for white-label partners; patients now authenticate via single-use magic links instead.

Patients accessing intake forms and white-label workflows now authenticate through secure, single-use magic links instead of two-factor codes, removing identifiable information from every link sent to patients.

### How the new flow works

* Partner or MDI's system generates a single-use magic link containing only a secure hash — no voucher IDs, patient IDs, or emails appear in the URL
* When opened, the link is verified (browser checks, usage signals, headers), the token is invalidated, and a session cookie is set
* Reused or cross-device link attempts prompt the patient to request a new token; embedded workflows require no changes

<a class="button primary">Read full update</a>
{% endupdate %}

{% update date="2026-09-14" tags="breaking,feature,improvement" %}

## Scheduled Orders Refactor: draft → upcoming

> **Breaking change:** The order status `draft` is renamed to `upcoming`. Update all systems, API consumers, and workflow logic to use the new status name.

Scheduled Orders can now be edited before approval, and new approval fields track exactly when and by whom an order was approved.

### Key changes

* `draft` status renamed to `upcoming` across all partner systems and API consumers
* Scheduled orders can now be edited by partners and clinicians before approval
* New `approval_date` and `approval_by` fields set when an order is approved or pre-approved

<a class="button primary">Read full update</a>

<details>

<summary>API</summary>

* Updated approval endpoints: Approve (moves to Ready), Pre-approve (keeps Scheduled until effective\_date), Delete approval

</details>

<details>

<summary>Clinicians App</summary>

* Approved Scheduled orders now show an approved label/checkmark in order details

</details>
{% endupdate %}

{% update date="2026-08-25" tags="feature,improvement" %}

## PDMP/NARX Integration, Admin Search Overhaul & Multi-Language Patient App

New clinician tooling for controlled substances, major admin-panel search improvements, and multi-language support for the Patient App.

### Clinician controlled-substance tooling

* PDMP/NARX integration for controlled-substance reports
* Custom signed PDFs and Clinical Note categories for documentation

<a class="button primary">Read full update</a>

<details>

<summary>Partner Integrations + API Enhancements</summary>

* Offerings FAQ query — partners can query Offering FAQs directly via API
* Voucher Q\&A support — voucher creation supports structured Q\&A payloads; questions/answers sent when creating vouchers automatically appear on the resulting case
* Get Patient Messages performance — partners may opt out of pulling files to significantly improve message-retrieval performance
* Extended Care webhook — real-time notification when cases transition to Extended Care
* PriorAuth webhook events — for PriorAuth lifecycle updates

</details>

<details>

<summary>Clinician Experience</summary>

* PDMP/NARX integration — clinicians can access PDMP/NARX reports for controlled substances
* Offering FAQs can be included in thank-you notes sent to patients
* Custom signed PDFs for documentation needs
* Clinical Note categories for organization

</details>

<details>

<summary>Patient App Enhancements</summary>

* Patient status field (Active / Follow-Up / Inactive) to track case progression
* Multi-language support: Spanish, Chinese (Mandarin), Portuguese, Arabic, Korean, German, French
* Hidden questions now support rich text and longer responses

</details>

<details>

<summary>Admin Panel Improvements</summary>

* Pharmacy name search added to Offering search
* Search support added to the Intake Form list
* New Offerings taxonomy for categorization/grouping/analytics
* Export Encounters now includes pharmacy and offering ID columns

</details>

<details>

<summary>Pharmacy</summary>

* Offerings FAQ query
* Improved Rx Fulfillment list load performance
* More reliable webhook reprocessing and audit improvements

</details>
{% endupdate %}

{% update date="2026-07-17" tags="fix,improvement" %}

## Patient App Hotfix: Stripe Checkout Vulnerability Patch

Emergency hotfix patching a critical vulnerability in the Patient App's Stripe checkout, plus a mobile UX fix for the Date of Birth field.

<a class="button primary">Read full update</a>

<details>

<summary>Patient App</summary>

* Critical vulnerability in the Patient App's Stripe checkout patched
* Date of Birth field converted from a date picker to a numeric masked input on mobile

</details>
{% endupdate %}

{% update date="2026-06-23" tags="feature,improvement,breaking" %}

## New Patient Portal, Controlled Substances Support & Shorter Auth Token TTL

> **Breaking change:** Partner authentication token TTL reduced from 24 hours to 60 minutes. Update integrations to refresh or re-authenticate more frequently.

A fully branded Patient Portal beta, upcoming controlled-substance prescribing support, and a security-driven reduction in partner token lifetime.

### New Patient Portal (beta)

* No-code builder for a branded patient journey beyond intake and messaging
* E-commerce order/subscription sync, health journaling, lab results access, and direct-to-pharmacy integrations

### Controlled Substances support (upcoming)

* Provider eligibility/credentialing controls, pharmacy integrations, and compliance auditability

<a class="button primary">Read full update</a>

<details>

<summary>Other Tweaks &#x26; Improvements</summary>

* Non-RX offerings support: doctors can prescribe comprehensive treatment plans (diet, exercise, supplements, etc.)
* Support for managing patient's subscriptions and orders
* Support for capturing patient metrics (Daily Meals, Exercise routine, etc.) for journaling

</details>

<details>

<summary>Clinicians App</summary>

* Delete accidental messages within 15 minutes of sending
* Admins/Internal Support can set encounters non-chargeable on any status
* Storing doctor's CV, malpractice insurance, personal phone/home address
* New AI to categorize messages by mood/type
* Encounter Tiers: categorize encounters by complexity so doctors gauge workload at a glance
* 2FA codes can now be sent via SMS
* TOTP multi-factor authentication added
* Support for Controlled Substance prescriptions

</details>

<details>

<summary>Patients</summary>

* New patient portal experience (customizable pages/widgets)

</details>

<details>

<summary>API</summary>

* Prefilled answers on vouchers to skip/populate questions
* Reduced API token TTL from 24hrs to 60min (security)
* ICDs added to demographics section of LMN and Service PDFs

</details>

<details>

<summary>Shopify Plugin / WooCommerce Plugin</summary>

* Support for answering intake form prior to completing checkout

</details>

<details>

<summary>Pharmacy Integrations</summary>

* Added support for Strive Pharmacy, Welvi Pharmacy, RxRoute Pharmacy, Seven Cells Pharmacy, Hallandale Pharmacy
* Improved Rx Fulfillment tab

</details>
{% endupdate %}

{% update date="2026-02-24" tags="improvement" %}

## Webhook Delivery Reliability & Retry Overhaul

Internal improvements to webhook delivery infrastructure — reliability, retry consistency, and failure observability, with no partner action required.

### New retry schedule

* 15-second delivery timeout before a webhook is considered failed
* Retries at 15 min, 30 min, 1 hour, 4 hours, 8 hours, and 11 hours, spanning 24 hours total before being marked permanently failed

<a class="button primary">Read full update</a>

<details>

<summary>API</summary>

* Payload and header structure unchanged; internal delivery handling improved for more predictable behavior
* Recommended best practice: respond with HTTP 200 immediately and process payloads asynchronously

</details>
{% endupdate %}

{% update date="2026-02-09" tags="feature,improvement,fix" %}

## Next-Generation Clinicians Portal & Pharmacy Integrations Beta

A redesigned Clinicians Portal covering the entire patient lifecycle, plus the closed-beta launch of direct pharmacy integrations.

### Next-Generation Clinicians Portal

* New analytics dashboards, Orders page, and voucher/intake form management
* Redesigned Settings page, improved large-display experience, more cohesive mobile experience

### Pharmacy Integrations (closed beta)

* Direct connections with selected pharmacy partners, bringing the full order workflow into the platform

<a class="button primary">Read full update</a>

<details>

<summary>Clinicians App</summary>

* Ability to hide PHI on mobile
* Improved labeling for forwarded messages
* Improved encounter rejection modal
* Redesigned partner details modal (incl. partner offerings)
* Support for two new labs when parsing results

</details>

<details>

<summary>Patients</summary>

* Improvements to camera access permissions
* Fixed demo vouchers requesting patient phone number twice
* New message sender type ("Partner") for API-created messages
* New digital signature question type

</details>

<details>

<summary>Web</summary>

* New automation for generating PDFs for standard prescriptions
* Fixed bold text in intake form questions not reflecting in Patient App
* Tags added to encounters export
* New automation steps to support pharmacy integrations
* Improvements to invoicing

</details>

<details>

<summary>API</summary>

* Daily email notifications for failed webhooks
* New webhook for clinician license updates
* Improvements to the WooCommerce extension
* Fixed security emails displaying incorrect location
* Fixed incorrect counts in flagged encounter emails

</details>
{% endupdate %}

{% update date="2025-09-16" tags="feature,improvement,fix" %}

## Prescription-Level ICDs, Automations Expansion & WAF Hardening

ICD codes now live on individual prescriptions instead of the encounter, and Automations gains several new triggers and steps.

### ICD codes move to the prescription level

* Each prescription on an encounter now carries its own ICD list, phasing out encounter-level ICDs
* No partner action required — ICDs sent via deprecated encounter-level fields are auto-applied to all prescriptions on the encounter

### Automations expansion

* New triggers and steps: Create Vouchers, Send Emails and Messages, Call HTTP endpoints, context-based wildcards

<a class="button primary">Read full update</a>

<details>

<summary>Clinicians App</summary>

* ICD codes now attached to prescriptions instead of encounters; removed ICD filter from encounters list
* Fixed "fix button" showing for incorrect state
* New flag identifying encounters originated from CarePair
* Requirement for a note when rejecting encounters
* Improvements to Cases List visibility
* New translation options for Medical Intake (question titles now translated too)

</details>

<details>

<summary>Patient App</summary>

* Support for requirement logic based on date of birth under 1 year
* Support for wildcards in hardcoded question content

</details>

<details>

<summary>Web Platform</summary>

* Added CarePair and ICD fields to offerings list
* New experience for associating CarePair offerings
* Toggle to hide the "new virtual visit" screen
* New automation triggers and steps
* Improved wildcard presentation on fields, new pickers
* New program field on offerings to categorize prescriptions/encounters
* New pricing tiers capabilities

</details>

<details>

<summary>API</summary>

* New auditing platform

</details>
{% endupdate %}

{% update date="2025-09-02" tags="feature" %}

## Slack-Based Partner Ticketing System

Partner requests and questions now route to the right MDI contact automatically through a new Slack-based ticketing bot.

### How it works

* A bot auto-responds and generates a support ticket, routing the request to the appropriate MDI contact
* Helps MDI build a shared knowledge base and improve response quality

<a class="button primary">Read full update</a>
{% endupdate %}

{% update date="2025-08-19" tags="feature,improvement,fix" %}

## UAT Environment, No-Code Automations & CarePair Launch

A dedicated staging/UAT environment, a no-code Automations builder, NPS campaigns, and the launch of CarePair treatment-opportunity suggestions.

### New UAT environment

* Staging environment separate from production, receiving release candidates 2+ weeks ahead of release
* Sandbox remains the primary environment for ongoing integration development

### Automations & CarePair launch

* No-code workflow builder starting with automated NPS campaign submission
* Doctors now receive treatment-opportunity suggestions when approving encounters (CarePair)

<a class="button primary">Read full update</a>

<details>

<summary>Clinicians App</summary>

* Added a walkthrough video
* App settings now sync across devices
* Improved AI algorithms; AI reply suggestions now offer up to 4 variations
* New Smart View for questionnaires
* Messaging a patient with multiple open encounters now asks which encounter to move to Waiting
* New contextual onboarding tour; deep-links persist after login
* Clinicians can opt out of certain offering assignments
* Updates to the assignment/reassignment algorithm

</details>

<details>

<summary>Patients</summary>

* Blank loading screen while partner theming loads (previously default theme flashed)
* Integrated NPS collection workflow
* Improvements to the Stripe checkout experience
* Fixed session issues with account switching
* Pregnancy question shown only for patients over 8 years old
* Tracking of abandonment for custom questions

</details>

<details>

<summary>Web Platform</summary>

* Redesigned onboarding flow
* New sections for Automations and NPS Campaigns
* Option to exclude or prioritize clinicians for specific offerings
* Image and Store URL can now be added to offerings for customization

</details>

<details>

<summary>API</summary>

* New email notifications for flagged/pinned encounters
* Automatic refunds for expired, unused vouchers
* Enhanced AI and lab result parsing
* New email alerts for pending uploads (e.g. driver's license, AV)
* UAT environment support
* WooCommerce integration enhancements

</details>
{% endupdate %}

{% update date="2025-06-17" tags="feature,breaking,improvement,fix" %}

## Unified Offerings Structure & Stripe Payments

> **Breaking change:** New `case_offerings` field deprecates `case_prescriptions` and `case_services`. Both coexist during a transition period, with a migration deadline of July 31, 2025.

All offering types are now consolidated into a single offerings structure, and Stripe payments are supported across Web and the Patient App.

### New offerings structure

* `case_offerings` field replaces `case_prescriptions` and `case_services` on Create Voucher, Create Case, and any endpoint manipulating Prescriptions/Services directly
* New `Offering Submitted` webhook fires alongside the existing `Prescription Submitted` webhook until the latter is retired

<a class="button primary">Read full update</a>

<details>

<summary>Web</summary>

* Consolidated all offering types into a single offerings structure
* Implemented support for Stripe payments
* Reorganized "Integration" page settings
* Added notification options
* Improved encounters export to match invoices export
* Improved webhook logs loading speed
* Partners can customize copy of hardcoded questions

</details>

<details>

<summary>Clinicians</summary>

* Prescription wildcards (e.g. patient\_special\_necessities) now replaced when prescription is created, not submitted
* Reply button added to medical intake questions containing a patient question
* Only admins can now cancel completed encounters
* Fixed sandbox/live mode switching issue
* Added support for additional lab result formats
* Added support to trigger workflows when submitting prescriptions

</details>

<details>

<summary>Shopify/WooCommerce Plugins</summary>

* Added support for subscription flow on certain products
* Bug fixes

</details>

<details>

<summary>Patient</summary>

* Implemented support for Stripe payments
* Fonts now apply on inputs/textareas
* Added body temperature and O2 fields
* Added support to edit hardcoded questions

</details>

<details>

<summary>API</summary>

* New webhook for tracking number on Boothwyn orders
* Fixed invalid webhook signature on prescription-submitted webhooks
* Reduced time for considering a doctor OOO (out of office) due to inactivity: 72 hours -> 50 hours
* Added support for patient body temperature and O2 fields
* New special\_necessities field on patient records
* Patients now get a reminder after 48 hours of not uploading ID or AV when requested

</details>
{% endupdate %}

{% update date="2025-04-14" tags="feature,improvement,fix" %}

## Boothwyn Pharmacy Integration & Dynamic Offering Types

A new pharmacy integration expands weight-loss medication prescribing capability, backed by a new dynamic offering type.

### Boothwyn pharmacy integration

* New API integration with Boothwyn pharmacy
* New dynamic offering type supporting Boothwyn and future pharmacy integrations

<a class="button primary">Read full update</a>

<details>

<summary>API</summary>

* New dynamic offering type to support Boothwyn integration and future offerings
* Auto-generated PDF names made more human-friendly
* Endpoint to set an ICD as primary for the Partner API
* Email sent 3 days before support-thread messages are auto-archived
* Fixed reset password functionality
* Fixed email wildcards issue
* Fixed webhooks triggering multiple times

</details>

<details>

<summary>Clinicians</summary>

* Pagination and other improvements to flagged encounters
* Option to open encounters in a new/current tab from the Notifications list
* Added Help Center to the navigation sidebar
* Multiselect prescriptions to add to a case (ctrl/cmd)

</details>

<details>

<summary>Web</summary>

* Fixes/improvements to invoicing capabilities
* New statistics cards and a new metrics dashboard

</details>

<details>

<summary>Patient</summary>

* Fixed fullscreen mode not triggering correctly in certain conditions

</details>

<details>

<summary>Shopify</summary>

* Fixed security vulnerabilities

</details>

<details>

<summary>WooCommerce</summary>

* WooCommerce plugin approved on the Wordpress store

</details>
{% endupdate %}

{% update date="2025-03-17" tags="breaking,fix" %}

## Shopify Checkout Extension Update

> **Breaking change:** Shopify updated its checkout experience — partners must update their integration settings or the intake flow will break.

Shopify's checkout experience changed, requiring partners to update how MD Integrations' extension is wired into their store.

### Required partner actions

* Settings > Checkout: set "Post-Purchase page" to "None"
* Settings > Customer Accounts: select "Customer accounts" under Login links
* Add the "MD Integrations Medical Intake" and "MD Integrations Action Buttons" app blocks in Theme Editor

<a class="button primary">Read full update</a>
{% endupdate %}

{% update date="2025-03-17" tags="feature,breaking,improvement,fix" %}

## SMS/Email Opt-In Controls & Clinician Inbox Overhaul

> **Breaking change:** New SMS/Email opt-in flags added to patient records and the Partner API.

New patient opt-in controls for SMS/Email communications, a consolidated Clinicians Inbox, and the launch of a no-code WooCommerce plugin.

### Patient SMS/Email opt-in

* Two new patient properties control whether a patient wants SMS or Email communications, reducing blacklisting/spam risk
* Automatically populated for partners using the white-label intake form or Shopify integration

### New WooCommerce plugin

* No-code integration for WordPress-based partners

<a class="button primary">Read full update</a>

<details>

<summary>Clinicians</summary>

* Changelogs, partner notifications and global notifications now appear on Inboxes
* DoseSpot error messages from patient syncing now display on the encounter
* "Open Encounter" from inboxes opens in a new tab
* Button to trigger workflows directly from the message sidebar
* SMS message now sent for 2FA when logging into the Clinicians app
* Overweight ICD now added for patients over 25 BMI (was 27)
* Improvements to AI models, AI summary and translation
* Attachments sent by patients via messages are automatically attached to the most recent encounter
* Added a Help Center with FAQ, Partner Details and other resources
* Encounters (up to 2 at a time) actively worked by a physician now get a 30-minute grace period before reassignment
* Added opt in/out for patient SMS and emails
* Improved performance of flagging users
* Notifications under Partner Support auto-archived after 10 days
* Added a field for W9 form upload
* Added a field for physicians to set a default "thank you" video when no other video is set for a partner
* Added an audit log per prescription
* Added ability to add tags to attachments

</details>

<details>

<summary>API</summary>

* \[BREAKING] Added opt in/out for patient SMS and emails
* New webhook for Notifications
* New webhook for encounter charges (case completion, SMS submission, Vouched runs, etc.)
* Fixed 2FA codes not appearing over email due to Dark Mode
* Improvements to server infrastructure; introduced a dedicated Staging server
* Fixed HEIC files not processing properly
* New endpoint to mark messages as read
* Encounters from Created can now be moved to Support directly

</details>

<details>

<summary>Website</summary>

* Partners can customize automatic messages copy from the website
* Added a toggle to disable all AI summaries for a partner's encounters
* Users from a parent company can now manage child company details
* Added statistics for clinician state coverage

</details>

<details>

<summary>Patient App</summary>

* Session now based on browser session (refreshing no longer logs patients out)
* Added opt in/out for patient SMS and emails
* Patients can select which inbox (clinician/support) to send messages to
* Added ability to track intake form abandonment per question

</details>

<details>

<summary>Shopify</summary>

* Improved flow to account for additional products added to cart after the cart screen
* Registration form no longer the default for new stores; patient creation now happens in the white-label Intake Form

</details>

<details>

<summary>WooCommerce</summary>

* Introduced a new WooCommerce plugin — no-code integration for Wordpress-based partners

</details>
{% endupdate %}
{% endupdates %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.mdintegrations.com/changelog/readme.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
