Back
⚠️ Error & Warning Copy Audit — Settings (Per-Transaction)
Synder · mzkt.by (Stripe) integration · Dasha Research · March 18, 2026
1 critical bug 5 error messages 5 copy inconsistencies 11 tabs audited
📋
Scope: Complete audit of all error messages, warnings, validation copy, upsell blocks, and helper text across all 11 settings tabs in per-transaction sync mode. Tested on demo.synderapp.com with live Stripe (mzkt.by) + QuickBooks Online integration.
📊 Error Copy at a Glance
1
Critical blocking bug
Affects ALL tabs
5
Distinct error messages
3 unclear or misleading
2
Upsell/gating messages
Inconsistent wording
5
Copy consistency issues
Voice, terminology, formatting
11
Tabs audited
100% coverage
~45
Helper texts cataloged
Every toggle & dropdown
🚨 Critical Issues
🔥 Settings Page Never Finishes Loading
"Update unavailable: wait until your settings page is loaded and try again."

The Update button is permanently blocked by a JS loading state that never resolves. A hidden spinner (fa-spinner) remains in the DOM across 29+ form fields. Users can change settings but can never save them.

⚠️ Silent Dependency Block
"Turn on auto-sync"

When Auto-import is OFF, the Auto-sync toggle shows this cryptic label with zero explanation. User doesn't know why it's disabled or that turning on Auto-import is the fix.

⚠️ Inconsistent Upsell Copy
"Upgrade to use"
"This feature is available on higher plans. Upgrade plan"

Two completely different messages for the same concept (plan-gated features). Neither mentions which plan is needed or what it costs.

🔴 All Error & Warning Messages Found
Every distinct error message, where it appears, what triggers it, and what's wrong with the copy.
1. Update Unavailable Popover
Critical Popover All tabs
"Update unavailable: wait until your settings page is loaded and try again."
TRIGGER

Clicking the "Update" button on any settings tab. The page has a permanent loading state (29 hidden spinners in the DOM that never resolve). Blocking the save entirely.

UX PROBLEMS
  • Implies user needs to wait — but there's nothing they can do
  • No indication of what is loading
  • No timeout, retry button, or help link
  • Appears as a Bootstrap popover attached to the button — easy to miss
Suggested fix: Add a timeout (e.g., 10s). If loading doesn't complete, show: "Some settings are still loading. You can save current changes or refresh the page." Allow partial save.
2. Auto-Sync Disabled State
High Inline label General tab
"Turn on auto-sync"
TRIGGER

Toggle Auto-import to OFF. The Auto-sync section changes to show this label instead of the On/Off toggle.

UX PROBLEMS
  • "Turn on auto-sync" reads like a CTA, not an explanation
  • No mention of why auto-sync is disabled
  • User doesn't know Auto-import being OFF is the blocker
  • The helper text says "If you disable Auto-import setting, Auto-sync won't work" but that text is part of the original state — not the disabled state
Suggested fix: Replace with: "Auto-sync requires Auto-import to be enabled. Turn on Auto-import ↑ to use this feature."
3. Plan-Gated Feature (Apply Location)
High Inline upsell General tab
"Upgrade to use"
TRIGGER

Visible by default next to the "Apply location" toggle on the General tab. The toggle is ON/OFF but there's an inline "Upgrade to use" label.

UX PROBLEMS
  • Doesn't say which plan is needed
  • No price, no comparison, no link to pricing page
  • Inconsistent with the Product Mapping upsell (different wording)
  • Toggle appears interactive but the feature won't work
Suggested fix: "Available on Medium plan and above. Compare plans →" — make it consistent across all upsell points.
4. Plan-Gated Feature (Product Mapping)
High Inline upsell Product mapping tab
"This feature is available on higher plans. Upgrade plan"
TRIGGER

Visible by default when opening the Product mapping tab. The entire tab content is replaced by this message.

UX PROBLEMS
  • "Higher plans" is vague — which plan?
  • "Upgrade plan" reads like a button label, not a link or CTA
  • Different wording than "Upgrade to use" (Apply location)
  • Tab is visible in sidebar but completely empty — confusing
