Skip to content

[No QA] Docs: fix broken links, filenames, duplicate text, and expand SEO keywords - #84470

Merged
brianlee-expensify merged 9 commits into
mainfrom
claude-docsArticlesImprovements
Mar 10, 2026
Merged

[No QA] Docs: fix broken links, filenames, duplicate text, and expand SEO keywords#84470
brianlee-expensify merged 9 commits into
mainfrom
claude-docsArticlesImprovements

Conversation

@MelvinBot

Copy link
Copy Markdown
Contributor

Explanation of Change

This PR addresses items 5–21 from the documentation audit in Expensify/Expensify#606974 (excluding items 1–4 under "Copy-paste errors in Global Reimbursement docs" which were already fixed separately). Changes fall into four categories:

Broken filenames (items 5–6):

  • Renamed Export- Expenses-from-the-Expenses-Page.mdExport-Expenses-from-the-Expenses-Page.md (extra space produced a broken URL slug)
  • Item 5 (title: Personal-Expense-Rules.md) was already fixed on main

Broken internal links (items 7–17):

  • Fixed 10+ broken cross-article links across Classic and New Expensify docs, including:
    • Incorrect paths to Contact-Methods (was Change-or-add-email-address)
    • Incorrect path to Enable-Global-Reimbursement (was Global-Reimbursements)
    • Incorrect path to Automatically-submit-employee-reports (was Scheduled-Submit)
    • Incorrect Merge-Accounts casing (Merge-accountsMerge-Accounts)
    • Broken anchor #submission-frequency#how-to-set-a-submission-frequency

Duplicated text and stray artifacts (items 18–21):

  • Removed 3 instances of duplicated navigation phrase in Copilot-Access.md
  • Removed stray image-path artifact line in How-to-Set-Up-Automatic-Report-Submissions.md
  • Removed duplicate "Indirect Reimbursement" bullet in Configure-Reimbursement-Settings.md
  • Fixed duplicate SGD entry (replaced with CAD) and duplicate ACH bullet in Reimbursement-Payment-Methods.md

SEO keyword expansion (High Priority items from analysis):

  • Expanded frontmatter keywords for Copilot, Per Diem, Merge, Contact Methods, and Auto Submit articles (both Classic and New Expensify) to improve help-site search discoverability
  • Added missing keywords field to Contact-Methods.md (was completely absent)
  • Fixed Classic Copilot article title from generic "Understanding the Copilot Function" to actionable "Assign or Remove a Copilot"
  • Removed legacy <div> wrapper from NE Delegate-when-out-of-office.md

Fixed Issues

$ https://github.com/Expensify/Expensify/issues/606974

Tests

  • Verify that no errors appear in the JS console
  • All changes are documentation-only (markdown frontmatter and content) — no application code is affected
  • Verified all updated internal links resolve to existing article filenames

Offline tests

N/A — documentation-only changes, no runtime behavior affected.

QA Steps

  • Verify that no errors appear in the JS console
  • Confirm the help site builds successfully with these changes
  • Spot-check a few updated links (e.g., Contact-Methods, Enable-Global-Reimbursement) to verify they resolve correctly on the help site

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 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
      • If any non-english text was added/modified, I used JaimeGPT to get English > Spanish translation. I then posted it in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:
    • 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 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)
  • 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
  • I verified that if a function's arguments changed that all usages have also been updated correctly
  • 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 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.
  • 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.
  • 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

N/A — documentation-only changes

Android: mWeb Chrome

N/A — documentation-only changes

iOS: Native

N/A — documentation-only changes

iOS: mWeb Safari

N/A — documentation-only changes

MacOS: Chrome / Safari

N/A — documentation-only changes

…words

Fixes broken internal links across 10+ articles (incorrect paths to
Contact-Methods, Enable-Global-Reimbursement, Automatically-submit-employee-reports),
removes a filename with an extra space, cleans up duplicated navigation phrases
and stray artifact text, and expands frontmatter keywords for Copilot, Per Diem,
Merge, Contact Methods, and Auto Submit articles to improve help-site search
discoverability.

