Skip to content

[No QA] Docs updates for E/A#98672 document temporary bank issue receipt message - #100339

Open
MelvinBot wants to merge 1 commit into
mainfrom
melvin/docs-531-temporary-bank-issue
Open

[No QA] Docs updates for E/A#98672 document temporary bank issue receipt message#100339
MelvinBot wants to merge 1 commit into
mainfrom
melvin/docs-531-temporary-bank-issue

Conversation

@MelvinBot

@MelvinBot MelvinBot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Explanation of Change

Help site follow-up for #98672, which adds a new user-facing RTER violation message for company/personal card scrape code 531: “Can't auto-match receipt due to a temporary bank issue. Please try again later.”

Until now the help site only described broken-connection messaging that requires the member or a Workspace Admin to go fix the card. The new 531 copy is the opposite — it is temporary, self-resolving, and needs no action. Without a docs update, anyone who searches the new wording lands on articles that tell them to reconnect a feed that isn't actually broken.

This PR updates the two articles that own that workflow:

  • docs/articles/new-expensify/connect-credit-cards/Fix-a-Broken-Company-Card-Feed-Connection.md
    • New ## How to tell whether a receipt matching message needs action section that lists each receipt matching message a Workspace Admin can see and says whether it requires reconnecting the feed.
    • New FAQ entry answering the temporary bank issue message directly.
    • keywords and internalScope updated to cover the new wording.
  • docs/articles/new-expensify/connect-credit-cards/Manage-Personal-Cards.md
    • New ## How to tell whether a receipt matching message needs action section covering the personal card variants of the same messages.
    • New FAQ entry answering the temporary bank issue message directly.
    • keywords updated to cover the new wording.

Every quoted message is copied verbatim from src/languages/en.ts on the linked PR's branch, so the help site matches what renders in the app. UI labels used in the new copy (Company cards, Card details, Wallet) were verified against the current app UI.

Authored against docs/HELPSITE_NAMING_CONVENTIONS.md, docs/HELP_AUTHORING_GUIDELINES.md, and docs/TEMPLATE.md: one # title plus # FAQ, ## only below it, every new heading task-based and starting with an action verb or question word, and UI labels bolded in exact Sentence case.

Fixed Issues

$ https://github.com/Expensify/Expensify/issues/671466
PROPOSAL:

Tests

None

  • Verify that no errors appear in the JS console

Offline tests

Not applicable — this PR only changes help site markdown under docs/articles.

QA Steps

None

  • 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

@tgolen, 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.

…pe code 531

Co-authored-by: Tim Golen <tgolen@users.noreply.github.com>
@MelvinBot
MelvinBot requested a review from a team September 3, 2026 19:11
@MelvinBot MelvinBot added the HelpDot Apply this label if the issue relates to ExpensifyHelp label Sep 3, 2026
@tgolen tgolen changed the title Docs updates for E/A#98672 document temporary bank issue receipt message [No QA] Docs updates for E/A#98672 document temporary bank issue receipt message Sep 3, 2026
@tgolen

tgolen commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

@MelvinBot mark this PR as ready for review

@MelvinBot
MelvinBot marked this pull request as ready for review September 3, 2026 20:12
@melvin-bot

melvin-bot Bot commented Sep 3, 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 @greg-schroeder

@melvin-bot
melvin-bot Bot requested review from greg-schroeder and removed request for a team September 3, 2026 20:12
@melvin-bot

melvin-bot Bot commented Sep 3, 2026

Copy link
Copy Markdown

@greg-schroeder 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]

@MelvinBot

Copy link
Copy Markdown
Contributor Author

🤖 Done — this PR is now Ready for review.

No app testing was run: this PR only changes help site markdown under docs/articles, so there's no app behavior to verify.


view run

- **“Can't auto-match receipt because your bank connection needs re-authentication.”** — Your bank needs you to log in again. Select **Reconnect** in the message, or follow the steps above to fix the card connection.

If a message asking you to try again later stays on an expense for more than a few days, contact Concierge with the cardholder email and the last four digits of the card.

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.

UI label inconsistency: This new bullet says select Fix the card, but the rest of this article uses the exact UI label Fix card (see the steps section and both FAQ entries). Per HELPSITE_NAMING_CONVENTIONS.md ("Use the exact text shown in the product UI" / "Do not paraphrase labels"), use Fix card here for consistency with the actual button.

Not every receipt matching message means your card connection is broken. The wording tells you whether you need to do something:

- **“Can't auto-match receipt due to a temporary bank issue. Please try again later.”** — Your bank returned a response Expensify couldn't use this time. Nothing is broken and no action is needed. Expensify retries automatically, and the message clears once the transaction imports.
- **“Can't auto-match receipt due to broken card connection.”** — The card connection needs attention. Follow the steps above to fix the card connection, or select **Fix the card** in the message to go straight to the **Card details** page.

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.

UI label inconsistency: This bullet says select Fix the card, but the rest of this article uses the exact UI label Fix card (see the numbered steps and the "Why did the broken connection reminders disappear..." FAQ). Per HELPSITE_NAMING_CONVENTIONS.md ("Use the exact text shown in the product UI" / "Do not paraphrase labels"), change this to Fix card so it matches the actual button.

