Skip to content

[No QA] Docs updates for E/A#93317 document Invoice fields on workspace Invoices page - #100753

Merged
stephanieelliott merged 1 commit into
mainfrom
claude-docsInvoiceFields
Sep 16, 2026
Merged

stephanieelliott merged 1 commit into
mainfrom
claude-docsInvoiceFields

Conversation

@MelvinBot

Copy link
Copy Markdown
Contributor

Explanation of Change

Documents the Invoice fields feature shipped in #93317, which added an Invoice fields section to Workspaces > [Workspace Name] > Invoices and split invoice-level fields out from report fields.

Nothing on the help site covered invoice fields, and the existing Report Fields article implied report fields cover every report type — which is no longer true, since #93317 filters invoice-target fields out of the Reports page and report-target fields off invoices.

Changes:

  • New: docs/articles/new-expensify/workspaces/Enable-Invoice-Fields.md — who can use Invoice fields, how to enable the toggle (including the Control-plan upgrade prompt), how to add, edit, and delete a field, what happens after enabling, and an FAQ.
  • Updated: docs/articles/new-expensify/workspaces/Enable-Report-Fields.md — states that Report Fields apply to expense reports and don't appear on invoices, links to the new article, and corrects the field-creation steps to the current UI labels (Add field, Type, List values, Add value) plus the Formula type, which the type selector offers but the article never listed.
  • Updated: docs/articles/new-expensify/reports-and-expenses/Send-an-Invoice.md — one FAQ entry pointing invoice senders at the new article.

Every feature name, section header, toggle, field label, type option, and button label was verified against the running app rather than taken from the diff:

Element Verified label
More features toggle (under Earn) Invoices
Workspace menu item / page title Invoices
Section header on the Invoices page Invoice fields
Section subtitle "Invoice fields can be helpful when you'd like to include extra information."
Upgrade prompt title / buttons Invoice fields, Upgrade, Got it, thanks
Add-field button and page title Add field
Field rows Name, Type, Initial value, List values
Type options Text, Date, List, Formula
List value button Add value
Save / delete actions Save, Delete

Written against docs/HELPSITE_NAMING_CONVENTIONS.md, docs/HELP_AUTHORING_GUIDELINES.md, and docs/TEMPLATE.md: the new article has exactly one # heading plus # FAQ, every ## heading is task-based, it carries internalScope metadata, it covers a single workflow, cross-links are relative and sit outside numbered steps, and the one screenshot suggestion uses the non-rendered <!-- SCREENSHOT: --> format.

Two notes for the reviewer:

  1. The existing Report Fields article predates the current authoring guidelines and uses multiple # headings and Title Case feature names. I deliberately kept the change minimal there — only the invoices relationship and the UI-label corrections — rather than restructuring an article this PR didn't cause to be wrong. Say the word if you'd rather it be brought fully into compliance here.
  2. docs/articles/new-expensify/workspaces/Duplicate-Workspace.md and Copy-Workspace-Settings.md needed no change: invoice fields ride along with the existing Invoices selection rather than becoming a new selectable item, and Copy Workspace Settings already covers the Control-plan upgrade prompt generically. The new article's FAQ documents that carry-over behavior.

Fixed Issues

$ #72584
PROPOSAL:

Tests

// TODO: The human co-author must fill out the tests you ran before marking this PR as "ready for review"
// Please describe what tests you performed that validates your changed worked.

  • Verify that no errors appear in the JS console

Offline tests

QA Steps

// TODO: The human co-author must fill out the QA tests you ran before marking this PR as "ready for review".
// Please describe what QA needs to do to validate your changes and what areas do they need to test for regressions.

  • 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

@ShridharGoel, please review the files changed and confirm they reflect the current behavior. Then post a new comment saying @MelvinBot mark this PR as ready for review.

Co-authored-by: Shridhar Goel <ShridharGoel@users.noreply.github.com>
@MelvinBot
MelvinBot requested a review from a team September 9, 2026 20:01
@MelvinBot MelvinBot added the HelpDot Apply this label if the issue relates to ExpensifyHelp label Sep 9, 2026
@MelvinBot MelvinBot mentioned this pull request Sep 9, 2026
52 of 54 tasks
@ShridharGoel

Copy link
Copy Markdown
Contributor

@MelvinBot mark this PR as ready for review

@MelvinBot
MelvinBot marked this pull request as ready for review September 10, 2026 06:46
@melvin-bot

melvin-bot Bot commented Sep 10, 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 rojiphil September 10, 2026 06:46
@melvin-bot