Co-authored-by: Stephanie Elliott <stephanieelliott@users.noreply.github.com>
@MelvinBot
MelvinBot requested a review from a team March 6, 2026 23:53
@stephanieelliott
stephanieelliott marked this pull request as ready for review March 7, 2026 00:07
@stephanieelliott
stephanieelliott self-requested a review as a code owner March 7, 2026 00:07
@melvin-bot

melvin-bot Bot commented Mar 7, 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 @brianlee-expensify

@melvin-bot
melvin-bot Bot requested a review from brianlee-expensify March 7, 2026 00:07
@melvin-bot

melvin-bot Bot commented Mar 7, 2026

Copy link
Copy Markdown

@brianlee-expensify 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]

@melvin-bot
melvin-bot Bot removed the request for review from a team March 7, 2026 00:07
Comment thread docs/articles/expensify-classic/workspaces/Configure-Reimbursement-Settings.md Outdated
title: Managing Contact Methods in Expensify
description: Learn how to update or add an Email address and manage devices tied to your Expensify account.
description: Learn how to add email addresses or phone numbers as contact methods, change your primary login, and manage devices tied to your Expensify account.
keywords: [Expensify Classic, contact method, secondary login, add email, change email, primary email, additional email, phone number, login methods, multiple logins, change primary email]

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.

AI Readiness violation (missing metadata): This file is adding keywords but is still missing the required internalScope field. Every article should include an internalScope entry in its YAML frontmatter to define audience and scope boundaries. Consider adding:

internalScope: Audience is all members. Covers how to add, change, and remove contact methods (email and phone) in Expensify Classic. Does not cover domain-level email enforcement or SSO configuration.

title: Delegate When Out of Office
description: Assign a vacation delegate to act on your behalf or on behalf of another employee
keywords: [Expensify Classic, delegate approvals, out-of-office approver]
keywords: [Expensify Classic, delegate approvals, out-of-office approver, vacation, out of office, approval delegation, temporary delegate, vacation delegate, copilot vs delegate]

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.

AI Readiness violation (missing metadata): Since this file's YAML metadata is being updated with expanded keywords, consider also adding the required internalScope field. For example:

internalScope: Audience is all members and Domain Admins. Covers how to assign and remove a Vacation Delegate in Expensify Classic. Does not cover Copilot access or approval routing configuration.

title: Delegate When Out of Office
description: Assign a vacation delegate to approve reports on your behalf while you're away.
keywords: [New Expensify, delegate approvals, out-of-office approver]
keywords: [New Expensify, delegate approvals, out-of-office approver, vacation, out of office, approval delegation, temporary delegate, vacation delegate, copilot vs delegate]

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.

AI Readiness violation (missing metadata): Since this file's YAML metadata is being updated with expanded keywords, consider also adding the required internalScope field. For example:

internalScope: Audience is all members. Covers how to assign and remove a Vacation Delegate in New Expensify. Does not cover Copilot access or approval workflow configuration.

title: Copilot Access
description: How to add a Copilot or act as a Copilot for delegated account access
keywords: [New Expensify, copilot, delegated access, switch accounts, expense management, account assistant, view user account, expense forwarding]
keywords: [New Expensify, copilot, copilot access, delegated access, switch accounts, expense management, account assistant, view user account, expense forwarding, full access, limited access, account delegation, share account, behalf of, proxy access]

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.

AI Readiness violation (missing metadata): Since this file's YAML metadata is being updated with expanded keywords, consider also adding the required internalScope field. For example:

internalScope: Audience is all members. Covers how to add, remove, and switch between Copilot accounts in New Expensify. Does not cover Vacation Delegate setup or workspace-level permissions.

description: Allow employees to add per diem expenses
keywords: [Expensify Classic, per diem]
description: Learn how to enable per diem expenses and import daily allowance rates for meals, lodging, and travel in an Expensify Classic workspace.
keywords: [Expensify Classic, per diem, per diem rates, enable per diem, daily allowance, meal allowance, travel allowance, fixed daily rate, per diem setup, configure per diem, import per diem rates, business travel expenses, lodging allowance]

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.

