---
title: "Usage, plans and limits"
url: https://developers.dagio.ai/usage/
---

# Usage, plans and limits

   
                                
                                                                 
             
                
          
   

## Read limits in context

Product capability, permission and budget are distinct. A plan can include a feature while a member still needs permission. A profile can be authorized yet have exhausted a usage limit.

| Information | Expected value | Question |
| --- | --- | --- |
| Plan | Effective plan and capabilities | Is the feature included? |
| Access | Role and permissions | Can this person use it? |
| Usage | Measurement and period | What consumption is recorded? |
| Limit | Threshold and scope | What blocks the next operation? |
| Provider | Connected account conditions | Which external resource is used? |

## Example

Coediting requires Team or higher plus content permissions. Drafting a quote can also consume AI resources according to its profile. Present the affected limit and useful action: check access, correct a profile or review the plan.

## Find your preferences

In **Settings → Preferences**, choose a reference text, edit it in its Surface or open its history.
Initial texts come from the application; they are not fixed settings. Add a preference when the
application allows it, or ask ChatGPT to update the explicitly selected preference. Surface does
not silently infer a new preference, and these texts change neither permissions nor budgets.

Changing the interface language preserves the selection. If a text cannot be retained before
switching selection, keep it open and resume its input. After a confirmed save, refreshing the
list does not require saving a second time.

## Manage account billing

Open **Settings → Plan & billing** to consult the current account plan and its subscription state.
The account owner opens the secure Stripe portal when billing is configured and a subscription is
linked to that account. Other members can consult plan information without gaining billing rights.
Returning from Stripe does not by itself confirm payment or change Surface permissions.

If opening the portal fails, retry the same request. Each opening checks current account rights;
an old link does not replace authorization. An expired request requires refreshing billing before
explicitly requesting a new portal. When subscription or plan changes are unavailable, the interface
states the limitation instead of presenting an ineffective upgrade button.

If the account conditions change after a portal has been prepared, refresh billing and explicitly
request a new opening when prompted. A missing response is not silently replaced by another
request. Once the portal has opened successfully, another visit prepares a fresh temporary link.

## Keep refusals explicit

An operation blocked by a limit remains identified as such. The system does not silently use unauthorized accounts or resources. Estimates and measured consumption must be clearly distinguished.

Plans and conditions appear on the [pricing page](/pricing/). [Diagnostics](https://developers.dagio.ai/troubleshooting/) distinguish limits, permissions and unavailability.

<!-- surface-examples:start -->

## Applied examples : Bound work and track usage

The budget sets Flow limits; step attempts are bounded as well.

### Configuration

Fragment placed in `flowBlueprints[].composition.budgets`. [Properties and accepted values](https://developers.dagio.ai/reference/flow-composition/).

```json
{
  "maximumDepth": 2,
  "maximumOccurrences": 20,
  "maximumConcurrency": 2,
  "maximumIterations": 3,
  "maximumDurationMilliseconds": 86400000,
  "maximumCostUnits": 100,
  "maximumStateBytes": 32000
}
```

### Variation and connection

Fragment placed in `flowBlueprints[].composition.steps[]`. [Properties and accepted values](https://developers.dagio.ai/reference/flow-composition/).

```json
{
  "key": "prepare",
  "kind": "task",
  "workNodeKey": "prepare",
  "actionKey": "prepare",
  "inputs": {},
  "outputs": [
    {
      "key": "proposal",
      "type": "result-reference",
      "provenance": "canonical",
      "minimum": 1,
      "maximum": 1,
      "result": "reference"
    }
  ],
  "reservedCostUnits": 1,
  "maximumAttempts": 3
}
```

### UI layout example

The illustrative layout below places this configuration in the Clients/Quotes app. Insert each fragment at the stated location, with Field, Query and Action references matching the Model declarations.

1. Flow budget
2. Reserved cost
3. Attempts
4. Usage

<!-- surface-examples:end -->
