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

# Dynamic Artifacts

> Ask Grady for a dynamic artifact inside any task: a working dashboard, intake form, tracker, or review tool built on your data. How to build, change, and reuse one, and what it can't do. Previously called Custom Apps.

A **dynamic artifact** is a working app that Grady builds inside a task when you ask for one: a dashboard, an intake form, a tracker, or a review tool. It opens beside the chat, reads your data, and can hand off the next piece of work from a click.

> [!NOTE]
>
> Dynamic artifacts were called custom apps before November 2026.

## Build one

**1. Ask Grady in a task**

Open a task and ask in its chat. To start a new task, type the request on **Home**, click **Create as task**, then **Run with Grady**. Ask for a "dynamic artifact" and say what it should show. Attach a spreadsheet if the data is in a file.

```text theme={null}
Build a dynamic artifact that shows this workspace's tasks by status and assignee, with the blocked ones listed first.
```

Sending from **Home** without **Create as task** starts a private chat. Grady still builds the dynamic artifact, but only you can open it.

**2. Open it**

Grady builds the dynamic artifact in the task. Most are ready in 1 to 3 minutes. When it's ready, Grady's reply links to it, and it is listed in the task's **Artifacts** tab. Open it from either place. It sits beside the chat.

**3. Check the numbers**

Compare two or three figures with the source before anyone else relies on them. Then ask for changes.

