Skip to content

URS-079 · Cycle count surfaces expired stock for review and return

Title: Cycle count surfaces expired stock for review and return Date: 2026-09-29T02:31:00.010Z Duration: 68.1s Overall Status: ✅ PASS

The system shall detect expired or soon-to-expire stock recorded during a cycle count: finishing the count shall surface a lot expiration review task for the counted location, assign it to the representative who performed the count, and link directly into the expiry returns flow with the urgent lots pre-selected, so the distributor can return the affected stock to the manufacturer with full traceability.

Source: User_Requirement_Specifications_Vantis_DeviceFlow.xlsx — the run below proves the system meets this requirement.

Status: ✅ PASS

Each step below corresponds to one Playwright test that ran sequentially. Screenshots and video recordings provide visual evidence of the UI behaviour.

1. Step 1: Admin requests a cycle count of distributor trunk locations — ✅ PASS

Section titled “1. Step 1: Admin requests a cycle count of distributor trunk locations — ✅ PASS”

What this step proves:

Alex Admin (Vantis manufacturer) creates a cycle count request through the two-step wizard: the Corveta distributorship is selected with its scope narrowed to Trunks, then a due date and a URS-079 marker note are set on the review step. Submitting creates the request, links the resolved trunk locations, and pre-opens a cycle count at each (origin admin_request). This establishes the administrator-driven entry point of the pipeline under test.

Audit events generated by this step:

(Evidence scoped to step execution window: 2026-09-29T02:31:13.052Z → 2026-09-29T02:31:17.387Z)

TimeTypeActionUserOrgPerformed
2026-09-29 02:31:17Zdecisioncreate_cycle_count_request_itemalex.admin@vantismedical.comCorveta Surgical Groupyes
2026-09-29 02:31:17Zdecisioncreate_cycle_count_request_itemalex.admin@vantismedical.comCorveta Surgical Groupyes
2026-09-29 02:31:17Zdecisionrefresh_unassigned_cycle_counts_review_itemalex.admin@vantismedical.comCorveta Surgical Groupno
2026-09-29 02:31:17Zchecklistchecklists.createalex.admin@vantismedical.comCorveta Surgical Group—
2026-09-29 02:31:17Zdecisionauto_complete_cycle_count_requestalex.admin@vantismedical.comVantisno
2026-09-29 02:31:17Zcycle_count_requestcreate_cycle_count_requestalex.admin@vantismedical.comVantis—
2026-09-29 02:31:17Zdecisioncreate_cycle_count_request_itemalex.admin@vantismedical.comCorveta Surgical Groupyes

Screenshots:

step 01 wizard scope

step 01 review

step 01 submitted

Video recording:


2. Step 2: Rep opens the requested count and records the expired lot — ✅ PASS

Section titled “2. Step 2: Rep opens the requested count and records the expired lot — ✅ PASS”

What this step proves:

Blair Bennett (Corveta rep) opens the request-created count from his trunk’s location page and records the expired URS-079 NovaPatch lot through the Add items card’s Form mode, picking the lot from the approved-lot dropdown (expired lots stay selectable — a count records what is physically on the shelf). The entry lands in the count’s scan batch with its expiration resolved from the approved-lot catalog. This verifies a rep can record expired stock during a count.

Screenshots:

step 02 scan page

step 02 lot recorded

Video recording:


3. Step 3: Rep finishes the cycle count — ✅ PASS

Section titled “3. Step 3: Rep finishes the cycle count — ✅ PASS”

What this step proves:

Blair confirms the finished count. finishCycleCount reconciles inventory to the counted quantities and then runs the lot-expiration scan inline, in the same transaction: the re-keyed inventory row keeps the expired date, so the scan raises the per-location “Resolve expiring inventory” review task, assigns the location-linked users plus Blair as the cycle counter, and records the ensure decision. This is the primary URS-079 evidence that finishing a count surfaces expired stock for review with no scheduled sweep needed.

Audit events generated by this step:

(Evidence scoped to step execution window: 2026-09-29T02:31:38.453Z → 2026-09-29T02:31:39.688Z)

TimeTypeActionUserOrgPerformed
2026-09-29 02:31:39Zdecisionensure_lot_expiration_cycle_counter_assignment—Corveta Surgical Groupno
2026-09-29 02:31:39Zdecisioninventory.gate_cycle_count_evidence_photosblair.bennett@corvetasurgical.comCorveta Surgical Groupno
2026-09-29 02:31:39ZdecisioncycleCount.excludeSequesteredReturnUnitsblair.bennett@corvetasurgical.comCorveta Surgical Groupno
2026-09-29 02:31:39Zdecisionrefresh_unassigned_cycle_counts_review_itemblair.bennett@corvetasurgical.comCorveta Surgical Groupno
2026-09-29 02:31:39Zchecklistchecklists.createblair.bennett@corvetasurgical.comCorveta Surgical Group—
2026-09-29 02:31:39Zdecisionfinish_cycle_countblair.bennett@corvetasurgical.comCorveta Surgical Groupyes
2026-09-29 02:31:39Zdecisionauto_complete_cycle_count_requestblair.bennett@corvetasurgical.comVantisno
2026-09-29 02:31:39Zdecisiontickets.checklist_item_resolve.auto_resolve_ticket—Corveta Surgical Groupno
2026-09-29 02:31:39Zdecisionensure_lot_expiration_checklist—Corveta Surgical Groupyes
2026-09-29 02:31:39Zdecisionupgrade_lot_expiration_checklist_priority—Corveta Surgical Groupno
2026-09-29 02:31:39Zdecisionensure_lot_expiration_cycle_counter_assignment—Corveta Surgical Groupno
2026-09-29 02:31:39Zuser_logcycle_count:closeblair.bennett@corvetasurgical.comCorveta Surgical Group—

Screenshots:

step 03 finish summary

step 03 finished

Video recording:


4. Step 4: The expiry review task appears in the rep inbox — ✅ PASS

Section titled “4. Step 4: The expiry review task appears in the rep inbox — ✅ PASS”

What this step proves:

The task raised by the count is waiting in Blair’s inbox: the “Resolve expiring inventory at TRUNK-36” item lists the expired URS-079 lot on its detail panel with product, lot number, expiration, and status badge, and its “Go to Task” action is a deep link into the returns flow carrying manufacturerId, prefillExpiring=1, type=expiry, and the trunk’s locationId. This verifies the review task reaches the person who performed the count with everything needed to act.

Screenshots:

step 04 task detail

step 04 go to task

Video recording:


Section titled “5. Step 5: The task deep-links into the prefilled expiry return flow — ✅ PASS”

What this step proves:

Clicking “Go to Task” lands in the lean expiry returns flow at Step 2 of 3 (Lots): the type chooser and manufacturer step are skipped because the URL carries type=expiry and a valid manufacturerId, the form footer shows Vantis and the Expiring stock reason, and the picker arrives with the urgent lots pre-selected — including the expired URS-079 lot the count surfaced. This verifies the handoff from review task to return flow is prefilled end to end.

Screenshots:

step 05 lots preselected

Video recording:


6. Step 6: Rep submits the expiry return — ✅ PASS

Section titled “6. Step 6: Rep submits the expiry return — ✅ PASS”

What this step proves:

Blair re-enters through the task, advances the prefilled flow to the review step, adds notes tagged with the URS-079 marker, and submits. The submit path creates a return with return_type=expiry, derives the return location from the selected lots, attaches no sales account, creates no replacement order, and fans the lot out into one return_items row per unit. Because the replacement-order step is skipped, the service writes a decision audit row (create_replacement_order_on_return, performed=false, reason=return_type_not_incident). This closes the pipeline: expired stock found by a count leaves through a fully traceable return.

Audit events generated by this step:

(Evidence scoped to step execution window: 2026-09-29T02:31:59.890Z → 2026-09-29T02:32:06.803Z)

