Skip to content

[No QA] Update help docs for Release 1: Automatic report reassignment on workflow changes - #97799

Open
MelvinBot wants to merge 3 commits into
mainfrom
claude-helpDocsReassignApproversRelease1
Open

[No QA] Update help docs for Release 1: Automatic report reassignment on workflow changes#97799
MelvinBot wants to merge 3 commits into
mainfrom
claude-helpDocsReassignApproversRelease1

Conversation

@MelvinBot

Copy link
Copy Markdown
Contributor

Explanation of Change

Help site updates for Release 1: Automatic report reassignment on workflow changes (part of the Change Approver: Phase 2 project). Existing Processing reports are now automatically reassigned to the correct approver whenever a workspace approval workflow changes, with a system message posted to each affected report. The current Add Approvals article only documented the simple "swap an approver in Workflows" case, so admins had no documentation for the other triggers or the exclusions.

This PR:

  • docs/articles/new-expensify/workspaces/Add-Approvals.md — expands the "Edit a Workflow" note and the "What happens to pending reports when I change an approver?" FAQ to cover all four in-scope triggers (change an approver, remove an approver from the workspace → reassigns to the workspace owner, shorten an approval chain, integration/employee-list sync with integration-attributed system message), and adds a new FAQ "Are there cases where reports are not reassigned?" documenting the exclusions (Category/Tag approver precedence, Advanced Approval).
  • docs/articles/new-expensify/workspaces/Managing-Workspace-Members.md — adds a cross-reference under "Remove Workspace Members" noting that removing an approver reassigns their pending reports to the workspace owner, linking to Add Approvals.

Tracking issue: https://github.com/Expensify/Expensify/issues/668283

Fixed Issues

$ https://github.com/Expensify/Expensify/issues/668283
PROPOSAL:

Tests

// TODO: The human co-author must fill out the tests you ran before marking this PR as "ready for review". This is a docs-only change — verify the articles render correctly and the cross-reference link resolves.

  • Verify that no errors appear in the JS console

Offline tests

QA Steps

// TODO: These must be filled out, or the issue title must include "[No QA]."

  • Verify that no errors appear in the JS console

PR Author Checklist

  • I linked the correct issue in the ### Fixed Issues section above
  • I wrote clear testing steps that cover the changes made in this PR
    • I added steps for local testing in the Tests section
    • I added steps for the expected offline behavior in the Offline steps section
    • I added steps for Staging and/or Production testing in the QA steps section
    • I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
    • I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
    • I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).
  • I included screenshots or videos for tests on all platforms
  • I ran the tests on all platforms & verified they passed on:
    • Android: Native
    • Android: mWeb Chrome
    • iOS: Native
    • iOS: mWeb Safari
    • MacOS: Chrome / Safari
  • I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
  • I followed proper code patterns (see Reviewing the code)
    • I verified that comments were added to code that is not self explanatory
    • I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
    • I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
  • If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
  • I followed the guidelines as stated in the Review Guidelines
  • I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
  • If a new CSS style is added I verified that:
    • A similar style doesn't already exist
    • The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))
  • If new assets were added or existing ones were modified, I verified that:
    • The assets are optimized and compressed (for SVG files, run npm run compress-svg)
    • The assets load correctly across all supported platforms.
  • If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
  • If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
  • If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
  • If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
  • If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:
    • I verified that all the inputs inside a form are aligned with each other.
    • I added Design label and/or tagged @Expensify/design so the design team can review the changes.
  • I added unit tests for any new feature or bug fix in this PR to help automatically prevent regressions in this user flow.
  • If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native
Android: mWeb Chrome
iOS: Native
iOS: mWeb Safari
MacOS: Chrome / Safari

…flow changes

Co-authored-by: Garrett Knight <garrettmknight@users.noreply.github.com>
@MelvinBot
MelvinBot requested a review from a team August 4, 2026 15:01
@github-actions github-actions Bot changed the title Update help docs for Release 1: Automatic report reassignment on workflow changes [No QA] Update help docs for Release 1: Automatic report reassignment on workflow changes Aug 4, 2026
@OSBotify

This comment has been minimized.

@garrettmknight
garrettmknight marked this pull request as ready for review August 4, 2026 16:07
@melvin-bot

melvin-bot Bot commented Aug 4, 2026

Copy link
Copy Markdown