@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: a9df39f8d5

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

While a card connection is unhealthy, Expensify holds receipt-scanned expenses back instead of merging them with a card transaction and shows a message on the expense. The wording tells you whether a Workspace Admin needs to reconnect the feed:

- **“Can't auto-match receipt due to a temporary bank issue. Please try again later.”** — The bank returned a response Expensify couldn't use this time. The feed isn't broken and no one needs to reconnect it. Expensify retries automatically, and the message clears once the transaction imports.
- **“Can't auto-match receipt due to broken bank connection.”** and **“Receipt pending due to broken bank connection”** — The connection needs attention. A Workspace Admin should reconnect the feed using the steps above.

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 Do not tell users to reconnect for scrape code 530

When either quoted message is generated for BROKEN_CARD_CONNECTION_530, reconnecting is not the remedy: code 530 is included in BROKEN_CONNECTION_IGNORED_STATUSES (src/CONST/index.ts:115), and isCardConnectionBroken() consequently treats it as a non-broken connection (src/libs/CardUtils.ts:1419-1423). The 530 translation also returns before the actionable reconnect branches in src/languages/en.ts:10286-10316. Directing a Workspace Admin to reconnect sends them through an ineffective flow; this subtype should instead be documented as an Expensify-side condition that requires waiting.

Useful? React with 👍 / 👎.

Not every receipt matching message means your card connection is broken. The wording tells you whether you need to do something:

- **“Can't auto-match receipt due to a temporary bank issue. Please try again later.”** — Your bank returned a response Expensify couldn't use this time. Nothing is broken and no action is needed. Expensify retries automatically, and the message clears once the transaction imports.
- **“Can't auto-match receipt due to broken card connection.”** — The card connection needs attention. Follow the steps above to fix the card connection, or select **Fix the card** in the message to go straight to the **Card details** page.

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 Qualify where the Fix the card link opens

When an account has multiple personal cards with broken connections, Fix the card does not go straight to the affected card's Card details page. getBrokenConnectionUrlToFixPersonalCard() returns the details route only when exactly one card is broken and otherwise returns the general Wallet route (src/libs/CardUtils.ts:1939-1948). Qualify this instruction so users with multiple broken cards know they must select the relevant card from Wallet.

Useful? React with 👍 / 👎.

@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

HelpDot Documentation Review

Overall Assessment

This PR is a targeted, well-scoped follow-up to #98672. It documents the new self-resolving RTER message ("Cannot auto-match receipt due to a temporary bank issue. Please try again later.") in the two articles that own the card-connection troubleshooting workflow. Each file gains a new task-based decision section, a new FAQ entry, and updated keywords/internalScope metadata. The changes are consistent across both files and close a real search-intent gap, since users searching the new wording previously landed on reconnect-the-feed guidance that does not apply.

Scores Summary

  • Readability: 9/10 - Clear, scannable bulleted breakdown mapping each verbatim message to whether action is needed, with plain-language explanations and an appropriate Admin vs. Member distinction. Bullets are slightly long but easy to parse.
  • AI Readiness: 9/10 - Task-based headings starting with question/verb words, full verbatim message strings matching en.ts (strong retrieval anchors), and updated keywords and internalScope reflecting real search phrases. Heading hierarchy stays within # and ## only.
  • Style Compliance: 9/10 - UI labels (Company cards, Card details, Wallet, Fix the card, Reconnect) are bolded in exact Sentence case, terminology (Workspace Admins, Members) is correct, and the new section sits above the FAQ while new FAQ entries sit under it.

Key Findings

  • Both new "How to tell whether a receipt matching message needs action" headings are task-based and searchable, and the FAQ entries are properly question-based under the existing FAQ heading.
  • Quoted error strings are copied verbatim from en.ts, which is the correct approach for matching in-app copy and maximizing retrieval accuracy.
  • Metadata updates are proportional and search-aligned; the internalScope change in the company-card article expands the covered scope without overreaching.
  • Minor: the new decision-section headings do not include an exact feature name (the phrase "receipt matching message" is generic). Governance prefers feature-specific headings; a small consistency nit, not a blocker.
  • Minor: bulleted message explanations are fairly dense; consider tightening the longest ones for scannability.

Recommendations

  • Optional: make the new section headings slightly more feature-specific (for example, referencing company card vs. personal card context) to sharpen retrieval and align with the feature-name guidance.
  • Optional: trim the longest bullet explanations to a single crisp sentence where possible.
  • No required changes - the PR is compliant with all three governance documents.

Files Reviewed

  • docs/articles/new-expensify/connect-credit-cards/Fix-a-Broken-Company-Card-Feed-Connection.md - Compliant. New decision section, FAQ, and metadata for the Workspace Admin variants.
  • docs/articles/new-expensify/connect-credit-cards/Manage-Personal-Cards.md - Compliant. New decision section, FAQ, and keywords for the personal card variants.

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

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.

2 participants