Suggested fix: Same as #3 — standardize: "Product mapping is available on Medium plan and above. Compare plans →"
5. QuickBooks Classes Warning (Hidden)
Medium Inline warning Sales tab (hidden in DOM)
"Warning: The classes feature is enabled in QuickBooks, however, there are no actual classes found in your QuickBooks company. Please create the required classes in QuickBooks to proceed."
TRIGGER

Present in the DOM but hidden. Surfaced when QuickBooks has the "classes" feature enabled but no classes have been created yet.

UX PROBLEMS
  • "classes" is QBO jargon — no explanation for non-accountants
  • "Please create the required classes in QuickBooks to proceed" — no link, no instructions
  • Users don't know what "proceed" means in this context
  • If visible, it would block configuration without guidance
Suggested fix: "Your QuickBooks company has Classes enabled but none are created yet. Create classes in QuickBooks → or disable Classes in QuickBooks settings to continue."
📝 Full Copy Catalog — All Settings Tabs
Every toggle, dropdown, and helper text across all 11 tabs. Current copy as of March 18, 2026.
SettingStateTypeHelper Copy
📋 General Tab
Auto-import ON Toggle
If you enable this setting (recommended), from now on, Synder will fetch all data from your payment/ecommerce platform. To get past data, please go to Import historical data page>>
⚠️ "(recommended)" but ships ON — inconsistent with description implying it might be off
Auto-sync OFF Toggle
If enabled (recommended), from now on, all new transactions will be synced to your books automatically. If you disable Auto-import setting, Auto-sync won't work.
⚠️ Says "(recommended)" but defaults to OFF. Dependency note is buried in helper text. When Auto-import is OFF, shows "Turn on auto-sync" with no context.
Skip synchronization of duplicated transactions ON Toggle
If enabled, the already existing transactions in your company will be skipped in the synchronization.
Process transactions in multiple currencies ON Toggle
If disabled, Synder will only sync transactions matching your accounting platform home currency. Other transactions will be skipped.
Archive Pending transactions after set number of days OFF Toggle
If enabled, Synder will automatically archive transactions that remain in Pending status for longer than the specified number of days.
Apply location OFF Toggle
It is an option to assign a location to each transaction.
"Upgrade to use"
⚠️ No plan name mentioned. Vague upsell copy.
Sync payments without invoices as Sales receipts Dropdown
Use this setting to post your Stripe payments not linked to invoices as Deposits or Sales Receipts. You can then apply deposits to invoices manually. Learn more >>
Balance Reserve account Balance Reserve Dropdown
Stripe reserves are funds that Stripe withholds/returns from/to a seller's payouts for various reasons. Learn more >>
💰 Sales Tab
Clearing account Stripe mzkt.by Dropdown
Clearing account represents the payment processor in your books. All synced transactions will be deposited here. Learn more >>
Payment Method Stripe Dropdown
This Payment Method will be set for QuickBooks Sales Receipts, Refund Receipts, Payments and Expenses.
Enable QuickBooks Doc Numbers OFF Toggle
By enabling this configuration your transactions will follow the standard QuickBooks Doc Number sequence.
Apply generic customer OFF Toggle
It is an option to assign a generic customer instead of sending over each customer on sales transaction individually.
Generic customer (conditional) Dropdown
If the generic customer setting is "ON", choose or type in a name to be used. All of your transactions will be synchronized under the default customer name.
Applied Balance Account Stripe sales Dropdown
Used to record Stripe customer applied balances when they reduce an invoice or payment total. Synder uses this account to create and map the 'Stripe applied balance' product.
Discount product account Dropdown
Select an account from the books that will be used when creating a new discount product.
Sync discounts as products OFF Toggle
Any discount will be synced as an additional product with default "Stripe discount" name or discount name from the integration (if any).
🧾 Invoices Tab
Apply payments to unpaid Invoice/Bill transactions OFF Toggle
Payment will be applied to the matching unpaid Invoice/Bill transaction.
Cancel sync if there is no matching open invoice found for a payment OFF Toggle
If you enable this setting, Synder will search across the existing invoices in your books and if the matching invoice doesn't exist, it will cancel synchronization.
Sync unpaid (open) invoices OFF Toggle
This setting allows you to sync open invoices with your accounting system. Once received, the payment will be automatically attached to the corresponding invoice and the invoice will be marked as paid. Learn more >>
Sync zero invoices OFF Toggle
Enable this setting to import and sync invoices where all line amounts are 0 and the totals are 0. Learn more >>
📦 Products/Services Tab
Record transactions with Original Dropdown
product/service name and SKU (if any).
⚠️ Fragment — no full sentence, no context
If matching product NOT found Create new product Dropdown
(no helper text)
⚠️ Missing helper text — "Cancel synchronization" option needs explanation of what happens to the transaction
Created product type Non-inventory Dropdown
(no helper text)
Inventory management OFF Toggle
You can configure the application to create inventory products in your books. Synder will create a new inventory product if no product with the same name exists.
Income account Stripe sales Dropdown
Track the sales of the inventory product on this account.
Inventory Asset account Inventory Asset Dropdown
This account will be used to track the cost of purchased products.
Cost of goods sold account Cost of Goods Sold Dropdown
Cost of inventory items will be tracked on this account.
Inventory adjustment account Inventory Shrinkage Dropdown
This account will be used to adjust inventory in case of shrinkage or different write-offs.
Inventory start date Use the transaction date Dropdown
Select the inventory start date that Synder will use when creating the new inventory product. Please note that posting sales of inventory products, which occurred before the inventory start date, may lead to incorrect inventory values.
Initial Quantity on Hand Use the quantity of sold items Dropdown
Select the initial Quantity on Hand that Synder will use when creating the new inventory product.
Get product name from a description OFF Toggle
When "ON", Synder will be taking a product name from a description of transaction or order.
🔗 Product Mapping Tab
(Entire tab) Upsell
"This feature is available on higher plans. Upgrade plan"
If your product names match between your sales integration and your accounting integration, Synder will match them automatically. You can map your products here if you want to override this or if names don't match.
🏛️ Taxes Tab
Apply Taxes ON Toggle
Tax details of your transactions will be recorded as an additional product line in QuickBooks.
Apply generic tax code OFF Toggle
(no helper text)
⚠️ Missing helper — what does "generic tax code" mean?
Default tax code Dropdown
(no helper text)
💸 Fees Tab
Clearing account Stripe mzkt.by Dropdown
Clearing account represents the payment processor in your books. All synced transactions will be deposited here. Learn more >>
Vendor Stripe Dropdown
App will use this QuickBooks Vendor for Stripe fees. Select available vendor or type new one.
⚠️ "App" — should be "Synder" (inconsistent voice)
Category Stripe fees Dropdown
Stripe fees are considered an expense. Please, specify a category to which Stripe fees will be applied.
💸 Application Fees Tab
Clearing account Stripe mzkt.by Dropdown
Clearing account represents the payment processor in your books. All synced transactions will be deposited here. Learn more >>
Category Stripe Other fees Dropdown
Stripe application fees are considered an expense. Please, specify a category to which Stripe application fees will be applied.
📊 Expenses Tab
Clearing account Stripe mzkt.by Dropdown
Clearing account represents the payment processor in your books. All synced transactions will be deposited here. Learn more >>
Category Stripe expenses Dropdown
It specifies the category to which Stripe expenses are applied.
⚠️ "It specifies" — who is "it"? Impersonal voice different from other tabs
Generic Vendor OFF Toggle
Enable this option to assign a generic vendor to each transaction instead of sending over each vendor on expense transaction individually. (E.g. Vendor name: Stripe)
Generic Vendor Name Stripe Dropdown
Choose or type in a name to be used. All of your transactions will be synchronized under the generic vendor name.
🏦 Payouts Tab
Process payouts ON Toggle
If "No" app won't receive and synchronize payouts.
⚠️ Says "No" but toggle uses On/Off. Also "app" not "Synder".
Transfer Funds To Checking Dropdown
App will transfer funds from sales bank account to this one for payout transactions.
⚠️ "App" — should be "Synder"
🌐 Multicurrency Tab
(Entire tab) Info
No settings — instructional tab directing users to Sales, Fees, and Expenses tabs for per-currency account configuration.
🔍 Copy Consistency Issues
Patterns that break the user's mental model across settings tabs.
1. "App" vs "Synder" — Split personality
USES "APP"
  • Fees → Vendor: "App will use this QuickBooks Vendor…"
  • Payouts → Process: "If 'No' app won't receive…"
  • Payouts → Transfer: "App will transfer funds…"
