> For the complete documentation index, see [llms.txt](https://docs.notionapps.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.notionapps.com/screens-and-components/form-submit-redirection-and-other-submit-actions.md).

# Form submit redirection (and other submit actions)

Canonical page for form `on_submit` actions. Button click actions stay on Button component.

## What this is / when to use it

After a Create Form or Update Form successfully writes the row, the app can run one or more in-app actions. The action type is always `on_submit`. The subtype is one of:

| Subtype      | Enum           | What it does                                                                   |
| ------------ | -------------- | ------------------------------------------------------------------------------ |
| Change data  | `change_data`  | Writes extra fields on the same row (exact or `CURRENT_USER`).                 |
| Go to screen | `go_to_screen` | Opens another screen (often a hidden Content “thank you” or the details page). |
| Redirect URL | `redirect_url` | Sends the browser to an external URL.                                          |

Use these when submit should finish the job (stamp a status, leave the form, or send the user to a portal).

When not to use them:

* Opening a tel/mailto without saving — use a Button.
* Starting a long workflow with many steps — also attach Workflow `form_submitted`. Submit actions and workflows can both run; do not assume one replaces the other. See Which automation.

## Before you start

1. The form saves successfully on its own.
2. Target screens exist if you use `go_to_screen`. Hide them from nav when they are thank-you pages.
3. Fields you stamp with `change_data` are writable.

## Build it

1. Open the form screen.
2. Open Submit actions / Automated actions on save (same feature; old docs said “automated actions on save”).
3. Add `on_submit`.
4. Choose `change_data`, `go_to_screen`, or `redirect_url`.
5. For `change_data`, pick the field and `EXACT` or `DYNAMIC` (`CURRENT_USER`). Dates also have `DATE` / `TIME` / `DATE_TIME`.
6. For `go_to_screen`, pick the target screen id.
7. For `redirect_url`, enter a full https URL.
8. Publish. Submit a test row. Confirm the stamp, the next screen, or the external page.

## Every control

| Control         | Options                                         | What it does                                            |
| --------------- | ----------------------------------------------- | ------------------------------------------------------- |
| Action type     | `on_submit`                                     | Only fires after a successful save.                     |
| Subtype         | `change_data` / `go_to_screen` / `redirect_url` | See table above.                                        |
| Field + value   | Exact / current user                            | Extra writes.                                           |
| Target screen   | Screen id                                       | In-app navigation.                                      |
| URL             | String                                          | External redirect.                                      |
| Submit label    | 1–50 characters                                 | The save button text, not the action.                   |
| Success message | Optional title                                  | Stays the popup title. The save-state line is separate. |

Desktop submit placement (sticky footer vs inline) is a layout how-to: Control Desktop Form Submit Placement.

## What users see

They tap Submit. Validation runs first (required, email/phone). If the local save succeeds, submit actions run, and the popup keeps your custom success title. The detail line is the save state:

| State                   | Meaning                                                         |
| ----------------------- | --------------------------------------------------------------- |
| **Saved in NotionApps** | We accepted the row. Notion does not have a page yet.           |
| **Sending to Notion**   | The write is in flight or retrying.                             |
| **Confirmed in Notion** | The Notion page exists.                                         |
| **Needs attention**     | The create was lost mid-flight. We will not open a second page. |

A save is kept if Notion is rate-limiting or the job restarts. Submitting the same form again does not create a second Notion page. If save fails, submit actions do not run.

## Limits and plans

* Submit actions are not Workflow Foundation. Legacy Databases → Automate (email/SMS/webhook) is a third system. See Which automation.
* `change_data` cannot write formula/rollup.
* Redirect to a custom domain you do not control will lose the session unless that destination is still your app.
* Prefill and submit actions are independent.

## Example

Add lead submit:

1. `change_data` Status = `New` (exact).
2. `change_data` Owner = `CURRENT_USER`.
3. `go_to_screen` → Content Thanks.

A workflow on `form_submitted` then notifies sales. The thank-you screen does not need to know that.

## Fix problems

| Symptom                          | Likely cause                                          | What to do                                                                                                       |
| -------------------------------- | ----------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
| Redirect happens but row missing | Validation failed and you tested a button, not submit | Use the form submit control.                                                                                     |
| Workflow and redirect race       | Both fired                                            | Expected. Workflow is async. Redirect can leave before the queue item appears.                                   |
| Go to screen 404                 | Screen hidden and visibility blocks the user          | Fix visibility, or pick another target.                                                                          |
| Old help URL 404                 | `/customize-app/form-submit-redirection`              | This page is the current path.                                                                                   |
| Needs attention stays up         | The Notion create was lost mid-flight                 | The row is kept in NotionApps. Do not submit again to force a second page. Contact support if it does not clear. |

## Related

Buttons: Button component. Forms: Form (Add Item). Workflow: Trigger catalog. [14 Sep 2026 Release](https://docs.notionapps.com/release-notes/14-sep-2026-release). [Reload and sync](https://docs.notionapps.com/databases/reload-and-sync).
