# Shopify > NetSuite - order refunds

## Introduction

A GraphQL query searches for orders in Shopify that were last modified after a given date, and are in a `refunded` state. The lookback date is calculated by referencing a `date` [flow variable](#flow-variables) in the `updated_at` section of the GraphQL query. &#x20;

The flow then searches for matching orders in NetSuite (using the order name), retrieving order details and order lines.&#x20;

After this, a script determines which specific lines are being refunded by matching the return lines with their SKUs. It then creates an RMA (*Return Merchandise Authorisation*) from the sales order, followed by a credit memo.

{% hint style="info" %}
The [manual payload](/product-documentation/process-flows/building-process-flows/process-flow-shapes/standard-shapes/manual-payload-shape.md) before the credit memo contains `{}` - this triggers the RMA ➤ credit memo conversion. The [set variables shape](/product-documentation/process-flows/building-process-flows/process-flow-shapes/standard-shapes/set-variables-shape.md) sets a meta variable for `rmaid` , with the value derived from incoming Netsuite RMA IDs - this fully converts the RMA into a credit memo.
{% endhint %}

## Process flow snapshot

<details>

<summary><img src="/files/y1IE71BfODU6ZRj1HNMM" alt="" data-size="line"> Click to view process flow snapshot</summary>

<img src="/files/LLv3UGuj6mDr178DTUbr" alt="" data-size="original">

</details>

## Limitations

<table><thead><tr><th width="266.79296875">Limitation</th><th>Summary</th></tr></thead><tbody><tr><td>Shopify GraphQL error handling</td><td>There is a known limitation with error handling for Shopify GraphQL. Please refer to the <a href="/pages/cAsDFgC7o0rXqfyJWolv#error-handling-for-shopify-graphql">Error handling for Shopify GraphQL</a> section for more information and a suggested approach that you may wish to adopt in your flows. </td></tr></tbody></table>

## Assumptions

There are no assumptions to note for this flow.

## Customisation

To ensure that this process flow runs as required, some customisation options are available. These are documented in the following sections:

* [Flow variables](#flow-variables)
* [Process shape shapes](#process-flow-shapes)

### Flow variables

The table below summarises [flow variables](/product-documentation/process-flows/building-process-flows/dynamic-variables/flow-variables.md) defined for this process flow.

<table><thead><tr><th width="163.5078125">Flow variable</th><th>Summary</th><th>Default value</th></tr></thead><tbody><tr><td><code>date</code></td><td>Set the relative time period to look back for new orders in Shopify. Update the default value as required.</td><td>-30 minutes</td></tr></tbody></table>

{% hint style="info" %}
For information on working with flow variables, please refer to our [flow variables documentation](/product-documentation/process-flows/building-process-flows/dynamic-variables/flow-variables.md).
{% endhint %}

### Process flow shapes

This process flow includes some shapes that can be configured with your own settings. Please see guidelines in the table below.

{% hint style="warning" %}
Shape settings determine the outcome of process flows. Do not change shape settings unless they are listed below.&#x20;
{% endhint %}

<table data-full-width="false"><thead><tr><th width="165.34375">Shape</th><th>Notes</th></tr></thead><tbody><tr><td>Trigger</td><td><p>The default schedule is set to run every <code>30 minutes</code>. You can edit this shape and define your preferred run schedule. </p><p><br>Keep in mind that the GraphQL query on the first Shopify connector retrieves orders that have been updated since your given lookback period (based on the value of the <code>date</code> <a href="#flow-variables">flow variable</a>). Ensure that the trigger schedule aligns with your lookback period.</p></td></tr><tr><td>Notify</td><td>This flow is designed in a try/catch structure, so notifications are generated if any part of the flow fails. To achieve this, the <code>catch</code> route includes a <a href="/pages/qJOdm6pHm3I8Ovog6Ola">notify shape</a>, which must be configured for your own notification preferences. <br><br><code>Alert level</code>: Defaults to <code>error</code> but can be changed if needed<br><code>Channel</code>: Defaults to <code>email + log</code> but can be changed if needed<br><code>Email Limit</code>: Defaults to <code>5</code> but can be changed if needed<br><code>Notification Group</code>: Replace the <code>notify</code> placeholder which your required notification group. <br><code>Message</code>: If required, you can change the placeholder message.<br><br>For more information, please refer to our <a href="/pages/qJOdm6pHm3I8Ovog6Ola">Notify shape</a> and <a href="/pages/ul3TLNVYRLYUGugTOFLU">Notification groups</a> pages.</td></tr><tr><td>Connector (Shopify)</td><td>If you did not add or select a Shopify instance during the blueprint <a href="/pages/ZuNUyYvEy14sajACk8N9">installation process</a>, the following settings must be configured:<br><br><code>Source instance</code> : Set to your required <code>Shopify</code> instance.<br><code>Source endpoint</code> :  Set to <code>POST Get refunded orders via graphql</code><br><code>Variables</code> : Leave the <code>filter</code> variable as it defaults. This variable references your <code>date</code> flow variable to determine the lookback period for new orders. Make sure this <a href="#flow-variables">flow variable</a> is set as required.</td></tr><tr><td>Connector (NetSuite)</td><td><p>If you did not add or select a NetSuite instance during the blueprint <a href="/pages/ZuNUyYvEy14sajACk8N9">installation process</a>, the following settings must be configured:</p><p></p><p><code>Source instance</code>: Set to your required <code>NetSuite</code> instance.</p><p><code>Source endpoint</code> :  Set to <code>POST suiteQL</code></p><p><code>Query</code>: Leave as the default.</p></td></tr><tr><td>Connector (NetSuite)</td><td><p>If you did not add or select a NetSuite instance during the blueprint <a href="/pages/ZuNUyYvEy14sajACk8N9">installation process</a>, the following settings must be configured:</p><p></p><p><code>Source instance</code>: Set to your required <code>NetSuite</code> instance.</p><p><code>Source endpoint</code> :  Set to <code>POST Create RMA from sales order via transform</code>  </p><p><code>Variables</code>: Leave <code>NetSuite Sales Order ID</code> as the default.</p></td></tr><tr><td>Connector (NetSuite)</td><td><p>If you did not add or select a NetSuite instance during the blueprint <a href="/pages/ZuNUyYvEy14sajACk8N9">installation process</a>, the following settings must be configured:</p><p></p><p><code>Source instance</code>: Set to your required <code>NetSuite</code> instance.</p><p><code>Source endpoint</code> :  Set to <code>POST Create credit memo from RMA via transform</code>  </p><p><code>Variables</code>: Leave <code>NetSuite RMA ID</code> as the default.</p></td></tr></tbody></table>

## Reference

Reference information for this process flow is documented in the following sections:

* [Scripts used in this process flow](#scripts-in-this-process-flow)
* [Cross-reference lookups used in this process flow](#cross-reference-lookups-in-this-process-flow)

### Scripts in this process flow

<table><thead><tr><th width="293">Script</th><th>Summary</th></tr></thead><tbody><tr><td>Determine refund lines for Netsuite</td><td>Checks order lines to determine what lines are needed for the refund.</td></tr><tr><td>Pull Netsuite ID from RMA header</td><td>Pulls the NetSuite ID from response so it can be used again.</td></tr></tbody></table>

### Cross-reference lookups in this process flow

This process flow does not use cross-reference lookups.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://doc.wearepatchworks.com/product-documentation/blueprints/patchworks-blueprints/shopify-and-netsuite/available-process-flows-shopify-and-netsuite/shopify-greater-than-netsuite-order-refunds.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
