Skip to content

[No QA] Add Sage Intacct troubleshooting docs (New Expensify)#84818

Merged
stephanieelliott merged 1 commit intomainfrom
helpsite-sage-intacct-new-expensify
Mar 11, 2026
Merged

[No QA] Add Sage Intacct troubleshooting docs (New Expensify)#84818
stephanieelliott merged 1 commit intomainfrom
helpsite-sage-intacct-new-expensify

Conversation

@stephanieelliott
Copy link
Contributor

Master project issue https://github.com/Expensify/Expensify/issues/469226

Breaking main PR into smaller batches: #83106

Creates .MD files for Sage integration error messages (New Expensify)

@github-actions
Copy link
Contributor

HelpDot Documentation Review

Overall Assessment

This PR adds 42 new Markdown documentation files covering Sage Intacct troubleshooting error codes for New Expensify. The files are organized into five subcategories: Authentication-and-Login-errors, Connection-errors, Export-Errors, Sync-Errors, and a Sage-Intacct-FAQ. The documentation is well-structured, consistent, and clearly written. Each article follows a uniform pattern: error description, root causes, resolution steps, and FAQ. There are several structural and organizational issues worth addressing, but the overall quality of the writing and technical guidance is strong.

Scores Summary

  • Readability: 8/10 - The writing is clear, direct, and uses plain language appropriate for Workspace Admins. Sentences are concise, steps are well-organized in numbered lists, and technical jargon is explained when introduced. The consistent structure across all files makes them easy to scan. Minor deductions for some articles being slightly verbose with redundant reassurances (e.g., repeating "this is not a connection issue" and "this is not a report data issue" in nearly every file).
  • AI Readiness: 7/10 - YAML frontmatter is well-formed with descriptive titles, descriptions, keywords, and properly structured internalScope fields. Headings are mostly descriptive and include full feature/task phrasing. However, there are two significant issues: (1) multiple files use # FAQ and # How to Fix... as H1 headings, creating multiple H1s per document which breaks heading hierarchy conventions (only one H1 per document is expected), and (2) # Additional Troubleshooting for Closed Periods also appears as an H1 in INT035. These should all be ## headings.
  • Style Compliance: 7/10 - Terminology is largely correct ("Workspace," "Workspace Admin," "Concierge"). UI navigation instructions use bold formatting for labels. Error messages are displayed as plain text rather than blockquotes or code blocks, which could cause readability confusion since they blend into surrounding prose. Some files reference Expensify Classic navigation patterns (e.g., Settings > Domains > Company Cards) that may not apply to New Expensify. Horizontal rules (---) are used excessively as section dividers throughout every file.

Key Findings

