Actions — Veldform — vanrossum.dev                    

       vanrossum.dev 

Actions — Veldform
==================

  [home](https://vanrossum.dev)/[veldform](https://vanrossum.dev/products/veldform)/docs 

Veldform / Docs

Actions
=======

Actions define what happens when your form is submitted. Sending a notification email, calling an API, creating a post, taking a payment — it's all actions.

You'll find them under the `Actions` tab of a form. Actions are shown as a pipeline that starts at `Form submitted` and runs top to bottom. The order matters: outputs of earlier actions are available to later ones (and in your confirmation message) as [merge tags](/products/veldform/docs/merge-tags), like `{{ output.order_id }}`.

To add an action, use the `Add action` panel on the right and click the action you want. Drag actions (or use the move buttons) to reorder them.

- [Available actions](#available-actions)
- [Common settings](#common-settings)
    - [Run](#run)
    - [Enabled](#enabled)
    - [Conditional logic](#conditional-logic)
    - [Required](#required)
    - [Allow re-run from an entry](#allow-re-run-from-an-entry)
- [The notification action](#the-notification-action)
- [The create post action](#the-create-post-action)
- [The create user action](#the-create-user-action)
- [Actions that need credentials](#actions-that-need-credentials)

Available actions
-----------------

ActionDescriptionSend notificationSend an emailSend to external APISend the entry to any API — see [Custom API's](/products/veldform/docs/custom-apis)Create postCreate a post, page or custom post typeCreate userCreate a WordPress userAdd to MailchimpAdd the subscriber to a Mailchimp audienceAdd to Kit (ConvertKit)Subscribe the visitor to KitTake paymentRedirect the visitor to a checkout — see [Payments](/products/veldform/docs/payments)Developers can register their own action types — see [Action and filter hooks](/products/veldform/docs/hooks).

Common settings
---------------

Every action has a few settings in common:

### Run

Choose when the action runs: `On submit` or `After payment`. With `After payment`, the action is held back until the payment provider confirms the payment — handy for receipt emails or creating a user account only after a successful payment.

### Enabled

Temporarily switch an action off without removing it.

### Conditional logic

Under `Advanced` you can add conditional logic to any action. Choose `Run` or `Skip`, whether `all` or `any` rules should match, and build rules based on field values — the same rule builder you know from [fields](/products/veldform/docs/form-builder#conditional-logic).

Say you only want to notify the sales team when the "Department" dropdown is set to Sales: add a `Run` condition with `Department is Sales`.

### Required

Most actions have a `Required` toggle. When a required action fails, the submission is aborted and the visitor sees an error instead of the confirmation. When a non-required action fails, it's logged and skipped — the submission still succeeds.

### Allow re-run from an entry

When enabled, the action gets a `Run again` button on stored entries. This is how you resend a notification or retry an API call for a specific entry. See [Entries](/products/veldform/docs/entries).

The notification action
-----------------------

The `Send notification` action sends an email through `wp_mail()`. All fields support merge tags.

- **Send to** — defaults to `{{ admin_email }}`
- **Subject** — defaults to `New entry: {{ form.title }}`
- **Message** — a rich editor; defaults to `{{ all_fields }}`, which prints all submitted values

Under `Advanced` you'll also find CC, BCC, From name, From email and Reply-to. A common setup is putting `{{ field.f_email }}` in the Reply-to, so you can reply straight to the visitor.

Notifications are wrapped in a minimal HTML email template (with your site logo). You can turn this off globally under `Veldform` -&gt; `Settings`, or customize it — see [Customization](/products/veldform/docs/customization).

Note: email attachments are not supported. If you need the uploaded files, use the `{{ entry.url }}` merge tag to link to the entry instead.

The create post action
----------------------

The `Create post` action turns a submission into a post, page or any public custom post type — think guest articles or user-submitted events.

- **Type** — any public post type
- **Status** — Draft, Pending review, or Published immediately
- **Title** and **Content** — both support merge tags, e.g. `{{ field.f_subject }}` and `{{ field.f_message }}`

The action outputs `{{ output.post_id }}` and `{{ output.post_url }}`, so a follow-up notification can link straight to the created post.

The create user action
----------------------

The `Create user` action registers a WordPress account from a submission.

- **Email** — e.g. `{{ field.f_email }}`
- **Role** — administrator and other privileged roles are never assignable, on purpose
- **Require email confirmation before the account is created** — on by default, and strongly recommended for public forms: the account is only created after the visitor clicks a confirmation link, so bots and forged email addresses never mint accounts
- **Email the new user a set-password link**

Under `Advanced` you can set a display name and username (defaults to the part of the email before the `@`).

A nice pattern: combine this with [payments](/products/veldform/docs/payments) by setting `Run` to `After payment` — the account is only created once the payment is confirmed. That's a paid membership signup in two actions.

Actions that need credentials
-----------------------------

Actions like Mailchimp, Kit and Take payment need API credentials. These are stored as [connections](/products/veldform/docs/connections) — reusable, encrypted, and managed in one place. The action's connection dropdown has an inline `Connect...` option, so you can create one without leaving the builder.

   © 2026 Jeffrey van Rossum · [privacy](https://vanrossum.dev/privacy) · [terms](https://vanrossum.dev/terms) · [cookies](https://vanrossum.dev/cookies) [𝕏](https://x.com/jeffreyrossum) [YouTube](https://www.youtube.com/@jeffrey.rossum) [GitHub](https://github.com/jeffreyvr) [LinkedIn](https://www.linkedin.com/in/jeffrey-van-rossum-97b27321) [Instagram](https://www.instagram.com/jeffrey.rossum/) [Nomads](https://www.nomads.com/@jeffreyrossum/) [Unsplash](https://unsplash.com/@jeffreyrossum) 

 made with ☕
