purserDOCS
purserDOCS
HomePricing中文Sign in

Get started

purser docsGo live in 10 minutes

Channels

Website chatIn-app support pageEmailWhatsApp and Instagram

AI support

Knowledge baseGlossaryHow the AI answersTry it and releases

Inbox and team

InboxTeams and routingCustomers

More

RefundsCompensation and order changesProduct feedback

Account and billing

Plans and billingAccount and data

Developers

Identity tokens: telling purser who the customer isREST API and Node SDKRefund endpoint (Actions API)Connect your own AI assistant over MCP

Compensation and order changes

Agents give customers single-use coupons or points from the options you define, and change the address of or cancel orders that have not shipped; limits, approvals, flags and the ledger live in purser.

How it works

When a customer had a late parcel or a problem with an item, an agent clicks Compensate (补偿) next to the order in the inbox, picks one of your compensation options and says why. purser then:

  1. creates a code in your store, for this customer only, usable once, with an expiry date;
  2. sends the code into the conversation in the customer's language (from your team, not marked as AI);
  3. records who gave it, why, to whom, and whether it was used, on the Compensation (补偿) page.

purser does not copy your store's coupon stock. It keeps what may be given (the options) and what was given (the ledger). Agents cannot type in a code of their own to hand out.

Compensation needs the Growth plan or higher. It can only go to an identified customer (signed in, or synced through the API) and must be for that customer's own order.

Where the code is created

WhereForNotes
ShopifyA linked Shopify storeA discount code is created in the store (fixed amount or percentage, optional minimum order), usable once by this customer only. Needs the app's discount permission.
Your own systemA store you builtpurser calls your actions endpoint with coupon.issue; your system creates the code and returns it. See Actions API.

Points

With the option type set to Points, enter how many points each time. Points live in your own loyalty system: purser calls points.grant on your actions endpoint (see Actions API), so connect the endpoint in Settings (设置) → Refunds & compensation (退款与补偿) first. The customer is then told in the conversation that the points were added. For "counts toward the limit as", enter roughly what the points are worth; limits and approvals work as for coupons.

Setting up options

In Settings (设置) → Refunds & compensation (退款与补偿), on the Compensation (补偿) card (owners and admins only), add options:

  • Name: for your team, e.g. "Late delivery";
  • Where the code is created: Shopify or your own system (for your own system you can enter a coupon template id from your system; it is passed through as is);
  • Discount: fixed amount or percentage, with an optional minimum order;
  • Counts against limits as: used for daily limits and reports; for a percentage coupon enter an estimated cost;
  • Valid for: 30 days by default;
  • Times per customer: once in 30 days by default;
  • Fits these situations: by question type; the inbox lists fitting options first. None ticked means any situation.

Options can be turned off at any time; codes already given are not affected.

Limits and approval

On the same card, set how much each person may give per day on their own (in the workspace's limit currency, USD by default):

WhoDefault
Agent50 per person per day
Owner / admin500 per person per day

In these cases the compensation waits for approval by another owner or admin; only then is the code created and sent:

  • it takes the person over their limit for the day;
  • compensation is frozen (see below);
  • the customer's email is a team member's.

Nobody can approve their own compensation. The refund Approve button cannot approve compensation either.

Flags

These are listed under Compensation → Flags (异常) for owners and admins:

FlagWhen
Code typed by handAn agent's reply contains another customer's code, or a code purser did not issue in a reply that mentions a coupon
Given to a team memberThe customer's email is a team member's (approval is also required)
Same customer againThe same customer gets a third compensation within 90 days
No matching complaintThe conversation's question type is not delivery, damage, refunds or a complaint
Far above the teamWeekly: someone gave more than 3× the team median value in a week (when at least 3 people gave compensation)
Compensation frozen automaticallySee below

Click Mark as reviewed (看过了) once handled.

Automatic freeze

When today's compensation total is more than 3× the median day of the last 7 days, compensation freezes: every one then needs approval until an owner or admin clicks Unfreeze (解除冻结) in Settings.

The AI offering compensation

Turn on "The AI may offer this" on a compensation option (coupons only), and the AI offers it itself when the facts call for it, not because of how the customer sounds:

  • the customer is signed in (or identified through the API) and is asking about delivery or order status, or complaining;
  • one of their parcels from the last 60 days is at least N days past its estimated delivery (set on the Compensation card, 3 by default), or the carrier reports it lost;
  • the AI level for that situation is R3 or R4.

The AI then adds a card after its answer: "Your parcel for order #1042 is 5 days later than estimated, and we're sorry. Would you like a coupon for $5.00 off as an apology?" The customer taps yes or no.

Controls:

  • at most one offer per order, whoever compensated before and even if the customer said no; the option's per-customer limit still applies;
  • when several options fit, the AI picks the one that counts least toward the limit;
  • the AI counts as one agent and stays within the agent daily limit; nothing is offered while compensation is frozen or when the customer is a team member;
  • after a yes, the coupon is given directly only at R4 for that situation and within the limit; otherwise it goes to Compensation → Waiting for approval for an owner or admin, the code arrives in the conversation once approved, and the customer is told if it is rejected;
  • every step is in the ledger (requested by "AI assistant"), with the facts behind it: which order, which carrier, the estimated delivery date and how late the parcel is.

Changing the address or cancelling an order

For an order that has not shipped (pending or processing, with no parcel recorded), the inbox shows Change address and Cancel order next to it. Again only for an identified customer's own order, and one change per order at a time.

Who can do it directlyWhen another owner or admin approves
Change addressEvery agentA move to another country
Cancel orderOwners and adminsA cancellation an agent asks for
  • With a linked Shopify store the change is made in the store (a cancellation refunds in full to the original payment method and restocks; the app needs order write access). Without Shopify, purser calls order.update_address / order.cancel on your actions endpoint.
  • Once done, the customer is told in the conversation. An address change also emails the address already on the order, so nobody can quietly redirect a parcel through a chat.
  • If the store cannot do it (say the order just shipped), the record says why and the customer is not told anything.
  • Every change is in Compensation → Ledger, with the old and the new address.

The Compensation page

Sidebar → Work (工作) → Compensation (补偿):

  • Waiting for approval: what you can approve or reject (your own requests show "Waiting for another owner or admin");
  • Ledger: every compensation with option, value, status, code, whether used, who gave it, who approved it, and why;
  • By person: last 30 days per person: how many, how much, share of the conversations they handled, and how many codes were used;
  • Flags: see above.

Agents see only what they gave; the other tabs are for owners and admins. Every Monday owners and admins get last week's summary by email.

Whether a code was used

  • Shopify: when an order uses the code, purser marks it used from the store's order notification.
  • Your own system: when an order uses a code purser issued, call POST /api/v1/coupons/redeemed (secret key sk_…, body {"codes": ["…"]}); see API and SDK.

Refunds

purser never touches money: it calls your own endpoint, your system sets the amount, the AI offers a refund only when the rules allow it, and refunds within your limits run automatically while the rest wait for approval.

Product feedback

A free product feedback tool: one line of code on your site, a share link, or a flag in the chat window; feedback is sorted into your categories by AI and you can reply to the sender by email.

On this page

How it worksWhere the code is createdPointsSetting up optionsLimits and approvalFlagsAutomatic freezeThe AI offering compensationChanging the address or cancelling an orderThe Compensation pageWhether a code was used