Structural Issues

  • Multiple H1 headings per document: Nearly all 42 files contain 2-3 H1 (#) headings. The main title is H1 (correct), but # FAQ, # How to Fix the [error], and # Additional Troubleshooting... are also H1. Per heading hierarchy standards, each document should have only one H1 heading. These secondary sections should use ## instead. This affects all 41 error-code files.
  • H3 headings used in some files: 14 instances of ### headings were found across several files (e.g., INT245, INT009, INT043, INT083, and the Sage-Intacct-FAQ). The AI readiness guidelines specify consistent heading hierarchy using # and ## only.
  • Exact duplicate files: The INT907-Error.md file is byte-for-byte identical across three directories (Authentication-and-Login-errors, Connection-errors, Export-Errors). While this may be intentional for discoverability, identical content in three locations creates a maintenance burden and could confuse search/AI systems. Consider whether a single canonical location with cross-references would be more appropriate.
  • Near-duplicate files: Several error codes appear in multiple categories with very similar but slightly different content (INT245 in 3 locations, INT122 in 2 locations, INT176 in 2 locations, INT498 in 2 locations). The rationale for placing the same error in multiple subcategories should be clarified, as it could create confusion about which version is authoritative.

Formatting Issues

  • Error messages are not visually distinguished: Error messages like INT122 Sync Error: Authentication error during sync... appear as regular paragraph text. They should be formatted as blockquotes (>) or code blocks to visually distinguish them from surrounding instructional text.
  • Excessive horizontal rules: Every section within every file is separated by --- horizontal rules (325 total across 42 files). This creates visual clutter and is not standard for HelpDot docs. Section headings alone are sufficient to demarcate content areas.

Positive Aspects

  • Highly consistent structure across all 42 files makes the documentation predictable and easy to navigate.
  • YAML frontmatter is thorough with well-crafted internalScope fields following the prescribed format ("Audience is... Covers... Does not cover...").
  • Error explanations clearly distinguish between different types of issues (authentication vs. data validation vs. configuration), helping users quickly assess what kind of problem they face.
  • Resolution steps are actionable with specific navigation paths and clear instructions.
  • FAQ sections address common follow-up questions, reducing support burden.
  • The Sage-Intacct-FAQ.md file provides helpful general guidance on automatic exports, manual exports, and disconnection.

Content Concerns

  • Some navigation paths reference settings that may be Expensify Classic patterns rather than New Expensify UI (e.g., Settings > Domains > Company Cards in INT498). Since these docs are under new-expensify/, the navigation paths should reflect the New Expensify interface.
  • The INT498 file in Authentication-and-Login-errors provides both "On web" and "On mobile" navigation steps for the sync step, but most other files only provide a single set of steps using "click" language. This inconsistency should be reconciled -- either all files should include both web and mobile steps, or the convention should be standardized.

Recommendations

  1. [High Priority] Change all # FAQ, # How to Fix..., and # Additional Troubleshooting... headings from H1 (#) to H2 (##) across all 42 files to maintain a single H1 per document.
  2. [High Priority] Demote all ### headings to ## or restructure those sections to use only # and ## headings for AI readiness compliance.
  3. [Medium Priority] Format error messages using blockquotes (> INT122 Sync Error: ...) or fenced code blocks to visually distinguish them from instructional text.
  4. [Medium Priority] Address the three identical INT907-Error.md files. Consider keeping one canonical version and either removing duplicates or adding category-specific context to differentiate them.
  5. [Low Priority] Remove excessive --- horizontal rules between sections. Use headings alone to separate content areas.
  6. [Low Priority] Verify that all navigation paths (especially Settings > Domains) reflect the New Expensify UI rather than Expensify Classic patterns.
  7. [Low Priority] Standardize whether files include both "On web" and "On mobile" navigation steps or just one set.

Files Reviewed

  • Authentication-and-Login-errors/ (5 files): INT122, INT176, INT245, INT498, INT907 -- All well-written; heading hierarchy issues; INT907 is an exact duplicate of Connection-errors and Export-Errors versions.
  • Connection-errors/ (2 files): INT245, INT907 -- INT245 is near-identical to its Authentication counterpart; INT907 is an exact duplicate.
  • Export-Errors/ (27 files): INT009, INT012, INT028, INT035, INT043, INT054, INT073, INT083, INT084, INT088, INT149, INT176, INT194, INT205, INT225, INT304, INT446, INT459, INT480, INT503, INT592, INT664, INT680, INT771, INT860, INT907, INT993 -- Largest and most varied category; consistent quality; heading hierarchy issues throughout; some files include web/mobile split instructions while most do not.
  • Sync-Errors/ (7 files): INT068, INT122, INT245, INT402, INT498, INT576, INT907 -- Good coverage of sync-specific errors; INT122/INT245/INT498 are near-duplicates of Authentication versions with slightly different content.
  • Sage-Intacct-FAQ.md (1 file): Clean, concise general FAQ covering export failures, manual exports, and disconnection; uses ### subheadings that should be ##.

Note: This review assesses only the proposed changes (all new file additions). No inline comments were posted as the issues are systemic patterns affecting all files rather than isolated line-level concerns.

@github-actions github-actions bot changed the title Add Sage Intacct troubleshooting docs (New Expensify) [No QA] Add Sage Intacct troubleshooting docs (New Expensify) Mar 10, 2026
@OSBotify
Copy link
Contributor

OSBotify commented Mar 10, 2026

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

Updated articles:


---

# How to Fix the INT245 Sync Error
Copy link
Contributor

Choose a reason for hiding this comment

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

Heading hierarchy violation (systemic -- affects ~38 of 42 files): # How to Fix uses an H1 heading, but H1 (#) should be reserved for the article title only. All subsequent section headings should use ## (H2) or lower. This same issue occurs in nearly every file in this PR. The two files that do it correctly are Authentication-and-Login-errors/INT122-Sync-Error.md and Authentication-and-Login-errors/INT176-Export-Error.md, which use ## How to Fix.

Suggested change
# How to Fix the INT245 Sync Error
## How to Fix the INT245 Sync Error


---

# How to Fix the INT009 Export Error
Copy link
Contributor

Choose a reason for hiding this comment

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

Heading hierarchy violation: # How to Fix should be ## How to Fix -- H1 is reserved for the article title. This applies to this file and all other Export-Errors files in this PR (INT012, INT028, INT035, INT043, INT054, INT073, INT083, INT084, INT088, INT149, INT176, INT194, INT205, INT225, INT304, INT446, INT459, INT480, INT503, INT592, INT664, INT680, INT771, INT860, INT907, INT993).

Suggested change
# How to Fix the INT009 Export Error
## How to Fix the INT009 Export Error


---

# How to Fix the INT068 Sync Error
Copy link
Contributor

Choose a reason for hiding this comment

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

Heading hierarchy violation: # How to Fix should be ## How to Fix -- H1 is reserved for the article title. This applies to this file and all other Sync-Errors files (INT122, INT245, INT402, INT498, INT576, INT907).

Suggested change
# How to Fix the INT068 Sync Error
## How to Fix the INT068 Sync Error


---

# Additional Troubleshooting for Closed Periods
Copy link
Contributor

Choose a reason for hiding this comment

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

Heading hierarchy violation: # Additional Troubleshooting should be ## Additional Troubleshooting for Closed Periods -- H1 is reserved for the article title only.

Suggested change
# Additional Troubleshooting for Closed Periods
## Additional Troubleshooting for Closed Periods


---

# How to Fix the INT245 Sync Error
Copy link
Contributor

Choose a reason for hiding this comment

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

Heading hierarchy violation: # How to Fix should be ## How to Fix -- H1 is reserved for the article title.

Suggested change
# How to Fix the INT245 Sync Error
## How to Fix the INT245 Sync Error


---

# How to Fix the INT498 Sync Error
Copy link
Contributor

Choose a reason for hiding this comment

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

Heading hierarchy violation: # How to Fix should be ## How to Fix -- H1 is reserved for the article title.

Suggested change
# How to Fix the INT498 Sync Error
## How to Fix the INT498 Sync Error

@@ -0,0 +1,69 @@
---
Copy link
Contributor

Choose a reason for hiding this comment

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

Duplicate content issue: This file is byte-for-byte identical to Connection-errors/INT907-Error.md and Export-Errors/INT907-Error.md (all share git blob hash 483d7d248f3e7). The Sync-Errors/INT907-Error.md file is a slightly different version. Having the same article duplicated across 3-4 categories creates maintenance problems and confuses AI retrieval systems. Consider keeping INT907 in only one canonical location and linking to it from other categories, or differentiating the content to address category-specific guidance.

@@ -0,0 +1,109 @@
---
Copy link
Contributor

Choose a reason for hiding this comment

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

Duplicate/near-duplicate content issue: This file is nearly identical to Authentication-and-Login-errors/INT245-Sync-Error.md and Sync-Errors/INT245-Sync-Error.md. The same INT245 error article exists in 3 different category folders with only minor wording differences. This creates confusion for both readers navigating the docs and for AI systems retrieving content. Consider placing this article in one canonical location (likely Sync-Errors/ since the error title says "Sync Error") and removing the duplicates.

@@ -0,0 +1,79 @@
---
Copy link
Contributor

Choose a reason for hiding this comment

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

AI Readiness / duplicate content concern: INT176 is an "Export Error" but is placed in the Authentication-and-Login-errors/ category. A near-duplicate also exists at Export-Errors/INT176-Export-Error.md. This same issue applies to several other files:

  • INT122-Sync-Error.md appears in both Authentication-and-Login-errors/ and Sync-Errors/
  • INT498-Sync-Error.md appears in both Authentication-and-Login-errors/ and Sync-Errors/
  • INT245-Sync-Error.md appears in Authentication-and-Login-errors/, Connection-errors/, and Sync-Errors/
  • INT907-Error.md appears in all four categories

Consider placing each error code in its primary category only. Having the same error in multiple folders creates confusion for search, AI retrieval, and ongoing maintenance.


If you see the error:

INT122 Sync Error: Authentication error during sync. Please reenter Sage Intacct admin credentials and attempt sync again.
Copy link
Contributor

Choose a reason for hiding this comment

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

Readability / AI Readiness (systemic -- affects all 42 files): The error message text is displayed as a plain paragraph, making it visually indistinguishable from regular body text. Error messages should be formatted as a blockquote (>) or a code block to clearly separate them from instructional content. This improves scannability for readers and helps AI systems identify the exact error string.

For example:

> INT122 Sync Error: Authentication error during sync. Please reenter Sage Intacct admin credentials and attempt sync again.

This applies to all error message blocks across every file in this PR.

4. Click **Configure**.
5. Open the **Export** tab.
6. In the **Date** field, select **Exported Date**.
7. Click **Save**.
Copy link
Contributor

Choose a reason for hiding this comment

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

Expensify style compliance: Per Expensify documentation standards, the button at the end of a configuration flow should be "Confirm" instead of "Save." This applies to steps completing Workspace configuration changes. The same issue appears in several other files where Workspace configuration steps end with "Click Save" or "Tap Save" (e.g., INT194, INT225, INT245 Auth/Connection/Sync versions, INT498 Auth version, and others). Note: Steps performed inside Sage Intacct's own UI correctly use "Save" since that is Sage Intacct's button label.

- The error appears in the **report comments section**
- Automatic export remains paused until the error is resolved

### How to Resolve Automatic Export Failures
Copy link
Contributor

Choose a reason for hiding this comment

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

FAQ structure violation: Per Expensify documentation standards, FAQ answers should be in plain text without additional sub-headings. The ### How to Resolve Automatic Export Failures sub-heading under the FAQ question creates unnecessary nesting. Instead, incorporate these steps directly into the answer text, or use a numbered list without a sub-heading. The same applies to ### How to Resolve Manual Export Issues on line 37.

---
title: Sage Intacct FAQ
description: Learn why reports may fail to export to Sage Intacct, how to manually export reports, and how to disconnect the Sage Intacct integration.
keywords: Sage Intacct export FAQ, automatic export failure, manual export Sage Intacct, report not exporting, disconnect Sage Intacct integration
Copy link
Contributor

Choose a reason for hiding this comment

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

AI Readiness: The keywords field is missing "Workspace Admin" which is included in all other files in this PR. Adding the role term improves discoverability when AI systems filter by audience.

Suggested change
keywords: Sage Intacct export FAQ, automatic export failure, manual export Sage Intacct, report not exporting, disconnect Sage Intacct integration
keywords: Sage Intacct export FAQ, automatic export failure, manual export Sage Intacct, report not exporting, disconnect Sage Intacct integration, Workspace Admin


If you need to disconnect the integration:

1. Go to **Workspace > [Workspace Name] > Accounting**.
Copy link
Contributor

Choose a reason for hiding this comment

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

Readability / consistency issue: The navigation path here uses Workspace > [Workspace Name] > Accounting which is inconsistent with the pattern used in all other files in this PR, which consistently use Settings > Workspaces > [Workspace Name] > Accounting or the web/mobile-specific instructions. This inconsistency could confuse readers.

Suggested change
1. Go to **Workspace > [Workspace Name] > Accounting**.
1. Go to **Settings > Workspaces > [Workspace Name] > Accounting**.


## Enable and Map Billable Expenses in the Workspace

On web:
Copy link
Contributor

Choose a reason for hiding this comment

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

Readability / consistency issue: This file provides separate "On web" and "On mobile" instructions, but the vast majority of files in this PR (about 38 of 42) use only generic "Click" instructions without platform-specific separation. This creates inconsistency across the documentation set. Consider either: (a) adding web/mobile instructions to all files for consistency, or (b) removing the web/mobile split here and using the generic approach to match the other files. The same inconsistency applies to INT035, INT225, and Auth/INT498.

- The user has the required module permissions.
4. If the password was changed, update it in the Workspace connection settings.

Save any changes.
Copy link
Contributor

Choose a reason for hiding this comment

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

Readability issue: "Save any changes." appears as a standalone sentence outside the numbered list, which breaks the step flow and is easy to overlook. Consider incorporating it as a numbered step (e.g., 5. Click **Save**.) for better scannability and consistency with the formatting in other sections of this file.

4. Scroll to **Web Services Authorizations**.
5. Add **expensify** as a **Sender ID**.

Important:
Copy link
Contributor

Choose a reason for hiding this comment

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

Readability issue: "Important:" as a standalone plain-text label is easy to miss and not a standard markdown callout. Consider using a blockquote or bold formatting to make it stand out, for example:

> **Important**: The Sender ID must be entered as **expensify** (all lowercase). Do not use uppercase letters or spaces.

This consolidates the three bullet points below into a more scannable callout.


## Update Permissions for the xml_gateway User

### If Using User-Based Permissions
Copy link
Contributor

Choose a reason for hiding this comment

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

Heading hierarchy / AI Readiness: This section has ### If Using User-Based Permissions and ### If Using Role-Based Permissions nested under ## Update Permissions. Combined with the # How to Fix issue (which should be ##), correcting the hierarchy would push these to H4 (####), which is too deep for good AI readability. Consider flattening the structure -- for example, make "Update Permissions for the xml_gateway User (User-Based)" and "Update Permissions for the xml_gateway User (Role-Based)" both ## level sections, eliminating the nesting layer.


If you do not use Sage Intacct’s approval workflow, disable it.

### Disable Expense Report Approval in Sage Intacct
Copy link
Contributor

Choose a reason for hiding this comment

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

Heading hierarchy / AI Readiness: The ### sub-headings here (line 44 and line 66) are nested under ## If You Are Not/Are Using... which is itself under # How to Fix (which should be ##). After fixing the root heading level, the hierarchy becomes ## > ### > #### which is too deep. Consider flattening -- for example, use ## Disable Expense Report Approval in Sage Intacct and ## Configure a Valid First Approver in Sage Intacct as direct H2 sections. This same cascading nesting pattern also appears in INT245 (Auth, Connection, and Sync versions).


If you see the error:

INT664 Export Error: Sage Intacct couldn’t find a vendor record for the report submitter. Verify a vendor record exists and the vendor email exactly matches the submitter’s Expensify email exactly, including capitalization.
Copy link
Contributor

Choose a reason for hiding this comment

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

Readability issue: The word "exactly" appears twice in this error message text: "...exactly matches the submitter's Expensify email exactly, including capitalization." The second "exactly" is redundant. (Note: If this is the verbatim error message from Sage Intacct, the inline description on line 14 could clarify the wording instead.)


The INT088 error typically occurs when:

- The **Cash Management** subledger is closed.
Copy link
Contributor

Choose a reason for hiding this comment

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

Readability (systemic -- affects all files): Horizontal rules (---) are used between every section in every file, creating visual clutter. Markdown headings already provide clear section separation. The horizontal rules between H2 sections are redundant and add noise rather than clarity. Consider removing them, or reserving --- only for major logical divisions (e.g., between the main content and the FAQ section). This pattern is consistent across all 42 files in this PR.

4. Click **Subscriptions**.
5. Confirm the following permissions are enabled:

- **Administration:** All
Copy link
Contributor

Choose a reason for hiding this comment

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

Readability issue: The bullet list of permissions breaks the numbered list flow. After step 5, the bullets interrupt the sequence, and step 6 (line 58) resumes numbering. In some markdown renderers, this can cause step 6 to restart at "1." instead of continuing from "6." Consider indenting the bullet list under step 5, or converting the permissions to a sub-list within step 5 using proper indentation. This same pattern also appears in the INT245 variants (Auth, Connection, and Sync).

### How to Resolve Manual Export Issues

1. If the report is in **Draft**, submit the report.
2. If the report is **Outstanding**, have an approver approve it.
Copy link
Contributor

Choose a reason for hiding this comment

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

Terminology concern: "Outstanding" may not be a standard report status in New Expensify. Typical New Expensify report statuses include Processing (submitted, awaiting approval). Consider verifying this status name matches the current New Expensify UI, or replacing it with the correct status term.


## Why Am I Unable to Manually Export a Report to Sage Intacct?

Only reports in **Approved**, **Done**, or **Paid** status can be exported.
Copy link
Contributor

Choose a reason for hiding this comment

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

Terminology concern: "Done" is not a standard report status in New Expensify. Please verify the correct exportable statuses match the current New Expensify UI. Standard statuses that allow export are typically Approved and Paid (or Reimbursed).

- Root: Configure, Connect, Troubleshooting.
- Troubleshooting: Auth, Connection, Export, Sync errors, FAQ.
- Hub pages already exist on main.
Part of Integration Errors Revamp (splitting PR #83106).
@stephanieelliott stephanieelliott force-pushed the helpsite-sage-intacct-new-expensify branch from 60656d1 to b341eda Compare March 11, 2026 00:36
@stephanieelliott stephanieelliott merged commit f3801cf into main Mar 11, 2026
12 of 13 checks passed
@stephanieelliott stephanieelliott deleted the helpsite-sage-intacct-new-expensify branch March 11, 2026 00:50
@melvin-bot melvin-bot bot added the Emergency label Mar 11, 2026
@melvin-bot
Copy link

melvin-bot bot commented Mar 11, 2026

@stephanieelliott looks like this was merged without a test passing. Please add a note explaining why this was done and remove the Emergency label if this is not an emergency.

@OSBotify
Copy link
Contributor

🚀 Deployed to staging by https://github.com/stephanieelliott in version: 9.3.36-0 🚀

platform result
🕸 web 🕸 success ✅
🤖 android 🤖 success ✅
🍎 iOS 🍎 success ✅

@OSBotify
Copy link
Contributor

🚀 Deployed to production by https://github.com/luacmartins in version: 9.3.36-10 🚀

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants