1 of 76

2 of 76

Before we Begin ... Let's SAY "Hello!"

  • Where are you from?
  • Have you used the Webform module?
  • What do you want to learn about today?
  • Review the slides before the presentation

Post your questions in the Q&A channel

3 of 76

Hello!

Hi, my name is Jacob Rockowitz.

  • I am known as jrockowitz on the web.
  • I am a Drupal developer and software architect.
  • I built and maintain the Webform module for Drupal.

4 of 76

Creating a Webform project plan

5 of 76

my Goal is to �help you ask the right questions...

6 of 76

...and to answer any of your questions

7 of 76

Good plans Start with a kick-off

8 of 76

I want to�ensure the successful implementation of an organization's webforms by providing a thought-out and flexible project plan

9 of 76

As with most websites, this is a work-in-progress

As with most �project plans & �Open source, this is a �collaborative effort

10 of 76

Why do we want to have a Webform project plan?

  • Drupal is becoming the foundation for Digital Experience Platforms (DXP).
  • Forms and surveys are a key part of a DXP.
  • Forms and surveys engage users and �collect data.

11 of 76

To create a successful DXP, you want to...

  • Know your user requirements
  • Understand your platform's capabilities
  • Plan for the future

12 of 76

What is the �Webform module's �out of the box capabilities?

13 of 76

THE USE CASE for the WEbform module

BUILD

COLLECT

DISTRIBUTE

14 of 76

<demo>

15 of 76

Gathering requirements

16 of 76

Gathering �requirements �is about �Asking the �right questions

17 of 76

Form users & usage

  • Who are the end users?
  • Are anonymous or authenticated users completing the forms?
  • What is the expected number of forms and inputs per form?
  • What is the expected number of submissions per hour or day?

18 of 76

Access management

  • Who has access to what?
  • What are the key roles related to webforms?
  • Are there dedicated form builders, submission administrators, reviewer roles?

19 of 76

Form building

  • Who is building webforms?
  • What is the experience level of the �form builders?
  • Do the form builders know HTML, CSS, JS, Twig, YAML, and even Drupal's Form API?

20 of 76

Data management

  • How should submission data be stored?
  • Should submissions data be stored inside or outside Drupal?
  • Should the submission data be encrypted?
  • How long should submission data be stored?
  • What is the submission data flow diagram?

21 of 76

Submission administration

  • How are submission going to be managed?
  • Can users view and even update their �previous submissions?
  • What are submission administrators going to be doing with the collected data?
  • Do submissions need to be annotated and flagged?

22 of 76

Design and UX

  • How are the forms going look-n-feel?
  • What is the theme or design system?
  • What is the ideal user experience for someone completing a form?
  • Does the look-n-feel of forms vary from use case to use case? (i.e. Long forms vs short forms)

23 of 76

Accessibility

  • What level of accessibility is required for forms?
  • How is accessibility going to be reviewed �and monitored?

24 of 76

What are

we going �to build?

How about �an application �Evaluation System?

25 of 76

<demo>

26 of 76

Writing �User Stories

27 of 76

"a user story is an �informal, natural language description of features �of a software system"�https://en.wikipedia.org/wiki/User_story

28 of 76

Site Visitor

  • As a site visitor, I want to be able to easily understand and complete a webform in a few minutes.
  • As a site visitor, I want to be able to manage my submissions.

29 of 76

Form builder

  • As a form builder, I want the appropriate notified user, via email, when a form is submitted.
  • As a form builder, I want to assign users different permissions and roles.
  • As a form builder, I want to be able to archive old webforms and submissions.

30 of 76

Submission reviewer

  • As a submission reviewer, I want to sort and filter submissions.
  • As a submission reviewer, I want to flag, annotate, and add notes to submissions.
  • As a submission reviewer, I want to download submissions as a CSV and PDF.

31 of 76

Documenting�project specifications

32 of 76

Project specifications defineS the system's features, functionality, & expectations

33 of 76

User roles & access controls

  • Roles & Permissions
  • Form & Submission Access
  • Element & Container Access

34 of 76

DefininG�WebFORM Permissions

35 of 76

Setting�FORM & submission�level Access Controls

36 of 76

Allowing�element level Access Controls

37 of 76

Form types

  • Multi-step (wizard and cards)
  • Behaviors (prepopulation, autofill, preview)
  • Shared (Embedded via an iframe)
  • Templates

38 of 76

Breaking down long forms into Multiple-steps

39 of 76

Improve a form's�USEr Experience �by ADjusting�form�Behaviors

40 of 76

Forms can be shared �with external websites

41 of 76

WEbform Templates�provide a starting point & can also be used as examples

42 of 76

Form placement

Node

Webforms can be attached to a node with the node's form submissions collected in a dedicated 'Results' tabs.

Block

Webforms can be placed on your site as a block. The URL and source entity for each submission is automatically tracked.

Custom

Webforms can be added to a render array, which can be easily altered using custom hooks and/or plugins.

43 of 76

placing webform blocks

44 of 76

Creating webform Nodes

45 of 76

Form Elements

  • Basic inputs
  • Advanced inputs
  • Composites
  • Validation
  • Condition logic

46 of 76

There is a style-guide �which shows�every available webform element

47 of 76

CompoSite elements�Are multiple inputs grouped together

48 of 76

Perform calculations using Computed elements

49 of 76

Respond �to user interaction�By leveraging�conditional�logic

50 of 76

COnfirmations, notifications, & Distribution

  • Display confirmation messages
  • Send email notifications and confirmations
  • Remote post data to external applications

51 of 76

DIsplaying a

confirmation

message

52 of 76

send & route emails�using an �Email Handler

53 of 76

send submission data out �of drupal using a Remote post handler

54 of 76

form Design

  • Building a theme
  • Adding custom CSS & JavaScript
  • Injecting inline class name, styles, �and attributes

55 of 76

Use the style-guide �to review �your theme

56 of 76

define�Custom �classes,�Styles,�& Attributes

57 of 76

Adding�Custom �CSS & Javascript

58 of 76

Submission manageMent

  • Set submission limits
  • Flag submission
  • Automatically purge submission
  • Defining a workflow

59 of 76

Managing submissions

60 of 76

submission behaviors

61 of 76

building a submission workflow

62 of 76

Form & Submission archiving

  • Generate PDFs
  • Download submissions as a CSV
  • Export webform configuration

63 of 76

Generating PDFS

64 of 76

download �(or upload) submissions

65 of 76

Exporting webform configuration

66 of 76

Tracking & Testing

  • Analytics
  • Automated testing
  • Performance testing

67 of 76

webform analytics

68 of 76

Tests confirm�expectations

69 of 76

The webform module has a lot of tests which you can leverage in your custom projects

70 of 76

Moving �Forward

71 of 76

Common mistakes

  • Making assumptions
  • Building over-complicated forms
  • Not asking the right questions
  • Not writing automated tests
  • Not performing load testing

72 of 76

Getting help

  • Drupal Answers �http://drupal.stackexchange.com

73 of 76

Get

involved

Fund development

hire me for professional support

74 of 76

opencollective.com/webform

75 of 76

to drupal �or not to drupal...

76 of 76

jrockowitz.com