Concierge reviewer checklist:

  • I have verified the accuracy of the article
    • The article is within a hub that makes sense, and the navigation is correct
    • All processes, screenshots, and examples align with current product behavior.
    • All links within the doc have been verified for correct destination and functionality.
  • I have verified the readability of the article
    • The article's language is clear, concise, and free of jargon.
    • The grammar, spelling, and punctuation are correct.
    • The article contains at least one image, or that an image is not necessary
  • I have verified the formatting of the article
    • The article has consistent formatting (headings, bullet points, etc.) with other HelpDot articles and that aligns with the HelpDot formatting standards.
    • The article has proper text spacing and breaks for readability.
  • I have verified the article has the appropriate tone and style
    • The article's tone is professional, friendly, and suitable for the target audience.
    • The article's tone, terminology, and voice are consistent throughout.
  • I have verified the overall quality of the article
    • The article is not missing any information, nor does it contain redundant information.
    • The article fully addresses user needs.
  • I have verified that all requested improvements have been addressed

For more detailed instructions on completing this checklist, see How do I review a HelpDot PR as a Concierge Team member?

cc @lschurr

@melvin-bot
melvin-bot Bot requested review from lschurr and removed request for a team August 4, 2026 16:07
@melvin-bot

melvin-bot Bot commented Aug 4, 2026

Copy link
Copy Markdown

@lschurr Please copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button]

@garrettmknight

Copy link
Copy Markdown
Contributor

@stephanieelliott I think this is ready to go. Some small updates to outline the automatic reassignement with workflow changes.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 7d91293e5c

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Yes. Reports are not automatically reassigned in these cases:

- **The current approver is a Category or Tag approver:** reports awaiting a Category or Tag approver are not reassigned. Those approval steps run before, and take precedence over, the workspace approval workflow.
- **The workspace uses Advanced Approval:** automatic reassignment does not run for workspaces using Advanced Approval.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Clarify the Advanced Approval exception

For Control workspaces, adding downstream approvers or custom member workflows is the Advanced Approvals feature, so this new exception conflicts with the immediately preceding trigger that says shortening an approval chain reassigns in-flight reports. In the Alice → Bob → Claire scenario above, admins are now told both that the report returns to Bob and that automatic reassignment does not run for the workspace type required to have that chain. Please narrow this exception to the specific unsupported/legacy mode, or remove it if multi-approver workflows are in scope.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

" automatic reassignment does not run for workspaces using Advanced Approval."

Is this true, @garrettmknight? One of the above examples references an advanced approval chain, so we should probably update either the example, or the wording here.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's more nuanced than that. It works for most Advanced Approval changes. I think I'll add more detail here.


**Note:** Workspace admins and People admins can remove members. People admins can only remove **Members** and **Auditors** — they cannot remove admins or other scoped admin roles.

**Note:** If you remove a member who is an approver on reports that are still pending approval, those reports are automatically reassigned to the workspace owner. Learn more about [automatic approver reassignment](/articles/new-expensify/workspaces/Add-Approvals).

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Qualify member-removal reassignment note

This note makes member-removal reassignment unconditional, but the linked Add Approvals update documents cases where reports are intentionally not reassigned, such as when the current approver is a Category or Tag approver. If an admin removes one of those approvers from the workspace, this page tells them the pending reports will move to the workspace owner even though the detailed FAQ says they will not, so the note should scope this to workspace workflow approvers and mention that exceptions are listed in the linked article.

Useful? React with 👍 / 👎.

Comment thread docs/articles/new-expensify/workspaces/Add-Approvals.md Outdated
@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

HelpDot Documentation Review

Overall Assessment

This PR expands documentation for automatic report reassignment on workflow changes across two workspace articles. The changes add a clarified note and an expanded FAQ answer in Add-Approvals.md, a new FAQ ("Are there cases where reports are not reassigned?"), and a cross-reference note in Managing-Workspace-Members.md. The additions are accurate, well-scoped, and stay within the single-workflow intent of each article. Feedback below is based solely on the added/modified lines in the diff.

Scores Summary

  • Readability: 8/10 - Clear, well-structured prose. Bulleted triggers/exclusions are scannable and the Alice -> Bob -> Claire example aids comprehension. A couple of long, multi-clause sentences (the expanded note and the first FAQ paragraph) could be tightened.
  • AI Readiness: 8/10 - New FAQ headings are proper question-based headings and are exempt under the FAQ rule. Full feature names (Advanced Approval, Category/Tag approver, HR integrations) are used, aiding semantic retrieval. Not penalizing frontmatter/heading hierarchy since those are pre-existing and outside the diff.
  • Style Compliance: 7/10 - UI terms and bold button names (**Save**) are correct, and the cross-link is a relative link with descriptive anchor text per Cross-Linking Standards. Main issue: inconsistent casing of the Workspace/workspace owner terminology within the added lines (mixes lowercase workspace owner with the capitalized Workspace convention used elsewhere).

Key Findings

  • Positive: The expanded FAQ comprehensively documents all four in-scope triggers plus exclusions, filling a real documentation gap. Bulleted structure with bold lead-ins is highly scannable and AI-retrieval friendly.
  • Positive: Cross-link in Managing-Workspace-Members.md uses a relative path and descriptive anchor (automatic approver reassignment), complying with Cross-Linking and Anchor Text rules.
  • Minor: Terminology casing - workspace owner/workspace appear lowercase in the additions while the governance convention treats Workspace as a proper term. Align casing for consistency.
  • Minor: A few dense sentences (the expanded "Edit a Workflow" note; the first sentence of the reassignment FAQ) pack several conditions into one line; consider splitting for readability.

Recommendations

  • Standardize Workspace/workspace owner casing in the added lines to match the terminology convention.
  • Tighten the two longest added sentences into shorter statements or a lead-in plus list.
  • Optional: point the cross-reference link to the specific FAQ section rather than the article root so readers land directly on the reassignment details.

Files Reviewed

  • docs/articles/new-expensify/workspaces/Add-Approvals.md - Strong content additions; minor casing/sentence-length polish.
  • docs/articles/new-expensify/workspaces/Managing-Workspace-Members.md - Clean, compliant cross-reference note; minor casing.

Note: Detailed line-by-line feedback has been provided as inline comments.

Comment thread docs/articles/new-expensify/workspaces/Managing-Workspace-Members.md Outdated
Comment thread docs/articles/new-expensify/workspaces/Add-Approvals.md Outdated
Yes. Reports are not automatically reassigned in these cases:

- **The current approver is a Category or Tag approver:** reports awaiting a Category or Tag approver are not reassigned. Those approval steps run before, and take precedence over, the workspace approval workflow.
- **The workspace uses Advanced Approval:** automatic reassignment does not run for workspaces using Advanced Approval.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

" automatic reassignment does not run for workspaces using Advanced Approval."

Is this true, @garrettmknight? One of the above examples references an advanced approval chain, so we should probably update either the example, or the wording here.

Comment thread docs/articles/new-expensify/workspaces/Add-Approvals.md Outdated
@stephanieelliott stephanieelliott added the HelpDot Apply this label if the issue relates to ExpensifyHelp label Aug 4, 2026
Co-authored-by: Stephanie Elliott <31225194+stephanieelliott@users.noreply.github.com>
@OSBotify

This comment has been minimized.

@MelvinBot

Copy link
Copy Markdown
Contributor Author

No code fix is needed — every CI check on this PR now passes. The only remaining ❌ is Check independent approval, which is a process gate, not a code/CI failure and can't be resolved by pushing to the branch.

Why it's failing: this check requires an approval from an independent reviewer (someone who isn't the PR author). The PR was opened by MelvinBot and hasn't received a qualifying human approval yet, so the gate stays red until an eligible reviewer approves. It's on MelvinBot's ignore list of non-actionable checks for exactly this reason.

What to do: have an independent reviewer approve the PR (it's a [No QA] docs-only change to two help articles) and the check will clear.

Current check status

All substantive checks are green: build (Deploy ExpensifyHelp — Jekyll build + Cloudflare deploy), check, dryRun, spellcheck, validate, verify, validateSchemas, validateImmutableActionRefs, verifySignedCommits, actionlint, and CLA all pass. Only Check independent approval is red.

Clarified the conditions under which reports are not automatically reassigned in the approval workflow.
@garrettmknight

Copy link
Copy Markdown
Contributor

@stephanieelliott accepted changes and update the 'no reroute in advanced' to make it more specific.

@OSBotify

OSBotify commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

A preview of your ExpensifyHelp changes have been deployed to https://521b24fe.helpdot.pages.dev ⚡️

Updated articles:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

HelpDot Apply this label if the issue relates to ExpensifyHelp

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants