Skip to content

Refractor duplicate and delete expense articles #85893

Open
stephanieelliott wants to merge 5 commits intomainfrom
helpsite-refractor-merge-duplicates
Open

Refractor duplicate and delete expense articles #85893
stephanieelliott wants to merge 5 commits intomainfrom
helpsite-refractor-merge-duplicates

Conversation

@stephanieelliott
Copy link
Contributor

@stephanieelliott stephanieelliott self-assigned this Mar 20, 2026
## How to Find Duplicate Expenses in the Inbox Using the Red Dot Indicator

1. In the navigation tabs (on the left on web and at the bottom on mobile), select **Inbox**.
2. Look for chats with a red dot.
Copy link
Contributor

Choose a reason for hiding this comment

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

Navigation phrasing violation: The standard navigation phrasing defined in HELPSITE_NAMING_CONVENTIONS.md is: "on the left on web**,** on the bottom on mobile" (comma separator, and "on the bottom" not "at the bottom").

This line uses "and" instead of a comma and "at the bottom" instead of "on the bottom".

Suggested change
2. Look for chats with a red dot.
1. In the navigation tabs (on the left on web, on the bottom on mobile), select **Inbox**.

Comment on lines +40 to +43
Design request:https://github.com/Expensify/Expensify/issues/614048
-->

---
Copy link
Contributor

Choose a reason for hiding this comment

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

Screenshot placeholder format violation: Per HELP_AUTHORING_GUIDELINES.md Section 8, screenshot placeholders must include all three required fields: Suggestion, Location, and Purpose. This placeholder is missing Location: and Purpose:, and uses a non-standard Design request: field instead.

Expected format:


Comment on lines +59 to +62
<!-- SCREENSHOT:
Suggestion: Show expense with Review Duplicates at the top
Design request:https://github.com/Expensify/Expensify/issues/614048
-->
Copy link
Contributor

Choose a reason for hiding this comment

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

Screenshot placeholder format violation: Same issue as the first placeholder -- missing required Location: and Purpose: fields per HELP_AUTHORING_GUIDELINES.md Section 8. The Design request: field is non-standard.

Expected format:



---

## Who Can Use Duplicate Detection
Copy link
Contributor

Choose a reason for hiding this comment

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