USES "SYNDER"
  • General → Auto-import: "Synder will fetch all data…"
  • Invoices → Sync unpaid: "Synder will search across…"
  • Products → Inventory: "Synder will create a new…"
Fix: Global find-replace "App will" → "Synder will" across all settings copy.
2. Toggle state labels: On/Off vs Yes/No

Payouts → Process payouts helper says "If 'No'…" but the actual toggle shows On/Off. This was also flagged in the previous audit. The toggle UI says one thing, the copy says another.

Fix: Rewrite helper: "If disabled, Synder won't receive or sync payouts."
3. Two different upsell messages
APPLY LOCATION (GENERAL)
"Upgrade to use"
PRODUCT MAPPING
"This feature is available on higher plans. Upgrade plan"
Fix: Standardize all upsell messages: "Available on [Plan Name] and above. Compare plans →"
4. Inconsistent "Learn more" links
HAS "LEARN MORE >>"
  • Clearing account (Sales, Fees, etc.)
  • Balance Reserve account
  • Sync payments without invoices
  • Sync unpaid invoices
  • Sync zero invoices
NO "LEARN MORE" (SHOULD HAVE)
  • Inventory management (complex topic)
  • Product mapping (locked behind paywall)
  • Cancel sync if no matching invoice
  • Apply generic tax code
  • COGS / Inventory adjustment