TimeTypeActionUserOrgPerformed
2026-09-29 02:32:01Zdecisionpartition_return_submissionblair.bennett@corvetasurgical.comVantisno
2026-09-29 02:32:01Zdecisioncreate_replacement_order_on_returnblair.bennett@corvetasurgical.comVantisno
2026-09-29 02:32:01Zdecisionrepresentatives.gate_rep_actionblair.bennett@corvetasurgical.comVantisno
2026-09-29 02:32:01Zdecisionopen_item_movement_on_return_submissionblair.bennett@corvetasurgical.comCorveta Surgical Groupyes
2026-09-29 02:32:01Zdecisionlink_return_to_location_sales_accountblair.bennett@corvetasurgical.comCorveta Surgical Groupno
2026-09-29 02:32:01Zdecisiontickets.checklist_item_resolve.auto_resolve_ticket—Corveta Surgical Groupno
2026-09-29 02:32:01Zreturn_requestcreatedblair.bennett@corvetasurgical.comVantis—
2026-09-29 02:32:03Zdecisionreturns.notifications.cc_incident_recipients—Vantisno
2026-09-29 02:32:03Zdecisionextensiv_return_push.skipped—Vantisno
2026-09-29 02:32:03Ztransactional_emailreturn_submitted—Corveta Surgical Group—

Screenshots:

step 06 review

step 06 submitted

Video recording:


The following SQL queries ran against the application database after the Playwright scenarios completed. Each query asserts a specific condition that proves the feature under test persisted its data correctly.

Cycle count request created by the manufacturer admin — ✅ PASS

Section titled “Cycle count request created by the manufacturer admin — ✅ PASS”

Assertion: A cycle count request tagged “URS-079 validation run” should exist for Vantis, created by Alex Admin.

SELECT id, status, created_by_user_id, note, created_at
FROM cycle_count_requests
WHERE organization_id = $1 AND note LIKE '%' || $2 || '%'
ORDER BY created_at DESC
idstatuscreated_by_user_idnotecreated_at
01a0eb00-8d2c-7bea-8c92-1f397965a4d1activef6a7b8c9-d0e1-2345-f123-456789012345URS-079 validation run — submitted at 2026-09-29T02:31:14.402Z2026-09-29T02:31:17.058Z

Count at the trunk closed by the rep and applied — ✅ PASS

Section titled “Count at the trunk closed by the rep and applied — ✅ PASS”

Assertion: The request-opened count at Blair’s trunk should be closed by Blair, applied, with origin=admin_request.

SELECT cc.id, cc.closed_at, cc.closed_by_user_id, cc.applied,
cc.metadata->>'origin' AS origin
FROM cycle_counts cc
WHERE cc.organization_id = $1
AND cc.location_id = $2
AND cc.metadata->>'requestId' = $3
ORDER BY cc.opened_at DESC
idclosed_atclosed_by_user_idappliedorigin
01a0eb00-8d56-7baf-8070-224e479c3f172026-09-29T02:31:39.308Z17b8c9d0-e1f2-3456-1234-567890123456trueadmin_request

Reconciled lot kept its expiration and the return took the units — ✅ PASS

Section titled “Reconciled lot kept its expiration and the return took the units — ✅ PASS”

Assertion: Lot URS079-NP-001 should still exist at Blair’s trunk with a past, non-null expiration (proof it survived the reconcile re-key), and its ready quantity should be 0 because submitting the return moved every unit out.

SELECT lot, SUM(quantity_ready)::int AS quantity, MIN(expiration::text) AS expiration
FROM inventory_items
WHERE organization_id = $1 AND real_world_location_id = $2 AND lot = $3
GROUP BY lot
lotquantityexpiration
URS079-NP-00102026-09-19

Lot-expiration review item raised for the counted trunk — ✅ PASS

Section titled “Lot-expiration review item raised for the counted trunk — ✅ PASS”

Assertion: A inventory.lot_expiration_review checklist item should exist for Blair’s trunk with lot URS079-NP-001 in its urgentLots metadata.

