> For the complete documentation index, see [llms.txt](https://docs.praiz.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.praiz.io/ai-agents/creating-a-custom-agent.md).

# Creating a custom agent

Set up an agent that fits your needs: what it extracts, when it applies, and where the result goes.

{% hint style="info" %}
Before you start: you must be an admin to create a public agent. A non-admin user can create a private agent if the "Non-Admin Private Agents" setting is on.
{% endhint %}

## Good practice

* One agent, one purpose. Several focused agents beat one agent that tries to do everything.
* Constrain the values when you want data you can analyze. A list of options, a yes / no or a number can be filtered and aggregated in Insights. Free text filters badly.
* State the output language in each field's instruction if your calls are not all in the same language.
* Test your agent on a few calls before you apply it automatically to the whole team.

## Create an agent with AI

The fastest way to start: let AI build the draft of the agent.

1. From the "AI Agents" section, click "New Agent" then "Create with AI".
2. Describe the agent in your own words, or drop in your documents (PDF, text, Markdown, Word, up to 5 files of 15 MB each): a sales playbook, a scorecard, a summary template. PDFs are read in full, up to 300 pages.
3. AI proposes a complete agent: three names to choose from, the fields, a format for each field chosen according to what it should hold, and a structured instruction for each field (objective, rules, expected format, with an example). Pick a name, then adjust the fields, the formats and the instructions before saving.

What to expect: a draft agent ready to adjust. Generation takes up to 3 minutes with a long PDF, and a message tells you so. If you close the tab before it finishes, Praiz asks you to confirm: "Stay" to wait, "Leave anyway" to leave without the agent. You keep control over everything before saving.

<figure><img src="https://3785996597-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FU54oKzNb3EyinriyUP5P%2Fuploads%2Fv5bIghMMmAvhCFsSgYk7%2F05-create-with-ai.png?alt=media&#x26;token=1aec1edb-d634-4aed-aae0-a7eb2c1336d1" alt=""><figcaption></figcaption></figure>

## Build your agent by hand

From the "AI Agents" section, click "New Agent" then choose "New Public Agent" (the whole team) or "New Private Agent" (your own calls). You can also click "Create an agent" in the "AI Agents" bar of a call page. Your public or private choice is kept throughout creation, whichever menu you open next.

![New Agent menu: New Private Agent, New Public Agent and Create with AI](https://3785996597-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FU54oKzNb3EyinriyUP5P%2Fuploads%2FlgVDT0GE502k56a3YciI%2F04-new-agent-menu.png?alt=media\&token=6f4d33db-27b3-4825-b300-714c831e7df7)

Creation has four steps.

{% stepper %}
{% step %}

### Details

Give the agent a name, an emoji, a description and a team.
{% endstep %}

{% step %}

### Fields

Define the fields to extract. For each field, give a name, choose a format and write what the agent should extract ("What do you want to extract?"). Add as many fields as you need.

| Format           | What the field holds                                                                                                   |
| ---------------- | ---------------------------------------------------------------------------------------------------------------------- |
| Bullet points    | A bulleted list                                                                                                        |
| Short text       | Text up to 255 characters                                                                                              |
| Paragraph        | Text beyond 255 characters                                                                                             |
| Boolean          | True / false                                                                                                           |
| Number           | A numeric value                                                                                                        |
| Date             | A date on its own, without a time. A relative date in the call ("next Monday") is converted from the date of the call. |
| Single option    | One value from a list you define                                                                                       |
| Multiple options | Several values from a list you define                                                                                  |

For "Single option" and "Multiple options", add the possible values with "Add value".

When the information is not in the call, the field is left empty. A "Number" field therefore shows no zero, and an option field stays empty if none of your values match.

Two options per field drive what goes to the CRM: "Push to CRM notes" and "Push field to CRM". On a new field, the "Push to CRM" box starts unchecked. See [CRM sync](/automate/crm-sync.md).

![Fields step: setting up an agent field](https://3785996597-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FU54oKzNb3EyinriyUP5P%2Fuploads%2FNUlAHWS6A6kP9zuMzJNg%2F20-agent-fields.png?alt=media)

{% hint style="info" %}
By default the agent answers in the language of the call. To force another language, say so in the field instruction.
{% endhint %}
{% endstep %}

{% step %}

### Rules (optional)

Turn on "Auto-apply agent" so the agent applies automatically to the calls that match your criteria: teams, call type, meeting type (internal or external), minimum duration, words in the title. The rules are detailed on the [Using an agent](/ai-agents/using-an-agent.md) page.

![Rules step: automation rules of the agent](https://3785996597-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FU54oKzNb3EyinriyUP5P%2Fuploads%2FUAPrjLTeyYZnrRyGY4DA%2F21-agent-automation-rules.png?alt=media)
{% endstep %}

{% step %}

### Smart Actions (optional)

Trigger an action every time the agent runs: an email to the external participants, an email to the call host, an email to specific recipients, or a Slack message. See [Smart Actions](/automate/smart-actions.md).

![Smart Actions step: conditions that trigger an action](https://3785996597-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FU54oKzNb3EyinriyUP5P%2Fuploads%2FDdMmLogIq0RSBD8loaGC%2F25-smart-actions-conditions.png?alt=media)
{% endstep %}
{% endstepper %}

What to expect: the agent appears in the "AI Agents" section. Apply it to your calls by hand, or let it apply automatically. A new agent does not process past calls: apply it by hand on the calls you care about. If saving fails, the error message names the field or the Smart Action at fault. Your draft is kept: reload the page and pick up where you left off.

## Changing an agent's visibility

An admin can make a private agent visible to the whole company, from the agent menu. A public agent cannot go back to private.

## Related pages

* To analyze the data your agent produces across all of your calls, see [Insights](/query-and-analyze/insights.md).
* To query it from Claude or ChatGPT, see [MCP server](/query-and-analyze/mcp-server.md).
