> ## Documentation Index
> Fetch the complete documentation index at: https://docs.armin.cx/llms.txt
> Use this file to discover all available pages before exploring further.

# Zenfulfilment

> Let AI Agents look up a Zenfulfilment order's status or cancel it from a ticket.

The Zenfulfilment integration connects [Zenfulfilment](https://www.zenfulfilment.com), a German e-commerce fulfillment and shipping provider, to Chatarmin CX. It lets AI Agents look up an order's status or cancel it from a ticket.

## When to use it

Use Zenfulfilment when your warehouse orders ship through Zenfulfilment and your support team handles:

* "where is my order?" questions that need the current fulfillment status
* confirming the shipping address or items on an order before answering a customer
* cancelling an order before it ships, instead of asking the warehouse manually

## Prerequisites

You need a Zenfulfilment account with API access: a **Client ID**, a **Client Secret**, and an **API Key**. Ask your Zenfulfilment contact for these if you don't have them yet.

## Set it up

<Steps>
  <Step title="Open integrations">
    [Open integrations](https://armin.cx/app/_/settings/integrations) from your workspace settings and choose **Zenfulfilment**.
  </Step>

  <Step title="Connect your account">
    Click **Connect**, enter the **Client ID**, **Client Secret**, and **API Key**, then confirm. cx logs in to Zenfulfilment with these credentials before saving the connection, so a wrong value is rejected immediately.
  </Step>

  <Step title="Check the connection">
    Add a **Get order** action to an AI Agent (see below), then run a test with a known order number to confirm it returns the order.
  </Step>
</Steps>

## AI Agent actions

Give an [AI Agent](/ai-agents/skills-and-actions) Zenfulfilment actions when you want automation to check order status or cancel an order. Connect Zenfulfilment first, then enable the actions on the agent and select which connected Zenfulfilment account(s) it may use.

### Get order

Looks up a Zenfulfilment order by the shop's own order number (the same number shown in Shopify, for example `#1164329`) and returns its status, shipping address, and line items. This is a read action and does not require approval.

<Note>
  Before returning an order, cx checks that the order's customer email matches an email already on file for the ticket's contact. If it doesn't match — or can't be verified — the agent is told the order wasn't found rather than shown another customer's order.
</Note>

### Cancel order

Cancels a Zenfulfilment order by the shop's own order number. **This cannot be undone.** Zenfulfilment refuses the request once an order has shipped — in that case, tell the customer it's too late to cancel and offer a return instead.

This action defaults to **Ask every time**. AI Agent test runs simulate the cancellation and do not change anything in Zenfulfilment. Review the approval mode before relaxing it.

## Safe testing

1. Use an order you know has not shipped yet.
2. Run the agent in test mode and review the simulated cancellation.
3. Check the proposed order number before approving.
4. For the first live cancellation, approve on a disposable test order and verify the cancelled status in Zenfulfilment.

## Troubleshooting

| Symptom | What to check |
| - | - |
| Connecting fails right away | cx tests the Client ID, Client Secret, and API Key by logging in; re-check them with Zenfulfilment |
| An AI Agent says an order was not found | Confirm the order number, including any leading `#`; the order's customer email must also match an email on the ticket's contact |
| Cancel order is rejected | The order has likely already shipped — tell the customer it's too late to cancel and offer a return instead |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.