SELECT id, status, route, item_key, metadata
FROM checklist_items
WHERE organization_id = $1 AND criteria_type = $2 AND linked_object_id = $3
idstatusrouteitem_keymetadata
01a0eb00-e49c-78af-b5c9-bcc3d727a2c2completed/returns/new?manufacturerId=a1b2c3d4-e5f6-7890-abcd-ef1234567890&prefillExpiring=1&type=expiry&locationId=a6e7f8a9-b0c1-2345-0123-456789012345lot-expiration-a6e7f8a9-b0c1-2345-0123-456789012345{“type”:“lot_expiration_item”,“raisedFor”:“2026-09”,“locationId”:“a6e7f8a9-b0c1-2345-0123-456789012345”,“urgentLots”:[{“lot”:“URS079-NP-001”,“status”:“expired”,“expiration”:“2026-09-19”,“productSku”:“NP019N1A”,“locationName”:“TRUNK-36”,“productTitle”:“NovaPatch® PET”,“serialNumber”:null,“daysRemaining”:-9,“quantityReady”:4,“manufacturerName”:“Vantis”}],“locationName”:“TRUNK-36”}

Review item routes into the prefilled expiry return flow — ✅ PASS

Section titled “Review item routes into the prefilled expiry return flow — ✅ PASS”

Assertion: With returns enabled and Vantis the only manufacturer with urgent lots at the trunk, the item route should be /returns/new?manufacturerId=<vantis>&prefillExpiring=1&type=expiry&locationId=<trunk>.

-- route from the checklist item row above
route
/returns/new?manufacturerId=a1b2c3d4-e5f6-7890-abcd-ef1234567890&prefillExpiring=1&type=expiry&locationId=a6e7f8a9-b0c1-2345-0123-456789012345

Counting rep assigned to the review item — ✅ PASS

Section titled “Counting rep assigned to the review item — ✅ PASS”

Assertion: Blair (who closed the count) should carry a user assignment on the review item — via the trunk’s location linkage or the cycle_counter-origin assignment.

SELECT id, assignment_type, assigned_to_user_id, metadata
FROM checklist_assignments
WHERE checklist_item_id = $1
AND assignment_type = 'user'
AND assigned_to_user_id = $2
idassignment_typeassigned_to_user_idmetadata
01a0eb00-e49f-75c2-8575-1c1dfe044e09user17b8c9d0-e1f2-3456-1234-567890123456&#123;&#125;

Inline lot-expiration scan decision recorded — ✅ PASS

Section titled “Inline lot-expiration scan decision recorded — ✅ PASS”

Assertion: Finishing the count should log a decision with action=‘ensure_lot_expiration_checklist’ and performed=true in the run window.

SELECT id, action, payload, created_at
FROM audit_events
WHERE created_at >= $1
AND event_type = 'decision'
AND action = 'ensure_lot_expiration_checklist'
AND payload->>'performed' = 'true'
ORDER BY created_at DESC
idactionpayloadcreated_at
01a0eb00-e4b1-793b-ae8e-eab363367013ensure_lot_expiration_checklist&#123;"reason":"created_1_reopened_0_already_open_1_refreshed_1","performed":true,"entityType":"organization"&#125;2026-09-29T02:31:39.089Z

Expiry return submitted with the lean-flow shape — ✅ PASS

Section titled “Expiry return submitted with the lean-flow shape — ✅ PASS”

Assertion: A URS-079 return with return_type=expiry and status=submitted should exist, with no replacement order, no sales account, and Blair’s trunk as the derived return location.

SELECT id, return_number, status, return_type, sales_account_id,
return_location_id, replacement_order_id, notes, created_at
FROM returns
WHERE sales_organization_id = $1
AND manufacturer_organization_id = $2
AND return_type = 'expiry'
AND notes LIKE '%' || $3 || '%'
AND created_at > NOW() - INTERVAL '2 hours'
ORDER BY created_at DESC
idreturn_numberstatusreturn_typesales_account_idreturn_location_idreplacement_order_idnotescreated_at
01a0eb01-3c07-70b3-b45c-a4cf002bcb7bRET-1submittedexpiryNULLa6e7f8a9-b0c1-2345-0123-456789012345NULLURS-079 validation run — submitted at 2026-09-29T02:31:59.316Z2026-09-29T02:32:01.757Z

