Skip to content

[No QA] Update NS0068 NetSuite export error help articles - #104037

Merged
yuwenmemon merged 2 commits into
mainfrom
claude-updateNS0068HelpArticles
Oct 15, 2026
Merged

yuwenmemon merged 2 commits into
mainfrom
claude-updateNS0068HelpArticles

Conversation

@MelvinBot

Copy link
Copy Markdown
Contributor

Explanation of Change

The NS0068 NetSuite export error message now names the Created From field ID (custbody_createdfrom_expensify) and gives fuller fix steps. This PR updates the New Expensify and Expensify Classic NS0068 help articles to match.

Both articles now:

  • Show the new error text.
  • List all causes: the field doesn't apply to the export record type, is hidden on the preferred form, isn't editable by the Expensify role, or is missing.
  • Add steps to check the field under Customization > Lists, Records, & Fields > Transaction Body Fields (Applies To and Access tabs).
  • Tell admins to update or reinstall the Expensify Connect bundle if the field is missing.
  • Keep the existing form-visibility and Expensify Card journal entry steps.

A cspell:ignore comment covers the field ID, matching the existing pattern in the Update Expensify Connect bundle article.

Fixed Issues

$
PROPOSAL:

Tests

// TODO: The human co-author must fill out the tests you ran before marking this PR as "ready for review"
// Please describe what tests you performed that validates your changed worked.

  • Verify that no errors appear in the JS console

Offline tests

QA Steps

// TODO: These must be filled out, or the issue title must include "[No QA]."
// TODO: The human co-author must fill out the QA tests you ran before marking this PR as "ready for review".
// Please describe what QA needs to do to validate your changes and what areas do they need to test for regressions.

  • 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 verified any copy / text that was added to the app 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 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 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.
  • If the PR adds or modifies the UI:
    • I asked an AI agent to review the changes for accessibility issues and addressed its findings.
    • I tested with a screen reader (VoiceOver on macOS) and verified all new/changed elements are reachable with a logical focus order.
    • I verified all new/changed elements have meaningful accessible names and roles.
    • I verified state changes are announced (e.g. checked/unchecked, expanded/collapsed, selected).
  • 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

@MelvinBot
MelvinBot requested a review from a team October 14, 2026 20:11
@OSBotify

This comment has been minimized.

@yuwenmemon
yuwenmemon marked this pull request as ready for review October 14, 2026 21:53
@melvin-bot

melvin-bot Bot commented Oct 14, 2026

Copy link
Copy Markdown

Product 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?

cc @JmillsExpensify

@melvin-bot
melvin-bot Bot requested review from JmillsExpensify and removed request for a team October 14, 2026 21:54
@melvin-bot

melvin-bot Bot commented Oct 14, 2026

Copy link
Copy Markdown

@JmillsExpensify 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]

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 14, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-14T22:05:27.466954Z c9610b3 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

internalScope: Audience is Workspace Admins using the NetSuite integration. Covers resolving the NS0068 export error caused by the Created From field not being visible on NetSuite transaction forms. Does not cover role permission or token configuration issues.
description: Learn what the NS0068 export error means and how to configure the Created From field (custbody_createdfrom_expensify) in NetSuite so Expensify can set it during export.
keywords: NS0068, NetSuite Created From field error, custbody_createdfrom_expensify, permission to set Created From NetSuite, Transaction Body Fields NetSuite, transaction form visibility NetSuite, Expensify Connect bundle, Expensify Card journal entry error, Expensify NetSuite integration, Workspace Admin
internalScope: Audience is Workspace Admins using the NetSuite integration. Covers resolving the NS0068 export error caused by the Created From field (custbody_createdfrom_expensify) not applying to the export record type, being hidden on the preferred form, not being editable by the Expensify role, or missing from NetSuite. Does not cover token configuration issues.

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.

Terminology/casing: Use lowercase "workspace admins" in running text. Roles are only capitalized when quoting a UI label (per HELPSITE_NAMING_CONVENTIONS.md, Roles).

Follow the steps below to check the field setup, form visibility, and role access in NetSuite.

---

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.

Heading rule: ## headings must use sentence case and be task-based (start with an action verb or question word). Rework to something like ## How to check the Created From field settings in NetSuite (per HELP_AUTHORING_GUIDELINES.md Section 2).

2. Go to **Customization > Lists, Records, & Fields > Transaction Body Fields**.
3. Open the field with the ID **custbody_createdfrom_expensify**.
4. On the **Applies To** tab, confirm the field applies to the record type you're exporting to.
5. On the **Access** tab, confirm the role used by the Expensify connection has **Edit** access to the field.

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 action verb: Use "Select Save" instead of "Click Save". Governance prohibits click/tap; use select for UI interactions (HELPSITE_NAMING_CONVENTIONS.md, Actions).