AI Readiness violation (missing metadata): Since this file's YAML metadata is being updated with a new description and expanded keywords, consider also adding the required internalScope field. For example:

internalScope: Audience is Workspace Admins. Covers how to enable per diem expenses and import per diem rates in Expensify Classic. Does not cover how members submit per diem expenses or per diem policy rules.

title: Manage Duplicate Expenses
description: Learn how to identify and resolve potential duplicate expenses in New Expensify using the built-in Duplicate Detection tool.
keywords: [New Expensify, duplicate expense, review duplicate, expense on hold, resolve duplicates, flagged request, Collect plan, Control plan]
keywords: [New Expensify, duplicate expense, review duplicate, expense on hold, resolve duplicates, flagged request, Collect plan, Control plan, merge expenses, avoiding duplicates, duplicate detection]

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.

AI Readiness violation (missing metadata): Since this file's YAML metadata is being updated with expanded keywords, consider also adding the required internalScope field. For example:

internalScope: Audience is all members and approvers. Covers how to identify and resolve duplicate expenses in New Expensify. Does not cover SmartScan automation logic or expense deletion workflows.

title: Merge Accounts
description: Learn how to merge two Expensify accounts into one and keep all your data in a single login.
keywords: [Expensify Classic, merge accounts, combine logins, consolidate email addresses, multiple accounts]
keywords: [Expensify Classic, merge accounts, combine logins, consolidate email addresses, multiple accounts, combine accounts, link accounts, two Expensify accounts, consolidate accounts, merge Expensify accounts]

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.

AI Readiness violation (missing metadata): Since this file's YAML metadata is being updated with expanded keywords, consider also adding the required internalScope field. For example:

internalScope: Audience is all members. Covers how to merge two Expensify accounts in Expensify Classic. Does not cover contact method management or domain migration.

Comment thread docs/articles/new-expensify/settings/Merge-Accounts.md
Comment thread docs/articles/new-expensify/settings/Update-Email-Address.md
@github-actions

github-actions Bot commented Mar 7, 2026

Copy link
Copy Markdown
Contributor

HelpDot Documentation Review

Overall Assessment

This PR is a well-scoped maintenance pass across 25 documentation files. The changes fall into four clear categories: (1) fixing broken internal links to match actual file paths, (2) correcting a filename with an errant space, (3) removing duplicate text lines and stray markup, and (4) expanding SEO keywords and improving YAML metadata. The vast majority of changes are correct and beneficial. A small number of inconsistencies in the proposed changes are worth addressing before merge.

Scores Summary

  • Readability: 9/10 - The proposed changes improve readability in several places: removing duplicated bullet points (Configure-Reimbursement-Settings.md, Reimbursement-Payment-Methods.md), eliminating repeated navigation instructions in Copilot-Access.md, removing a stray raw image path from How-to-Set-Up-Automatic-Report-Submissions.md, and cleaning up leftover div tags from Delegate-when-out-of-office.md. All of these reduce noise for readers. The only minor readability concern is the heading change in Assign-or-remove-a-Copilot.md which introduces a capitalization inconsistency (see Key Findings).
  • AI Readiness: 8/10 - The keyword expansions are thoughtful and cover natural-language search variations (e.g., "Scheduled Submit", "auto submit", "copilot vs delegate", "combine accounts"). The addition of internalScope to Assign-or-remove-a-Copilot.md follows the correct format. Two areas could be improved: (a) Contact-Methods.md gains keywords but still lacks an internalScope field, and (b) the new internalScope in Assign-or-remove-a-Copilot.md uses "CoPilot" which does not match the product terminology used throughout the rest of the documentation.
  • Style Compliance: 8/10 - Link corrections, filename fixes, and duplicate removals all align with style standards. However, the proposed heading change from "# Assign a Copilot" to "# How to Assign a CoPilot" introduces an inconsistent capitalization ("CoPilot") that conflicts with the established term "Copilot" used everywhere else in the file and across the docs. The same "CoPilot" spelling appears in the new internalScope value.

