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

# Opportunity Discovery

> Scan a sample of your Freshdesk tickets and Freshcaller calls with AI to find the FAQs, actions and system prompt an agent needs, and to estimate the business case

*Opportunity Discovery* reads a sample of your past customer conversations and works out what an AI agent would need to handle them. Run it on a connected source and it gives you:

* **FAQs.** The questions customers ask most, with a suggested answer for each.
* **Required actions.** The things an agent would have to do in a backend system, such as cancelling an order.
* **A system prompt.** A ready-made starting point for an agent's guidelines.
* **A business case.** An estimate of how many conversations an agent could resolve and what that could save.

You can also download the results as an executive report.

<Note>
  Find it at **Optimize → Opportunity Discovery**. It isn't in the default sidebar for account users, so add it with **Customize sidebar** at the foot of the sidebar, or press Cmd/Ctrl+K and search for **Opportunity Discovery**. See [Navigating Studio](/navigating-studio).
</Note>

## Before you start

Opportunity Discovery reads conversations from a source you have connected. The **Configure Data Sources** drawer lists four, and two of them work today.

| Source | What it reads | What you need to connect it |
| - | - | - |
| **Freshdesk** | Tickets: the ticket description, the replies and the notes, including private notes. | Your Freshdesk domain and an API key. See [Connecting an Integration](/manage/connected-apps#connecting-an-integration). |
| **FreshCaller** | Calls that have a recording and a transcript in Freshcaller. | Your Freshcaller domain, for example `yourcompany.freshcaller.com`, and an API key. In Freshcaller, copy the key from **Profile → Personal Settings → API Settings → API Details for Phone**. |
| **Salesforce** | Not available yet. | The card reads **Coming soon** and can't be selected. |
| **CSV Upload** | Not available yet. | The card reads **Coming soon** and can't be selected. |

<Note>
  FreshCaller is available only on accounts where the Freshcaller connection is enabled. If you select it and Studio opens **Connected Apps** with an **Integration not found** message, your account doesn't have it. Use Freshdesk instead.
</Note>

### Connect a source

<Steps>
  <Step>Open **Optimize → Opportunity Discovery**. If you haven't run it before, select **Connect Data Source** under **Generate automation opportunities**. You can also use **Configure Sources** at the top right.</Step>
  <Step>In **Configure Data Sources**, select the card for the source you want. A source that isn't connected yet carries a **Configure Account** badge and a dashed box. Studio closes the drawer and opens **Manage → Connected Apps** with that app's connection dialog already open.</Step>
  <Step>Enter the domain and API key and select **Connect**. Then describe the connection and select **Save Connection**, as described under [Connecting an Integration](/manage/connected-apps#connecting-an-integration).</Step>
  <Step>Studio returns you to Opportunity Discovery with **Configure Data Sources** open and your connected sources ticked. A connected source carries a **Connected** badge.</Step>
</Steps>

If your account has more than one connection to the same app, Opportunity Discovery uses the one connected most recently.

## Run a discovery

<Steps>
  <Step>Open **Configure Data Sources** with **Connect Data Source** or **Configure Sources**.</Step>
  <Step>Tick the sources to include. Connected sources are ticked for you. Both buttons at the bottom of the drawer stay unavailable until at least one source is ticked.</Step>
  <Step>Optional: select **Analyze Daily Call Volume Only** to check how much traffic each source has before you commit. See [Quick Volume Report](#quick-volume-report).</Step>
  <Step>Select **Run Consolidated Discovery**. The button shows how many sources you ticked, for example **Run Consolidated Discovery (2 Selected)**. The drawer closes and the page shows **Opportunity Discovery in Progress**.</Step>
  <Step>Wait for the results. The status line under the heading moves from fetching the transcripts, to analyzing them, to merging similar findings, to writing the system prompt. A run can take several minutes, and you can leave the page and come back to it.</Step>
</Steps>

### What a run reads

Each run reads up to 100 transcripts from each source you tick, so a run on two sources reads up to 200. It is a sample, not your whole history. A FreshCaller call only counts if it has a recording and a transcript.

Only one run can be in progress in a workspace at a time. Anyone who opens the page while it runs sees the same progress screen.

### Quick Volume Report

**Analyze Daily Call Volume Only** counts the call or ticket records in the sources you ticked. It doesn't read transcripts or run the AI analysis, so the answer comes back quickly. The **Quick Volume Report** appears inside the drawer, with a heading for each source when you ticked more than one:

<ResponseField name="Daily Volume" type="metric">
  An estimate of the average number of calls or tickets per day, shown as **calls/day** or **tickets/day**.
</ResponseField>

<ResponseField name="Total Calls / Total Tickets" type="metric">
  How many records the source holds, shown as **records**.
</ResponseField>

<ResponseField name="Time Span" type="metric">
  An estimate of how many days those records cover.
</ResponseField>

If the source can't be read, the drawer shows an **Error:** message in place of the report.

## Reading the results

When a run finishes, the page shows three sections: **Business case**, **Discovered content** and **System prompt — RISEN framework**. The buttons at the top right are **Configure Sources**, **Browse Interactions**, **Re-analyze** and **Download Executive Report**.

### Business case

<ResponseField name="Containment rate" type="metric">
  The share of the conversations it analyzed that the AI judged could be fully resolved without escalating to a human. It is an estimate, and you can't edit it.
</ResponseField>

<ResponseField name="Est. annual savings" type="metric">
  The projected saving over a working year if an agent contained that share of your volume. It combines the containment rate, the daily volume and the cost difference between a human-handled and an AI-handled conversation, for each source you used.
</ResponseField>

<ResponseField name="Avg call duration" type="metric">
  FreshCaller runs only. Inferred from the timestamps in the transcripts.
</ResponseField>

<ResponseField name="Est. daily call volume" type="input">
  FreshCaller runs only. Starts at an estimate taken from your call records. Type your own number to match your real volume, and the savings recalculate instantly.
</ResponseField>

<ResponseField name="Est. daily ticket volume" type="input">
  Freshdesk runs only. It works the same way as the daily call volume.
</ResponseField>

Under the cards, a **How it's calculated** block for each source shows the human cost and AI cost per call or ticket, the saving per contained call or ticket, and the annual number of contained calls or tickets. The cost figures are fixed benchmark estimates. They aren't taken from your own costs or your plan, and you can't change them. Only the daily volumes are editable. The savings figure is worked out from **How it's calculated**. A **Reasoning** card, when shown, adds a short written summary of the run. Treat it as commentary, because the cost figures it quotes can differ from **How it's calculated**.

<Note>
  Changes to the daily volume aren't saved. They reset when you leave the page, run a new discovery or select **Re-analyze**.
</Note>

### Discovered content

**Discovered content** has two tabs, each with a count: **Knowledge Base** and **Required Actions**. Both are grouped and ranked by how often they came up.

* **Knowledge Base** lists the questions customers asked that an agent could answer from reference information, grouped by topic. Each topic shows how many questions it holds and a total such as **12× total**. Select a question to open its **Suggested answer**. The **N× freq** badge beside a question shows how often it came up across the conversations analyzed, with similar questions merged.
* **Required Actions** lists the operations an agent would have to carry out, grouped by category. Each action has a name, a description and the same frequency badge.

Select a topic or category heading to collapse it. Both lists are read-only.

### System prompt — RISEN framework

This section is a system prompt written from what the run saw. It is split into five cards:

| Card | What it holds |
| - | - |
| **Role** | Who the agent is and what it is there to do. |
| **Instructions** | Rules the agent should follow. |
| **Steps** | A numbered sequence for handling a conversation, from greeting to resolution or escalation. |
| **Expectations** | What a good result looks like. |
| **Narrowing** | What is out of scope and when to escalate. |

Select **Copy as Markdown** to copy all five cards. The button reads **Copied** for a moment to confirm.

## Browse Interactions

**Browse Interactions** opens **Interaction Transcripts**, the transcripts from your latest run.

* **Sources.** When the run used both sources, switch between **FreshCaller** and **Freshdesk**. Each shows how many transcripts it holds.
* **Sorting.** The list sorts by **Newest** or **Most frustrated**. A number badge on a row is a rough frustration score, hidden when it is below 1. It is built from signals such as frustrated wording, mentions of a manager, a complaint or a refund, repeat contacts, a long conversation, and a conversation that wasn't resolved without a human. It isn't a customer rating.
* **Conversation.** The full transcript. A Freshdesk ticket shows its subject, who created it, and its replies and notes, with private notes shaded.
* **Insights.** What the run took from that one conversation: **Knowledge extracted**, **Actions identified** and **System prompt notes**. A dot on the tab means insights are available.
* **Download.** The download icon beside a transcript's ID saves it as a text file. **Download All** saves every transcript from the latest run as one text file.

<Warning>
  Transcripts contain what your customers and agents said. Treat any file you download as customer data.
</Warning>

## Re-analyze or run again

* **Re-analyze** regroups the findings and rewrites the system prompt from the insights your last run already saved. It skips reading your source again, so it doesn't pick up new calls or tickets.
* To include newer conversations, open **Configure Sources** and select **Run Consolidated Discovery** again.

A new run replaces the previous results and transcripts. The latest results are saved with your workspace, so a teammate who opens the page sees the same ones.

## Download Executive Report

Select **Download Executive Report** at the top right to save the results as a PDF. It is a landscape, slide-style report covering the headline figures, customer quotes taken from your transcripts and chosen to show frustration, a recommendation, the topics customers raised, the knowledge and actions an agent would need, and the projected savings. If you edited the daily volume, the report uses your number. When the run included FreshCaller, that is the daily call volume.

The button shows its progress: **Polishing report…**, then **Rendering pages... N%**, then **Assembling PDF...**, and **Downloaded** when the file is saved. If something goes wrong it reads **Error - try again**. Keep the tab open until it finishes.

<Warning>
  The report is a presentation version of the results, so it can differ from the page. Before it is built, Studio runs an AI review that can refine topic and action names, adjust business-case figures such as the containment target, and write the recommendation. If that review can't run, you still get the report without those changes. Check the figures and the quotes before you share it.

  The report is also worded around calls, for example "call transcripts" and "daily call volume", and uses the call-based savings calculation. It doesn't use the ticket cost figures that the **Business case** on the page does. If your run included Freshdesk tickets, use the **Business case** for your ticket figures.
</Warning>

## Put the results to work

Opportunity Discovery doesn't create or change agents. You carry the results across yourself.

| Result | Where to use it |
| - | - |
| **Knowledge Base** tab | Add the questions worth keeping as FAQs in a Knowledge Group, then link the group to your agent. See [Knowledge Base](/build/knowledge-base). |
| **Required Actions** tab | Build the ones you want as actions. See [In-conversation Actions](/build/ai-agents/during-call-actions). |
| System prompt | Use it as a starting point for the agent's **Guidelines**. See [Writing Guidelines](/build/ai-agents#writing-guidelines) and the [Prompting Guide](/best-practices/prompting-guide). |

The results are drafts written by AI from a sample of your conversations. Review the suggested answers against your real policies before you use them.

## Troubleshooting

| What you see | What to try |
| - | - |
| Selecting **FreshCaller** opens **Connected Apps** and shows **Integration not found**. | Freshcaller isn't enabled on your account. Use Freshdesk. |
| The run stops and the page returns to **Generate automation opportunities**. | The run couldn't read any transcripts or the analysis didn't finish. Check the connection under **Manage → Connected Apps**, for example whether the API key was changed or revoked, then run again. For FreshCaller, only calls with a recording and a transcript are read. |
| **Error:** appears in the drawer after **Analyze Daily Call Volume Only**. | The source couldn't be read. Check the connection under **Manage → Connected Apps** and try again. |

## Where to go next

<Columns cols={2}>
  <Card title="Connected Apps" icon="plug" href="/manage/connected-apps">
    Connect Freshdesk and manage your existing connections.
  </Card>

  <Card title="Knowledge Base" icon="book-open" href="/build/knowledge-base">
    Turn the discovered FAQs into knowledge your agents can use.
  </Card>
</Columns>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.