Loading

Form Submission Actions

The action that runs after a successful form submission depends on which type of form was submitted. The options span a thank-you message, a URL redirect, a callback function, or a full multi-stage workflow — each suited to different use cases.

Standard datastore forms (New / Edit)

By default, after saving a row via the standard New or Edit form, the form closes and the user returns to the datastore listing (or whichever page they were on). If the row was edited, the new values show in the list immediately.

For most internal admin tasks, that's exactly the right behaviour — finish, return to context. No configuration needed.

User Input Views

UIVs have a dedicated Success Action field with three options:

1. Show a thank-you message

Renders custom HTML on the same page after submission. Best for keeping the user on-site with a clear acknowledgement of what they just did.

2. Redirect to a URL

Sends the browser to any URL you specify. Useful when the success state has its own dedicated page (a confirmation page with more detail, a portal home page, an external survey).

3. Run a custom function

Invokes a PHP function defined in customfunctions.php and shows whatever HTML the function returns. Use this when the success state needs to be computed at runtime — different message depending on what was submitted, conditional next steps, dynamic content.

See the dedicated Submission Success Actions article in the User Input Views section for the full detail.

Custom Forms

Custom Forms allow you to wire up arbitrary submit handlers. The form's Submit Target setting is one of:

  • Insert into a datastore — same as standard datastore forms.
  • Update a specific row — for self-service forms that edit the user's own profile or similar.
  • Custom URL — POSTs the form data to a URL of your choice. Your handler decides what to do with the data.
  • Custom PHP function — calls a named PHP function with the form data.

Triggering workflows on submission

Beyond the immediate post-submit behaviour, you can configure things that happen because a row was saved. These run after every successful save (insert or update):

1. Post-insert / post-update hooks

PHP functions defined on the datastore's configuration. The platform calls them after every insert or update with the saved row's data. Useful for cascading changes — "when a new order is created, also create the corresponding invoice draft".

2. Trigger Tasks

The Task Engine can have triggers configured per datastore. Trigger types: "on insert", "on update", "on delete", "on column-X change". Useful for scheduling delayed actions or for actions that should happen out-of-process.

3. UIV stage progression

For rows in a UIV-backed datastore, the row's stage transitions automatically based on the workflow rules. The submission itself is just stage 1; stages 2+ kick off afterwards.

Three real-world submission flows

Example 1: Internal time-off request

UIV with Success Action = "Show thank-you message". Message: "Your leave request ##REFNUMBER## has been submitted. Your manager will review within 2 working days." Workflow continues at stage 2 for manager review.

Example 2: Customer contact form

Custom Form with Submit Target = "Insert into contacts datastore". Post-insert hook fires that sends an internal notification email to the support team. Form rendered on a public Page Builder page; success action redirects to a thank-you page.

Example 3: B2B order submission

Standard datastore form for placing orders. On submit, a trigger Task creates the corresponding invoice draft, reserves stock, and queues a fulfilment notification — all out-of-process so the user gets immediate feedback while the platform handles the side-effects asynchronously.