Key Findings

Issues to address:

  1. Inconsistent "CoPilot" capitalization in docs/articles/expensify-classic/copilots-and-delegates/Assign-or-remove-a-Copilot.md. The proposed heading "# How to Assign a CoPilot" and the new internalScope both use "CoPilot", but the existing file (and all other docs) consistently use "Copilot". This creates a terminology mismatch within the same file. The heading, internalScope, and keywords should all use "Copilot" for consistency.

  2. Reimbursement-Payment-Methods.md currency list reordering -- The first SGD (Singapore) entry was replaced with CAD (Canada), and the second SGD entry (which had a typo with a double-dash in the link) was corrected. This is a good fix, but it is worth verifying that the Global-Reimbursement-Canada.md page actually exists and is live on help.expensify.com, since this was not just a link fix but also a content change (adding a new country to the list). The file does exist in the repository, so this appears correct.

  3. Missing internalScope on docs/articles/expensify-classic/settings/Contact-Methods.md. This file received new keywords and an improved description, but no internalScope was added. Since other files in this PR already have or received internalScope, this would be a good opportunity to add one here as well (e.g., "Audience is all members. Covers how to add and manage contact methods including email addresses and phone numbers. Does not cover account merging or domain-level settings.").

Positive aspects:

  • Link corrections are well-researched. All updated link targets (Contact-Methods, Merge-Accounts, Enable-Global-Reimbursement, Automatically-submit-employee-reports) resolve to files that exist in the repository. The old paths referenced non-existent locations.
  • Filename fix is valuable. Renaming "Export- Expenses-from-the-Expenses-Page.md" (with errant space) to "Export-Expenses-from-the-Expenses-Page.md" prevents potential URL resolution issues.
  • Duplicate text removal is clean. Three instances of duplicate lines were removed: the duplicated "Indirect Reimbursement" bullet, the duplicated "Standard ACH reimbursement" bullet, and the duplicated "SGD (Singapore)" entry (where one had a malformed link). Each removal retains the correct version of the text.
  • Stray markup cleanup. Removing the raw image path text and the legacy div wrapper are good housekeeping fixes.
  • Keyword additions are well-targeted. The expanded keywords cover common synonyms and search variations that users would naturally try (e.g., "vacation delegate", "merge Expensify accounts", "per diem rates", "secondary login").

