# ArminCX

Source: https://gokarla.io/docs/guides/resolve/integrations/armincx

# ArminCX

:::info

The ArminCX integration opens a ticket in your ArminCX workspace whenever a
customer submits a Resolve claim. The ticket is attributed to the customer, and
claim photos, the carrier affidavit PDF, affected items, order context, and the
customer's resolution preference are attached automatically.

:::

## What you need

Before you start, gather:

- **ArminCX admin access** — to create an API key.
- **An ArminCX API key** — created under **Settings → API keys**. It must carry
  the **`tickets:write`** and **`agents:read`** scopes. ArminCX authenticates
  with a **`cx-api-key` header**, so unlike Zendesk or Gorgias there is no
  account email or subdomain to provide.
- **An email channel** — the address of a connected ArminCX email channel new
  claim tickets are opened on, e.g. `support@example.com`. Required before you
  can enable the integration.
- **A default agent email** (optional) — the ArminCX agent new tickets should be
  assigned to. Leave it empty to let ArminCX route tickets through its own inbox
  rules.

Karla authenticates with your API key only — not your ArminCX account password.

## Connect ArminCX for ticket creation

### 1. Create an API key in ArminCX

In ArminCX, open **Settings → API keys** and create a key for your workspace
with the **`tickets:write`** and **`agents:read`** scopes.

Name it something recognizable — e.g. `Karla Resolve Integration` — and copy
the key immediately.

:::warning
Treat the API key like a password. Do not share it in email or chat — enter
it only in the Karla portal.
:::

### 2. Note your email channel

ArminCX opens the ticket on a specific **channel**. Use the address of the
connected email channel exactly as it appears in ArminCX under
**Settings → Channels**:

```text title="Email channel"
support@example.com
```

:::important Name the channel explicitly
ArminCX treats the channel as optional and falls back to the first connected
channel of that type. If you run several inboxes — say `support@` and
`billing@` — that choice is silent and can change, so claims could land in an
inbox nobody is watching. Karla requires the channel so tickets always arrive
in the same place.
:::

### 3. Connect ArminCX in the Karla portal

In the [Karla portal](https://portal.gokarla.io/), navigate to
**Settings → Integrations** and select **ArminCX**.

Under **API Configuration**, paste your **API Key** and save it. Karla stores
it in a secret manager and shows only a masked preview afterward.

### 4. Configure the email channel

Once the key is saved, the **Integration Settings** unlock:

| Field                   | Value                                                                   |
| ----------------------- | ----------------------------------------------------------------------- |
| **Email Channel**       | The ArminCX email channel claims are opened on, e.g. `support@acme.com` |
| **Default Agent Email** | Optional agent to assign new tickets to, e.g. `agent@acme.com`          |

Save the email channel, then toggle the integration on. New Resolve claims will
create tickets in ArminCX automatically.

:::note
The integration cannot be enabled until an email channel is saved — ArminCX
opens claim tickets on a channel, so the address is required.
:::

:::note
If you do not see ArminCX under **Settings → Integrations**, contact your
account manager — the integration may need to be enabled for your shop first.
:::

### 5. Optional settings

Four optional settings live alongside the connection:

- **Sender address** — your postal sender line for the carrier affidavit PDF.
  Saving an address attaches the affidavit to investigation (not received)
  tickets; clearing it removes the affidavit.
- **Type of goods** — what your parcels contain, printed as the content
  ("Inhalt") line on the affidavit.
- **Main carrier** — which carrier's form is used for the affidavit. Leave it on
  _Automatic_ to route by the shipment's own carrier.
- **Ticket templates** — customize the subject, body, tags, and attachments per
  claim reason. See
  [Helpdesk integrations → Ticket templates](./overview#ticket-templates).

## What Karla creates in ArminCX

When a customer submits a Resolve claim, Karla opens an ArminCX ticket with:

- **Subject and message** mapped from the claim reason and customer notes.
- **Contact** matched or created from the order email, with the message
  attributed to the customer — so your reply continues the conversation they
  expect, rather than starting a new one.
- **Tags** reflecting the Resolve flow type, resolution preference, and shipment
  phase (configured per shop).
- **Attachments** — claim photos and, where configured, the carrier affidavit
  PDF, uploaded directly onto the ticket.
- **Order and shipment context** in the ticket — order number, carrier, tracking
  number, affected line items.

Your agents see a complete ticket without looking up the order elsewhere.

:::note Attachment limits
ArminCX accepts up to **10 attachments per message** and **20 MB per file**.
Karla uploads the affidavit PDF first and fills the remaining slots with claim
photos, so evidence is never dropped in favour of an extra image.
:::

## Troubleshooting

**Cannot enable the integration**

- Save an **Email Channel** first — the toggle stays disabled until one is
  stored.

**Tickets not appearing**

- Confirm the integration toggle is enabled in the Karla portal.
- Confirm the channel address matches a connected ArminCX **email** channel
  exactly, including the domain.
- Confirm Resolve is enabled and customers are submitting claims through an
  active Resolve flow.

**Authentication failed after saving**

- Confirm the API key was copied in full — no leading or trailing spaces.
- Confirm the key carries the **`tickets:write`** and **`agents:read`** scopes.
- Confirm the key is not expired or revoked in ArminCX.

**Photos missing from the ticket**

- Confirm each file is under **20 MB** — larger files are skipped rather than
  failing the whole ticket.
- A claim with many photos may exceed the 10-attachment limit; the affidavit and
  the earliest photos are kept.

**Wrong ArminCX workspace**

- Confirm the API key belongs to the ArminCX workspace you expect. A key from a
  different workspace will create tickets there — or fail if the channel does
  not exist.

## Where to next

- [Helpdesk integrations overview](./overview) — other connection options.
- [Zendesk](./zendesk) — native Zendesk integration setup.
- [Gorgias](./gorgias) — native Gorgias integration setup.
- [Dixa](./dixa) — native Dixa integration setup.
- [Kustomer](./kustomer) — native Kustomer integration setup.
- [Intercom](./intercom) — native Intercom integration setup.
- [Superchat](./superchat) — native Superchat integration setup.
- [Webhooks](./webhooks) — push claim events to a custom endpoint instead.
- [Data processing](../data-processing) — the full claim payload shape.
- [Integration and automation](../integration-and-automation) — auto-refunds,
  routing rules, and custom transformations.
- [Integrate in your shop](../integrate-in-your-shop) — embed Resolve on your
  storefront via the Browser SDK.
