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

# Charlie

> Edit your agent's prompt with help from Charlie, telli's built-in AI assistant in the Agent Builder.

Charlie is the AI assistant inside telli. You tell Charlie what you'd like to change, it drafts the edit, and you decide what to keep. You'll find Charlie in the chat panel on the left of the Builder. **Anything you might ask a human prompt writer to do, you can ask Charlie.**

## Quick Start

<Steps>
  <Step title="Open your agent and start interacting with Charlie">
    Go to **Agents** in the sidebar, pick the agent you want to edit, and click into the Charlie chat panel on the left side of the Builder.

    <video loop muted playsInline style={{ width: '100%', cursor: 'pointer' }} onMouseEnter={(e) => e.currentTarget.play()} onMouseLeave={(e) => { e.currentTarget.pause(); e.currentTarget.currentTime = 0; }}>
      <source src="https://mintcdn.com/telli/yTwqc2QbhCfx6_2_/onboarding-media/Cookbooks/Charlie/CB_Charlie_Open.mp4?fit=max&auto=format&n=yTwqc2QbhCfx6_2_&q=85&s=d6334c4c6e259f0104c7b2efc30127c0" type="video/mp4" data-path="onboarding-media/Cookbooks/Charlie/CB_Charlie_Open.mp4" />
    </video>
  </Step>

  <Step title="Tell Charlie what you'd like to change">
    Type a short message describing what you want. You can be specific or general, both work.
  </Step>

  <Step title="Review the edits Charlie proposes">
    Charlie's changes show up inline in the prompt. Additions and removals are highlighted so you can see exactly what's about to change.
  </Step>

  <Step title="Accept or reject each edit">
    Approve the ones you want to keep. Reject the rest. You can also accept or reject everything in one click.

    <video loop muted playsInline style={{ width: '100%', cursor: 'pointer' }} onMouseEnter={(e) => e.currentTarget.play()} onMouseLeave={(e) => { e.currentTarget.pause(); e.currentTarget.currentTime = 0; }}>
      <source src="https://mintcdn.com/telli/yTwqc2QbhCfx6_2_/onboarding-media/Cookbooks/Charlie/CB_Charlie_AcceptReject.mp4?fit=max&auto=format&n=yTwqc2QbhCfx6_2_&q=85&s=0d4a76c1a7c554878e6cef63f96f43c7" type="video/mp4" data-path="onboarding-media/Cookbooks/Charlie/CB_Charlie_AcceptReject.mp4" />
    </video>
  </Step>
</Steps>

## What Charlie can help with

Charlie can help across multiple areas of your agent.

<Tabs>
  <Tab title="Prompt edits">
    Tell Charlie what to change in the agent's prompt and it drafts the edit for you.

    <Note>
      * Rewrite or restructure a specific section
      * Apply a tone change across the whole prompt, like making the agent friendlier or more confident
      * Insert the right variable or tool reference without having to look up the syntax
      * Adapt the prompt based on a transcript or example you share
    </Note>

    <video loop muted playsInline style={{ width: '100%', cursor: 'pointer' }} onMouseEnter={(e) => e.currentTarget.play()} onMouseLeave={(e) => { e.currentTarget.pause(); e.currentTarget.currentTime = 0; }}>
      <source src="https://mintcdn.com/telli/yTwqc2QbhCfx6_2_/onboarding-media/Cookbooks/Charlie/CB_Charlie_PromptEdits.mp4?fit=max&auto=format&n=yTwqc2QbhCfx6_2_&q=85&s=f16425edb1f37c1c841702ab13f490e4" type="video/mp4" data-path="onboarding-media/Cookbooks/Charlie/CB_Charlie_PromptEdits.mp4" />
    </video>
  </Tab>

  <Tab title="Call control">
    Charlie can change how your agent handles calls, not just what it says.

    <Note>
      * Turn voicemail detection on or off, or change the message it leaves
      * Switch call recording on or off, or set up a consent message
      * Add or update a transfer destination
      * Change the maximum call length
      * Switch the voice or language
      * Adjust the auto-dialer strategy and dialing windows
    </Note>

    <video loop muted playsInline style={{ width: '100%', cursor: 'pointer' }} onMouseEnter={(e) => e.currentTarget.play()} onMouseLeave={(e) => { e.currentTarget.pause(); e.currentTarget.currentTime = 0; }}>
      <source src="https://mintcdn.com/telli/yTwqc2QbhCfx6_2_/onboarding-media/Cookbooks/Charlie/CB_Charlie_CallControl.mp4?fit=max&auto=format&n=yTwqc2QbhCfx6_2_&q=85&s=6013c08ae72e17d31b3bc3f5085e46bb" type="video/mp4" data-path="onboarding-media/Cookbooks/Charlie/CB_Charlie_CallControl.mp4" />
    </video>
  </Tab>

  <Tab title="Call Outcomes">
    Have Charlie set up the data points telli should extract from every call.

    <Note>
      * Add a new outcome (yes/no, number, text, or a category from a list of options)
      * Refine the instruction so the extraction picks up the right cases
      * Turn on the "reason" toggle so you get a short explanation alongside each value
      * Turn a yes/no outcome into a dashboard metric
    </Note>

    <video loop muted playsInline style={{ width: '100%', cursor: 'pointer' }} onMouseEnter={(e) => e.currentTarget.play()} onMouseLeave={(e) => { e.currentTarget.pause(); e.currentTarget.currentTime = 0; }}>
      <source src="https://mintcdn.com/telli/yTwqc2QbhCfx6_2_/onboarding-media/Cookbooks/Charlie/CB_Charlie_CallOutcomes.mp4?fit=max&auto=format&n=yTwqc2QbhCfx6_2_&q=85&s=f82936b08041cc0b2743f6c9adac7889" type="video/mp4" data-path="onboarding-media/Cookbooks/Charlie/CB_Charlie_CallOutcomes.mp4" />
    </video>
  </Tab>

  <Tab title="Conversation analysis">
    Charlie can search past calls and bring real conversations into the chat.

    <Note>
      * Find calls that match specific criteria (date range, outcome, transcript text, tool errors)
      * Pull up the full details of a single call, including the transcript and outcomes
      * Compare the agent's setup at the time of a past call to your current draft, so you can see what's changed
      * Read the upvotes and downvotes your team left on past calls
    </Note>

    <video loop muted playsInline style={{ width: '100%', cursor: 'pointer' }} onMouseEnter={(e) => e.currentTarget.play()} onMouseLeave={(e) => { e.currentTarget.pause(); e.currentTarget.currentTime = 0; }}>
      <source src="https://mintcdn.com/telli/yTwqc2QbhCfx6_2_/onboarding-media/Cookbooks/Charlie/CB_Charlie_AnalyseCalls.mp4?fit=max&auto=format&n=yTwqc2QbhCfx6_2_&q=85&s=d2a8d5630e5e6e7cd04b280d54c21f0f" type="video/mp4" data-path="onboarding-media/Cookbooks/Charlie/CB_Charlie_AnalyseCalls.mp4" />
    </video>
  </Tab>
</Tabs>

## How to talk to Charlie

Charlie understands both specific instructions and general feedback. Use whichever fits the change you have in mind.

<Tabs>
  <Tab title="Specific instructions">
    Useful when you know exactly what you want changed.

    > "Shorten the greeting and add a goodbye line at the end."

    > "Replace the word 'reservation' with 'booking' everywhere in the prompt."

    > "Add a step asking the caller for their order number before transferring."
  </Tab>

  <Tab title="General feedback">
    Useful when you want Charlie to figure out the change for you.

    > "The agent isn't friendly enough. Make it ask more personal questions."

    > "This section feels too long. Tighten it up."

    > "Make the agent sound more confident when handling objections."
  </Tab>
</Tabs>

<Tip>
  If you're not happy with what Charlie did, reject the edits and try again with a clearer instruction. You can also roll back to a checkpoint to get back to a previous version.
</Tip>

## Files and voice input

The chat takes more than just typed text.

* **File uploads.** Drop a transcript, a script document, or a sample message into the chat. Charlie reads it and uses it as context for the next edit.
* **Voice input.** Tap the microphone to record a longer instruction instead of typing. Useful when you're walking through a thought and don't want to break flow.

<video loop muted playsInline style={{ width: '100%', cursor: 'pointer' }} onMouseEnter={(e) => e.currentTarget.play()} onMouseLeave={(e) => { e.currentTarget.pause(); e.currentTarget.currentTime = 0; }}>
  <source src="https://mintcdn.com/telli/yTwqc2QbhCfx6_2_/onboarding-media/Cookbooks/Charlie/CB_Charlie_UploadFile.mp4?fit=max&auto=format&n=yTwqc2QbhCfx6_2_&q=85&s=2a06f0c6af3b82622a9ed9ccfd88c77c" type="video/mp4" data-path="onboarding-media/Cookbooks/Charlie/CB_Charlie_UploadFile.mp4" />
</video>

## Reviewing Charlie's edits

When Charlie makes changes, they appear inline in the prompt. You decide what makes it in.

* **Additions** and **removals** are clearly marked so you can scan the diff
* **Accept** or **reject** each change on its own, or apply them all at once

### Checkpoints

Charlie creates checkpoints automatically as it works. If you don't like where things are going, you can roll back to any earlier checkpoint in one click.

<video loop muted playsInline style={{ width: '100%', cursor: 'pointer' }} onMouseEnter={(e) => e.currentTarget.play()} onMouseLeave={(e) => { e.currentTarget.pause(); e.currentTarget.currentTime = 0; }}>
  <source src="https://mintcdn.com/telli/yTwqc2QbhCfx6_2_/onboarding-media/Cookbooks/Charlie/CB_Charlie_Checkpoints.mp4?fit=max&auto=format&n=yTwqc2QbhCfx6_2_&q=85&s=c86f10436246c7d24793c05be8bfc32b" type="video/mp4" data-path="onboarding-media/Cookbooks/Charlie/CB_Charlie_Checkpoints.mp4" />
</video>

## When to use Charlie vs edit directly

Charlie isn't a replacement for editing the prompt by hand. Some changes are faster to do yourself.

| Use Charlie when...                                        | Edit directly when...                 |
| :--------------------------------------------------------- | :------------------------------------ |
| You're restructuring or rewording a section                | You know the exact words you want     |
| You want a general improvement applied across the prompt   | You're making a small surgical tweak  |
| You're working from a transcript or example document       | You're changing a single line or word |
| You want help finding the right variable or tool reference | You're confident with the syntax      |

## Best practices

* **Bring real call transcripts into the chat** so Charlie can refine the agent based on conversations that actually happened, not just imagined cases.
* **Use checkpoints when experimenting.** It's faster to roll back than to manually undo a stack of changes.
* **Accept changes a few at a time** if you're not sure about all of them. Reject the rest and ask Charlie to try again with more guidance.
* **Start with Charlie on new prompts.** Have it draft a structure for you, then refine the details by hand.

## Good to know

* Charlie never publishes your agent. Changes stay as a draft until you click Publish.
* Charlie can also access and edit other agents if you ask it to. This is great for applying changes to multiple agents at once
* The chat remembers what you said earlier in the same session, so you can keep iterating without re-explaining context.
