Skip to content

[No QA] Update Workspace-Rules.md for merchant rules #81914

Merged
JmillsExpensify merged 14 commits intomainfrom
helpsite-merchant-rules
Feb 11, 2026
Merged

[No QA] Update Workspace-Rules.md for merchant rules #81914
JmillsExpensify merged 14 commits intomainfrom
helpsite-merchant-rules

Conversation

@stephanieelliott
Copy link
Contributor

@stephanieelliott stephanieelliott commented Feb 10, 2026

Product change issue: https://github.com/Expensify/Expensify/issues/589496
Resource Management issue: https://github.com/Expensify/Expensify/issues/590694
Design image request: https://github.com/Expensify/Expensify/issues/new

I will add the images separately, no need to block the PR on that

Just noting this includes changes made in another in-progress PR, which is just held on an updated image and will be merged shortly: #81772

@stephanieelliott stephanieelliott self-assigned this Feb 10, 2026
@github-actions github-actions bot changed the title Update Workspace-Rules.md for merchant rules [No QA] Update Workspace-Rules.md for merchant rules Feb 10, 2026
stephanieelliott and others added 2 commits February 9, 2026 14:37
…ensify. Added sections on learned suggestions and Workspace Merchant Rules to clarify their roles and benefits for users and admins.
@stephanieelliott stephanieelliott marked this pull request as ready for review February 10, 2026 01:00
@github-actions
Copy link
Contributor

HelpDot Documentation Review

Overall Assessment

This PR introduces Workspace Merchant Rules, a new feature for automating expense coding based on merchant names at the workspace level. The documentation includes a new comprehensive article and updates to 4 existing articles to distinguish between personal rules, learned automation, and workspace-level merchant rules. The changes are well-structured and provide clear guidance for this new feature.

Scores Summary

  • Readability: 9/10 - Clear, well-organized content with consistent structure and logical flow. Minor opportunities for simplification in a few areas.
  • AI Readiness: 8/10 - Strong metadata, descriptive headings, and clear context. Could benefit from slightly more explicit feature differentiation in some sections.
  • Style Compliance: 9/10 - Excellent adherence to Expensify voice, proper terminology usage, and consistent formatting throughout.

Key Findings

