Skip to content

[Duplicate Expense] [Tracking] Duplicate expenses in NewDot #65948

@garrettmknight

Description

@garrettmknight

[WN Post]
[Figma]
[Pre-design]

Feature Description

'Duplicate' adds the ability for users to generate a copy of an existing expense in NewDot, following our Classic functionality and patterns. We'll implement it so it does the following:

  1. User opens a cash, Per Diem, or Distance expense in any state (Unreported, Draft, Processing, Approved, Paid) and taps More.
  2. The More menu includes a Duplicate option with the Multiple Receipts icon.
  3. User taps Duplicate.
  4. We'll indicate the expense has been duplicated by:
  • Changing the Multiple Receipts icon into a checkmark temporarily and then back to the Multiple Receipts icon.
  • Changing Duplicate on the button to be Duplicated and then back to Duplicate at the same time as the icon change.
  1. We create an expense on the user's primary workspace with the following details, using the CreateMoneyRequest command:
    • Merchant, amount, categories, tags, tax. Note that the coding may not be available on the primary workspace; we'll still create the duplicate expense with the original expense coding. This will display an error for the user to correct the duplicate expense. For an example of the error we show, you can move an expense report from a workspace with Per Diem to one without it.
    • Date is set to today.
    • Receipt images are not duplicated.
  2. If the duplicated expense is in the background view, we'll highlight it temporarily.

Notes for completeness:

  • Card expenses cannot be duplicated
  • We'll add Duplicate to the X selected menu for users when they select one or more non-card expenses to duplicate. Example:
  • We'll use the animation pattern for copying an email address from user details for the Multiple Receipts > Checkmark > Multiple Receipts animation. Example at the bottom of the issue.

Visuals:

Duplicate expense flow:

Image

Animation example:

CleanShot.2025-10-31.at.08.07.42.mp4

Metadata

Metadata

Labels

Awaiting PaymentAuto-added when associated PR is deployed to productionDailyKSv2DesignNewFeatureSomething to build that is a new item.

Type

No type

Projects

Status

Tracking

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions