Summit EHR · Live application
Reliable integrations: Google reviews and notifications
Two integrations where partial failure was the hard part: syncing Google reviews without losing the last good data, and retrying notifications without sending twice.
- Role
- Built the review sync and reputation workspace, and worked on notification delivery
- Stack
- TypeScript, React, Convex, Google Business Profile API
- Status
- In the live application.
Context
Clinics want their Google reviews inside Summit and want to respond to them there. The reputation workspace covers the Google connection and sync, the review list, replies to Google, private replies inside Summit, portal preferences and response history.
A reply to a review can go two ways. A Google reply is public. A Summit reply stays private. The workspace keeps those two kinds of reply distinct.
Problem 1: a sync fails halfway
Google returns reviews in pages. If a sync fails on page three of five, replacing the stored reviews with whatever arrived would make reviews disappear from a clinic’s workspace.
Decision
Each sync writes into a new staged generation. That generation is activated only after pagination completes. Workers are fenced, so a stale run cannot overwrite a newer one, and leftover staged data is cleaned up in bounded batches.
Failure case
A sync fails partway through pagination. The previous complete set of reviews stays active and visible. The incomplete generation is never activated and is cleaned up later.
Problem 2: one channel succeeds, another fails
A notification can go out over more than one channel. If one channel succeeds and another fails, a naive retry sends the successful one again.
Decision
Retries are scoped to the channel that failed. Delivery results are recorded per channel as durable evidence, so recovery can tell what has already gone out.
Failure case
One channel delivers and the other fails. Only the failed channel is retried, and the patient does not receive the successful one twice.
Limits
Release status reflects repository snapshots from mid-October 2026. I have not independently verified live deployments.
- AI-drafted reply suggestions are not covered here. I have not confirmed their release state.
- I do not have a before and after metric for this work, so I am not giving one.
More from this product
- 01
Summit EHR: one product, two codebases
I maintain the live Convex application for Summit EHR and contribute to its Medplum/FHIR replacement. This page treats them as one product, so the work is not counted twice.
- 02
Patient intake and digital consent
A patient fills in a long form, signs consent documents and submits a packet that clinic staff can retrieve. Two problems shaped my work: forms fail partway through, and consent templates change after people have signed.