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

# Approval Workflow

> Understanding quote approval and client review

Quotes follow a structured approval workflow from creation through client acceptance. This ensures quality and client buy-in before work begins.

## Approval workflow overview

Quotes progress through these statuses:

<Steps>
  <Step title="Awaiting Quote">
    Initial state - team needs to provide estimates
  </Step>

  <Step title="In Progress">
    At least one requirement being worked on
  </Step>

  <Step title="Awaiting CSM Review">
    All requirements complete - internal review needed
  </Step>

  <Step title="Awaiting Client Approval">
    CSM approved - sent to client for decision
  </Step>

  <Step title="Approved">
    Client accepted - converts to task automatically
  </Step>
</Steps>

## Status transitions

### Automatic transitions

The system moves quotes automatically:

**Awaiting Quote → In Progress:**

* Triggered when first requirement is worked on
* Shows progress is happening

**In Progress → Awaiting CSM Review:**

* Triggered when all requirements marked complete
* Ready for internal quality check

**Awaiting Client Approval → Approved:**

* Triggered when client clicks "Approve"
* Creates task automatically

### Manual transitions

Require user action:

**Awaiting CSM Review → Awaiting Client Approval:**

* CSM clicks "Approve" or "Send to Client"
* Triggers client notification

**Any Status → Cancelled:**

* User clicks "Cancel"
* Stores previous status for potential reopen

**Cancelled → Previous Status:**

* User clicks "Reopen"
* Restores previous status

<Note>
  Editing a completed requirement returns the quote from "Awaiting CSM Review" to "In Progress".
</Note>

## Internal approval (CSM)

### Who can approve

CSMs, Managers, and those with approval permissions can approve quotes internally.

### When to approve

Approve when:

* All requirements complete and accurate
* Estimates are reasonable
* Scope is clear and well-defined
* Ready to present to client

### How to approve

<Steps>
  <Step title="Review requirements">
    Check each requirement for completeness and accuracy
  </Step>

  <Step title="Verify estimates">
    Ensure t-shirt sizes are appropriate for scope
  </Step>

  <Step title="Check scope">
    Confirm scope is clear and matches client expectations
  </Step>

  <Step title="Click Approve">
    Either "Approve" or "Send to Client" button
  </Step>
</Steps>

**What happens:**

* Status changes to "awaiting\_client\_approval"
* Client users notified via email and in-app
* Quote appears in client portal for review

<Tip>
  Review quotes promptly - clients are often waiting for estimates to make decisions.
</Tip>

### Requesting changes

If requirements need work:

1. Add comment explaining what needs changing
2. Reassign if needed
3. Team member makes updates
4. Marks requirement incomplete then complete again
5. Returns to CSM for re-review

## Client approval

### Client receives notification

When quote is sent:

* Email notification to all active client users
* In-app notification
* Link to quote in portal

### Client review process

Clients see in the portal:

* Quote title and description
* All requirement blocks with scope
* T-shirt size estimates
* Total estimated time
* Comments and attachments

### Client actions

Clients can:

* **Approve** - Accept the quote
* **Reject** - Decline the quote
* **Cancel** - Put on hold
* **Comment** - Ask questions or discuss
* **View attachments** - See references

### Approval outcomes

**When client approves:**

1. Status changes to "approved"
2. Task created automatically
3. CSM notified of approval
4. Work ready for scheduling

**When client rejects:**

1. Status changes to "rejected"
2. CSM notified with reason
3. Can edit and resubmit
4. Or cancel permanently

**When client cancels:**

1. Status changes to "cancelled"
2. Previous status saved
3. Can be reopened later
4. Useful for "on hold" work

<Warning>
  Once a client approves, the quote cannot be edited. A task is created immediately.
</Warning>

## Notification system

### Who gets notified

**Requirements completed:**

* CSM assigned to client
* Managers

**Quote sent to client:**

* All active client users
* Client portal access users

**Client approved:**

* CSM assigned to client
* PM if assigned
* Managers

**Client rejected:**

* CSM assigned to client
* PM if assigned

### Notification channels

Notifications sent via:

* Email
* In-app notifications
* Visible in notifications panel

## Common approval scenarios

### Scenario 1: Quick approval

**Situation:** Simple bug fix, client trusts team

**Flow:**

1. Requirements complete → CSM review
2. CSM approves → Send to client
3. Client approves same day
4. Task created, work scheduled

