Actions, Veldform · vanrossum.dev    

       vanrossum.dev 

Actions, Veldform
=================

  vanrossum.dev  

  [      vanrossum.dev ](https://vanrossum.dev)                      

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

 [Veldform](https://vanrossum.dev/products/veldform)  / Docs  · WordPress plugin

 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.

Stuck?

Feel free to reach out.

 [get in touch →](https://vanrossum.dev/contact) 

   © 2026 Jeffrey van Rossum 

  vanrossum.dev vanrossum.dev
