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

# Approvals

> Route quotes to internal approvers, track every request, and control exactly what approvers see.

## Overview

**[Approvals <Icon icon="arrow-up-right" />](https://app.seminode.com/approvals)** is where quotes go for internal sign-off before you respond to a partner. An **approval flow** defines the statuses a request moves through, who it goes to, and which fields the approver is allowed to see. The **Approvals Management** table then tracks every request you've sent.

Approvers don't need a Seminode account. They receive an email, verify their address with a one-time code, and act on their own page — see [The approver's experience](#the-approvers-experience).

***

## Approvals Management

The main table on the Approvals page lists every approval request your team has sent, one row per line item. Use it to see what's outstanding, chase what's stale, and reconcile the numbers approvers saw.

### Find the rows you need

* **Search** — match on material number, partner, or manufacturer.
* **Approval Status** and **Partner** — quick inline filters in the toolbar.
* **Filters** <Icon icon="sliders-horizontal" /> — the full filter modal, with status, manufacturer, partner, recipient, date ranges, multi-column sorting, and range sliders for the financial columns (total value, margin, margin %, adjusted margin, adjusted margin %, markup, markup %, and the flow's financial adjustment). A badge on the button shows how many filters are active.
* **Sort** — click any sortable column header to cycle descending, ascending, then unsorted. A header click replaces any multi-column sort set in the filter modal.
* **Columns** — show, hide, and drag-reorder columns. Alongside identity fields (material number, internal number, manufacturer, partner, recipient) the table carries the full financial spread: unit price, adjusted unit price, quantity, total value, margin, margin %, adjusted margin, adjusted margin %, markup, and markup %.
* **Export** <Icon icon="download" /> — download the current view.

### Act on rows

Select one or more rows and a selection bar appears with **Send Reminder** — a bulk resend that queues a reminder email for every selected request, with an optional subject and message override applied to all of them.

The row <Icon icon="ellipsis" /> menu offers:

* **Resend Email** — resend a single request, optionally overriding the subject and message. Requests still in a *Ready for Approval* status haven't been sent yet, so they have nothing to resend.
* **Edit Adjustment** — re-price the line for the approver. See [Re-pricing after routing](#re-pricing-after-routing).
* **Delete** — remove the request.

<Tip>
  Every send is recorded. Open **Send History** on a request to see each initial send, resend, and bulk reminder with its timestamp — useful when an approver claims they never received anything.
</Tip>

***

## Approval flows

Click **Create Flow** to build one. The modal has two steps: **Configuration** and **Variables**.

### Step 1 — Configuration

<Steps>
  <Step title="Name the flow">
    Enter an **Action Name** (required) and an optional **Description** — for example, *Finance sign-off* or *Program manager review*.
  </Step>

  <Step title="Build the status pipeline">
    Add **Statuses** from your team's status catalog, or type a new name and pick its kind. Every status is one of four kinds: **Ready for Approval**, **Pending**, **Approved**, or **Rejected**.

    Ordering is automatic — Ready for Approval, then Pending, then Approved, then Rejected — so you never wire up transitions by hand. Dragging a row reorders it only within its own kind. A flow needs at least one Pending status and at least one terminal status (Approved or Rejected), and can have at most one Ready for Approval.
  </Step>

  <Step title="Open Advanced Settings">
    Everything optional lives in the collapsed **Advanced Settings** section — see below.
  </Step>
</Steps>

<Note>
  A status ends the flow because of its **kind**, not because you mark it terminal. Anything of the Approved or Rejected kind is an end state.
</Note>

### Advanced Settings

| Setting                  | What it does                                                                                                                                      |
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Enabled**              | Turns the flow on or off. Only shown when editing an existing flow.                                                                               |
| **Mandatory action**     | The approval must complete before the quote response can go out.                                                                                  |
| **Use partner alias**    | Shows the partner's configured alias to approvers instead of their real name.                                                                     |
| **CC sender**            | Automatically CCs the user who issued the request.                                                                                                |
| **CC emails**            | Addresses always CC'd when this flow sends.                                                                                                       |
| **Conditional CC rules** | Named rules that add extra recipients only when the quote being routed matches their conditions — for example, *Low margin → CC manager*.         |
| **Financial Adjustment** | A percentage *or* a flat amount applied to the prices and margins shown to approvers.                                                             |
| **Scope**                | Limits the flow to specific **partners** and/or **manufacturers**. This is an inclusion list — leave it blank and the flow applies to everything. |
| **Rejection reasons**    | The list an approver must choose from when declining, seeded from your team's master reasons.                                                     |

### Step 2 — Variables

The Variables step decides **which columns an approver sees**. Pick fields from the variable picker, then drag them into the order they should appear. A live preview shows each field with an example value.

This is your disclosure control. Anything you don't add is never shown to the approver.

<Warning>
  If the flow carries a **financial adjustment**, be deliberate about which fields you expose. Showing the adjusted price alongside certain spread fields — margin, markup, or the adjustment itself — can let an approver work backwards to the partner's original quoted price. Expose only what the approver needs to make the call.
</Warning>

### Managing existing flows

Click **View Flows** for a modal with two tabs:

* **Flows** — every flow as a card. Expand one to see its pipeline rendered as numbered steps, plus creation and update details. The card's <Icon icon="ellipsis" /> menu offers **Edit** and **Delete**.
* **Statuses** — your team's shared status catalog.

Flows are edited, not versioned: you can add and reorder statuses on a live flow. If you remove a status that still has quotes sitting in it, the editor asks you to pick another status of the same kind to move them to, so nothing is stranded mid-flight. To pause a flow rather than delete it, switch **Enabled** off in Advanced Settings.

***

## Adjusting what approvers see

### Financial adjustment

A flow-level financial adjustment restates prices and margins for approvers without touching what the partner quoted. Set it as a **percentage** (`10` = +10%, `-5` = −5%) or as a **flat amount** (`-150` for a \$150 discount). The adjusted columns in the Approvals Management table always show the post-adjustment figures next to the originals.

### Re-pricing after routing

A quote can be re-priced after it's already been sent for approval. Choose **Edit Adjustment** on the row:

* **Percent** scales the quoted unit price.
* **Amount** replaces the quoted unit price outright.
* Leaving the field blank clears the adjustment.

The modal previews the resulting adjusted price and total value before you save, and takes an optional note recording why. A saved adjustment — or a resend carrying a new one — replaces the line's current adjusted price. The partner's quoted price is never changed.

***

## Bulk approvals

You can route many lines at once rather than one at a time:

* **Send in bulk** — select multiple threads in the [Inbox](/tools/inbox) and send them for approval in a single step, reviewing each item's recipients, subject, and message before it goes, and dropping any item you don't want to include.
* **Complete in bulk** — an approver who receives a multi-item request works from a single page showing every line with a running *"3 of 12 reviewed"* count.
* **Remind in bulk** — select rows in the Approvals Management table and use **Send Reminder**.

Every one of these is captured in the request's send history, so a bulk action is as auditable as a single one.

***

<h2 id="the-approvers-experience">
  The approver's experience
</h2>

Approvers are usually people outside your Seminode team — finance, a program owner, a site lead. The flow is built so they never need an account.

<Steps>
  <Step title="They get an email">
    The approval request arrives by email with an **Open** button.
  </Step>

  <Step title="They verify with a code">
    Opening the request asks for their email address, then a **six-digit one-time passcode** sent to that same address. No password, no account setup. Sessions expire, and they simply re-verify.
  </Step>

  <Step title="They work from My Approvals">
    **My Approvals** lists every request sent to their address, grouped by the team that sent it, split into **Pending** and **Completed** tabs with counts. They can export the list.
  </Step>

  <Step title="They decide">
    Opening an item shows the quote details — limited to the variables the flow exposes — and a response form: a **New status** dropdown, a **Rejection Reason** that becomes required when the chosen status is a rejection kind, and an optional **Comment**. A confirmation dialog summarizes the choice before it's submitted.
  </Step>
</Steps>

Where a flow requires several people to sign off, each approver sees the sign-off checklist but can only tick their own row, and the Approved transition stays blocked until every sign-off is recorded.

<Note>
  **Visibility is scoped to the email address the request was sent to.** Forwarding the email does not transfer the ability to act — the recipient of a forward would have to verify their own address, and would see only their own approvals. If someone else needs to decide, send the request to them.
</Note>

<Warning>
  There is deliberately **no counter or message action** for approvers. They approve, reject, or leave a comment. Negotiation goes back through your team — which keeps a single voice on the partner-facing thread.
</Warning>

***

## Related

<CardGroup cols={2}>
  <Card title="Inbox" icon="messages-square" href="/tools/inbox">
    Send quotes for approval and see approval state on threads.
  </Card>

  <Card title="Inbox Automations" icon="bot" href="/tools/automations">
    Filter rules on approval status to pre-sort what's waiting.
  </Card>
</CardGroup>
