> For the complete documentation index, see [llms.txt](https://docs.airops.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.airops.com/campaigns/opportunities.md).

# Opportunities

Review Campaign opportunities, edit briefs, and act before recommendations expire

**Opportunities** is the Campaign tab where your team reviews recommended actions. Each opportunity is one proposed action with a brief and optional supporting pages or prompts. Review that brief before work moves into **Action**.

## Review flow

1. Open the Campaign.
2. Select **Opportunities**.
3. Generate opportunities with Quill or a configured **Trigger**. Use **Add more** to generate more opportunities or add one manually.
4. Wait for generation to finish. This usually takes 15 to 30 minutes.
5. Open an opportunity card to read its brief, target page, and supporting context.
6. Edit the brief if the recommended action needs a clearer instruction.
7. Inspect the supporting pages or prompts. All supporting context carries into the Action row when you accept.
8. Click **Accept opportunity** to send the work to **Action**, or **Decline opportunity** to leave it out.

## Task usage for opportunity generation

Generating opportunities runs the Campaign's strategy Playbook and uses workspace tasks. When an estimate is available, review it on **Generate Opportunities**, **Find more opportunities**, or in the Campaign's trigger settings.

The estimate uses the average task usage of the Campaign's last five finished strategy runs. If there are no past runs, AirOps uses the previous week's average for the same action type. No estimate appears when there is no comparison data. Actual usage can differ from the estimate.

## Opportunity groups

| Group                 | What it contains                                                                                  |
| --------------------- | ------------------------------------------------------------------------------------------------- |
| **New Opportunities** | Pending recommendations your team has not accepted or declined.                                   |
| **Expired**           | Pending recommendations that are more than 14 days old and can no longer be accepted or declined. |
| **Declined**          | Opportunities your team chose not to pursue.                                                      |

Accepted opportunities appear in **Action** and are no longer listed in **Opportunities**. Use **Show All** when a group has more opportunities than the first page. Select multiple new opportunities to accept or decline them together, or use **Accept all** for the new group.

## Opportunity expiration

Pending Campaign opportunities expire after 14 days. Expired recommendations remain available to read, but you cannot edit, accept, or decline them. Generate new opportunities when you need a current recommendation. Previously accepted or declined opportunities retain their status.

Expiration is automatic; the current **Campaign settings** page does not offer a configurable expiration period.

## What you review

Open an opportunity card to review the full brief and context.

| Field           | Description                                                                                |
| --------------- | ------------------------------------------------------------------------------------------ |
| **Brief**       | The recommended action. You can edit this before you accept.                               |
| **Target page** | For refresh Campaigns, the existing page the action should update.                         |
| **Context**     | Supporting pages or prompts that should inform the action and later appear in Measurement. |
| **Status**      | New, accepted, declined, or expired.                                                       |

## Review the brief and context

Read the opportunity's target and supporting context, then edit the brief if the action needs a clearer instruction. Accept or decline from the same view. There is no separate context-selection step: acceptance carries all supporting pages and prompts into **Action** for execution and Measurement.

{% hint style="info" %}
Declined and expired opportunities remain readable in their groups. Open **Action** to work with accepted opportunities.
{% endhint %}

## Add an opportunity manually

Use **Add opportunity manually** when you already know the action and do not want to wait for a generation run.

1. Open the Campaign's **Opportunities** tab.
2. Open **Add more** and click **Add opportunity manually**.
3. For a refresh Campaign, select the **Page** the opportunity should update.
4. Add **Reference context** such as related prompts or pages. This context is tied to the opportunity and tracked in Measurement.
5. Write the **Brief**.
6. Click **Add Opportunity**. Select **Add more** if you want to stay in the modal and create another one.

## Opportunity JSON shape

The following simplified shape describes a Campaign Opportunity. It is the recommendation your team reviews before accepting it into **Action**.

An Opportunity object contains these fields:

| Field                        | Shape             | Purpose                                                                                 |
| ---------------------------- | ----------------- | --------------------------------------------------------------------------------------- |
| `id`                         | Integer           | The Opportunity ID.                                                                     |
| `name`                       | String            | The name of the recommended action.                                                     |
| `description`                | String            | The recommended brief. You can edit it during review.                                   |
| `opportunity_schema_version` | Integer           | The schema identifier. The shape described here uses `2`.                               |
| `status`                     | String            | The review status, such as `pending`, `accepted`, `rejected`, or `expired`.             |
| `target_page`                | Object or `null`  | The page to refresh. It is `null` for a page-creation opportunity.                      |
| `opportunity_contexts`       | Array             | Supporting pages or prompts, ordered by `position`.                                     |
| `action_item_id`             | Integer or `null` | The accepted Action record. It is `null` while the Opportunity is pending.              |
| `grid_row_id`                | Integer or `null` | The Action row created after acceptance. It is `null` while the Opportunity is pending. |

The `target_page` object includes the page `id`, `url`, and `folder`.

Each item in `opportunity_contexts` includes:

* `id`: The context ID.
* `rationale`: Why the context supports the Opportunity.
* `position`: The context's order.
* `resource`: The supporting page or prompt.

A prompt resource includes its `type`, `id`, prompt text, topic, and tags. A page resource includes its `type`, `id`, page URL, folder, and topics.

## What happens after acceptance

Accepted opportunities appear in **Action** as Action rows. Each row keeps the brief you approved, the target page when there is one, and all supporting context.

Declined opportunities stay out of **Action** so the Campaign remains focused on the work your team wants to pursue.

## Examples

### Page refresh review

For a refresh Campaign, review whether the target page has a clear reason to change. Strong candidates may have declining citation rate, outdated information, competitor pressure, or a gap between the current page and the prompts it should answer.

Review the supporting prompts to check that they fit the refresh. Accept the opportunity when your team is ready to refresh that page, or decline it if the recommendation is off-topic.

### New page review

For a creation Campaign, review whether the brief describes a page your team can create. Strong candidates may have high-intent prompts, weak owned coverage, or competitor pages filling the gap.

Review whether the supporting prompts fit the new page. Accept the opportunity when your team can create the supporting content, or decline it if it belongs in a different Campaign.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.airops.com/campaigns/opportunities.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