Return items fan out the expired lot per unit — ✅ PASS

Section titled “Return items fan out the expired lot per unit — ✅ PASS”

Assertion: The return should carry 4 return_items rows (one per unit) for lot URS079-NP-001, each with the Vantis manufacturer and the trunk location.

SELECT ri.id, ri.lot_number, ri.manufacturer_organization_id, ri.location_id,
ri.expiration
FROM return_items ri
WHERE ri.return_id = $1 AND ri.lot_number = $2
idlot_numbermanufacturer_organization_idlocation_idexpiration
01a0eb01-3c0d-7f84-8e5a-51e8aee6a5dcURS079-NP-001a1b2c3d4-e5f6-7890-abcd-ef1234567890a6e7f8a9-b0c1-2345-0123-4567890123452026-09-19T00:00:00.000Z
01a0eb01-3c0d-7f84-8e5a-51e96fd98dcdURS079-NP-001a1b2c3d4-e5f6-7890-abcd-ef1234567890a6e7f8a9-b0c1-2345-0123-4567890123452026-09-19T00:00:00.000Z
01a0eb01-3c0d-7f84-8e5a-51ea591b09e7URS079-NP-001a1b2c3d4-e5f6-7890-abcd-ef1234567890a6e7f8a9-b0c1-2345-0123-4567890123452026-09-19T00:00:00.000Z
01a0eb01-3c0d-7f84-8e5a-51ebe6262493URS079-NP-001a1b2c3d4-e5f6-7890-abcd-ef1234567890a6e7f8a9-b0c1-2345-0123-4567890123452026-09-19T00:00:00.000Z

Replacement-order skip recorded as an audit decision — ✅ PASS

Section titled “Replacement-order skip recorded as an audit decision — ✅ PASS”

Assertion: Submitting the expiry return should write a decision audit_events row with action=‘create_replacement_order_on_return’, performed=false, reason=‘return_type_not_incident’.

SELECT id, event_type, action, payload, created_at
FROM audit_events
WHERE created_at >= $1
AND event_type = 'decision'
AND action = 'create_replacement_order_on_return'
AND payload->>'performed' = 'false'
AND payload->>'reason' = 'return_type_not_incident'
ORDER BY created_at DESC
idevent_typeactionpayloadcreated_at
01a0eb01-3c42-7d63-a45d-82e0f8e753e9decisioncreate_replacement_order_on_return&#123;"reason":"return_type_not_incident","performed":false,"entityType":"return"&#125;2026-09-29T02:32:01.757Z

Per-declaration outcome of every expectedAuditActions and expectedEmailTemplates entry written into the orchestrator. Missing evidence here is a real test failure, not a soft warning.

Each row asserts that a declared expectedAuditActions entry produced a matching row in audit_events. A ❌ flips overall status to FAIL — the declaration is real proof, not just an annotation.

StepExpected Audit ActionFound
Step 1: Admin requests a cycle count of distributor trunk locationscycle_count_request:create_cycle_count_request✅
Step 1: Admin requests a cycle count of distributor trunk locationsdecision:create_cycle_count_request_item✅
Step 3: Rep finishes the cycle countdecision:ensure_lot_expiration_checklist✅
Step 3: Rep finishes the cycle countdecision:ensure_lot_expiration_cycle_counter_assignment✅
Step 6: Rep submits the expiry returndecision:create_replacement_order_on_return✅

Every row written to audit_events while this test was running (scoped to the demo organizations). Provides compliance evidence that user actions are traced end-to-end (URS-003).

Capture window start: 2026-09-29T02:30:58.189Z

