# Flows and customization

Source: https://gokarla.io/docs/guides/resolve/flows-and-customization

# Flows and customization

Resolve is a kit of building blocks. The flows below come ready to use, the
steps inside them are rearrangeable, and the guardrails around them are all
optional. This page is a tour of what you can switch on, what you can shape,
and where each piece earns its keep.

The general rule: if you see a behavior described here, you can turn it off.
If you see a number, you can change it. If you see a step, you can move it
or skip it.

## The seven flows

Resolve ships with seven flows, each designed around one type of issue. You
choose which ones to expose; everything else stays hidden.

| Flow                | When customers reach for it                       |
| ------------------- | ------------------------------------------------- |
| **Defective**       | Item arrived damaged or broken                    |
| **Not received**    | Tracking says delivered, customer didn't get it   |
| **Missing product** | Package arrived, something's missing from the box |
| **Wrong product**   | Package arrived with the wrong contents           |
| **Return**          | Wrong size, changed mind, doesn't fit             |
| **Dissatisfied**    | Item is fine but didn't meet expectations         |
| **Support**         | Catch-all for anything outside the other flows    |

Each flow is a guided sequence of steps: pick the issue, identify the
affected items, give us the evidence we need, choose how you'd like it
resolved. The customer never sees the ones you've turned off.

## The steps inside a flow

A flow is built out of steps, and most steps are optional. The big ones:

- **Issue selection** — the entry point. Lists the flows you've enabled.
  Configurable per flow.
- **Product selection** — pick which line items are affected and how many
  units. Smart defaults based on what's in the order.
- **Image upload** — proof of the issue. You can require a minimum number of
  pictures per item, mandate a separate "whole package" shot, or leave it
  optional.
- **User description** — the customer's note. You decide whether it's
  required, set minimum and maximum character counts, and whether the
  resolution preference (refund vs. replacement) shows up here.
- **Resolution preference** — refund or replacement. Available per flow type
  — for example, you might offer it for defective claims but not for a
  support ticket.
- **Signature** — for flows that need acknowledgement (return drop-offs,
  carrier investigations).
- **Submission** — the closing screen. Can carry a custom message or link
  out to your own confirmation page.
- **Information** — drop a static information panel anywhere in the flow
  (FAQ link, policy reminder, pre-flow disclaimer).
- **Custom prompt** — ask a custom multiple-choice question at any point
  ("How did you discover the damage?") and capture the answer in the claim.
- **Handoff step** — transfer the customer to your returns portal or another
  third-party tool, with optional order data in the URL. See
  [Returns](./returns) for how this works in practice.

You don't have to use all of them. A minimal flow can be three steps; a
detailed one can be eight. We'll help you find the right shape for your
operation.

## Conditional behavior

Most of what's in Resolve can be made conditional. Show a flow only when it
makes sense; hide it the rest of the time.

- **By shipment phase.** Only show "not received" once tracking marks the
  shipment as delivered. Only show "return" once the customer has actually
  received the order.
- **By time elapsed.** Only show a flow after a number of hours has passed
  since a phase change — for example, only let customers report
  non-delivery 24 hours after the carrier marked it delivered.
- **By selected items.** Require at least N items selected before a flow
  becomes available.
- **By selected quantities.** Same idea, but counting total units rather
  than distinct line items.
- **By delivery status.** Split a single flow into "delivered" and "not yet
  delivered" branches that ask different questions and end in different
  resolutions.

These toggles compose: you can require both "delivered for at least 12
hours" and "at least 1 item selected" before the defective flow becomes
clickable.

## Guardrails for your operations team

Resolve gives the customer a clean self-service experience, but you still
want sensible limits on the back end. A few of the levers:

- **Block duplicate submissions.** Stop customers from filing more than one
  claim per order. Off by default — flip it on if you'd rather not have
  duplicate tickets to triage. If you'd rather let the customer submit
  again, leave it off.
- **Mandatory descriptions with min/max characters.** Keep claims
  actionable. Set a minimum to weed out one-word submissions, a maximum to
  keep things readable.
- **Minimum images per item.** Require enough proof for your ops team to
  make a decision without going back to the customer.
- **Warranty windows.** Cap product selection in the defective flow to
  items still within warranty.
- **Resolution preference per flow.** Show "refund or replacement" for
  defective claims; hide it for support tickets where you'd rather decide
  case by case.

## Branding and language

Resolve renders inside your brand, not next to it.

- **Colors, background, and logo.** Configure the palette, background type
  (solid color or image), and the logo shown on the side panel. The
  customer never leaves the brand.
- **Themed for desktop and mobile.** A split-screen layout on larger
  screens, a stacked layout on phones — handled automatically.
- **Multi-language.** All flow copy is translatable; missing translations
  fall back gracefully. You can edit translations directly in the portal.
- **Exit redirect.** Send the customer back to your shop, your tracking
  page, or anywhere else once the flow ends.

## Editing all of this

Most of what's described here is editable directly in the
[Merchant Portal](https://portal.gokarla.io) — the Resolve preview page lets
you adjust style, toggle features, and edit translations side by side with a
live preview of the customer experience. Anything that needs deeper
configuration (a new flow shape, custom routing, conditional logic across
multiple variables) is something we'll set up with you. Talk to your
account manager when you have something specific in mind.

## Where to next

- [Integrate in your shop](./integrate-in-your-shop) — embed the resolve
  widget on your own domain.
- [Data processing](./data-processing) — what lands where after the
  customer submits.
- [Portal → Resolve](/docs/guides/portal/resolve) — claims analytics and the
  Claims table.
