Skip to content

Integrations Error Revamp: Create Sage Intacct integration troubleshooting docs#84206

Closed
stephanieelliott wants to merge 1 commit intomainfrom
pr-docs-sage-intacct
Closed

Integrations Error Revamp: Create Sage Intacct integration troubleshooting docs#84206
stephanieelliott wants to merge 1 commit intomainfrom
pr-docs-sage-intacct

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 Intacct integration error messages

@stephanieelliott stephanieelliott self-assigned this Mar 4, 2026
@stephanieelliott stephanieelliott requested a review from a team as a code owner March 4, 2026 22:53
@melvin-bot melvin-bot bot removed the request for review from a team March 4, 2026 22:53
@github-actions
Copy link
Contributor

github-actions bot commented Mar 4, 2026

HelpDot Documentation Review

Overall Assessment

This PR adds 85 new markdown files documenting Sage Intacct integration error codes across both Expensify Classic and New Expensify platforms. The documentation covers authentication, connection, export, and sync errors with a well-structured troubleshooting format. The content is clearly written, actionable, and follows a consistent template. There are a few structural and heading-hierarchy issues that should be addressed before merging.

Scores Summary

  • Readability: 9/10 - Excellent clarity throughout. Sentences are short and direct. Steps are numbered and easy to follow. Each article opens with the error message, explains why it happens, and provides fix steps. The language is accessible and well below an 8th-grade reading level.
  • AI Readiness: 7/10 - YAML metadata (title, description, keywords, internalScope) is thorough and consistently formatted across all files. However, there is a significant heading hierarchy inconsistency: approximately 39 files use # How to Fix (H1) and 82 files use # FAQ (H1) as secondary headings within articles. These should all be ## (H2) since # (H1) should be reserved for the article title only. This inconsistency will confuse AI parsers attempting to identify the document structure.
  • Style Compliance: 8/10 - Terminology is correct (Workspace, Workspace Admin, Domain Admin, Concierge). Button labels and UI paths are properly bolded. FAQ structure is present in every article. The error message text is presented as plain text rather than in a blockquote or code block, which is a minor formatting inconsistency but acceptable.

Key Findings

Heading Hierarchy Inconsistency (Critical)
Across the new-expensify files (and some expensify-classic Sync-Errors and Connection-errors), the "How to Fix" section and "FAQ" section use # (H1) instead of ## (H2). This creates multiple H1 headings per document. For example, the new-expensify Export-Errors files all use # How to Fix the INTxxx Error and # FAQ. Meanwhile, the expensify-classic Authentication-and-Login-errors files correctly use ## How to Fix and # FAQ. The heading style needs to be unified so that each file has exactly one H1 (the title) and uses H2 for all major sections.

  • Files affected: ~39 instances of # How to Fix (should be ## How to Fix) and ~82 instances of # FAQ (should be ## FAQ).

Duplicate Error Codes Across Multiple Subdirectories
Several error codes (INT245, INT907, INT122) appear in multiple subdirectories within the same platform (e.g., INT245 exists in Authentication-and-Login-errors, Connection-errors, AND Sync-Errors under expensify-classic, totaling 6 files for INT245 alone across both platforms). INT907 appears in 8 different files across 4 subdirectories and 2 platforms. While this may be intentional for different error contexts, the content in some of these duplicated files appears very similar or identical. This could confuse users searching for help and dilute SEO.

Consistent Template Structure (Positive)
Every article follows a predictable and well-organized template: error message display, "Why it happens" section, "How to fix" section with numbered steps, and FAQ. This consistency is a significant strength for both user experience and AI parsing.

Strong YAML Metadata (Positive)
All files include well-formed internalScope fields following the correct pattern: "Audience is [role]. Covers [topic]. Does not cover [excluded areas]." Keywords are relevant and include the error code, integration name, and error type.

Error Message Presentation
Error messages are displayed as plain text paragraphs after "If you see the error:" -- they are not wrapped in blockquotes or code blocks. While this is consistent across all files, using a blockquote (>) for the error message would improve visual distinction and make it easier for users to identify the exact error string.