Recommendations

  1. Fix "CoPilot" to "Copilot" in the heading and internalScope of Assign-or-remove-a-Copilot.md to maintain consistency with the rest of the documentation.
  2. Consider adding internalScope to Contact-Methods.md since it is receiving other metadata improvements in this PR.
  3. Optional improvement: The anchor link fix in Workspace-Workflows.md (#submission-frequency to #how-to-set-a-submission-frequency) was verified to match the actual heading "How to Set a Submission Frequency" -- this is correct.

Files Reviewed

  • Reimburse-Reports.md -- Link fix (correct)
  • Assign-or-remove-a-Copilot.md -- Metadata + heading changes (has "CoPilot" inconsistency)
  • Delegate-when-out-of-office.md (Classic) -- Keyword expansion (correct)
  • Claim-And-Verify-A-Domain.md -- Link fix (correct)
  • Domain-Migration.md -- Link fixes x3 (correct)
  • Set-Up-SAML-SSO.md -- Link fix (correct)
  • Export-Expenses-from-the-Expenses-Page.md -- Filename fix (correct)
  • Trips.md -- Link fix (correct)
  • Expensify-Card-Reconciliation.md -- Link fix (correct)
  • Automatically-submit-employee-reports.md -- Keyword expansion (correct)
  • Contact-Methods.md -- Description + keywords (correct, missing internalScope)
  • Merge-Accounts.md (Classic) -- Keyword expansion (correct)
  • Configure-Reimbursement-Settings.md -- Duplicate removal + link fix (correct)
  • Enable-per-diem-expenses.md -- Description + keyword expansion (correct)
  • Duplicate-Detection.md -- Keyword expansion (correct)
  • How-to-Set-Up-Automatic-Report-Submissions.md -- Keyword expansion + stray text removal (correct)
  • Merging-expenses.md -- Keyword expansion (correct)
  • Per-Diem-Expenses.md -- Keyword expansion (correct)
  • Copilot-Access.md -- Keyword expansion + duplicate text fix (correct)
  • Delegate-when-out-of-office.md (New Expensify) -- Keyword expansion + markup cleanup (correct)
  • Merge-Accounts.md (New Expensify) -- Keyword expansion (correct)
  • Update-Email-Address.md -- Keyword expansion (correct)
  • Reimbursement-Payment-Methods.md -- Duplicate removal + link fixes + content correction (correct)
  • Configure-Per-Diem-in-a-workspace.md -- Keyword expansion (correct)
  • Workspace-Workflows.md -- Anchor link fix (correct)

This review assessed only the proposed changes in the diff, not unchanged content.

@stephanieelliott
stephanieelliott requested a review from a team as a code owner March 7, 2026 01:18
@melvin-bot
melvin-bot Bot requested a review from ChavdaSachin March 7, 2026 01:18
@melvin-bot
melvin-bot Bot removed the request for review from a team March 7, 2026 01:18
@melvin-bot

melvin-bot Bot commented Mar 7, 2026

Copy link
Copy Markdown

@ChavdaSachin 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]

NOTE: It looks like docs/redirects.csv was modified in this PR. Please see this SO for special instructions on how to review changes to that file.

@stephanieelliott
stephanieelliott removed the request for review from ChavdaSachin March 7, 2026 01:19
stephanieelliott and others added 2 commits March 6, 2026 15:20
…or-remove-a-Copilot.md

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
…ment-Settings.md

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Merge main into my branch
@stephanieelliott

Copy link
Copy Markdown
Contributor

@MelvinBot can you help me resolve the build error? I don't see any double commas in redirects.csv

The redirect entry for the renamed Export-Expenses file was using file
paths instead of URLs, which fails the verifyRedirect.sh validation.
Also updated an existing redirect (line 762) to point to the new URL
without the space.

Co-authored-by: Stephanie Elliott <stephanieelliott@users.noreply.github.com>
@MelvinBot

Copy link
Copy Markdown
Contributor Author

Fixed the failing build check in 27b94e8.

Root cause: The redirect entry on line 909 used raw file paths (docs/articles/...) instead of full URLs (https://help.expensify.com/...). The verifyRedirect.sh script splits lines by replacing commas with spaces (tr ',' ' '), so the literal space in the old filename Export- Expenses-from-the-Expenses-Page.md caused the split to produce 3 tokens instead of 2 — triggering the "more than one comma" error. Even without the space issue, the entry would have failed the URL format validation (lines 53-61 require https://help.expensify.com or https://community.expensify.com prefixes).

What I changed:

  1. Line 909 — Converted from file paths to proper URL format:
    https://help.expensify.com/articles/expensify-classic/expenses/Export-%20Expenses-from-the-Expenses-Pagehttps://help.expensify.com/articles/expensify-classic/expenses/Export-Expenses-from-the-Expenses-Page
  2. Line 762 — Updated an existing redirect that was pointing to the old URL (with %20 space) so it now points directly to the new clean URL.

@OSBotify

Copy link
Copy Markdown
Contributor

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

Updated articles:

@brianlee-expensify
brianlee-expensify merged commit c38a566 into main Mar 10, 2026
13 checks passed
@brianlee-expensify
brianlee-expensify deleted the claude-docsArticlesImprovements branch March 10, 2026 15:42
@OSBotify

Copy link
Copy Markdown
Contributor

🚀 Deployed to staging by https://github.com/brianlee-expensify in version: 9.3.35-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.3.35-1 🚀

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.

4 participants