Fix: Add "Learn more" links to any setting that involves accounting concepts (inventory, COGS, taxes, reconciliation).
5. Helper text voice inconsistency

Helper texts alternate between 3 different patterns:

Pattern A — "If enabled…": "If enabled, the already existing transactions will be skipped…"
Pattern B — "It is an option…": "It is an option to assign a generic customer…"
Pattern C — "It specifies…": "It specifies the category to which…"
Fix: Standardize on Pattern A: "When enabled, Synder will [action]. When disabled, [consequence]." Clear, consistent, action-oriented.
✅ Recommendations — Priority Order
Fix in this order for maximum UX impact with minimum effort.
#WhatImpactEffortPriorityAction
1 "Update unavailable" blocker Critical Medium P0 Investigate why loading spinners never resolve. Add timeout + graceful fallback. Allow partial save.
2 "App" → "Synder" High Very Low P0 Global find-replace in all settings helper texts. 5-minute fix.
3 Auto-sync disabled state copy High Very Low P0 Replace "Turn on auto-sync" with "Auto-sync requires Auto-import to be enabled."
4 Standardize upsell messages High Low P1 Create one upsell component: "[Feature] is available on [Plan] and above. Compare plans →"
5 Yes/No → On/Off in Payouts High Very Low P1 Change "If 'No'…" to "When disabled, Synder won't receive or sync payouts."
6 Add "Learn more" to complex settings Medium Low P1 Add help links to: Inventory management, Product mapping, Apply generic tax code, COGS fields.
7 Standardize helper text voice Medium Medium P2 Rewrite all helpers to: "When enabled, Synder will [action]. When disabled, [consequence]."
8 QBO Classes warning copy Medium Low P2 Add link to QBO class management. Explain in plain English what "classes" are and why they matter.
9 Add missing helper texts Medium Low P2 Add helpers to: Record transactions with, If matching product NOT found, Created product type, Apply generic tax code, Default tax code.
💡
Quick wins (under 1 hour): Items #2, #3, and #5 are all text changes — no component work, no design review. Can be done in a single PR.
Dasha Research · Error Copy Audit · March 18, 2026 · Synder Settings (Per-Transaction Mode)