09.23.2026

Today’s release includes the following updates:

sdk

  • Plugins can now get a patient’s portal login link and deliver it themselves, over a practice’s own SMS or email provider, rather than having Canvas send it. The new patient_portal_http.get_login_url() utility returns the link without sending anything.
    • One link covers both cases. When the patient opens it, the portal shows account activation or a password reset depending on whether they have already registered, so read is_portal_registered on the CanvasUser data module to decide the wording of your own message.
    • You can choose where in the portal the link lands, and how long it stays valid, up to 24 hours.
    • Treat the link as a credential: whoever opens it can set that patient’s portal password. Send it only over a channel you have verified for that patient.
    • Because your plugin does the delivering, Canvas has no record that the link went out. The patient’s Portal section looks exactly as it did before, so staff still see a Send invite button there and may send a second link. Use Send Invite when you want Canvas to send the invite and record it.
    • What the patient does with the link is still visible in that same section: their username replaces “pending” once they set up their account, and a last login time appears once they sign in.