melvin-bot Bot commented Sep 10, 2026

Copy link
Copy Markdown

@rojiphil @lschurr One of you needs to 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]

@melvin-bot
melvin-bot Bot removed the request for review from a team September 10, 2026 06:46
@MelvinBot

MelvinBot commented Sep 10, 2026 •

Copy link
Copy Markdown
Contributor Author

Done — this PR is now Ready for review. PullerBear assigned stephanieelliott as reviewer.

One thing to fix before review starts: the Tests and QA Steps sections still contain the // TODO: **The human co-author** must fill out... placeholders. I can't fill those in on your behalf, so please replace them (for a docs-only change, "N/A — help site markdown only, no app behavior changed" is fine) and tick the matching PR Author Checklist boxes.

Check status at the time of marking ready

All checks pass except Check independent approval, which is expected on a draft-to-ready transition and resolves once a reviewer approves.

Check Result
CLA ✅ pass
spellcheck ✅ pass
validate ✅ pass
verify ✅ pass
verifySignedCommits ✅ pass
Check independent approval ❌ fail (awaiting reviewer approval)

Files changed — all help site markdown, no app code:

  • docs/articles/new-expensify/workspaces/Enable-Invoice-Fields.md (new)
  • docs/articles/new-expensify/workspaces/Enable-Report-Fields.md
  • docs/articles/new-expensify/reports-and-expenses/Send-an-Invoice.md

view run · view recording


1. Go to **Workspaces > [Workspace Name] > Invoices**.
2. Under **Invoice fields**, click **Add field**.
3. Click **Name** and enter a name for the field.

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.

Navigation phrasing violation (HELPSITE_NAMING_CONVENTIONS.md, Navigation Instruction Standards): The unified web/mobile sentence must not be paraphrased. Use the exact form In the navigation tabs (on the left on web, on the bottom on mobile), click **Workspaces**. — remove "and" and change "at the bottom" to "on the bottom".

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.

this is consistent with the rest of the article, so let's leave it for now.

@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: 8cdfed0de0

ℹ️ 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".


1. Go to **Workspaces > [Workspace Name] > Invoices**.
2. Under **Invoice fields**, click the field you want to change.
3. Update the **Name**, **Type**, **Initial value**, or **List values**, or click **Delete** to remove the field.

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 Remove unsupported field name and type edits

For an existing invoice field, FieldsSettingsPage.tsx renders both Name and Type with interactive={false}, so neither property can be updated from this screen. Users following this section will only see read-only values; document the editable initial/list values and tell users to delete and recreate a field when its name or type must change.

Useful? React with 👍 / 👎.


- Invoice fields appear on the invoices sent from the workspace, where you can set each field's value.
- Invoice fields and report fields are kept separate. Report fields don't appear on invoices, and invoice fields don't appear on expense reports.
- Turning off the **Invoice fields** toggle disables invoice fields on invoices.

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 Warn that disabling fields deletes configurations

Turning this toggle off is destructive rather than merely hiding the fields: WorkspaceInvoiceFieldsSection.tsx deliberately uses the confirmation stating that text and date fields are deleted while lists are disabled. Without that distinction, an admin may expect all configured fields to return after re-enabling the feature; describe the deletion/disable behavior explicitly.

Useful? React with 👍 / 👎.

@github-actions

Copy link
Copy Markdown
Contributor

HelpDot Documentation Review

Overall Assessment

