# Undo/Redo

Appfarm Create supports undoing and redoing operations. This article outlines how to use this feature and the scope of its capabilities.&#x20;

## Overview

The undo and redo buttons are located in the top right corner of Appfarm Create. Clicking these buttons will undo or redo your most recent operation.

It is also possible to cherry-pick from older operations. For access to older operations, click the chevron to open the complete list (note the [limitations](#supported-actions-and-limitations) below). Note that operations are only stored within the same session—reloading Appfarm Create will clear your change history. The platform stores a maximum of 50 operations.

<figure><img src="https://29237295-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MiLU-xcHu0eLZiTxcmZ%2Fuploads%2FwqVhXZaLYg5AWDK6VGNm%2Fimage.png?alt=media&#x26;token=19bb36af-1c0d-4882-8d0f-18019f2746b7" alt=""><figcaption><p>The UI designer with the Change History open</p></figcaption></figure>

Undo and redo are supported in the following places in Appfarm Create:

* [apps](https://docs.appfarm.io/reference/apps "mention")
* [data-model](https://docs.appfarm.io/reference/data-model "mention")
* [services](https://docs.appfarm.io/reference/services "mention")
* [schedules](https://docs.appfarm.io/reference/operations/schedules "mention")
* [internationalization](https://docs.appfarm.io/reference/resources/internationalization "mention")
* [permissions](https://docs.appfarm.io/reference/security/permissions "mention") (only those that take effect after deploy)&#x20;

## Supported actions and limitations

### **Undo Insert (i.e. Delete)**

**Examples:**

* Undoing the addition of a [UI component](https://docs.appfarm.io/library/ui-components) to a [View](https://docs.appfarm.io/reference/apps/ui/views)
* Undoing the addition of an [Action node](https://docs.appfarm.io/library/action-nodes) to an [Action](https://docs.appfarm.io/reference/actions)
* Undoing the addition of a new [Service](https://docs.appfarm.io/reference/services)

<figure><img src="https://29237295-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MiLU-xcHu0eLZiTxcmZ%2Fuploads%2F9IVQftRusmWjthrPU1kh%2Fimage.png?alt=media&#x26;token=c3570376-a10b-4001-82c0-ea4d888337d8" alt="" width="300"><figcaption></figcaption></figure>

Not possible when:

* There are references to the instance
* The instance has been moved, deleted or updated
* The instance has children. For example, when adding a [Container](https://docs.appfarm.io/library/ui-components/container) and then inserting a [Text](https://docs.appfarm.io/library/ui-components/text) inside of it, undoing the insertion of the Container is not possible.&#x20;

### Undo Delete (i.e. Insert)

**Examples:**

* Undoing the deletion of an [App](https://docs.appfarm.io/reference/apps)
* Undoing the deletion of a [Data source](https://docs.appfarm.io/reference/apps/data/data-sources)

<figure><img src="https://29237295-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MiLU-xcHu0eLZiTxcmZ%2Fuploads%2FN97Z5VmvK6FNwni9qTDN%2Fimage.png?alt=media&#x26;token=cc781300-f876-4b26-90fe-4f516022aaff" alt=""><figcaption></figcaption></figure>

Not possible when:

* The parent of the instance has been deleted or moved.
* Dependencies of the instance have been deleted. For example, attempting to undo the deletion of a Text component that is bound to a data source property that has been removed.

### **Undo Move**

**Examples:**

* Undoing the reordering of action nodes in an action
* Undoing the rearrangement of UI components in a view

<figure><img src="https://29237295-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MiLU-xcHu0eLZiTxcmZ%2Fuploads%2FQwNOD1XhwuqBIMkmVS5N%2Fimage.png?alt=media&#x26;token=039d0e51-8780-4628-90db-b8b68eb7bf21" alt=""><figcaption></figcaption></figure>

Not possible when:

* The instance or the instance's parent has been moved. For example, when trying to move a Text back into a Container that has been moved.
* The instance has been updated.

### **Undo Update**

**Examples:**

* Undoing the update of the name of a [Service](https://docs.appfarm.io/reference/services)
* Undoing the update of the Data Source property in a [Create object](https://docs.appfarm.io/library/action-nodes/create-object) action node
* Undoing the update of the Value property in a [Text Edit](https://docs.appfarm.io/library/ui-components/text-edit) component

<figure><img src="https://29237295-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MiLU-xcHu0eLZiTxcmZ%2Fuploads%2Fa23OZl4rl3P9Qp2n53ph%2Fimage.png?alt=media&#x26;token=8bf84df6-c130-402a-97fd-ba4c0c79cff8" alt=""><figcaption></figcaption></figure>

Not possible when:

* The instance has been deleted.
* The instance has been updated after the update that is attempted undone.
* The update has side effects, and the results of the side effects have been updated. For example, when setting Value on a [Text edit](https://docs.appfarm.io/library/ui-components/text-edit), Label is automatically updated. If the Label has been updated later, undoing the update of the Value is not possible.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.appfarm.io/reference/appfarm-create/undo-redo.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
