← Satchelwell for Magento and Adobe Commerce
DocumentationPrivacyEULASupport

Satchelwell for Magento and Adobe Commerce: setup and user guide

What Satchelwell does

Satchelwell shows the requester's Magento orders in the Zendesk ticket sidebar (and on user profiles): items, totals, payment, shipments with tracking, invoices, credit memos, Adobe Commerce returns and comment history, with their lifetime value and average order. Agents you allow can refund with a credit memo, cancel an order, put it on hold or release it, add an order comment and resend the order, invoice, shipment or credit memo email. Every action asks for confirmation first and is logged on the ticket as an internal note.

Works with Magento Open Source and Adobe Commerce 2.4, self-hosted or on Adobe Commerce cloud infrastructure.

1. Create an integration in Magento

In the Magento admin: System > Extensions > Integrations > Add New Integration.

FieldValue
NameSatchelwell for Zendesk
Your PasswordYour admin password (Magento asks for it to save)
API > Resource AccessCustom, with the resources below

Save, then click Activate and Allow. Magento shows four values; copy the Access Token (the other three are not needed). If you ever click Reauthorize, Magento issues a new access token: paste the new one into Satchelwell.

What each resource allows in Satchelwell (leave out the actions you do not want agents to take):

Satchelwell featureMagento resource (API tab)REST endpoint
Customer accounts by emailCustomers > All CustomersGET /V1/customers/search
Orders, totals, items, commentsSales > Operations > Orders > Actions > ViewGET /V1/orders
Shipments and trackingSales > Operations > ShipmentsGET /V1/shipments
InvoicesSales > Operations > InvoicesGET /V1/invoices
Credit memos, and refundsSales > Operations > Credit MemosGET /V1/creditmemos, POST /V1/order/{id}/refund, POST /V1/invoice/{id}/refund
Returns (Adobe Commerce only)ReturnsGET /V1/returns
CancelSales > Operations > Orders > Actions > CancelPOST /V1/orders/{id}/cancel
Hold and release... > Actions > Hold, UnholdPOST /V1/orders/{id}/hold, /unhold
Order comments... > Actions > CommentPOST /V1/orders/{id}/comments
Resend the order email... > Actions > Send Order EmailPOST /V1/orders/{id}/emails
Resend invoice, shipment, credit memo emailsInvoices, Shipments, Credit MemosPOST /V1/invoices/{id}/emails, /V1/shipment/{id}/emails, /V1/creditmemo/{id}/emails

2. Let Magento accept the token from Zendesk

Since Magento 2.4.4, an integration's access token is only accepted as a bearer token when the store allows it. In the Magento admin go to Stores > Configuration > Services > OAuth > Consumer Settings and set Allow OAuth Access Tokens to be used as standalone Bearer tokens to Yes (uncheck "Use system value" first), then save. On Adobe Commerce cloud infrastructure you can set the same option in the admin, or have your developer set oauth/consumer/enable_integration_as_bearer to 1 in the deployed configuration.

Without it, every request answers "did not accept the integration token", and the sidebar says so.

Not supported: Adobe Commerce as a Cloud Service (the SaaS edition), which signs in only with Adobe IMS and has no integration tokens.

