FS-DOC-03Operations
Process Runbook / SOP
Refund & Returns Processing
[YourCompany.com] · Customer Support Department · Prepared by FullSpec · [Today's Date]
This runbook is the operating reference for your support team once the Refund and Returns Processing automation is live. It covers what the system does automatically, where your team still acts, how to handle exceptions, who to call when something goes wrong, and what routine maintenance keeps the process running smoothly. FullSpec builds, monitors, and maintains the automation end to end. Your team's role is limited to reviewing the one human checkpoint and acting on exception alerts.
01Process overview
The Refund and Returns Processing automation handles every standard return request from the moment a Zendesk ticket is created through to the customer receiving a confirmation email, the refund being processed in Shopify, and the credit note being recorded in Xero. Two agents run in sequence: the Returns Triage Agent reads the incoming ticket, fetches the Shopify order, and checks eligibility against your configured policy rules; the Refund Execution Agent then sends the approval email, initiates the refund, creates the Xero credit note, resolves the ticket, and posts a Slack alert for high-value cases. The only step that stays with a person is the discretionary review of requests that fall outside policy or are flagged as disputed. Everything else runs without agent involvement.
Process name
Refund & Returns Processing
Trigger
A new Zendesk ticket is created or tagged with a return or refund label
Final output
Customer refund confirmation sent, Shopify refund processed, Xero credit note created, Zendesk ticket resolved, Slack alert posted for high-value cases
Agents running
Returns Triage Agent, Refund Execution Agent
Tools involved
Zendesk, Shopify, Xero, Gmail, Slack
Weekly volume
Approximately 30 requests per week (~120/month)
Human checkpoint
Support Lead reviews and decides on out-of-policy or disputed cases before any refund is issued
Process owner
[Your name] — update once confirmed
Process Runbook / SOPPage 1 of 4
FS-DOC-03Operations
02Step-by-step: what happens and who acts
What you actually need to do: There is one human step in this process. When the Returns Triage Agent flags a request as out-of-policy or disputed, the Support Lead receives a Zendesk ticket alert and must review the case, make a decision, and either approve or close the request. Every other step is handled automatically by the system. No agent needs to log into Shopify, Xero, or Gmail to process a standard return.
Step
What happens
Who acts
Type
1
A customer submits a return or refund request via Zendesk, email, or the store contact form. The automation platform detects the new or tagged ticket and immediately begins processing, extracting the order reference and customer email from the ticket content.
System
Automated
2
The Returns Triage Agent queries the Shopify API using the extracted order reference, pulling the order date, purchased line items, amounts, and fulfilment status. This data is attached to the processing context for the eligibility check that follows.
Returns Triage Agent
Automated
3
The Returns Triage Agent compares the order data against the configured eligibility rules: return window, excluded product categories, partial refund handling, and any dollar thresholds. It produces a clear decision of approved or flagged, along with a plain-English reason code and the calculated refund amount.
Returns Triage Agent
Automated
4
If the eligibility decision is flagged as out-of-policy or disputed, the Zendesk ticket is updated with the reason code and assigned to the Support Lead for manual review. The Support Lead reads the case details and makes a final decision: approve the refund as a discretionary exception, or close the request with a rejection response to the customer. No refund is processed until this step is completed.
Support Lead
Human
5
For approved requests (whether automatically approved or approved by the Support Lead as an exception), the Refund Execution Agent sends the customer a personalised confirmation email via Gmail. The email includes return instructions, the confirmed refund amount, and an estimated processing timeframe.
Refund Execution Agent
Automated
6
The Refund Execution Agent calls the Shopify Refunds API to initiate the refund against the correct order and line items, recording the refund amount and reason code. The refund is reflected in the customer's Shopify account immediately.
Refund Execution Agent
Automated
7
A corresponding credit note is created in Xero via API, matched to the correct customer account and original invoice. The accounting record updates without any manual data entry, keeping the books accurate and reducing reconciliation errors at month-end.
Refund Execution Agent
Automated
8
If the refund amount exceeds the configured high-value threshold, the Refund Execution Agent posts a structured summary to the designated Slack channel, alerting the Support Lead and Finance Manager so they are immediately aware without needing to check the queue.
Refund Execution Agent
Automated
9
The Refund Execution Agent updates the Zendesk ticket with the refund outcome, adds internal notes including the Shopify refund reference and Xero credit note number, applies the correct resolution tags, and marks the ticket as solved so SLA tracking and reporting remain accurate.
Refund Execution Agent
Automated
Process Runbook / SOPPage 2 of 4
FS-DOC-03Operations
03Handling exceptions
Situation
What the system does
What you do
Ticket arrives with no order reference or a reference that cannot be matched in Shopify
The Returns Triage Agent marks the ticket as incomplete, adds an internal note listing the missing data, and pauses processing. It sends the customer an automated reply asking them to provide their order number or the email address used at checkout.
If the customer does not respond within 48 hours, the Support Lead reviews the ticket and either closes it with a polite notice or manually locates the order using available customer details.
A duplicate return request is submitted for the same order (e.g. the customer submits twice via different channels)
The system checks whether a return ticket for the same order reference already exists in Zendesk. If a duplicate is detected, the second ticket is merged into the original and flagged with a duplicate tag. No second refund is initiated.
No action is required. If the merge fails for any reason, you will see two open tickets for the same order reference. Close the newer one and add a note referencing the active ticket number.
The return request is outside the policy window, in an excluded product category, or above the discretionary threshold
The Returns Triage Agent marks the decision as out-of-policy, attaches the reason code and the specific rule that was breached, and routes the Zendesk ticket to the Support Lead queue with high priority.
Review the case details in Zendesk. Make a decision: approve as a discretionary exception (the system will then continue to the Refund Execution Agent), or reject and close with a customer-facing response. Document your reasoning in the internal notes field before saving.
The Support Lead does not act on a flagged ticket within the expected timeframe
After 24 hours without a status change on the ticket, the system sends a reminder Slack message to the Support Lead and copies the Operations Manager. After 48 hours, a second escalation is sent.
Act on the ticket as soon as the reminder arrives. If the Support Lead is unavailable, the Operations Manager should step in and make the decision to avoid the customer waiting further.
The Shopify Refunds API or Xero API is unavailable or returns an error
The system retries the failed API call up to three times at five-minute intervals. If all retries fail, the Zendesk ticket is flagged with an error tag, the refund step is paused, and an alert is sent to the FullSpec monitoring system as well as to the designated Slack channel.
Check the Slack alert for the specific error message and the affected ticket number. Do not attempt to process the refund manually in parallel unless FullSpec confirms the automated step has been fully abandoned. Contact FullSpec support at support@gofullspec.com if the outage persists beyond 30 minutes.
An approved refund is processed in Shopify but the Xero credit note creation fails
The system logs the Shopify refund reference in the Zendesk ticket notes and marks the Xero step as failed. It sends an alert to the Finance Manager via Slack with the customer name, order reference, and refund amount so the credit note can be created manually if needed.
The Finance Manager should create the credit note in Xero manually using the details in the Slack alert. Notify FullSpec at support@gofullspec.com so the root cause is investigated and the retry logic is tested before the next run.
04Who to contact and when
Fill in the rows for your own team once personnel are confirmed. The FullSpec rows are fixed and should not be changed. Use this table as the single reference for your team when they are unsure who to escalate to.
Role
Name
How to reach them
Process owner (internal)
[Your name]
[Your email / phone]
Support Lead (human checkpoint handler)
Sarah Kowalski
[Rep email] / Slack: @sarah.kowalski
Operations Manager (secondary escalation)
James Patel
[Rep email] / Slack: @james.patel
Finance Manager (Xero exceptions)
Nina Torres
[Rep email] / Slack: @nina.torres
FullSpec builder (technical issues, configuration changes)
FullSpec team
support@gofullspec.com
FullSpec support (outages, errors, urgent issues)
FullSpec support
support@gofullspec.com
For any automation error, API outage, or unexpected behaviour, contact FullSpec first at support@gofullspec.com before making changes to the connected tools or attempting a manual workaround. Parallel manual processing while the automation is mid-run can cause duplicate refunds or double credit note entries in Xero.
Process Runbook / SOPPage 3 of 4
FS-DOC-03Operations
05Ongoing maintenance
Whenever return policy rules change (e.g. new window, new exclusion, new threshold)
Send the updated rules in writing to FullSpec at support@gofullspec.com. Do not edit the eligibility logic directly in any connected tool. FullSpec will update the Returns Triage Agent configuration, test the change against sample cases, and confirm when it is live. Changes not communicated to FullSpec will cause the agent to apply outdated rules.
Process owner notifies FullSpec; FullSpec implements
Whenever Gmail approval or rejection email templates need updating (e.g. new refund timeframe, policy language, or branding)
Draft the updated template text and send it to support@gofullspec.com. Avoid editing the live template directly in Gmail without coordinating with FullSpec, as the automation references specific template identifiers.
Process owner drafts; FullSpec updates
Monthly spot-check (first week of each month)
Review a sample of 10 to 15 resolved return tickets from the previous month. Confirm that the Zendesk tags, Shopify refund amounts, and Xero credit note values match. Flag any discrepancies to FullSpec immediately.
Support Lead or Operations Manager
Monthly error-log review (first week of each month)
Check the designated Slack channel for any error alerts or retry notifications from the previous month. Note any recurring API failures or timeout patterns. Forward a summary to support@gofullspec.com so FullSpec can investigate systemic issues before they affect volume.
Support Lead, with FullSpec follow-up if needed
When a team member joins or leaves (Support Lead, Finance Manager, or Operations Manager)
Update the contact table in this runbook. Notify FullSpec at support@gofullspec.com so Slack alert routing and Zendesk ticket assignment rules are updated to reflect the new team member. Do not leave Slack alerts pointing to a former employee's account.
Process owner notifies FullSpec
Quarterly volume review (every three months)
Check whether the actual monthly request volume has changed significantly from the 120-per-month baseline. If volume has grown above 200 per month or the mix of exception cases has increased, contact FullSpec to review whether the current configuration and automation platform tier remain appropriate.
Operations Manager reviews; FullSpec advises if changes are needed
The single most common maintenance issue for this process is outdated eligibility rules. If the return policy window, exclusion list, or dollar threshold changes in the business but the Returns Triage Agent is not updated, the automation will continue applying the old rules. This results in incorrect approvals or rejections and creates downstream problems in Xero. Always notify FullSpec at support@gofullspec.com before any return policy change takes effect.
Process Runbook / SOPPage 4 of 4