# Outcomes Reference

> Every COD Order Calls job state and outcome - confirmed, cancelled, no_input, unreachable, expired, action_failed, confirmed_elsewhere, cancelled_elsewhere - what each means and what happens next.

Source: https://edesy.in/docs/order-calls/orders/outcomes-reference

Every order a call rule picks up becomes a job with a state (where it is in its journey) and, once finished, an outcome (how it ended). The main outcomes are `confirmed`, `cancelled`, `no_input` and `unreachable`. The Orders screen shows both, and you can attach [outcome actions](https://edesy.in/docs/order-calls/call-rules/outcome-actions) to each outcome.

## States

| State | Meaning |
|---|---|
| Scheduled | Waiting for its next call: the delay, a retry gap, the calling window, or a temporary problem such as a low wallet |
| Dialing | A call is in progress |
| Settled | Finished with an outcome |
| Cancelled | Stopped before it finished: the order was cancelled or paid on the store, or you cancelled the job |
| Skipped | Never called: it didn't match the conditions, had no valid Indian phone number, or the number is on your do-not-call list |

## Outcomes

| Outcome | Shown as | Meaning |
|---|---|---|
| `confirmed` | Confirmed | Customer pressed 1 and the store accepted the confirmation |
| `cancelled` | Cancelled | Customer pressed 2 and the store cancelled the order |
| `no_input` | No input | Customer answered but didn't press a key, after the last attempt |
| `unreachable` | Unreachable | No answer, busy or failed on every attempt |
| `expired` | Expired | The give-up time passed before the order was confirmed |
| `action_failed` | Update failed | Customer chose, but the store update failed. It is retried in the background |
| `confirmed_elsewhere` | Confirmed elsewhere | The order was already confirmed on the store before the call |
| `cancelled_elsewhere` | Cancelled elsewhere | The order was already cancelled on the store |
| `order_not_found` | | The store no longer has the order (only for integrations where we check the order before calling) |

## How an outcome is decided

| What happened on the last call | Outcome |
|---|---|
| Answered, pressed 1, store accepted | `confirmed` |
| Answered, pressed 2, store accepted | `cancelled` |
| Answered, pressed a key, store update failed | `action_failed` |
| Answered, no key | `no_input`, or a retry if "Answered but no key pressed" is a retry reason and attempts are left |
| No answer, busy or failed | A retry if attempts are left and the give-up time has not passed, else `unreachable` |

`confirmed_elsewhere` and `cancelled_elsewhere` apply when the store already shows the order as confirmed or cancelled when we check it.

## Each order's timeline

Open an order on the Orders screen to see:

- the order (name, number, customer, masked phone, COD amount, payment method)
- a timeline: event received, scheduled or skipped, each call, each store request, and the final outcome
- every call with its start time, status, the keys pressed, the outcome and the duration
- the store request behind each action, with its response

The `outcome_detail` text explains the last step in plain words, for example "calling (attempt 2 of 3)" or "waiting: wallet balance is too low".
