Transforms the way you handle submissions within your Umbraco backoffice. Our user-friendly platform empowers you to:

  • View Submissions with Ease: Quickly access and review all your form submissions in a clear and organized format.
  • Filter for What Matters: Effortlessly filter submissions by form, date range, keywords, specific fields, or submission status to find the information you need fast.
  • Manage Submission Statuses: Take control of your workflow. "Simple Forms" allows you to easily update the status of each submission, keeping your process organized and efficient. (Consider adding a brief example here, like "Mark submissions as 'Reviewed,' 'Approved,' or 'Needs Follow-up.'")
  • Export for Further Analysis: Export your submissions in various formats, like CSV or Excel, for further analysis or sharing with colleagues.

Get Started:

  1. Installation: Open your Umbraco project in Visual Studio. Navigate to the Tools menu and select NuGet Package Manager > Install Packages. In the search bar, type "SimpleForms" and install the package.
  2. Rebuild
  3. Create forms

Create Form to be shown in backoffice

 
   public class Form1 : IBackofficeFormBase
    {
        public Guid Id { get; set; } = Guid.Parse("424356c0-5259-4c73-85fd-4bccfbcd4b7f");
        public string Name { get; set; } = "Form 1";
        public List Headers { get; set; } = new List(){
            new Header{
                Name = "MyIp",
                Value = "_IP"
            },
            new Header{
                Name = "UserStatus",
                Value = "_StatusId"
            },
            new Header{
                Name = "Create Date",
                Value = "_CreatedAt",
                Format = "date:\"y-M-d\"",
            },
            new Header{
                Name = "Update Date",
                Value = "_UpdatedAt",
                Format = "date: \"y-M-d\"",
            },
            new Header{
                Name = "UserName",
                Value = "Name"
            },
            new Header{
                Name = "UserEmail",
                Value = "Email"
            },
        };
        public IEnumerable Actions { get; set; }
    }

Create form to be submited from  website

   
    public class ContactFormViewModel : FormViewModel
    {
        [Required]
        public string Name { get; set; }
    
        [EmailAddress]
        public string Email { get; set; }
    
        [Required]
        public string Phone { get; set; }
    
        [Required]
        public string Message { get; set; }
    }

Option 1: Simple way

    @using (Html.BeginUmbracoForm(nameof(SimpleForms.Web.Controllers.SimpleFormBaseController.Submit)))

Option 2: Custom controller with custom logic

    @using (Html.BeginUmbracoForm(nameof(ContactFormController.Submit)))
    
    public class ContactFormController : SimpleFormController
{
    public ContactFormController(IUmbracoContextAccessor umbracoContextAccessor,
                                 IUmbracoDatabaseFactory databaseFactory,
                                 ServiceContext services,
                                 AppCaches appCaches,
                                 IProfilingLogger profilingLogger,
                                 ISimpleFormEntryService simpleFormEntryService,
                                 ISimpleFormStatusService simpleFormStatusService,
                                 ISimpleFormService simpleFormService,
                                 IHttpContextAccessor httpContextAccessor,
                                 ILogger> logger,
                                 IPublishedUrlProvider publishedUrlProvider,
                                 IServiceProvider serviceProvider) : base(umbracoContextAccessor, databaseFactory, services, appCaches, profilingLogger, simpleFormEntryService, simpleFormStatusService, simpleFormService, httpContextAccessor, logger, publishedUrlProvider, serviceProvider)
    {
    }
    public override IActionResult Submit(ContactFormViewModel model)
    {
        //save result in database
        base.Submit(model);

        //custom logic

        return RedirectToCurrentUmbracoUrl();
    }
}