General Instructions
Start here. How the flows work, how Servicepoint works, and how to log everything β the foundation every other SOP builds on.
A. How the flows work and how to apply them
This video covers the fundamentals: how to find and insert the right template, how to read each flow, and how the SOPs fit together. Watch this before doing anything else β everything else in the dashboard assumes you already know what's in here.
B. Servicepoint
Servicepoint is the supplier-side platform where orders are quoted, processed, and shipped. Below is everything you need to monitor and act on daily.
Supplier notes
The supplier notes section in Servicepoint contains all updates from suppliers about orders, including delays and out-of-stock notifications. Check this regularly β it's your primary source of supplier info when following up on tickets.
Order statuses you'll act on
These are the statuses where CS needs to take action directly.
An address error is preventing the order from being processed. This is a CS-owned fix.
- Ask the customer for the correct address (use the Special Cases SOP β Missing Address or Address Change as appropriate).
- Once you have the correct address, click See more on the order in Servicepoint.
- Scroll down, click the pencil icon, and enter the correct address.
- The order will then be processed immediately.
Order statuses β FYI only
You don't need to take action on these, but it helps to recognize them. If you see any of these blocking a customer ticket, flag it in the team chat so the back-end team can resolve it.
π Not quoted
The product hasn't been quoted by a supplier yet. Three possible reasons: no bids received, bids received but no supplier selected, or the requested variant isn't available.
The back-end team handles this. If a customer is asking about delivery timing on an affected order, let them know we're sourcing it and flag in the team chat.
βΈοΈ Holds
The order is paused β either a new price needs approval, or a supplier still has to be selected.
Also back-end owned. Once resolved, the order ships automatically. Flag in the team chat if it's blocking a ticket.
C. Logging
Two separate sheets, one for each kind of activity. Pick the right one based on what triggered the log entry.
Returns sheet β every return action (Return Flow templates, escalations, refused returns).
Never mix the two.
C1 β Supply Chain Sheet
Use this whenever the supplier or fulfillment team is contacted. Gives the team a single, scannable view of every supplier interaction across all orders.
When to log here
| Trigger | Which SOP |
|---|---|
| Flagging a 3+ day order with no tracking | Tracking β Tracking | 2. Not assigned |
| Investigating a 10+ day no-movement order | Tracking β Tracking | 3 |
| Following up after fulfillment confirms shipment | Tracking β Tracking | 2. Not assigned β follow up |
| Asking the supplier to confirm a delayed second parcel | Special Cases β Missing Item (Branch 2) |
| Raising a wrong / damaged item case | Wrong / Damaged Item β Step 2 β 3 |
| Cancelling an order via Servicepoint (direct or dispute) | Cancellations |
| Completing an exchange (Exchange | 3 sent + replacement placed) | Returns & Exchanges β Exchange Flow |
What to log
- Date of the contact
- Order number
- Store / brand
- Reason for contact (delay, missing item, cancellation, etc.)
- Supplier response (or "awaiting reply")
- Status (open / resolved)
- Your name / initials
C2 β Returns Sheet
Use this for every return action β any template sent in the Return Flow, escalations, and refusals. Exchanges don't go here β they go in the supply chain sheet (since the supplier processes the replacement order).
When to log here
| Trigger | Which SOP |
|---|---|
| Sending any Return Flow template (Return | 1 β Return | 4) | Returns & Exchanges β Return Flow |
| Sending Return | Escalation for a chargeback / dispute | Returns & Exchanges β Edge Cases |
| Refusing a return (outside window or non-returnable) | Returns & Exchanges β Refusals |
What to log
- Date of the action
- Order number
- Store / brand
- Type (return / exchange / refusal / escalation)
- Last template sent (so the next VA knows where in the ladder you are)
- Outcome (gift card accepted / 20% accepted / refunded / exchange completed / refused / awaiting reply)
- Your name / initials
Golden Rules
- Check Servicepoint supplier notes when following up on customer tickets about delays or stock.
- Fix address errors yourself β this is a CS-owned action.
- Flag Not quoted / Holds in the team chat if they're blocking a customer ticket β don't try to resolve them.
- Log every supplier / fulfillment contact in the supply chain sheet; log returns in the returns sheet.
Returns & Exchanges
How to handle every return and exchange request, and which template to use.
- The window starts on the delivery date (when the parcel arrived at the customer) β not the order date.
- If the customer emails us within 30 days of delivery β proceed with the normal return flow.
- If they email us after 30 days β use Return | Refused (outside return window). No exceptions.
π Logging: returns β returns sheet Β· exchanges β supply chain sheet. See General Instructions β Logging.
1. Decision Flow
Every return/exchange conversation starts at one of three entry points:
issue upfront"| Q["Return | 1
Gift card"]:::return B -->|"Wants to return
(no reason given)"| R0["Return | 0
Ask for details"]:::ask B -->|"Wants to exchange"| EX1["Exchange | 1
Right size or
return proposal"]:::exchange R0 --> R0R{Reason?} R0R -->|Quality issue| Q R0R -->|Size issue| EX1 EX1 --> EX1R{Size available?} EX1R -->|"Accept
(size in stock)"| EX2["Exchange | 2
Confirm size &
fee payment link"]:::exchange EX1R -->|"Reject
(not available)"| Q EX2 --> PAY{Fee paid?} PAY -->|Yes| EX3["Exchange | 3
Confirm paid fee"]:::exchange Q --> LADDER[β Enter Return Flow β]:::ladder classDef entry fill:#eff6ff,stroke:#2563eb,stroke-width:2px,color:#1e3a8a classDef ask fill:#fffbeb,stroke:#b45309,color:#78350f classDef return fill:#fef2f2,stroke:#b91c1c,color:#7f1d1d classDef exchange fill:#ecfdf5,stroke:#0d9668,color:#064e3b classDef ladder fill:#f3f4f6,stroke:#6b6b6b,color:#1a1a1a,stroke-dasharray: 4 4
2. Decision Table (the 90% use case)
| Customer's first message sounds like⦠| Start with | Then depending on their reply⦠|
|---|---|---|
| "Item is defective / broken / bad quality / not as described" | Return | 1 | If they refuse β go to the Return Flow (Β§3) |
| "I want to return" β no reason given | Return | 0 | Route based on reason: quality β Return | 1 Β· size β Exchange | 1 |
| "Wrong size" / "doesn't fit" / "need a different size" | Exchange | 1 | Size in stock & they accept β Exchange | 2 Β· Not available β Return | 1 |
| "Can I exchange for a different product/color?" | Exchange | 1 | Same as above β check stock, then Exchange | 2 or Return | 1 |
| Customer paid the exchange fee | Exchange | 3 | Place replacement order in Shopify, mark ticket solved |
| Customer mentions chargeback, dispute, or legal action | Return | Escalation | The 60% refund de-escalates most cases |
| Order stuck β no shipping address | Special | Missing Address | 1 | See Special Cases SOP for full flow |
| Return request >30 days after delivery date | Return | Refused (outside return window) | Refuse. No exceptions. |
| Non-returnable item (underwear, swimwear, sale items) | Return | Refused (non-returnable item) | Close politely. |
3. Return Flow
When a customer wants a refund, work through these templates in order. Always wait for the customer's reply before sending the next template. Never skip steps.
4. The Exchange Flow
Exchanges are a three-step handshake. Never ship the replacement until the customer has paid the shipping fee.
| Step | Template | What happens |
|---|---|---|
| 1 | Exchange | 1 | Confirm size/variant is available. If not β offer a return via Return | 1. |
| 2 | Exchange | 2 | Create a Shopify draft order via Reamaze with the correct exchange fee for that store, which sends the customer a separate invoice. Then send the template confirming the new size is ready and that an invoice has been sent. Always check the fee for the store you're working in before sending β fees differ per store. |
| 3 | Exchange | 3 | Fee is paid β place the replacement order β send Exchange | 3 to confirm. |
5. Edge Cases & Refusals
Outside return window
Use Return | Refused (outside return window).
The window is 30 days from delivery (not order date). If the customer emails us more than 30 days after the parcel arrived, we refuse the refund β no exceptions, no matter how they push back. Always verify the delivery date in Shopify / tracking before replying.
Non-returnable item
Use Return | Refused (non-returnable item).
Applies to underwear, swimwear, and sale/clearance items (per the template's policy line).
Chargebacks, disputes & legal threats
Use Return | Escalation.
Any mention of PayPal dispute, chargeback, Klarna complaint, or legal action β send the 60% refund template. It de-escalates the vast majority of these cases.
Damaged on arrival
This is a separate flow β see the Wrong / Damaged Item SOP.
Don't run damaged-item cases through the return flow. The damaged flow handles photos + replacement without requiring a return.
6. Golden Rules
- Always check the 30-day return window first. The clock starts on the delivery date, not the order date. Verify in Shopify / tracking before replying.
- Always wait for the customer's reply before sending the next template.
- Never skip retention steps. Return | 1 β Return | 2 β Return | 3 β Return | 4 is the order. The flow ends at Return | 4.
- Return | Escalation is only for customers who threaten a chargeback, dispute, or legal action β never as a continuation of the return ladder.
- Log returns in the returns sheet. Log completed exchanges in the supply chain sheet. Don't mix the two.
7. Quick Reference: All Templates
| Template name | Used for |
|---|---|
| Return | 0. Ask for return details | Ask why the customer wants to return |
| Return | 1. Gift card | First retention offer β store credit |
| Return | 2. 20% Off | Second retention β partial refund, keep item |
| Return | 3. 40% Off | Third retention β higher discount |
| Return | 4. Final | Follow-up if customer doesn't reply |
| Return | Escalation 60% refund | Only for chargeback / dispute / legal threats |
| Return | Refused (outside return window) | Customer emailed >30 days after delivery date |
| Return | Refused (non-returnable item) | Underwear, swimwear, sale items |
| Exchange | 1. Right size or return proposal | Start of exchange flow |
| Exchange | 2. Confirm size & fee payment link | Send fee payment link |
| Exchange | 3. Confirm paid fee | Confirm after fee paid, process replacement |
Order Status & Tracking
How to respond to "where is my order?" β based on the order's actual status.
1. Decision Flow
provided?"} ON -->|No| T0["Tracking | 0
No order number provided"]:::ask ON -->|Yes| LOOK["Look up order in Shopify"]:::action LOOK --> AGE{"How old is
the order?"} AGE -->|"0β3 days"| T1["Tracking | 1
Processing (0β3 days)"]:::normal AGE -->|"3+ days"| TR{"Tracking number
assigned?"} TR -->|Yes| T2A["Tracking | 2
Assigned (3+ days)"]:::normal TR -->|No| T2N["Tracking | 2
Not assigned (3+ days)"]:::warn T2N --> FLAG["Flag with fulfillment team"]:::action FLAG --> CONFIRM{"Team confirms
shipment ASAP?"} CONFIRM -->|Yes| T2NF["Tracking | 2
Not assigned β follow up"]:::good AGE -->|"10+ days,
no movement"| T3["Tracking | 3
Delayed β no movement"]:::warn classDef entry fill:#eff6ff,stroke:#2563eb,stroke-width:2px,color:#1e3a8a classDef ask fill:#fffbeb,stroke:#b45309,color:#78350f classDef action fill:#f3f4f6,stroke:#6b6b6b,color:#1a1a1a classDef normal fill:#ecfdf5,stroke:#0d9668,color:#064e3b classDef warn fill:#fef2f2,stroke:#b91c1c,color:#7f1d1d classDef good fill:#ecfdf5,stroke:#0d9668,color:#064e3b
2. Decision Table
| Situation | Template | What to do after |
|---|---|---|
| Customer didn't include an order number | Tracking | 0 | Wait for the order number, then continue this flow |
| Order is 0β3 days old, still processing | Tracking | 1 | Normal timeframe β no action needed, close the ticket |
| Order is 3+ days old, tracking number is assigned | Tracking | 2. Assigned (3+ days) | Template auto-fills the tracking URL via Shopify integration |
| Order is 3+ days old, no tracking number yet | Tracking | 2. Not assigned (3+ days) | Flag with the fulfillment team to chase the tracking number |
| Fulfillment team confirmed the order will ship ASAP | Tracking | 2. Not assigned β follow up | Send as a follow-up to update the customer once the team confirms |
| Tracking shows no movement for 10+ days | Tracking | 3 | Flag with the fulfillment team to investigate |
{{ integrations.shopify.orders[0].fulfillments[0].tracking_url }} to auto-fill the tracking link. Don't delete this β it pulls the right URL automatically. If it doesn't fill, the order isn't linked to the customer in Reamaze yet β link it first.
3. Edge Cases
Customer says parcel arrived empty / item missing
This is a different flow β see Special Cases β Missing Item in the sidebar.
Tracking shows "Returned to Sender"
See Special Cases β Return to Sender in the sidebar.
Customer wants to cancel because of a delay
If < 24h since order β use Cancellations β Confirmed. Otherwise, run the tracking templates first.
4. Golden Rules
- Always look up the order in Shopify before replying. Don't guess based on what the customer says.
- If no order number is provided, always start with Tracking | 0. Never assume.
- For 3+ day orders, check the tracking status β "assigned" vs "not assigned" decides which template to use.
- For 10+ day no-movement orders, flag with the fulfillment team β Tracking | 3 tells the customer we're investigating, but you still need to actually investigate.
- Log every supplier / fulfillment team contact in the supply chain sheet.
5. Quick Reference: All Templates
| Template name | Used for |
|---|---|
| Tracking | 0. No order number provided | Customer didn't include order number |
| Tracking | 1. Processing (0β3 days) | Normal processing timeframe |
| Tracking | 2. Assigned (3+ days) | Order shipped, tracking URL auto-filled |
| Tracking | 2. Not assigned (3+ days) | 3+ days old but no tracking yet |
| Tracking | 2. Not assigned β follow up | Follow-up after fulfillment team confirms shipment ASAP |
| Tracking | 3. Delayed β no movement (10+ days) | Tracking stuck for 10+ days |
Special Cases
Five sub-flows: Missing Address, Address Change, Size Change, Missing Item, and Return to Sender.
A. Missing Address
Use this when an order has incomplete delivery information (no full address, no phone number, etc.) and the order can't ship.
After updating the address in Reamaze (step 3), also tag the supplier in Slack with the correct address. Use the format below:
Order #order-number (store-tag) the correct address is below: Customer full name Street + number City Postcode Country
Replace the blue text with the actual details from the order.
B. Address Change
Use this when the customer asks us to change a delivery address they already provided (e.g., they moved, mistyped, want it sent elsewhere). This is different from Missing Address β here we have an address, the customer just wants to update it.
Step 1: Look up the order in Shopify. Check whether it's already been processed/shipped.
Step 2: Pick the right template based on what you find:
| Situation | Template |
|---|---|
| Order is not yet processed β update the address, then send confirmation | Address Change | 1. Confirmed |
| Order is already processed / tracking on its way β address can no longer be changed | Address Change | 2. No longer possible |
After sending Address Change | 1. Confirmed, also tag the supplier in Slack with the updated address. Use the format below:
Order #order-number (store-tag) the address has been updated: Customer full name Street + number City Postcode Country
Replace the blue text with the actual details from the order.
C. Size Change
Use this when the customer wants to change the size of an item they already ordered. Same logic as Address Change β only possible if the order hasn't been processed yet.
Step 1: Look up the order in Shopify. Check whether it's already been processed.
Step 2: Pick the right template based on what you find:
| Situation | Template |
|---|---|
| Customer contacts within 24h and order not yet processed β adjust the size in Shopify, then send confirmation | Special | Size Change β Confirmed |
| Order is already processed β size can no longer be changed | Special | Size Change β No longer possible |
D. Missing Item
Use this when the customer says part of their order is missing (e.g., they ordered 3 items but only received 2).
Step 1: Look up the order's fulfillment in Shopify. Check whether the missing item is in a separate parcel and whether that parcel is in transit.
Step 2: Pick the right branch below based on what you find.
Branch 1 β Still in transit No supplier contact
The missing item is in a second parcel that's clearly still moving (multi-warehouse shipping, tracking shows recent activity).
Action: Send Special | Missing Item | On its way directly. No supplier contact needed.
Branch 2 β Genuinely delayed Contact supplier first
The second parcel is stuck β no movement, no clear ETA, or tracking is dead.
Action:
- Contact the supplier to confirm the delay and ask for an ETA
- Once confirmed, send Special | Missing Item | Delayed
- Log the supplier contact in the supply chain sheet
E. Return to Sender
Use this when the parcel was returned by the courier (undeliverable, held at depot, RTS in tracking).
Golden Rules
- Always wait for the customer's reply before sending the confirmation template. Don't send "Confirmed" until you've actually updated the address / arranged the reship.
- For Missing Item, always check Shopify fulfillment first β we ship from multiple warehouses, so "missing" items are usually in a separate parcel.
- For Missing Address & Return to Sender, the step-1 template explicitly warns the customer that no reply = no refund. This is intentional β don't soften it.
- Log every supplier / fulfillment team contact in the supply chain sheet (e.g. when chasing a delayed parcel or missing item).
Quick Reference: All Templates
| Template name | Used for |
|---|---|
| Special | Missing Address | 1. Information requested | Ask for complete address + phone |
| Special | Missing Address | Follow up | Sent when customer hasn't responded to step 1 β asks again for the correct address |
| Special | Missing Address | 2. Confirmed | Confirm address updated |
| Address Change | 1. Confirmed | Customer-requested address change, successfully updated before processing |
| Address Change | 2. No longer possible | Order already processed, address can't be changed |
| Special | Size Change β Confirmed | Customer-requested size change, adjusted in Shopify before processing |
| Special | Size Change β No longer possible | Order already processed, size can't be changed |
| Special | Missing Item | On its way | Item in separate parcel, still in transit |
| Special | Missing Item | Delayed | Second parcel genuinely delayed |
| Special | Return to Sender | 1. Information requested | Ask for correct address to arrange reship |
| Special | Return to Sender | 2. Confirmed | Confirm reship arranged |
Wrong / Damaged Item
When a customer received the wrong item, wrong color, or a damaged product.
1. Decision Flow
Photos requested"]:::normal S1 --> WAIT1["Wait for photos"]:::action WAIT1 --> S2["Wrong/Damaged Item | 2
Investigating"]:::normal S2 --> RAISE["Raise with fulfillment team
Β· investigate what went wrong
Β· log in supply chain sheet"]:::action RAISE --> BRANCH{"Supplier confirms
issue?"} BRANCH -->|"Yes"| S3["Wrong/Damaged Item | 3
Solution offered"]:::good S3 --> END["Customer keeps wrong item
+ correct item is shipped"]:::good BRANCH -->|"No"| S3B["Investigation |
No issue found"]:::warn S3B --> RETURNS["β Customer can still return
via Returns & Exchanges SOP"]:::action classDef entry fill:#eff6ff,stroke:#2563eb,stroke-width:2px,color:#1e3a8a classDef normal fill:#fef2f2,stroke:#b91c1c,color:#7f1d1d classDef action fill:#f3f4f6,stroke:#6b6b6b,color:#1a1a1a classDef good fill:#ecfdf5,stroke:#0d9668,color:#064e3b classDef warn fill:#fffbeb,stroke:#b45309,color:#78350f
2. The 3-Step Flow
3a β Issue confirmed Happy path
Wrong/Damaged Item | 3. Solution offered
Sent once fulfillment confirms the replacement is on its way. The customer keeps the wrong/damaged item β no return needed.
3b β No issue found Routes to Returns
Investigation | No issue found
Sent when the supplier confirms the item was shipped correctly and as described. The template invites the customer to start a return if they still want one β if they reply yes, switch to the Returns & Exchanges SOP.
3. Edge Cases
Customer refuses to send photos
Without photos we can't verify the issue. Politely re-explain that photos are required to process the case. If they still refuse, we can't proceed β close the ticket.
Photo shows the correct item but customer claims it's wrong
Don't proceed with replacement. Reply explaining the item matches the order. If they push back, treat as a return request and route to the Returns & Exchanges SOP.
Damage is minor / cosmetic only
Still run the full flow β send to fulfillment with photos and let them decide. Don't make the call yourself.
Item is non-returnable (underwear, swimwear)
Damaged/defective non-returnable items are still covered β the Return | Refused (non-returnable item) template explicitly invites customers to reply with photos for damaged items. Run the full Wrong/Damaged flow.
4. Golden Rules
- Never skip the photo step. No photos = no proof = no case.
- The customer keeps the original item. Don't ask them to return it (only applies when supplier confirms the issue).
- Always wait for fulfillment to confirm before sending step 3 β and pick the right template: Wrong/Damaged Item | 3 if the issue is confirmed, Investigation | No issue found if it isn't.
- If the supplier finds no issue, send Investigation | No issue found. If the customer still wants to return, route them to the Returns & Exchanges SOP.
- This flow is for wrong/damaged items only. For "I changed my mind" β use the Returns & Exchanges SOP.
- Log every supplier / fulfillment team contact in the supply chain sheet.
5. Quick Reference: All Templates
| Template name | Used for |
|---|---|
| Wrong/Damaged Item | 1. Photos requested | Initial reply β request photo |
| Wrong/Damaged Item | 2. Investigating | After photos received, raised with fulfillment |
| Wrong/Damaged Item | 3. Solution offered | Replacement on its way, customer keeps original |
| Investigation | No issue found | Supplier confirms item is correct β invites return via Returns SOP |
Cancellations
Two outcomes only: cancel within 24h, or refuse after 24h.
1. Decision Flow
was the order placed?"} AGE -->|"More than 24 hours"| C2["Cancellation | 2
Not possible"]:::warn AGE -->|"Within 24 hours"| TR{"Tracking number
already added?"} TR -->|"No"| DIRECT["Servicepoint:
direct cancel"]:::supplier TR -->|"Yes"| DISPUTE["Servicepoint:
open dispute &
request cancel"]:::supplier DIRECT --> SHOPIFY["Cancel order in Shopify
+ process refund"]:::action DISPUTE --> SHOPIFY SHOPIFY --> C1["Cancellation | 1
Confirmed"]:::good C2 --> WAIT["Once parcel arrives,
route to Returns/Exchanges
if customer needs help"]:::action classDef entry fill:#eff6ff,stroke:#2563eb,stroke-width:2px,color:#1e3a8a classDef action fill:#f3f4f6,stroke:#6b6b6b,color:#1a1a1a classDef supplier fill:#f0effb,stroke:#625df5,color:#3730a3 classDef good fill:#ecfdf5,stroke:#0d9668,color:#064e3b classDef warn fill:#fef2f2,stroke:#b91c1c,color:#7f1d1d
2. Decision Table
| Order age | Template | Action |
|---|---|---|
| Within 24 hours | Cancellation | 1. Confirmed | (1) Cancel with the supplier via Servicepoint (see Β§3), (2) cancel the order in Shopify, (3) process the refund, (4) send the template |
| More than 24 hours | Cancellation | 2. Not possible | Refuse β order has already been processed. Offer help with sizing/return once it arrives |
3. Cancel with the Supplier (Servicepoint)
For every cancellation within 24 hours, the order also has to be cancelled on the supplier side via Servicepoint. Pick the method based on whether tracking has been added yet:
Method A β Direct cancel No tracking yet
If the supplier hasn't assigned tracking yet, just cancel the order directly via Servicepoint.
Method B β Dispute Tracking already added
If tracking has already been added (but it's still within 24h), open a dispute via Servicepoint and explicitly mention that we want to cancel the order.
4. Edge Cases
Customer wants to cancel after 24h because of a delay
Still use Cancellation | 2. Once the parcel arrives, they can return it via the standard Returns flow.
Customer wants to cancel because they ordered the wrong size
If within 24h β cancel and refund. If after 24h β use Cancellation | 2 and route to Exchange | 1 once the parcel arrives.
Customer threatens chargeback if we don't cancel
If within 24h β just cancel and refund (easier). If after 24h β use Cancellation | 2. Not possible β the template already covers the wait-for-arrival-then-return path. Don't offer Return | Escalation here, since there's nothing to return yet.
Order is exactly at the 24h mark
Check Shopify β if the order hasn't been fulfilled yet, cancel it. If it has, use Cancellation | 2.
5. Golden Rules
- For every cancellation within 24h, you must do all three: cancel via Servicepoint (direct or dispute), cancel in Shopify, process the refund. Then send Cancellation | 1.
- Pick the right Servicepoint method: no tracking β direct cancel, tracking added β dispute.
- The 24-hour rule is firm β don't make exceptions, even for polite customers.
- Log every Servicepoint cancellation in the supply chain sheet.
- For after-24h requests, the template offers post-delivery help (sizing/return). This isn't optional β it's how we keep the customer happy without violating the policy.
6. Quick Reference: All Templates
| Template name | Used for |
|---|---|
| Cancellation | 1. Confirmed | Order canceled within 24h, refund processed |
| Cancellation | 2. Not possible | Order > 24h, can't be canceled |