How to create a Magento 2 integration access token for Zendesk
By Jake Marsh · Updated
To create a Magento 2 integration access token for Zendesk, open the Magento admin, go to System > Extensions > Integrations > Add New Integration, set Resource Access to Custom with the resources you need, save, then click Activate and Allow. Copy the Access Token. On Magento 2.4.4 and later, also allow access tokens as standalone bearer tokens, then paste the token into Satchelwell's settings.
Step 1: create the integration
- In the Magento admin, go to System > Extensions > Integrations > Add New Integration.
- Name: Satchelwell for Zendesk.
- Your Password: your admin password. Magento asks for it to save.
- On the API tab, set Resource Access to Custom and tick the resources below.
- Save, then click Activate and Allow.
- Magento shows four values. Copy the Access Token; the other three aren't needed. Then click Done.
Adobe's Integrations page shows the same screens.
Which resources to tick
Leave out any action you don't want agents to take.
| Satchelwell feature | Magento resource (API tab) |
|---|---|
| Customer accounts by email | Customers > All Customers |
| Orders, totals, items, comments | Sales > Operations > Orders > Actions > View |
| Shipments and tracking | Sales > Operations > Shipments |
| Invoices | Sales > Operations > Invoices |
| Credit memos, and refunds | Sales > Operations > Credit Memos |
| Returns (Adobe Commerce only) | Returns |
| Cancel | Sales > Operations > Orders > Actions > Cancel |
| Hold and release | Sales > Operations > Orders > Actions > Hold, Unhold |
| Order comments | Sales > Operations > Orders > Actions > Comment |
| Resend the order email | Sales > Operations > Orders > Actions > Send Order Email |
| Resend invoice, shipment, credit memo emails | Invoices, Shipments, Credit Memos |
A read-only sidebar needs only the first five rows (and Returns on Adobe Commerce).
Step 2: allow the token as a bearer token
Since Magento 2.4.4, an integration's access token is only accepted as a bearer token when the store allows it.
- Go to Stores > Configuration > Services > OAuth > Consumer Settings.
- Uncheck Use system value next to Allow OAuth Access Tokens to be used as standalone Bearer tokens.
- Set it to Yes and save.
On Adobe Commerce cloud infrastructure you can set it in the admin the same way, or have your developer set oauth/consumer/enable_integration_as_bearer to 1 in the deployed configuration. Without this, every request answers "did not accept the integration token".
Step 3: connect it in Zendesk
- Install Satchelwell from the Zendesk Marketplace.
- Store domain: the domain only, in lowercase, such as
shop.example.com. Nohttps://, path or port. Zendesk sends the token only to this domain, so it must match the store's address exactly. - Base path: only if Magento runs in a sub-folder, such as
/shop. Never add/restor/index.php. - Integration access token: paste it. Zendesk stores it as a secure setting; it's never sent to agents' browsers.
- Admin URL (optional): such as
https://shop.example.com/admin, for the "Open in Magento" links. - Save and open a ticket from a customer who has ordered.
Store requirements
- HTTPS with a valid certificate and a complete 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 for the
/rest/path. - Nothing is installed in Magento: no extension, no module.
- Adobe Commerce as a Cloud Service, the SaaS edition, isn't supported: it signs in only with Adobe IMS and has no integration tokens.
Error messages
| Message | Fix |
|---|---|
| "did not accept the integration token" | Turn on the bearer setting, check the integration is active and the token is current, and that 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/ |
| "REST API was not found at ..." | Check the store domain and base path |
| "The store domain must be the host name only" | Remove https://, any path and any trailing slash |
If you ever click Reauthorize in Magento, it issues a new access token. Paste the new one into Satchelwell.
What it costs
Satchelwell is $5 per agent per month on the Standard plan, with every feature. It has a 14-day free trial; Zendesk asks for a card at install and bills monthly. The full reference is in the Satchelwell documentation.
Satchelwell for Magento and Adobe Commerce
Magento orders on the ticket: refund, cancel, hold, comment and resend emails, all logged. $5 a month per agent.
Questions
Where do I find the Magento 2 access token?
After you click Activate and Allow on the integration, Magento shows four values. The Access Token is the one Satchelwell needs.
Do I need the consumer key and secret too?
No. Only the Access Token. The consumer key, consumer secret and access token secret aren't needed.
Why does Magento reject a valid token?
On Magento 2.4.4 and later, integration tokens work as bearer tokens only after you allow it in Stores > Configuration > Services > OAuth > Consumer Settings.
Can I connect more than one Magento store?
Yes. Fill in the domain, token and name for store 2 and 3 in the settings, and map Zendesk brands to each.
More Satchelwell for Magento and Adobe Commerce guides
- How to cancel or hold a Magento order from a Zendesk ticket
- How to create a Magento 2 credit memo from a Zendesk ticket