Heading case violation: All governance examples and the TEMPLATE.md use sentence case for headings (e.g., ## Who can use [exact feature name], ## How to troubleshoot bank connection errors). This heading uses Title Case.

Suggested change
## Who Can Use Duplicate Detection
## Who can use duplicate detection

---

## How to Find Duplicate Expenses in the Inbox Using the Red Dot Indicator

Copy link
Contributor

Choose a reason for hiding this comment

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

Heading case violation: Per governance examples, headings should use sentence case, not Title Case. Additionally, this heading is quite long -- consider whether it can be shortened while remaining task-based and searchable.

Suggested change
## How to find duplicate expenses in the Inbox using the red dot indicator


## How to Resolve a Flagged Duplicate Expense

1. Open the report or chat with the red dot.
Copy link
Contributor

Choose a reason for hiding this comment

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

Heading case violation: Per governance examples in HELP_AUTHORING_GUIDELINES.md and TEMPLATE.md, headings should use sentence case.

Suggested change
1. Open the report or chat with the red dot.
## How to resolve a flagged duplicate expense

-->

---

Copy link
Contributor

Choose a reason for hiding this comment

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

Heading case violation: Per governance examples and TEMPLATE.md (## What happens after you [complete primary task]), headings should use sentence case.

Suggested change
## What happens after you resolve a flagged duplicate

Comment on lines +2 to +8
title: How to Find and Resolve Flagged Duplicate Expenses
description: Learn how Expensify detects duplicate expenses and how to resolve them when they are flagged and placed on hold.
keywords: [New Expensify, duplicate expense, review duplicates, expense on hold, resolve duplicate, flagged expense, red dot, duplicate detection, keep all, keep this one, held expense, Inbox red dot, find duplicate expenses, where to find duplicates]
internalScope: Audience is members and approvers on Collect or Control plans. Covers how to locate reports with duplicate expense violations and resolve flagged duplicates. Does not cover manually merging expenses or preventing duplicates.
---

# How to Find and Resolve Flagged Duplicate Expenses
Copy link
Contributor

Choose a reason for hiding this comment

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

Heading case note: The YAML title and the # heading both use Title Case, but all governance examples in HELP_AUTHORING_GUIDELINES.md use sentence case for headings (e.g., # Who can connect a business bank account in Expensify). The TEMPLATE.md # heading rule states it must match the title exactly, so both need to be updated together if switching to sentence case.

Suggested title and heading:

  • title: How to find and resolve flagged duplicate expenses
  • # How to find and resolve flagged duplicate expenses


**Note:** Duplicate detection is available on Collect and Control plans only.

If you have two expenses that were not automatically flagged but should be combined, you can [learn how to merge them manually](/articles/new-expensify/reports-and-expenses/Merging-expenses).
Copy link
Contributor

Choose a reason for hiding this comment

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

Cross-link target may not exist: This links to /articles/new-expensify/reports-and-expenses/Merging-expenses, but please verify this article exists. If it does not, this link will result in a 404. Per HELP_AUTHORING_GUIDELINES.md Section 7, cross-links should only reference existing articles.

@github-actions
Copy link
Contributor

HelpDot Documentation Review

Overall Assessment

This PR replaces the old Duplicate-Detection.md article with a significantly improved How-to-Find-and-Resolve-Flagged-Duplicate-Expenses.md article. The refactored article corrects several governance violations present in the old version -- most notably the multiple # heading issue, the missing internalScope metadata field, and the use of an emoji. The new article follows the recommended template structure (Who can use, How to, What happens after, FAQ) and breaks the single resolution workflow into clearer discovery and resolution steps. This is a strong improvement with only a few items to address.

Scores Summary

  • Readability: 9/10 - The article is well-structured, scannable, and uses clear action-oriented steps. The intro paragraph efficiently sets context, and the separation of "find" and "resolve" into distinct sections improves usability. Minor deduction: the step "Look for chats with a red dot" could be slightly more specific about what the red dot indicates at that point in the flow.
  • AI Readiness: 9/10 - Excellent metadata with a task-based title, descriptive keywords (including realistic search phrases like "where to find duplicates" and "Inbox red dot"), and a well-scoped internalScope. All headings are task-based with feature names, and the article includes multiple "How to" headings. The heading hierarchy is correct (single # plus # FAQ, all content sections at ##).
  • Style Compliance: 8/10 - UI elements are properly bolded (Inbox, Review duplicates, Keep all, Keep this one, Confirm, Potential duplicate). However, there are two issues: (1) the navigation phrasing deviates slightly from the canonical form, and (2) the screenshot placeholders are missing required fields from the governance format.

Key Findings

Positive aspects:

  • Adds the required internalScope metadata field, which was entirely missing from the old article
  • Fixes the old article heading hierarchy violation (old version had two # headings beyond # FAQ)
  • Removes the emoji usage from the old article (lock emoji in the Note)
  • Title is now fully task-based ("How to Find and Resolve Flagged Duplicate Expenses") instead of the generic "Manage Duplicate Expenses"
  • Follows the recommended template structure with "Who Can Use", "How to", and "What Happens After" sections
  • Cross-link to the merging expenses article is properly placed outside numbered steps, uses a relative path, and has descriptive anchor text
  • Keywords are comprehensive and include realistic user search phrases
  • FAQ questions are well-scoped to the article workflow

Issues to address:

  1. Navigation phrasing deviation (Style): The article uses "In the navigation tabs (on the left on web and at the bottom on mobile)" but the governance standard in HELPSITE_NAMING_CONVENTIONS.md specifies "on the left on web, on the bottom on mobile" -- note the comma separator (not "and") and "on the bottom" (not "at the bottom"). The canonical unified form from the governance is: "Click the navigation tabs (on the left on web, on the bottom on mobile)."

  2. Screenshot placeholders missing required fields (Structure): The governance (HELP_AUTHORING_GUIDELINES.md Section 8) requires the EXACT structure with three fields -- Suggestion:, Location:, and Purpose:. The article placeholders are missing the Location: and Purpose: fields and instead include a non-standard Design request: field. Both screenshot placeholders need to be updated to include all three required fields.

  3. Heading case inconsistency (Minor): The template uses lowercase for headings (e.g., ## Who can use [exact feature name]), while the new article uses Title Case (## Who Can Use Duplicate Detection). This is a minor style inconsistency. Consider aligning with the template sentence-case style for section headings.

Recommendations

  1. (Should fix) Update the navigation instruction in the "How to Find" section to match the exact canonical phrasing: "In the navigation tabs (on the left on web, on the bottom on mobile), select Inbox."
  2. (Should fix) Update both screenshot placeholders to include the required Location: and Purpose: fields, and remove the non-standard Design request: field (or move it to a separate HTML comment if it needs to be retained for internal tracking).
  3. (Consider) Align heading case with the template sentence-case style (e.g., ## Who can use duplicate detection instead of ## Who Can Use Duplicate Detection).
  4. (Consider) The removed FAQ question "Can I review a discarded duplicate later?" from the old article may still be a common user question. Evaluate whether it should be retained or if it is intentionally excluded because it falls outside the article defined scope.

Files Reviewed

  • docs/articles/new-expensify/reports-and-expenses/Duplicate-Detection.md -- DELETED. Old article had multiple governance violations (multiple # headings, missing internalScope, emoji usage). Removal is appropriate.
  • docs/articles/new-expensify/reports-and-expenses/How-to-Find-and-Resolve-Flagged-Duplicate-Expenses.md -- NEW. Well-structured replacement that addresses the old article violations and follows the recommended template. Two items need attention: navigation phrasing and screenshot placeholder format.

Note: This review is based solely on the proposed changes in the PR diff, evaluated against the HelpDot governance files (HELPSITE_NAMING_CONVENTIONS.md, HELP_AUTHORING_GUIDELINES.md, and TEMPLATE.md).

Copy link

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

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: 117e46e0d2

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

Comment on lines +1 to +5
---
title: How to Find and Resolve Flagged Duplicate Expenses
description: Learn how Expensify detects duplicate expenses and how to resolve them when they are flagged and placed on hold.
keywords: [New Expensify, duplicate expense, review duplicates, expense on hold, resolve duplicate, flagged expense, red dot, duplicate detection, keep all, keep this one, held expense, Inbox red dot, find duplicate expenses, where to find duplicates]
internalScope: Audience is members and approvers on Collect or Control plans. Covers how to locate reports with duplicate expense violations and resolve flagged duplicates. Does not cover manually merging expenses or preventing duplicates.

Choose a reason for hiding this comment

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

P2 Badge Preserve the old Duplicate-Detection slug

This rename deletes Duplicate-Detection.md without updating docs/redirects.csv, which still routes legacy aliases to /articles/new-expensify/reports-and-expenses/Duplicate-Detection (see lines 729 and 864-865 in the current file). Because HelpDot URLs are derived from the markdown filename, existing bookmarks and any inbound links to the old slug will now land on a 404 until the old slug redirects to How-to-Find-and-Resolve-Flagged-Duplicate-Expenses.

Useful? React with 👍 / 👎.

@stephanieelliott stephanieelliott changed the title [HOLD] Refractor duplicate expense articles Refractor duplicate and delete expense articles Mar 21, 2026
@stephanieelliott stephanieelliott requested a review from a team March 21, 2026 01:32
@melvin-bot
Copy link

melvin-bot bot commented Mar 21, 2026

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 @twisterdotcom

@melvin-bot melvin-bot bot requested a review from twisterdotcom March 21, 2026 01:32
@melvin-bot
Copy link

melvin-bot bot commented Mar 21, 2026

@twisterdotcom 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 21, 2026 01:32
@stephanieelliott
Copy link
Contributor Author

@MelvinBot can you run helpdot-inline-reviewer again, to review more recent updates I made to the files?

Copy link
Contributor

@MelvinBot MelvinBot left a comment

Choose a reason for hiding this comment

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

HelpDot Documentation Review (Re-run)

I've reviewed all four new articles against the HelpDot authoring guidelines. Here's a summary of the issues found across the files:

Issues by Category

Category Files Affected Severity
Heading case (Title Case → sentence case) 3 of 4 files High — affects all # and ## headings
Cross-links use full URLs instead of relative All 4 files High — violates Section 7
Cross-links point to deleted file slugs 3 of 4 files High — will produce 404s
Navigation phrasing deviations All 4 files Medium
Screenshot placeholder format 2 of 2 files with placeholders Low

Per-File Summary

How-to-Delete-Expenses.md ✅ Good: Headings correctly use sentence case. Issues: Navigation uses capitalized "Web"/"Mobile" (should be lowercase), all cross-links use full URLs, one link points to the deleted Delete-Expenses slug (self-reference).

How-to-Find-and-Resolve-Flagged-Duplicate-Expenses.md — All headings use Title Case instead of sentence case. Navigation missing comma separator and uses "at the bottom" instead of "on the bottom". Screenshot placeholders missing Location: and Purpose: fields. Cross-link to Merging-expenses will break (file deleted in this PR).

How-to-Merge-Expenses.md — All headings use Title Case. Three cross-links use full URLs with incorrect paths (missing reports-and-expenses/ hub). Navigation uses "at the bottom" in all three instances. All three screenshot placeholders missing required fields.

Why-Expenses-Duplicate.md — All headings use Title Case. Six cross-links use full URLs, two of which point to the deleted Delete-Expenses slug. Missing --- separator before the "What to do" section. One slug has a casing mismatch (How-to-merge-expenses vs. How-to-Merge-Expenses).

What Improved Since Last Review

  • How-to-Delete-Expenses.md headings are now in proper sentence case
  • ✅ Articles include internalScope metadata field
  • ✅ Single workflow per article is well maintained
  • ✅ Cross-link anchor text is descriptive (no "click here")
  • ✅ FAQ sections follow proper structure

See inline comments for specific line-level suggestions.

internalScope: Audience is members and approvers on Collect or Control plans. Covers how to locate reports with duplicate expense violations and resolve flagged duplicates. Does not cover manually merging expenses or preventing duplicates.
---

# How to Find and Resolve Flagged Duplicate Expenses
Copy link
Contributor

Choose a reason for hiding this comment

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

Heading case violation: Per HELP_AUTHORING_GUIDELINES.md and TEMPLATE.md governance examples, all headings should use sentence case (e.g., # How to find and resolve flagged duplicate expenses). This applies to the title: in YAML metadata as well. Title Case is used throughout this file — please convert all # and ## headings to sentence case.

Suggested change
# How to Find and Resolve Flagged Duplicate Expenses
# How to find and resolve flagged duplicate expenses


---

## Who Can Use Duplicate Detection
Copy link
Contributor

Choose a reason for hiding this comment

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

Heading case violation: Should use sentence case.

Suggested change
## Who Can Use Duplicate Detection
## Who can use duplicate detection


---

## How to Find Duplicate Expenses in the Inbox Using the Red Dot Indicator
Copy link
Contributor

Choose a reason for hiding this comment

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

Heading case violation: Should use sentence case. This heading is also quite long — consider shortening while keeping it task-based and searchable.

Suggested change
## How to Find Duplicate Expenses in the Inbox Using the Red Dot Indicator
## How to find duplicate expenses using the red dot indicator


## How to Find Duplicate Expenses in the Inbox Using the Red Dot Indicator

1. In the navigation tabs (on the left on web and at the bottom on mobile), select **Inbox**.
Copy link
Contributor

Choose a reason for hiding this comment

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

Navigation phrasing violation: The standard phrasing defined in HELPSITE_NAMING_CONVENTIONS.md is: "on the left on web**,** on the bottom on mobile" (comma separator, "on the bottom" not "at the bottom", and no "and").

Suggested change
1. In the navigation tabs (on the left on web and at the bottom on mobile), select **Inbox**.
1. In the navigation tabs (on the left on web, on the bottom on mobile), select **Inbox**.


**Note:** Duplicate detection is available on Collect and Control plans only.

If you have two expenses that were not automatically flagged but should be combined, you can [learn how to merge them manually](/articles/new-expensify/reports-and-expenses/Merging-expenses).
Copy link
Contributor

Choose a reason for hiding this comment

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

Cross-link target will break: This links to /articles/new-expensify/reports-and-expenses/Merging-expenses, but that file is being deleted in this PR and replaced by How-to-Merge-Expenses.md. Update this link to the new slug.

Suggested change
If you have two expenses that were not automatically flagged but should be combined, you can [learn how to merge them manually](/articles/new-expensify/reports-and-expenses/Merging-expenses).
If you have two expenses that were not automatically flagged but should be combined, you can [learn how to merge them manually](/articles/new-expensify/reports-and-expenses/How-to-Merge-Expenses).

In some cases, duplicate expenses occur when the same card transaction is imported more than once.

This most often happens when a card connection is reconnected using a Transaction Start Date that is earlier than the last imported transaction. When this happens, Expensify imports older transactions again, even if they were already imported.

Copy link
Contributor

Choose a reason for hiding this comment

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

Multiple cross-links use full URLs and some point to deleted files: Lines 74–83 contain several full URLs that should be relative links. The links to Delete-Expenses (lines 82–83) point to a file being deleted in this PR — update to the new slug How-to-Delete-Expenses.

Suggested fix:

- [How to find and resolve flagged duplicate expenses](/articles/new-expensify/reports-and-expenses/How-to-Find-and-Resolve-Flagged-Duplicate-Expenses)
- [How to merge duplicate expenses](/articles/new-expensify/reports-and-expenses/How-to-Merge-Expenses)

If both expenses are card transactions, they cannot be merged. Instead, [delete the duplicate expense](/articles/new-expensify/reports-and-expenses/How-to-Delete-Expenses) or [move the duplicate to your personal space](/articles/new-expensify/reports-and-expenses/How-to-Delete-Expenses#deleting-company-card-expenses).

1. Open the expense you want to delete.
2. From the expense, choose **More**.
3. Choose **Delete**.

Copy link
Contributor

Choose a reason for hiding this comment

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

Navigation capitalization: Per HELPSITE_NAMING_CONVENTIONS.md, the standard phrasing uses lowercase "web" and "mobile". This applies to all navigation instructions in this file (lines 21, 31, 77, 87).

Suggested change
1. In the navigation tabs (on the left on web, on the bottom on mobile) select **Reports** > **Expenses**.


## How to delete an expense from a report

1. In the navigation tabs (on the left on Web, on the bottom on Mobile) select **Reports** > **Expenses**.
Copy link
Contributor

Choose a reason for hiding this comment

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

Cross-link uses full URL: Per HELP_AUTHORING_GUIDELINES.md Section 7, use relative links only.

Suggested change
1. In the navigation tabs (on the left on Web, on the bottom on Mobile) select **Reports** > **Expenses**.
**Note:** You can only delete expenses from your own Unreported, Draft, and Outstanding reports. If the report is Approved, Done or Paid, it will need to be retracted first before deleting the expense. [Learn how to retract a report](/articles/new-expensify/reports-and-expenses/Edit-Expense-Reports).

- The expense was created by you.
- The expense is a manual cash expense, distance expense, or SmartScanned receipt.
- The expense is Unreported or on a Draft or Outstanding report.

Copy link
Contributor

Choose a reason for hiding this comment

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

Cross-link uses full URL and points to deleted file: This links to Delete-Expenses which is being deleted in this PR. Since this IS the replacement article, this appears to be a self-referencing link. If the intent is to link to a section within this same article, use an anchor link instead (e.g., #why-you-cant-delete-an-expense). Also, use relative links per HELP_AUTHORING_GUIDELINES.md Section 7.


---

# FAQ
Copy link
Contributor

Choose a reason for hiding this comment

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

Cross-link uses full URL: Use a relative link.

Suggested change
# FAQ
If you need access to another member's expenses, ask them to [add you as a Copilot](/articles/new-expensify/settings/Copilot-Access). This allows you to manage expenses on their behalf.

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.

2 participants