> ## 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.

# Email Agents

> Let an AI agent triage and reply to email in a connected Freshdesk mailbox

Email is the third channel your AI agents can work, alongside voice and chat. An email agent picks up a ticket from a mailbox in your Freshdesk account, replies in the thread the way a support colleague would, and finally either resolves the conversation or escalates it to a human.

The channel is available to every account — there is nothing to request and no provisioning step. What an agent needs is a Freshdesk connection and a mailbox to watch.

Everything else an email agent answers with is what you have already built: the same FAQs, the same knowledge groups, and the same in-conversation actions that drive your voice and chat conversations.

***

## How an email conversation flows

<Steps>
  <Step title="A ticket arrives">
    A customer emails the mailbox you have ticked for the agent, and Freshdesk creates a ticket.
  </Step>

  <Step title="The agent reads the thread">
    It works from the message history, its FAQs, and its knowledge groups. Where it needs live data — an order status, an account balance — it runs one of its in-conversation actions.
  </Step>

  <Step title="The agent replies in the thread">
    The reply goes out as a normal Freshdesk reply, so the customer sees one continuous email conversation rather than a separate channel.
  </Step>

  <Step title="The customer replies, or does not">
    Each new customer reply is another turn: the agent reads the thread again and answers again.
  </Step>

  <Step title="The conversation ends">
    The agent resolves the conversation, escalates it to a human, or — if the customer stops replying — it ends on inactivity.
  </Step>
</Steps>

***

## Before you start

Make sure you have:

* An agent built and saved in **Build → AI Agents**
* A Freshdesk account containing the mailbox you want the agent to work
* The **Freshdesk** connection set up in **Manage → Connected Apps** (see [Connected Apps](/manage/connected-apps))

<Note>
  Both halves are required. An agent only starts working email once Freshdesk is connected **and** a mailbox is ticked on the agent. Until then nothing is picked up.
</Note>

***

## 1. Connect Freshdesk

If Freshdesk is not connected yet:

1. Open **Studio → Manage → Connected Apps**.
2. Find the **FreshDesk** card and click **Connect**.
3. Enter your **Domain** and **API Key**.
4. Click **Connect**. The credentials are validated before they are saved, and the connection then appears in the **Connected Accounts** list.

One connection serves every agent in the workspace, so this is a one-time job per Freshdesk account.

### Automation rules in your Freshdesk account

So that the agent sees new tickets, SquawkVoice maintains two automation rules inside your own Freshdesk account. They are pinned to position 1 and named to carry a `[DO NOT DELETE, DO NOT REORDER]` marker, so reordering rules in Freshdesk can no longer stop the agent picking tickets up.

<Warning>
  Because the shape of these rules changed in this release, both are deleted and re-created the next time each connected mailbox syncs after the upgrade — **and they land above your own automation rules**. If you rely on one of your own rules running first on the same tickets, check the order in Freshdesk afterwards. Where an account rejects the pinned position, the rules are re-created unpositioned so coverage is never lost.
</Warning>

***

## 2. Choose a mailbox

Email is configured on the agent, in the **Email Configuration** card in the agent's **Modality** section — described there as "Triage and reply to email with your AI agent."

1. Open your agent in **Studio → Build → AI Agents**.
2. Go to **Email Configuration → Inbox**.
3. Under **Freshdesk mailboxes**, tick the mailbox this agent should work.

If nothing is listed, the panel reads:

> **No Freshdesk accounts connected**
>
> Go to Manage → Connected Apps → Freshdesk to connect an account, then return here.

That is the cue to complete step 1 first.

<Tip>
  Give each agent its own mailbox where you can. A mailbox with a clear purpose — billing, deliveries, technical support — lets you keep that agent's FAQs, knowledge and actions tightly scoped, which is what makes its replies accurate.
</Tip>

***

## 3. What the agent uses to answer

There is nothing email-specific to teach the agent. An email agent draws on exactly the same configuration as the same agent on voice and chat:

| Source                      | What it gives the agent                                                                                                                                                                                    |
| --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **FAQs**                    | Short, curated question-and-answer pairs. The agent's full FAQ list is available on every reply it composes.                                                                                               |
| **Knowledge groups**        | Your uploaded documents and scraped web content. The agent searches its knowledge base before replying.                                                                                                    |
| **In-conversation actions** | Live lookups and updates in your own systems. The agent can run an action part-way through composing a reply, and the result is recorded in the conversation's action log just as it is on voice and chat. |

See [Knowledge Base](/build/knowledge-base) for adding FAQs, documents and web content to a knowledge group, and linking that group to an agent.

<Tip>
  Keep the FAQ list lean. Because the agent's whole FAQ list is included in every reply it composes, a very long list makes each email turn cost more. Anything long-form or reference-shaped belongs in a knowledge group instead, where it is searched rather than carried.
</Tip>

***

## Greeting and Sign-off

**Greeting & Sign-off** is organized as **Voice**, **Chat** and **Email** tabs. Your existing voice and chat wording is unchanged — it now simply lives under its own tab.

The **Email** tab holds a single field:

<ResponseField name="Closing message" type="text" required>
  "Send this message when the email conversation is resolved or closed."

  Pre-filled with **"Thank you for contacting us. Have a great day!"** It cannot be saved blank, and it accepts variables, so you can sign off with the customer's name or a reference number.
