Using Frevvo (aka onPhase Forms)

Tags forms frevvo

What do you need help with?

Getting Started & Testing

Access the platform, test your forms, and troubleshoot workflow behavior.

Access the environment directly and test your forms or flows regularly during development to catch rule or routing issues early.

Log in to the FAU Frevvo environment using your credentials: Frevvo FAU Tenant Login.

  1. Click the test button directly inside the form/flow designer or from the main forms page.
  2. Interact with the test deployment to verify user experience.
  3. Scroll to the bottom of the page to view the debug console if rules fail to execute. The console highlights runtime errors in bold red text.
Tip: Including a screenshot of your debug console helps administrators troubleshoot workflow issues faster.

Form Designer Training & Access

Guidelines for creating forms and requesting designer permissions.

While all university users can access and submit public and internal forms, form building and workflow design require specific permissions.

  • Form design is restricted to approved users who have completed the official Frevvo Live Form Training.
  • Need access? Submit a Request for Training via the Help Desk.
  • Utilize the FAU Theme Tool to maintain consistent institutional branding across your custom layouts.

FAU Rule Snippets

Common JavaScript snippets and configuration rules customized for FAU environments.

Reference these verified code blocks for user data pre-population, table loops, date validations, checkbox rules, and required selections.

Use _data.getParameter('<data name>') to fetch user attributes on load:

if (form.load){
  var firstName = _data.getParameter('subject.first.name');
  var lastName = _data.getParameter('subject.last.name');
  var email = _data.getParameter('subject.email');
  
  StudentName.value = firstName + " " + lastName;
  StudentEmail.value = email;
}

To populate current dates automatically:

if (form.load) {
    Date.value = frevvo.currentDate();
}

Tables can be hidden as a whole, but entire tables cannot be disabled directly—disabling must be managed column-by-column.

// Hide entire table
Table1.visible = false;

// Hide or show specific columns
Column0.visible = true;
Column1.visible = false;

When writing for loops for tables/repeaters, always reference the length of a column rather than the table itself:

for (var i = 0; i < Column0.value.length; i++) {
  // Add loop logic here
}

To validate that a date (e.g., Birth Date) is earlier than today:

var today = frevvo.currentDate().split('-');
var today_date = new Date(today[0], today[1]-1, today[2]);
var bd = DOB.value.split('-');
var bd_date = new Date(bd[0], bd[1]-1, bd[2]);
 
if (bd_date > today_date) {
    MyMsg.value = 'Birth Date must be earlier than today!';  
    DOB.valid = false;
} else {
    MyMsg.value = '';
    DOB.valid = true;
}

To calculate offsets using frevvo.addToDate():

var today = frevvo.currentDate();
var past = frevvo.addToDate(today, 'y', '-100'); // 100 years before today
var future = frevvo.addToDate(today, 'm', '3');  // 3 months from today
var tomorrow = frevvo.addToDate(today, 'd', '1'); // Tomorrow

Clearing Ghost Data on Uncheck:

if (MainTrigger.value === 'Yes') {
    Checkbox_Name.enabled = true;
    Checkbox_Name.required = true;
    var isOption1 = false;
    
    for (var i = 0; i < Checkbox_Name.value.length; i++) {
        if (Checkbox_Name[i].value === 'Option_Value_1') {
            isOption1 = true;
        }
    }

    if (isOption1) {
        Describe_Box1.enabled = true;
        Describe_Box1.required = true;
    } else {
        Describe_Box1.enabled = false;
        Describe_Box1.value = null; 
        Describe_Box1.required = false;
    }
} else {
    Checkbox_Name.enabled = false;
    Checkbox_Name.value = null;
    Describe_Box1.value = null;
}

Enforcing "At Least One" Across Individual Checkboxes: Use an invisible required number control named Logic_Rule:

if (Option_1[0].value == 'A' || Option_2[0].value == 'B') {
  Logic_Rule.value = 1;
} else {
  Logic_Rule.value = null; // Forces form error because field is required
}

Tables and repeaters act as arrays. Use this script on form unload to bundle table email entries into a comma-separated string for Activity Document Actions:

if ( form.unload ){
   var tmp = [];
   for ( var i = 0 ; i < Email_Ctrl_Name.value.length; i++ ) {
     tmp.push( Email_Ctrl_Name.value[i].value );
  }       
  Email_Append.value = tmp.join();
}

Design & PDF Mapping

Custom control styling and document generation guides.

To embed hyperlinks inside controls like radio options, use basic HTML tags:

FAU=<a href="https://www.fau.edu/">FAU </a>

Frevvo supports Adobe AcroForm PDFs only (Adobe XFA / LiveCycle forms are not supported).

  1. In the form designer menu, click the PDF mapping icon (paper icon with a folded corner).
  2. Click New, upload your AcroForm PDF, select Generate fillable form, and name the mapping.
  3. Click Map Fields to drag and drop form controls onto corresponding PDF fields.
  4. For repeaters, adjust the index column on the right side of the mapping window to assign matching instances (e.g., change index to 2 for the second table row).

Roles & Administration

Managing workflow group permissions and access controls.

Group-based roles allow multiple users to handle specific workflow tasks (e.g., Department_Reviewers) instead of routing to a single individual.

  • Open your workflow step in the Flow Designer.
  • Select the target step and locate the Role control box in the properties panel to assign your group.

Need a new group created or modified? Request Group Changes via the Help Desk.

Official Vendor Documentation

External documentation and service availability status.

For standard form design guides, administrative settings, and detailed component documentation, refer to the public vendor guides:

Still Need Help?

Open a ticket with the Team for further assistance.

 

Submit a Request Submit a Ticket Print Article

Related Services / Offerings (2)

Use this service to report any issues with the performance of an existing form.
Submit a request for help with developing or maintaining Frevvo forms