Complaint handling, allowances and approval limits
An allowance is something your business may give a customer to put a problem right: for example, a discount, refund or store credit, or a voucher your team fulfils. An apology or a decision not to compensate is not an allowance.
How it works
Section titled “How it works”An offer, approval and fulfilment are different. Choosing an allowance does not issue it. A connected action still has to succeed. A manual allowance still needs your team to fulfil it. Approval can be automatic within your configured limits; it does not always require a person.
Complaints & goodwill is on by default. Its complaint flow is designed to:
- Establish what happened and which order is involved, if any.
- Check the available business records and the customer’s previous complaints and allowances. A failed lookup is not evidence that the claim is true or false.
- Record the claim, checked evidence and assessment before proposing a resolution.
- Follow the policy for the assessment.
| Assessment | Policy route |
|---|---|
| The records support a problem and an allowance fits | Use the connected action under its limits and approval rules, or involve staff for a manually fulfilled allowance. |
| The records confirm the situation but show normal progress and no allowance is owed | Explain the records and the available next step, rather than involving staff merely because no allowance fits. If the customer remains dissatisfied, involve the team. |
| The claim cannot be confirmed | Use When a claim can’t be verified, described below. |
| The records contradict the claim | Do not grant an allowance on that basis. Explain the records and offer human review if the customer disagrees. |
Staff review can include the recorded claim, evidence and proposed allowance. An approval without a recorded assessment is flagged as missing that assessment. This is not the same as proof that the customer is wrong.
Use Support Team and the team channel for staff involvement. To answer the customer yourself, use a takeover in the Inbox. Turning off complaint handling is not the same as pausing the whole bot, and removes this complaint-handling flow.
When a staff decision depends on something an available Expert can answer, the bot asks the Expert first and involves staff afterwards with the Expert’s answer. The answer is evidence for staff, not approval: staff still decide, and an allowance still follows its own approval flow. After the Expert replies, the bot checks again whether staff are still needed. If the Expert does not answer in time, the request reaches staff through the same deadline path as before.
Moving existing store credit between the same customer’s own accounts is not a new allowance. It follows the move action’s own switch and approval setting when each currency’s total stays unchanged, and does not use an allowance frequency window. Adding new credit still follows this ladder and its limits. Reducing the total in any currency always requires a person to approve it. Adding credit in another currency still follows the ladder and allowance frequency window. See store-credit moves and recovery.
Where to find it
Section titled “Where to find it”Settings → Bot → Handbook → Our policies brings complaint handling, Allowances and Service actions together. Available on/off switches are on the policy rows. Open the Complaints & goodwill rule in What [assistant name] does when… for Who is this for and Required verification. Its separate staff approval row sets Who may approve. Invocation guidance stays under What [assistant name] does when…; there is no separate Shopify Policy page.
For history, open Bot → Logs → Goodwill activity, or the history link in the Handbook’s policy section.
Set it up
Section titled “Set it up”- Check that Complaints & goodwill is on.
- Choose When a claim can’t be verified.
- Choose your Complaint-handling posture.
- Review each connected allowance’s Opening offer, Auto up to, Maximum and approval rules.
- Review Frequency windows before allowing automatic approval.
Most changes save automatically, sometimes when you leave a field. Wait for saving to finish. The advanced frequency editor has its own Save frequency windows button. Show advanced options starts hidden and reveals limits, guidance and other detailed controls.
You need permission to edit bot settings. Viewing settings does not grant editing rights. The Handbook also shows these policies; editing there requires both Handbook editing permission and permission to change the underlying settings. Ask the workspace owner to check permissions if controls are unavailable.
For connected store allowances, see connecting Shopify and Shopify actions and approvals.
Add a manual allowance
Section titled “Add a manual allowance”- In Core Policy, find Manual allowances.
- Enter a name under Add a manual allowance.
- Click Add a manual allowance.
- Open Show advanced options.
- Write Guidance explaining when it applies, what must be checked and what staff must do.
- Turn on Enabled when the allowance is ready.
Settings
Section titled “Settings”Manual allowances: your team fulfils them
Section titled “Manual allowances: your team fulfils them”Use a manual allowance for something staff will arrange themselves, such as a replacement or a service voucher. Adding one does not connect a fulfilment service.
New manual allowances start disabled. Click a custom allowance’s name to rename it. Use its delete control and confirm Delete allowance? to remove it. Built-in Shopify allowance names cannot be renamed or deleted here.
Opening offers, limits and exceptions
Section titled “Opening offers, limits and exceptions”These controls apply where the allowance supports them. Connected allowances show an Opening offer (%): or Opening offer (store currency):. This is a starting proposal, not a guaranteed grant or a permission to exceed approval limits.
| Setting | What it does | Default |
|---|---|---|
| Opening offer | Starting value for the connected allowance. An offer above the automatic ceiling needs approval. Lowering the maximum also brings the opening offer within it. | Discount: 10%; Refund: 10%; Store credit: 10 in store currency. |
| Blocked below | Minimum permitted proposal. Below it, the action is blocked unless an exception approver is configured. | No floor. |
| Auto up to | Allows automatic approval through this value, subject to other checks and frequency windows. It is not the maximum staff may approve. | No auto-approve band. |
| Maximum | Upper bound for ordinary approval. Above it, the action is blocked unless an exception approver is configured. Hard execution limits still apply. | Discount: 30% or 100 in store currency; Refund: 100% of the order total; Store credit: 100 in the applicable currency. |
| Who may exceed the bounds: | Routes proposals below the floor or above the maximum to the selected exception approver. It does not automatically approve them. | No exception approver. |
| Guidance | Explains when this allowance fits and what must be verified. Include any business-specific handling notes here. | Built-in text for Shopify allowances; blank uses the built-in default where supplied. |
Hard execution limits: omotto will not execute a percentage discount above 90%, or a refund or store credit above 100,000 units of the currency used for that refund or credit. These are not editable policy bounds. Even the exception approver cannot override them.
For exception approvers, choose an available person, role, group, permission-based audience or the whole workspace. Clearing that choice means out-of-bounds proposals are blocked, not open to everyone.
Max per currency
Section titled “Max per currency”Under Max per currency, use + Add currency to add a three-letter Currency code, such as USD. Each currency can appear once.
- Store credit: Minimum amount, Automatic approval ceiling and Maximum amount customize the bounds in that currency. An unset currency value falls back to the corresponding general bound.
- Refund: only Maximum amount is available here. It adds a money ceiling in the order’s currency alongside the percentage limit. Minimum and automatic approval remain percentage-based. Without a currency-specific ceiling, the percentage limit still applies.
There are no currency-specific overrides by default. Enter at least one amount in every added row, or remove it. Removing a currency row removes its overrides; it does not remove the general bounds. These settings do not convert money or make a currency available to the store.
Reset to default
Section titled “Reset to default”A customized Shopify policy row offers Reset to default. It clears that row’s numeric overrides, discount defaults and guidance, including its exception-approver choice. It does not turn a provider capability on or change its separate approval mode or approval pool.
A text field’s Reset to default restores only that text’s built-in guidance. Clearing a default-backed text field also returns to its default; it does not switch the feature off.
Order changes are a separate service action
Section titled “Order changes are a separate service action”Change an order is not a new goodwill allowance. It starts off and has its own switch, with no separate Order changes switch. Its money limits apply to the size of the change in the order’s currency, not to an opening compensation offer. There is no opening-offer or discount-code control on this row. A permitted change with no price difference can run automatically after you enable it; a configured positive minimum still applies. See Shopify order changes, limits and approvals before enabling it.
The action’s guidance still describes the store’s workflow. Separately, each order-change type defines when it is allowed, how it may be carried out, whose order can be changed and whether a person must approve. Enabling the action or staying within its money limits does not bypass that policy. A type that requires a person still needs approval even when the price does not change. You can ask the Coach to propose a policy change for your review; a written lesson alone does not change these settings.
When a claim can’t be verified
Section titled “When a claim can’t be verified”In Core Policy, choose one of these options:
| Option | What it means | Default |
|---|---|---|
| Consult staff | Ask the team to review the unconfirmed claim. | Selected. |
| Apology only | Respond with an apology rather than offering an allowance for the unconfirmed claim. | Not selected. |
| Offer an allowance | Select the enabled allowances eligible for this situation. Their own guidance, limits and approval rules still apply. | Not selected; no allowances selected initially. |
For Offer an allowance, select at least one allowance. Selecting several is a set of alternatives, not a ladder from cheapest to most expensive. If none fits, or the selected allowances are no longer enabled, the route is staff consultation.
Offering permission is not execution permission. A manual allowance still goes to staff for fulfilment. A connected allowance follows its approval rules, including configured automatic approval where applicable.
Complaint-handling posture and custom policy text
Section titled “Complaint-handling posture and custom policy text”| Complaint-handling posture | What it emphasizes |
|---|---|
| Conservative | Verify against reliable records, prioritize practical fixes and staff review when uncertain, and limit allowances to verified loss. |
| Balanced — default | Fix the underlying problem first, verify the claim, and prefer the smallest allowance that genuinely puts things right. |
| Generous | Restore the relationship with a meaningful allowance where the complaint is plausible and policy permits, while retaining verification, limits and staff review for uncertainty. |
| Custom | Your own Custom policy text, rather than a named posture. |
Named postures show a Behavioral summary. Use Customize policy text to start editing from the selected posture’s text. Custom wording does not change numeric limits, connect an action or select the allowances for unverifiable claims. Resetting custom policy text returns to the built-in Balanced policy.
Under advanced options, Offering an allowance controls how an already granted allowance is worded to the customer. Its default acknowledges the original issue, apologizes again, presents the resolution warmly and states practical terms such as use, minimum purchase or expiry. This changes wording, not eligibility, value or approval.
Frequency windows: repeat allowances need review
Section titled “Frequency windows: repeat allowances need review”The default Frequency windows rule requires staff approval if the customer received any allowance in the last 30 days. All allowances share that window. This is an automatic-approval safeguard, not a ban on staff granting another allowance.
For one shared window, change the days in Require staff approval if this customer received any allowance in the last … days. Use a positive whole number. The change saves automatically.
For different windows:
- Open Show advanced options, or Edit advanced configuration if a split policy is already shown.
- Click + Split into a separate group.
- Select the allowances that should share that group’s window.
- Set its window in days.
- Click Save frequency windows.
Receiving any allowance in a group prevents automatic approval of another allowance in that same group during its window. An allowance can belong to only one group; selecting it elsewhere moves it. While at least one custom group remains, an allowance left out of every group has no frequency-window check. Review group membership carefully. Clearing every group instead restores the default, as explained below. Remove an unwanted group with Remove group.
Shopify Policy: discounts, refunds and service actions
Section titled “Shopify Policy: discounts, refunds and service actions”Allowances contains Discount, Refund and Store credit. They start enabled when Shopify allowances are first created, but monetary auto-approval is off by default. The store must be connected and the relevant action enabled. In the Handbook, use the allowance row’s on/off switch. A disconnected integration can be shown as Integration disconnected — recommend-only; an approval cannot repair the connection.
Store allowances appear first in their fixed order, followed by manual allowances in the order you added them. The advanced order summary is read-only; you cannot reorder the ladder.
Discount settings
Section titled “Discount settings”Under advanced Discount settings, choose the default type:
- Percentage — default; the offer and bounds are percentages.
- Fixed amount — the offer and bounds use store currency. Default opening value: 10; default maximum: 100.
- Free shipping — creates a shipping discount code. Numeric percentage and amount bounds do not apply; this does not mean other approval checks disappear.
Code prefix sets the beginning of newly generated codes; default SAVE. Letters and digits are kept and letters become uppercase. Maximum validity (days) starts at 90 and limits new codes and extensions of existing codes. Clearing either override restores its default.
Combination policy is informational, not an editable setting here. omotto-created percentage/fixed-amount codes allow combination with shipping discounts only; free-shipping codes allow combination with order and product discounts. Shopify also requires the other discount to allow the combination. See Shopify’s combination rules.
Existing codes and service-action approval
Section titled “Existing codes and service-action approval”In the Handbook’s Service actions, Update discount code and Deactivate discount code show Follows Discount. Update discount code inherits Discount’s limits and approval pool. Deactivate discount code has its own Approval and Who may approve controls. Both follow Discount’s capability switch. Discount’s approval pool is edited in the separate staff approval row on the Complaints & goodwill rule; other editable approval pools appear on their action rows.
Service actions contains Send payment request, which resends an eligible unpaid order’s payment request email (not a tax invoice or receipt), and Add order note, which appends a dated line for the store team. These are service work, not allowances. They do not charge or refund the customer. Complaint posture, allowance frequency and granted-offer wording do not apply to them.
Add order note starts off. Enable its own switch in Our policies → Service actions before using notes; there is no separate Order changes switch. Once enabled, note approval starts on Auto; customer verification and order ownership still apply. See order-note settings and limits. Change order details also has its own switch; it sets delivery dates, gift messages and tags, starts off, and is not an allowance. Change shipping address & contact is another separate service action, also off by default. It corrects the requested address or contact fields, not a goodwill amount, and does not use allowance frequency windows. If an address correction changes the balance, staff must check and settle it in Shopify; the action does not charge or refund the customer. See Let the bot change orders for its verification, warehouse and store-access requirements.
- Approval → Always ask: require staff approval.
- Approval → Auto: do not ask on every eligible action. Other checks still apply. Deactivation and payment-request resends start on Auto.
- Who may approve: restricts who may give binding approval when approval is needed. The default is No restriction (channel-native), meaning no additional named pool restriction for the team-channel approval flow.
- Daily limit: payment-request resends across the whole store, not per customer; default 20 per day, using the business’s time zone. Sends above the limit are blocked.
- Related customers: opens the shared recipient-sharing policy in the Handbook, or in Customers › Settings › Related customers when it is not available there. It is not a separate Shopify toggle. See related customers.
For contact verification, refund execution, account credit and invoice eligibility, use Shopify actions and approvals and User identification.
What happens when…
Section titled “What happens when…”A proposal exceeds the automatic ceiling
Section titled “A proposal exceeds the automatic ceiling”Inside the bounds but above the automatic ceiling, a proposal needs normal approval. For example, with an automatic ceiling of 10% and maximum of 30%, an eligible 10% discount can auto-approve; 20% needs approval; 35% needs the configured exception approver or is blocked. Other checks can still require review or prevent execution.
A manual allowance is approved
Section titled “A manual allowance is approved”The badge Fulfilled by your team is literal: approval records the decision; it does not make omotto send a replacement or create a voucher in another service. Numeric policy controls do not turn a manual allowance into automatic fulfilment.
Every frequency group is cleared
Section titled “Every frequency group is cleared”Empty groups are discarded when you save. If you deselect every allowance or remove every group and click Save frequency windows, the custom configuration is cleared. The shared 30-day default returns for all allowances; frequency checks are not disabled.
To return to the default, keep one group with all allowances and set it to 30 days, then save. Service actions such as resending an invoice are not allowances and do not use these windows.
You need to check what was actually granted
Section titled “You need to check what was actually granted”The read-only Goodwill activity table records claims and allowances, with the customer, summary, assessment, outcome, allowance, value and date. Outcomes include Pending, Compensated, Apology only, Declined and Escalated. A pending claim is not proof that money was sent. Rows are not editable approval forms.
Troubleshooting
Section titled “Troubleshooting”- Nothing happens after approval: distinguish a manual allowance your team must fulfil from a connected action. Check the conversation and actual action result, not just the approval.
- A small allowance still needs approval: check the automatic ceiling, frequency group, contact verification and any action-specific restriction.
- An exception is blocked: check Who may exceed the bounds:. A normal approver is not automatically the exception approver. Even that approver cannot exceed omotto’s hard limits: 90% for percentage discounts, or 100,000 in the applicable currency for refunds and store credit. Choose a resolution within those limits.
- A save fails: keep minimum, automatic ceiling and maximum in order; use valid currency rows and positive whole days. Reload to confirm what was saved.
- Controls or logs are missing: ask the workspace owner to check permissions. For a disconnected store, follow Shopify connection guidance. If the saved policy or action result remains unclear, contact support before retrying a money-moving action.