Creating Data Forms

Data forms allow you to expose parts of your database to users outside of Brick River users. There are three primary use cases for data forms.

  1. Allow people to submit content for approval from your website(s)
  2. Email contacts and have them update their record in your database
  3. To be used in custom portal where users can update information related to them.

Let's go through the setup steps for each use case. 

Here is a video of a training we did based on this article.

HOW TO SET UP A DATA FORM TO ALLOW PEOPLE TO SUBMIT CONTENT THROUGH YOUR WEBSITE.

Many customers want to allow people to submit content to them that they can review, edit, and, with the flip of a switch, make live on their site. Content are things like:

  • Events
  • News
  • Photos
  • Community stories
  • Classified ads
  • Ideas

Let's say you want to allow people to submit events, but you want to be able to approve them before they go live on your website. Firstly, we assume you already have an events section of your website.

Submissions to your website operate as the Guest User. So, this is who will need permission to the data form and view you create.

MAKING THE VIEW FOR YOUR DATA FORM

  1. Go to the Admin section of Brick River and click on Views.
  2. Find the view titled Events
  3. Click the green New button
  4. In the <View/> element put in the attribute Purpose="Submitting content from website" and link it to the Guest user so it only applies to them. The Guest user is everyone that interacts with your website from the front-end.

  5. Now Save and go back.

  6. You can now enter into that same view using the more WYSIWYG Permissions view editor screen. Click it.

  7. This screen makes it easier to hide certain fields. You don't want the person to see all the fields in events.

  8. Hide (don't remove) fields and/or fieldsets (groups of fields) that shouldn't be seen.

  9. You will be hiding the "Visibility fields" fieldset, but make a mental note that you will be coming back to this in the more code-heavy view editor to add a wackadoodle permission attribute that will allow submissions to come in marked "Needs Approval" and "Invisible."

  10. Keep hiding fields.

  11. Once you've hidden a bunch of fields, save it and go back a screen.

  12. Reenter the view in the more code-heavy way using the Edit button.

  13. You will see this fieldset: <FieldSet Id="VisibilityFields" Invisible="true" />, and you're going to want to replace it with this
    <FieldSet Id="VisibilityFields" Invisible="true">
         <Column Id="NeedsApproval" ReadOnlyOnAdd="false"/>
    </FieldSet>

  14. What's happening here is we making the NeedsApproval field still be hidden BUT be able to be pass a value by the data form. By default, invisible fields are read only. We need the data form to pass a value to this field so that it is marked as needing approval.

  15. At this point, your view should be ready to connect to a data form.

  16. Actually, bonus, What if you want certain fields to required? You will simply add this to the field in the code-heavy view: Required="true".

MAKING THE DATA FORM, WHICH YOU'LL CONNECT TO THE VIEW YOU JUST CREATED

  1. Go to Admin > Data Forms and press New.

  2. Give the data form a title like "Submit an event". People will see this title on your form.

  3. In the View field, start typing "Submit". This will search for the view we made, and it's searching on the purpose attribute you gave it way back in step four. You should find a view with a name like "Events Content Submitting an event from our site". Pick this one. 

  4. Choose a branded template. You make branded templates under Reg and there. Read this article to learn how to build and edit branded templates.

  5. Email for Notification. You can put a single email address in here only. We don't allow for a comma separated list of many emails. Just one.

  6. In the Confirmation Text box, this is a plain text box, so you may need to put in light HTML. Put in something like:
    <h1>Thank you for submitting an event</h1>
    <p>Someone from our staff will review it and communicate should we have questions. Many thanks.</p>

  7. Entering something in the Redirect field would automatically bring the person to another URL upon submission, but in this case, we want to let the person know that they have submitted to us. So, we will leave this blank.

  8. You COULD, if you wanted, put something into the Header field. The user will see this below the title. You might want to put instructions or guidelines in here for the person about how to fill out your form.

  9. Because this is a public form, we want to prevent junk submissions, so definitely switch on the Captcha field.

  10. Lastly, run this as the Guest user.

  11. Press Save and then scroll up to the top where a "preview" link becomes visible. Click it and review.

  12. This is what people will see. Make any adjustments necessary.

  13. Before you leave, write down the Id of the data form. You will see a message near the preview and it will have this:
    @BRT.DataLink( 999). 999 is a made up data form number. Write down the number you see.

PLACING THE DATA FORM ON A WEB PAGE

  1. Go to your Site and then make a new web page with a title, maybe something like "Submit an event".
  2. Once here, choose the right layout, save, and open up the "source" tab.
  3. Put this code snippet into your page, BUT replace 999 with the id of your data form.
    <a target="_blank" href="@BRT.DataLink(formId: 999,defaultValues:"NeedsApproval=true")">Submit an event</a>
  4. You may want to stylize this hyperlink. For example, if you were using Bootstrap 5, you might put something like class="btn btn-primary" into the <a/> tag.
  5. Save the page, and then view it in your site.
  6. Fill out the form and save.
  7. The event has been saved to your database, and the email received a notification.

Finding submitted content needing approval

  1. You got an email notification that someone filled out your form. Hooray! Now, you'll go into Content > Events, and all content views by default have a filter called Needs Approval. Click it to find all the events not yet approved.

  2. Go into the record. Review it. Make any changes.

  3. Once you're ready to make it live on the site, simply toggle the Needs Approval field to "no" and toggle it from "invisible" to "visible".

  4. You're done.


MAKING AN EMAILABLE DATA FORM THAT ALLOWS PEOPLE TO UPDATE THEIR CONTACT RECORD IN YOUR DATABASE

Using emailable data forms allows you to send an email blast to thousands of contacts and have them each make updates to their record only on fields you choose.

Often times, customers will make a data form that lets people upload a picture of themselves. Or maybe you let them lightly update their contact information, like their address or phone numbers.

Another use case is where a customer emails blasts their related organizations to have them do similar updates. 

LET'S FIRST MAKE THE VIEW THAT THE EMAILABLE DATA FORM WILL USE

  1. Let's make one that will connect with the People view. First, actually, you're going to go to Admin > Users and make a new user that will be an "email data form" user.
  2. Press New and give the user a name like "Email Data Form User"
  3. Give them a name but don't give them a username and password or give them some token long username and password.
  4. Do NOT make them active.
  5. Leave everything else blank. Do NOT put them in a group. Do NOT make them an admin. Hit Save.
  6. Now, go to Admin > Views, and search for People. Hit the green New button to make a new view for People.
  7. Now put into the <View/> element Purpose="Emailing people a data form", AND link it only to the "Email Data Form" user.

  8. Press Save and bail outta there. Go into the Permissions screen to edit the view. This is a more WYSIWYG way of hiding fields.

  9. One common thing customers do is they make the name fields READ ONLY, and they make a select few basic contact fields editable. Then, they hide the rest. Do something like that and then press Save.

NOW, LET'S MAKE THE EMAILABLE DATA FORM CONNECT TO THE CONTACT UPDATE VIEW

  1. Go to Admin > Data Forms and press New.
  2. Give it a tile like "Update your contact info in our database".
  3. In View, search on the word "email," and you'll find the view we made. People Contacts Emailing a data form, and select it.
  4. Pick a branded template.
  5. Probably do not put anything in email notifications because you'll just get overwhelmed with emails of all the updates.
  6. The confirmation box is what they'll see when they save, and it's plain text. you'll need to put in some HTML. Start with this:
    <h1>Thank you for updating your record in our database</h1>
    <p>That's it. Close this window <a href=" YourWebsiteURL">or head to our website</a></p>
  7. Be sure to check the Emailable field, or it won't appear when you go to email people this data form.
  8. Run it as our "Email Data Form" user.
  9. Press Save and scroll up and click on the Preview link.

TESTING AND SENDING DATA FORMS

You must, I repeat, you MUST, email through the contact your view is for. In this case, it's People. You can NOT use subscription lists, even if the email address is the same.
Also, there is no "test mode" for emailing a data form. You test by emailing just one or two people. And once that's all good then you choose the whole list and email it.
You have to repeat all the steps every time. You can't just simply copy a previous test. It is a finicky function, the data form emailer. And here are those steps:
  1. Go to Contacts > People
  2. If we are testing, just search on you and press Email.
  3. Click Compose new.
  4. You probably have some text that you set aside. Paste that text in here. 
  5. Here's the finicky part: EVERY TIME, be it a test or a full-blown send, you must choose the Insert Data Form Link, black folder icon. The emailer doesn't "know" it's sending a data form unless you do this every time.

  6. The email data form modal comes up, and you pick the data form and put in the link text. Something like this:

  7. And then you will have a compose screen that has YOUR info, but something like this:

  8. Put a couple line breaks BELOW the "click here to update" link because our emailer will put its own update link at the bottom of the email, and you don't want the two links to be too close together.

  9. Now, the only way to test it is to actually send it, AND putting in recipients by hand will NOT work. It only sends to contacts from the view you are coming from. In this case, People.

  10. So, go ahead and fire that test off to yourself. Open your email. Make a test submission to the form. Make changes and repeat. Hopefully, you have your text set aside so you can just copy it in and do another test.

  11. Once you are feeling good and said any last prayers, you will pull your whole list of People recipients and add them to the email. You will repeat the steps, screw your courage to the sticking place, and press send.

  12. Tens, hundreds, even thousands of your people will now be simultaneously updating their record in your DB, without you having to do it! 

Now, see who is making updates by looking in Contacts > People and searching on changes made by the "email data form" user.

  1. Go to Contacts > People
  2. Click Filter
  3. Find the Last Updated By field
  4. Search in the field for "email data form user," and it will give you a list of all people record changes made by the email data form people.
  5. Click result fields and pick the "last updated" field and sort by data descending to see the most recent at the top.
  6. Now you either click into records, or you can click More Actions > Activity and UNcheck Email and look at only edits to changes