SELECT
ae.created_at,
ae.event_type,
ae.action,
ae.user_id,
u.email AS user_email,
ae.organization_id,
o.name AS organization_name,
ae.object_id,
ae.secondary_object_id,
ae.payload,
ae.route,
ae.trace_id
FROM audit_events ae
LEFT JOIN users u ON u.id = ae.user_id
LEFT JOIN organizations o ON o.id = ae.organization_id
WHERE ae.created_at >= $1
AND ae.organization_id = ANY($2::uuid[])
ORDER BY ae.created_at ASC

35 event(s) captured:

TimeTypeActionUserOrgObject IDPerformedReason
2026-09-29 02:31:05Zuser_loguser:loginalex.admin@vantismedical.comVantis——
2026-09-29 02:31:17Zdecisioncreate_cycle_count_request_itemalex.admin@vantismedical.comCorveta Surgical Group01a0eb00-8d7a-7724-a119-e0ad62eca8bfyesassigned_trunk_owner
2026-09-29 02:31:17Zdecisioncreate_cycle_count_request_itemalex.admin@vantismedical.comCorveta Surgical Group01a0eb00-8d7b-7c18-90f3-7ad6b9dfe347yesassigned_shared_inventory_team
2026-09-29 02:31:17Zdecisionrefresh_unassigned_cycle_counts_review_itemalex.admin@vantismedical.comCorveta Surgical Groupb2c3d4e5-f6a7-8901-bcde-f12345678901nono_unassigned_locations
2026-09-29 02:31:17Zchecklistchecklists.createalex.admin@vantismedical.comCorveta Surgical Group01a0eb00-8d6d-783f-9ff9-3e64feb693d7—
2026-09-29 02:31:17Zdecisionauto_complete_cycle_count_requestalex.admin@vantismedical.comVantis01a0eb00-8d2c-7bea-8c92-1f397965a4d1norequest_has_incomplete_cycle_counts
2026-09-29 02:31:17Zcycle_count_requestcreate_cycle_count_requestalex.admin@vantismedical.comVantis01a0eb00-8d2c-7bea-8c92-1f397965a4d1—
2026-09-29 02:31:17Zdecisioncreate_cycle_count_request_itemalex.admin@vantismedical.comCorveta Surgical Group01a0eb00-8d77-7e33-a348-1667de93b617yesassigned_trunk_owner
2026-09-29 02:31:20Zuser_loguser:loginblair.bennett@corvetasurgical.comCorveta Surgical Group——
2026-09-29 02:31:33Zuser_loguser:loginblair.bennett@corvetasurgical.comCorveta Surgical Group——
2026-09-29 02:31:39Zdecisionensure_lot_expiration_cycle_counter_assignment—Corveta Surgical Groupa6e7f8a9-b0c1-2345-0123-456789012345nocycle_counter_already_among_assignees
2026-09-29 02:31:39Zdecisioninventory.gate_cycle_count_evidence_photosblair.bennett@corvetasurgical.comCorveta Surgical Group01a0eb00-8d56-7baf-8070-224e479c3f17norequirement_not_active
2026-09-29 02:31:39ZdecisioncycleCount.excludeSequesteredReturnUnitsblair.bennett@corvetasurgical.comCorveta Surgical Group01a0eb00-8d56-7baf-8070-224e479c3f17noNo open return movement holds units at the location
2026-09-29 02:31:39Zdecisionrefresh_unassigned_cycle_counts_review_itemblair.bennett@corvetasurgical.comCorveta Surgical Groupb2c3d4e5-f6a7-8901-bcde-f12345678901nono_unassigned_locations
2026-09-29 02:31:39Zchecklistchecklists.createblair.bennett@corvetasurgical.comCorveta Surgical Group01a0eb00-e498-7900-adee-6c59624bd904—
2026-09-29 02:31:39Zdecisionfinish_cycle_countblair.bennett@corvetasurgical.comCorveta Surgical Group01a0eb00-8d56-7baf-8070-224e479c3f17yescount_open
2026-09-29 02:31:39Zdecisionauto_complete_cycle_count_requestblair.bennett@corvetasurgical.comVantis01a0eb00-8d2c-7bea-8c92-1f397965a4d1norequest_has_incomplete_cycle_counts
2026-09-29 02:31:39Zdecisiontickets.checklist_item_resolve.auto_resolve_ticket—Corveta Surgical Group01a0eb00-8d7a-7724-a119-e0ad62eca8bfnoChecklist item is not linked to any ticket.
2026-09-29 02:31:39Zdecisionensure_lot_expiration_checklist—Corveta Surgical Groupb2c3d4e5-f6a7-8901-bcde-f12345678901yescreated_1_reopened_0_already_open_1_refreshed_1
2026-09-29 02:31:39Zdecisionupgrade_lot_expiration_checklist_priority—Corveta Surgical Groupb2c3d4e5-f6a7-8901-bcde-f12345678901nono_open_checklists_below_high
2026-09-29 02:31:39Zdecisionensure_lot_expiration_cycle_counter_assignment—Corveta Surgical Groupb7f8a9b0-c1d2-3456-1234-567890123456nono_latest_cycle_counter
2026-09-29 02:31:39Zuser_logcycle_count:closeblair.bennett@corvetasurgical.comCorveta Surgical Group01a0eb00-8d56-7baf-8070-224e479c3f17—
2026-09-29 02:31:42Zuser_loguser:loginblair.bennett@corvetasurgical.comCorveta Surgical Group——
2026-09-29 02:31:48Zuser_loguser:loginblair.bennett@corvetasurgical.comCorveta Surgical Group——
2026-09-29 02:31:54Zuser_loguser:loginblair.bennett@corvetasurgical.comCorveta Surgical Group——
2026-09-29 02:32:01Zdecisionpartition_return_submissionblair.bennett@corvetasurgical.comVantis01a0eb01-3c07-70b3-b45c-a4cf002bcb7bnono_org_submission_policy
2026-09-29 02:32:01Zdecisioncreate_replacement_order_on_returnblair.bennett@corvetasurgical.comVantis01a0eb01-3c07-70b3-b45c-a4cf002bcb7bnoreturn_type_not_incident
2026-09-29 02:32:01Zdecisionrepresentatives.gate_rep_actionblair.bennett@corvetasurgical.comVantisa1b2c3d4-e5f6-7890-abcd-ef1234567890nono_blocking_relationship
2026-09-29 02:32:01Zdecisionopen_item_movement_on_return_submissionblair.bennett@corvetasurgical.comCorveta Surgical Group01a0eb01-3c07-70b3-b45c-a4cf002bcb7byesreturn_movement_opened
2026-09-29 02:32:01Zdecisionlink_return_to_location_sales_accountblair.bennett@corvetasurgical.comCorveta Surgical Group01a0eb01-3c07-70b3-b45c-a4cf002bcb7bnolocation_not_account_linked
2026-09-29 02:32:01Zdecisiontickets.checklist_item_resolve.auto_resolve_ticket—Corveta Surgical Group01a0eb00-e49c-78af-b5c9-bcc3d727a2c2noChecklist item is not linked to any ticket.
2026-09-29 02:32:01Zreturn_requestcreatedblair.bennett@corvetasurgical.comVantis01a0eb01-3c07-70b3-b45c-a4cf002bcb7b—
2026-09-29 02:32:03Zdecisionreturns.notifications.cc_incident_recipients—Vantis01a0eb01-3c07-70b3-b45c-a4cf002bcb7bnoreturn is not an incident return
2026-09-29 02:32:03Zdecisionextensiv_return_push.skipped—Vantis01a0eb01-3c07-70b3-b45c-a4cf002bcb7bnowms_feature_flag_disabled
2026-09-29 02:32:03Ztransactional_emailreturn_submitted—Corveta Surgical Group01a0eb01-3c07-70b3-b45c-a4cf002bcb7b—

1 notification email(s) were captured during this test run. Each email is rendered as a screenshot for compliance review.

Template: Return_Submitted_-_RET-1

Return Submitted - RET-1