This PR documents the new Invoice fields feature (#93317). It adds a well-structured new article (Enable-Invoice-Fields.md), corrects the field-creation steps and adds a cross-link in Enable-Report-Fields.md, and adds one FAQ entry to Send-an-Invoice.md. The proposed changes are high quality and closely follow the governance files. Scoring below is based only on the added/modified lines.

Scores Summary

  • Readability: 9/10 - Clear, scannable, action-oriented steps with sentence-case labels and concise explanatory paragraphs. Field-type choices are formatted consistently as short bulleted definitions.
  • AI Readiness: 9/10 - New article has exactly one top-level heading plus the FAQ heading, all subsection headings are task-based (Who can, How to, What happens), complete YAML including internalScope, full feature names throughout, and realistic keywords. No deeper headings introduced by the diff.
  • Style Compliance: 9/10 - UI labels verified against the app and rendered in bold sentence case (Add field, Type, List values, Add value, Formula); toggles, sections, and buttons match the naming conventions; cross-links are relative, descriptive, and placed outside numbered steps; FAQ entries use question-form headings.

Key Findings

  • Strong adherence to HELP_AUTHORING_GUIDELINES and HELPSITE_NAMING_CONVENTIONS: single-workflow scope, task-based headings, correct internalScope, and a non-rendered SCREENSHOT comment block with a specific purpose.
  • The Report Fields corrections (Title Case to sentence case, plus the previously-undocumented Formula type) fix real UI mismatches and are appropriately minimal.
  • Minor: the navigation sentence uses "and at the bottom on mobile", whereas the convention unified phrasing is "(on the left on web, on the bottom on mobile)". Consider aligning the wording.
  • Minor: the new article uses horizontal rules between sections; consistent and acceptable, but not required.
  • The author intentionally left the older Report Fields article pre-existing structure and Title Case feature names untouched. Reasonable to keep the change minimal; those are pre-existing (non-diff) issues.

Recommendations

  • Align the mobile navigation phrasing in step 1 with the unified navigation standard.
  • No blocking issues. The changes are merge-ready from a documentation-quality standpoint pending SME confirmation of the labels.

Files Reviewed

  • docs/articles/new-expensify/workspaces/Enable-Invoice-Fields.md (new) - Fully compliant; strong structure, metadata, and cross-linking.
  • docs/articles/new-expensify/workspaces/Enable-Report-Fields.md (updated) - Accurate UI-label corrections and a relevant cross-link; diff introduces no new violations.
  • docs/articles/new-expensify/reports-and-expenses/Send-an-Invoice.md (updated) - One FAQ entry with a question heading and a relative cross-link; compliant.

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

@lschurr

lschurr commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

It looks like we need the PR auth list to be checked off and I don't see a preview of this on the site. Not totally sure if I can review yet? cc @stephanieelliott

@stephanieelliott
stephanieelliott merged commit 6724ab5 into main Sep 16, 2026
20 of 24 checks passed
@stephanieelliott
stephanieelliott deleted the claude-docsInvoiceFields branch September 16, 2026 21:34
@stephanieelliott

Copy link
Copy Markdown
Contributor

OhI I was able to get it, thanks @lschurr!

@MelvinBot

Copy link
Copy Markdown
Contributor Author

🤖 No failing checks on this PR — nothing to fix.

Every completed check is success or skipped, and the PR merged at 2026-09-16 21:34 UTC as 6724ab5. The post-merge Deploy ExpensifyHelp run also passed, so all three docs files are live.

I did not push anything, since there is no failure to fix.

What I checked

PR check rollup — 20 entries, zero failures:

Result Checks
success validate (×3), check, checklist (×3), review, spellcheck, verify, verifySignedCommits, Check independent approval, Onyx.connectWithoutView reviewers, CLA / CLA
skipped actionlint, validateSchemas, validateImmutableActionRefs, approveAndMerge, plus superseded duplicates of review / validate / Onyx.connectWithoutView

Merge commit checks — also clean. No failure, error, timed_out, or cancelled conclusion on 6724ab5.

Files deployed:

One possible source of the report: the only non-green run in this branch's whole history is a Deploy ExpensifyHelp run from Sep 9 with conclusion cancelled. That is the normal outcome when a newer push supersedes an in-flight docs deploy — it never appeared in this PR's check rollup, and the deploy that matters ran again on merge and passed.


If you were looking at a different check or a different PR, reply with @MelvinBot and the check name and I'll dig in.


view run

@OSBotify

Copy link
Copy Markdown
Contributor

🚀 Deployed to staging by https://github.com/stephanieelliott in version: 9.4.82-0 🚀

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

@kavimuru

Copy link
Copy Markdown

@stephanieelliott do we have to test anything here?

@stephanieelliott stephanieelliott changed the title Docs updates for E/A#93317 document Invoice fields on workspace Invoices page [No QA] Docs updates for E/A#93317 document Invoice fields on workspace Invoices page Sep 18, 2026
@stephanieelliott

Copy link
Copy Markdown
Contributor

Oop, no @kavimuru -- no QA here!

@OSBotify

Copy link
Copy Markdown
Contributor

🚀 Deployed to staging by https://github.com/stephanieelliott in version: 9.4.86-0 🚀

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

@OSBotify

Copy link
Copy Markdown
Contributor

🚀 Deployed to staging by https://github.com/stephanieelliott in version: 9.4.89-0 🚀

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

@OSBotify

Copy link
Copy Markdown
Contributor

🚀 Deployed to production by https://github.com/luacmartins in version: 9.4.89-0 🚀

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

Bundle Size Analysis (Sentry):

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.

6 participants