3. Store requirements

  • HTTPS with a valid certificate (Zendesk's proxy requires a complete certificate chain).
  • Zendesk can reach the store. Requests come from Zendesk's servers, not the agent's browser. If Fastly, Cloudflare, a WAF or the host's firewall blocks unknown servers, allow Zendesk's IP ranges (Zendesk's article "Configuring your firewall for use with Zendesk", https://support.zendesk.com/hc/en-us/articles/4408842860186) for the /rest/ path.
  • Nothing is installed in Magento: no extension, no module.

4. Install and connect

  1. In the Zendesk Marketplace, open Satchelwell and choose Install, then the Standard plan. The 14-day trial starts and Zendesk asks for a card. Billing starts when the trial ends unless you uninstall.
  2. Store domain: the domain only, in lowercase, for example shop.example.com (no https://, no path, no port). Satchelwell's manifest tells Zendesk to send the token only to the domain in this setting, so it has to match the store's address exactly.
  3. Base path: only if Magento is served from a sub-folder, for example /shop for https://example.com/shop/. Leave empty otherwise, and never add /rest or /index.php.
  4. Integration access token: paste it. Zendesk stores it as a secure setting: it is never sent to agents' browsers.
  5. Admin URL (optional): your admin address, like https://shop.example.com/admin, for the "Open in Magento" links. Nothing is sent there.
  6. Save. Open any ticket whose requester has ordered from the store.

5. Settings

  • Several websites and store views: one installation works as it is: every order shows its store view. Store views per brand narrows a brand's tickets to its own store views first: 360001: 1, 2; 360002: 3 means brand 360001 sees store views 1 and 2, brand 360002 sees store view 3 (the store view id is in the URL of Stores > All Stores > the store view). Agents can always click "Show all store views".
  • Several Magento installations: fill in the domain, token and name for store 2 and 3. Brands for this store takes Zendesk brand ids (Admin Center > Account > Brand management; the id is in the brand's URL). A ticket opens the store that lists its brand (or maps it to store views), otherwise the store with no brand list, otherwise store 1. Agents can switch stores.
  • Who may take actions: admin (default), agent (everyone), custom role ids (Admin Center > People > Roles; the id is in the role's URL) or group:<id>, separated by commas. Everyone else sees orders read-only. Example: admin, group:360004512345.
  • Allow refunds, Allow cancel and hold, Allow order comments, Allow resending emails: turn each action type on or off for everyone.
  • Largest refund without an admin: in the order's currency (100 means $100.00 or 100 euros). Admins have no limit. 0 removes the limit.
  • User field with the Magento customer id: the key of a Zendesk user field (Admin Center > People > User fields) that holds the Magento customer id. Use it when customers write in from an address that is not on their account. Matching by every email on the Zendesk user always runs as well.

6. Using the sidebar

  • Matching: Satchelwell looks up every email address on the requester's Zendesk profile: customer accounts with that address on every website, and every order placed with that address (guest checkouts included) or by those accounts. Each result is checked against the exact addresses before it is shown.
  • The customer card: lifetime value and average order (paid minus refunded, per currency), customer since, open orders and refunded totals. "(last N orders)" under the value means the customer has more orders than the sidebar reads (50), so the value is a minimum.
  • An order: click it to see items with SKUs and what has shipped, been refunded or canceled, totals with the discount and coupon, payment, shipping method and address, shipments with carrier and tracking number, invoices, credit memos, returns (Adobe Commerce) and comments. Open in Magento opens it in the admin when an admin URL is set.
  • Insert status in reply: adds the order number, status, carrier and tracking number to the reply you are writing. You still review and send the reply yourself.
  • Lookup: type an order number (000000123, #123 or with your prefix) or an email in the box at the bottom.

7. Actions

Each action opens a panel inside the order, states exactly what will happen, and is sent only when the agent clicks the confirm button. Afterwards Satchelwell adds an internal note to the ticket and a tag. Actions are offered only when Magento allows them for the order's state.

ActionWhat happens in MagentoTag
RefundA credit memo for the lines and quantities you pick, shipping, an adjustment refund and an adjustment fee. Online refunds the payment through the payment method on the order's paid invoice; Offline records it for money returned another way. Optional: return the items to stock, email the credit memo. A full refund closes the order. The credit memo's comment carries the Zendesk ticket number.satchelwell_refund
Cancel orderCancels everything not yet invoiced and returns stock. Not offered for fully invoiced orders (refund instead).satchelwell_cancel
Hold, Release holdPuts the order on hold (nobody can invoice, ship, refund or cancel it) or releases it to its previous status.satchelwell_hold, satchelwell_unhold
Add commentA comment for your team, visible to the customer in their account, or emailed to the customer.satchelwell_order_comment
Resend emailThe order confirmation, an invoice, a shipment (with tracking) or a credit memo email, with your store's templates.satchelwell_email

The credit memo total is worked out by Magento from the lines, tax, discounts, shipping and adjustments; the panel shows Satchelwell's estimate, which can differ by a cent or two. Magento refuses any credit memo above what is left on the order.

If the store's answer gets lost (a timeout or a server error), Satchelwell never sends the action again on its own. It reads the order again: if the change is there, it reports success and logs it; if not, it says nothing changed and the agent can try again. Magento does not record email resends, so a lost answer there is reported as unknown and is not sent again automatically.

8. Troubleshooting

MessageFix
"did not accept the integration token"Section 2 (the bearer switch), then check the integration is active, the token is current (a Reauthorize makes a new one), and it has the resource the message names.
"A firewall or CDN ... blocked Zendesk" or "answered with a web page"Allow Zendesk's IP ranges for /rest/ (section 3).
"REST API was not found at ..."Check the store domain and base path.
"Magento declined to ..."The order changed in the admin meanwhile. Click Refresh.
"The store domain must be the host name only"Remove https://, any path and any trailing slash.
No orders for the requesterLook the order up by number, add the customer's other address to their Zendesk profile, or use the user field mapping.
No returns shownReturns exist on Adobe Commerce only, and the integration needs the Returns resource.

9. Plan and billing

Standard: $5 per agent per month, billed monthly by Zendesk. 14-day trial; Zendesk asks for a card at install and billing starts when the trial ends unless you uninstall. No free plan.

10. Data

Satchelwell reads orders only while an agent has the sidebar open, keeps nothing after it closes, has no export and no server, and sends nothing to Great Work. Details: https://greatwork.company/apps/satchelwell-for-magento-and-adobe-commerce/privacy.

11. Uninstalling

Uninstall in Admin Center > Apps and integrations > Zendesk Support apps. The stored tokens are deleted. Delete the integration in Magento (System > Extensions > Integrations) as well. Internal notes and satchelwell_* tags on tickets stay.

Support: hello@greatwork.company, reply within one business day.

Adobe, Adobe Commerce and Magento are either registered trademarks or trademarks of Adobe in the United States and/or other countries.