### Scenario 2: Back-and-forth

**Situation:** Client has questions about scope

**Flow:**

1. Requirements complete → CSM sends
2. Client comments with questions
3. CSM/team responds via comments
4. Client satisfied, approves
5. Task created

### Scenario 3: Rejection and revision

**Situation:** Estimate too high for budget

**Flow:**

1. Requirements complete → CSM sends
2. Client rejects (budget concerns)
3. CSM discusses options with client
4. Team revises scope, re-estimates
5. CSM sends updated quote
6. Client approves revised version

### Scenario 4: Cancelled/on hold

**Situation:** Client wants to delay work

**Flow:**

1. Quote sent to client
2. Client clicks "Cancel" (priorities changed)
3. Status: "cancelled"
4. Later: Client contacts CSM to proceed
5. CSM clicks "Reopen"
6. Status restored, can approve now

## Approval best practices

### For CSMs

<CardGroup cols={2}>
  <Card title="Review thoroughly" icon="eye">
    Don't rubber-stamp - check estimates and scope carefully
  </Card>

  <Card title="Clarify before sending" icon="message">
    Better to delay than send confusing quote
  </Card>

  <Card title="Set expectations" icon="clock">
    Tell client expected review turnaround time
  </Card>

  <Card title="Follow up" icon="phone">
    If no response after 2-3 days, follow up
  </Card>
</CardGroup>

### For team members

<CardGroup cols={2}>
  <Card title="Complete promptly" icon="bolt">
    CSM is often waiting to send to client
  </Card>

  <Card title="Clear scope" icon="align-left">
    Write scope that client can understand
  </Card>

  <Card title="Appropriate sizing" icon="ruler">
    Don't underestimate to look cheaper
  </Card>

  <Card title="Respond to feedback" icon="reply">
    Address CSM comments quickly
  </Card>
</CardGroup>

### For clients

<CardGroup cols={2}>
  <Card title="Review promptly" icon="clock">
    Team is waiting to start work
  </Card>

  <Card title="Ask questions" icon="circle-question">
    Use comments if anything is unclear
  </Card>

  <Card title="Be realistic" icon="scale-balanced">
    Balance budget with quality/scope
  </Card>

  <Card title="Communicate delays" icon="message">
    Let CSM know if you need more time
  </Card>
</CardGroup>

## Troubleshooting

<AccordionGroup>
  <Accordion title="Quote stuck in CSM review">
    CSM may be waiting for clarification or busy with other work. Follow up with CSM directly if urgent.
  </Accordion>

  <Accordion title="Client not receiving notifications">
    Check client user has active status and valid email. Verify they have portal access.
  </Accordion>

  <Accordion title="Client can't see quote">
    Ensure quote status is "awaiting\_client\_approval". Client can only see quotes sent to them.
  </Accordion>

  <Accordion title="Need to edit after approval">
    Cannot edit approved quotes. You must create a new quote or edit the created task if needed.
  </Accordion>

  <Accordion title="Quote disappeared after approval">
    Approved quotes remain in the system but are linked to the created task. Check the Tasks list.
  </Accordion>
</AccordionGroup>

## Reopening cancelled quotes

### When to reopen

Reopen when:

* Client ready to proceed with cancelled work
* Priorities have changed
* Budget now available

### How to reopen

<Steps>
  <Step title="Find cancelled quote">
    Filter quotes list by "Cancelled" status
  </Step>

  <Step title="Open quote detail">
    Click on the cancelled quote
  </Step>

  <Step title="Click Reopen">
    Button available on cancelled quotes
  </Step>

  <Step title="Status restored">
    Returns to previous status before cancellation
  </Step>
</Steps>

**What happens:**

* Previous status restored
* Can continue workflow from where it left off
* Timestamps preserved
* Comments and history intact

## Next steps

<CardGroup cols={2}>
  <Card title="Converting to Tasks" icon="arrow-right" href="/user-guide/quotes/converting-to-tasks">
    See what happens when quotes are approved
  </Card>

  <Card title="Tasks" icon="check-square" href="/user-guide/tasks">
    Learn about tasks created from quotes
  </Card>

  <Card title="Requirement Blocks" icon="cube" href="/user-guide/quotes/requirement-blocks">
    Understand requirement estimation
  </Card>

  <Card title="Creating Quotes" icon="plus" href="/user-guide/quotes/creating-quotes">
    Review quote creation process
  </Card>
</CardGroup>