4. On the **Applies To** tab, confirm the field applies to the record type you're exporting to.
5. On the **Access** tab, confirm the role used by the Expensify connection has **Edit** access to the field.
6. Click **Save**.

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.

Link formatting: Use a relative link, not a full https://help.expensify.com/... URL (HELP_AUTHORING_GUIDELINES.md Section 7: "Use relative links only. Do not use full URLs.").

If you can't find **custbody_createdfrom_expensify**, [update the Expensify Connect bundle](https://help.expensify.com/articles/new-expensify/connections/netsuite/Update-Expensify-Connect-Bundle-in-NetSuite), or reinstall it, before continuing.

---

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.

Heading rule: ## headings must be sentence case and task-based (start with an action verb or question word), e.g. ## How to make the Created From field visible on the preferred form (HELP_AUTHORING_GUIDELINES.md Section 2).

## Make the Created From Field Visible on the Preferred Form

1. Go to **Customization > Forms > Transaction Forms**.
2. Locate the transaction form marked as **Preferred** for your export type.

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 action verb: Use "Select Edit" instead of "Click Edit" (HELPSITE_NAMING_CONVENTIONS.md: never use click/tap; use select).

2. Locate the transaction form marked as **Preferred** for your export type.
3. Click **Edit**.
4. Locate the **Created From** field.
5. Ensure the field is marked as **Show**.

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 action verb: Use "Select Save" instead of "Click Save" (HELPSITE_NAMING_CONVENTIONS.md, Actions).

4. Confirm **Created From** is marked as **Show**.
5. Click **Save**.
1. Go to **Customization > Lists, Records, & Fields > Transaction Body Fields** and open **custbody_createdfrom_expensify**.
2. On the **Applies To** tab, confirm the field applies to journal entries, then click **Save**.

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 action verb: Use "then select Save" instead of "then click Save" (HELPSITE_NAMING_CONVENTIONS.md: never use click/tap).

1. Go to **Customization > Lists, Records, & Fields > Transaction Body Fields** and open **custbody_createdfrom_expensify**.
2. On the **Applies To** tab, confirm the field applies to journal entries, then click **Save**.
3. Go to **Customization > Forms > Transaction Forms**.
4. Click **Edit** next to the preferred journal entry form.

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 action verb: Use "Select Edit" instead of "Click Edit" (HELPSITE_NAMING_CONVENTIONS.md, Actions).

4. Click **Edit** next to the preferred journal entry form.
5. Go to **Screen Fields > Main**.
6. Confirm **Created From** is marked as **Show**.
7. Click **Save**.

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 action verb: Use "Select Save" instead of "Click Save" (HELPSITE_NAMING_CONVENTIONS.md, Actions).

internalScope: Audience is Workspace Admins using the NetSuite integration. Covers fixing the NS0068 export error caused by the Created From field not being visible on the preferred NetSuite form. Does not cover other NetSuite error codes.
description: Learn how to fix the NS0068 export error in NetSuite when Expensify can't set the Created From field (custbody_createdfrom_expensify) during export.
keywords: NS0068, NetSuite Created From field not visible, custbody_createdfrom_expensify, permission to set value Created From, Transaction Body Fields NetSuite, NetSuite transaction form visibility, Expensify Connect bundle, Expensify Card journal entry error, Expensify NetSuite export error, Workspace Admin
internalScope: Audience is Workspace Admins using the NetSuite integration. Covers fixing the NS0068 export error caused by the Created From field (custbody_createdfrom_expensify) not applying to the export record type, being hidden on the preferred form, not being editable by the Expensify role, or missing from NetSuite. Does not cover other NetSuite error codes.

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.

Terminology/casing: Use lowercase "workspace admins" in running text. Roles are only capitalized when quoting a UI label (HELPSITE_NAMING_CONVENTIONS.md, Roles).

@@ -29,6 +35,21 @@ Expensify must be able to write to the Created From field during export.

## How to Fix the NS0068 Export Error

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.

Heading rule: Avoid ### headings — only # and ## are allowed (HELP_AUTHORING_GUIDELINES.md Section 4/9). The heading must also be sentence case and task-based, e.g. ## How to check the Created From field settings.


1. Log in to **NetSuite** as an Administrator.
2. Go to **Customization**.
3. Select **Lists, Records, & Fields**.

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 action verb: Use "Select Transaction Body Fields" instead of "Click ...". Governance prohibits click/tap; use select for UI interactions (HELPSITE_NAMING_CONVENTIONS.md, Actions).

