arrow-left
All pages
gitbookPowered by GitBook
1 of 1

Loading...

Workflow Types

This article will give you an overview of the Workflow Types available in Umbraco Forms.

There are multiple built-in Workflow Types that can be used to extend the functionality of your form. Do you want to post the submitted form as XML, send the data as an email, or send a notification through another messaging system? These are a few of the options you can choose when working with Umbraco Forms.

hashtag
Video Tutorial

hashtag
Change Record State

Used to automatically Approve Record, Reject Record or Delete Record once it is submitted. Configure words that you want to match and select whether these words should trigger an approval or deletion of the record.

hashtag
Post as XML

Used to post the Form as an XML to a specified URL. The following configuration can be set:

  • Workflow Name

  • URL (required)

  • Method

  • XsltFile - used to transform the XML

hashtag
Save as an XML file

Saves the result of the Form as an XML file by using XSLT. The following configuration can be set:

  • Workflow Name

  • Path (required) - where to save the XML file

  • File extension (required)

  • XsltFile - used to transform the XML

The path needs to point to a folder, not a file name. The files are then stored locally, and relative paths are resolved to the content root.

circle-info

When storing the files within the wwwroot or App_Plugins folders, the files will be publicly available by default.

hashtag
Save as Umbraco Content Node

Saves a submitted Form as a new content node. You need to choose a Document type and match the fields in the Form with the properties on the selected Document Type.

You can also choose to set a static value to fill in the properties:

In the example above, a Document Type called Blogpost is selected for creating the new Content node.

The value from the Name field will be added as the Node Name property in the new Content node. The value from the Email field will be used as the Content property.

The following configuration can be set:

  • Workflow Name

  • Publish - choose whether to publish the node on submission

  • Where to save - choose a section in the content tree where this new node should be added

hashtag
Send Email

Sends the result of the Form to the specified email address. The following configuration can be set:

  • Workflow Name

  • Message (required)

  • Attachment - specify whether file uploads should be attached to the email

  • Recipient Email (required)

For fields that accept multiple email addresses (Recipient Email, CC Email, BCC Email), you can separate addresses using semicolons (';') or commas (','). For example:

If the Sender Email field is not populated, the address used will be read from CMS configuration.

The value configured at Umbraco:CMS:Global:Smtp:From will be used if provided.

If that is not set, the value configured at Umbraco:CMS:Content:Notifications:Email will be used.

The fallback behavior also applies to the other email workflows.

hashtag
Send Email with Template (Razor)

Uses a template to send the results of the Form to a specified email address.

You can create your own custom Razor templates to be used to send out emails upon Forms submission. Read more about how to create these templates in the article.

The following configuration can be set:

  • Workflow Name

  • Email Template (required) - specify which template you want to use

  • Header text - formatted text that will be rendered above the form entry details

  • Footer text - formatted text that will be rendered below the form entry details

hashtag
Send Form to URL

Sends the Form to a URL either as a HTTP POST or GET. The following configuration can be set:

  • Workflow Name

  • URL (required)

  • Method (required) - POST, GET, PUT or DELETE

  • Standard Fields - optionally include and map standard form information such as name and page URL

When mapping fields, if any are selected, only those chosen will be sent in the request to the configured URL. If no fields are mapped, all will be sent.

The receiving endpoint extracts form fields and values using GET for querystrings and POST for form collections.

As an illustrative example, the following code can be used to write the posted form information to a text file:

hashtag
Send XSLT Transformed Email

Sends the result of the Form to an email address with full control over the email contents by providing an xslt file. The following configuration can be set:

  • Workflow Name

  • XSLT File - specify which file should be used to transform the content

  • Recipient Email (required)

  • CC Email

hashtag
Slack

Allows to post the Form data to a specific channel on Slack. The following configuration can be set:

  • Workflow Name

  • Webhook URL (required)

Headers - map the needed files

  • User

  • Password

  • CC Email

  • BCC Email

  • SenderEmail

  • Reply To Email

  • Subject of the email (required)

  • Attachments - specify whether file uploads should be attached to the email

  • Recipient Email (required)

  • CC Email

  • BCC Email

  • SenderEmail

  • Reply To Email

  • Subject of the email (required)

  • Fields - map the needed fields

  • User

  • Password

  • BCC Email

  • SenderEmail

  • Reply To Email

  • Subject of the email (required)

  • Global Settingsarrow-up-right
    Content Settingsarrow-up-right
    Email Templates
    Change Record state
    Post as XML
    Save as XML
    Save as content node
    Save as content node
    Send email
    Send email with template
    Send to URL
    Send XSLT Email
    Send to Slack
    [email protected]; [email protected], [email protected]
        "Umbraco": {
             "CMS": {
                "Global": {
                    "Smtp": {
                        "From": "[email protected]"
                    }
                }
            }
        }
        "Umbraco": {
             "CMS": {
                "Content": {
                    "Notifications": {
                        "Email": "[email protected]"
                    }
                }
            }
        }
    using Microsoft.AspNetCore.Mvc;
    using Microsoft.Extensions.Logging;
    using System.IO;
    
    namespace RequestSaver.Controllers
    {
        [ApiController]
        [Route("[controller]")]
        public class SaveRequestController : ControllerBase
        {
            private const string _filePath = "c:\\temp\\request-save.txt";
    
            private readonly ILogger<SaveRequestController> _logger;
    
            public SaveRequestController(ILogger<SaveRequestController> logger)
            {
                _logger = logger;
            }
    
            [HttpPost]
            public string Save()
            {
                using (StreamWriter outputFile = new StreamWriter(_filePath))
                {
                    foreach (var key in Request.Form.Keys)
                    {
                        outputFile.WriteLine($"{key}: {(Request.Form[key])}");
                    }
                }
    
                return "Done";
            }
        }
    }
    Workflow Types in Umbraco Forms