Turning form submissions into tasks

Use the kanbanwp_form_submission action to create a KanbanWP task from Contact Form 7, Gravity Forms, WPForms or any custom form code.

KanbanWP does not ship connectors for specific form plugins. Instead, it provides one WordPress action, kanbanwp_form_submission. Any form plugin, or your own code, can fire that action to create a task. This page documents exactly what the action does.

The action

Call do_action( 'kanbanwp_form_submission', $submission ) where $submission is an array:

KeyRequiredMeaning
board_idYesID of the board that receives the task.
titleRecommendedTask title. If empty, the task is titled “Untitled submission”.
descriptionNoTask description text.
stage_idNoStage to place the task in. Defaults to the board’s first stage.
nameNoSubmitter name, appended to the description.
emailNoSubmitter email, appended to the description.
metaNoArray of key and value pairs, each appended to the description as a line.

What happens

  • If board_id is missing or the board does not exist, nothing is created. The reason is written to the PHP error log.
  • If the board has no stages and you gave no stage_id, nothing is created.
  • Values are sanitized as plain text. Name, email and meta lines are added below the description, separated by a blank line.
  • The task is created with normal priority. No assignee or labels are set.
  • An activity entry records that the task came from a form submission.
  • Creating the task fires the usual task events, so notifications, Slack or Discord messages and webhooks work as for any new task.

Example: Contact Form 7

Add this to a small custom plugin or your theme’s functions file. Replace 3 with your board ID.

add_action( 'wpcf7_mail_sent', function ( $contact_form ) {
    $posted = WPCF7_Submission::get_instance()->get_posted_data();
    do_action( 'kanbanwp_form_submission', array(
        'title'       => 'Contact: ' . sanitize_text_field( $posted['your-subject'] ),
        'description' => sanitize_textarea_field( $posted['your-message'] ),
        'board_id'    => 3,
        'email'       => sanitize_email( $posted['your-email'] ),
        'name'        => sanitize_text_field( $posted['your-name'] ),
    ) );
} );

The same pattern works with Gravity Forms, WPForms, Fluent Forms or a form you write yourself. Use that plugin’s own “after submission” hook, read the field values, and fire the action.

Find your board and stage IDs

The board ID appears in the board’s address as the board value, for example admin.php?page=kanbanwp-board&board=3. Stage IDs are available through the REST API.

Tips

  • Send leads to a board whose first stage is named New, so submissions are easy to spot.
  • Add a meta entry such as the page URL to see where each request came from.
  • Test with one submission and check the board. If nothing appears, look in the PHP error log for a line beginning with [KanbanWP].

Last updated October 13, 2026