> For the complete documentation index, see [llms.txt](https://shoppad.gitbook.io/yedric/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://shoppad.gitbook.io/yedric/going-further/actions.md).

# Actions

Actions are what allow Yedric to do things, not just say things. While the knowledge base helps Yedric answer questions, actions allow him to take action by connecting to your app's data and services.

***

## Built-in actions

Every assistant includes a set of built-in actions. These are always available and do not require any configuration to use.

<figure><img src="https://3812449461-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPjm0d1QYgJndrHFpof4j%2Fuploads%2FSR6O5TXJodGC8pI8saV9%2FST-yedric-ai-built-in-actions.png?alt=media&amp;token=8b315137-fa43-4d28-94b0-272ce65b2fcc" alt="Screenshot of the Actions tab, focused on the list of built-in actions and their approval toggles."><figcaption><p>Toggle Built-in tools on and off as needed.</p></figcaption></figure>

**SearchDocs** Runs a semantic search over your knowledge base every time a user asks a question. This is the foundation of most assistants and is always on.

**AskUserQuestion** Lets Yedric ask the user a multiple-choice question instead of guessing what they need. Useful for situations where the right response depends on knowing more about the user's context before proceeding. Enabled by default. Simple single-select questions and two-option confirmations render as compact one-tap buttons in the chat, so the user can answer in a single click rather than selecting an option and then sending.

**TalkToHuman** (shown in the list as **Hand off to live chat**) Lets Yedric hand a conversation to your support team when it reaches the limits of what it can help with. What happens next depends on the **provider** set on the assistant's Settings tab. With **Built-in**, the widget opens Yedric's own chat panel and connects the visitor to an available teammate: see [Live Chat](/yedric/going-further/live-chat.md). With **External**, the widget fires a `human_support` event on your page and your own chat provider, support form, or phone flow takes over. That branch is deliberately quiet, so the AI conversation stays open behind it and the user can keep talking to the assistant while they wait. Either way, the conversation is tagged **Human Support** so you can find these in [Conversations](/yedric/going-further/conversations.md). See the [JavaScript API](/yedric/developers/javascript-api.md) for the event and its payload. Disabled by default, so enable it from the Actions tab when you are ready to use it.

**IsHumanSupportOnline** (shown in the list as **Check support availability**) Lets the assistant see whether your team is reachable, or when they will be back, before offering to connect a customer. It reads the business hours set on the assistant's Settings tab, so the assistant can say that someone is available now, or that your team is back tomorrow morning, instead of promising a handoff nobody will answer. Pair it with TalkToHuman so the assistant checks before it offers. Disabled by default.

**DisplayTable** Lets Yedric present information as a formatted table inside the chat, rather than as a plain list. Enabled by default.

**DisplayDiagram** Lets Yedric draw a simple flowchart or diagram in the chat using Mermaid syntax (a text-based format for describing diagrams). Disabled by default.

**NavigateToUrl** (shown in the list as **Navigate to URL**) Lets Yedric take the visitor to the page he is talking about, such as a doc, a template, or a settings screen, instead of describing where to find it. The chat shows a short line saying where the visitor is being taken, and the same conversation continues on the new page. Navigation is deliberately narrow: only `http` and `https` addresses are allowed, and by default only pages on the same site as the one the widget is embedded on. To let the assistant navigate to other sites you run, list their origins in the `navigate-allow` attribute on the embed tag (see [Embedding the Widget](/yedric/developers/embedding-widget.md)); a host is matched on its exact origin, never as a substring. If a target is refused, the assistant is told so and links the page in its reply instead. Disabled by default.

**ShopifyReviewAsk** Prompts users to leave a review for your Shopify app (for apps listed in the Shopify App Store). Disabled by default.

To enable or disable a built-in action, find it in the Actions list and toggle its approval setting.

***

## Action approval

For each action, both built-in and custom, you can control how it runs.

* **Automatic**: Yedric uses the action whenever it decides it is relevant. No interruption for the user.
* **Ask first**: Yedric asks the user for confirmation before running the action.
* **Off**: The action is disabled entirely and Yedric will not use it.

You set this per action from the edit view. Most actions default to Automatic. Actions that are disabled by default (like TalkToHuman, IsHumanSupportOnline, DisplayDiagram, and NavigateToUrl) start as Off until you enable them.

***

## Adding a custom server

If you want Yedric to do more than the built-in actions allow, you can connect a custom MCP server. MCP (Model Context Protocol) is an open standard for connecting AI assistants to external data sources and services. An MCP server exposes additional actions that let Yedric fetch live data, trigger actions, or interact with outside services.

Examples of what additional actions can do:

* Pull a user's recent orders or account details
* Check the status of a shipment
* Retrieve settings or configuration from your app
* Connect to third-party services your app relies on

To add a server, click **Add a connection** on the Actions tab. You will be asked to choose a generation method:

<figure><img src="https://3812449461-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPjm0d1QYgJndrHFpof4j%2Fuploads%2FReMu1TfbsD7QBS7tSlui%2FST-yedric-ai-mcp%20server-options.jpeg?alt=media&amp;token=6802b81a-98b1-4823-bb93-d17de6abc25b" alt="Screenshot of the Add a connection dialog on the Actions tab, focused on the four server generation options: connect a server, import an API spec, read from API docs, or describe what you want."><figcaption><p>Select or describe the action or connections your assistant needs.</p></figcaption></figure>

* **Connect a server**: Connect to an existing MCP-compliant server by URL.
* **Import an API spec**: Provide an OpenAPI spec URL or paste the JSON directly. Yedric generates action definitions from it automatically.
* **Read from API docs**: Provide a documentation URL and Yedric will crawl it and generate a server from what it finds.
* **Describe what you want**: Write your action definitions by hand. Full control over names, descriptions, and input schemas.

Once a server is added, you can edit it to adjust individual actions, their descriptions, and how they are called.

***

## Skills, Resources, and Events

Each custom server can expose more than actions. Depending on what the server provides, the edit view shows additional tabs beyond Actions: **Skills**, **Resources**, and **Events**.

**Skills** are saved prompt templates from your MCP server that can be referenced in your instructions using `/` autocomplete. They let you create reusable prompt fragments that the assistant can pull in at runtime.

**Resources** are dynamic pieces of context, such as data returned from your app, that Yedric can fetch and inject into a conversation automatically. Each resource has a **Name** (the URI template the assistant references, for example `mesa://automations/{{id}}`) and, in **Path** mode, the HTTP URL to fetch the data from. Switch a resource to **Prompt** mode to return a fixed block of markdown text you write in the editor instead of fetching a URL.

**Events** are app events your product reports to the assistant (for example, a background job finishing) so it can react without the user asking. The Events tab is read-only and only appears when your server defines events; they are managed in your agent's synced configuration. See [Client Events](/yedric/developers/client-events.md) in the Developers section for the full pipeline.

For full technical details on configuring skills and resources, see the Developers section.

***

## A note for non-developers

Setting up custom MCP servers typically requires developer involvement. If you are not sure whether your app has a server configured, check with your developer. Once a server is connected, the actions it provides will appear here automatically and Yedric can start using them right away.