![A campaign performance dashboard built by Grady, open beside the chat of the task that asked for it](https://mintcdn.com/gradial/pugcR7pkVgE37Xhh/images/11-11-26-custom-apps-in-task.png?fit=max\&auto=format\&n=pugcR7pkVgE37Xhh\&q=85\&s=be83986a1de02de1ace9b6a9a4079c2f)

## At a glance

| Question | Answer |
| - | - |
| Where does a dynamic artifact live? | In the task where you asked for it, under **Artifacts**. Artifacts are a task's outputs, such as pages, documents, and images. A dynamic artifact is the interactive kind. Everyone who can open the task can open it. |
| How do I change it? | Ask Grady in that task, or comment on the part to change. Every change is a new version you can restore. |
| How fresh is the data? | Live data is read each time the dynamic artifact opens. Data from an attached file stays as it was when the artifact was built. |
| What can it do? | Show data, save what people enter, and create tasks or send requests to Grady. It acts only when someone clicks. |
| What does it cost? | Included in your standard subscription. |

## What to ask for

**A dashboard from a spreadsheet.** Attach the file to the request.

```text theme={null}
Build a dynamic artifact from the attached CSV: spend, conversions, and return on ad spend by campaign and channel, with the weakest campaigns ranked first and a Create task button on each.
```

**A live dashboard from a connected system.** This one needs [Google Search Console](https://docs.gradial.com/docs/integrations-administration-and-setup/integrations/analytics/google-search-console.md) and [Google Analytics](https://docs.gradial.com/docs/integrations-administration-and-setup/integrations/analytics/google-analytics.md) connected to the workspace.

```text theme={null}
Create a new SEO dashboard as a dynamic artifact.
```

**An intake form that starts tasks.**

```text theme={null}
Create a campaign request form as a dynamic artifact: campaign name, objective, channels, launch date, budget, and a brief. Submitting it should start a task titled "Campaign request: <campaign name>" with everything entered.
```

**A tracker your team fills in.**

```text theme={null}
Build a dynamic artifact to track sign-off on these five pages: Home, Pricing, Product, Blog, and Contact. Each row needs a status and a note that reviewers can save.
```

> [!TIP]
>
> Ask for totals, groups, and trends. A read returns a limited number of rows, so a long raw list can be cut off.

## Change it

The fastest way is to type the change in the task's chat. To point at one part of the dynamic artifact instead:

1. On the toolbar at the bottom of the artifact, click **Add comments** (the speech bubble). If the toolbar is collapsed, expand it first.
2. Click the chart, table, or row you mean.
3. Write what should change, then click **Submit as prompt** (the arrow).

Grady updates the artifact in place. You can ask a question the same way, such as "What does this chart count?", and Grady answers in the chat.

To collect several notes before sending, click **Add comment** (the speech bubble in the comment box) for each one, then **Send pending comments** on the toolbar.

![The comment box open on one table of a dynamic artifact, with the Add comment and Submit as prompt buttons](https://mintcdn.com/gradial/pugcR7pkVgE37Xhh/images/11-11-26-custom-apps-comment.png?fit=max\&auto=format\&n=pugcR7pkVgE37Xhh\&q=85\&s=55a6e1db243d582691812eb0f3a9b990)

## Manage it

| Control | What it does |
| - | - |
| **Refresh artifact** | Reads the data again. |
| **Full screen** | Shows only the dynamic artifact. Press Esc to go back. |
| **Version history** | Lists every version with a live preview of the one you select. Click **Restore version N** to bring one back. |
| **Pin artifact** | Keeps it under **Pinned** in your sidebar and at the top of the workspace's **Artifacts** list. |

**Full screen** and **Version history** are icon buttons at the top right of the artifact. Hover over an icon to see its name. **Refresh artifact** and **Pin artifact** are in the **⋮** menu beside those two buttons.

Each request to Grady makes one version. Restoring a version makes a new one, so nothing is lost. A restore does not change the entries people saved in the artifact.

![The Version history dialog: a live preview of the selected version on the left, the list of versions on the right, and a Restore version button](https://mintcdn.com/gradial/pugcR7pkVgE37Xhh/images/11-11-26-custom-apps-version-history.png?fit=max\&auto=format\&n=pugcR7pkVgE37Xhh\&q=85\&s=7be155b12a3188df54f0f8299734ea3e)

## Where the data comes from

A **live read** fetches data from Gradial or a connected system at the moment the dynamic artifact opens.

| Source | Examples | When it updates |
| - | - | - |
| Gradial | Tasks, artifacts, comments, GEO monitoring results | Each time the dynamic artifact opens, and on **Refresh artifact** |
| A connected system | Google Analytics, Search Console, AEM, your DAM or ticketing system | Each time the dynamic artifact opens, and on **Refresh artifact** |
| A file you attach | A CSV or spreadsheet | Never on its own, and every viewer sees the same numbers. Attach a new file in the same task and ask Grady to update the artifact. |

* **Live reads run as the person viewing.** A dynamic artifact shows only what that person can already open in Gradial. Two people can see different numbers in the same one.
* **A dynamic artifact reads only the systems connected to its task's workspace.** See [Integrations](https://docs.gradial.com/docs/integrations-administration-and-setup/integrations/get-started-with-integrations.md).
* **Not streaming and not scheduled.** A dynamic artifact reads when it opens. To read again, click **Refresh artifact**.

## Act from a dynamic artifact

* **Buttons and forms hand off work, as the person who clicked.** A dynamic artifact does this in one of two ways:
  * **It creates a draft task.** A **Create task** button adds a draft under the artifact's task, with the artifact's data attached. The draft waits until someone opens it and clicks **Run with Grady**.
  * **It sends a request to Grady.** The request goes to the chat of the artifact's task, and Grady acts on it right away. The intake form above works this way: Grady creates the "Campaign request" task and runs it.
* **A dynamic artifact can save entries.** A sign-off, a checklist, a status. Everyone who opens it sees the same saved entries. People who can edit the task can add, change, or clear any entry. People who can only view the task can read entries, not change them.
* **Nothing happens without a click.** A dynamic artifact never acts on its own. It also can't run an action that Grady asks you to approve in a task, such as deleting a file in a connected system. Ask for that action in the task instead.

## Reuse it as a template

A template is one dynamic artifact, published so your whole organization can start from it.

**Save and publish a template**

1. In the dynamic artifact's task, ask Grady:

   ```text theme={null}
   Save this dynamic artifact as a template.
   ```

2. Open the review link Grady gives you. The draft is visible only to you. You can also find it in **Library → Templates**, marked **Draft**.

3. Check the preview, then click **Publish template**. The template appears in the Library for your whole organization right away.

**Use a template**

1. Go to **Library → Templates**, open a template, and click **Use template**.
2. Choose a workspace. Gradial checks that the workspace has what the template needs before it creates anything. If the template asks, enter an AEM content path or choose a GEO configuration.
3. Click **Create task**. Your copy opens in a new task and reads data from the workspace you chose. Changes to your copy don't affect the template.

You can also ask Grady in any task, with the template's name:

```text theme={null}
Add the <template name> template to this task.
```

| A template carries | A template leaves behind |
| - | - |
| The dynamic artifact's layout and code | Entries people saved in it |
| Sample data for its preview | Attachments and images |
| Live reads of Gradial tasks, one AEM content path, or one GEO configuration | Data from an attached file, and reads of other connected systems such as Google Analytics |

The review page lists what the template leaves behind. A published version never changes. To update a template, its author asks Grady to revise it, then publishes the new version.

![The Templates page in the Library, showing the templates an organization has published and how many times each was used](https://mintcdn.com/gradial/pugcR7pkVgE37Xhh/images/11-11-26-custom-apps-library.png?fit=max\&auto=format\&n=pugcR7pkVgE37Xhh\&q=85\&s=cfed4799e65c46d0a469d10c9ed40084)

![The Use template setup: a workspace is chosen, the Workspace ready check has passed, and the Create task button is available](https://mintcdn.com/gradial/pugcR7pkVgE37Xhh/images/11-11-26-custom-apps-use-template.png?fit=max\&auto=format\&n=pugcR7pkVgE37Xhh\&q=85\&s=85f262e1d9c130e9905784c15bdde949)

## Limits

| If you want to | What happens | Do this |
| - | - | - |
| Give access to someone who can't open the task | A dynamic artifact has no link or sharing of its own. Access follows the task, and one built in a private chat can be opened only by you. | Add them to the task's workspace (see [Roles](https://docs.gradial.com/docs/integrations-administration-and-setup/managing-access/roles.md#public-and-private-workspace-access)), or publish it as a template so they get their own copy. |
| Change a dynamic artifact from a different task | The original isn't changed. Grady sends you to the artifact's own task, or builds a separate copy. | Ask in the task that has it. |
| Keep numbers from a file current | Data from an attached file doesn't update. | Attach the new file in the same task and ask Grady to update the artifact, or connect the source system. |
| Read live from two connections of the same type | The dynamic artifact can't choose between them, so Grady builds that part as a dated snapshot. | Keep one connection of that type in the workspace. |
| Rename a dynamic artifact | The saved name stays. Asking Grady to rename it changes only the heading inside it. | Say the name you want when you first ask for it. |

## If something goes wrong

| You see | Why | Fix |
| - | - | - |
| **This artifact ran into a problem** | The dynamic artifact hit an error while showing its content. | Click **Ask Grady to fix** on that screen. The error details are added to the chat. Review them and send. |
| **This artifact couldn't load** | The dynamic artifact didn't start. | Click **Refresh artifact**. |
| One chart or table shows an error and the rest works | That one read failed. The system isn't connected to this workspace, or you don't have access to it. | Check [Integrations](https://docs.gradial.com/docs/integrations-administration-and-setup/integrations/get-started-with-integrations.md), then click **Refresh artifact**. |
| Two people see different numbers | Live reads run as each viewer. | Nothing to fix. Compare what each person can open in Gradial. |
| Grady answered in the chat or wrote a document, and built no dynamic artifact | The request didn't ask for one. | Reply: "Build this as a dynamic artifact." |

## Related

* [Ask Grady](https://docs.gradial.com/docs/getting-started/ask-grady.md): ask about your Gradial data without building anything
* [Integrations](https://docs.gradial.com/docs/integrations-administration-and-setup/integrations/get-started-with-integrations.md): connect the systems a dynamic artifact can read
* [Inside a task](https://docs.gradial.com/docs/getting-started/navigating-the-platform.md#inside-a-task): where artifacts and the chat sit
* [Customer Use Cases](https://docs.gradial.com/docs/gradial-prompt-library/customer-use-cases.md): more requests to copy

**Next:** open a task and paste the request from [Build one](#build-one).


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