SKILL: lead Is Open only rewrites on a real stage change
SKILL: HubSpot lead "Is Open" only rewrites on a real stage change. SYMPTOM A lead sits in a closed stage with hs_lead_is_open_v2 still true (category NEW). It entered the stage while the stage was open; the stage was later flipped to closed. Downstream rollups and contact flags stay inflated. WHAT FAILS - PATCH hs_lead_is_open_v2 (or hs_lead_is_open) → 400 READ_ONLY_VALUE / calculated. - Re-PATCH the same hs_pipeline_stage (alone or with hs_pipeline) → 200 no-op; lastmodifieddate does not move; the flag stays true. - PATCH any hs_v2_date_entered_* / cumulative / exited → 400 READ_ONLY_VALUE. WHAT WORKS A real stage change. Bounce through another closed stage and back. The flag flips to false; category becomes QUALIFIED. Owner, reason, name, and custom keep-fields survive if you don't touch them. COSTS hs_v2_date_entered_current_stage (and the intermediate stage's date props) reset to bounce time. You cannot write the old dates back. If reports need the original entry date, copy it into a writable custom property before the bounce. CONTACT SIDE A workflow that enrolls on "associated lead Is Open IS_KNOWN" will not re-run when the flag goes false — false is still known. Fix the enrollment to stage/list logic, or write the contact flag directly if it's a custom property. Dry-run the bounce on one lead. Verify keep-fields, associations (tasks/emails/notes), and that no enrollment fires. Then batch.