H4 Usage
Only 2 files use H4 headings (####), which is good. These appear in the expensify-classic Authentication-and-Login-errors/INT245-Sync-Error.md file. However, the HelpDot convention recommends only # and ##, so the H3 (###) usage throughout the files (approximately 110 instances) for sub-steps should be reviewed for consistency with broader HelpDot standards.

Recommendations

  1. [High Priority] Fix heading hierarchy: Change all # How to Fix to ## How to Fix and all # FAQ to ## FAQ across all affected files. Each document should have exactly one H1 heading (the article title).

  2. [Medium Priority] Review duplicate files: Evaluate whether INT245, INT907, and INT122 truly need to appear in multiple subdirectories (Authentication-and-Login-errors, Connection-errors, Sync-Errors) within the same platform. If the content is identical or near-identical, consider consolidating or adding distinguishing context.

  3. [Low Priority] Consider blockquote formatting for error messages: Wrapping the error message text in a blockquote (> INT122: Authentication error during sync.) would visually distinguish the error string from surrounding explanatory text.

  4. [Low Priority] Review H3 usage: The ~110 H3 headings (###) used for sub-steps within "How to Fix" sections work well structurally but may not align with HelpDot conventions that prefer only H1 and H2. Evaluate whether these should be restructured.

Files Reviewed

  • Authentication-and-Login-errors/ (10 files across both platforms) - INT122, INT176, INT245, INT498, INT907. Well-structured with clear authentication fix steps.
  • Connection-errors/ (4 files across both platforms) - INT245, INT907. Content overlaps with Authentication and Sync-Errors directories.
  • Export-Errors/ (48 files across both platforms) - INT009, INT012, INT028, INT035, INT043, INT054, INT068 (in Sync), INT073, INT083, INT084, INT088, INT149, INT176, INT194, INT205, INT225, INT304, INT446, INT459, INT480, INT503, INT592, INT664, INT680, INT771, INT860, INT907, INT993. Comprehensive coverage with actionable fix steps.
  • Sync-Errors/ (14 files across both platforms) - INT068, INT122, INT245, INT402, INT498, INT576, INT907. Good coverage of sync-specific configuration issues.
  • Sage-Intacct-FAQ.md (2 files across both platforms) - Covers automatic export failures, manual export issues, and disconnection steps. Clear and concise.
  • scripts/split-docs-prs.sh (1 file) - Utility script for splitting docs PRs. Well-documented with usage instructions.

This review assessed only the proposed changes (additions) in the PR diff.

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: 47d825b828

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

git fetch origin "$MAIN_BRANCH" 2>/dev/null || true
git checkout -b "$NEW_BRANCH" "origin/$MAIN_BRANCH" 2>/dev/null || git checkout -b "$NEW_BRANCH" "$MAIN_BRANCH"
for p in $PATHS; do
if git ls-tree --name-only "$SOURCE_BRANCH" -- "$p" 2>/dev/null | head -1 >/dev/null; then

Choose a reason for hiding this comment

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

P2 Badge Make missing-path check actually gate git checkout

The existence guard in the loop is ineffective because git ls-tree ... | head -1 >/dev/null returns success even when git ls-tree prints nothing, so the if branch executes for every path. If any configured path is later removed or misspelled in the source branch, git checkout "$SOURCE_BRANCH" -- "$p" will fail under set -e and abort the script before processing remaining paths. This makes the splitter brittle to normal docs tree churn.

Useful? React with 👍 / 👎.


---

# FAQ
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: # FAQ is an H1 heading, but each document should have only one H1 (the title). Change this to ## FAQ so it is a second-level heading under the article title.

This same issue (# FAQ instead of ## FAQ) occurs in every file in this PR -- all 82+ instances need to be corrected. Please do a global find-and-replace of # FAQ to ## FAQ across all added files.


---

# 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 the INT009 Export Error uses an H1 heading. Each document should have exactly one H1 (the title at line 8). Change this to ## How to Fix the INT009 Export Error.

This pattern (# How to Fix ... as H1) appears in all ~39 new-expensify files in this PR. Please do a global find-and-replace of # How to Fix to ## How to Fix across all docs/articles/new-expensify/ files.


---

# FAQ
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: # FAQ should be ## FAQ. Only the article title should be H1. This applies to all files in this PR.

internalScope: Audience is Workspace Admins managing the Sage Intacct integration. Covers resolving the INT245 sync error caused by missing web services user permissions or incomplete reimbursable export configuration. Does not cover export data validation errors.
---

# INT245 Sync Error in 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.

Duplicate content: This file (Connection-errors/INT245-Sync-Error.md) is nearly identical to:

  • Authentication-and-Login-errors/INT245-Sync-Error.md
  • Sync-Errors/INT245-Sync-Error.md

All three have the same title, same error description, same fix steps, and same FAQ questions. Having three near-identical articles for INT245 across subdirectories will confuse both readers and AI retrieval systems. Consider consolidating into a single canonical article and linking from the other locations, or differentiating the content to cover the error from each category's unique angle.

The same duplication applies to INT907 (3 copies) and INT122 (2 copies in Authentication-and-Login-errors and Sync-Errors).


If you see the error:

INT122: Authentication error during sync.
Copy link
Contributor

Choose a reason for hiding this comment

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

Error message formatting: The error text INT122: Authentication error during sync. is displayed as plain text. For better scannability and to visually distinguish the error message from surrounding prose, use a Markdown blockquote:

Suggested change
INT122: Authentication error during sync.
> INT122: Authentication error during sync.

This same formatting issue (plain-text error messages after "If you see the error:") applies to virtually all files in this PR. Consider applying blockquote formatting consistently across all error message lines.


---

## If Exporting as Expense Reports
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 issue: ## If Exporting as Expense Reports is at the same heading level (H2) as ## How to Fix the INT245 Sync Error on line 30. Since this section is a sub-step within the "How to Fix" section, it should be demoted to ### If Exporting as Expense Reports.

The same applies to ## If Exporting as Vendor Bills further down (line 68). Both should be H3 sub-sections under the H2 "How to Fix" heading.

This pattern affects the same INT245 and INT009 files in the Connection-errors and Export-Errors directories under expensify-classic.


---

# 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 the INT245 Sync Error is an H1 heading. This file already has an H1 title on line 8. Change to ## How to Fix the INT245 Sync Error.

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


---

# FAQ
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: # FAQ should be ## FAQ.

Suggested change
# FAQ
## FAQ


If you see the error:

INT245 Sync Error: Invalid credentials for Sage Intacct. The Sage Intacct user is missing required permissions or the reimbursable export option isn’t fully configured.
Copy link
Contributor

Choose a reason for hiding this comment

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

Error message formatting: The error text is rendered as plain paragraph text. Wrap it in a blockquote for better visual distinction:

Suggested change
INT245 Sync Error: Invalid credentials for Sage Intacct. The Sage Intacct user is missing required permissions or the reimbursable export option isnt fully configured.
> INT245 Sync Error: Invalid credentials for Sage Intacct. The Sage Intacct user is missing required permissions or the reimbursable export option isn't fully configured.

---

# FAQ

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: # FAQ should be ## FAQ. Only the article title (line 8) should use H1.

Suggested change
## FAQ

internalScope: Audience is Workspace Admins using the Sage Intacct integration. Covers resolving the INT907 error caused by invalid or incomplete Sage Intacct connection configuration. Does not cover other Sage Intacct error codes.
---

# INT907 Error in 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.

Duplicate content: This file (Connection-errors/INT907-Error.md) is identical to Authentication-and-Login-errors/INT907-Error.md and Export-Errors/INT907-Error.md in the same expensify-classic tree (and similarly duplicated across new-expensify). The same article appears in 3 subdirectories with the same title, description, and body content.

Consider a single canonical location for each error code article to avoid content drift and confusion for both readers and search/AI systems.


---

# 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 the INT245 Sync Error is H1, but the article title on line 8 is already the H1. Change to ## How to Fix the INT245 Sync Error.

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


---

# FAQ
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: # FAQ should be ## FAQ.

Suggested change
# FAQ
## FAQ

---

# How to Fix the INT907 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 the INT907 Error is H1. Change to ## How to Fix the INT907 Error to maintain a single-H1 document structure.

Suggested change
## How to Fix the INT907 Error


---

# FAQ
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: # FAQ should be ## FAQ. Only one H1 per document.

Suggested change
# FAQ
## FAQ


---

# FAQ
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: # FAQ should be ## FAQ. Each document should have exactly one H1 heading (the title).

Suggested change
# FAQ
## FAQ


---

## If You Are Not Using Approvals
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 issue: ## If You Are Not Using Approvals is at the same heading level (H2) as ## How to Fix the INT009 Export Error (line 34). Since this is a subsection of the fix instructions, it should be ### If You Are Not Using Approvals. The same applies to ## If You Are Using Approvals (line 60).

This pattern of H2 sub-scenarios being siblings of the parent H2 "How to Fix" heading appears in several expensify-classic files including INT009, INT245, INT073, INT084, INT225, and others.

internalScope: Audience is Workspace Admins using the Sage Intacct integration. Covers resolving the INT122 sync error caused by authentication or Sender ID configuration issues. Does not cover Sage Intacct journal or dimension configuration errors.
---

# INT122 Sync Error in 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.

Duplicate content: This file (Sync-Errors/INT122-Sync-Error.md) covers the same error code and nearly identical content as Authentication-and-Login-errors/INT122-Sync-Error.md in the same expensify-classic tree. Having two copies of the INT122 article in different subdirectories creates maintenance risk and may confuse search indexing. Consider consolidating into a single location.


---

# How to Fix the INT035 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 the INT035 Export Error is H1, but the document already has an H1 title on line 8. Change to ## How to Fix the INT035 Export Error.

Suggested change
# How to Fix the INT035 Export Error
## How to Fix the INT035 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 the INT068 Sync Error is H1. Change to ## How to Fix the INT068 Sync Error to preserve a single-H1 document structure.

Suggested change
## How to Fix the INT068 Sync Error

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.

1 participant