Strengths:

  • Clear distinction between personal expense rules (Expensify Classic) and Workspace Merchant Rules (New Expensify)
  • Comprehensive new article with proper YAML metadata and internalScope
  • Consistent heading hierarchy (# and ## only) across all files
  • Helpful cross-references between related features
  • Good use of bold formatting for emphasis on key terms
  • Well-structured FAQ sections addressing common questions

Areas for Improvement:

  • Minor inconsistency: "How to" appears in some headings in Workspace-Rules.md but not in the new Workspace-Merchant-Rules.md file
  • The note in Expense-Rules.md could be positioned before the introduction paragraph for better visibility
  • Some sentences could be simplified for even better readability (detailed in inline comments)
  • The new file lacks a "When" or "How" prefix for the "Set Up Workspace Merchant Rules" section

Critical Items:

  • None - all content is accurate and functional

Recommendations

  1. Consistency: Consider adding "How to" prefix to the "Set Up Workspace Merchant Rules" heading to match the style in Workspace-Rules.md
  2. Visibility: Move the important note about personal vs workspace rules higher in Expense-Rules.md (before the introduction paragraph)
  3. Simplification: Review sentences with multiple clauses for potential simplification (specific examples provided in inline comments if added)
  4. Cross-linking: Excellent job with cross-references - maintain this pattern in future updates

Files Reviewed

  • docs/articles/expensify-classic/expenses/Expense-Rules.md - Good addition of distinguishing note
  • docs/articles/new-expensify/workspaces/Create-expense-categories.md - Clear distinction between learned categorization and merchant rules
  • docs/articles/new-expensify/workspaces/Create-expense-tags.md - Consistent with categories article
  • docs/articles/new-expensify/workspaces/Workspace-Merchant-Rules.md - Comprehensive new article with strong structure
  • docs/articles/new-expensify/workspaces/Workspace-Rules.md - Extensive updates with good organization and new FAQ entries

Overall Score: 8.7/10

This documentation effectively introduces a significant new feature with clarity and proper context. The updates maintain consistency across related articles and provide users with the information needed to understand and use Workspace Merchant Rules effectively.

… details on Workspace Merchant Rules, including their impact on categorization, tags, and expense statuses. Enhanced clarity on reimbursable and billable settings for cash expenses.
…d common use cases. Clarified rule application process and troubleshooting tips for users. Improved consistency in language and formatting throughout the document.
@stephanieelliott stephanieelliott changed the title [No QA] Update Workspace-Rules.md for merchant rules [No QA] [HOLD on request image] Update Workspace-Rules.md for merchant rules Feb 10, 2026
@stephanieelliott stephanieelliott changed the title [No QA] [HOLD on request image] Update Workspace-Rules.md for merchant rules [No QA] Update Workspace-Rules.md for merchant rules Feb 10, 2026
@JmillsExpensify
Copy link
Contributor

JmillsExpensify commented Feb 11, 2026

For the workspace merchant rules page, let's be sure to add another bullet for changing the billable status of expenses.

CleanShot 2026-02-11 at 21 27 24@2x

@stephanieelliott
Copy link
Contributor Author

stephanieelliott commented Feb 11, 2026

@JmillsExpensify is that coming in a future release? I don't see the billable flag when I test this on staging:

image

@stephanieelliott
Copy link
Contributor Author

Assuming billable is coming soon, I added it to the list! You should be able to merge if all looks good.

@JmillsExpensify
Copy link
Contributor

This is what we currently support.
CleanShot 2026-02-11 at 21 35 52@2x

@JmillsExpensify
Copy link
Contributor

You have to enable tax and billable in the workspace for them to appear; they aren't enabled by default.

@stephanieelliott
Copy link
Contributor Author

Ok cool, as long as we know it's there! Updated the file to add billable to the list. Feel free to merge if all looks good.

7. Select the fields you want the rule to update:
- **Merchant** to update the merchant name.
- **Category** to update the expense category.
- **Tag** to update the expense tag.
Copy link
Contributor

Choose a reason for hiding this comment

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

Don't forget tax

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Oop! got it

@stephanieelliott
Copy link
Contributor Author

Reviewer Checklist

  • I have verified the author checklist is complete (all boxes are checked off).
  • I verified the correct issue is linked in the ### Fixed Issues section above
  • I verified testing steps are clear and they cover the changes made in this PR
    • I verified the steps for local testing are in the Tests section
    • I verified the steps for Staging and/or Production testing are in the QA steps section
    • I verified the steps cover any possible 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 checked that screenshots or videos are included for tests on all platforms
  • I included screenshots or videos for tests on all platforms
  • I verified that the composer does not automatically focus or open the keyboard on mobile unless explicitly intended. This includes checking that returning the app from the background does not unexpectedly open the keyboard.
  • I verified tests pass on all platforms & I tested again on:
    • Android: HybridApp
    • Android: mWeb Chrome
    • iOS: HybridApp
    • iOS: mWeb Safari
    • MacOS: Chrome / Safari
  • If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
  • I verified there are no new alerts related to the canBeMissing param for useOnyx
  • I verified proper code patterns were followed (see Reviewing the code)
    • I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
    • 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 shown in the product is localized by adding it to src/languages/* files and using the translation method
    • I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
    • 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)
    • I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
    • I verified the JSDocs style guidelines (in STYLE.md) were followed
  • If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
  • I verified that this PR follows the guidelines as stated in the Review Guidelines
  • I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
  • I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
  • I verified any variables that can be defined as constants (ie. in CONST.ts or at the top of the file that uses the constant) are defined as such
  • If a new component is created I verified that:
    • A similar component doesn't exist in the codebase
    • All props are defined accurately and each prop has a /** comment above it */
    • The file is named correctly
    • The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
    • The only data being stored in the state is data necessary for rendering and nothing else
    • For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
    • Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
    • All JSX used for rendering exists in the render method
    • The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions
  • If any new file was added I verified that:
    • The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory
  • 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 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.
  • If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
  • For any bug fix or new feature in this PR, I verified that sufficient unit tests are included to prevent regressions in this 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.
  • I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

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

@stephanieelliott
Copy link
Contributor Author

Ok @JmillsExpensify should be set now - Billable and Tax included:

image

Copy link
Contributor

@JmillsExpensify JmillsExpensify left a comment

Choose a reason for hiding this comment

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

All looks good! Thanks

@JmillsExpensify JmillsExpensify merged commit 19f5c79 into main Feb 11, 2026
14 checks passed
@JmillsExpensify JmillsExpensify deleted the helpsite-merchant-rules branch February 11, 2026 21:27
@JmillsExpensify
Copy link
Contributor

All checks passed.

@OSBotify
Copy link
Contributor

🚀 Deployed to staging by https://github.com/JmillsExpensify in version: 9.3.18-0 🚀

platform result
🕸 web 🕸 success ✅
🤖 android 🤖 success ✅
🍎 iOS 🍎 success ✅

@OSBotify
Copy link
Contributor

🚀 Deployed to production by https://github.com/lakchote in version: 9.3.18-8 🚀

platform result
🕸 web 🕸 success ✅
🤖 android 🤖 success ✅
🍎 iOS 🍎 success ✅

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants