Skip to content

[Due for payment 2026-09-18] Surface "Create a rule" prompt on expense edits to drive merchant rule adoption in-situ #96354

Description

@JmillsExpensify

Background

We launched workspace merchant rules — a long-requested feature that lets admins automate expense coding (category, tags, tax, description, billable/reimbursable) based on merchant. Today, merchant rules are created exclusively from workspace settings, in a flow disconnected from the expense itself.

Customer feedback tells us admins frequently make one-off corrections directly on an expense (e.g. recategorizing an Uber charge) and would prefer to turn that correction into a standing rule right there, rather than remembering the merchant details and navigating to workspace settings afterward.

This adds an in-situ prompt on the expense detail view: when an admin edits a field merchant rules can govern, we surface a callout offering to turn that edit into a rule, and let them create and save the rule without leaving the expense.

Scope

  • Show a dismissible callout on the expense detail view when a workspace admin edits Category, Tags, Tax, Description, Billable, or Reimbursable on an expense.
  • Only show this to workspace admins, since only admins can edit workspace settings (and therefore create merchant rules) today.
  • Tapping the callout's Create a rule action opens the same merchant-rule creation flow used from workspace settings, pre-seeded with the merchant and the field/value just edited.
  • After saving the rule, the user returns to the expense detail view.
  • No change to the existing workspace-settings rule-creation flow; this is an additional entry point into it.

Product and design details

Image

Trigger and visibility

The callout appears on the expense detail view (both the report-context split view and the standalone expense RHP) immediately after an admin edits one of the six covered fields: Category, Tags, Tax, Description, Billable, Reimbursable. It does not appear for non-admin members, since they cannot create merchant rules.

Callout

The callout renders inline below the expense fields, above the comment/chat composer, styled as an informational banner:

  • Copy: "Create a rule to apply your changes to all expenses that match your criteria." — with Create a rule bolded as the tappable action.
  • A dismiss (×) affordance in the top-right of the callout.

Creation flow

Tapping Create a rule opens the same merchant-rule creation flow/RHP used from workspace settings, pre-seeded with:

  • Merchant: the expense's merchant (e.g. Uber).
  • Field/value: the field just edited and its new value or values (e.g. CategoryTravel & Airfare, Acme Inc.).

The admin can adjust the pre-filled condition/action before saving, identical to creating a rule from workspace settings — no new component or lightweight variant.

Post-save behavior

After saving, the user returns to the expense detail view they started from — the rule is created without navigating away from the expense.

Dismissal

Dismissal is scoped per expense: tapping × closes the callout on that specific expense only. If the admin makes another qualifying edit on a different expense (or even the same expense in a future session), the callout can appear again there.

Examples

  • An admin viewing Expense Report #3261987 changes the Category from its current value to Travel & Airfare. The callout appears: "Create a rule to apply your changes to all expenses that match your criteria." They tap Create a rule, the same workspace-settings creation flow opens pre-filled with Merchant is "Uber"Category to "Travel & Airfare", they save, and land back on the expense.
  • A non-admin member makes the same edit on an expense they can edit: no callout appears, since they don't have rule-creation rights.
  • An admin edits Description on an expense and dismisses the callout with ×; the expense edit itself is unaffected, and the callout won't reappear on that expense. Editing a different expense's Category still surfaces the callout there.
Issue OwnerCurrent Issue Owner: @Krishna2323

Activity

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

Metadata

Metadata

Labels

DailyKSv2ImprovementItem broken or needs improvement.InternalRequires API changes or must be handled by Expensify staff

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions