# Outcome Actions

> What COD Order Calls writes back to your store when an order settles - add a tag, add a note, cancel the order or record no answer - per outcome, plus the labels used by {labels.*} placeholders.

Source: https://edesy.in/docs/order-calls/call-rules/outcome-actions

Outcome actions run once, when an order settles. For each outcome you choose what to write back to your store: add a tag, add a note, cancel the order, or record that the customer did not answer. Confirm and cancel usually happen during the call, so most stores only set actions for no input and unreachable.

## Defaults

| Outcome | Default action |
|---|---|
| `no_input` | Add tag `{labels.no_input}` |
| `unreachable` | Add tag `{labels.unreachable}` |
| All others | Nothing |

## Actions

| Action | What it sends | Fields |
|---|---|---|
| Add tag | A `tag` action request | Tag text (required), optional note |
| Add note | A `note` action request | Note text |
| Cancel order | A `cancel` action request | None |
| Record no answer on store | The store's "no response" update | None |

Which actions you can pick depends on what the store integration supports; the form only offers those, and an unsupported action is flagged. For a webhook-connected store, tag, note and cancel arrive at your action URL as described in [Action Requests and Placeholders](https://edesy.in/docs/order-calls/connect-your-store/action-requests-and-placeholders).

Tag and note text can use placeholders, for example a note of `Not reachable after {job.attempts} calls`.

## Outcomes you can attach actions to

| Outcome | When it happens |
|---|---|
| `confirmed` | Customer pressed confirm and the store accepted it |
| `cancelled` | Customer pressed cancel and the store cancelled the order |
| `no_input` | Customer answered but didn't press a key (after the last attempt) |
| `unreachable` | No answer, busy or failed on every attempt |
| `expired` | The give-up time passed before the order was confirmed |
| `action_failed` | Customer chose, but the store update failed; it is retried in the background |
| `confirmed_elsewhere` | The order was already confirmed on the store before the call |
| `cancelled_elsewhere` | The order was already cancelled on the store |

Full definitions: [Outcomes Reference](https://edesy.in/docs/order-calls/orders/outcomes-reference).

## Auto-cancel unreachable orders

Some stores cancel COD orders they could not confirm. Add **Cancel order** to `unreachable` (and `no_input` if you like). This cancels real orders, so check your conditions and retry settings first.

## Labels

Labels are the tag or status text per outcome, used by the `{labels.*}` placeholders. Set them once per rule and reuse them in tags and notes.

| Label | Placeholder | Default for a webhook-connected store |
|---|---|---|
| Confirmed | `{labels.confirmed}` | `confirmed` |
| Cancelled | `{labels.cancelled}` | `cancelled` |
| Pending | `{labels.pending}` | `pending` |
| Unreachable | `{labels.unreachable}` | `unreachable` |
| No input | `{labels.no_input}` | `no_input` |

Rename them to match the tags your fulfilment team already filters on, for example `COD-UNREACHABLE`.
