Free tools / Health Cloud test cases
Start with anything that runs on a legal clock or touches patient safety: prior authorization, benefits verification, care program eligibility and who can see which records. For life sciences, add samples, payments to HCPs and adverse events. Below are 47 test cases mapped to real Health Cloud (now Agentforce Health) objects, each with test data and a pass condition you check in the data, not on the screen.
filter // process
| ID | Scenario | Given | When | Then (check the data) |
|---|---|---|---|---|
| H-001 P1 | Duplicate patient caught at intake | GivenPerson account Maria Lopez, DOB 1984-03-02, MRN 0055102 exists | WhenFront desk registers “María López”, same DOB, new email | ThenDuplicate rule warns or blocks; SOQL on MRN 0055102 returns exactly 1 account |
| H-002 P2 | Caregiver relationship shows from both sides | GivenPatient Ahmed Khan and contact Sara Khan | WhenSara is added as Ahmed’s caregiver | ThenRelationship and reciprocal role show on both records; Sara’s portal access follows your consent rule, not the relationship alone |
| H-003 P1 | Deceased patients drop out of outreach | GivenPatient marked deceased on 2026-10-30, still a member of the flu-shot campaign | WhenOutreach batch runs | ThenNo email, SMS or task created for the patient |
| H-004 P2 | A minor needs the guardian path | GivenPatient aged 16 with a guardian on file | WhenPatient tries to self-register on the portal | ThenRouted to guardian consent; no portal user for the minor until consent is recorded |
| H-005 P1 | ADT^A08 updates, never duplicates | GivenEHR sends ADT^A08 with a new address for MRN 0055102 | WhenThe inbound HL7 integration processes it | ThenAddress updated on the existing account; account count for the MRN stays 1; message logged as processed |
| H-006 P2 | ADT^A40 merge keeps clinical history | GivenMRNs 0055102 and 0055877 merged in the EHR; 0055102 survives | WhenADT^A40 arrives | ThenConditions, encounters and care requests from 0055877 now sit under the survivor; no orphaned child records |
| H-007 P2 | Out-of-order messages | GivenTwo ADT^A08 updates sent at 10:02 and 10:05 arrive in reverse order | WhenBoth are processed | ThenThe 10:05 values win; the older message never overwrites newer data |
| H-008 P1 | Eligible patient enrolls | GivenProgram “Diabetes Management” requires HbA1c ≥ 7.0%; patient result 7.4% | WhenEnrollment through the Care Program Enrollments API or the UI | ThenOne CareProgramEnrollee, status Active, linked to the right CareProgram and enrollee product |
| H-009 P1 | Ineligible patient is refused | GivenSame program; patient HbA1c 6.4% | WhenEnrollment is attempted | ThenRejected with a readable reason; zero CareProgramEnrollee records created |
| H-010 P2 | The boundary value enrolls | GivenPatient HbA1c exactly 7.0% | WhenEnrollment is attempted | ThenEnrolled. A rule written as > instead of ≥ fails here |
| H-011 P2 | No double enrollment | GivenPatient already Active in the program | WhenA second enrollment is submitted | ThenBlocked; Active enrollees for this patient and program = 1 |
| H-012 P2 | Disenrollment closes the loop | GivenActive enrollee with 3 open outreach tasks | WhenCoordinator ends the enrollment today | ThenEnrollee inactive; the 3 tasks closed or reassigned; patient left out of the next outreach run |
| H-013 P1 | Active coverage returns benefits | GivenMemberPlan active 2026-01-01 to 2026-12-31; service date 2026-11-20 | WhenBenefits verification runs against the connected service | ThenCareBenefitVerifyRequest completes; CoverageBenefit holds copay, deductible and out-of-pocket values from the response |
| H-014 P1 | Terminated coverage is flagged | GivenMemberPlan ended 2026-09-30; service date 2026-11-20 | WhenBenefits verification runs | ThenNo active coverage shown; no authorization request created automatically |
| H-015 P1 | Payer timeout leaves nothing half-writtenCareBnftVrfyRqstStsChgEvent | GivenStub service set to time out after 30 seconds | WhenBenefits verification runs | ThenRequest in an error state, retry message for the user, zero partial CoverageBenefit rows; status-change event published |
| H-016 P2 | Primary and secondary plans | GivenTwo MemberPlans: employer plan (primary), spouse’s plan (secondary) | WhenBenefits verification runs | ThenPrimary checked first; each result stored against its own plan |
| H-017 P2 | Benefit limit used up | GivenPhysical therapy limit 20 visits a year, 20 used | WhenScheduler books visit 21 | ThenWarning before booking; remaining visits show 0, not a negative number |
| H-018 P1 | Expedited request gets a 72-hour clockCMS-0057-F | GivenExpedited CareRequest received Monday 2026-11-09 09:00 ET for a Medicare Advantage member | WhenRequest is saved | ThenDecision due 2026-11-12 09:00 ET, stored on the record and shown in the review queue |
| H-019 P1 | Standard request counts calendar daysCMS-0057-F | GivenStandard CareRequest received Friday 2026-11-20 16:30 | WhenRequest is saved | ThenDecision due Friday 2026-11-27 16:30. Thanksgiving and the weekend count; a business-hours clock fails this test |
| H-020 P1 | Clock across the daylight saving changeCMS-0057-F | GivenExpedited request received 2026-10-31 12:00 ET; clocks fall back on 2026-11-01 | WhenRequest is saved | ThenDue 2026-11-03 11:00 ET: 72 elapsed hours, not 72 wall-clock hours |
| H-021 P1 | Partial approval stored per line | GivenCareRequest with CareRequestItems CPT 97110 ×12, 97140 ×6, 97530 ×6 and CareDiagnosis ICD-10 M54.50 | WhenReviewer approves 97110 and 97140, denies 97530 | ThenEach CareRequestItem holds its own decision; header shows partial approval; denial notice lists only 97530 |
| H-022 P1 | No denial without a specific reasonCMS-0057-F | GivenReviewer opens a pended request | WhenReviewer denies with the reason blank or only “Other” | ThenSave blocked until a specific reason is recorded |
| H-023 P2 | Drug request details persist | GivenCareRequestDrug: NDC 00002-7510-01, 5 mg, once weekly | WhenRequest submitted and approved | ThenNDC, strength, frequency and decision saved on the drug line, not only in notes |
| H-024 P2 | Payer asks for more information | GivenPended request; payer sends a TrackedCommunication asking for therapy notes | WhenProvider uploads two documents | ThenBoth linked as CareRequestSupportingCntnt; request back in the reviewer queue; sender and time visible |
| H-025 P1 | Behavioral health requests stay restricted | GivenUM nurse on the medical queue; request assigned to the behavioral health queue | WhenNurse searches for the member and opens the request by URL | ThenNo access: search returns nothing, the URL shows insufficient privileges |
| H-026 P2 | Appeal links to the original | GivenRequest denied on 2026-11-12 | WhenProvider files an appeal | ThenNew CareRequest of type appeal linked to the original; the original decision and reason unchanged |
| H-027 P1 | Resubmission is idempotent | GivenProvider system posts the same prior authorization twice with one external ID | WhenBoth calls are processed | ThenOne CareRequest; the second call returns the existing record or a duplicate error |
| H-028 P1 | PHQ-9 total and severity | GivenPHQ-9 answers totalling 15, item 9 = 0 | WhenAssessment is submitted | ThenScore 15 stored, severity moderately severe (15–19), follow-up task created per your protocol |
| H-029 P1 | Self-harm item escalates on its own | GivenPHQ-9 total 6, item 9 = 1 | WhenAssessment is submitted | ThenClinician escalation task created at once, even though the total is mild |
| H-030 P2 | Care plan from a template | GivenTemplate with 3 goals and 8 tasks | WhenCoordinator applies it to a new enrollee | Then3 goals and 8 tasks with owners and due dates relative to the start date |
| H-031 P2 | Care team change removes access | GivenCoordinator A on the care team | WhenCoordinator B is added and A removed | ThenOpen tasks move to B; A can no longer open the patient |
| H-032 P1 | Patient and clinic in different time zones | GivenPatient in Los Angeles books a video visit with a New York clinic at 9:00 ET | WhenBooking completes | ThenPatient sees 6:00 PT, clinic sees 9:00 ET; ServiceAppointment stores one correct UTC time |
| H-033 P2 | No double booking | GivenOne open slot, two schedulers | WhenBoth book it within the same second | ThenOne ServiceAppointment; the second user is told the slot is gone |
| H-034 P1 | Reminders respect opt-out | GivenTwo patients with visits tomorrow; one opted out of SMS | WhenReminder job runs 24 hours before | ThenOne SMS sent, none to the opted-out patient; both outcomes logged |
| H-035 P1 | Front desk cannot see diagnoses | GivenUser with the front-desk profile | WhenOpens a patient and runs a report on conditions | ThenDiagnosis fields and condition records hidden in the UI, reports and API |
| H-036 P1 | Substance use records stay behind Part 2 consent42 CFR Part 2 | GivenPatient with a 42 CFR Part 2 program record | WhenA general care coordinator opens the patient | ThenPart 2 data not visible without the authorization your policy requires |
| H-037 P1 | Audit trail on clinical fields | GivenHistory tracking on the diagnosis code; Field Audit Trail policy set | WhenA user changes ICD-10 E11.9 to E11.65 | ThenOld value, new value, user and timestamp stored; retention covers the change beyond 18 months |
| H-038 P1 | Portal users see only their own records | GivenPortal user for patient A; record ID of patient B | WhenUser opens B’s record URL and calls the API with B’s ID | ThenInsufficient privileges on both |
| H-039 P2 | No PHI in email subject lines | GivenAppointment and results-ready email templates | WhenEach template is sent to a test inbox | ThenSubjects carry no diagnosis, drug or result; bodies follow minimum necessary |
| H-040 P1 | Sample drop needs a valid license21 CFR 203 | GivenHCP whose state license expired 2026-10-31 | WhenRep records a sample disbursement on 2026-11-05 | ThenDisbursement blocked with a license message; the visit still saves without samples |
| H-041 P1 | Per-HCP sample limit | GivenLimit 10 units per HCP per year; 10 already given | WhenRep adds 1 more unit | ThenBlocked; message shows 10 of 10 used |
| H-042 P1 | Signed receipt for every sample21 CFR 203.31 | GivenVisit with a 2-unit sample drop | WhenRep submits without the HCP signature | ThenSubmit blocked; with the signature, the receipt stores name, address, title, signature, product, quantity and date |
| H-043 P2 | Group visit records samples per attendee | GivenLunch-and-learn with 4 HCPs; samples to 2 of them | WhenVisit is submitted | ThenSample disbursements exist for exactly those 2; products discussed cascade to all 4 |
| H-044 P1 | Rep inventory reconciles21 CFR 203.31(d) | GivenRep received 120 units, disbursed 85, returned 20 | WhenReconciliation runs | ThenOn hand = 15; any physical count other than 15 opens a discrepancy |
| H-045 P1 | Small payments still add upOpen Payments PY2026 | GivenEleven meals to one HCP in 2026 at $12.80 each | WhenOpen Payments extract runs | ThenEach meal is under $13.82, but the $140.80 total passes $138.13, so all eleven are reportable |
| H-046 P1 | Consent before benefits investigation | GivenPatient services enrollment without a signed HIPAA authorization | WhenHub specialist starts a benefits investigation | ThenBlocked until the authorization is on file; consent date stored on the enrollment |
| H-047 P1 | Adverse event inside a call note21 CFR 314.80 | GivenRep logs: “patient had a seizure after the second dose” | WhenCall is saved | ThenAdverse event record created and routed to pharmacovigilance in your SOP window; serious unexpected events start the 15-day FDA clock |
Values are examples. Rules are US federal requirements as we read them on November 7, 2026; state law, contracts and your SOPs may be stricter. Swap in your own numbers before you run the suite.
// the numbers //
72 hours, 7 calendar days
Prior authorization decision deadlines for expedited and standard requests at Medicare Advantage, Medicaid and CHIP payers since January 1, 2026 (CMS-0057-F). Test the stored due date, not the label.
January 1, 2027
The FHIR Prior Authorization, Patient Access, Provider Access and Payer-to-Payer APIs must be live under the same rule. Integration tests need a FHIR path, not only X12 278.
$13.82 and $138.13
Open Payments thresholds for 2026. A transfer of value under $13.82 is exempt unless the year’s total to that HCP passes $138.13. Test the aggregate, not the line.
A signature on every sample
PDMA rules (21 CFR 203) need a signed request and a signed receipt for drug samples, plus inventory reconciliation. A sample drop without both is a failed test.
18 months or 10 years
Standard field history keeps 18 months of changes in the org. Field Audit Trail (Shield) can keep up to 10 years. Know which one backs your audit test.
60 days
The outer limit for telling individuals about a HIPAA breach. Access tests are cheaper than breach notices: run every key screen as each profile, never as an admin.
Check these with your compliance team
These are US federal rules as we read them on November 7, 2026. State law, payer contracts and your own SOPs are often stricter. Use them as starting oracles, then replace each number with the one your policy sets.
// object map //
| Process | Objects and APIs to check | What usually breaks |
|---|---|---|
| ProcessPatient and member records | Objects and APIsAccount (person account)Contactcontact relationships | What usually breaksDuplicates from intake and EHR feeds; merges that orphan clinical records; outreach to deceased patients. |
| ProcessEHR feeds (HL7 v2, FHIR) | Objects and APIsHL7 v2 ADT messagesHealth Cloud FHIR APIsMuleSoft Direct integrations | What usually breaksUpdates that create a second patient; merge and update messages processed out of order. |
| ProcessCare programs | Objects and APIsCareProgramCareProgramEnrolleeCareProgramEligibilityRuleEnrollmentEligibilityCriteriaCareProgramEnrolleeProduct | What usually breaksEligibility boundaries written as > instead of ≥; double enrollment; disenrollment that leaves tasks open. |
| ProcessBenefits verification | Objects and APIsCareBenefitVerifyRequestMemberPlanPurchaserPlanCoverageBenefitCoverageBenefitItemCoverageBenefitItemLimit | What usually breaksStubs that always return active coverage; timeouts that leave half-written benefits. |
| ProcessUtilization management | Objects and APIsCareRequestCareRequestItemCareRequestDrugCareDiagnosisCareRequestReviewerTrackedCommunicationCareRequestSupportingCntnt | What usually breaksDecision clocks on business hours; decisions stored only on the header; denials without a specific reason. |
| ProcessCare plans and assessments | Objects and APIsAssessment (Discovery Framework)care plan, goal and task records | What usually breaksScores shown on screen but not stored; a safety item hidden inside a mild total. |
| ProcessAppointments and reminders | Objects and APIsServiceAppointmentWorkTypeServiceResourceServiceTerritory | What usually breaksPatient and clinic in different time zones; two people booking one slot; SMS to opted-out patients. |
| ProcessPHI access and audit | Objects and APIsprofiles and permission setssharing rulesfield history and Field Audit TrailShield Platform Encryption | What usually breaksTests run as an admin who can see every record and field. |
| ProcessLife sciences: visits and samples | Objects and APIsvisit and sample disbursement recordsrep sample inventoryHCP license data | What usually breaksExpired state licenses still accepted; group visits that record samples once for everyone. |
| ProcessLife sciences: payments, consent, safety | Objects and APIstransfer-of-value recordspatient services enrollment and consentadverse event records | What usually breaksSmall payments never aggregated; adverse events left inside call notes. |
// field notes //
01
Business hours on a calendar-day clock
Entitlement milestones often run on business hours. Prior authorization clocks run on calendar days and elapsed hours. Test a Friday afternoon request, a holiday and the DST change.
02
Tests that run as an admin
An admin sees every diagnosis, every Part 2 record and every patient. Run each test as the profile that does the job: front desk, UM nurse, rep, portal patient.
03
Synthetic patients that are too clean
Real intake has accents, hyphens, twins with one birth date and MRNs with leading zeros. Clean data passes duplicate rules that real data breaks.
04
A payer stub that only says yes
If the benefits stub never times out, never returns terminated coverage and never denies, half the flows are untested. Script the failure answers first.
05
Checking the screen, not the record
A green banner is not a decision. Query the CareRequestItem lines, the enrollee status and the CoverageBenefit rows after each step.
06
Old package fields after the move to core
Health Cloud began as a managed package and has moved features onto the core platform. Tests and code that still reference package fields break quietly when you adopt the core objects.
07
Skipping the preview sandbox
Health Cloud is now Agentforce Health, ships three releases a year, and utilization management runs on OmniStudio components. Rerun the P1 cases in a preview sandbox before each release.
// test data //
Most Health Cloud defects we see hide in data the sandbox doesn’t have: the duplicate with an accent, the request logged at 16:59 on a Friday, the user who isn’t an admin. Build these sets once and reuse them every release.
| Data set | Minimum | What to include |
|---|---|---|
| Data setPatients | Minimum60 | What to include10 duplicate pairs (accents, hyphens, swapped first and last names), 3 minors, 2 deceased, twins with one birth date, MRNs with leading zeros |
| Data setMember plans | Minimum8 | What to includeActive, terminated, future-dated, primary plus secondary, ending mid-month, a benefit limit already used up |
| Data setCare requests | Minimum13 | What to include2 priorities × 3 types (service, drug, admission) × approve or deny, plus 1 multi-line partial approval |
| Data setClock timestamps | Minimum6 | What to includeFriday 16:59, a Saturday, Thanksgiving 2026-11-26, the DST change on 2026-11-01, 23:59 on December 31, leap day 2028-02-29 |
| Data setUsers | Minimum7 profiles | What to includeFront desk, care coordinator, UM nurse, behavioral health reviewer, field rep, portal patient, portal guardian. Never an admin. |
| Data setHCPs | Minimum20 | What to includeActive, expired and out-of-state licenses; 4 in one group visit; one already at 10 of 10 samples |
A group health policy on one of our partner projects carries up to 2,400 members and is heading to 5,000. Eight inputs drive each premium; at just two values each, that is 256 combinations. At about 2 minutes per UI test, 2,000 combinations take over 66 hours. Keep 1 to 5 end-to-end UI flows that prove the calculation, load the rest through the API, and check every result with SOQL.
// keep going //
More Salesforce test cases and tools
// test cases //
Financial Services Cloud test cases
47 cases for households, KYC, Reg E disputes, lending, Compliant Data Sharing and insurance.
See the FSC cases →
// test cases //
Manufacturing Cloud test cases
43 cases for sales agreements, actuals, account forecasts, rebates, partners and warranty.
See the manufacturing cases →
// generator //
Turn these cases into a UAT plan
Build the plan the business signs: scope, roles, entry and exit criteria, and a sign-off sheet.
Build the UAT plan →
// questions //
Questions about testing Health Cloud
What should I test first in Salesforce Health Cloud?
Start with anything that has a clock or a patient-safety consequence: prior authorization decisions, benefits verification, care program eligibility and who can see which records. Those are the P1 cases on this page. Page layouts can wait.
Is Salesforce Health Cloud the same as Agentforce Health?
Yes. Salesforce now calls Health Cloud Agentforce Health, and Life Sciences Cloud Agentforce Life Sciences. Objects such as CareRequest and CareProgramEnrollee keep their API names, so the test cases still apply.
How do I test prior authorization deadlines in Health Cloud?
Create requests at awkward times: Friday afternoon, a holiday, the night of a daylight saving change. For payers under CMS-0057-F, expedited decisions are due within 72 hours and standard ones within 7 calendar days. Check the due date stored on the record, not only the timer on screen.
Can I use real patient data in a Health Cloud sandbox?
Avoid it. Use synthetic patients that look like real intake: accents, hyphenated names, twins with one birth date, MRNs with leading zeros. If you must refresh from production, mask PHI before testers get access.
Which user should Health Cloud tests run as?
The user who does the job. Admins bypass field-level security and sharing, so access bugs stay hidden. Run the P1 cases as front desk, care coordinator, UM reviewer, field rep and portal patient.
Can TestZeus run these Health Cloud test cases?
Yes. Import the cases in plain English or Gherkin, run them in a sandbox as different profiles, and check results with SOQL, API calls and generated documents. TestZeus is SOC 2 Type II and ISO 27001 certified, HIPAA compliant, and can mask data before it reaches an LLM.
// next step //
Run these cases on your own sandbox
Bring your ten most important cases. We will run them on your sandbox as real profiles, check the records they write, and walk you through the report.
// Start testing //