</ResponseField>

Email conversations have no opening greeting to configure. The customer starts the thread, so the agent's first message is already a reply.

### Multiple languages

Every language configured on the agent gets its own **Message to Send in *Language*** box, below the English default — for both the email closing message and the [handoff message](#handing-a-thread-to-a-human).

When you add a language to the agent, the existing email closing message and email handoff message are translated into it automatically and the new boxes are pre-filled, exactly as voice and chat copy already was.

<Note>
  Auto-translation is a starting point, not a sign-off. Read the pre-filled boxes before you go live — brand names, product names and legal wording are the parts most worth checking.
</Note>

***

## Handing a thread to a human

When the agent cannot finish a conversation itself, it escalates the thread. The reply that goes out at that moment is set in **Handoff → Email → Handoff Message**: "Reply with this message when the assistant escalates the email conversation to a human."

1. Open your agent and go to the **Handoff** section.
2. Select the **Email** tab.
3. Fill in **Message to Send in English (Default)**, plus one **Message to Send in *Language*** box for each configured language.

Variables can be inserted into the message, so the handoff reply can name the customer or quote their reference.

<Note>
  Email escalation is always available to the agent, even when the agent's voice **Transfer** toggle is switched off. That toggle governs transferring a live call to a person; it does not hold back an email thread.
</Note>

***

## Outcomes

Outcomes are how the agent records the way a conversation finished — and how those conversations are grouped in your reporting. Email outcomes live in **Handoff → Email**, under **Outcome options**: "Map how the agent escalates email conversations to a human."

Two outcomes are built in and cannot be edited or removed:

| Outcome            | When it is recorded                                                             |
| ------------------ | ------------------------------------------------------------------------------- |
| **Contained**      | "When the agent resolves the email conversation successfully."                  |
| **User Abandoned** | "When the customer stops replying and the conversation ends due to inactivity." |

You can add your own outcomes alongside them — one per situation you want to be able to count later, such as a refund request or a delivery complaint that always needs a person.

<Warning>
  Custom email outcome names must be unique regardless of capitalisation, including against the two built-in names. Re-using a name — even with different capitalisation — is rejected when you save.
</Warning>

***

## The inactivity window

An email conversation does not end when the agent sends a reply; it stays open waiting for the customer. The waiting period is set per agent in **Email Configuration → Config**.

* **Default:** 72 hours
* **Range:** 3 to 7 days (72 to 168 hours)

When the window lapses with no reply from the customer, the conversation ends and is recorded as **User Abandoned**.

<Tip>
  Match the window to how your customers actually behave. A shorter window closes quiet threads promptly and keeps your in-progress list honest; a longer one gives customers a weekend to come back before the thread is filed as abandoned.
</Tip>

***

## How a conversation ends

Every email conversation finishes in one of three ways:

| Ending        | What the customer sees                                                           | Recorded as                                                  |
| ------------- | -------------------------------------------------------------------------------- | ------------------------------------------------------------ |
| **Resolved**  | The agent's final reply, followed by your **Closing message**                    | **Contained**                                                |
| **Escalated** | Your **Handoff Message**, after which a human picks the thread up                | The outcome the agent selected from your **Outcome options** |
| **Abandoned** | Nothing further — the customer stopped replying and the inactivity window lapsed | **User Abandoned**                                           |

Supervisors can also end a live thread by hand from email history, with **Escalate** or **Resolve** — see [Email Analytics](/analyze/email-analytics).

***

## Behaviour worth knowing

* **A reply is bounded work.** The agent takes at most **five rounds** of knowledge-base look-ups and actions to compose one reply, allowing **60 seconds** for each drafting pass and **30 seconds** per action. On reaching a limit it sends its best reply rather than stalling the thread — so a thread never goes silent, though a reply written against a limit may be less complete than usual.
* **Replies that do more take longer.** A reply that searches a knowledge base or calls an action is slower, and costs more per turn, than a plain reply.
* **Replies are deliberately concise.** Email answers are kept short — point customers at a page or a document for anything genuinely long.
* **The agent works from the recent part of the thread**, not its entire history. Very long back-and-forth threads are exactly the ones worth escalating to a person.
* **The whole FAQ list travels with every reply**, so FAQ length shows up in the cost of every email turn.

***

## Where to watch email conversations

* **Optimize → Email Analytics** tracks email containment, resolution rates and response-time trends.
* **Email History**, under **Advanced**, lists individual threads with their replies and escalations, and opens a full transcript for any one of them — including the action log for actions the agent ran mid-thread. Switch on the in-progress filter and you can step into a live thread yourself with **Escalate** or **Resolve**.

Full detail on both views: [Email Analytics](/analyze/email-analytics).

***

## Related pages

<Columns cols={2}>
  <Card title="Knowledge Base" icon="book" href="/build/knowledge-base">
    Add the FAQs, documents and web content your email agent answers from.
  </Card>

  <Card title="Connected Apps" icon="plug" href="/manage/connected-apps">
    Manage the Freshdesk connection that supplies your email mailboxes.
  </Card>

  <Card title="Email Analytics" icon="chart-line" href="/analyze/email-analytics">
    Track containment and resolution, and review individual email threads.
  </Card>
</Columns>
