The Service health page (Settings → Health) is a read-only diagnostic: for every integration SalesThumb supports, it checks whether the required server environment variables are set and shows you Configured or Not set up. It never displays the actual secret values — the page reads process.env only on the server and returns true/false per service, as the note at the bottom of the page spells out.
The two summary numbers
At the top, two cards summarize the list: Required and Optional integrations. Required covers just two rows — Database (Postgres) and Authentication (the AUTH_SECRET that signs session cookies, needed for any non-public route). That card only turns green when both are configured; if either is missing, the row itself gets a red-tinted border and a "Missing — required" badge.
The Optional integrations card is scored differently, and it's easy to misread: it turns green as soon as at least one optional integration is configured — not when all of them are. A shop with only Cloudflare R2 wired up and nothing else (no payments, no SMS, no email) still shows a green check on that card. Treat "Optional: green" as "at least one thing is set up," not "everything's set up" — scroll down and check the individual rows for what your shop actually needs.
What's on the list
The optional rows are: SalesThumb Payments (Rainforest card processing, set up from the Payments settings page, with a sub-check for the payin/refund webhook), Stripe (SaaS billing only — this is SalesThumb's own subscription billing, not merchant card processing, with its own billing-webhook sub-check), Twilio (SMS + voice, sub-check for sender configuration), Email/SMTP (the SMTP_HOST/SMTP_USER/SMTP_PASS variables behind quotes, invoices, warranty certs, and review-request emails), Cloudflare R2 (file storage for photos, warranty PDFs, and customer documents, sub-check for the public URL), Inngest (background jobs — reminders, digests, recurring appointments, sub-check for the signing key), Sentry (error tracking), Google Sign-In, and Google Maps (powers the multi-location map on the HQ Locations tab).
Two rows are worth a second look. Sentry only shows Configured when both its Server DSN and Client DSN sub-checks are true — set only one and the row still reads "Not set up" even with one green pill showing. And the Email (SMTP) row only reflects the SMTP_HOST/USER/PASS variables; if your shop instead sends email through its own Resend account (set up under Integrations), that has a separate status shown on the Integrations page, not here — so a shop sending mail successfully via Resend can still show "Not set up" on this page's SMTP row.
Using the setup links
Rows that aren't configured show a button linking to where you'd go get credentials — the Neon dashboard, Stripe dashboard, Twilio console, Cloudflare dashboard, Inngest dashboard, Sentry signup, Google Cloud console, or the Maps API page — opening in a new tab. Authentication has no button, since AUTH_SECRET is just an environment variable you set directly rather than a service you sign up for. SalesThumb Payments' button goes to the in-app Payments settings page instead of an external site, and Sentry also has a Read docs link. None of these buttons configure anything by themselves — they just get you to where you generate the credentials, which still need to be added as environment variables and deployed before the row will flip to Configured.