2. Confirm **custbody_createdfrom_expensify** applies to journal entries, using the steps in **Check the Created From Field Settings** above.
3. Go to **Customization**.
4. Select **Forms**.
5. Click **Transaction Forms**.

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 action verb: Use "Select Transaction Forms" instead of "Click Transaction Forms" (HELPSITE_NAMING_CONVENTIONS.md: never use click/tap; use select).

3. Go to **Customization**.
4. Select **Forms**.
5. Click **Transaction Forms**.
6. Click **Edit** next to the preferred **Journal Entry** form.

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 action verb: Use "Select Edit" instead of "Click Edit" (HELPSITE_NAMING_CONVENTIONS.md, Actions).

@github-actions

Copy link
Copy Markdown
Contributor

HelpDot Documentation Review

Overall Assessment

This PR updates both the New Expensify and Expensify Classic NS0068 NetSuite export error articles to match a new error message that names the Created From field ID (custbody_createdfrom_expensify). The changes meaningfully improve diagnostic value: they enumerate all causes (field not applying to the record type, hidden on the preferred form, not editable by the Expensify role, or missing entirely) and add steps to check the field under Transaction Body Fields. A cspell:ignore comment is correctly added for the field ID, consistent with the existing Connect bundle article. Content accuracy and completeness are strong; the main gaps are style-compliance details in the added lines.

Scores Summary

  • Readability: 8/10 - Added content is clear, well-sequenced, and action-oriented. Enumerated cause lists and the new field-check steps improve scannability and diagnostic flow.
  • AI Readiness: 7/10 - Updated internalScope, description, and keywords align with real search intent and now include the field ID. Lowered because the Classic file's diff adds another ### H3 subsection, violating the only-#-and-## heading hierarchy rule.
  • Style Compliance: 5/10 - Several added lines use "Click" for UI interactions instead of select, added headings use title case instead of sentence case, and the New Expensify file introduces a full-URL cross-link where relative links are required.

Key Findings

  • Positive: Accurate, more complete troubleshooting. The new causes and the Transaction Body Fields check (Applies To / Access tabs) are a real improvement, and both articles stay on a single workflow.
  • Positive: Metadata (description, keywords, internalScope) is updated consistently across both articles and reflects the new error text and field ID.
  • Positive: cspell:ignore for custbody / createdfrom follows the existing repo pattern.
  • Issue (Style): Added steps use "Click" (e.g., "Click Save", "Click Edit", "Click Transaction Body Fields"). Governance requires select for all UI interactions, never click/tap. This appears in both files' new lines.
  • Issue (Style): Added/modified headings use title case (e.g., "Check the Created From Field Settings in NetSuite"). Sub-headings must use sentence case.
  • Issue (AI Readiness / structure): The Classic article's diff adds ### Check the Created From Field Settings, continuing a ### pattern. The spec allows only # and ## headings. The New Expensify file correctly uses ## for its new sections.
  • Issue (Cross-linking): The New Expensify file adds a full URL link (https://help.expensify.com/articles/...) for the Connect bundle. Governance requires relative links only and no full URLs; the Classic file leaves the same reference as plain text, so the two are inconsistent.

Recommendations

  • Replace "Click" with select in all newly added/edited steps across both articles.
  • Convert added headings to sentence case (e.g., "Check the Created From field settings in NetSuite"), keeping proper nouns like NetSuite capitalized.
  • In the Classic article, demote the new ### Check the Created From Field Settings to a ## task-based section to comply with the two-level heading rule (ideally align both articles' structure).
  • Change the New Expensify Connect bundle link from a full URL to a relative link, and add the same relative cross-link in the Classic article for consistency.

Files Reviewed

  • docs/articles/new-expensify/connections/netsuite/Troubleshooting/Export-Errors/NS0068-Export-Error.md - Strong content update; fix "Click" usage, heading casing, and the full-URL link.
  • docs/articles/expensify-classic/connections/netsuite/Troubleshooting/Export-Errors/NS0068-Export-Error.md - Strong content update; fix "Click" usage, heading casing, and the added ### heading level.

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

@OSBotify

Copy link
Copy Markdown
Contributor

@JmillsExpensify JmillsExpensify left a comment

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.

LGTM

@yuwenmemon
yuwenmemon merged commit 31e51ba into main Oct 15, 2026
15 of 16 checks passed
@yuwenmemon
yuwenmemon deleted the claude-updateNS0068HelpArticles branch October 15, 2026 17:45
@OSBotify

Copy link
Copy Markdown
Contributor

🚀 Deployed to staging by https://github.com/yuwenmemon in version: 9.5.13-0 🚀

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

@OSBotify

Copy link
Copy Markdown
Contributor

🚀 Deployed to production by https://github.com/grgia in version: 9.5.13-6 🚀

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

Bundle Size Analysis (Sentry):

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.

4 participants